Pixel Caffeine - Version 1.0.0

Version Description

  • First release
Download this release

Release Info

Developer antoscarface
Plugin Icon 128x128 Pixel Caffeine
Version 1.0.0
Comparing to
See all releases

Version 1.0.0

Files changed (46) hide show
  1. assets/js/pixel-events.js +144 -0
  2. assets/js/pixel-events.min.js +4 -0
  3. includes/admin/assets/fonts/pixel-caffeine.eot +0 -0
  4. includes/admin/assets/fonts/pixel-caffeine.svg +12 -0
  5. includes/admin/assets/fonts/pixel-caffeine.ttf +0 -0
  6. includes/admin/assets/fonts/pixel-caffeine.woff +0 -0
  7. includes/admin/assets/fonts/pixel-caffeine.woff2 +0 -0
  8. includes/admin/assets/img/icon-fb.svg +1 -0
  9. includes/admin/assets/img/placeholder-loading-news.png +0 -0
  10. includes/admin/assets/img/renew-token.png +0 -0
  11. includes/admin/assets/img/select2/select2-spinner.gif +0 -0
  12. includes/admin/assets/img/select2/select2.png +0 -0
  13. includes/admin/assets/img/select2/select2x2.png +0 -0
  14. includes/admin/assets/img/store-logo/woocommerce.png +0 -0
  15. includes/admin/assets/img/walter-dashboard-config.png +0 -0
  16. includes/admin/assets/img/walter-face-2.png +0 -0
  17. includes/admin/assets/img/walter-face-lost.png +0 -0
  18. includes/admin/assets/img/walter-face.png +0 -0
  19. includes/admin/assets/js/admin.js +1512 -0
  20. includes/admin/assets/sass/_conversions.scss +47 -0
  21. includes/admin/assets/sass/_custom-audience.scss +115 -0
  22. includes/admin/assets/sass/_dashboard.scss +210 -0
  23. includes/admin/assets/sass/_font-icons.scss +57 -0
  24. includes/admin/assets/sass/_general.scss +1667 -0
  25. includes/admin/assets/sass/_mixins.scss +87 -0
  26. includes/admin/assets/sass/_select2-custom.scss +280 -0
  27. includes/admin/assets/sass/_settings.scss +530 -0
  28. includes/admin/assets/sass/_variables.scss +84 -0
  29. includes/admin/assets/sass/_variables_bootstrap.scss +3 -0
  30. includes/admin/assets/sass/admin.scss +36 -0
  31. includes/admin/assets/sass/menu.scss +15 -0
  32. includes/admin/assets/sass/pixel-caffeine-body.scss +18 -0
  33. includes/admin/assets/sass/pixel-caffeine-wrapper.scss +57 -0
  34. includes/admin/assets/sass/select2-v3.5.4.scss +694 -0
  35. includes/admin/class-aepc-admin-ajax.php +678 -0
  36. includes/admin/class-aepc-admin-ca-manager.php +383 -0
  37. includes/admin/class-aepc-admin-ca.php +1119 -0
  38. includes/admin/class-aepc-admin-handlers.php +417 -0
  39. includes/admin/class-aepc-admin-install.php +65 -0
  40. includes/admin/class-aepc-admin-menu.php +65 -0
  41. includes/admin/class-aepc-admin-notices.php +194 -0
  42. includes/admin/class-aepc-admin-view.php +999 -0
  43. includes/admin/class-aepc-admin.php +700 -0
  44. includes/admin/class-aepc-facebook-adapter.php +1027 -0
  45. includes/admin/dist/css/admin.css +9313 -0
  46. includes/admin/dist/css/admin.min.css +3 -0
assets/js/pixel-events.js ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Handle all facebook events
3
+ */
4
+
5
+ jQuery(document).ready(function($){
6
+ 'use strict';
7
+
8
+ var extendArgs = function( args ) {
9
+ return aepc_extend_args( args );
10
+ };
11
+
12
+ // Standard events
13
+ if ( aepc_pixel_events.standard_events ) {
14
+ $.each( aepc_pixel_events.standard_events, function (eventName, events) {
15
+ $.each( events, function( index, data ){
16
+ if (data) {
17
+ fbq('track', eventName, extendArgs(data));
18
+ } else {
19
+ fbq('track', eventName);
20
+ }
21
+ });
22
+ });
23
+ }
24
+
25
+ // Add to cart from loop
26
+ $('ul.products')
27
+ .on('click', '.ajax_add_to_cart', function (e) {
28
+ if ( 'no' === aepc_pixel.enable_addtocart ) {
29
+ return e;
30
+ }
31
+
32
+ var anchor = $(this),
33
+ product = anchor.closest('li.product'),
34
+ product_id = anchor.data('product_sku') ? anchor.data('product_sku') : anchor.data('product_id');
35
+
36
+ fbq('track', 'AddToCart', extendArgs({
37
+ content_ids: [product_id],
38
+ content_type: 'product',
39
+ content_name: product.find('h3').text(),
40
+ content_category: product.find('span[data-content_category]').data('content_category'),
41
+ value: parseFloat(product.find('span.amount').clone().children().remove().end().text()), //OPTIONAL, but highly recommended
42
+ currency: woocommerce_params.currency
43
+ }));
44
+ })
45
+
46
+ // Add to wishlist.
47
+ .on('click', '.add_to_wishlist, .wl-add-to', function(e) {
48
+ if ( 'no' === aepc_pixel.enable_wishlist ) {
49
+ return e;
50
+ }
51
+
52
+ var anchor = $(this),
53
+ product = anchor.closest('li.product'),
54
+ product_id = anchor.data('product_sku') ? anchor.data('product_sku') : anchor.data('product_id');
55
+
56
+ fbq('track', 'AddToWishlist', extendArgs({
57
+ content_ids: [product_id],
58
+ content_type: 'product',
59
+ content_name: product.find('h3').text(),
60
+ content_category: product.find('span[data-content_category]').data('content_category'),
61
+ value: parseFloat(product.find('span.amount').clone().children().remove().end().text()), //OPTIONAL, but highly recommended
62
+ currency: woocommerce_params.currency
63
+ }));
64
+ });
65
+
66
+ $('div.product')
67
+
68
+ // Add to cart from single product page.
69
+ .on( 'click', '.single_add_to_cart_button', function(e) {
70
+ if ( aepc_pixel.enable_addtocart === 'yes' && wc_add_to_cart_params.cart_redirect_after_add === 'yes' ) {
71
+ fbq('track', 'AddToCart', extendArgs( aepc_pixel_events.ViewContent ));
72
+ }
73
+ })
74
+
75
+ // Add to wishlist from single product
76
+ .on('click', '.add_to_wishlist, .wl-add-to', function(e){
77
+ if ( 'no' === aepc_pixel.enable_wishlist ) {
78
+ return e;
79
+ }
80
+
81
+ fbq('track', 'AddToWishlist', extendArgs( aepc_pixel_events.ViewContent ));
82
+ });
83
+
84
+ // AddPaymentInfo on checkout button click
85
+ $('form.checkout').on('checkout_place_order', function(e){
86
+ if ( 'no' === aepc_pixel.enable_addpaymentinfo ) {
87
+ return e;
88
+ }
89
+
90
+ fbq('track', 'AddPaymentInfo', extendArgs({
91
+ content_type: aepc_pixel_events.InitiateCheckout.content_type,
92
+ content_ids: aepc_pixel_events.InitiateCheckout.content_ids,
93
+ value: aepc_pixel_events.InitiateCheckout.value,
94
+ currency: aepc_pixel_events.InitiateCheckout.currency
95
+ }));
96
+
97
+ return true;
98
+ });
99
+
100
+ // Custom events.
101
+ if ( typeof aepc_pixel_events.custom_events !== 'undefined' ) {
102
+ $.each(aepc_pixel_events.custom_events, function (eventName, events) {
103
+
104
+ $.each( events, function( index, data ){
105
+ fbq('trackCustom', eventName, extendArgs( data ));
106
+ });
107
+
108
+ });
109
+ }
110
+
111
+ // Conversions events for css selector
112
+ if ( typeof aepc_pixel_events.css_events !== 'undefined' ) {
113
+ $.each(aepc_pixel_events.css_events, function (selector, events) {
114
+
115
+ $.each( events, function( index, event ){
116
+
117
+ $( selector ).on( 'click', function() {
118
+ fbq( event.trackType, event.trackName, extendArgs( event.trackParams ));
119
+ });
120
+
121
+ });
122
+
123
+ });
124
+ }
125
+
126
+ // Conversions events for link_click
127
+ if ( typeof aepc_pixel_events.link_clicks !== 'undefined' ) {
128
+ $.each(aepc_pixel_events.link_clicks, function (url, events) {
129
+ url = url.replace( /\*/g, '[^/]+' );
130
+
131
+ $( "a" ).filter(function() {
132
+ return $(this).attr('href').match( new RegExp( url ) );
133
+ })
134
+
135
+ .on( 'click', function(e) {
136
+ $.each( events, function( index, event ){
137
+ fbq( event.trackType, event.trackName, extendArgs( event.trackParams ));
138
+ });
139
+ });
140
+
141
+ });
142
+ }
143
+
144
+ });
assets/js/pixel-events.min.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ /*! - v0.1.0
2
+ *
3
+ * Copyright (c) 2016; * Licensed GPLv2+ */
4
+ jQuery(document).ready(function(a){"use strict";var b=function(a){return aepc_extend_args(a)};aepc_pixel_events.standard_events&&a.each(aepc_pixel_events.standard_events,function(c,d){a.each(d,function(a,d){d?fbq("track",c,b(d)):fbq("track",c)})}),a("ul.products").on("click",".ajax_add_to_cart",function(c){if("no"===aepc_pixel.enable_addtocart)return c;var d=a(this),e=d.closest("li.product"),f=d.data("product_sku")?d.data("product_sku"):d.data("product_id");fbq("track","AddToCart",b({content_ids:[f],content_type:"product",content_name:e.find("h3").text(),content_category:e.find("span[data-content_category]").data("content_category"),value:parseFloat(e.find("span.amount").clone().children().remove().end().text()),currency:woocommerce_params.currency}))}).on("click",".add_to_wishlist, .wl-add-to",function(c){if("no"===aepc_pixel.enable_wishlist)return c;var d=a(this),e=d.closest("li.product"),f=d.data("product_sku")?d.data("product_sku"):d.data("product_id");fbq("track","AddToWishlist",b({content_ids:[f],content_type:"product",content_name:e.find("h3").text(),content_category:e.find("span[data-content_category]").data("content_category"),value:parseFloat(e.find("span.amount").clone().children().remove().end().text()),currency:woocommerce_params.currency}))}),a("div.product").on("click",".single_add_to_cart_button",function(a){"yes"===aepc_pixel.enable_addtocart&&"yes"===wc_add_to_cart_params.cart_redirect_after_add&&fbq("track","AddToCart",b(aepc_pixel_events.ViewContent))}).on("click",".add_to_wishlist, .wl-add-to",function(a){return"no"===aepc_pixel.enable_wishlist?a:void fbq("track","AddToWishlist",b(aepc_pixel_events.ViewContent))}),a("form.checkout").on("checkout_place_order",function(a){return"no"===aepc_pixel.enable_addpaymentinfo?a:(fbq("track","AddPaymentInfo",b({content_type:aepc_pixel_events.InitiateCheckout.content_type,content_ids:aepc_pixel_events.InitiateCheckout.content_ids,value:aepc_pixel_events.InitiateCheckout.value,currency:aepc_pixel_events.InitiateCheckout.currency})),!0)}),"undefined"!=typeof aepc_pixel_events.custom_events&&a.each(aepc_pixel_events.custom_events,function(c,d){a.each(d,function(a,d){fbq("trackCustom",c,b(d))})}),"undefined"!=typeof aepc_pixel_events.css_events&&a.each(aepc_pixel_events.css_events,function(c,d){a.each(d,function(d,e){a(c).on("click",function(){fbq(e.trackType,e.trackName,b(e.trackParams))})})}),"undefined"!=typeof aepc_pixel_events.link_clicks&&a.each(aepc_pixel_events.link_clicks,function(c,d){c=c.replace(/\*/g,"[^/]+"),a("a").filter(function(){return a(this).attr("href").match(new RegExp(c))}).on("click",function(c){a.each(d,function(a,c){fbq(c.trackType,c.trackName,b(c.trackParams))})})})});
includes/admin/assets/fonts/pixel-caffeine.eot ADDED
Binary file
includes/admin/assets/fonts/pixel-caffeine.svg ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Copyright (C) 2016 by original authors @ fontello.com</metadata>
5
+ <defs>
6
+ <font id="fontello" horiz-adv-x="1000" >
7
+ <font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
8
+ <missing-glyph horiz-adv-x="1000" />
9
+ <glyph glyph-name="espresso" unicode="&#xe800;" d="M965 569c-35 0-70-11-99-23v146c0 88-170 158-416 158s-450-70-450-158c0 0 0-479 0-479 0-188 152-357 339-357h205c175 0 316 152 327 327 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30-11 59-23 94-23 111 0 205 94 205 205s-94 204-205 204z m-82-210c0 47 35 82 88 82 47 0 88-35 88-82s-36-82-88-82c-53 0-88 35-88 82z m-450 257c-176 0-316 59-322 59l-29 17 35 12c6 0 146 58 322 58 175 0 315-58 321-58l35-12-41-17c-5 0-146-59-321-59z" horiz-adv-x="1170" />
10
+ </font>
11
+ </defs>
12
+ </svg>
includes/admin/assets/fonts/pixel-caffeine.ttf ADDED
Binary file
includes/admin/assets/fonts/pixel-caffeine.woff ADDED
Binary file
includes/admin/assets/fonts/pixel-caffeine.woff2 ADDED
Binary file
includes/admin/assets/img/icon-fb.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M81.2 0c5.2 0 9.6 1.8 13.2 5.5 3.7 3.7 5.5 8.1 5.5 13.2v62.5c0 5.2-1.8 9.6-5.5 13.2 -3.7 3.7-8.1 5.5-13.2 5.5H69V61.3h13l2-15.1H69v-9.6c0-2.4 0.5-4.3 1.5-5.5 1-1.2 3-1.8 6-1.8l7.9-0.1V15.7c-2.7-0.4-6.6-0.6-11.6-0.6 -5.9 0-10.6 1.7-14.2 5.2 -3.5 3.5-5.3 8.4-5.3 14.7v11.1h-13v15.1h13V100H18.8c-5.2 0-9.6-1.8-13.2-5.5C1.8 90.8 0 86.4 0 81.3V18.8c0-5.2 1.8-9.6 5.5-13.2C9.2 1.8 13.6 0 18.8 0H81.2z" fill="#FFF"/></svg>
includes/admin/assets/img/placeholder-loading-news.png ADDED
Binary file
includes/admin/assets/img/renew-token.png ADDED
Binary file
includes/admin/assets/img/select2/select2-spinner.gif ADDED
Binary file
includes/admin/assets/img/select2/select2.png ADDED
Binary file
includes/admin/assets/img/select2/select2x2.png ADDED
Binary file
includes/admin/assets/img/store-logo/woocommerce.png ADDED
Binary file
includes/admin/assets/img/walter-dashboard-config.png ADDED
Binary file
includes/admin/assets/img/walter-face-2.png ADDED
Binary file
includes/admin/assets/img/walter-face-lost.png ADDED
Binary file
includes/admin/assets/img/walter-face.png ADDED
Binary file
includes/admin/assets/js/admin.js ADDED
@@ -0,0 +1,1512 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * UI scripts for admin settings page
3
+ */
4
+
5
+ jQuery(document).ready(function($){
6
+ 'use strict';
7
+
8
+ var unsaved = false,
9
+ dropdown_data = [],
10
+
11
+ fragments = {
12
+ 'fb_pixel_box': '.panel.panel-settings-set-fb-px',
13
+ 'ca_list': '.panel.panel-ca-list',
14
+ 'conversions_list': '.panel.panel-ce-tracking',
15
+ 'sidebar': '.plugin-sidebar'
16
+ },
17
+
18
+ init_configs = function() {
19
+ if ( $.fn.select2 ) {
20
+ $.extend( $.fn.select2.defaults, {
21
+ dropdownCssClass: 'adespresso-select2',
22
+ containerCssClass: 'adespresso-select2',
23
+ formatNoMatches: false
24
+ } );
25
+ }
26
+ },
27
+
28
+ addLoader = function( el ) {
29
+ if ( typeof el.data('select2') !== 'undefined' ) {
30
+ var select2 = el.data('select2'),
31
+ select2container = select2.container;
32
+
33
+ select2container.addClass( 'loading-data' );
34
+ }
35
+
36
+ else if ( el.is( 'div, form' ) ) {
37
+ el.addClass( 'loading-data loading-box' );
38
+ }
39
+ },
40
+
41
+ removeLoader = function( el ) {
42
+ if ( typeof el.data('select2') !== 'undefined' ) {
43
+ var select2 = el.data('select2'),
44
+ select2container = select2.container;
45
+
46
+ select2container.removeClass( 'loading-data' );
47
+ }
48
+
49
+ else if ( el.is( 'div, form' ) ) {
50
+ el.removeClass( 'loading-data loading-box' );
51
+ }
52
+ },
53
+
54
+ removeMessage = function( el, type ) {
55
+ if ( 'error' === type ) {
56
+ type = 'danger';
57
+ }
58
+
59
+ if ( el.find( '.alert-' + type ).length ) {
60
+ el.find( '.alert-' + type ).remove();
61
+ }
62
+ },
63
+
64
+ addMessage = function( el, type, msg ) {
65
+ if ( 'error' === type ) {
66
+ type = 'danger';
67
+ }
68
+
69
+ removeMessage( el, type );
70
+
71
+ var msgWrap = $( '<div />', {
72
+ class: 'alert alert-' + type + ' alert-dismissable',
73
+ role: 'alert',
74
+ html: msg
75
+ }).prepend( $( '<button />', { type: 'button', class: 'close', "data-dismiss": 'alert', text: '×' } ) );
76
+
77
+ el.prepend( msgWrap );
78
+ },
79
+
80
+ showCopyTooltip = function(elem, msg) {
81
+ $( elem ).data({
82
+ title: msg,
83
+ placement: 'bottom'
84
+ }).tooltip('show');
85
+ },
86
+
87
+ set_unsaved = function () {
88
+ unsaved = true;
89
+ },
90
+
91
+ set_saved = function () {
92
+ unsaved = false;
93
+ },
94
+
95
+ alert_unsaved = function() {
96
+ $( '.wrap form' )
97
+
98
+ .on('change', ':input:not(#date-range)', function(){
99
+ set_unsaved();
100
+ })
101
+
102
+ // Prevent alert if user submitted form
103
+ .on( 'submit', function() {
104
+ set_saved();
105
+ });
106
+
107
+ window.onbeforeunload = function(){
108
+ if ( unsaved ) {
109
+ return aepc_admin.unsaved;
110
+ }
111
+ };
112
+ },
113
+
114
+ apply_autocomplete = function( el, data ) {
115
+ el.select2({
116
+ tags: data
117
+ });
118
+ },
119
+
120
+ // Load the dropdown autocomplete suggestions from AJAX on page loading and then apply autocomplete into the dropdown
121
+ load_dropdown_data = function( e ) {
122
+ var context = $( typeof e !== 'undefined' ? e.currentTarget : document.body ),
123
+ loaders = [
124
+ { action: 'get_custom_fields', dropdown: 'input.custom-fields' },
125
+ { action: 'get_languages', dropdown: '#conditions_language' },
126
+ { action: 'get_device_types', dropdown: '#conditions_device_types' },
127
+ { action: 'get_categories', dropdown: '' },
128
+ { action: 'get_tags', dropdown: '' },
129
+ { action: 'get_posts', dropdown: '' },
130
+ { action: 'get_dpa_params', dropdown: '' },
131
+ { action: 'get_currencies', dropdown: '' }
132
+ ];
133
+
134
+ $.each( loaders, function( index, loader ){
135
+ if ( ! aepc_admin.actions.hasOwnProperty( loader.action ) ) {
136
+ return;
137
+ }
138
+
139
+ // If already loaded data, simply apply autocomplete without make ajax request after
140
+ if ( dropdown_data.hasOwnProperty( loader.action ) ) {
141
+ if ( loader.dropdown !== '' ) {
142
+ apply_autocomplete( context.find( loader.dropdown ), dropdown_data[ loader.action ] );
143
+ }
144
+
145
+ return;
146
+ }
147
+
148
+ // Create index, so if the function is triggered again before the ajax is complete, it doesn't call a new ajax call
149
+ dropdown_data[ loader.action ] = [];
150
+
151
+ $.ajax({
152
+ url: aepc_admin.ajax_url,
153
+ data: {
154
+ action: aepc_admin.actions[ loader.action ].name,
155
+ _wpnonce: aepc_admin.actions[ loader.action ].nonce
156
+ },
157
+ success: function( data ) {
158
+ // Save data to avoid request again
159
+ dropdown_data[ loader.action ] = data;
160
+ if ( loader.dropdown !== '' ) {
161
+ apply_autocomplete( context.find( loader.dropdown ), data );
162
+ }
163
+ },
164
+ dataType: 'json'
165
+ });
166
+ });
167
+
168
+ // Specific cases
169
+ context.find('#taxonomy_key').on( 'change.data', function(){
170
+ var tax = $(this).val().replace( 'tax_', '' );
171
+
172
+ if ( dropdown_data.hasOwnProperty( 'get_categories' ) && dropdown_data.get_categories.hasOwnProperty( tax ) ) {
173
+ apply_autocomplete( context.find( '#taxonomy_terms' ), dropdown_data.get_categories[ tax ] );
174
+ }
175
+ });
176
+
177
+ // Specific cases
178
+ context.find('#tag_key').on( 'change.data', function(){
179
+ var tax = $(this).val().replace( 'tax_', '' );
180
+
181
+ if ( dropdown_data.hasOwnProperty( 'get_tags' ) && dropdown_data.get_tags.hasOwnProperty( tax ) ) {
182
+ apply_autocomplete( context.find( '#tag_terms' ), dropdown_data.get_tags[ tax ] );
183
+ }
184
+ });
185
+
186
+ // Specific cases
187
+ context.find('#pt_key').on( 'change.data', function(){
188
+ var post_type = $(this).val();
189
+
190
+ if ( dropdown_data.hasOwnProperty( 'get_posts' ) && dropdown_data.get_posts.hasOwnProperty( post_type ) ) {
191
+ apply_autocomplete( context.find( '#pt_posts' ), dropdown_data.get_posts[ post_type ] );
192
+ }
193
+ });
194
+
195
+ // Trigger specific cases on fields shown, when is surely loaded ajax requests
196
+ context.find('#event_categories').on( 'change.data', function(){
197
+ context.find('#taxonomy_key').trigger('change.data');
198
+ });
199
+
200
+ // Trigger specific cases on fields shown, when is surely loaded ajax requests
201
+ context.find('#event_tax_post_tag').on( 'change.data', function(){
202
+ context.find('#tag_key').trigger('change.data');
203
+ });
204
+
205
+ // Trigger specific cases on fields shown, when is surely loaded ajax requests
206
+ context.find('#event_posts').on( 'change.data', function(){
207
+ context.find('#pt_key').trigger('change.data');
208
+ });
209
+
210
+ // Trigger specific cases on fields shown, when is surely loaded ajax requests
211
+ context.find('#event_pages').on( 'change.data', function(){
212
+ if ( dropdown_data.hasOwnProperty( 'get_posts' ) && dropdown_data.get_posts.hasOwnProperty( 'page' ) ) {
213
+ apply_autocomplete( context.find( '#pages' ), dropdown_data.get_posts.page );
214
+ }
215
+ });
216
+
217
+ // Trigger specific cases on fields shown, when is surely loaded ajax requests
218
+ context.find('#event_custom_fields').on( 'change.data', function(e){
219
+ var keys = [{ id: '[[any]]', text: aepc_admin.filter_any }];
220
+
221
+ // Add the custom fields already loaded via ajax
222
+ keys = $.merge( keys, dropdown_data.get_custom_fields );
223
+
224
+ context.find('#custom_field_keys option').remove();
225
+ context.find('#custom_field_keys').append( $.map(keys, function(v, i){
226
+ if ( '[[any]]' === v.id ) {
227
+ v.text = '--- ' + v.text + ' ---';
228
+ }
229
+ return $('<option>', { val: v.id, text: v.text });
230
+ }) );
231
+ });
232
+
233
+ // Add ability to write an option not present on list of select
234
+ context.find('.js-ecommerce input').on( 'change.data', function(){
235
+ context.find('#dpa_key')
236
+ .select2({
237
+ placeholder: aepc_admin.filter_custom_field_placeholder,
238
+ searchInputPlaceholder: aepc_admin.filter_custom_field_placeholder,
239
+ data: { results: dropdown_data.get_dpa_params },
240
+ query: function (query) {
241
+ var data = {
242
+ results: dropdown_data.get_dpa_params
243
+ };
244
+
245
+ if ( '' !== query.term ) {
246
+ data.results = $.merge( [{id: query.term, text: query.term}], data.results );
247
+ }
248
+
249
+ // Filter matched
250
+ data.results = data.results.filter( function( term ){
251
+ return query.matcher( query.term, term.text );
252
+ });
253
+
254
+ query.callback(data);
255
+ }
256
+ })
257
+
258
+ // Select the val
259
+ .select2( 'data', { id: context.find('#dpa_key').val(), text: context.find('#dpa_key').val() } )
260
+
261
+ // Remove value if the key change
262
+ .on( 'change', function() {
263
+ context.find('#dpa_value').val('');
264
+ } )
265
+
266
+ // Avoid to add more times the same event when the user changes only event radio
267
+ .off( 'change.dpa' )
268
+
269
+ .on( 'change.dpa', function(){
270
+ var key = $(this).val(),
271
+ tags = [];
272
+
273
+ if ( 'content_ids' === key ) {
274
+ if ( dropdown_data.hasOwnProperty( 'get_posts' ) && dropdown_data.get_posts.hasOwnProperty( 'product' ) ) {
275
+ tags = dropdown_data.get_posts.product;
276
+ }
277
+ }
278
+
279
+ else if ( 'content_type' === key ) {
280
+ tags = [ 'product', 'product_group' ];
281
+ }
282
+
283
+ else if ( 'currency' === key ) {
284
+ if ( dropdown_data.hasOwnProperty( 'get_currencies' ) ) {
285
+ tags = dropdown_data.get_currencies.map( function( tag ) {
286
+ var txt = document.createElement("textarea");
287
+ txt.innerHTML = tag.text;
288
+ tag.text = txt.value;
289
+ return tag;
290
+ } );
291
+ }
292
+ }
293
+
294
+ context.find('#dpa_value').select2({
295
+ tags: tags
296
+ });
297
+ })
298
+
299
+ .triggerHandler( 'change.dpa' );
300
+ });
301
+ },
302
+
303
+ custom_dropdown = function() {
304
+ $('select').select2({
305
+ minimumResultsForSearch: 5
306
+ });
307
+
308
+ $('input.multi-tags').select2({
309
+ tags:[]
310
+ });
311
+ },
312
+
313
+ bootstrap_components = function( e ) {
314
+ var context = $( typeof e !== 'undefined' ? e.currentTarget : document );
315
+
316
+ context.find('.collapse').collapse({toggle: false});
317
+
318
+ context.find('[data-toggle="tooltip"]').tooltip();
319
+
320
+ context.find('[data-toggle="popover"]').popover({
321
+ container: '#wpbody .pixel-caffeine-wrapper' // If it is relative to page body the css doesn't work.
322
+ });
323
+
324
+ $.material.init();
325
+ },
326
+
327
+ bootstrap_init = function( e ) {
328
+ var context = $( typeof e !== 'undefined' ? e.currentTarget : document );
329
+
330
+ // Collapse for select
331
+ context.find('select.js-collapse').on( 'change.bs', function(){
332
+ var select = $(this),
333
+ selected = select.find('option:selected');
334
+
335
+ if ( ! context.find( selected.data('target') ).hasClass('in') ) {
336
+ context.find( select.data('parent') ).find('.collapse').collapse('hide');
337
+ context.find( selected.data('target') ).collapse('show');
338
+ }
339
+ }).trigger('change.bs');
340
+
341
+ // Collapse for checkboxes
342
+ context.find('input.js-collapse').on( 'change.bs', function(){
343
+ var check = $(this),
344
+ checked = check.filter(':checked');
345
+
346
+ if ( ! context.find( checked.data('target') ).hasClass('in') ) {
347
+ context.find( check.data('parent') ).find('.collapse').collapse('hide');
348
+ context.find( checked.data('target') ).collapse('show');
349
+ }
350
+ }).trigger('change.bs');
351
+
352
+ // Collapse out CA fields if event type select is changed
353
+ context.find('#ca_event_type').on( 'change.bs', function(){
354
+ context.find('.collapse-parameters').find('.collapse').collapse('hide');
355
+ context.find('.js-collapse-events').find('input:checked').prop( 'checked', false );
356
+ });
357
+
358
+ bootstrap_components( e );
359
+ },
360
+
361
+ fields_components = function( e ) {
362
+ var context = $( typeof e !== 'undefined' ? e.currentTarget : document.body );
363
+
364
+ // Option dependencies
365
+ context.find('select.js-dep').on( 'change', function(){
366
+ var select = $(this),
367
+ form = select.closest('form'),
368
+ selected = select.val(),
369
+ toggleDiv = select.attr('id'),
370
+ ps = form.find('div[class*="' + toggleDiv + '"]'),
371
+ p = form.find( '.' + toggleDiv + '-' + selected );
372
+
373
+ ps.hide();
374
+
375
+ if ( p.length ) {
376
+ p.show();
377
+ }
378
+ }).trigger('change');
379
+
380
+ // Toggle advanced data box
381
+ context.find('.js-show-advanced-data').on( 'change.components', function(){
382
+ var checkbox = $(this),
383
+ form = checkbox.closest('form');
384
+
385
+ // Show box
386
+ form.find('div.advanced-data').collapse( checkbox.is(':checked') ? 'show' : 'hide' );
387
+ }).trigger('change.components');
388
+
389
+ // Toggle event parameters, depending by event select
390
+ context.find('select#event_standard_events').on( 'change.components', function(){
391
+ var select = $(this),
392
+ form = select.closest('form'),
393
+ fields = select.find('option:selected').data('fields');
394
+
395
+ form.find('div.event-field').hide();
396
+
397
+ $.each( fields.split(',').map( function(str) { return str.trim(); } ), function( index, field ) {
398
+ form.find( 'div.event-field.' + field + '-field' ).show();
399
+ });
400
+ }).trigger('change.components');
401
+
402
+ // Label below switches need to be saved
403
+ context.find('input.js-switch-labeled-tosave').on( 'change.components', function(){
404
+ var checkbox = $(this),
405
+ status = checkbox.closest('.form-group').find('.text-status'),
406
+ value = checkbox.is(':checked') ? 'yes' : 'no',
407
+ togglebutton = checkbox.closest('.togglebutton'),
408
+ original_value = checkbox.data('original-value');
409
+
410
+ // Save the original status message in data to use if the change will be reverted
411
+ if ( typeof status.data( 'original-status' ) === 'undefined' ) {
412
+ status.data( 'original-status', status.clone() );
413
+ }
414
+
415
+ // Init
416
+ if ( original_value !== value ) {
417
+ if ( ! status.hasClass('text-status-pending') ) {
418
+ togglebutton.addClass('pending');
419
+ }
420
+ status.addClass( 'text-status-pending' ).text( aepc_admin.switch_unsaved );
421
+ } else {
422
+ if ( ! $( status.data( 'original-status' ) ).hasClass('text-status-pending') ) {
423
+ togglebutton.removeClass('pending');
424
+ }
425
+ status.replaceWith( status.data( 'original-status' ) );
426
+ }
427
+ }).trigger('change.components');
428
+
429
+ // Label below switches
430
+ context.find('input.js-switch-labeled').on( 'change.components', function(){
431
+ var checkbox = $(this),
432
+ switchStatus = checkbox.closest('.form-group').find('.text-status');
433
+
434
+ // Change switch label
435
+ switchStatus.removeClass('hide');
436
+ if ( checkbox.is(':checked') ) {
437
+ switchStatus.filter('.text-status-off').addClass('hide');
438
+ } else {
439
+ switchStatus.filter('.text-status-on').addClass('hide');
440
+ }
441
+ });
442
+
443
+ var reindex_params = function() {
444
+ context.find('div.js-custom-params').children('div').each(function(index){
445
+ var div = $(this);
446
+
447
+ div.find('input[type="text"]').each(function(){
448
+ var input = $(this);
449
+
450
+ input.attr('name', input.attr('name').replace( /\[[0-9]+\]/, '[' + index + ']' ) );
451
+ input.attr('id', input.attr('id').replace( /_[0-9]+$/, '_' + index ) );
452
+ });
453
+ });
454
+ };
455
+
456
+ // Custom parameters option
457
+ context.find('.js-add-custom-param').on( 'click', function(e){
458
+ if ( typeof wp === 'undefined' ) {
459
+ return e;
460
+ }
461
+
462
+ e.preventDefault();
463
+
464
+ var paramsTmpl = wp.template( 'custom-params' ),
465
+ divParameters = $(this).closest('div.js-custom-params'),
466
+ index = parseInt( divParameters.children('div').length );
467
+
468
+ if ( divParameters.find('.js-custom-param:last').length ) {
469
+ divParameters.find('.js-custom-param:last').after( paramsTmpl( { index: index-1 } ) );
470
+ } else {
471
+ divParameters.prepend( paramsTmpl( { index: index-1 } ) );
472
+ }
473
+ });
474
+
475
+ // Custom parameters delete action
476
+ context.find('.js-custom-params').on( 'click', '.js-delete-custom-param', function(e){
477
+ e.preventDefault();
478
+
479
+ var button = $(this),
480
+ modal = $('#modal-confirm-delete'),
481
+ params = button.closest('.js-custom-param'),
482
+
483
+ remove = function() {
484
+ modal.modal('hide');
485
+ params.remove();
486
+ reindex_params();
487
+ };
488
+
489
+ // If any value is defined, remove without confirm
490
+ if ( params.find('input[id^="event_custom_params_key"]').val() === '' && params.find('input[id^="event_custom_params_value"]').val() === '' ) {
491
+ remove();
492
+
493
+ // If some value is written inside inputs, confirm before to delete
494
+ } else {
495
+
496
+ modal
497
+
498
+ // Show modal
499
+ .modal('show')
500
+
501
+ // confirm action
502
+ .one('click', '.btn-ok', remove);
503
+ }
504
+ });
505
+
506
+ // Set selected in the dropdown, if data-selected is defined
507
+ context.find('select[data-selected]').each( function() {
508
+ var select = $(this),
509
+ selected = select.data('selected');
510
+
511
+ select.data('selected', '').val( selected ).trigger('change');
512
+ });
513
+
514
+ // Set selected in the dropdown, if data-selected is defined
515
+ context.find('select[data-selected]').each( function() {
516
+ var select = $(this),
517
+ selected = select.data('selected');
518
+
519
+ select.val( selected ).trigger('change');
520
+ });
521
+ },
522
+
523
+ ca_filter_adjust = function( form ) {
524
+ var includeList = form.find('.js-include-filters'),
525
+ excludeList = form.find('.js-exclude-filters'),
526
+ filters = form.find('.js-ca-filters');
527
+
528
+ // Hide the list if become empty
529
+ if ( 0 === includeList.find('ul.list-filter').find('li').length ) {
530
+ includeList.addClass('hide');
531
+ } else {
532
+ includeList.removeClass('hide');
533
+ }
534
+ if ( 0 === excludeList.find('ul.list-filter').find('li').length ) {
535
+ excludeList.addClass('hide');
536
+ } else {
537
+ excludeList.removeClass('hide');
538
+ }
539
+
540
+ // Hide message feedback and show the list
541
+ if ( includeList.hasClass('hide') && excludeList.hasClass('hide') ) {
542
+ filters.find('div.no-filters-feedback').removeClass('hide');
543
+ } else {
544
+ filters.find('div.no-filters-feedback').addClass('hide');
545
+
546
+ // Remove the AND operator from the first item of each list
547
+ includeList.find('ul.list-filter').find('li:first').find('.filter-and').remove();
548
+ excludeList.find('ul.list-filter').find('li:first').find('.filter-and').remove();
549
+ }
550
+ },
551
+
552
+ ca_filter_form = function( e ){
553
+ var modal = $(this),
554
+ target = $( e.relatedTarget ),
555
+ parentForm = target.closest('form');
556
+
557
+ // Valid both add and edit
558
+ modal.find( '#ca-filter-form' ).on( 'submit', function(e){
559
+ e.preventDefault();
560
+
561
+ var form = $(this),
562
+ scope = form.data('scope'),
563
+ filters = parentForm.find('.js-ca-filters'),
564
+ filter_item = wp.template( 'ca-filter-item' ),
565
+ main_condition = form.find('[name^="ca_rule[][main_condition]"]:checked' ),
566
+ submitButton = form.find('button[type="submit"]'),
567
+ submitButtonText = submitButton.text(),
568
+ filter_list = filters.find( '.js-' + main_condition.val() + '-filters' ),
569
+ fields = main_condition
570
+ .add( form.find('[name^="ca_rule[][event_type]"]') )
571
+ .add( form.find('[name^="ca_rule[][event]"]:checked') )
572
+ .add( form.find('.collapse-parameters .collapse.in').find('[name^="ca_rule[][conditions]"]') ),
573
+
574
+ // Make an AJAX request to retrieve the statement to show
575
+ add_filter = function( statement ){
576
+ var hidden_fields = $('<div />'),
577
+ index = 'add' === scope ? filters.find('li').length : target.closest('li').data('filter-id');
578
+
579
+ // Remove feedback loader
580
+ removeLoader( form );
581
+
582
+ // Block and show error message if any event type is selected
583
+ if ( !statement || 0 === statement.length ) {
584
+ addMessage( form.find('.modal-body'), 'error', aepc_admin.filter_no_condition_error );
585
+ submitButton.text( submitButtonText );
586
+ return;
587
+ }
588
+ // Create all hidden fields with proper name
589
+ fields.each( function(){
590
+ var field = $(this),
591
+ name = field.attr('name'),
592
+ value = field.val();
593
+
594
+ hidden_fields.append( $('<input />', {
595
+ type: 'hidden',
596
+ name: name.replace( '[]', '[' + index + ']' ),
597
+ value: value
598
+ }) );
599
+ });
600
+
601
+ // Apply template
602
+ var itemTpl = filter_item({
603
+ nfilters: filter_list.find('li').length - ( 'edit' === scope && $.contains( filter_list.get()[0], target.get()[0] ) ? 1 : 0 ),
604
+ statement: statement,
605
+ hidden_inputs: hidden_fields.html(),
606
+ index: index
607
+ });
608
+
609
+ // Edit only if we are in edit mode and the element to edit is contained in the list of main_condition
610
+ if ( 'edit' === scope && $.contains( filter_list.get()[0], target.get()[0] ) ) {
611
+ target.closest('li').html( $( itemTpl ).html() );
612
+ } else {
613
+ filter_list.find('ul').append( itemTpl );
614
+
615
+ // Remove the element target if we have to change list
616
+ if ( 'edit' === scope && ! $.contains( filter_list.get()[0], target.get()[0] ) ) {
617
+ target.closest('li').remove();
618
+ }
619
+ }
620
+
621
+ // Show/hide lists when changed
622
+ ca_filter_adjust( parentForm );
623
+
624
+ // close modal
625
+ form.closest('.modal').modal('hide');
626
+
627
+ form.off( 'submit' );
628
+
629
+ };
630
+
631
+ // Remove some eventual error
632
+ removeMessage( form.find('.modal-body'), 'error' );
633
+
634
+ // Block and show error message if any event type is selected
635
+ if ( form.find('.js-collapse-events input:checked').length === 0 ) {
636
+ addMessage( form.find('.modal-body'), 'error', aepc_admin.filter_no_data_error );
637
+ return;
638
+ }
639
+
640
+ // Add feedback loader
641
+ addLoader( form );
642
+
643
+ // Give feedback to user while ajax request run
644
+ submitButton.text( aepc_admin.filter_saving );
645
+
646
+ $.ajax({
647
+ url: aepc_admin.ajax_url,
648
+ method: 'GET',
649
+ data: {
650
+ filter: fields.serializeArray(),
651
+ action: aepc_admin.actions.get_filter_statement.name,
652
+ _wpnonce: aepc_admin.actions.get_filter_statement.nonce
653
+ },
654
+ success: add_filter,
655
+ dataType: 'html'
656
+ });
657
+ });
658
+
659
+ },
660
+
661
+ ca_filter_actions = function( e ) {
662
+ var context = $( typeof e !== 'undefined' ? e.currentTarget : document.body );
663
+
664
+ context.find('.list-filter')
665
+
666
+ // Delete filter
667
+ .on( 'click', '.btn-delete', function(e) {
668
+ e.preventDefault();
669
+
670
+ var form = $(this).closest('form'),
671
+ modal = $('#modal-confirm-delete'),
672
+ itemToRemove = $(this).closest('li');
673
+
674
+ modal
675
+
676
+ // Show modal
677
+ .modal('show', $(this))
678
+
679
+ // confirm action
680
+ .one( 'click', '.btn-ok', function() {
681
+ modal.modal('hide');
682
+
683
+ // Remove the item
684
+ itemToRemove.remove();
685
+
686
+ // Show/hide lists when changed
687
+ ca_filter_adjust( form );
688
+ });
689
+ })
690
+
691
+ // Edit filter
692
+ .on( 'click', '.btn-edit', function(e) {
693
+ e.preventDefault();
694
+
695
+ var form = $(this).closest('form'),
696
+ modal = $('#modal-ca-edit-filter'),
697
+ itemToEdit = $(this).closest('li'),
698
+ fields = itemToEdit.find('.hidden-fields input');
699
+
700
+ modal
701
+
702
+ // Compile form with data
703
+ .on( 'modal-template-loaded', function( event ){
704
+ var form = $(this).find('form');
705
+
706
+ // Set main condition
707
+ var main_condition = fields.filter('[name*="[main_condition]"]').val();
708
+ form.find('input[name*="main_condition"][value="' + main_condition + '"]')
709
+ .prop( 'checked', true )
710
+ .closest('label')
711
+ .addClass('active')
712
+ .siblings()
713
+ .removeClass('active');
714
+
715
+ // Set event type
716
+ var event_type = fields.filter('[name*="[event_type]"]').val(),
717
+ event_type_field = form.find('select[name*="event_type"]').val( event_type );
718
+
719
+ // Set event
720
+ var event_name = fields.filter('[name*="[event]"]').val(),
721
+ event_field = form.find('input[name*="event"][value="' + event_name + '"]').prop( 'checked', true );
722
+
723
+ // Set conditions
724
+ var conditions_wrap = form.find( event_field.data('target') ),
725
+ condition_key = fields.filter('[name*="[conditions][0][key]"]').val(),
726
+ condition_operator = fields.filter('[name*="[conditions][0][operator]"]').val(),
727
+ condition_value = fields.filter('[name*="[conditions][0][value]"]').val();
728
+
729
+ // Exception for custom fields select, because it will generate the options manually on load_dropdown_data function
730
+ if ( conditions_wrap.find('[name*="[conditions][0][key]"]').is('#custom_field_keys') ) {
731
+ conditions_wrap.find('#custom_field_keys').append( $('<option />', { val: condition_key, text: condition_key }) );
732
+ }
733
+
734
+ conditions_wrap.find('[name*="[conditions][0][key]"]').val( condition_key );
735
+ conditions_wrap.find('[name*="[conditions][0][operator]"]').val( condition_operator );
736
+ conditions_wrap.find('[name*="[conditions][0][value]"]').val( condition_value );
737
+ })
738
+
739
+ .one( 'show.bs.modal', function(){
740
+ var form = $(this).find('form');
741
+
742
+ form.find('[name*="event_type"]:checked').trigger('change.data');
743
+ form.find('[name*="event"]:checked').trigger('change.data');
744
+ form.find('.collapse.in [name*="[conditions][0][key]"]').trigger('change.data');
745
+ form.find('.collapse.in [name*="[conditions][0][operator]"]').trigger('change.data');
746
+ form.find('.collapse.in [name*="[conditions][0][value]"]').trigger('change.data');
747
+ })
748
+
749
+ .modal('show', $(this) );
750
+ });
751
+ },
752
+
753
+ calc_distance_top = function( el ) {
754
+ var scrollTop = $( window ).scrollTop(),
755
+ elementOffset = $( el ).offset().top;
756
+
757
+ return elementOffset - scrollTop;
758
+ },
759
+
760
+ analyzed_distance = function () {
761
+ var distance = calc_distance_top( '.plugin-content' ),
762
+ heightWP = parseFloat( $('.wp-toolbar').css('padding-top') ),
763
+ alertWrap = $( '.alert-wrap' ),
764
+ alertHeight = alertWrap.height(),
765
+ alertGhost = $( '.alert-wrap-ghost' );
766
+
767
+ if ( distance <= heightWP ) {
768
+ if ( alertGhost.length === 0 ) {
769
+ alertWrap
770
+ .after('<div class="alert-wrap-ghost"></div>')
771
+ .next('.alert-wrap-ghost').height(alertHeight);
772
+ }
773
+ alertWrap
774
+ .addClass('alert-fixed')
775
+ .css({ 'top': heightWP })
776
+ .width( $('.plugin-content').width() );
777
+ } else {
778
+ alertWrap
779
+ .removeClass('alert-fixed')
780
+ .width('100%');
781
+ alertGhost.remove();
782
+ }
783
+ },
784
+
785
+ init_activity_chart = function() {
786
+ var chartBox = $('#activity-chart');
787
+ if ( chartBox.length ) {
788
+ $.getJSON( aepc_admin.ajax_url + '?action=' + aepc_admin.actions.get_pixel_stats.name + '&_wpnonce=' + aepc_admin.actions.get_pixel_stats.nonce, function (stats) {
789
+
790
+ var getTextWidth = function(text) {
791
+ // re-use canvas object for better performance
792
+ var canvas = getTextWidth.canvas || (getTextWidth.canvas = document.createElement("canvas"));
793
+ var context = canvas.getContext("2d");
794
+ context.font = 'normal 12px sans-serif';
795
+ var metrics = context.measureText(text);
796
+ return metrics.width;
797
+ };
798
+
799
+ // Set default min range as soon as the chart is initialized
800
+ var defaultMinRangeDate = new Date();
801
+ defaultMinRangeDate.setUTCDate( defaultMinRangeDate.getUTCDate() - 7 );
802
+ defaultMinRangeDate.setUTCHours( 0, 0, 0, 0 );
803
+
804
+ chartBox.highcharts( 'StockChart', {
805
+ chart: {
806
+ type: 'line'
807
+ },
808
+
809
+ title: {
810
+ text: null
811
+ },
812
+
813
+ navigator: {
814
+ enabled: true
815
+ },
816
+
817
+ rangeSelector : {
818
+ enabled: false
819
+ },
820
+
821
+ plotOptions: {
822
+ spline: {
823
+ marker: {
824
+ enabled: true
825
+ }
826
+ }
827
+ },
828
+
829
+ xAxis: {
830
+ min: defaultMinRangeDate.getTime()
831
+ },
832
+
833
+ yAxis: {
834
+ gridLineColor: "#F4F4F4"
835
+ },
836
+
837
+ series: [{
838
+ name: 'Pixel fires',
839
+ data: stats,
840
+ dataGrouping: {
841
+ approximation: 'sum',
842
+ forced: true,
843
+ units: [['day', [1]]]
844
+ },
845
+ pointInterval: 3600 * 1000 // one hour
846
+ }]
847
+ });
848
+
849
+ chartBox.closest('.panel').find('select#date-range').select2({
850
+ minimumResultsForSearch: 5,
851
+ width: 'element'
852
+ });
853
+
854
+ // Set date range
855
+ chartBox.closest('.panel').on( 'change.chart.range', 'select#date-range', function() {
856
+ var chart = chartBox.highcharts(),
857
+ range = $(this).val(),
858
+ today = new Date(),
859
+ yesterday = new Date();
860
+
861
+ yesterday.setDate( today.getUTCDate() - 1 );
862
+
863
+ if ( 'today' === range ) {
864
+ chart.xAxis[0].setExtremes( today.setUTCHours( 0, 0, 0, 0 ), today.setUTCHours( 23, 59, 59, 999 ) );
865
+ chart.xAxis[0].setDataGrouping({
866
+ approximation: 'sum',
867
+ forced: true,
868
+ units: [['hour', [1]]]
869
+ });
870
+ }
871
+
872
+ else if ( 'yesterday' === range ) {
873
+ chart.xAxis[0].setExtremes( yesterday.setUTCHours( 0, 0, 0, 0 ), yesterday.setUTCHours( 23, 59, 59, 999 ) );
874
+ chart.xAxis[0].setDataGrouping({
875
+ approximation: 'sum',
876
+ forced: true,
877
+ units: [['hour', [1]]]
878
+ });
879
+ }
880
+
881
+ else if ( 'last-7-days' === range ) {
882
+ var last_7_days = yesterday;
883
+ last_7_days.setDate( today.getUTCDate() - 7 );
884
+ chart.xAxis[0].setExtremes( last_7_days.setUTCHours( 0, 0, 0, 0 ), today.setUTCHours( 23, 59, 59, 999 ) );
885
+ chart.xAxis[0].setDataGrouping({
886
+ approximation: 'sum',
887
+ forced: true,
888
+ units: [['day', [1]]]
889
+ });
890
+ }
891
+
892
+ else if ( 'last-14-days' === range ) {
893
+ var last_14_days = yesterday;
894
+ last_14_days.setDate( today.getUTCDate() - 14 );
895
+ chart.xAxis[0].setExtremes( last_14_days.setUTCHours( 0, 0, 0, 0 ), today.setUTCHours( 23, 59, 59, 999 ) );
896
+ chart.xAxis[0].setDataGrouping({
897
+ approximation: 'sum',
898
+ forced: true,
899
+ units: [['day', [1]]]
900
+ });
901
+ }
902
+ });
903
+
904
+ });
905
+ }
906
+ },
907
+
908
+ load_facebook_options_box = function( e ){
909
+ var context = typeof e !== 'undefined' ? $(this) : $( document.body ), // it could be a modal
910
+ account_ids = context.find('select#aepc_account_id'),
911
+ pixel_ids = context.find('select#aepc_pixel_id'),
912
+ saved_account_id = $('form#mainform').find('#aepc_account_id').val(),
913
+ saved_pixel_id = $('form#mainform').find('#aepc_pixel_id').val(),
914
+
915
+ populate_pixel_ids = function() {
916
+ var account_id = account_ids.val() ? JSON.parse( account_ids.val() ).id : '';
917
+
918
+ if ( ! dropdown_data.hasOwnProperty( 'get_pixel_ids' ) || ! dropdown_data.get_pixel_ids.hasOwnProperty( account_id ) ) {
919
+ return;
920
+ }
921
+
922
+ var keys = $.merge( [{ id: '', text: '' }], dropdown_data.get_pixel_ids[ account_id ] );
923
+
924
+ // Add placeholder if any value is present on dropdown
925
+ if ( 1 === keys.length ) {
926
+ keys[0].text = aepc_admin.fb_option_no_pixel;
927
+ pixel_ids.prop( 'disabled', true );
928
+ } else {
929
+ pixel_ids.prop( 'disabled', false );
930
+ }
931
+
932
+ pixel_ids.find('option').remove();
933
+ pixel_ids.append( $.map(keys, function(v, i){
934
+ return $('<option>', { val: v.id, text: v.text, selected: v.id === saved_pixel_id });
935
+ }) );
936
+
937
+ // Select if there is only one option
938
+ if ( pixel_ids.find('option').length === 2 ) {
939
+ pixel_ids.find('option:eq(1)').prop('selected', true);
940
+ }
941
+
942
+ pixel_ids.val( pixel_ids.find('option:selected').val() ).trigger('change');
943
+ },
944
+
945
+ load_pixel_ids = function() {
946
+ var account_id = account_ids.val() ? JSON.parse( account_ids.val() ).id : '';
947
+
948
+ // Add loader feedback on select
949
+ addLoader( pixel_ids );
950
+
951
+ $.ajax({
952
+ url: aepc_admin.ajax_url,
953
+ data: {
954
+ action: aepc_admin.actions.get_pixel_ids.name,
955
+ _wpnonce: aepc_admin.actions.get_pixel_ids.nonce,
956
+ account_id: account_id
957
+ },
958
+ success: function( data ) {
959
+ // Save data to avoid request again
960
+ if ( ! dropdown_data.hasOwnProperty( 'get_pixel_ids' ) ) {
961
+ dropdown_data.get_pixel_ids = {};
962
+ }
963
+ dropdown_data.get_pixel_ids[ account_id ] = data;
964
+ populate_pixel_ids();
965
+
966
+ // Remove loader from select
967
+ removeLoader( pixel_ids );
968
+ },
969
+ dataType: 'json'
970
+ });
971
+ },
972
+
973
+ init_pixel_dropdown = function( e ) {
974
+ if ( typeof e !== 'undefined' && e.hasOwnProperty( 'type' ) && 'change' === e.type ) {
975
+ pixel_ids.val('').trigger('change');
976
+ pixel_ids.find('option').remove();
977
+ }
978
+
979
+ if ( account_ids.val() ) {
980
+ var account_id = account_ids.val() ? JSON.parse( account_ids.val() ).id : '';
981
+
982
+ if ( ! dropdown_data.hasOwnProperty( 'get_pixel_ids' ) || ! dropdown_data.get_pixel_ids.hasOwnProperty( account_id ) ) {
983
+ load_pixel_ids();
984
+ } else {
985
+ populate_pixel_ids();
986
+ }
987
+ }
988
+ },
989
+
990
+ populate_account_ids = function() {
991
+ if ( ! dropdown_data.hasOwnProperty( 'get_account_ids' ) ) {
992
+ return;
993
+ }
994
+
995
+ var keys = $.merge( [{ id: '', text: '' }], dropdown_data.get_account_ids );
996
+
997
+ account_ids.find('option').remove();
998
+ account_ids.append( $.map(keys, function(v, i){
999
+ return $('<option>', { val: v.id, text: v.text, selected: v.id === saved_account_id });
1000
+ }) );
1001
+
1002
+ account_ids.on( 'change', init_pixel_dropdown ).trigger('change');
1003
+ },
1004
+
1005
+ load_account_ids = function() {
1006
+
1007
+ // Add loader feedback on select
1008
+ addLoader( account_ids );
1009
+
1010
+ $.ajax({
1011
+ url: aepc_admin.ajax_url,
1012
+ data: {
1013
+ action: aepc_admin.actions.get_account_ids.name,
1014
+ _wpnonce: aepc_admin.actions.get_account_ids.nonce
1015
+ },
1016
+ success: function( data ) {
1017
+ // Save data to avoid request again
1018
+ dropdown_data.get_account_ids = data;
1019
+ populate_account_ids();
1020
+
1021
+ // Remove loader from select
1022
+ removeLoader( account_ids );
1023
+ },
1024
+ dataType: 'json'
1025
+ });
1026
+ },
1027
+
1028
+ init_account_dropdown = function() {
1029
+ if ( account_ids.length <= 0 ) {
1030
+ return;
1031
+ }
1032
+
1033
+ if ( ! dropdown_data.hasOwnProperty( 'get_account_ids' ) ) {
1034
+ load_account_ids();
1035
+ } else {
1036
+ populate_account_ids();
1037
+ }
1038
+ };
1039
+
1040
+ if ( saved_account_id && saved_pixel_id ) {
1041
+ var saved_account = JSON.parse( saved_account_id ),
1042
+ saved_pixel = JSON.parse( saved_pixel_id );
1043
+
1044
+ account_ids.append( $('<option>', { val: saved_account_id, text: saved_account.name + ' (#' + saved_account.id + ')', selected: true }) ).trigger('change');
1045
+ pixel_ids.append( $('<option>', { val: saved_pixel_id, text: saved_pixel.name + ' (#' + saved_pixel.id + ')', selected: true }) ).trigger('change');
1046
+ }
1047
+
1048
+ // Init dropdown, making ajax requests and loading options into selects
1049
+ init_account_dropdown();
1050
+ init_pixel_dropdown();
1051
+
1052
+ },
1053
+
1054
+ reloadFragment = function( fragment, args ) {
1055
+ if ( ! fragments.hasOwnProperty( fragment ) || ! aepc_admin.actions.hasOwnProperty( 'load_' + fragment ) ) {
1056
+ return;
1057
+ }
1058
+
1059
+ var el = $( fragments[ fragment ] ),
1060
+ data = {
1061
+ action: aepc_admin.actions[ 'load_' + fragment ].name,
1062
+ _wpnonce: aepc_admin.actions[ 'load_' + fragment ].nonce
1063
+ };
1064
+
1065
+ // Remove success messages
1066
+ if ( $.inArray( fragment, [ 'sidebar' ] ) < 0 ) {
1067
+ removeMessage( $('.plugin-content'), 'success' );
1068
+ }
1069
+
1070
+ // add feedback loader
1071
+ addLoader( el );
1072
+
1073
+ // Add query string from current url to data
1074
+ window.location.href.slice( window.location.href.indexOf('?') + 1 ).split('&').forEach( function( val ) {
1075
+ var qs = val.split('=');
1076
+
1077
+ if ( $.inArray( qs[0], [ 'page', 'tab' ] ) ) {
1078
+ data[ qs[0] ] = qs[1];
1079
+ }
1080
+ });
1081
+
1082
+ // Check if there is some custom arguments to add to the call data
1083
+ if ( typeof args !== 'undefined' ) {
1084
+ $.extend( data, args );
1085
+ }
1086
+
1087
+ $.ajax({
1088
+ url: aepc_admin.ajax_url,
1089
+ data: data,
1090
+ success: function( response ) {
1091
+
1092
+ if ( response.success ) {
1093
+ el.replaceWith( response.data.html );
1094
+
1095
+ if ( response.data.hasOwnProperty( 'messages' ) && response.data.messages.hasOwnProperty( 'success' ) && response.data.messages.success.hasOwnProperty( 'main' ) ) {
1096
+ response.data.messages.success.main.forEach(function( message ) {
1097
+ addMessage( $('.plugin-content .alert-wrap'), 'success', message );
1098
+ });
1099
+ }
1100
+
1101
+ // Reinit some components
1102
+ bootstrap_components();
1103
+ custom_dropdown();
1104
+ fields_components( { currentTarget: fragments[ fragment ] } );
1105
+ analyzed_distance();
1106
+ }
1107
+
1108
+ },
1109
+ dataType: 'json'
1110
+ });
1111
+ };
1112
+
1113
+ // Init configurations
1114
+ init_configs();
1115
+
1116
+ // Activity box chart
1117
+ init_activity_chart();
1118
+
1119
+ // Load the custom fields by AJAX
1120
+ load_dropdown_data();
1121
+
1122
+ // Inizialization Bootstrap components
1123
+ bootstrap_init();
1124
+
1125
+ // Apply custom dropdown
1126
+ custom_dropdown();
1127
+
1128
+ // Load the account and pixel ids on facebook options dropdown, if the user is logged in but not configured
1129
+ load_facebook_options_box();
1130
+
1131
+ // Inizialization Page components
1132
+ fields_components();
1133
+
1134
+ // Initialize filter actions (edit and delete)
1135
+ ca_filter_actions();
1136
+
1137
+ // Other delete modals
1138
+ $('.modal-confirm').on( 'show.bs.modal', function(e){
1139
+ var modal = $(this),
1140
+ deleteLink = e.hasOwnProperty('relatedTarget') ? $( e.relatedTarget ).attr('href') : '';
1141
+
1142
+ if ( $.inArray( deleteLink, [ '', '#', '#_' ] ) < 0 ) {
1143
+ modal.one( 'click', '.btn-ok', function(e){
1144
+ e.preventDefault();
1145
+
1146
+ var actions = {
1147
+ 'fb-disconnect': 'fb_pixel_box',
1148
+ 'ca-delete': 'ca_list',
1149
+ 'conversion-delete': 'conversions_list'
1150
+ },
1151
+ action = deleteLink.match( new RegExp( 'action=(' + Object.keys( actions ).join('|') + ')(&|$)' ) );
1152
+
1153
+ // Custom actions
1154
+ if ( action ) {
1155
+
1156
+ addLoader( modal.find('.modal-content') );
1157
+
1158
+ $.ajax({
1159
+ url: deleteLink + ( deleteLink.indexOf('?') ? '&' : '?' ) + 'ajax=1',
1160
+ method: 'GET',
1161
+ success: function( response ) {
1162
+ if ( response.success ) {
1163
+
1164
+ $('.sec-overlay').removeClass('sec-overlay');
1165
+ $('.sub-panel-fb-connect.bumping').removeClass('bumping');
1166
+
1167
+ reloadFragment( actions[ action[1] ] );
1168
+
1169
+ // hide modal
1170
+ modal.modal('hide');
1171
+
1172
+ // Remove feedback loader
1173
+ removeLoader( modal.find('.modal-content') );
1174
+
1175
+ // Remove eventually fblogin if exists
1176
+ if ( window.history && window.history.pushState ) {
1177
+ var redirect_uri = window.location.href.replace( /(\?|\&)ref=fblogin/, '' );
1178
+ window.history.pushState( { path: redirect_uri }, '', redirect_uri) ;
1179
+ }
1180
+ }
1181
+ },
1182
+ dataType: 'json'
1183
+ });
1184
+ }
1185
+
1186
+ else {
1187
+ modal.modal('hide');
1188
+ window.location = deleteLink;
1189
+ }
1190
+ });
1191
+ }
1192
+ });
1193
+
1194
+ // Active status filter popup
1195
+ $('.js-new-filter-modal').on( 'click', '.js-main-condition > .js-condition', function(){
1196
+ var clicked = $(this),
1197
+ wrap = clicked.closest( '.js-main-condition' ),
1198
+ btns = wrap.find('.js-condition');
1199
+
1200
+ btns.removeClass('active');
1201
+ clicked.addClass('active');
1202
+ });
1203
+
1204
+ // Edit modals
1205
+ $('.js-form-modal')
1206
+
1207
+ // Apply tdynamic template
1208
+ .on( 'show.bs.modal', function( event ){
1209
+ if ( typeof wp === 'undefined' ) {
1210
+ return event;
1211
+ }
1212
+
1213
+ var modal = $(this),
1214
+ link = $( event.relatedTarget ),
1215
+ data = link.data('config'),
1216
+ formTmpl = wp.template( modal.attr('id') );
1217
+
1218
+ modal.find('.modal-content').html( formTmpl( data ) );
1219
+
1220
+ // Trigger event to hook somethings
1221
+ modal.trigger( 'modal-template-loaded' );
1222
+ })
1223
+
1224
+ .on( 'show.bs.modal', bootstrap_init )
1225
+ .on( 'show.bs.modal', custom_dropdown )
1226
+ .on( 'show.bs.modal', load_dropdown_data )
1227
+ .on( 'show.bs.modal', fields_components )
1228
+ .on( 'show.bs.modal', ca_filter_form )
1229
+ .on( 'show.bs.modal', ca_filter_actions );
1230
+
1231
+ // Submit form via AJAX
1232
+ $( document ).on( 'submit', 'form[data-toggle="ajax"]', function(e){
1233
+ e.preventDefault();
1234
+
1235
+ var form = $(this),
1236
+ messageWrapper = form,
1237
+ submitButton = form.find('[type="submit"]'),
1238
+ submitText = submitButton.text(),
1239
+ formTopPosition = form.offset().top - 50;
1240
+
1241
+ // Adjust message wrapper
1242
+ if ( form.find('.modal-body').length ) {
1243
+ messageWrapper = form.find('.modal-body').first();
1244
+ } else if ( form.find('.panel-body').length ) {
1245
+ messageWrapper = form.find('.panel-body').first();
1246
+ }
1247
+
1248
+ // Remove all errors and change text of submit button
1249
+ removeMessage( messageWrapper, 'error' );
1250
+ form.find( '.has-error' ).removeClass('has-error');
1251
+ form.find( '.help-block-error' ).remove();
1252
+
1253
+ // Add feedback loader
1254
+ addLoader( form );
1255
+
1256
+ $.ajax({
1257
+ url: aepc_admin.ajax_url,
1258
+ method: 'POST',
1259
+ data: form.serialize(),
1260
+ success: function( response ) {
1261
+ if ( response.success ) {
1262
+ var modal_actions = {
1263
+ 'fb-connect-options': 'fb_pixel_box',
1264
+ 'ca-clone': 'ca_list',
1265
+ 'ca-edit': 'ca_list',
1266
+ 'conversion-edit': 'conversions_list'
1267
+ },
1268
+ modal_ids = Object.keys( modal_actions ).map( function( key ){ return '#modal-' + key; } ).join(','),
1269
+
1270
+ form_actions = {};
1271
+
1272
+ if ( form.closest( '.modal' ).length && form.closest('.modal').is( modal_ids ) ) {
1273
+ reloadFragment( modal_actions[ form.closest( '.modal' ).attr('id').replace('modal-', '') ] );
1274
+
1275
+ // hide modal
1276
+ form.closest( '.modal' ).modal('hide');
1277
+
1278
+ // Remove feedback loader
1279
+ removeLoader( form );
1280
+
1281
+ // Remove eventually fblogin if exists
1282
+ if ( window.history && window.history.pushState ) {
1283
+ var redirect_uri = window.location.href.replace( /(\?|\&)ref=fblogin/, '' );
1284
+ window.history.pushState( { path: redirect_uri }, '', redirect_uri) ;
1285
+ }
1286
+ }
1287
+
1288
+ else if ( Object.keys( form_actions ).indexOf( form.data('action') ) >= 0 ) {
1289
+ reloadFragment( form_actions[ form.data('action') ] );
1290
+
1291
+ // Remove feedback loader
1292
+ removeLoader( form );
1293
+ }
1294
+
1295
+ else {
1296
+ var action_uri = form.attr( 'action' );
1297
+
1298
+ if ( action_uri ) {
1299
+ window.location.href = action_uri;
1300
+ } else {
1301
+ window.location.reload(false);
1302
+ }
1303
+ }
1304
+ }
1305
+
1306
+ // Perform error
1307
+ else {
1308
+
1309
+ // Add main notice
1310
+ if ( response.data.hasOwnProperty( 'refresh' ) && response.data.refresh ) {
1311
+ window.location.href = window.location.href.replace( /(\?|\&)ref=fblogin/, '' );
1312
+ return;
1313
+ }
1314
+
1315
+ // Remove feedback loader
1316
+ removeLoader( form );
1317
+
1318
+ // Scroll to form top
1319
+ $( 'html, body' ).animate( { scrollTop: formTopPosition }, 300 );
1320
+
1321
+ // Reset text of submit button
1322
+ submitButton.text( submitText );
1323
+
1324
+ // Add main notice
1325
+ if ( response.data.hasOwnProperty( 'main' ) ) {
1326
+ addMessage( messageWrapper, 'error', response.data.main.join( '<br/>' ) );
1327
+ }
1328
+
1329
+ // Add error to each field
1330
+ form.find('input, select').each( function(){
1331
+ var field = $(this),
1332
+ field_id = field.attr('id'),
1333
+ formGroup = field.closest('.form-group'),
1334
+ fieldHelper = field.siblings('.field-helper');
1335
+
1336
+ if ( response.data.hasOwnProperty( field_id ) ) {
1337
+ formGroup.addClass('has-error');
1338
+ fieldHelper.append( $('<span />', { class: 'help-block help-block-error', text: response.data[ field_id ].join( '<br/>' ) }) );
1339
+ }
1340
+
1341
+ // Remove the error on change, because bootstrap material remove .has-error on keyup change events
1342
+ field.on( 'keyup change', function(){
1343
+ fieldHelper.find('.help-block-error').remove();
1344
+ });
1345
+ });
1346
+ }
1347
+ },
1348
+ dataType: 'json'
1349
+ });
1350
+ });
1351
+
1352
+ // Alert position
1353
+ $( window )
1354
+ .on( 'load', analyzed_distance )
1355
+ .on( 'scroll', analyzed_distance )
1356
+ .on( 'resize', analyzed_distance );
1357
+
1358
+ // Facebook options modal actions
1359
+ $( '#modal-fb-connect-options' )
1360
+
1361
+ // Apply tdynamic template
1362
+ .on( 'show.bs.modal', function( event ){
1363
+ if ( typeof wp === 'undefined' ) {
1364
+ return event;
1365
+ }
1366
+
1367
+ var modal = $(this),
1368
+ formTmpl = wp.template( 'modal-facebook-options' );
1369
+
1370
+ modal.find('.modal-content').html( formTmpl( [] ) );
1371
+
1372
+ // Trigger event to hook somethings
1373
+ modal.trigger( 'facebook-options-loaded' );
1374
+ })
1375
+
1376
+ .on( 'show.bs.modal', bootstrap_init )
1377
+ .on( 'show.bs.modal', custom_dropdown )
1378
+
1379
+ .on( 'show.bs.modal', load_facebook_options_box );
1380
+
1381
+ // Facebook options save
1382
+ $( '.sub-panel-fb-connect' )
1383
+
1384
+ .on( 'change', '#aepc_account_id', function() {
1385
+ var account_id = $(this).val(),
1386
+ pixel_id = $( '#aepc_pixel_id' ).val();
1387
+
1388
+ if ( account_id && pixel_id ) {
1389
+ $('.js-save-facebook-options').removeClass('disabled');
1390
+ } else {
1391
+ $('.js-save-facebook-options').addClass('disabled');
1392
+ }
1393
+ })
1394
+
1395
+ .on( 'change', '#aepc_pixel_id', function() {
1396
+ var account_id = $( '#aepc_account_id' ).val(),
1397
+ pixel_id = $(this).val();
1398
+
1399
+ if ( account_id && pixel_id ) {
1400
+ $('.js-save-facebook-options').removeClass('disabled');
1401
+ } else {
1402
+ $('.js-save-facebook-options').addClass('disabled');
1403
+ }
1404
+ })
1405
+
1406
+ .on( 'click', '.js-save-facebook-options:not(.disabled)', function(e) {
1407
+ var account_id = $( '#aepc_account_id' ).val(),
1408
+ pixel_id = $( '#aepc_pixel_id' ).val();
1409
+
1410
+ $('.sec-overlay').removeClass('sec-overlay');
1411
+ $('.sub-panel-fb-connect.bumping').removeClass('bumping');
1412
+
1413
+ addLoader( $( '.panel.panel-settings-set-fb-px' ) );
1414
+
1415
+ $.ajax({
1416
+ url: aepc_admin.ajax_url,
1417
+ method: 'POST',
1418
+ data: {
1419
+ aepc_account_id: account_id,
1420
+ aepc_pixel_id: pixel_id,
1421
+ action: aepc_admin.actions.save_facebook_options.name,
1422
+ _wpnonce: aepc_admin.actions.save_facebook_options.nonce
1423
+ },
1424
+ success: function( response ) {
1425
+
1426
+ if ( response.success ) {
1427
+ if ( window.history && window.history.pushState ) {
1428
+ var redirect_uri = window.location.href.replace( /(\?|\&)ref=fblogin/, '' );
1429
+ window.history.pushState( { path: redirect_uri }, '', redirect_uri) ;
1430
+ }
1431
+
1432
+ reloadFragment( 'fb_pixel_box' );
1433
+ set_saved();
1434
+ }
1435
+
1436
+ },
1437
+ dataType: 'json'
1438
+ });
1439
+ });
1440
+
1441
+ // Custom audience sync action
1442
+ $('.wrap-custom-audiences').on('click', '.js-ca-size-sync', function(e){
1443
+ var button = $(this),
1444
+ ca_id = button.data('ca_id');
1445
+
1446
+ // Remove eventually error messages
1447
+ removeMessage( $('.plugin-content .alert-wrap'), 'error' );
1448
+
1449
+ addLoader( $('.panel.panel-ca-list') );
1450
+ button.addClass( 'loading-data' );
1451
+
1452
+ $.ajax({
1453
+ url: aepc_admin.ajax_url,
1454
+ method: 'GET',
1455
+ data: {
1456
+ ca_id: ca_id,
1457
+ action: aepc_admin.actions.refresh_ca_size.name,
1458
+ _wpnonce: aepc_admin.actions.refresh_ca_size.nonce
1459
+ },
1460
+ success: function( response ) {
1461
+ if ( response.success ) {
1462
+ reloadFragment( 'ca_list' );
1463
+ } else {
1464
+ addMessage( $('.plugin-content .alert-wrap'), 'error', response.data.message );
1465
+ }
1466
+ },
1467
+ dataType: 'json'
1468
+ });
1469
+ });
1470
+
1471
+ // Perform pagination in ajax
1472
+ $('.wrap').on( 'click', '.pagination li a', function(e){
1473
+ e.preventDefault();
1474
+
1475
+ var link = $(this),
1476
+ uri = link.attr('href'),
1477
+ paged = uri.match( /paged=([0-9]+)/ );
1478
+
1479
+ if ( $(this).closest( '.panel-ca-list' ).length ) {
1480
+ reloadFragment( 'ca_list', { paged: paged[1] } );
1481
+ } else if ( $(this).closest( '.panel-ce-tracking' ).length ) {
1482
+ reloadFragment( 'conversions_list', { paged: paged[1] } );
1483
+ }
1484
+
1485
+ if ( window.history && window.history.pushState ) {
1486
+ window.history.pushState( { path: uri }, '', uri );
1487
+ }
1488
+ });
1489
+
1490
+ // Load sidebar feed data
1491
+ if ( $('.plugin-sidebar.loading-sec').length ) {
1492
+ reloadFragment( 'sidebar' );
1493
+ }
1494
+
1495
+ // HACK avoid scrolling problem when open a modal inside another one and then close the last modal
1496
+ var last_modal_opened = [];
1497
+ $('.modal')
1498
+ .on( 'show.bs.modal', function(e){
1499
+ last_modal_opened.push(e);
1500
+ })
1501
+ .on( 'hidden.bs.modal', function(e){
1502
+ if ( $( last_modal_opened[ last_modal_opened.length - 1 ].relatedTarget ).closest('.modal').length ) {
1503
+ $('body').addClass('modal-open');
1504
+ last_modal_opened.splice( last_modal_opened.length - 1, 1 );
1505
+ }
1506
+ });
1507
+
1508
+ // Triggers change in all input fields including text type, must be run after all components init
1509
+ alert_unsaved();
1510
+
1511
+
1512
+ });
includes/admin/assets/sass/_conversions.scss ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // CONVERSIONS
2
+ .panel-ce-tracking {
3
+ .panel-heading .tit::before {
4
+ @include material-icons(track_changes);
5
+ }
6
+
7
+ .panel-footer {
8
+ text-align: center;
9
+ }
10
+
11
+ .table {
12
+ margin-bottom: 0;
13
+
14
+ .name {
15
+ width: 200px;
16
+ font-weight: bold;
17
+ }
18
+
19
+ .trigger {
20
+ white-space: nowrap;
21
+ }
22
+
23
+ @media screen and (min-width: $screen-md-max) {
24
+ .name {
25
+ width: auto;
26
+ }
27
+ }
28
+ }
29
+
30
+ .code-sample {
31
+ display: block;
32
+ }
33
+
34
+ .code-copy,
35
+ .show-code {
36
+ margin-top: 5px;
37
+ display: inline-block;
38
+ font-size: $font-size-small;
39
+ font-weight: $default-font-weight-semibold;
40
+ text-transform: uppercase;
41
+ }
42
+ }
43
+ .panel-ce-new {
44
+ .panel-heading .tit::before {
45
+ @include material-icons(track_changes);
46
+ }
47
+ }
includes/admin/assets/sass/_custom-audience.scss ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // CUSTOM AUDIENCE
2
+ .panel-ca-list {
3
+ .panel-heading .tit::before {
4
+ @include material-icons(person)
5
+ }
6
+
7
+ .panel-footer {
8
+ text-align: center;
9
+ }
10
+
11
+ .table {
12
+ margin-bottom: 0;
13
+
14
+ .name {
15
+ max-width: 500px;
16
+ font-weight: $font-weight-bold;
17
+
18
+ .info-extra {
19
+ font-weight: normal;
20
+ }
21
+ }
22
+
23
+ @media screen and (min-width: $screen-md-max) {
24
+ .name {
25
+ width: auto;
26
+ }
27
+ }
28
+ }
29
+ }
30
+
31
+ .panel-ca-new {
32
+ .panel-heading .tit::before {
33
+ @include material-icons(person_add)
34
+ }
35
+ }
36
+
37
+ .panel-ca-filters {
38
+ .panel-heading .tit::before {
39
+ @include material-icons(filter_list)
40
+ }
41
+ }
42
+
43
+ .modal-ca-filter {
44
+ $this__padding-grid: $grid-gutter-width/4;
45
+
46
+ .btn-group {
47
+ padding-bottom: $form-group-space-bottom;
48
+ }
49
+
50
+ .form-radio {
51
+ .control-wrap {
52
+ @include make-md-column(12);
53
+ @include flexbox();
54
+ @include flex-wrap(wrap);
55
+ }
56
+
57
+ .radio {
58
+ @include flex(0 0 33%);
59
+ padding-right: $padding-large-horizontal * 2;
60
+ }
61
+ }
62
+
63
+ .form-user,
64
+ .multiple-fields {
65
+ padding-left: $this__padding-grid;
66
+ padding-right: $this__padding-grid;
67
+ }
68
+
69
+ .form-user .control-label,
70
+ .multiple-fields .control-wrap {
71
+ @include make-md-column(4);
72
+ padding-left: $this__padding-grid;
73
+ padding-right: $this__padding-grid;
74
+ }
75
+
76
+ .form-user .control-wrap,
77
+ .multiple-fields .control-wrap + .control-wrap {
78
+ @include make-md-column(8);
79
+ padding-left: $this__padding-grid;
80
+ padding-right: $this__padding-grid;
81
+ }
82
+
83
+ .multiple-fields {
84
+ &.multiple-three {
85
+ .control-wrap {
86
+ @include make-md-column(4);
87
+ padding-left: $this__padding-grid;
88
+ padding-right: $this__padding-grid;
89
+ }
90
+ }
91
+
92
+ &.can-add-fields {
93
+ padding-bottom: $form-group-space-bottom;
94
+
95
+ .form-group {
96
+ @include flexbox;
97
+ @include flexbox-align-items(center);
98
+ padding-bottom: $form-group-space-bottom/2;
99
+ }
100
+
101
+ .form-control {
102
+ margin-bottom: 0;
103
+ }
104
+
105
+ .control-wrap {
106
+ @include flex(1 1 auto);
107
+ }
108
+
109
+ .multiple-fields-actions {
110
+ margin-left: -$this__padding-grid;
111
+ margin-right: -$this__padding-grid;
112
+ }
113
+ }
114
+ }
115
+ }
includes/admin/assets/sass/_dashboard.scss ADDED
@@ -0,0 +1,210 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // DASHBOARD
2
+ .box-dashboard-config {
3
+ $this__walter-W: 300px;
4
+
5
+ @include flexbox;
6
+ position: relative;
7
+
8
+ .tit {
9
+ font-size: $headings-font-size * 1.5;
10
+ text-transform: uppercase;
11
+ }
12
+
13
+ p {
14
+ font-size: floor($font-size-base * 1.3);
15
+ }
16
+
17
+ @media screen and (min-width: $screen-md-min) {
18
+ min-height: 400px;
19
+ padding-right: $this__walter-W;
20
+
21
+ &::before {
22
+ content: "";
23
+ position: absolute;
24
+ bottom: 0;
25
+ right: 0;
26
+ display: block;
27
+ width: $this__walter-W;
28
+ height: 100%;
29
+ background: url('../img/walter-dashboard-config.png') no-repeat 50% 50%;
30
+ background-size: contain;
31
+ }
32
+ }
33
+
34
+ .jumbotron-body {
35
+ margin: auto;
36
+
37
+ .btn {
38
+ padding: $btn-padding-vertical * 2 $btn-padding-horizontal;
39
+ margin: $line-height-computed 0 0; //same margin as title
40
+ white-space: normal;
41
+ font-size: 2em;
42
+
43
+ &::before {
44
+ font-size: 1.5em;
45
+ }
46
+
47
+ &.btn-block {
48
+ @media screen and (min-width: $screen-sm-min) {
49
+ width: auto;
50
+ display: inline-block;
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }
56
+
57
+ .box-features {
58
+ margin-top: $general-margin * 5;
59
+ text-align: center;
60
+
61
+ .tit {
62
+ text-transform: uppercase;
63
+ }
64
+ }
65
+
66
+ .list-features {
67
+ $list-feature__item-icon-W: 100px;
68
+
69
+ @include flexbox;
70
+ @include flex-wrap(wrap);
71
+
72
+ .feature {
73
+ @include flex(0 0 33.33%);
74
+ margin: $padding-small-horizontal*3 0;
75
+
76
+ .feature-icon { // feature icon
77
+ display: block;
78
+ background: $grey-light;
79
+ width: $list-feature__item-icon-W;
80
+ height: $list-feature__item-icon-W;
81
+ line-height: $list-feature__item-icon-W;
82
+ border-radius: 100%;
83
+ margin: 0 auto $padding-large-horizontal;
84
+ text-align: center;
85
+ font-size: 4.5em;
86
+ color: #FFF;
87
+ }
88
+
89
+ &:nth-child(3n+1) {
90
+ padding-right: $general-margin * 2;
91
+ }
92
+ &:nth-child(3n+2) {
93
+ padding-left: $general-margin;
94
+ padding-right: $general-margin;
95
+ }
96
+ &:nth-child(3n+3) {
97
+ padding-left: $general-margin *2;
98
+ }
99
+ }
100
+ }
101
+
102
+ .panel-dashboard-main {
103
+ position: relative;
104
+
105
+ .panel-heading .tit::before {
106
+ @include material-icons(tune)
107
+ }
108
+
109
+ .panel-body {
110
+ .data {
111
+ padding-right: 0;
112
+ text-align: left;
113
+ }
114
+
115
+ .btn-settings {
116
+ width: 100%;
117
+ margin: 0;
118
+ }
119
+
120
+ .data-group-pixel .value {
121
+ word-break: break-all;
122
+ }
123
+
124
+ @media screen and (min-width: $screen-xs-min) {
125
+ @include flexbox;
126
+ @include flex-wrap(wrap);
127
+
128
+ .data-group {
129
+ @include flex(0 0 50%);
130
+
131
+ .data {
132
+ width: auto;
133
+ }
134
+
135
+ .value {
136
+ width: auto;
137
+ }
138
+ }
139
+
140
+ .data-group-pixel {
141
+ @include flex(0 0 100%);
142
+ }
143
+ }
144
+
145
+ @media screen and (min-width: $screen-sm-min) {
146
+ .btn-settings {
147
+ position: absolute;
148
+ top: 10px;
149
+ right: $panel-body-padding;
150
+ width: auto;
151
+ }
152
+ }
153
+ }
154
+
155
+ .data-group {
156
+ padding-bottom: $form-group-space-bottom;
157
+ }
158
+
159
+ .status {
160
+ .value {
161
+ text-transform: uppercase;
162
+ font-weight: bold;
163
+
164
+ .value-info {
165
+ $this__icon-W: 30px;
166
+
167
+ position: relative;
168
+ padding-right: $this__icon-W + $padding-small-horizontal/2;
169
+
170
+ &::after {
171
+ position: absolute;
172
+ top: 50%;
173
+ margin-top: -$this__icon-W/2;
174
+ right: 0;
175
+ width: $this__icon-W;
176
+ line-height: $this__icon-W;
177
+ font-size: 2em;
178
+ margin-left: $general-margin;
179
+ }
180
+ }
181
+ }
182
+
183
+ &.active {
184
+ .value-info {
185
+ color: $brand-success;
186
+
187
+ &::after {
188
+ @include material-icons(check);
189
+
190
+ }
191
+ }
192
+ }
193
+
194
+ &.inactive {
195
+ .value-info {
196
+ color: $brand-danger;
197
+
198
+ &::after {
199
+ @include material-icons(close);
200
+ }
201
+ }
202
+ }
203
+ }
204
+ }
205
+
206
+ .panel-dashboard-activity {
207
+ .panel-heading .tit::before {
208
+ @include material-icons(graphic_eq)
209
+ }
210
+ }
includes/admin/assets/sass/_font-icons.scss ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @font-face {
2
+ font-family: 'pixel-caffeine';
3
+ src: url('../../assets/fonts/pixel-caffeine.eot?2276442');
4
+ src: url('../../assets/fonts/pixel-caffeine.eot?2276442#iefix') format('embedded-opentype'),
5
+ url('../../assets/fonts/pixel-caffeine.woff2?2276442') format('woff2'),
6
+ url('../../assets/fonts/pixel-caffeine.woff?2276442') format('woff'),
7
+ url('../../assets/fonts/pixel-caffeine.ttf?2276442') format('truetype'),
8
+ url('../../assets/fonts/pixel-caffeine.svg?2276442#fontello') format('svg');
9
+ font-weight: normal;
10
+ font-style: normal;
11
+ }
12
+ /* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
13
+ /* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
14
+ /*
15
+ @media screen and (-webkit-min-device-pixel-ratio:0) {
16
+ @font-face {
17
+ font-family: 'pixel-caffeine';
18
+ src: url('../font/pixel-caffeine.svg?2276442#pixel-caffeine') format('svg');
19
+ }
20
+ }
21
+ */
22
+
23
+ @mixin pc-icon($icon) {
24
+ content:"#{$icon}";
25
+ font-family: "pixel-caffeine";
26
+ font-style: normal;
27
+ font-weight: normal;
28
+ speak: none;
29
+
30
+ display: inline-block;
31
+ text-decoration: inherit;
32
+ width: 1em;
33
+ font-size: 1.17em;
34
+ margin-left: 0.2em;
35
+ margin-top: 0.1em;
36
+ text-align: center;
37
+ /* opacity: .8; */
38
+
39
+ /* For safety - reset parent styles, that can break glyph codes*/
40
+ font-variant: normal;
41
+ text-transform: none;
42
+
43
+ /* fix buttons height, for twitter bootstrap */
44
+ line-height: 1em;
45
+
46
+ /* you can be more comfortable with increased icons size */
47
+ /* font-size: 120%; */
48
+
49
+ /* Font smoothing. That was taken from TWBS */
50
+ -webkit-font-smoothing: antialiased;
51
+ -moz-osx-font-smoothing: grayscale;
52
+
53
+ /* Uncomment for 3D effect */
54
+ /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
55
+ }
56
+
57
+ .pc-icon-espresso:before { content: '\e800'; }
includes/admin/assets/sass/_general.scss ADDED
@@ -0,0 +1,1667 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // NORMALIZATION (removed bootstrap/_normalize from imported stylesheets)
2
+ table {
3
+ border-collapse: collapse;
4
+ border-spacing: 0;
5
+ }
6
+
7
+ .material-icons {
8
+ font-family: 'Material Icons';
9
+ font-weight: normal;
10
+ font-style: normal;
11
+ font-size: 24px;
12
+ line-height: 1;
13
+ letter-spacing: normal;
14
+ text-transform: none;
15
+ display: inline-block;
16
+ white-space: nowrap;
17
+ word-wrap: normal;
18
+ direction: ltr;
19
+ -webkit-font-feature-settings: 'liga';
20
+ -webkit-font-smoothing: antialiased;
21
+ }
22
+
23
+ // CUSTOM STYLE
24
+ .wrap {
25
+ background: transparent;
26
+ }
27
+
28
+ h1, h2, h3, h4, h5, h6 {
29
+ font-weight: $headings-font-weight;
30
+ }
31
+
32
+ strong {
33
+ font-weight: $font-weight-bold;
34
+ }
35
+
36
+ .actions {
37
+ .btn-fab {
38
+ margin: 0 $general-margin/2;
39
+ &.btn-mini {
40
+ margin: 0 2px;
41
+ }
42
+ }
43
+ }
44
+
45
+ .wrap .page-title {
46
+ margin-bottom: 10px;
47
+ font-size: 28px;
48
+ font-weight: 400;
49
+ }
50
+
51
+
52
+ .nav-tab:hover, .nav-tab:focus {
53
+ background-color: #fff;
54
+ color: $gray;
55
+ }
56
+
57
+ .nav-tab {
58
+ &:hover,
59
+ &:focus,
60
+ & {
61
+ color: $gray;
62
+ text-decoration: none;
63
+ }
64
+ }
65
+ .nav-tab-active {
66
+ &:hover,
67
+ &:focus,
68
+ & {
69
+ border-bottom-color: darken($white, 2%);
70
+ color: $gray-base;
71
+ background: darken($white, 2%);
72
+ }
73
+ }
74
+
75
+ .nav-tab-active,
76
+ .plugin-sec {
77
+ background: $plugin-sec-bg;
78
+ }
79
+
80
+ .plugin-sec {
81
+ padding: 30px;
82
+ border: 1px solid $grey-light;
83
+
84
+ .plugin-sidebar {
85
+ @include clearfix;
86
+ margin-top: $grid-gutter-width;
87
+ }
88
+
89
+ .plugin-sidebar-item {
90
+ margin: $grid-gutter-width/2 0;
91
+ &.fake-item {
92
+ .loading-msg {
93
+ display: block;
94
+ margin-bottom: 5px;
95
+ }
96
+
97
+ .list-group .row-content {
98
+ position: relative;
99
+ min-height: 60px;
100
+ background: url('../img/placeholder-loading-news.png') no-repeat 0 0;
101
+ background-size: 100% 100%;
102
+ opacity: 0.3;
103
+
104
+ @media screen and (min-width: $screen-lg-min) {
105
+ &::before {
106
+ content: "";
107
+ position: absolute;
108
+ top: 0;
109
+ left: 0;
110
+ display: block;
111
+ width: 100%;
112
+ height: 100%;
113
+
114
+ animation: placeholder-shimmer 1s linear forwards infinite;
115
+
116
+ background: $plugin-sec-bg;
117
+ background: linear-gradient(to right, transparent 8%, $plugin-sec-bg 18%, transparent 33%);
118
+ background-size: 800px 104px;
119
+ }
120
+ }
121
+ }
122
+ }
123
+ }
124
+
125
+ .banner-wrap {
126
+ float: left;
127
+ width: $sidebar-W;
128
+ margin: 0 $grid-gutter-width $grid-gutter-width 0;
129
+ @include shadow-z-1;
130
+
131
+ a {
132
+ background: $panel-bg;
133
+
134
+ &:hover {
135
+ img {
136
+ opacity: 0.9;
137
+ }
138
+ }
139
+
140
+ &:active {
141
+ img {
142
+ opacity: 1;
143
+ }
144
+ }
145
+ }
146
+
147
+ img {
148
+ display: block;
149
+ width: 100%;
150
+ height: auto;
151
+ border: 5px solid $panel-bg;
152
+ transition: opacity 0.3s ease-out;
153
+ }
154
+
155
+ }
156
+
157
+ @media screen and (min-width: $screen-lg-min) {
158
+ @include flexbox;
159
+
160
+ .plugin-content {
161
+ width: calc(100% - #{$sidebar-W} - #{$grid-gutter-width});
162
+ margin-right: $grid-gutter-width;
163
+ }
164
+
165
+ .plugin-sidebar {
166
+ width: $sidebar-W;
167
+ margin-top: 0;
168
+ }
169
+ }
170
+ }
171
+
172
+ .sec-overlay {
173
+ position: relative;
174
+
175
+ &::after {
176
+ background: rgba(0,0,0,0.3);
177
+ content: "";
178
+ width: 100%;
179
+ height: 100%;
180
+ position: absolute;
181
+ top: 0;
182
+ left: 0;
183
+ z-index: 1;
184
+ }
185
+
186
+ .bumping {
187
+ z-index: 2;
188
+ @include focus-shadow();
189
+ }
190
+ }
191
+
192
+ .data-group {
193
+ @include clearfix;
194
+ position: relative;
195
+
196
+ .data {
197
+ display: inline-block;
198
+ margin-bottom: 5px;
199
+ text-align: right;
200
+ font-size: $mdb-input-font-size-base;
201
+ line-height: $line-height-base;
202
+ color: $control-label-color;
203
+ font-weight: $default-font-weight-normal;
204
+ }
205
+
206
+ .value {
207
+ font-size: $mdb-input-font-size-base;
208
+ }
209
+
210
+ .value-info {
211
+ display: inline-block;
212
+ vertical-align: middle;
213
+ }
214
+ }
215
+
216
+ .form-group,
217
+ .data-group {
218
+ margin-left: 0;
219
+ margin-right: 0;
220
+ margin-top: $form-group-space-top;
221
+ padding-bottom: $form-group-space-bottom-small;
222
+ }
223
+
224
+ .panel {
225
+ .data-group,
226
+ .form-group {
227
+ margin-left: 0;
228
+ margin-right: 0;
229
+ }
230
+ }
231
+
232
+ .text-status {
233
+ display: inline-block;
234
+ vertical-align: middle;
235
+ font-size: $mdb-input-font-size-base;
236
+ }
237
+
238
+ .text-status-pending {
239
+ color: $brand-warning;
240
+ }
241
+
242
+ .control-wrap {
243
+ font-size: $mdb-input-font-size-base;
244
+ }
245
+
246
+ .form-group {
247
+ label.control-label {
248
+ padding-top: $mdb-input-padding-base-vertical;
249
+ padding-bottom: $mdb-input-padding-base-vertical;
250
+ margin-top: 0;
251
+ font-size: $mdb-input-font-size-base;
252
+ color: $control-label-color;
253
+ text-transform: none;
254
+ }
255
+
256
+ .checkbox label,
257
+ .radio label {
258
+ font-weight: $default-font-weight-light;
259
+ }
260
+
261
+ .multiple-fields {
262
+ .form-group {
263
+ @include flexbox;
264
+ @include flexbox-align-items(center);
265
+ padding-bottom: $form-group-space-bottom;
266
+ }
267
+
268
+ .control-wrap {
269
+ @include flex(1 1 auto);
270
+ padding-left: 0;
271
+
272
+ .form-control {
273
+ margin-bottom: 0;
274
+ }
275
+
276
+ & + .control-wrap {
277
+ padding-left: floor(($grid-gutter-width / 2));
278
+ }
279
+ }
280
+ }
281
+
282
+ .help-block {
283
+ position: relative;
284
+ display: inherit;
285
+ }
286
+
287
+ &.has-error {
288
+ .form-control,
289
+ .select2-container .select2-choice,
290
+ .select2-container .select2-choices {
291
+ background-color: lighten($brand-danger,35%);
292
+ }
293
+
294
+ .text,
295
+ .select2-chosen {
296
+ color: $brand-danger;
297
+ }
298
+ }
299
+
300
+ .form-control[disabled] {
301
+ background-color: $field-disabled-bg;
302
+ color: $field-disabled-color;
303
+ }
304
+ }
305
+
306
+ .form-group,
307
+ .form-group.is-focused {
308
+ .checkbox label,
309
+ .radio label {
310
+ color: $black;
311
+ font-weight: $default-font-weight-normal;
312
+ }
313
+ }
314
+
315
+ .form-group.is-focused {
316
+ .checkbox label,
317
+ label.checkbox-inline {
318
+ &:hover,
319
+ &:focus {
320
+ color: $black;
321
+ }
322
+ }
323
+ }
324
+
325
+ .form-group {
326
+ .help-block-error,
327
+ &.is-focused .help-block-error {
328
+ display: none;
329
+ }
330
+ &.has-error .help-block-error {
331
+ display: block;
332
+ }
333
+ }
334
+
335
+ .radio label,
336
+ label.radio-inline {
337
+ padding-left: $padding-large-horizontal * 2;
338
+ }
339
+
340
+ .checkbox {
341
+ position: relative;
342
+ padding-left: $mdb-checkbox-size + $padding-small-horizontal;
343
+
344
+ .checkbox-material {
345
+ position: absolute;
346
+ top: 0;
347
+ left: 0;
348
+ width: $mdb-checkbox-size;
349
+ height: $mdb-checkbox-size;
350
+
351
+ &::before { //circle, visible on click
352
+ top: 0;
353
+ }
354
+
355
+ .check {
356
+ border-radius: 0;
357
+ }
358
+ }
359
+
360
+ .text {
361
+ display: block;
362
+ }
363
+ }
364
+
365
+ .multi-form-group {
366
+ @include clearfix;
367
+
368
+ .sub-form-group {
369
+ @media screen and (min-width: $screen-md-min) {
370
+ @include make-md-column(10);
371
+ float: right !important;
372
+ }
373
+ }
374
+ }
375
+
376
+ .modal .multi-form-group {
377
+ .sub-form-group {
378
+ @media screen and (min-width: $screen-md-min) {
379
+ @include make-md-column(12);
380
+ padding-left: 0;
381
+ padding-right: 0;
382
+ }
383
+ }
384
+ }
385
+
386
+ input {
387
+ margin-top: 0;
388
+ margin-left: 0;
389
+ margin-right: 0;
390
+ }
391
+
392
+ .form-toggle {
393
+ padding-top: $form-group-space-bottom - $form-group-space-bottom-small;
394
+ padding-bottom: $form-group-space-bottom;
395
+
396
+ .control-wrap {
397
+ display: inline-block;
398
+ vertical-align: middle;
399
+ }
400
+
401
+ .text-status {
402
+ margin-top: 0.3em;
403
+ }
404
+ }
405
+
406
+ .togglebutton {
407
+ display: inline-block;
408
+ vertical-align: middle;
409
+ padding-left: floor(($grid-gutter-width / 2));
410
+
411
+ label {
412
+ margin-bottom: 0;
413
+
414
+ input{
415
+ position: absolute;
416
+
417
+ &[type=checkbox]:checked + .toggle {
418
+ background: transparentize($brand-success, 0.5);
419
+
420
+ &::after {
421
+ background: $brand-success;
422
+ }
423
+ }
424
+ }
425
+ }
426
+
427
+ &.pending {
428
+ label input[type=checkbox] + .toggle {
429
+ background: transparentize($brand-warning, 0.5);
430
+
431
+ &::after {
432
+ background: $brand-warning;
433
+ }
434
+ }
435
+ }
436
+ }
437
+
438
+ .form-horizontal,
439
+ .form-inline {
440
+ @media screen and (min-width: $screen-md-min) {
441
+ .togglebutton {
442
+ padding-left: 0;
443
+ }
444
+ }
445
+
446
+ .togglebutton {
447
+ margin-top: 0.3em;
448
+ }
449
+ }
450
+
451
+ .form-control,
452
+ .form-group .form-control {
453
+ background-color: $field-bg;
454
+ padding-left: $padding-small-horizontal;
455
+ padding-right: $padding-small-horizontal;
456
+
457
+ @include material-placeholder {
458
+ font-weight: $default-font-weight-light;
459
+ }
460
+ }
461
+
462
+ .form-group-lg {
463
+ .form-control {
464
+ font-size: 2em;
465
+ }
466
+
467
+ &.sub-panel {
468
+ margin-top: 0;
469
+ }
470
+ }
471
+
472
+ .multiple-fields-actions {
473
+ .btn {
474
+ margin-top: 0;
475
+ margin-bottom: 0;
476
+ }
477
+ }
478
+
479
+ .form-inline {
480
+ .control-wrap {
481
+ display: inline-block;
482
+ width: auto;
483
+ vertical-align: middle;
484
+ margin-right: $padding-small-horizontal;
485
+ }
486
+
487
+ label.control-label {
488
+ margin-right: $padding-small-horizontal;
489
+ }
490
+
491
+ .text {
492
+ font-size: $mdb-input-font-size-base;
493
+ }
494
+ }
495
+
496
+ .form-horizontal {
497
+ .control-label {
498
+ @include make-md-column(2);
499
+ }
500
+
501
+ .control-wrap {
502
+ @include make-md-column(10);
503
+ }
504
+
505
+ .control-label,
506
+ .data-group .data,
507
+ .control-wrap,
508
+ .data-group .value {
509
+ padding-left: 0;
510
+ padding-right: 0
511
+ }
512
+
513
+ .checkbox {
514
+ .checkbx-material {
515
+ top: $mdb-input-padding-large-vertical + 1; // line 184 _inputs_size.scss
516
+ }
517
+ }
518
+
519
+ .list-filter {
520
+ padding-top: $mdb-input-padding-base-vertical;
521
+ }
522
+
523
+ .form-inline {
524
+ .control-wrap {
525
+ float: none;
526
+ width: auto;
527
+ }
528
+
529
+ .form-control {
530
+ display: inline-block;
531
+ width: auto;
532
+ vertical-align: middle;
533
+ }
534
+ }
535
+
536
+ @media screen and (min-width: $screen-md-min) {
537
+ .form-group,
538
+ .data-group {
539
+ padding-bottom: $form-group-space-bottom;
540
+ }
541
+
542
+ .control-label,
543
+ .data-group .data {
544
+ padding-right: floor(($grid-gutter-width / 2));
545
+ }
546
+
547
+ .form-group:not(.form-toggle) {
548
+ .control-label {
549
+ margin-top: 0.3em;
550
+ }
551
+ }
552
+
553
+ .control-wrap,
554
+ .data-group .data + .value {
555
+ padding-left: floor(($grid-gutter-width / 2));
556
+ }
557
+
558
+ .form-toggle {
559
+ padding-top: 0;
560
+ }
561
+
562
+ .form-inline {
563
+ .control-label {
564
+ margin-right: 0;
565
+ }
566
+ }
567
+
568
+ .help-block {
569
+ position: absolute;
570
+ margin-top: -5px;
571
+ }
572
+
573
+ .has-error-long {
574
+ &.has-error {
575
+ &.form-group,
576
+ &.data-group {
577
+ padding-bottom: 0;
578
+ }
579
+ .help-block {
580
+ position: static;
581
+ }
582
+ }
583
+ }
584
+
585
+ .form-horizontal-inline {
586
+ .control-label,
587
+ .data-group .data {
588
+ @include make-md-column(2);
589
+ }
590
+
591
+ .control-wrap,
592
+ .data-group .value {
593
+ @include make-md-column(10);
594
+ }
595
+ }
596
+ }
597
+ }
598
+
599
+ .form-horizontal {
600
+ .data-group .data {
601
+ @include make-sm-column(2);
602
+ }
603
+
604
+ .data-group .value {
605
+ @include make-sm-column(10);
606
+ }
607
+ }
608
+
609
+ .form-horizontal-inline {
610
+ .form-control,
611
+ .text {
612
+ display: inline-block;
613
+ vertical-align: middle;
614
+ }
615
+
616
+ .form-control {
617
+ width: auto;
618
+ margin-right: $padding-small-horizontal;
619
+ }
620
+ }
621
+
622
+ .form-vertical {
623
+ .form-group {
624
+ padding-bottom: $form-group-space-bottom-small;
625
+ }
626
+
627
+
628
+ @media screen and (min-width: $screen-md-min) {
629
+ & > .form-group > .control-label,
630
+ & > .form-group > .control-wrap,
631
+ .multiple-fields {
632
+ float: none;
633
+ padding-left: 0;
634
+ padding-right: 0;
635
+ }
636
+
637
+ .control-label {
638
+ width: auto;
639
+ text-align: left;
640
+ }
641
+
642
+ .control-wrap {
643
+ width: 100%;
644
+ }
645
+
646
+ .multiple-fields .control-wrap {
647
+ width: auto;
648
+ }
649
+ }
650
+ }
651
+
652
+ .radio {
653
+ margin-top: $field-radio-space-Y;
654
+ margin-bottom: $field-radio-space-Y;
655
+ }
656
+
657
+ p {
658
+ font-size: $font-size-base;
659
+ line-height: $line-height-base;
660
+ }
661
+
662
+ .jumbotron {
663
+ background: $panel-bg;
664
+ padding: $panel-body-padding + $line-height-computed;
665
+ @include shadow-z-1;
666
+
667
+ .tit {
668
+ margin-top: 0;
669
+ margin-bottom: $line-height-computed;
670
+ }
671
+ }
672
+
673
+ .panel {
674
+ & > .panel-heading,
675
+ & > .panel-footer {
676
+ background: $panel-bg;
677
+ }
678
+
679
+ .panel-footer {
680
+ @include clearfix();
681
+
682
+ .form-control {
683
+ margin-bottom: 0;
684
+ }
685
+ }
686
+
687
+ & > .panel-heading {
688
+ @include flexbox();
689
+ @include flexbox-align-items(center);
690
+ @include flexbox-justify-content(space-between);
691
+ border-bottom: 1px solid $panel-inner-border;
692
+
693
+ .text-status {
694
+ display: block;
695
+ text-transform: none;
696
+ margin-top: 5px;
697
+ }
698
+ }
699
+
700
+ .panel-heading {
701
+ $this__icon-offset-Y: 0.2em;
702
+
703
+ color: $black;
704
+ text-transform: uppercase;
705
+
706
+ .tit {
707
+ display: inline-block;
708
+ margin-top: $this__icon-offset-Y;
709
+ margin-bottom: 0;
710
+ font-size: $headings-font-size;
711
+
712
+ &::before {
713
+ margin-top: -$this__icon-offset-Y;
714
+ margin-right: 20px;
715
+ color: lighten($black, 50%);
716
+ font-size: 1.5em;
717
+ }
718
+ }
719
+
720
+ .btn {
721
+ margin: 0 0 0 $padding-small-horizontal;
722
+ }
723
+
724
+ .form-group {
725
+ padding: 0;
726
+ }
727
+
728
+ .form-toggle {
729
+ text-align: right;
730
+
731
+ .toggle {
732
+ margin-right: 6px;
733
+ }
734
+
735
+ .text-status {
736
+ font-style: italic;
737
+ }
738
+
739
+ .control-label {
740
+ padding-right: 0;
741
+ }
742
+ }
743
+ }
744
+
745
+ .panel { //.panel within .panel (for example .panel-ca-filters)
746
+ box-shadow: none;
747
+
748
+ .panel-heading {
749
+ padding: 0;
750
+
751
+ .tit {
752
+ font-size: $sub-headings-font-size;
753
+ }
754
+ }
755
+
756
+ .panel-body {
757
+ padding-left: 0;
758
+ padding-right: 0;
759
+ }
760
+
761
+ .panel-heading {
762
+ border-bottom: none;
763
+ margin-top: 40px;
764
+
765
+ &::before {
766
+ font-size: 2.5em;
767
+ }
768
+ }
769
+
770
+ .form-group {
771
+ margin-top: 0;
772
+ padding-bottom: 0;
773
+ }
774
+ }
775
+ }
776
+
777
+ .modal .panel {
778
+ box-shadow: none;
779
+ margin-top: $form-group-space-bottom * 2;
780
+
781
+ &-body {
782
+ padding: 0;
783
+ }
784
+
785
+ &-heading {
786
+ border: 0;
787
+ padding: 10px 0;
788
+
789
+ .tit {
790
+ font-size: 16px;
791
+
792
+ &::before {
793
+ margin-right: 5px;
794
+ }
795
+ }
796
+ }
797
+ }
798
+
799
+
800
+
801
+ .sub-panel {
802
+ .tit {
803
+ font-size: $sub-headings-font-size;
804
+ }
805
+ }
806
+
807
+ .panel,
808
+ .sub-panel {
809
+ &.disabled {
810
+ background: darken($panel-bg,2%);
811
+
812
+ .divider {
813
+ background: darken($panel-bg,2%);
814
+ }
815
+
816
+ color: lighten($wp-admin-text-color, 45%);
817
+
818
+ .btn-help {
819
+ color: inherit;
820
+ }
821
+ }
822
+ }
823
+
824
+ .table {
825
+ th {
826
+ text-transform: uppercase;
827
+ }
828
+
829
+ .actions {
830
+ text-align: center;
831
+
832
+ .btn {
833
+ margin: $general-margin/2;
834
+ }
835
+ }
836
+
837
+ .info-extra {
838
+ display: block;
839
+ color: lighten($black,30%);
840
+ }
841
+
842
+ @media screen and (min-width: $screen-xs-max) {
843
+ .btn-group,
844
+ .btn-group-sm {
845
+ min-width: 130px;
846
+ text-align: center;
847
+ }
848
+ }
849
+ }
850
+
851
+ .pagination {
852
+ > .active {
853
+ > a,
854
+ > a:hover,
855
+ > a:focus,
856
+ > span,
857
+ > span:hover,
858
+ > span:focus {
859
+ background-color: $brand-primary;
860
+ border-color: $brand-primary;
861
+ }
862
+ }
863
+
864
+ > li > a,
865
+ .pagination > li > span {
866
+ color: $brand-primary;
867
+ }
868
+ }
869
+
870
+
871
+ // BUTTONS
872
+ // Buttons - General style
873
+ .btn,
874
+ .input-group-btn .btn {
875
+ padding: $btn-padding-vertical $btn-padding-horizontal;
876
+ }
877
+
878
+ .btn {
879
+ &:not(.btn-fab),
880
+ &:not(.btn-raised),
881
+ &:not(.btn-naked),
882
+ &.btn-fab.btn-default, //:not(.btn-link)
883
+ &.btn-raised.btn-default {
884
+ background: $btn-default-bg;
885
+
886
+ &:hover {
887
+ background: darken($btn-default-bg,5%);
888
+ }
889
+ }
890
+
891
+ &::before { //icon
892
+ font-size: $mdb-btn-fab-font-size;
893
+ }
894
+
895
+ &:not(.btn-primary) // UNIQUE SELECTOR
896
+ :not(.btn-success)
897
+ :not(.btn-info)
898
+ :not(.btn-warning)
899
+ :not(.btn-danger)
900
+ :not(.active) { //and all the other classes in case new are created
901
+ &::before { //icon
902
+ color: $black;
903
+ }
904
+ }
905
+
906
+ &.btn-primary,
907
+ &.btn-success,
908
+ &.btn-info,
909
+ &.btn-warning,
910
+ &.btn-danger {
911
+ &.btn-raised:not(.btn-link) {
912
+ color: $white;
913
+ }
914
+
915
+ &.btn-fab:not(.btn-link),
916
+ &.btn-raised:not(.btn-link) {
917
+ &::before {
918
+ color: $white;
919
+ }
920
+ }
921
+
922
+ &.btn-fab:not(.btn-link) {
923
+ &:hover,
924
+ &:focus {
925
+ @include btn-style-hover;
926
+ }
927
+ }
928
+ }
929
+
930
+ &.disabled {
931
+ pointer-events: none;
932
+ }
933
+
934
+ &:not(:empty):not(.btn-fab) {
935
+ &::before {
936
+ margin-right: 0.4em;
937
+ }
938
+ }
939
+
940
+ &.btn-naked, {
941
+ background: transparent;
942
+ box-shadow: none;
943
+ color: lighten($black, 20%);
944
+
945
+ &.btn-raised {
946
+ box-shadow: none;
947
+
948
+ &:hover {
949
+ background: darken($btn-default-bg,5%);
950
+ }
951
+ }
952
+ }
953
+ }
954
+
955
+
956
+
957
+ // Buttons - fab style
958
+ .btn.btn-fab,
959
+ .btn.btn-fab.btn-default {
960
+ // background: $btn-plain-bg;
961
+ //color: $btn-plain-bg;
962
+ @include transition(all 0.3s ease-out);
963
+
964
+ &::before { //icon
965
+ position: absolute;
966
+ top: 50%;
967
+ left: 50%;
968
+ @include translate(-($mdb-btn-fab-font-size / 2), -($mdb-btn-fab-font-size / 2));
969
+ line-height: $mdb-btn-fab-font-size;
970
+ width: $mdb-btn-fab-font-size;
971
+ font-size: $mdb-btn-fab-font-size;
972
+ }
973
+
974
+ .ripple {
975
+ &.ripple-on {
976
+ opacity: 0.3;
977
+ }
978
+ &.ripple-out {
979
+ opacity: 0;
980
+ }
981
+ }
982
+ }
983
+
984
+ .btn-group-sm .btn.btn-fab,
985
+ .btn.btn-fab.btn-fab-mini {
986
+ padding: 0;
987
+ width: $mdb-btn-fab-size-mini;
988
+ min-width: $mdb-btn-fab-size-mini;
989
+ height: $mdb-btn-fab-size-mini;
990
+
991
+ &::before {
992
+ @include translate(-($mdb-btn-fab-size-mini / 2), -($mdb-btn-fab-size-mini / 2));
993
+ line-height: $mdb-btn-fab-size-mini;
994
+ width: $mdb-btn-fab-size-mini;
995
+ font-size: $btn-fab-font-size-mini;
996
+ }
997
+ }
998
+
999
+ .btn.btn-fab {
1000
+ &.btn-primary {
1001
+ @include btn-fab-style($brand-primary);
1002
+ }
1003
+
1004
+ &.btn-success {
1005
+ @include btn-fab-style($brand-success);
1006
+ }
1007
+
1008
+ &.btn-info {
1009
+ @include btn-fab-style($brand-info);
1010
+ }
1011
+
1012
+ &.btn-warning {
1013
+ @include btn-fab-style($brand-warning);
1014
+ }
1015
+
1016
+ &.btn-danger {
1017
+ @include btn-fab-style($brand-danger);
1018
+ }
1019
+ }
1020
+
1021
+
1022
+
1023
+ // Buttons - custom style
1024
+ .btn.btn-delete::before {
1025
+ @include material-icons(delete);
1026
+ }
1027
+
1028
+ .btn.btn-clone::before {
1029
+ @include material-icons(queue);
1030
+ }
1031
+
1032
+ .btn.btn-edit::before {
1033
+ @include material-icons(mode_edit);
1034
+ }
1035
+
1036
+ .btn.btn-include::before {
1037
+ @include material-icons(add_circle_outline);
1038
+ }
1039
+
1040
+ .btn.btn-exclude::before {
1041
+ @include material-icons(remove_circle_outline);
1042
+ }
1043
+
1044
+ .btn.btn-sync::before {
1045
+ @include material-icons(sync);
1046
+ }
1047
+
1048
+
1049
+ .btn.btn-help {
1050
+ background: transparent;
1051
+ box-shadow: none;
1052
+ color: lighten($black, 20%);
1053
+
1054
+ &::before { @include material-icons(help_outline) };
1055
+ }
1056
+
1057
+ .btn-config::before {
1058
+ @include material-icons(build);
1059
+ }
1060
+
1061
+ .btn-save::before {
1062
+ @include material-icons(save);
1063
+ }
1064
+
1065
+ .btn-apply::before {
1066
+ @include material-icons(check);
1067
+ }
1068
+
1069
+ .btn.btn-fb-connect {
1070
+ padding-top: floor($btn-padding-vertical * 1.5);
1071
+ padding-bottom: floor($btn-padding-vertical * 1.5);
1072
+ white-space: normal;
1073
+ font-weight: $font-weight-bold;
1074
+ line-height: 1.2em;
1075
+
1076
+ &::before {
1077
+ content: "";
1078
+ display: inline-block;
1079
+ vertical-align: middle;
1080
+ width: $btn-fb-connect-icon-W;
1081
+ height: $btn-fb-connect-icon-W;
1082
+ background: url('../img/icon-fb.svg') no-repeat;
1083
+ background-size: contain;
1084
+ margin: -4px 0.5em 0 0;
1085
+ }
1086
+
1087
+ &[disabled],
1088
+ &[disabled]:hover {
1089
+ background: $brand-primary;
1090
+ color: $white;
1091
+ }
1092
+ }
1093
+
1094
+ .btn-save.btn-plugin,
1095
+ .btn-config {
1096
+ font-size: 2em;
1097
+ }
1098
+
1099
+ .panel-footer .btn-save.btn-plugin {
1100
+ float: right;
1101
+ font-size: 1.5em;
1102
+ }
1103
+
1104
+ .btn-config,
1105
+ .btn-save {
1106
+ &::before {
1107
+ margin-right: $general-margin;
1108
+ font-size: 2em;
1109
+ }
1110
+ }
1111
+
1112
+ .btn-group-toggle {
1113
+ .btn {
1114
+ text-align: center;
1115
+ }
1116
+
1117
+ .btn.active,
1118
+ .btn.btn-raised:not(.btn-link).active,
1119
+ .btn.btn-raised:not(.btn-link).hover,
1120
+ .btn.btn-raised:not(.btn-link):focus.active,
1121
+ .btn.btn-raised:not(.btn-link):focus.active:hover {
1122
+ @include box-shadow(none);
1123
+ }
1124
+
1125
+ .btn.btn.active,
1126
+ .btn.btn-raised:not(.btn-link).active {
1127
+ color: $white;
1128
+ background: $brand-primary;
1129
+ }
1130
+
1131
+ .btn.btn-raised:not(.btn-link):focus.active:hover {
1132
+ background: lighten($brand-primary,10%);
1133
+ }
1134
+ }
1135
+
1136
+
1137
+ // TOOLTIP
1138
+ .tooltip-inner {
1139
+ padding: 5px 8px;
1140
+ }
1141
+
1142
+
1143
+ // MODALS
1144
+ .modal { // modal overlay
1145
+ background: transparentize($blue, 0.5);
1146
+ z-index: $z-index-modal;
1147
+
1148
+ .modal-header {
1149
+ .modal-title {
1150
+ padding-top: 10px;
1151
+ text-transform: uppercase;
1152
+ }
1153
+ .close {
1154
+ margin-left: $padding-small-horizontal;
1155
+ font-size: 3em;
1156
+ font-weight: normal;
1157
+ }
1158
+ }
1159
+
1160
+ .modal-body,
1161
+ .modal-footer {
1162
+ padding-left: $modal-padding;
1163
+ padding-right: $modal-padding;
1164
+ }
1165
+
1166
+ .modal-footer {
1167
+ padding-bottom: $modal-padding;
1168
+ }
1169
+ }
1170
+
1171
+
1172
+
1173
+ // ALERTS
1174
+ .alert {
1175
+ .close {
1176
+ opacity: 0.5;
1177
+ }
1178
+
1179
+ a,
1180
+ .alert-link {
1181
+ color: inherit;
1182
+ text-decoration: underline;
1183
+ &:hover {
1184
+ opacity: 0.8;
1185
+ }
1186
+ }
1187
+ a.btn {
1188
+ text-decoration: none;
1189
+ &:hover {
1190
+ opacity: 1;
1191
+ }
1192
+ }
1193
+
1194
+ &.alert-warning {
1195
+ background: lighten($brand-warning,10%);
1196
+ color: darken($brand-warning,20%);
1197
+ a,
1198
+ .alert-link {
1199
+ color: inherit;
1200
+ }
1201
+ }
1202
+
1203
+ &.alert-lite {
1204
+ background: none;
1205
+ padding: 0 0 0 1.8em;
1206
+ position: relative;
1207
+ font-size: 0.9em;
1208
+ margin-bottom: 10px;
1209
+ &::before {
1210
+ position: absolute;
1211
+ top: 0;
1212
+ left: 0;
1213
+ font-size: 1.4em;
1214
+ }
1215
+
1216
+ &.alert-warning {
1217
+ color: darken($brand-warning,5%);
1218
+ &::before {
1219
+ @include material-icons(warning);
1220
+ }
1221
+ }
1222
+ &.alert-danger {
1223
+ color: $brand-danger;
1224
+ &::before {
1225
+ @include material-icons(error);
1226
+ }
1227
+ }
1228
+ &.alert-success {
1229
+ color: $brand-success;
1230
+ &::before {
1231
+ @include material-icons(check);
1232
+ }
1233
+ }
1234
+ &.alert-info {
1235
+ color: $brand-info;
1236
+ &::before {
1237
+ @include material-icons(info);
1238
+ }
1239
+ }
1240
+ }
1241
+ }
1242
+
1243
+ .alert-fancy {
1244
+ $alert-fancy-image-width: 150px;
1245
+ $alert-fancy-image-arrow: 15px;
1246
+
1247
+ @media screen and (min-width: $screen-sm-min) {
1248
+ &.alert {
1249
+ background-color: transparent;
1250
+ padding: 0;
1251
+ display: flex;
1252
+ align-items: center;
1253
+ }
1254
+
1255
+ .alert-inner {
1256
+ padding: 15px;
1257
+ flex: 1 1 auto;
1258
+ position: relative;
1259
+ margin-left: 5px;
1260
+
1261
+ *:only-child {
1262
+ margin: 0;
1263
+ }
1264
+
1265
+ &::after {
1266
+ content: "";
1267
+ position: absolute;
1268
+ left: -$alert-fancy-image-arrow;
1269
+ top: 0;
1270
+ bottom: 0;
1271
+ width: 0;
1272
+ height: 0;
1273
+ border-style: solid;
1274
+ border-width: $alert-fancy-image-arrow $alert-fancy-image-arrow $alert-fancy-image-arrow 0;
1275
+ margin: auto;
1276
+ }
1277
+ }
1278
+
1279
+ &::before {
1280
+ content: "";
1281
+ height: $alert-fancy-image-width;
1282
+ width: $alert-fancy-image-width;
1283
+ min-width: 100px;
1284
+ background-repeat: no-repeat;
1285
+ }
1286
+ }
1287
+
1288
+ &.alert-warning {
1289
+ @media screen and (min-width: $screen-sm-min) {
1290
+ .alert-inner {
1291
+ background: lighten($brand-warning, 20%);
1292
+ &::after {
1293
+ border-color: transparent lighten($brand-warning, 20%) transparent transparent;
1294
+ }
1295
+ }
1296
+ &::before {
1297
+ background-image: url('../img/walter-face-lost.png');
1298
+ background-size: 85%;
1299
+ background-position: center left;
1300
+ }
1301
+ }
1302
+ }
1303
+
1304
+ &.alert-success {
1305
+ @media screen and (min-width: $screen-sm-min) {
1306
+ .alert-inner {
1307
+ background: lighten($brand-success, 4%);
1308
+ &::after {
1309
+ border-color: transparent lighten($brand-success, 4%) transparent transparent;
1310
+ }
1311
+ }
1312
+ &::before {
1313
+ background-image: url('../img/walter-face-2.png');
1314
+ background-size: 85%;
1315
+ background-position: center left;
1316
+ }
1317
+ }
1318
+ }
1319
+
1320
+ &.alert-danger {
1321
+ @media screen and (min-width: $screen-sm-min) {
1322
+ .alert-inner {
1323
+ background: $brand-danger;
1324
+ &::after {
1325
+ border-color: transparent $brand-danger transparent transparent;
1326
+ }
1327
+ }
1328
+ &::before {
1329
+ background-image: url('../img/walter-face-lost.png');
1330
+ background-size: 85%;
1331
+ background-position: center left;
1332
+ }
1333
+ }
1334
+ }
1335
+
1336
+ &.alert-info {
1337
+ @media screen and (min-width: $screen-sm-min) {
1338
+ .alert-inner {
1339
+ background: $brand-info;
1340
+ &::after {
1341
+ border-color: transparent $brand-info transparent transparent;
1342
+ }
1343
+ }
1344
+ &::before {
1345
+ background-image: url('../img/walter-face.png');
1346
+ background-size: 85%;
1347
+ background-position: center left;
1348
+ }
1349
+ }
1350
+ }
1351
+
1352
+ &.alert-token {
1353
+ @media screen and (min-width: $screen-sm-min) {
1354
+ &::before {
1355
+ background-image: url('../img/renew-token.png');
1356
+ background-size: 85%;
1357
+ background-position: center left;
1358
+ }
1359
+ }
1360
+ }
1361
+ }
1362
+
1363
+
1364
+ .alert-fixed {
1365
+ position: fixed;
1366
+ z-index: $z-index-alert-fixed;
1367
+ .alert {
1368
+ margin-bottom: 0;
1369
+ transition: box-shadow 0.2s ease-in-out, margin-bottom 0.2s ease-in-out;
1370
+ @include focus-shadow();
1371
+ }
1372
+ .alert-fancy {
1373
+ &.alert {
1374
+ @media screen and (min-width: $screen-sm-min) {
1375
+ box-shadow: none;
1376
+ background: rgba($white, .8);
1377
+ .alert-inner {
1378
+ @include focus-shadow();
1379
+ }
1380
+ }
1381
+ }
1382
+ }
1383
+ }
1384
+
1385
+ .alert-wrap {
1386
+ @include clearfix();
1387
+ }
1388
+
1389
+ .alert-info-disabled {
1390
+ display: none;
1391
+ }
1392
+
1393
+ .disabled-box {
1394
+ position: relative;
1395
+
1396
+ &::before {
1397
+ position: absolute;
1398
+ top: 0;
1399
+ left: 0;
1400
+ content:"";
1401
+ display: block;
1402
+ width: 100%;
1403
+ height: 100%;
1404
+ background: transparentize($white,0.25);
1405
+ z-index: $z-index-loading-overlay;
1406
+ opacity: 0.75;
1407
+ }
1408
+
1409
+ .alert-info-disabled {
1410
+ display: block;
1411
+
1412
+ position: absolute;
1413
+ top: 75px;
1414
+ left: 50%;
1415
+ margin-left: -35%;
1416
+ width: 70%;
1417
+ background: lighten($panel-inner-border,8%);
1418
+ color: $wp-admin-text-color;
1419
+ text-align: center;
1420
+ z-index: $z-index-loading-overlay + 1;
1421
+ @include shadow-z-1;
1422
+
1423
+ @media screen and (min-width: $screen-md-min) {
1424
+ width: 50%;
1425
+ margin-left: -25%;
1426
+ }
1427
+
1428
+ @media screen and (min-width: $screen-md-min) {
1429
+ width: 400px;
1430
+ margin-left: -200px;
1431
+ }
1432
+
1433
+ .alert-tit {
1434
+ display: block;
1435
+ font-weight: bold;
1436
+ margin-bottom: 10px;
1437
+ }
1438
+ }
1439
+ }
1440
+
1441
+
1442
+
1443
+
1444
+ // LIST FEATURES
1445
+ .list-group-tit {
1446
+ font-size: floor($font-size-base * 1.3);
1447
+ text-transform: uppercase;
1448
+ }
1449
+
1450
+ .list-group {
1451
+ $this__item-padding-horizontal: 16px; // material design standard value
1452
+ $this__icon-margin: 16px; // material design standard value
1453
+
1454
+ .list-group-separator {
1455
+ &::before {
1456
+ width: calc(100% - (#{$mdb-btn-icon-size} + #{$this__icon-margin} + 5px + #{$this__item-padding-horizontal})); //5px = delta fix
1457
+ }
1458
+ }
1459
+
1460
+ .list-group-item {
1461
+ padding: 0;
1462
+
1463
+ &::before {
1464
+ @include material-icons(description);
1465
+ display: inline-block;
1466
+ vertical-align: top;
1467
+ width: $mdb-btn-icon-size;
1468
+ line-height: $mdb-btn-icon-size;
1469
+ background: $grey-light;
1470
+ border-radius: 100%;
1471
+ margin-right: $this__icon-margin;
1472
+ text-align: center;
1473
+ font-size: $mdb-btn-fab-font-size;
1474
+ color: $white;
1475
+ }
1476
+
1477
+ .list-group-item-heading {
1478
+ font-size: $font-size-base;
1479
+ font-weight: bold;
1480
+ line-height: $line-height-base;
1481
+ }
1482
+
1483
+ a.list-group-item-heading {
1484
+ color: $link-color
1485
+ }
1486
+
1487
+ .list-group-item-date {
1488
+ display: block;
1489
+ margin-bottom: 5px;
1490
+ font-style: italic;
1491
+ color: lighten($wp-admin-text-color, 30%);
1492
+ }
1493
+
1494
+ .list-group-item-text {
1495
+ font-size: $font-size-small;
1496
+ }
1497
+
1498
+ .row-content {
1499
+ width: calc(100% - (#{$mdb-btn-icon-size} + #{$this__icon-margin} + 5px)); //5px = delta fix
1500
+ min-height: auto;
1501
+ }
1502
+ }
1503
+
1504
+ &.no-icon {
1505
+ .list-group-separator {
1506
+ &::before {
1507
+ width: 100%;
1508
+ }
1509
+ }
1510
+
1511
+ .list-group-item {
1512
+ &::before {
1513
+ display:none;
1514
+ }
1515
+
1516
+ .row-content {
1517
+ width: 100%;
1518
+ }
1519
+ }
1520
+ }
1521
+ }
1522
+
1523
+
1524
+
1525
+ // LIST FILTER
1526
+ .list-filter {
1527
+ $list-filter__label-vertical-padding: 0.3em; //equals to label padding
1528
+ $list-filter__margin: 10px;
1529
+
1530
+ .filter-and {
1531
+ text-transform: uppercase;
1532
+ font-weight: normal;
1533
+ color: $grey-light;
1534
+ padding-right: $list-filter__margin;
1535
+ display: table-cell;
1536
+ vertical-align: middle;
1537
+ }
1538
+ .label {
1539
+ background-color: transparent;
1540
+ border-radius: 0;
1541
+ color: $black;
1542
+ text-align: left;
1543
+ font-weight: $default-font-weight-light;
1544
+ font-size: $mdb-input-font-size-base;
1545
+ line-height: normal;
1546
+ white-space: normal;
1547
+ transition: background-color 0.2s $mdb-animation-curve-default;
1548
+ border: 1px dashed $grey-light;
1549
+ display: table-cell;
1550
+ vertical-align: middle;
1551
+ }
1552
+ .actions {
1553
+ opacity: 0;
1554
+ transition: all 0.5s $mdb-animation-curve-default;
1555
+ padding: 0 $list-filter__margin;
1556
+ display: table-cell;
1557
+ vertical-align: middle;
1558
+ }
1559
+
1560
+ li {
1561
+ display: table;
1562
+ margin-bottom: 10px;
1563
+
1564
+ &:hover {
1565
+ .label {
1566
+ background-color: $grey-light-2;
1567
+ }
1568
+ .actions {
1569
+ opacity: 1;
1570
+ }
1571
+ }
1572
+ }
1573
+ }
1574
+
1575
+
1576
+
1577
+ // LOADING
1578
+ .loading-data {
1579
+ &:not(.btn) {
1580
+ &::after {
1581
+ @include loading-spinner;
1582
+ }
1583
+ }
1584
+
1585
+ &.btn {
1586
+ pointer-events: none;
1587
+ &::before {
1588
+ @include loading-spinner;
1589
+ font-size: $mdb-btn-fab-font-size;
1590
+ }
1591
+ }
1592
+
1593
+ &.btn-fab {
1594
+ &::before {
1595
+ margin-top: -$mdb-btn-fab-font-size/2;
1596
+ margin-left: -$mdb-btn-fab-font-size/2;
1597
+ }
1598
+ }
1599
+
1600
+ &.btn-fab-mini {
1601
+ &::before {
1602
+ margin-top: -$mdb-btn-fab-size-mini/2;
1603
+ margin-left: -$mdb-btn-fab-size-mini/2;
1604
+ }
1605
+ }
1606
+ }
1607
+
1608
+ .btn-group-sm {
1609
+ .btn-fab.loading-data {
1610
+ pointer-events: none;
1611
+
1612
+ &::before {
1613
+ margin-top: -$mdb-btn-fab-size-mini/2;
1614
+ margin-left: -$mdb-btn-fab-size-mini/2;
1615
+ }
1616
+ }
1617
+ }
1618
+
1619
+ .loading-data.loading-box {
1620
+ position: relative;
1621
+
1622
+ &::before {
1623
+ position: absolute;
1624
+ top: 0;
1625
+ left: 0;
1626
+ content:"";
1627
+ display: block;
1628
+ width: 100%;
1629
+ height: 100%;
1630
+ background: transparentize($white,0.25);
1631
+ z-index: $z-index-loading-overlay;
1632
+ }
1633
+
1634
+ &::after {
1635
+ $this__W: 90px;
1636
+
1637
+ position: absolute;
1638
+ top: 50%;
1639
+ left: 50%;
1640
+ width: $this__W;
1641
+ height: $this__W;
1642
+ line-height: $this__W;
1643
+ background: $grey-light-2;
1644
+ border-radius: 50%;
1645
+ //border: 1px solid rgba(0,0,0,.1);
1646
+ margin-top: -$this__W/2;
1647
+ margin-left: -$this__W/2;
1648
+ text-align: center;
1649
+ font-size: 50px;
1650
+ color: $black;
1651
+ z-index: $z-index-loading-loader;
1652
+ }
1653
+
1654
+ &::before,
1655
+ &::after {
1656
+ opacity: 0.75;
1657
+ }
1658
+ }
1659
+
1660
+ @keyframes placeholder-shimmer {
1661
+ 0%{
1662
+ background-position: 100% 0;
1663
+ }
1664
+ 100%{
1665
+ background-position: -100% 0;
1666
+ }
1667
+ }
includes/admin/assets/sass/_mixins.scss ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // CUSTOM MIXINS
2
+
3
+ //STYLE
4
+ @mixin material-icons($icon) {
5
+ content:"#{$icon}";
6
+ font-family: 'Material Icons';
7
+ font-weight: normal;
8
+ font-style: normal;
9
+ line-height: 1;
10
+ letter-spacing: normal;
11
+ text-transform: none;
12
+ display: inline-block;
13
+ vertical-align: middle;
14
+ white-space: nowrap;
15
+ word-wrap: normal;
16
+ direction: ltr;
17
+ -webkit-font-feature-settings: 'liga';
18
+ -webkit-font-smoothing: antialiased;
19
+ }
20
+
21
+ @mixin btn-fab-style($color) {
22
+ background: $color;
23
+ color: $color;
24
+ }
25
+
26
+ @mixin btn-style-hover {
27
+ background: currentColor;
28
+ @include box-shadow(0 0 10px currentColor);
29
+ }
30
+
31
+
32
+
33
+ // ANIMATIONS
34
+ @keyframes anim-spin {
35
+ 0% { transform: rotate(0deg); }
36
+ 100% { transform: rotate(-360deg); }
37
+ }
38
+
39
+ @mixin spinner {
40
+ animation: anim-spin 1s infinite linear;
41
+ }
42
+
43
+ @mixin loading-spinner {
44
+ @include material-icons(sync);
45
+ @include spinner;
46
+ font-size: inherit;
47
+ line-height: normal;
48
+ color: inherit;
49
+ }
50
+
51
+
52
+
53
+
54
+ //PROPERTIES
55
+ @mixin flexbox {
56
+ display: -webkit-box;
57
+ display: -moz-box;
58
+ display: -ms-flexbox;
59
+ display: -webkit-flex;
60
+ display: flex;
61
+ }
62
+
63
+ @mixin flex($values) {
64
+ -webkit-box-flex: $values;
65
+ -moz-box-flex: $values;
66
+ -webkit-flex: $values;
67
+ -ms-flex: $values;
68
+ flex: $values;
69
+ }
70
+
71
+ @mixin flex-wrap($value) {
72
+ -webkit-flex-wrap: $value;
73
+ -ms-flex-wrap: $value;
74
+ flex-wrap: $value;
75
+ }
76
+
77
+ @mixin flexbox-align-items($value) {
78
+ -ms-flex-align: $value;
79
+ -webkit-align-items: $value;
80
+ align-items: $value;
81
+ }
82
+
83
+ @mixin flexbox-justify-content($value) {
84
+ -ms-flex-pack: $value;
85
+ -webkit-justify-content: $value;
86
+ justify-content: $value;
87
+ }
includes/admin/assets/sass/_select2-custom.scss ADDED
@@ -0,0 +1,280 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .select2-container {
2
+ height: auto;
3
+ padding-top: 0;
4
+ padding-bottom: 2px; //to show form-control border-bottom
5
+ z-index: 1;
6
+
7
+ &:hover {
8
+ background-color: $field-bg-hover;
9
+ }
10
+
11
+ .select2-choice,
12
+ .select2-choices {
13
+ height: $mdb-input-height-base - 1px;
14
+ line-height: $mdb-input-height-base - 1px;
15
+ border: none;
16
+ border-radius: 0;
17
+ background: $field-bg;
18
+
19
+ .select2-arrow {
20
+ width: 30px;
21
+ background: none;
22
+ border-left: none;
23
+
24
+ b {
25
+ display: none;
26
+ }
27
+
28
+ &::before {
29
+ $this__W: 6px;
30
+
31
+ content:"";
32
+ position: absolute;
33
+ top: 50%;
34
+ left: 50%;
35
+ margin-top: -$this__W/2;
36
+ margin-left: -$this__W;
37
+ width: 0;
38
+ height: 0;
39
+ border-style: solid;
40
+ border-width: $this__W $this__W 0 $this__W;
41
+ border-color: $black transparent transparent transparent;
42
+ }
43
+ }
44
+ }
45
+
46
+ .select2-choice {
47
+ padding-left: 0;
48
+ padding-right: 0;
49
+ background-color: transparent;
50
+
51
+ &:hover {
52
+ text-decoration: none;
53
+ color: $wp-admin-text-color;
54
+ }
55
+ }
56
+
57
+
58
+ &.select2-container-active {
59
+ .select2-choices,
60
+ .select2-choice {
61
+ @include box-shadow(none);
62
+ }
63
+ }
64
+
65
+ &.select2-container-disabled {
66
+ background: $field-disabled-bg;
67
+ border-bottom: 1px dotted $mdb-input-underline-color;
68
+ cursor: $cursor-disabled;
69
+
70
+ .select2-choice {
71
+ background: none;
72
+ border: none;
73
+ pointer-events: none;
74
+ color: $field-disabled-color !important; // To overwrite select2 default (!important) style
75
+
76
+ .select2-chosen {
77
+ color: inherit;
78
+ }
79
+
80
+ .select2-arrow::before {
81
+ border-color: $field-disabled-color transparent transparent transparent;
82
+ }
83
+ }
84
+ }
85
+
86
+
87
+
88
+ // LOADING - SET UP
89
+ .select2-chosen,
90
+ .select2-arrow {
91
+ transition: opacity 0.3s ease-out;
92
+ }
93
+
94
+ &::after { //* loading icon
95
+ opacity: 0;
96
+ transition: opacity 0.3s ease-out;
97
+ }
98
+
99
+ &.loading-data {
100
+ pointer-events: none;
101
+
102
+ &::after {
103
+ position: absolute;
104
+ top: 9px;
105
+ right: 14px;
106
+ color: $wp-admin-text-color;
107
+ opacity: 0.75;
108
+ font-size: 1.5em;
109
+ }
110
+
111
+ .select2-chosen {
112
+ opacity: 0.5;
113
+ }
114
+
115
+ .select2-arrow {
116
+ opacity: 0;
117
+ }
118
+ }
119
+ }
120
+
121
+ .form-group .select2-container-multi.form-control {
122
+ padding-left: 0;
123
+ padding-right: 0;
124
+ }
125
+
126
+ .select2-container-multi {
127
+
128
+ &:hover {
129
+ background-color: $field-bg;
130
+ }
131
+
132
+ .select2-choices {
133
+ $this__padding-min: 7px;
134
+ $this__icon-W: 20px;
135
+
136
+ background-color: transparent;
137
+ padding: 0 $padding-small-horizontal;
138
+
139
+ .select2-search-field .select2-input {
140
+ padding: 0;
141
+ margin: 0;
142
+ }
143
+
144
+ .select2-search-field,
145
+ .select2-search-choice {
146
+ float: none;
147
+ display: inline-block;
148
+ margin: 0px 5px 0px 0;
149
+ }
150
+
151
+ .select2-search-choice {
152
+ position: relative;
153
+ top: 1px; //fix positioning
154
+ background: lighten($brand-primary,40%);
155
+ padding: $this__padding-min $this__icon-W + $this__padding-min $this__padding-min $this__padding-min;
156
+ //margin: $general-margin $general-margin $general-margin 0;
157
+ border: none;
158
+ border-radius: 0;
159
+ text-transform: uppercase;
160
+ font-size: 0.85em;
161
+ font-weight: $font-weight-bold;
162
+ @include box-shadow(none);
163
+ }
164
+
165
+ .select2-search-choice-close {
166
+ top: 50%;
167
+ margin-top: -$this__icon-W/2;
168
+ left: auto;
169
+ width: $this__icon-W;
170
+ height: $this__icon-W;
171
+ line-height: $this__icon-W;
172
+ background: none !important; // to override plugin style that already has an !important
173
+ text-align: center;
174
+
175
+ &::before {
176
+ @include material-icons(close);
177
+ color: $brand-primary;
178
+ font-size: 18px;
179
+ }
180
+
181
+ &:hover {
182
+ &::before {
183
+ color: $red;
184
+ }
185
+ }
186
+ }
187
+ }
188
+
189
+ &.select2-container-active {
190
+ .select2-choices {
191
+ border: none;
192
+ }
193
+ }
194
+ }
195
+
196
+ .select2-drop {
197
+ @include shadow-z-1;
198
+ background: $select-dropdown-bg;
199
+ border: none;
200
+
201
+ .select2-search {
202
+ $this__icon-W: 30px;
203
+
204
+ padding: $padding-small-horizontal;
205
+
206
+ &::before {
207
+ position: absolute;
208
+ right: $padding-small-horizontal;
209
+ width: $this__icon-W;
210
+ @include material-icons(search);
211
+ line-height: $mdb-input-height-base;
212
+ color: $select-option-bg-hover;
213
+ font-size: 1.5em;
214
+ }
215
+
216
+ .select2-input {
217
+ min-height: $mdb-input-height-base;
218
+ background-color: $white;
219
+ background-image: none !important; // to override plugin style that already has an !important
220
+ border-color: $select-option-bg-hover;
221
+ padding-right: $this__icon-W;
222
+
223
+ &.select2-focused {
224
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px lighten($brand-primary, 20%));
225
+ }
226
+ }
227
+ }
228
+
229
+ &.select2-drop-above.select2-drop-active {
230
+ border-top: none;
231
+ @include shadow-z-1;
232
+ }
233
+ }
234
+
235
+ .select2-drop-multi {
236
+ @include translate(0,1px);
237
+ }
238
+
239
+ .select2-results {
240
+ padding: 0;
241
+ margin: 0;
242
+ font-size: $font-size-base;
243
+ font-weight: 300;
244
+
245
+ .select2-result,
246
+ .select2-no-results {
247
+ padding: $padding-small-horizontal;
248
+ margin-bottom: 0;
249
+ }
250
+
251
+ .select2-result {
252
+ border-top: 1px solid lighten($select-option-bg-hover,10%);
253
+ }
254
+
255
+ .select2-no-results {
256
+ background: none;
257
+ }
258
+
259
+ .select2-result-label {
260
+ padding: 0;
261
+ }
262
+
263
+ .select2-highlighted {
264
+ background: $select-option-bg-hover;
265
+ color: $white;
266
+
267
+ &:active {
268
+ background: $brand-primary;
269
+ color: $white;
270
+ }
271
+ }
272
+ }
273
+
274
+ .select2-dropdown-open.select2-drop-above {
275
+ .select2-choice,
276
+ .select2-choices {
277
+ background: none;
278
+ border: none;
279
+ }
280
+ }
includes/admin/assets/sass/_settings.scss ADDED
@@ -0,0 +1,530 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // SETTINGS
2
+ .panel-settings-set-fb-px {
3
+ $divider-W: 70px;
4
+
5
+ .panel-heading .tit::before {
6
+ @include material-icons(settings);
7
+ }
8
+
9
+ .panel-body {
10
+ @include flexbox;
11
+ @include flexbox-align-items(stretch);
12
+ @include flex-wrap(wrap);
13
+ padding: 0;
14
+ }
15
+
16
+ .panel-footer .form-group {
17
+ margin-top: 0;
18
+ padding-bottom: 0;
19
+ }
20
+
21
+ .sub-panel {
22
+ @include flex(1 0 100%);
23
+ padding: $panel-body-padding;
24
+
25
+ &:first-child {
26
+ position: relative;
27
+ order: 2;
28
+ padding-top: $divider-W/2;
29
+ }
30
+
31
+ &-fb-connect {
32
+ background: lighten($blue,45%);
33
+ padding-bottom: $divider-W/2;
34
+ border-bottom: 1px solid $panel-inner-border;
35
+ order: 1;
36
+ }
37
+
38
+ @media screen and (min-width: $screen-sm-min) {
39
+ @include flex(0 0 50%);
40
+ max-width: 50%;
41
+
42
+ &:first-child {
43
+ padding-right: floor($divider-W * 0.65);
44
+ border-right: 1px solid $panel-inner-border;
45
+ border-bottom: 0;
46
+ padding-top: $panel-body-padding;
47
+ order: 1;
48
+ }
49
+
50
+ &-fb-connect {
51
+ padding-left: floor($divider-W * 0.65);
52
+ order: 2;
53
+ padding-bottom: $panel-body-padding;
54
+ }
55
+ }
56
+
57
+ }
58
+
59
+ .divider {
60
+ $W: $divider-W;
61
+
62
+ display: block;
63
+ position: absolute;
64
+ top: 0;
65
+ right: 0;
66
+ left: 0;
67
+ margin: auto;
68
+ width: $W;
69
+ height: $W;
70
+ line-height: $W;
71
+ border-radius: 50%;
72
+ background: $white;
73
+ border: 1px solid $panel-inner-border;
74
+ margin-top: -$W/2;
75
+ text-align: center;
76
+ text-transform: uppercase;
77
+ font-style: normal;
78
+ font-weight: $font-weight-bold;
79
+ color: darken($panel-inner-border,20%);
80
+
81
+ @media screen and (min-width: $screen-sm-min) {
82
+ top: 50%;
83
+ right: -($W + 1)/2;
84
+ left: auto;
85
+ }
86
+ }
87
+
88
+ .btn-fb-connect {
89
+ padding-left: floor($btn-padding-vertical * 1.5);
90
+ padding-right: floor($btn-padding-vertical * 1.5);
91
+ font-size: 1.2em;
92
+
93
+ &::before {
94
+ width: $btn-fb-connect-icon-W * 0.8;
95
+ height: $btn-fb-connect-icon-W * 0.8;
96
+ margin: -4px 0.5em 0 0;
97
+ }
98
+
99
+ @media screen and (min-width: $screen-md-min) {
100
+ font-size: 1.5em;
101
+
102
+ &::before {
103
+ width: $btn-fb-connect-icon-W;
104
+ height: $btn-fb-connect-icon-W;
105
+ }
106
+ }
107
+ }
108
+
109
+ .sub-panel-px-id {
110
+ .control-wrap {
111
+ $this__icon-W: 40px;
112
+
113
+ position: relative;
114
+ padding-left: 0;
115
+
116
+ &::before {
117
+ position: absolute;
118
+ top: 0;
119
+ right: 0;
120
+ @include material-icons(check);
121
+ width: $this__icon-W;
122
+ height: $this__icon-W;
123
+ line-height: $this__icon-W;
124
+ font-size: 2em;
125
+ text-align: center;
126
+ color: $brand-success;
127
+ display: none;
128
+ }
129
+
130
+ .form-control {
131
+ padding-right: $this__icon-W;
132
+ }
133
+ }
134
+
135
+ &.active {
136
+ .control-wrap {
137
+ &::before {
138
+ display: block;
139
+ }
140
+ }
141
+
142
+ .form-control {
143
+ background-image: linear-gradient($brand-success, $brand-success), linear-gradient($mdb-input-underline-color, $mdb-input-underline-color);
144
+ background-size: 100% 2px, 100% 1px;
145
+ border-bottom-color: $brand-success;
146
+ color: $brand-success;
147
+
148
+ }
149
+ }
150
+ }
151
+
152
+ .sub-panel-fb-connect {
153
+ .user-actions {
154
+ display: none;
155
+ overflow: hidden;
156
+ font-size: $font-size-small;
157
+
158
+ .user-disconnect {
159
+ display: inline-block;
160
+ padding-right: $padding-small-horizontal;
161
+ margin-right: $padding-small-horizontal;
162
+ border-right: 1px dotted $brand-success;
163
+ @include translate(-100%,0);
164
+
165
+ @media screen and (min-width: $screen-md-min) {
166
+ border-right: none;
167
+ }
168
+ }
169
+ .user-edit {
170
+ font-weight: $default-font-weight-semibold;
171
+ @include translate(100%,0);
172
+
173
+ @media screen and (min-width: $screen-md-min) {
174
+ float: right;
175
+ }
176
+ }
177
+ }
178
+
179
+ .user-info {
180
+ @include flexbox;
181
+ @include flexbox-align-items(flex-start);
182
+ }
183
+
184
+ .user-avatar {
185
+ width: $btn-fb-connect-avatar-W * 0.7;
186
+ height: $btn-fb-connect-avatar-W * 0.7;
187
+ margin-right: $padding-small-horizontal;
188
+ border: 3px solid $white;
189
+ }
190
+
191
+ .sub-panel-actions {
192
+ float: right;
193
+ }
194
+
195
+ &.to-set-up {
196
+ background: lighten($brand-warning,40%);
197
+
198
+ .form-group {
199
+ .select2-container:not(.select2-container-disabled) {
200
+ background-color: $white;
201
+ background-image: linear-gradient($brand-warning, $brand-warning), linear-gradient(lighten($brand-warning,30%), lighten($brand-warning,30%));
202
+ background-position: center bottom, center bottom;
203
+ }
204
+
205
+ label.control-label {
206
+ color: darken($brand-warning,5%);
207
+ }
208
+ }
209
+
210
+ .user-info {
211
+ float: left;
212
+ margin: 10px 0;
213
+ font-size: $font-size-small;
214
+ color: lighten($black,20%);
215
+ }
216
+
217
+ .user-disconnect {
218
+ display: block;
219
+ }
220
+ }
221
+
222
+ &.active {
223
+ background: lighten($brand-success,50%);
224
+
225
+ .fb-connect-info {
226
+ $this__btn-icon-W: $btn-fb-connect-avatar-W;
227
+
228
+ background: $brand-success;
229
+ padding: $btn-padding-vertical * 2;
230
+ border-radius: $border-radius-base;
231
+ margin-top: $btn-margin-vertical;
232
+ margin-bottom: $btn-margin-vertical;
233
+ white-space: normal;
234
+ font-weight: $font-weight-bold;
235
+ line-height: 1.2em;
236
+ text-transform: none;
237
+ color: $white;
238
+
239
+ .user-info {
240
+ @include flexbox-align-items(flex-start);
241
+ @include flexbox-justify-content(flex-start);
242
+ margin-top: $btn-padding-vertical * 2;
243
+ position: relative;
244
+
245
+ @media screen and (min-width: $screen-xs-min) {
246
+ &::after {
247
+ position: absolute;
248
+ top: 50%;
249
+ margin-top: -$this__btn-icon-W/2;
250
+ right: $btn-padding-vertical * 2;
251
+ width: $this__btn-icon-W;
252
+ height: $this__btn-icon-W;
253
+ line-height: $this__btn-icon-W;
254
+ @include material-icons(check);
255
+ color: inherit;
256
+ font-size: 3.8em;
257
+ }
258
+
259
+ .user-info-account {
260
+ margin-right: $this__btn-icon-W + $btn-padding-horizontal;
261
+ }
262
+
263
+ .user-avatar {
264
+ display: block;
265
+ }
266
+ }
267
+
268
+ @media screen and (min-width: $screen-sm-min) {
269
+ &::after {
270
+ display: none;
271
+ }
272
+ .user-avatar {
273
+ display: none;
274
+ }
275
+ .user-info-account {
276
+ margin-right: 0;
277
+ }
278
+ }
279
+ @media screen and (min-width: $screen-md-min) {
280
+ &::after {
281
+ display: block;
282
+ }
283
+ .user-avatar {
284
+ display: block;
285
+ }
286
+ .user-info-account {
287
+ margin-right: $this__btn-icon-W + $btn-padding-horizontal;
288
+ }
289
+ }
290
+ }
291
+
292
+ .user-avatar {
293
+ display: none;
294
+ width: $btn-fb-connect-avatar-W;
295
+ height: $btn-fb-connect-avatar-W;
296
+ }
297
+
298
+ .user-ad-account,
299
+ .user-name {
300
+ font-size: $font-size-base;
301
+ line-height: normal;
302
+ }
303
+
304
+ .user-ad-account {
305
+ display: block;
306
+ text-transform: uppercase;
307
+ font-size: $font-size-base - 2px;
308
+ }
309
+
310
+ .pixel-id,
311
+ .user-ad-account {
312
+ font-weight: $default-font-weight-light;
313
+ }
314
+
315
+ .pixel-id {
316
+ font-style: normal;
317
+ color: $white;
318
+ font-size: 1.3em;
319
+ }
320
+
321
+ .pixel-id-value,
322
+ .user-ad-account-value {
323
+ font-weight: $default-font-weight-semibold;
324
+ word-break: break-all;
325
+ }
326
+
327
+ .user-ad-account-value {
328
+ display: block;
329
+ text-transform: none;
330
+ font-size: $font-size-base;
331
+ }
332
+
333
+ .user-name {
334
+ font-weight: $default-font-weight-light;
335
+ color: lighten($brand-success, 45%);
336
+ }
337
+ }
338
+
339
+ .user-actions {
340
+ display: block;
341
+
342
+ .user-edit {
343
+ @include translate(0,0);
344
+ }
345
+ .user-disconnect {
346
+ @include translate(0,0);
347
+ }
348
+ }
349
+ }
350
+ }
351
+ }
352
+
353
+ .panel-settings-ca {
354
+ .panel-heading .tit::before {
355
+ @include material-icons(person)
356
+ }
357
+
358
+ .form-track {
359
+ @include clearfix;
360
+ margin: $form-group-space-bottom 0;
361
+
362
+ .control-label,
363
+ .control-wrap {
364
+ @include make-md-column(12);
365
+ padding-left: 0;
366
+ padding-right: 0;
367
+ }
368
+ }
369
+
370
+ .control-label {
371
+ padding-top: 0;
372
+ text-align: left;
373
+
374
+ .tit {
375
+ font-size: $sub-headings-font-size;
376
+ }
377
+ }
378
+
379
+ .sub-panel-adv-opt {
380
+ .form-group {
381
+ @include make-md-column(6);
382
+ padding-left: 0;
383
+ }
384
+
385
+ .control-wrap {
386
+ @include make-md-column(12);
387
+ padding-left: 0;
388
+ padding-right: 0;
389
+ }
390
+
391
+ label {
392
+ text-align: left;
393
+ }
394
+ }
395
+ }
396
+
397
+ .panel-settings-conversions {
398
+ .panel-heading .tit::before {
399
+ @include material-icons(shopping_cart);
400
+ }
401
+
402
+ .ecomm-detect,
403
+ .ecomm-conversions {
404
+ .tit {
405
+ font-size: $sub-headings-font-size;
406
+ }
407
+ }
408
+
409
+ .ecomm-detect {
410
+ margin: $panel-body-padding 0 $panel-body-padding * 2;
411
+
412
+ .tit {
413
+ display: inline-block;
414
+ margin-top: 0;
415
+ margin-bottom: 0;
416
+ }
417
+
418
+ .info {
419
+ display: block;
420
+ margin-top: $general-margin;
421
+
422
+ a {
423
+ font-weight: $font-weight-bold;
424
+ text-decoration: underline;
425
+ text-transform: uppercase;
426
+ color: inherit;
427
+ }
428
+ }
429
+ }
430
+
431
+ .ecomm-conversions {
432
+ $this__arrow-H-max: 20px;
433
+
434
+ border-top: 1px solid $panel-inner-border;
435
+
436
+ &::after,
437
+ &::before {
438
+ content: '';
439
+ display: block;
440
+ position: absolute;
441
+ top: 0;
442
+ left: 40px;
443
+ width: 0;
444
+ height: 0;
445
+ border-style: solid;
446
+ }
447
+
448
+ &::after {
449
+ top: -$this__arrow-H-max * 2;
450
+ border-color: transparent transparent $white transparent ;
451
+ border-width: $this__arrow-H-max 18px;
452
+ margin-left: 1px;
453
+ }
454
+
455
+ &::before {
456
+ top: -$this__arrow-H-max * 2 - 2;
457
+ border-color: transparent transparent $panel-inner-border transparent;
458
+ border-width: $this__arrow-H-max + 1 18px + 1;
459
+ }
460
+
461
+ .checkbox label {
462
+ margin-right: $general-margin * 2;
463
+ }
464
+
465
+ .checkbox {
466
+ display: inline-block;
467
+ }
468
+
469
+ .checkbox-material {
470
+ margin-right: $general-margin/2;
471
+ }
472
+ }
473
+
474
+ // TEMPORARY
475
+ .ecomm-conversions {
476
+ display: none;
477
+ }
478
+
479
+ &.detected {
480
+ .ecomm-detect {
481
+ .info { display: none; }
482
+ }
483
+ .ecomm-conversions {
484
+ display: block;
485
+ }
486
+ }
487
+
488
+ &.not-detected {
489
+ .ecomm-detect {
490
+ color: $brand-danger;
491
+
492
+ &::before {
493
+ @include material-icons(error);
494
+ font-size: 2.5em;
495
+ margin-right: $general-margin;
496
+ }
497
+ }
498
+ }
499
+
500
+ .ecomm-plugin-logo {
501
+ img {
502
+ max-width: 130px;
503
+ max-height: 70px;
504
+ }
505
+ }
506
+
507
+ .sub-panel-supported-plugin {
508
+ .tit,
509
+ .list-supported-plugin {
510
+ display: inline-block;
511
+ vertical-align: middle
512
+ }
513
+ .list-supported-plugin {
514
+ margin-bottom: 0;
515
+ margin-left: 5px;
516
+ .item {
517
+ display: inline-block;
518
+ margin-right: 10px;
519
+ margin-bottom: 0;
520
+ transition: transform 0.2s ease-in-out;
521
+ &:hover {
522
+ transform: scale(1.1);
523
+ }
524
+ }
525
+ .ecomm-plugin-logo {
526
+ display: block;
527
+ }
528
+ }
529
+ }
530
+ }
includes/admin/assets/sass/_variables.scss ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // COLORS
2
+ $wp-admin-text-color: #444;
3
+
4
+ $black: $wp-admin-text-color;
5
+ $blue: #4C70BA;
6
+ $green: #68AA20;
7
+ $grey-light: #CCC; //WP light grey
8
+ $grey-light-2: #EEE;
9
+ $orange: #FD9C00;
10
+ $red: #E15667;
11
+ $white: #FFF;
12
+
13
+ //OVERWRITE MATERIAL DESIGN COLORS
14
+ $brand-primary: $blue;
15
+ $brand-success: $green;
16
+ $brand-warning: $orange;
17
+ $brand-danger: $red;
18
+
19
+
20
+
21
+ // LAYOUT
22
+ $plugin-sec-bg: darken($white, 2%);
23
+ $sidebar-W: 250px;
24
+ $general-margin: 10px;
25
+ $field-bg: lighten($blue,45%);
26
+ $field-bg-hover: darken($field-bg,3%);
27
+ $field-disabled-bg: desaturate($field-bg,100%);
28
+ $field-disabled-color: $mdb-input-placeholder-color;
29
+ $control-label-color: lighten($black,30%);
30
+ $select-dropdown-bg: darken($field-bg,5%);
31
+ $select-option-bg-hover: darken($select-dropdown-bg,20%);
32
+
33
+ $form-group-space-top: 0px;
34
+ $form-group-space-bottom: 20px;
35
+ $form-group-space-bottom-small: 8px;
36
+ $field-radio-space-Y: 10px;
37
+
38
+ $modal-padding: 24px;
39
+
40
+ $mdb-checkbox-checked-color: $brand-primary;
41
+ $mdb-radio-color-on: $brand-primary;
42
+
43
+ $z-index-modal: 9990;
44
+ $z-index-loading-overlay: 10;
45
+ $z-index-loading-loader: $z-index-loading-overlay + 1;
46
+ $z-index-alert-fixed: $z-index-loading-overlay + 2;
47
+
48
+ // BTN
49
+ //btn-mini
50
+ $mdb-btn-mini-font-size: 16px;
51
+ $mdb-btn-mini-width: 28px;
52
+
53
+
54
+ $mdb-btn-fab-size: 40px;
55
+ $mdb-btn-fab-size-mini: $mdb-btn-mini-width;
56
+ $mdb-btn-icon-size: 32px;
57
+
58
+ $btn-fab-font-size-mini: $mdb-btn-mini-font-size;
59
+
60
+ $btn-fb-connect-icon-W: 20px;
61
+ $btn-fb-connect-avatar-W: 50px;
62
+ $btn-default-bg: lighten($grey-light,15%);
63
+
64
+ $btn-padding-vertical: 8px; // material design standard value
65
+ $btn-padding-horizontal: 30px; // material design standard value
66
+ $btn-margin-vertical: 10px; // material design standard value
67
+ $btn-margin-horizontal: 1px; // material design standard value
68
+
69
+
70
+
71
+
72
+ //TYPOGRAPHY
73
+ // default font is meant to be Open Sans
74
+ $mdb-input-font-size-base: $font-size-base;
75
+
76
+ $default-font-weight-light: 300;
77
+ $default-font-weight-normal: 400;
78
+ $default-font-weight-semibold: 600;
79
+ $default-font-weight-bold: 700;
80
+
81
+ $font-weight-bold: $default-font-weight-semibold;
82
+ $headings-font-weight: $default-font-weight-bold;
83
+ $headings-font-size: 24px;
84
+ $sub-headings-font-size: 20px;
includes/admin/assets/sass/_variables_bootstrap.scss ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ // Override Bootstrap variables
2
+ $font-family-sans-serif: "Open Sans", Arial, sans-serif;
3
+ $body-bg: transparent;
includes/admin/assets/sass/admin.scss ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Admin pages common
3
+ */
4
+
5
+ // Material Icons
6
+ @import url( '//fonts.googleapis.com/icon?family=Material+Icons' );
7
+
8
+ // Bootstrap variables
9
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/variables";
10
+ // Override Bootstrap variables
11
+ @import "variables_bootstrap";
12
+ // Bootstrap Mixins
13
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/mixins";
14
+
15
+ //*** ----------- DO NOT CHANGE FILE ORDER! ----------- ***//
16
+ // Bootstrap Material Design Variables
17
+ @import "../../../../vendor/bower/bootstrap-material-design/sass/_variables";
18
+
19
+ // AE Custom Variables (to override MD)
20
+ @import "variables";
21
+
22
+ // Bootstrap Material Design Style
23
+ @import "../../../../vendor/bower/bootstrap-material-design/sass/_mixins";
24
+ @import "../../../../vendor/bower/bootstrap-material-design/sass/shadows";
25
+
26
+ // AE Custom Style
27
+ @import "mixins";
28
+
29
+ // This CSS is linked to class "pixel-caffeine-wrapper" that wraps only the Adespresso section (excludes WordPress menu)
30
+ // Use always this file
31
+ @import "pixel-caffeine-wrapper";
32
+
33
+ // This CSS is linked to class pixel-caffeine that wraps all the page of Adespresso plugin (includes WordPress menu)
34
+ // Use this section only if you work with class to the body or with elements outside of Adespresso section
35
+ @import "pixel-caffeine-body";
36
+
includes/admin/assets/sass/menu.scss ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ * Style for WordPress admin menu
3
+ */
4
+
5
+ @import "font-icons";
6
+
7
+
8
+ // Admin menu icon
9
+ #adminmenu {
10
+ #toplevel_page_aepc-settings {
11
+ .menu-icon-generic div.wp-menu-image::before {
12
+ @include pc-icon('\e800');
13
+ }
14
+ }
15
+ }
includes/admin/assets/sass/pixel-caffeine-body.scss ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .pixel-caffeine {
2
+
3
+ // Plugin style: this plugin adds some elements outside of Adespresso section
4
+ @import "select2-v3.5.4";
5
+
6
+ // AE Custom Style
7
+ @import "select2-custom";
8
+
9
+ // FIX Bootstrap modal
10
+ &.modal-open {
11
+ overflow: hidden;
12
+ .modal {
13
+ overflow-x: hidden;
14
+ overflow-y: auto;
15
+ }
16
+ }
17
+
18
+ }
includes/admin/assets/sass/pixel-caffeine-wrapper.scss ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .pixel-caffeine-wrapper {
2
+
3
+ // Bootstrap
4
+ // Core CSS
5
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/scaffolding";
6
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/type";
7
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/code";
8
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/grid";
9
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/tables";
10
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/forms";
11
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/buttons";
12
+
13
+ // Components
14
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/component-animations";
15
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/dropdowns";
16
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/button-groups";
17
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/input-groups";
18
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/navs";
19
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/navbar";
20
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/breadcrumbs";
21
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/pagination";
22
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/pager";
23
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/labels";
24
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/badges";
25
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/jumbotron";
26
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/thumbnails";
27
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/alerts";
28
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/progress-bars";
29
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/media";
30
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/list-group";
31
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/panels";
32
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/responsive-embed";
33
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/wells";
34
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/close";
35
+
36
+ // Components w/ JavaScript
37
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/modals";
38
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/tooltip";
39
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/popovers";
40
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/carousel";
41
+
42
+ // Utility classes
43
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/utilities";
44
+ @import "../../../../vendor/bower/bootstrap-sass/assets/stylesheets/bootstrap/responsive-utilities";
45
+
46
+ // Bootstrap Material Design Style
47
+ @import "../../../../vendor/bower/bootstrap-material-design/sass/core";
48
+ @import "../../../../vendor/bower/bootstrap-material-design/sass/ripples";
49
+
50
+ // AE Custom Style
51
+ @import "general";
52
+ @import "custom-audience";
53
+ @import "settings";
54
+ @import "conversions";
55
+ @import "dashboard";
56
+ }
57
+
includes/admin/assets/sass/select2-v3.5.4.scss ADDED
@@ -0,0 +1,694 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Version: 3.5.4 Timestamp: Sun Aug 30 13:30:32 EDT 2015
3
+ */
4
+ $select2__imag-path: '../img/select2/';
5
+
6
+ .select2-container {
7
+ margin: 0;
8
+ position: relative;
9
+ display: inline-block;
10
+ vertical-align: middle;
11
+ }
12
+
13
+ .select2-container,
14
+ .select2-drop,
15
+ .select2-search,
16
+ .select2-search input {
17
+ /*
18
+ Force border-box so that % widths fit the parent
19
+ container without overlap because of margin/padding.
20
+ More Info : http://www.quirksmode.org/css/box.html
21
+ */
22
+ -webkit-box-sizing: border-box; /* webkit */
23
+ -moz-box-sizing: border-box; /* firefox */
24
+ box-sizing: border-box; /* css3 */
25
+ }
26
+
27
+ .select2-container .select2-choice {
28
+ display: block;
29
+ height: 26px;
30
+ padding: 0 0 0 8px;
31
+ overflow: hidden;
32
+ position: relative;
33
+
34
+ border: 1px solid #aaa;
35
+ white-space: nowrap;
36
+ line-height: 26px;
37
+ color: #444;
38
+ text-decoration: none;
39
+
40
+ border-radius: 4px;
41
+
42
+ background-clip: padding-box;
43
+
44
+ -webkit-touch-callout: none;
45
+ -webkit-user-select: none;
46
+ -moz-user-select: none;
47
+ -ms-user-select: none;
48
+ user-select: none;
49
+
50
+ background-color: #fff;
51
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(0.5, #fff));
52
+ background-image: -webkit-linear-gradient(center bottom, #eee 0%, #fff 50%);
53
+ background-image: -moz-linear-gradient(center bottom, #eee 0%, #fff 50%);
54
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ffffff', endColorstr = '#eeeeee', GradientType = 0);
55
+ background-image: linear-gradient(to top, #eee 0%, #fff 50%);
56
+ }
57
+
58
+ html[dir="rtl"] .select2-container .select2-choice {
59
+ padding: 0 8px 0 0;
60
+ }
61
+
62
+ .select2-container.select2-drop-above .select2-choice {
63
+ border-bottom-color: #aaa;
64
+
65
+ border-radius: 0 0 4px 4px;
66
+
67
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(0.9, #fff));
68
+ background-image: -webkit-linear-gradient(center bottom, #eee 0%, #fff 90%);
69
+ background-image: -moz-linear-gradient(center bottom, #eee 0%, #fff 90%);
70
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);
71
+ background-image: linear-gradient(to bottom, #eee 0%, #fff 90%);
72
+ }
73
+
74
+ .select2-container.select2-allowclear .select2-choice .select2-chosen {
75
+ margin-right: 42px;
76
+ }
77
+
78
+ .select2-container .select2-choice > .select2-chosen {
79
+ margin-right: 26px;
80
+ display: block;
81
+ overflow: hidden;
82
+
83
+ white-space: nowrap;
84
+
85
+ text-overflow: ellipsis;
86
+ float: none;
87
+ width: auto;
88
+ }
89
+
90
+ html[dir="rtl"] .select2-container .select2-choice > .select2-chosen {
91
+ margin-left: 26px;
92
+ margin-right: 0;
93
+ }
94
+
95
+ .select2-container .select2-choice abbr {
96
+ display: none;
97
+ width: 12px;
98
+ height: 12px;
99
+ position: absolute;
100
+ right: 24px;
101
+ top: 8px;
102
+
103
+ font-size: 1px;
104
+ text-decoration: none;
105
+
106
+ border: 0;
107
+ background: url('#{$select2__imag-path}select2.png') right top no-repeat;
108
+ cursor: pointer;
109
+ outline: 0;
110
+ }
111
+
112
+ .select2-container.select2-allowclear .select2-choice abbr {
113
+ display: inline-block;
114
+ }
115
+
116
+ .select2-container .select2-choice abbr:hover {
117
+ background-position: right -11px;
118
+ cursor: pointer;
119
+ }
120
+
121
+ .select2-drop-mask {
122
+ border: 0;
123
+ margin: 0;
124
+ padding: 0;
125
+ position: fixed;
126
+ left: 0;
127
+ top: 0;
128
+ min-height: 100%;
129
+ min-width: 100%;
130
+ height: auto;
131
+ width: auto;
132
+ opacity: 0;
133
+ z-index: 9998;
134
+ /* styles required for IE to work */
135
+ background-color: #fff;
136
+ filter: alpha(opacity=0);
137
+ }
138
+
139
+ .select2-drop {
140
+ width: 100%;
141
+ margin-top: -1px;
142
+ position: absolute;
143
+ z-index: 9999;
144
+ top: 100%;
145
+
146
+ background: #fff;
147
+ color: #000;
148
+ border: 1px solid #aaa;
149
+ border-top: 0;
150
+
151
+ border-radius: 0 0 4px 4px;
152
+
153
+ -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
154
+ box-shadow: 0 4px 5px rgba(0, 0, 0, .15);
155
+ }
156
+
157
+ .select2-drop.select2-drop-above {
158
+ margin-top: 1px;
159
+ border-top: 1px solid #aaa;
160
+ border-bottom: 0;
161
+
162
+ border-radius: 4px 4px 0 0;
163
+
164
+ -webkit-box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
165
+ box-shadow: 0 -4px 5px rgba(0, 0, 0, .15);
166
+ }
167
+
168
+ .select2-drop-active {
169
+ border: 1px solid #5897fb;
170
+ border-top: none;
171
+ }
172
+
173
+ .select2-drop.select2-drop-above.select2-drop-active {
174
+ border-top: 1px solid #5897fb;
175
+ }
176
+
177
+ .select2-drop-auto-width {
178
+ border-top: 1px solid #aaa;
179
+ width: auto;
180
+ }
181
+
182
+ .select2-container .select2-choice .select2-arrow {
183
+ display: inline-block;
184
+ width: 18px;
185
+ height: 100%;
186
+ position: absolute;
187
+ right: 0;
188
+ top: 0;
189
+
190
+ border-left: 1px solid #aaa;
191
+ border-radius: 0 4px 4px 0;
192
+
193
+ background-clip: padding-box;
194
+
195
+ background: #ccc;
196
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
197
+ background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
198
+ background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
199
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#cccccc', GradientType = 0);
200
+ background-image: linear-gradient(to top, #ccc 0%, #eee 60%);
201
+ }
202
+
203
+ html[dir="rtl"] .select2-container .select2-choice .select2-arrow {
204
+ left: 0;
205
+ right: auto;
206
+
207
+ border-left: none;
208
+ border-right: 1px solid #aaa;
209
+ border-radius: 4px 0 0 4px;
210
+ }
211
+
212
+ .select2-container .select2-choice .select2-arrow b {
213
+ display: block;
214
+ width: 100%;
215
+ height: 100%;
216
+ background: url('#{$select2__imag-path}select2.png') no-repeat 0 1px;
217
+ }
218
+
219
+ html[dir="rtl"] .select2-container .select2-choice .select2-arrow b {
220
+ background-position: 2px 1px;
221
+ }
222
+
223
+ .select2-search {
224
+ display: inline-block;
225
+ width: 100%;
226
+ min-height: 26px;
227
+ margin: 0;
228
+ padding: 4px 4px 0 4px;
229
+
230
+ position: relative;
231
+ z-index: 10000;
232
+
233
+ white-space: nowrap;
234
+ }
235
+
236
+ .select2-search input {
237
+ width: 100%;
238
+ height: auto !important;
239
+ min-height: 26px;
240
+ padding: 4px 20px 4px 5px;
241
+ margin: 0;
242
+
243
+ outline: 0;
244
+ font-family: sans-serif;
245
+ font-size: 1em;
246
+
247
+ border: 1px solid #aaa;
248
+ border-radius: 0;
249
+
250
+ -webkit-box-shadow: none;
251
+ box-shadow: none;
252
+
253
+ background: #fff url('#{$select2__imag-path}select2.png') no-repeat 100% -22px;
254
+ background: url('#{$select2__imag-path}select2.png') no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));
255
+ background: url('#{$select2__imag-path}select2.png') no-repeat 100% -22px, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);
256
+ background: url('#{$select2__imag-path}select2.png') no-repeat 100% -22px, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);
257
+ background: url('#{$select2__imag-path}select2.png') no-repeat 100% -22px, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0;
258
+ }
259
+
260
+ html[dir="rtl"] .select2-search input {
261
+ padding: 4px 5px 4px 20px;
262
+
263
+ background: #fff url('#{$select2__imag-path}select2.png') no-repeat -37px -22px;
264
+ background: url('#{$select2__imag-path}select2.png') no-repeat -37px -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));
265
+ background: url('#{$select2__imag-path}select2.png') no-repeat -37px -22px, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);
266
+ background: url('#{$select2__imag-path}select2.png') no-repeat -37px -22px, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);
267
+ background: url('#{$select2__imag-path}select2.png') no-repeat -37px -22px, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0;
268
+ }
269
+
270
+ .select2-search input.select2-active {
271
+ background: #fff url('#{$select2__imag-path}select2-spinner.gif') no-repeat 100%;
272
+ background: url('#{$select2__imag-path}select2-spinner.gif') no-repeat 100%, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));
273
+ background: url('#{$select2__imag-path}select2-spinner.gif') no-repeat 100%, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);
274
+ background: url('#{$select2__imag-path}select2-spinner.gif') no-repeat 100%, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);
275
+ background: url('#{$select2__imag-path}select2-spinner.gif') no-repeat 100%, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0;
276
+ }
277
+
278
+ .select2-container-active .select2-choice,
279
+ .select2-container-active .select2-choices {
280
+ border: 1px solid #5897fb;
281
+ outline: none;
282
+
283
+ -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .3);
284
+ box-shadow: 0 0 5px rgba(0, 0, 0, .3);
285
+ }
286
+
287
+ .select2-dropdown-open .select2-choice {
288
+ border-bottom-color: transparent;
289
+ -webkit-box-shadow: 0 1px 0 #fff inset;
290
+ box-shadow: 0 1px 0 #fff inset;
291
+
292
+ border-bottom-left-radius: 0;
293
+ border-bottom-right-radius: 0;
294
+
295
+ background-color: #eee;
296
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #fff), color-stop(0.5, #eee));
297
+ background-image: -webkit-linear-gradient(center bottom, #fff 0%, #eee 50%);
298
+ background-image: -moz-linear-gradient(center bottom, #fff 0%, #eee 50%);
299
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);
300
+ background-image: linear-gradient(to top, #fff 0%, #eee 50%);
301
+ }
302
+
303
+ .select2-dropdown-open.select2-drop-above .select2-choice,
304
+ .select2-dropdown-open.select2-drop-above .select2-choices {
305
+ border: 1px solid #5897fb;
306
+ border-top-color: transparent;
307
+
308
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(0.5, #eee));
309
+ background-image: -webkit-linear-gradient(center top, #fff 0%, #eee 50%);
310
+ background-image: -moz-linear-gradient(center top, #fff 0%, #eee 50%);
311
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);
312
+ background-image: linear-gradient(to bottom, #fff 0%, #eee 50%);
313
+ }
314
+
315
+ .select2-dropdown-open .select2-choice .select2-arrow {
316
+ background: transparent;
317
+ border-left: none;
318
+ filter: none;
319
+ }
320
+ html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow {
321
+ border-right: none;
322
+ }
323
+
324
+ .select2-dropdown-open .select2-choice .select2-arrow b {
325
+ background-position: -18px 1px;
326
+ }
327
+
328
+ html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow b {
329
+ background-position: -16px 1px;
330
+ }
331
+
332
+ .select2-hidden-accessible {
333
+ border: 0;
334
+ clip: rect(0 0 0 0);
335
+ height: 1px;
336
+ margin: -1px;
337
+ overflow: hidden;
338
+ padding: 0;
339
+ position: absolute;
340
+ width: 1px;
341
+ }
342
+
343
+ /* results */
344
+ .select2-results {
345
+ max-height: 200px;
346
+ padding: 0 0 0 4px;
347
+ margin: 4px 4px 4px 0;
348
+ position: relative;
349
+ overflow-x: hidden;
350
+ overflow-y: auto;
351
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
352
+ }
353
+
354
+ html[dir="rtl"] .select2-results {
355
+ padding: 0 4px 0 0;
356
+ margin: 4px 0 4px 4px;
357
+ }
358
+
359
+ .select2-results ul.select2-result-sub {
360
+ margin: 0;
361
+ padding-left: 0;
362
+ }
363
+
364
+ .select2-results li {
365
+ list-style: none;
366
+ display: list-item;
367
+ background-image: none;
368
+ }
369
+
370
+ .select2-results li.select2-result-with-children > .select2-result-label {
371
+ font-weight: bold;
372
+ }
373
+
374
+ .select2-results .select2-result-label {
375
+ padding: 3px 7px 4px;
376
+ margin: 0;
377
+ cursor: pointer;
378
+
379
+ min-height: 1em;
380
+
381
+ -webkit-touch-callout: none;
382
+ -webkit-user-select: none;
383
+ -moz-user-select: none;
384
+ -ms-user-select: none;
385
+ user-select: none;
386
+ }
387
+
388
+ .select2-results-dept-1 .select2-result-label { padding-left: 20px }
389
+ .select2-results-dept-2 .select2-result-label { padding-left: 40px }
390
+ .select2-results-dept-3 .select2-result-label { padding-left: 60px }
391
+ .select2-results-dept-4 .select2-result-label { padding-left: 80px }
392
+ .select2-results-dept-5 .select2-result-label { padding-left: 100px }
393
+ .select2-results-dept-6 .select2-result-label { padding-left: 110px }
394
+ .select2-results-dept-7 .select2-result-label { padding-left: 120px }
395
+
396
+ .select2-results .select2-highlighted {
397
+ background: #3875d7;
398
+ color: #fff;
399
+ }
400
+
401
+ .select2-results li em {
402
+ background: #feffde;
403
+ font-style: normal;
404
+ }
405
+
406
+ .select2-results .select2-highlighted em {
407
+ background: transparent;
408
+ }
409
+
410
+ .select2-results .select2-highlighted ul {
411
+ background: #fff;
412
+ color: #000;
413
+ }
414
+
415
+ .select2-results .select2-no-results,
416
+ .select2-results .select2-searching,
417
+ .select2-results .select2-ajax-error,
418
+ .select2-results .select2-selection-limit {
419
+ background: #f4f4f4;
420
+ display: list-item;
421
+ padding-left: 5px;
422
+ }
423
+
424
+ /*
425
+ disabled look for disabled choices in the results dropdown
426
+ */
427
+ .select2-results .select2-disabled.select2-highlighted {
428
+ color: #666;
429
+ background: #f4f4f4;
430
+ display: list-item;
431
+ cursor: default;
432
+ }
433
+ .select2-results .select2-disabled {
434
+ background: #f4f4f4;
435
+ display: list-item;
436
+ cursor: default;
437
+ }
438
+
439
+ .select2-results .select2-selected {
440
+ display: none;
441
+ }
442
+
443
+ .select2-more-results.select2-active {
444
+ background: #f4f4f4 url('#{$select2__imag-path}select2-spinner.gif') no-repeat 100%;
445
+ }
446
+
447
+ .select2-results .select2-ajax-error {
448
+ background: rgba(255, 50, 50, .2);
449
+ }
450
+
451
+ .select2-more-results {
452
+ background: #f4f4f4;
453
+ display: list-item;
454
+ }
455
+
456
+ /* disabled styles */
457
+
458
+ .select2-container.select2-container-disabled .select2-choice {
459
+ background-color: #f4f4f4;
460
+ background-image: none;
461
+ border: 1px solid #ddd;
462
+ cursor: default;
463
+ }
464
+
465
+ .select2-container.select2-container-disabled .select2-choice .select2-arrow {
466
+ background-color: #f4f4f4;
467
+ background-image: none;
468
+ border-left: 0;
469
+ }
470
+
471
+ .select2-container.select2-container-disabled .select2-choice abbr {
472
+ display: none;
473
+ }
474
+
475
+
476
+ /* multiselect */
477
+
478
+ .select2-container-multi .select2-choices {
479
+ height: auto !important;
480
+ height: 1%;
481
+ margin: 0;
482
+ padding: 0 5px 0 0;
483
+ position: relative;
484
+
485
+ border: 1px solid #aaa;
486
+ cursor: text;
487
+ overflow: hidden;
488
+
489
+ background-color: #fff;
490
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eee), color-stop(15%, #fff));
491
+ background-image: -webkit-linear-gradient(top, #eee 1%, #fff 15%);
492
+ background-image: -moz-linear-gradient(top, #eee 1%, #fff 15%);
493
+ background-image: linear-gradient(to bottom, #eee 1%, #fff 15%);
494
+ }
495
+
496
+ html[dir="rtl"] .select2-container-multi .select2-choices {
497
+ padding: 0 0 0 5px;
498
+ }
499
+
500
+ .select2-locked {
501
+ padding: 3px 5px 3px 5px !important;
502
+ }
503
+
504
+ .select2-container-multi .select2-choices {
505
+ min-height: 26px;
506
+ }
507
+
508
+ .select2-container-multi.select2-container-active .select2-choices {
509
+ border: 1px solid #5897fb;
510
+ outline: none;
511
+
512
+ -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .3);
513
+ box-shadow: 0 0 5px rgba(0, 0, 0, .3);
514
+ }
515
+ .select2-container-multi .select2-choices li {
516
+ float: left;
517
+ list-style: none;
518
+ }
519
+ html[dir="rtl"] .select2-container-multi .select2-choices li
520
+ {
521
+ float: right;
522
+ }
523
+ .select2-container-multi .select2-choices .select2-search-field {
524
+ margin: 0;
525
+ padding: 0;
526
+ white-space: nowrap;
527
+ }
528
+
529
+ .select2-container-multi .select2-choices .select2-search-field input {
530
+ padding: 5px;
531
+ margin: 1px 0;
532
+
533
+ font-family: sans-serif;
534
+ font-size: 100%;
535
+ color: #666;
536
+ outline: 0;
537
+ border: 0;
538
+ -webkit-box-shadow: none;
539
+ box-shadow: none;
540
+ background: transparent !important;
541
+ }
542
+
543
+ .select2-container-multi .select2-choices .select2-search-field input.select2-active {
544
+ background: #fff url('#{$select2__imag-path}select2-spinner.gif') no-repeat 100% !important;
545
+ }
546
+
547
+ .select2-default {
548
+ color: #999 !important;
549
+ }
550
+
551
+ .select2-container-multi .select2-choices .select2-search-choice {
552
+ padding: 3px 5px 3px 18px;
553
+ margin: 3px 0 3px 5px;
554
+ position: relative;
555
+
556
+ line-height: 13px;
557
+ color: #333;
558
+ cursor: default;
559
+ border: 1px solid #aaaaaa;
560
+
561
+ border-radius: 3px;
562
+
563
+ -webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
564
+ box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
565
+
566
+ background-clip: padding-box;
567
+
568
+ -webkit-touch-callout: none;
569
+ -webkit-user-select: none;
570
+ -moz-user-select: none;
571
+ -ms-user-select: none;
572
+ user-select: none;
573
+
574
+ background-color: #e4e4e4;
575
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#f4f4f4', GradientType=0);
576
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eee));
577
+ background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
578
+ background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
579
+ background-image: linear-gradient(to bottom, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
580
+ }
581
+ html[dir="rtl"] .select2-container-multi .select2-choices .select2-search-choice
582
+ {
583
+ margin: 3px 5px 3px 0;
584
+ padding: 3px 18px 3px 5px;
585
+ }
586
+ .select2-container-multi .select2-choices .select2-search-choice .select2-chosen {
587
+ cursor: default;
588
+ }
589
+ .select2-container-multi .select2-choices .select2-search-choice-focus {
590
+ background: #d4d4d4;
591
+ }
592
+
593
+ .select2-search-choice-close {
594
+ display: block;
595
+ width: 12px;
596
+ height: 13px;
597
+ position: absolute;
598
+ right: 3px;
599
+ top: 4px;
600
+
601
+ font-size: 1px;
602
+ outline: none;
603
+ background: url('#{$select2__imag-path}select2.png') right top no-repeat;
604
+ }
605
+ html[dir="rtl"] .select2-search-choice-close {
606
+ right: auto;
607
+ left: 3px;
608
+ }
609
+
610
+ .select2-container-multi .select2-search-choice-close {
611
+ left: 3px;
612
+ }
613
+
614
+ html[dir="rtl"] .select2-container-multi .select2-search-choice-close {
615
+ left: auto;
616
+ right: 2px;
617
+ }
618
+
619
+ .select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover {
620
+ background-position: right -11px;
621
+ }
622
+ .select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close {
623
+ background-position: right -11px;
624
+ }
625
+
626
+ /* disabled styles */
627
+ .select2-container-multi.select2-container-disabled .select2-choices {
628
+ background-color: #f4f4f4;
629
+ background-image: none;
630
+ border: 1px solid #ddd;
631
+ cursor: default;
632
+ }
633
+
634
+ .select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice {
635
+ padding: 3px 5px 3px 5px;
636
+ border: 1px solid #ddd;
637
+ background-image: none;
638
+ background-color: #f4f4f4;
639
+ }
640
+
641
+ .select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close { display: none;
642
+ background: none;
643
+ }
644
+ /* end multiselect */
645
+
646
+
647
+ .select2-result-selectable .select2-match,
648
+ .select2-result-unselectable .select2-match {
649
+ text-decoration: underline;
650
+ }
651
+
652
+ .select2-offscreen, .select2-offscreen:focus {
653
+ clip: rect(0 0 0 0) !important;
654
+ width: 1px !important;
655
+ height: 1px !important;
656
+ border: 0 !important;
657
+ margin: 0 !important;
658
+ padding: 0 !important;
659
+ overflow: hidden !important;
660
+ position: absolute !important;
661
+ outline: 0 !important;
662
+ left: 0px !important;
663
+ top: 0px !important;
664
+ }
665
+
666
+ .select2-display-none {
667
+ display: none;
668
+ }
669
+
670
+ .select2-measure-scrollbar {
671
+ position: absolute;
672
+ top: -10000px;
673
+ left: -10000px;
674
+ width: 100px;
675
+ height: 100px;
676
+ overflow: scroll;
677
+ }
678
+
679
+ /* Retina-ize icons */
680
+
681
+ @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 2dppx) {
682
+ .select2-search input,
683
+ .select2-search-choice-close,
684
+ .select2-container .select2-choice abbr,
685
+ .select2-container .select2-choice .select2-arrow b {
686
+ background-image: url('#{$select2__imag-path}select2x2.png') !important;
687
+ background-repeat: no-repeat !important;
688
+ background-size: 60px 40px !important;
689
+ }
690
+
691
+ .select2-search input {
692
+ background-position: 100% -21px !important;
693
+ }
694
+ }
includes/admin/class-aepc-admin-ajax.php ADDED
@@ -0,0 +1,678 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit; // Exit if accessed directly.
4
+ }
5
+
6
+ /**
7
+ * @class AEPC_Admin_Ajax
8
+ */
9
+ class AEPC_Admin_Ajax {
10
+
11
+ public static $ajax_actions = array(
12
+ 'save_facebook_options',
13
+ 'save_tracking_conversion',
14
+ 'edit_tracking_conversion',
15
+ 'add_custom_audience',
16
+ 'edit_custom_audience',
17
+ 'duplicate_custom_audience',
18
+ 'get_custom_fields',
19
+ 'get_languages',
20
+ 'get_device_types',
21
+ 'get_categories',
22
+ 'get_tags',
23
+ 'get_posts',
24
+ 'get_dpa_params',
25
+ 'get_filter_statement',
26
+ 'get_currencies',
27
+ 'get_account_ids',
28
+ 'get_pixel_ids',
29
+ 'get_pixel_stats',
30
+ 'load_fb_pixel_box',
31
+ 'load_ca_list',
32
+ 'load_conversions_list',
33
+ 'load_sidebar',
34
+ 'refresh_ca_size',
35
+ );
36
+
37
+ /**
38
+ * AEPC_Admin_Ajax Constructor.
39
+ */
40
+ public static function init() {
41
+
42
+ // Hooks ajax actions
43
+ foreach ( self::$ajax_actions as $action ) {
44
+ add_action( 'wp_ajax_aepc_' . $action, array( __CLASS__, 'ajax_' . $action ) );
45
+ }
46
+ }
47
+
48
+ /**
49
+ * Edit of custom audience
50
+ */
51
+ public static function ajax_save_facebook_options() {
52
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
53
+ return null;
54
+ }
55
+
56
+ // Perform the edit from handler function already ready to perform the action
57
+ $res = AEPC_Admin_Handlers::save_facebook_options();
58
+
59
+ // Check about errors
60
+ if ( ! $res || AEPC_Admin_Notices::has_notice( 'error' ) ) {
61
+ $notices = AEPC_Admin_Notices::get_notices( 'error' );
62
+
63
+ // Do not save notices
64
+ AEPC_Admin_Notices::remove_notices( 'error' );
65
+
66
+ wp_send_json_error( $notices );
67
+ } else {
68
+ wp_send_json_success( AEPC_Admin_Notices::get_notices( 'success' ) );
69
+ }
70
+ }
71
+
72
+ /**
73
+ * Save conversion event tracking
74
+ */
75
+ public static function ajax_save_tracking_conversion() {
76
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
77
+ return null;
78
+ }
79
+
80
+ // Perform the edit from handler function already ready to perform the action
81
+ $res = AEPC_Admin_Handlers::save_events();
82
+
83
+ // Check about errors
84
+ if ( ! $res || AEPC_Admin_Notices::has_notice( 'error' ) ) {
85
+ $notices = AEPC_Admin_Notices::get_notices( 'error' );
86
+
87
+ // Do not save notices
88
+ AEPC_Admin_Notices::remove_notices( 'error' );
89
+
90
+ wp_send_json_error( $notices );
91
+ } else {
92
+ wp_send_json_success( AEPC_Admin_Notices::get_notices( 'success' ) );
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Edit conversion event tracking
98
+ */
99
+ public static function ajax_edit_tracking_conversion() {
100
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
101
+ return null;
102
+ }
103
+
104
+ // Perform the edit from handler function already ready to perform the action
105
+ $res = AEPC_Admin_Handlers::edit_event();
106
+
107
+ // Check about errors
108
+ if ( ! $res || AEPC_Admin_Notices::has_notice( 'error' ) ) {
109
+ $notices = AEPC_Admin_Notices::get_notices( 'error' );
110
+
111
+ // Do not save notices
112
+ AEPC_Admin_Notices::remove_notices( 'error' );
113
+
114
+ wp_send_json_error( $notices );
115
+ } else {
116
+ wp_send_json_success( AEPC_Admin_Notices::get_notices( 'success' ) );
117
+ }
118
+ }
119
+
120
+ /**
121
+ * Add custom audience
122
+ */
123
+ public static function ajax_add_custom_audience() {
124
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
125
+ return null;
126
+ }
127
+
128
+ // Perform the edit from handler function already ready to perform the action
129
+ $res = AEPC_Admin_Handlers::save_audience();
130
+
131
+ // Check about errors
132
+ if ( ! $res || AEPC_Admin_Notices::has_notice( 'error' ) ) {
133
+ $notices = AEPC_Admin_Notices::get_notices( 'error' );
134
+
135
+ // Do not save notices
136
+ AEPC_Admin_Notices::remove_notices( 'error' );
137
+
138
+ wp_send_json_error( $notices );
139
+ } else {
140
+ wp_send_json_success( AEPC_Admin_Notices::get_notices( 'success' ) );
141
+ }
142
+ }
143
+
144
+ /**
145
+ * Edit facebook options
146
+ */
147
+ public static function ajax_edit_custom_audience() {
148
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
149
+ return null;
150
+ }
151
+
152
+ // Perform the edit from handler function already ready to perform the action
153
+ $res = AEPC_Admin_Handlers::edit_audience();
154
+
155
+ // Check about errors
156
+ if ( ! $res || AEPC_Admin_Notices::has_notice( 'error' ) ) {
157
+ $notices = AEPC_Admin_Notices::get_notices( 'error' );
158
+
159
+ // Do not save notices
160
+ AEPC_Admin_Notices::remove_notices( 'error' );
161
+
162
+ wp_send_json_error( $notices );
163
+ } else {
164
+ wp_send_json_success( AEPC_Admin_Notices::get_notices( 'success' ) );
165
+ }
166
+ }
167
+
168
+ /**
169
+ * Duplicate facebook options
170
+ */
171
+ public static function ajax_duplicate_custom_audience() {
172
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
173
+ return null;
174
+ }
175
+
176
+ // Perform the edit from handler function already ready to perform the action
177
+ $res = AEPC_Admin_Handlers::duplicate_audience();
178
+
179
+ // Check about errors
180
+ if ( ! $res || AEPC_Admin_Notices::has_notice( 'error' ) ) {
181
+ $notices = AEPC_Admin_Notices::get_notices( 'error' );
182
+
183
+ // Do not save notices
184
+ AEPC_Admin_Notices::remove_notices( 'error' );
185
+
186
+ wp_send_json_error( $notices );
187
+ } else {
188
+ wp_send_json_success( AEPC_Admin_Notices::get_notices( 'success' ) );
189
+ }
190
+ }
191
+
192
+ /**
193
+ * Send list of all meta keys
194
+ */
195
+ public static function ajax_get_custom_fields() {
196
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
197
+ return null;
198
+ }
199
+
200
+ global $wpdb;
201
+
202
+ $post_type_excluded = "'" . implode( "', '", apply_filters( 'aepc_list_custom_fields_post_type_excluded', array(
203
+ 'attachment',
204
+ 'nav_menu_item',
205
+ 'revision'
206
+ ) ) ) . "'";
207
+
208
+ $meta_key_excluded = "'" . implode( "', '", apply_filters( 'aepc_list_meta_key_post_type_excluded', array(
209
+ '_edit_last',
210
+ '_edit_lock',
211
+ '_featured',
212
+ ) ) ) . "'";
213
+
214
+ $keys = $wpdb->get_col( "
215
+ SELECT meta_key
216
+ FROM $wpdb->postmeta pm
217
+ LEFT JOIN $wpdb->posts p ON p.ID = pm.post_id
218
+ WHERE p.post_type NOT IN ( {$post_type_excluded} )
219
+ AND pm.meta_key NOT IN ( {$meta_key_excluded} )
220
+ GROUP BY meta_key
221
+ ORDER BY meta_key" );
222
+
223
+ // Format array with key and value as select2 wants
224
+ foreach ( $keys as &$key ) {
225
+ $key = array(
226
+ 'id' => $key,
227
+ 'text' => $key
228
+ );
229
+ }
230
+
231
+ wp_send_json( $keys );
232
+ }
233
+
234
+ /**
235
+ * Send list of all available languages for filters
236
+ */
237
+ public static function ajax_get_languages() {
238
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
239
+ return null;
240
+ }
241
+
242
+ require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
243
+ $translations = wp_get_available_translations();
244
+
245
+ // Get only ISO code
246
+ $iso = array();
247
+ foreach ( $translations as $translation ) {
248
+ $id = str_replace( '_', '-', $translation['language'] );
249
+
250
+ $iso[ $id ] = array(
251
+ 'id' => $id,
252
+ 'text' => $translation['english_name'],
253
+ );
254
+ }
255
+
256
+ // Add default en_US
257
+ $iso['en-US'] = array(
258
+ 'id' => 'en-US',
259
+ 'text' => __( 'English (American)', 'pixel-caffeine' ),
260
+ );
261
+
262
+ // Sort
263
+ ksort( $iso );
264
+
265
+ wp_send_json( array_values( $iso ) );
266
+ }
267
+
268
+ /**
269
+ * Send list of all available device types for filters
270
+ */
271
+ public static function ajax_get_device_types() {
272
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
273
+ return null;
274
+ }
275
+
276
+ wp_send_json( array(
277
+ array( 'id' => 'desktop', 'text' => __( 'Desktop', 'pixel-caffeine' ) ),
278
+ array( 'id' => 'mobile_iphone', 'text' => __( 'iPhone', 'pixel-caffeine' ) ),
279
+ array( 'id' => 'mobile_android_phone', 'text' => __( 'Android Phone', 'pixel-caffeine' ) ),
280
+ array( 'id' => 'mobile_ipad', 'text' => __( 'iPad', 'pixel-caffeine' ) ),
281
+ array( 'id' => 'mobile_android_tablet', 'text' => __( 'Android Tablet', 'pixel-caffeine' ) ),
282
+ array( 'id' => 'mobile_windows_phone', 'text' => __( 'Windows Phone', 'pixel-caffeine' ) ),
283
+ array( 'id' => 'mobile_ipod', 'text' => __( 'iPod', 'pixel-caffeine' ) ),
284
+ ) );
285
+ }
286
+
287
+ /**
288
+ * Send list of all available device types for filters
289
+ */
290
+ public static function ajax_get_dpa_params() {
291
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
292
+ return null;
293
+ }
294
+
295
+ $params = array(
296
+ 'value',
297
+ 'currency',
298
+ 'content_name',
299
+ 'content_category',
300
+ 'content_type',
301
+ 'content_ids',
302
+ 'num_items',
303
+ 'search_string',
304
+ 'status',
305
+ );
306
+
307
+ foreach ( $params as &$param ) {
308
+ $param = array(
309
+ 'id' => $param,
310
+ 'text' => $param
311
+ );
312
+ }
313
+
314
+ wp_send_json( $params );
315
+ }
316
+
317
+ /**
318
+ * Send list of all terms divided by taxonomies for categories
319
+ */
320
+ public static function ajax_get_categories() {
321
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
322
+ return null;
323
+ }
324
+
325
+ // Set the taxonomies as key of terms
326
+ $terms = get_taxonomies( array( 'public' => true ) );
327
+
328
+ // Exclude tag taxonomies from categories
329
+ foreach ( array( 'post_tag', 'product_tag', 'product_shipping_class', 'post_format' ) as $tax ) {
330
+ unset( $terms[ $tax ] );
331
+ }
332
+
333
+ // Foreach taxonomy, get the available terms
334
+ foreach ( $terms as $taxonomy => &$list ) {
335
+ global $wp_version;
336
+
337
+ if ( version_compare( $wp_version, '4.5', '<' ) ) {
338
+ $list = get_terms( $taxonomy );
339
+ } else {
340
+ $list = get_terms( array_merge( array( 'taxonomy' => $taxonomy ) ) );
341
+ }
342
+
343
+ // Format array for select2
344
+ foreach ( $list as &$term ) {
345
+ $term = array(
346
+ 'id' => $term->slug,
347
+ 'text' => $term->name
348
+ );
349
+ }
350
+
351
+ // Add [[any]] on first place
352
+ $list = array_merge( array( array( 'id' => '[[any]]', 'text' => '--- ' . __( 'anything', 'pixel-caffeine' ) . ' ---' ) ), $list );
353
+ }
354
+
355
+ wp_send_json( $terms );
356
+ }
357
+
358
+ /**
359
+ * Send list of all terms divided by taxonomies for categories
360
+ */
361
+ public static function ajax_get_tags() {
362
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
363
+ return null;
364
+ }
365
+
366
+ // Set the taxonomies as key of terms
367
+ $terms = get_taxonomies( array( 'public' => true ) );
368
+
369
+ // Foreach taxonomy, get the available terms
370
+ foreach ( $terms as $taxonomy => &$list ) {
371
+ global $wp_version;
372
+
373
+ // Return only tag taxonomies
374
+ if ( ! in_array( $taxonomy, array( 'post_tag', 'product_tag' ) ) ) {
375
+ unset( $terms[ $taxonomy ] );
376
+ continue;
377
+ }
378
+
379
+ if ( version_compare( $wp_version, '4.5', '<' ) ) {
380
+ $list = get_terms( $taxonomy );
381
+ } else {
382
+ $list = get_terms( array_merge( array( 'taxonomy' => $taxonomy ) ) );
383
+ }
384
+
385
+ // Format array for select2
386
+ foreach ( $list as &$term ) {
387
+ $term = array(
388
+ 'id' => $term->slug,
389
+ 'text' => $term->name
390
+ );
391
+ }
392
+
393
+ // Add [[any]] on first place
394
+ $list = array_merge( array( array( 'id' => '[[any]]', 'text' => '--- ' . __( 'anything', 'pixel-caffeine' ) . ' ---' ) ), $list );
395
+ }
396
+
397
+ wp_send_json( $terms );
398
+ }
399
+
400
+ /**
401
+ * Send list of all posts divided by post_type
402
+ */
403
+ public static function ajax_get_posts() {
404
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
405
+ return null;
406
+ }
407
+
408
+ // Set the taxonomies as key of terms
409
+ $posts = get_post_types( array( 'public' => true ) );
410
+
411
+ // Foreach taxonomy, get the available terms
412
+ foreach ( $posts as $post_type => &$list ) {
413
+ $list = get_posts( array(
414
+ 'posts_per_page' => 100,
415
+ 'post_type' => $post_type
416
+ ) );
417
+
418
+ // Format array for select2
419
+ foreach ( $list as &$post ) {
420
+ $post = array(
421
+ 'id' => $post->ID,
422
+ 'text' => $post->post_title
423
+ );
424
+ }
425
+
426
+ // Add [[any]] on first place
427
+ $list = array_merge( array( array( 'id' => '[[any]]', 'text' => '--- ' . __( 'anything', 'pixel-caffeine' ) . ' ---' ) ), $list );
428
+ }
429
+
430
+ wp_send_json( $posts );
431
+ }
432
+
433
+ /**
434
+ * Send the ca filter statement
435
+ */
436
+ public static function ajax_get_filter_statement() {
437
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
438
+ return null;
439
+ }
440
+
441
+ // Make filter array from javascript
442
+ $filter = $tmp = array();
443
+
444
+ foreach ( $_GET['filter'] as $v ) {
445
+ $tmp[ str_replace( '[]', '', $v['name'] ) ] = $v['value'];
446
+ }
447
+
448
+ // Convert string with brackets to array in php
449
+ foreach ( $tmp as $key => $val ) {
450
+ $keyParts = preg_split('/[\[\]]+/', $key, -1, PREG_SPLIT_NO_EMPTY);
451
+
452
+ $ref = &$filter;
453
+
454
+ while ($keyParts) {
455
+ $part = array_shift($keyParts);
456
+
457
+ if (!isset($ref[$part])) {
458
+ $ref[$part] = array();
459
+ }
460
+
461
+ $ref = &$ref[$part];
462
+ }
463
+
464
+ $ref = $val;
465
+ }
466
+
467
+ $tmp = new AEPC_Admin_CA();
468
+ $tmp->add_filter( $filter['ca_rule'] );
469
+
470
+ $statements = $tmp->get_human_rule_list( '<em>', '</em>' );
471
+
472
+ echo array_pop( $statements );
473
+ die();
474
+ }
475
+
476
+ /**
477
+ * Send all currencies if woocommerce is activated
478
+ */
479
+ public static function ajax_get_currencies() {
480
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
481
+ return null;
482
+ }
483
+
484
+ $currencies = array();
485
+
486
+ if ( function_exists( 'WC' ) ) {
487
+ foreach ( AEPC_Currency::get_currencies() as $currency => $args ) {
488
+ $currencies[] = array(
489
+ 'id' => esc_attr( $currency ),
490
+ 'text' => $args->symbol . ' (' . $args->name . ')'
491
+ );
492
+ }
493
+ }
494
+
495
+ wp_send_json( $currencies );
496
+ }
497
+
498
+ /**
499
+ * Send all account ids of user
500
+ */
501
+ public static function ajax_get_account_ids() {
502
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
503
+ return null;
504
+ }
505
+
506
+ // Get account ids from facebook
507
+ try {
508
+ $fb = AEPC_Admin::$api;
509
+ $accounts = $fb->get_account_ids();
510
+
511
+ // Format for select2 component
512
+ foreach ( $accounts as &$account ) {
513
+ $account = array(
514
+ 'id' => json_encode( array( 'id' => $account->account_id, 'name' => $account->name ) ),
515
+ 'text' => $account->name . ' (#' . $account->account_id . ')'
516
+ );
517
+ }
518
+
519
+ wp_send_json( $accounts );
520
+
521
+ } catch ( Exception $e ) {
522
+ wp_send_json_error( $e->getMessage() );
523
+ }
524
+ }
525
+
526
+ /**
527
+ * Send all pixel of an account id
528
+ */
529
+ public static function ajax_get_pixel_ids() {
530
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) || empty( $_REQUEST['account_id'] ) ) {
531
+ return null;
532
+ }
533
+
534
+ // Get pixel ids from facebook
535
+ try {
536
+ $fb = AEPC_Admin::$api;
537
+ $pixels = $fb->get_pixel_ids( $_REQUEST['account_id'] );
538
+
539
+ // Format for select2 component
540
+ foreach ( $pixels as &$pixel ) {
541
+ $pixel = array(
542
+ 'id' => json_encode( array( 'id' => $pixel->id, 'name' => $pixel->name ) ),
543
+ 'text' => $pixel->name . ' (#' . $pixel->id . ')'
544
+ );
545
+ }
546
+
547
+ wp_send_json( $pixels );
548
+
549
+ } catch ( Exception $e ) {
550
+ wp_send_json_error( $e->getMessage() );
551
+ }
552
+ }
553
+
554
+ /**
555
+ * Send the statistics of a pixel, get by facebook
556
+ */
557
+ public static function ajax_get_pixel_stats() {
558
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
559
+ return null;
560
+ }
561
+
562
+ wp_send_json( AEPC_Admin::get_pixel_stats_sets() );
563
+ }
564
+
565
+ /**
566
+ * Load the facebook pixel box on settings page
567
+ */
568
+ public static function ajax_load_fb_pixel_box() {
569
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
570
+ return null;
571
+ }
572
+
573
+ $page = AEPC_Admin::get_page( 'general-settings' );
574
+
575
+ ob_start();
576
+ $page->get_template_part( 'panels/set-facebook-pixel', array( 'fb' => AEPC_Admin::$api ) );
577
+ $html = ob_get_clean();
578
+
579
+ // Don't need notices
580
+ AEPC_Admin_Notices::remove_notices();
581
+
582
+ wp_send_json_success( array(
583
+ 'html' => $html
584
+ ) );
585
+ }
586
+
587
+ /**
588
+ * Load the custom audiences table list
589
+ */
590
+ public static function ajax_load_ca_list() {
591
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
592
+ return null;
593
+ }
594
+
595
+ $page = AEPC_Admin::get_page( 'custom-audiences' );
596
+
597
+ ob_start();
598
+ $page->get_template_part( 'tables/ca-list' );
599
+ $html = ob_get_clean();
600
+
601
+ // Don't need notices
602
+ $notices = AEPC_Admin_Notices::get_notices();
603
+ AEPC_Admin_Notices::remove_notices();
604
+
605
+ wp_send_json_success( array(
606
+ 'html' => $html,
607
+ 'messages' => $notices
608
+ ) );
609
+ }
610
+
611
+ /**
612
+ * Load the conversions table list
613
+ */
614
+ public static function ajax_load_conversions_list() {
615
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
616
+ return null;
617
+ }
618
+
619
+ $page = AEPC_Admin::get_page( 'conversions' );
620
+
621
+ ob_start();
622
+ $page->get_template_part( 'tables/ce-tracking' );
623
+ $html = ob_get_clean();
624
+
625
+ // Don't need notices
626
+ $notices = AEPC_Admin_Notices::get_notices();
627
+ AEPC_Admin_Notices::remove_notices();
628
+
629
+ wp_send_json_success( array(
630
+ 'html' => $html,
631
+ 'messages' => $notices
632
+ ) );
633
+ }
634
+
635
+ /**
636
+ * Load the news widget on admin sidebar
637
+ */
638
+ public static function ajax_load_sidebar() {
639
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
640
+ return null;
641
+ }
642
+
643
+ $page = AEPC_Admin::get_page( 'general-settings' );
644
+
645
+ ob_start();
646
+ $page->get_template_part( 'sidebar' );
647
+ $html = ob_get_clean();
648
+
649
+ wp_send_json_success( array(
650
+ 'html' => $html,
651
+ ) );
652
+ }
653
+
654
+ /**
655
+ * Refresh custom audience data after click on sync data
656
+ */
657
+ public static function ajax_refresh_ca_size() {
658
+ if ( ! current_user_can( 'manage_ads' ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], str_replace( 'ajax_', '', __FUNCTION__ ) ) ) {
659
+ return null;
660
+ }
661
+
662
+ try {
663
+ $ca_id = ! empty( $_REQUEST['ca_id'] ) ? intval( $_REQUEST['ca_id'] ) : 0;
664
+ $ca = new AEPC_Admin_CA( $ca_id );
665
+ $ca->refresh_size();
666
+
667
+ wp_send_json_success();
668
+
669
+ } catch( Exception $e ) {
670
+ wp_send_json_error( array(
671
+ 'message' => $e->getMessage()
672
+ ) );
673
+ }
674
+ }
675
+
676
+ }
677
+
678
+ AEPC_Admin_Ajax::init();
includes/admin/class-aepc-admin-ca-manager.php ADDED
@@ -0,0 +1,383 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit; // Exit if accessed directly.
4
+ }
5
+
6
+ /**
7
+ * @class AEPC_Admin_CA_Manager
8
+ */
9
+ class AEPC_Admin_CA_Manager {
10
+
11
+ // Save the number of all records, useful for pagination
12
+ protected static $_audiences_count = false;
13
+
14
+ /**
15
+ * AEPC_Admin_CA_Manager Constructor.
16
+ */
17
+ public static function init() {
18
+ include_once( 'class-aepc-admin-ca.php' );
19
+
20
+ if ( AEPC_Admin::is_php_supported() ) {
21
+
22
+ // Register a cron to refresh the size of all audiences
23
+ if ( ! wp_next_scheduled ( 'aepc_refresh_audiences_size' ) ) {
24
+ wp_schedule_event( time(), 'daily', 'aepc_refresh_audiences_size' );
25
+ }
26
+ add_action( 'aepc_refresh_audiences_size', array( __CLASS__, 'refresh_approximate_counts' ) );
27
+ }
28
+
29
+ // Add php notice
30
+ add_action( 'admin_init', array( __CLASS__, 'add_notice_for_facebook_debug' ), 99 );
31
+ }
32
+
33
+ /**
34
+ * Add a notice message that inform the user that can't do anything without facebook connection.
35
+ *
36
+ * This notice will be shown only on CA page
37
+ */
38
+ public static function add_notice_for_facebook_debug() {
39
+ if (
40
+ ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX )
41
+ && AEPC_Admin::$api->is_debug()
42
+ && ! empty( $_GET['page'] )
43
+ && AEPC_Admin_Menu::$page_id == $_GET['page']
44
+ && ! empty( $_GET['tab'] )
45
+ && 'custom-audiences' == $_GET['tab']
46
+ ) {
47
+ AEPC_Admin_Notices::add_notice( 'info', 'main', __( '<strong>Development mode</strong> via the AEPC_DEACTIVE_FB_REQUESTS constant being defined in wp-config.php or elsewhere. In this mode any facebook api request will be done.', 'pixel-caffeine' ) );
48
+ }
49
+ }
50
+
51
+ /**
52
+ * Save the CA with form data
53
+ *
54
+ * @param $post_data
55
+ *
56
+ * @return bool
57
+ * @throws Exception
58
+ */
59
+ public static function save( $post_data ) {
60
+
61
+ // Check php requirements
62
+ if ( ! AEPC_Admin::is_php_supported() ) {
63
+ throw new Exception( __( 'Unable to create a new CA because of PHP version not supported.', 'pixel-caffeine' ), 400 );
64
+ }
65
+
66
+ // Create arguments
67
+ $args = self::ca_post_data_adapter( 'add', $post_data );
68
+
69
+ // Init a new CA instance
70
+ $ca = new AEPC_Admin_CA();
71
+
72
+ // Save first on Facebook and then on DB
73
+ $ca->create( $args );
74
+
75
+ return true;
76
+ }
77
+
78
+ /**
79
+ * Edit the CA with form data
80
+ *
81
+ * @param $post_data
82
+ *
83
+ * @return bool
84
+ * @throws Exception
85
+ */
86
+ public static function edit( $post_data ) {
87
+
88
+ // Check php requirements
89
+ if ( ! AEPC_Admin::is_php_supported() ) {
90
+ throw new Exception( __( 'Unable to edit the CA because of PHP version not supported.', 'pixel-caffeine' ), 400 );
91
+ }
92
+
93
+ // Create arguments
94
+ $args = self::ca_post_data_adapter( 'edit', $post_data );
95
+
96
+ // Init a new CA instance
97
+ $ca = new AEPC_Admin_CA( $post_data['ca_id'] );
98
+
99
+ // Save first on Facebook and then on DB
100
+ $ca->update( $args );
101
+
102
+ return true;
103
+ }
104
+
105
+ /**
106
+ * Delete the CA
107
+ *
108
+ * @param $ca_id
109
+ *
110
+ * @return bool
111
+ * @throws Exception
112
+ */
113
+ public static function delete( $ca_id ) {
114
+
115
+ // Check php requirements
116
+ if ( ! AEPC_Admin::is_php_supported() ) {
117
+ throw new Exception( __( 'Unable to remote the CA because of PHP version not supported.', 'pixel-caffeine' ), 400 );
118
+ }
119
+
120
+ // Init a new CA instance
121
+ $ca = new AEPC_Admin_CA( $ca_id );
122
+
123
+ // Remove first on Facebook and then on DB
124
+ $ca->delete();
125
+
126
+ return true;
127
+ }
128
+
129
+ /**
130
+ * Convert the input data from request in structured array to save, used on save and edit actions
131
+ *
132
+ * @param string $action 'add' or 'edit'
133
+ * @param array $post_data The raw data from request
134
+ *
135
+ * @return array
136
+ */
137
+ private static function ca_post_data_adapter( $action, $post_data = array() ) {
138
+ $raw_data = array(
139
+ 'name' => sanitize_text_field( $post_data['ca_name'] ),
140
+ 'description' => sanitize_text_field( $post_data['ca_description'] ),
141
+ 'prefill' => ! empty( $post_data['ca_prefill'] ),
142
+ 'retention' => intval( $post_data['ca_retention'] ),
143
+ 'include_url' => sanitize_text_field( $post_data['ca_include_url'] ),
144
+ 'exclude_url' => sanitize_text_field( $post_data['ca_exclude_url'] ),
145
+ 'rule' => isset( $post_data['ca_rule'] ) ? $post_data['ca_rule'] : array(),
146
+ );
147
+
148
+ // Add include URL into rule
149
+ if ( ! empty( $raw_data['include_url'] ) ) {
150
+ $raw_data['rule'] = array_merge( array( array(
151
+ 'main_condition' => 'include',
152
+ 'event_type' => 'url',
153
+ 'event' => 'url',
154
+ 'conditions' => array(
155
+ array(
156
+ 'operator' => 'i_contains',
157
+ 'value' => $raw_data['include_url']
158
+ )
159
+ )
160
+ ) ), $raw_data['rule'] );
161
+ }
162
+
163
+ // Add exclude URL into rule
164
+ if ( ! empty( $raw_data['exclude_url'] ) ) {
165
+ $raw_data['rule'] = array_merge( array( array(
166
+ 'main_condition' => 'exclude',
167
+ 'event_type' => 'url',
168
+ 'event' => 'url',
169
+ 'conditions' => array(
170
+ array(
171
+ 'operator' => 'i_contains',
172
+ 'value' => $raw_data['exclude_url']
173
+ )
174
+ )
175
+ ) ), $raw_data['rule'] );
176
+ }
177
+
178
+ // Remove empty conditions
179
+ foreach ( $raw_data['rule'] as $kr => &$rule ) {
180
+
181
+ // Force to add conditions key if it doesn't exist
182
+ if ( ! isset( $rule['conditions'] ) ) {
183
+ $rule['conditions'] = array();
184
+ }
185
+
186
+ foreach ( $rule['conditions'] as $kc => $condition ) {
187
+ if (
188
+ isset( $condition['key'] ) && empty( $condition['key'] )
189
+ || ! isset( $condition['key'] ) && empty( $condition['value'] )
190
+ ) {
191
+ unset( $raw_data['rule'][ $kr ]['conditions'][ $kc ] );
192
+ }
193
+ }
194
+ }
195
+
196
+ $args = array(
197
+ 'name' => $raw_data['name'],
198
+ 'description' => $raw_data['description'],
199
+ 'prefill' => $raw_data['prefill'],
200
+ 'retention' => $raw_data['retention'],
201
+ 'rule' => $raw_data['rule']
202
+ );
203
+
204
+ // Remove prefill field when edit a custom audience
205
+ if ( 'edit' == $action ) {
206
+ unset( $args['prefill'] );
207
+ }
208
+
209
+ return $args;
210
+ }
211
+
212
+ /**
213
+ * Save a new CA indentically to other already created
214
+ *
215
+ * @param $post_data
216
+ *
217
+ * @return bool
218
+ * @throws Exception
219
+ */
220
+ public static function duplicate( $post_data ) {
221
+
222
+ // Check php requirements
223
+ if ( ! AEPC_Admin::is_php_supported() ) {
224
+ throw new Exception( __( 'Unable to duplicate the CA because of PHP version not supported.', 'pixel-caffeine' ), 400 );
225
+ }
226
+
227
+ $ca = new AEPC_Admin_CA( $post_data['ca_id'] );
228
+
229
+ // Exit if ca is not existing
230
+ if ( ! $ca->exists() ) {
231
+ throw new Exception( __( '<strong>Custom audience cannot duplicated</strong> The cluster you selected does not exist.', 'pixel-caffeine' ), 10 );
232
+ }
233
+
234
+ // Exit if no name is defined
235
+ if ( empty( $post_data['ca_name'] ) ) {
236
+ throw new Exception( __( '<strong>Custom audience cannot duplicated</strong> You have to define a name for the new custom audience.', 'pixel-caffeine' ), 11 );
237
+ }
238
+
239
+ // Clone
240
+ $ca->duplicate( $post_data['ca_name'] );
241
+
242
+ return true;
243
+ }
244
+
245
+ /**
246
+ * Refresh the approximate counts of all custom audiences
247
+ */
248
+ public static function refresh_approximate_counts() {
249
+ try {
250
+ $audiences = AEPC_Admin::$api->get_audiences( 'approximate_count' );
251
+ } catch ( Exception $e ) {
252
+ return;
253
+ }
254
+
255
+ // Set approximate count for each audience on DB
256
+ foreach ( $audiences as $audience ) {
257
+ $ca = new AEPC_Admin_CA();
258
+ $ca->populate_by_fb_id( $audience->id );
259
+ $ca->set_size( $audience->approximate_count );
260
+ $ca->update();
261
+ }
262
+ }
263
+
264
+ /**
265
+ * Get the audiences saved on Database
266
+ *
267
+ * @param array $args
268
+ *
269
+ * @return array|mixed|void|AEPC_Admin_CA[]
270
+ */
271
+ public static function get_audiences( $args = array() ) {
272
+ global $wpdb;
273
+
274
+ $table_name = $wpdb->prefix . 'aepc_custom_audiences';
275
+
276
+ /**
277
+ * Allowed arguments to configure pagination
278
+ *
279
+ * @var int $per_page
280
+ * @var int $paged
281
+ * @var string $order 'newest' or 'oldest'
282
+ */
283
+ $q = wp_parse_args( $args, array(
284
+ 'per_page' => 5,
285
+ 'paged' => isset( $_GET['paged'] ) ? intval( $_GET['paged'] ) : 1,
286
+ 'orderby' => 'ID',
287
+ 'order' => 'DESC',
288
+ 'return' => 'objects'
289
+ ) );
290
+
291
+ // Get audiences from db
292
+ $where = '';
293
+ $limits = '';
294
+
295
+ // Paging
296
+ if ( $q['paged'] > 0 ) {
297
+ $page = absint($q['paged']);
298
+ if ( !$page )
299
+ $page = 1;
300
+
301
+ // If 'offset' is provided, it takes precedence over 'paged'.
302
+ if ( isset( $q['offset'] ) && is_numeric( $q['offset'] ) ) {
303
+ $q['offset'] = absint( $q['offset'] );
304
+ $pgstrt = $q['offset'] . ', ';
305
+ } else {
306
+ $pgstrt = absint( ( $page - 1 ) * $q['per_page'] ) . ', ';
307
+ }
308
+ $limits = 'LIMIT ' . $pgstrt . $q['per_page'];
309
+ }
310
+
311
+ // Order
312
+ if ( ! empty( $q['orderby'] ) ) {
313
+ $orderby_array = array();
314
+ if ( is_array( $q['orderby'] ) ) {
315
+ foreach ( $q['orderby'] as $_orderby => $order ) {
316
+ $orderby = addslashes_gpc( urldecode( $_orderby ) );
317
+ $parsed = "$table_name." . sanitize_key( $orderby );
318
+
319
+ if ( ! $parsed ) {
320
+ continue;
321
+ }
322
+
323
+ $orderby_array[] = $parsed . ' ' . sanitize_key( $orderby );
324
+ }
325
+ $orderby = implode( ', ', $orderby_array );
326
+
327
+ } else {
328
+ $q['orderby'] = urldecode( $q['orderby'] );
329
+ $q['orderby'] = addslashes_gpc( $q['orderby'] );
330
+
331
+ foreach ( explode( ' ', $q['orderby'] ) as $i => $orderby ) {
332
+ $parsed = sanitize_key( $orderby );
333
+ // Only allow certain values for safety.
334
+ if ( ! $parsed ) {
335
+ continue;
336
+ }
337
+
338
+ $orderby_array[] = $parsed;
339
+ }
340
+ $orderby = implode( ' ' . $q['order'] . ', ', $orderby_array );
341
+
342
+ if ( empty( $orderby ) ) {
343
+ $orderby = "$table_name.ID " . $q['order'];
344
+ } elseif ( ! empty( $q['order'] ) ) {
345
+ $orderby .= " {$q['order']}";
346
+ }
347
+ }
348
+ }
349
+
350
+ if ( !empty( $orderby ) )
351
+ $orderby = 'ORDER BY ' . $orderby;
352
+
353
+ // Query
354
+ $audiences = $wpdb->get_results( "SELECT SQL_CALC_FOUND_ROWS * FROM {$wpdb->prefix}aepc_custom_audiences WHERE 1=1 $where $orderby $limits" );
355
+
356
+ // Save the number of all records, useful for pagination
357
+ self::$_audiences_count = $wpdb->get_var( 'SELECT FOUND_ROWS()' );
358
+
359
+ // Return raw_objects if requested
360
+ if ( 'raw' == $q['return'] ) {
361
+ return $audiences;
362
+ }
363
+
364
+ // Get instances
365
+ foreach ( $audiences as &$audience ) {
366
+ $audience = new AEPC_Admin_CA( $audience->ID );
367
+ }
368
+
369
+ return $audiences;
370
+ }
371
+
372
+ /**
373
+ * Return the number of all audiences
374
+ *
375
+ * @return int
376
+ */
377
+ public static function get_all_audiences_count() {
378
+ return self::$_audiences_count;
379
+ }
380
+
381
+ }
382
+
383
+ AEPC_Admin_CA_Manager::init();
includes/admin/class-aepc-admin-ca.php ADDED
@@ -0,0 +1,1119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit; // Exit if accessed directly.
4
+ }
5
+
6
+ /**
7
+ * CRUD class for custom audience record
8
+ *
9
+ * @class AEPC_Admin_CA
10
+ */
11
+ class AEPC_Admin_CA {
12
+
13
+ /** @var array */
14
+ protected $_data = array(
15
+ 'ID' => 0,
16
+ 'fb_id' => 0,
17
+ 'date' => '',
18
+ 'date_gmt' => '',
19
+ 'modified_date' => '',
20
+ 'modified_date_gmt' => '',
21
+ 'name' => '',
22
+ 'description' => '',
23
+ 'prefill' => true,
24
+ 'retention' => 14,
25
+ 'rule' => array(),
26
+ 'approximate_count' => 0
27
+ );
28
+
29
+ /** @var array Save here if some error occurred per each field */
30
+ protected $errors = array();
31
+
32
+ /** @var bool Flag indicates if CA exists or not */
33
+ protected $exists = false;
34
+
35
+ /** @var array Save the available translations to go speedy */
36
+ private static $translations = array();
37
+
38
+ /**
39
+ * AEPC_Admin_CA constructor.
40
+ *
41
+ * Initialize the instance in base of ID. If ID is zero, it preparse the instance for a new CA to save
42
+ *
43
+ * @param int $id
44
+ */
45
+ public function __construct( $id = 0 ) {
46
+ if ( ! empty( $id ) ) {
47
+ $this->populate( $id );
48
+ }
49
+ }
50
+
51
+ /**
52
+ * Populate the data from DB
53
+ *
54
+ * @param $id
55
+ */
56
+ public function populate( $id ) {
57
+ if ( empty( $id ) || ! ( $ca_object = $this->read( $id ) ) ) {
58
+ return;
59
+ }
60
+
61
+ $this->_data = $ca_object;
62
+ $this->exists = true;
63
+ }
64
+
65
+ /**
66
+ * Populate the data from DB by getting the record by Facebook ID, instead of record ID
67
+ *
68
+ * @param $fb_id
69
+ */
70
+ public function populate_by_fb_id( $fb_id ) {
71
+ if ( empty( $fb_id ) ) {
72
+ return;
73
+ }
74
+
75
+ global $wpdb;
76
+
77
+ if ( $ca = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}aepc_custom_audiences WHERE fb_id = %d", absint( $fb_id ) ), ARRAY_A ) ) {
78
+ $this->_data = array_map( 'maybe_unserialize', $ca );
79
+ $this->exists = true;
80
+ }
81
+ }
82
+
83
+ /**
84
+ * Retrieve the record from DB
85
+ *
86
+ * @param $id
87
+ *
88
+ * @return array|null|object|void
89
+ */
90
+ public function read( $id ) {
91
+ global $wpdb;
92
+
93
+ $ca = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->prefix}aepc_custom_audiences WHERE ID = %d", $id ), ARRAY_A );
94
+ return is_array( $ca ) ? array_map( 'maybe_unserialize', $ca ) : $ca;
95
+ }
96
+
97
+ /**
98
+ * Create the record in DB
99
+ *
100
+ * @param array $args
101
+ *
102
+ * @return bool|int
103
+ */
104
+ public function create( $args = array() ) {
105
+ $args = array_intersect_key( $args, $this->_data );
106
+ $data = wp_parse_args( $args, $this->_data );
107
+
108
+ if ( $this->exists() ) {
109
+ return false;
110
+ }
111
+
112
+ // Fields validation
113
+ $data = $this->validate_fields( $data );
114
+
115
+ // Save in Facebook Ad account
116
+ if ( ! AEPC_Admin::$api->is_debug() ) {
117
+ $res = AEPC_Admin::$api->create_audience( $data );
118
+
119
+ // Add Facebook ID in arguments
120
+ $data['fb_id'] = isset( $res->id ) ? $res->id : 0;
121
+ }
122
+
123
+ // Sanitize values for database
124
+ $this->_data = $data;
125
+ foreach ( $data as $key => &$val ) {
126
+ if ( is_array( $val ) ) {
127
+ $val = serialize( $val );
128
+ }
129
+ }
130
+
131
+ // Save the values
132
+ global $wpdb;
133
+
134
+ // Add datatime
135
+ $data['date'] = $data['modified_date'];
136
+ $data['date_gmt'] = $data['modified_date_gmt'];
137
+
138
+ $wpdb->insert( $wpdb->prefix . 'aepc_custom_audiences', $data );
139
+ $this->set_id( $wpdb->insert_id );
140
+ $this->exists = true;
141
+
142
+ return $this->get_id();
143
+ }
144
+
145
+ /**
146
+ * Update a record in DB. Must be defined an ID, to select what record you have to edit
147
+ *
148
+ * @param array $args
149
+ *
150
+ * @return bool|int
151
+ */
152
+ public function update( $args = array() ) {
153
+ if ( ! $this->exists() ) {
154
+ return false;
155
+ }
156
+
157
+ $original_values = $this->_data;
158
+ $args = array_intersect_key( $args, $this->_data );
159
+ $to_update = wp_parse_args( $args, $this->_data );
160
+
161
+ if ( empty( $this->_data['ID'] ) || ! ( $ca_object = $this->read( $this->_data['ID'] ) ) ) {
162
+ return false;
163
+ }
164
+
165
+ // Fields validation
166
+ $to_update = $this->validate_fields( $to_update );
167
+ $this->_data = $to_update;
168
+
169
+ // Save in Facebook Ad account
170
+ if ( ! AEPC_Admin::$api->is_debug() ) {
171
+ AEPC_Admin::$api->update_audience( $this->get_facebook_id(), $to_update );
172
+ }
173
+
174
+ // Sanitize values for database
175
+ foreach ( $to_update as $key => &$val ) {
176
+ if ( is_array( $val ) ) {
177
+ $val = serialize( $val );
178
+ }
179
+
180
+ if ( $val === $original_values[ $key ] ) {
181
+ unset( $val );
182
+ }
183
+ }
184
+
185
+ // Do not update if all values are unchanged
186
+ if ( empty( $to_update ) ) {
187
+ return false;
188
+ }
189
+
190
+ // Save the values
191
+ global $wpdb;
192
+ $wpdb->update( $wpdb->prefix . 'aepc_custom_audiences', $to_update, array( 'ID' => $this->get_id() ) );
193
+ return true;
194
+ }
195
+
196
+ /**
197
+ * Refresh the size of audience, getting it from Facebook API
198
+ */
199
+ public function refresh_size() {
200
+ $ca = AEPC_Admin::$api->get_audience( $this->get_facebook_id(), 'approximate_count' );
201
+ $this->update( array(
202
+ 'approximate_count' => absint( $ca->approximate_count )
203
+ ) );
204
+ }
205
+
206
+ /**
207
+ * Refresh the data audience, getting it from Facebook API
208
+ */
209
+ public function refresh_facebook_data() {
210
+ $ca = AEPC_Admin::$api->get_audience( $this->get_facebook_id() );
211
+ $this->update( array(
212
+ 'name' => $ca->name,
213
+ 'description' => $ca->description,
214
+ 'approximate_count' => absint( $ca->approximate_count )
215
+ ) );
216
+ }
217
+
218
+ /**
219
+ * Fields validation, useful for create and update method
220
+ *
221
+ * @throws Exception
222
+ */
223
+ protected function validate_fields( $args = array() ) {
224
+ $this->reset_errors();
225
+
226
+ $args = wp_parse_args( $args, $this->_data );
227
+
228
+ if ( empty( $args['name'] ) ) {
229
+ AEPC_Admin_Notices::add_notice( 'error', 'ca_name', __( 'The name for the cluster is required.', 'pixel-caffeine' ) );
230
+ }
231
+
232
+ if ( empty( $args['rule'] ) ) {
233
+ AEPC_Admin_Notices::add_notice( 'error', 'ca_include_url', __( 'You have to define one of included or excluded URL.', 'pixel-caffeine' ) );
234
+ AEPC_Admin_Notices::add_notice( 'error', 'ca_exclude_url', __( 'You have to define one of included or excluded URL.', 'pixel-caffeine' ) );
235
+ AEPC_Admin_Notices::add_notice( 'error', 'ca_rule', __( 'A custom audience from a website must contain at least one audience rule.', 'pixel-caffeine' ) );
236
+ }
237
+
238
+ if ( empty( $args['retention'] ) ) {
239
+ AEPC_Admin_Notices::add_notice( 'error', 'ca_retention', __( 'You have to define the number of days to keep the user in this cluster.', 'pixel-caffeine' ) );
240
+ }
241
+
242
+ $args['retention'] = intval( $args['retention'] );
243
+ $args['modified_date'] = current_time( 'mysql', false );
244
+ $args['modified_date_gmt'] = current_time( 'mysql', true );
245
+ $args['approximate_count'] = absint( $args['approximate_count'] );
246
+
247
+ if ( $args['retention'] < 1 || $args['retention'] > 180 ) {
248
+ AEPC_Admin_Notices::add_notice( 'error', 'ca_retention', __( 'The retention value must be beetwen 1 and 180 days value.', 'pixel-caffeine' ) );
249
+ }
250
+
251
+ // Remove the prefill field, because it's useful only for facebook request and it's useless for future
252
+ unset( $args['prefill'] );
253
+
254
+ // Throw exception if error
255
+ if ( $this->have_errors() ) {
256
+ throw new Exception( __( '<strong>Cannot save custom audience</strong> Please, check fields errors below.', 'pixel-caffeine' ) );
257
+ }
258
+
259
+ return $args;
260
+ }
261
+
262
+ /**
263
+ * Update a record in DB. Must be defined an ID, to select what record you have to edit
264
+ *
265
+ * @return bool|int
266
+ */
267
+ public function delete() {
268
+ if ( ! $this->exists() ) {
269
+ return false;
270
+ }
271
+
272
+ // Save in Facebook Ad account
273
+ if ( ! AEPC_Admin::$api->is_debug() ) {
274
+ AEPC_Admin::$api->delete_audience( $this->get_facebook_id() );
275
+ }
276
+
277
+ // Save the values
278
+ global $wpdb;
279
+ $wpdb->delete( $wpdb->prefix . 'aepc_custom_audiences', array( 'ID' => $this->get_id() ) );
280
+ $this->exists = false;
281
+ return true;
282
+ }
283
+
284
+ /**
285
+ * Create an identical CA in a new record with a new ID
286
+ *
287
+ * @param bool|string $name
288
+ *
289
+ * @return AEPC_Admin_CA
290
+ */
291
+ public function duplicate( $name = false ) {
292
+ $new = clone $this;
293
+
294
+ $new->set_id( 0 );
295
+ $new->exists = false;
296
+
297
+ // Change name if defined
298
+ if ( false !== $name ) {
299
+ $new->set_name( $name );
300
+ }
301
+
302
+ $new->create();
303
+
304
+ return $new;
305
+ }
306
+
307
+ /**
308
+ * Check if the CA exists
309
+ */
310
+ public function exists() {
311
+ return (bool) $this->exists;
312
+ }
313
+
314
+ /**
315
+ * Get the ID of record of this instance
316
+ *
317
+ * @return int
318
+ */
319
+ public function get_id() {
320
+ return absint( $this->_data['ID'] );
321
+ }
322
+
323
+ /**
324
+ * Set the ID of record of this instance and also populate data by ID
325
+ *
326
+ * @param int $id
327
+ *
328
+ * @return int
329
+ */
330
+ public function set_id( $id ) {
331
+ $this->_data['ID'] = $id;
332
+ $this->populate( $id );
333
+ }
334
+
335
+ /**
336
+ * Get the Facebook ID for this CA
337
+ *
338
+ * @return string
339
+ */
340
+ public function get_facebook_id() {
341
+ return $this->_data['fb_id'];
342
+ }
343
+
344
+ /**
345
+ * Set the Facebook ID for this CA
346
+ *
347
+ * @param string $fb_id
348
+ *
349
+ * @return string
350
+ */
351
+ public function set_facebook_id( $fb_id ) {
352
+ return $this->_data['fb_id'] = $fb_id;
353
+ }
354
+
355
+ /**
356
+ * Get the date of record of this instance
357
+ *
358
+ * @param bool $gmt
359
+ *
360
+ * @return string
361
+ */
362
+ public function get_date( $gmt = false ) {
363
+ return $this->_data[ 'date' . ( $gmt ? '_gmt' : '' ) ];
364
+ }
365
+
366
+ /**
367
+ * Set the date of record of this instance
368
+ *
369
+ * @param string $date
370
+ *
371
+ * @return string
372
+ */
373
+ public function set_date( $date ) {
374
+ $this->_data['date'] = $date;
375
+ $this->_data['date_gmt'] = gmdate( 'Y-m-d H:i:s', ( strtotime( $date ) - ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ) );
376
+ }
377
+
378
+ /**
379
+ * Get the time for print
380
+ *
381
+ * @param string $what You can return a specific date with a specific format - 't_time' for only time - 'h_time' for human date
382
+ *
383
+ * @return string
384
+ */
385
+ public function get_human_date( $what = '' ) {
386
+ $t_time = mysql2date( get_option( 'date_format' ) . ' - ' . get_option( 'time_format' ), $this->get_date(), true );
387
+ $time = mysql2date( 'G', $this->get_date( true ) );
388
+
389
+ $time_diff = time() - $time;
390
+
391
+ if ( $time_diff < MINUTE_IN_SECONDS ) {
392
+ $h_time = __( 'Now', 'pixel-caffeine' );
393
+ } else {
394
+ $h_time = sprintf( __( '%s ago', 'pixel-caffeine' ), human_time_diff( $time ) );
395
+ }
396
+
397
+ if ( ! empty( $what ) && isset( ${$what} ) ) {
398
+ return ${$what};
399
+ }
400
+
401
+ return array(
402
+ 't_time' => $t_time,
403
+ 'h_time' => $h_time,
404
+ );
405
+ }
406
+
407
+ /**
408
+ * Print out the human date
409
+ *
410
+ * @param string $what You can return a specific date with a specific format - 't_time' for only time - 'h_time' for human date
411
+ */
412
+ public function human_date( $what = '' ) {
413
+ echo $this->get_human_date( $what );
414
+ }
415
+
416
+ /**
417
+ * Get the modified_date of record of this instance
418
+ *
419
+ * @param bool $gmt
420
+ *
421
+ * @return string
422
+ */
423
+ public function get_modified_date( $gmt = false ) {
424
+ return $this->_data[ 'modified_date' . ( $gmt ? '_gmt' : '' ) ];
425
+ }
426
+
427
+ /**
428
+ * Set the modified_date of record of this instance
429
+ *
430
+ * @param string $modified_date
431
+ *
432
+ * @return string
433
+ */
434
+ public function set_modified_date( $modified_date ) {
435
+ $this->_data['modified_date'] = $modified_date;
436
+ $this->_data['modified_date_gmt'] = gmdate( 'Y-m-d H:i:s', ( strtotime( $modified_date ) - ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ) );
437
+ }
438
+
439
+ /**
440
+ * Get the name of record of this instance
441
+ *
442
+ * @return string
443
+ */
444
+ public function get_name() {
445
+ return $this->_data['name'];
446
+ }
447
+
448
+ /**
449
+ * Set the name of record of this instance
450
+ *
451
+ * @param string $name
452
+ *
453
+ * @return string
454
+ */
455
+ public function set_name( $name ) {
456
+ $this->_data['name'] = $name;
457
+ }
458
+
459
+ /**
460
+ * Get the description of record of this instance
461
+ *
462
+ * @return string
463
+ */
464
+ public function get_description() {
465
+ return $this->_data['description'];
466
+ }
467
+
468
+ /**
469
+ * Set the ID of record of this instance
470
+ *
471
+ * @param string $description
472
+ *
473
+ * @return string
474
+ */
475
+ public function set_description( $description ) {
476
+ $this->_data['description'] = $description;
477
+ }
478
+
479
+ /**
480
+ * Get if the custom audience must include website traffic recorded prior to the audience creation.
481
+ *
482
+ * @return bool
483
+ */
484
+ public function get_prefill() {
485
+ return (bool) $this->_data['prefill'];
486
+ }
487
+
488
+ /**
489
+ * Set if the custom audience must include website traffic recorded prior to the audience creation.
490
+ *
491
+ * @param bool $prefill
492
+ *
493
+ * @return bool
494
+ */
495
+ public function set_prefill( $prefill ) {
496
+ $this->_data['prefill'] = $prefill;
497
+ }
498
+
499
+ /**
500
+ * Get number of days to keep the user in this cluster. You can use any value between 1 and 180 days.
501
+ * Defaults to 14 days if not specified.
502
+ *
503
+ * @return int
504
+ */
505
+ public function get_retention() {
506
+ return intval( $this->_data['retention'] );
507
+ }
508
+
509
+ /**
510
+ * Set number of days to keep the user in this cluster. You can use any value between 1 and 180 days.
511
+ *
512
+ * @param int $retention
513
+ *
514
+ * @return int
515
+ */
516
+ public function set_retention( $retention ) {
517
+ $this->_data['retention'] = $retention;
518
+ }
519
+
520
+ /**
521
+ * Get Audience rules to be applied on the referrer URL.
522
+ *
523
+ * @param string $what You can have a specific rule, as "include_url" or "exclude_url"
524
+ *
525
+ * @return array
526
+ */
527
+ public function get_rule( $what = '' ) {
528
+ $rules = maybe_unserialize( $this->_data['rule'] );
529
+
530
+ if ( 'include_url' == $what ) {
531
+ foreach ( $rules as $rule ) {
532
+ if ( 'include' == $rule['main_condition'] && 'url' === $rule['event_type'] && isset( $rule['conditions'][0]['value'] ) ) {
533
+ return $rule['conditions'][0]['value'];
534
+ }
535
+ }
536
+ }
537
+
538
+ elseif ( 'exclude_url' == $what ) {
539
+ foreach ( $rules as $rule ) {
540
+ if ( 'exclude' == $rule['main_condition'] && 'url' === $rule['event_type'] && isset( $rule['conditions'][0]['value'] ) ) {
541
+ return ! empty( $rule['conditions'][0]['value'] ) ? $rule['conditions'][0]['value'] : '';
542
+ }
543
+ }
544
+ }
545
+
546
+ else {
547
+ return $rules;
548
+ }
549
+
550
+ return array();
551
+ }
552
+
553
+ /**
554
+ * Get Audience rules to be applied on the referrer URL.
555
+ *
556
+ * @param array $rules
557
+ *
558
+ * @return array
559
+ */
560
+ public function set_rule( array $rules ) {
561
+ $this->_data['rule'] = $rules;
562
+ }
563
+
564
+ /**
565
+ * Get the rule filters, excluding URL filter
566
+ *
567
+ * @param string $condition Could be 'include' or 'exclude' to check specifically for what rule we want to get
568
+ *
569
+ * @return array
570
+ */
571
+ public function get_filters( $condition = '' ) {
572
+ $filters = $this->get_rule();
573
+
574
+ // Exclude URL from filters
575
+ foreach ( $filters as $k => $f ) {
576
+ if (
577
+ 'url' === $f['event_type']
578
+ || ! empty( $condition ) && (
579
+ 'include' == $condition && 'exclude' == $f['main_condition']
580
+ || 'exclude' == $condition && 'include' == $f['main_condition']
581
+ )
582
+ ) {
583
+ unset( $filters[ $k ] );
584
+ }
585
+ }
586
+
587
+ return array_values( $filters );
588
+ }
589
+
590
+ /**
591
+ * Check if there are some filters in CA
592
+ *
593
+ * @param string $condition Could be 'include' or 'exclude' to check specifically for what rule we want to check
594
+ *
595
+ * @return bool
596
+ */
597
+ public function has_filters( $condition = '' ) {
598
+ $filters = $this->get_filters();
599
+
600
+ // Check for specific condition
601
+ if ( ! empty( $condition ) ) {
602
+ foreach ( $filters as $filter ) {
603
+ if (
604
+ 'include' === $condition && 'include' == $filter['main_condition']
605
+ || 'exclude' === $condition && 'exclude' == $filter['main_condition']
606
+ ) {
607
+ return true;
608
+ }
609
+ }
610
+ }
611
+
612
+ else {
613
+ return ! empty( $filters );
614
+ }
615
+
616
+ return false;
617
+ }
618
+
619
+ /**
620
+ * Get the size of audience
621
+ *
622
+ * @return int
623
+ */
624
+ public function get_size() {
625
+ return absint( $this->_data['approximate_count'] );
626
+ }
627
+
628
+ /**
629
+ * Translate the configuration array of a filter into a readable statement to print out on screen
630
+ *
631
+ * @param $rule
632
+ * @param string $highlight_before
633
+ * @param string $highlight_after
634
+ *
635
+ * @return string|void
636
+ */
637
+ public function get_human_filter( $rule, $highlight_before = '[', $highlight_after = ']' ) {
638
+
639
+ // Standard statements for the filter rows, they may be changed in some condition
640
+ $translate_words = array(
641
+
642
+ // Specific cases
643
+ 'attributes' => array(
644
+ 'login_status' => array(
645
+ 'eq' => _x( 'is %2$s', '%2$s is the value', 'pixel-caffeine' ),
646
+ 'neq' => _x( 'is not %2$s', '%2$s is the value', 'pixel-caffeine' ),
647
+ ),
648
+ 'referrer' => array(
649
+ 'i_contains' => _x( 'come from %2$s', '%2$s is the value', 'pixel-caffeine' ),
650
+ 'i_not_contains' => _x( 'don\'t come from %2$s', '%2$s is the value', 'pixel-caffeine' ),
651
+ ),
652
+ 'device_type' => array(
653
+ 'i_contains' => _x( 'use %2$s', '%2$s is the value', 'pixel-caffeine' ),
654
+ 'i_not_contains' => _x( 'don\'t use %2$s', '%2$s is the value', 'pixel-caffeine' ),
655
+ 'eq' => _x( 'use %2$s', '%2$s is the value', 'pixel-caffeine' ),
656
+ 'neq' => _x( 'don\'t use %2$s', '%2$s is the value', 'pixel-caffeine' ),
657
+ ),
658
+ ),
659
+
660
+ 'blog' => array(
661
+ 'categories' => array(
662
+ 'i_contains' => _x( 'read posts from %2$s %1$s', '%1$s is the taxonomy and %2$s is the term of that taxonomy', 'pixel-caffeine' ),
663
+ 'i_not_contains' => _x( 'don\'t read posts from %2$s %1$s', '%1$s is the taxonomy and %2$s is the term of that taxonomy', 'pixel-caffeine' ),
664
+ ),
665
+ 'tax_post_tag' => array(
666
+ 'i_contains' => _x( 'read posts from %2$s %1$s', '%1$s is the taxonomy and %2$s is the term of that taxonomy', 'pixel-caffeine' ),
667
+ 'i_not_contains' => _x( 'don\'t read posts from %2$s %1$s', '%1$s is the taxonomy and %2$s is the term of that taxonomy', 'pixel-caffeine' ),
668
+ ),
669
+ 'posts' => array(
670
+ 'i_contains' => _x( 'read %2$s from %1$s', '%1$s is the post type or blog and %2$s should be "the post(s) <post title>" or "any post" if all', 'pixel-caffeine' ),
671
+ 'i_not_contains' => _x( 'don\'t read %2$s from %1$s', '%1$s is the post type or blog and %2$s should be "the post(s) <post title>" or "any post" if all', 'pixel-caffeine' ),
672
+ ),
673
+ 'pages' => array(
674
+ 'i_contains' => _x( 'visit %2$s %1$s', '%1$s is "page" or "pages" and %2$s is the page title', 'pixel-caffeine' ),
675
+ 'i_not_contains' => _x( 'don\'t visit %2$s %1$s', '%1$s is "page" or "pages" and %2$s is the page title', 'pixel-caffeine' ),
676
+ ),
677
+ 'custom_fields' => array(
678
+ 'i_contains' => _x( 'read a post contains %1$s %2$s', '%1$s is the custom field key and %2$s is the value. Complete statement: "read a post contains [field_key] custom field with [value] and [value2] as value"', 'pixel-caffeine' ),
679
+ 'i_not_contains' => _x( 'don\'t read a post contains %1$s %2$s', '%1$s is the custom field key and %2$s is the value. Complete statement: "don\'t read a post contains [field_key] custom field with [value] and [value2] as value"', 'pixel-caffeine' ),
680
+ )
681
+ ),
682
+
683
+ 'ecommerce' => array(
684
+
685
+ 'ViewContent' => array(
686
+ 'generic' => __( 'visit a product page', 'pixel-caffeine' ),
687
+ 'specific' => array(
688
+ 'singular' => _x( 'visit %s product page', '%s is the product title', 'pixel-caffeine' ),
689
+ 'plural' => _x( 'visit %s product pages', '%s are the product titles', 'pixel-caffeine' ),
690
+ )
691
+ ),
692
+
693
+ 'Search' => array(
694
+ 'generic' => _x( 'search', 'it is followed by "something" or a specific string searched', 'pixel-caffeine' )
695
+ ),
696
+
697
+ 'AddToCart' => array(
698
+ 'generic' => __( 'add to cart a product', 'pixel-caffeine' ),
699
+ 'specific' => array(
700
+ 'singular' => _x( 'add to cart %2$s product', '%2$s is the product title', 'pixel-caffeine' ),
701
+ 'plural' => _x( 'add to cart %2$s products', '%2$s are the product titles', 'pixel-caffeine' ),
702
+ )
703
+ ),
704
+
705
+ 'AddToWishlist' => array(
706
+ 'generic' => __( 'add to wishlist a product', 'pixel-caffeine' ),
707
+ 'specific' => array(
708
+ 'singular' => _x( 'add to wishlist %2$s product', '%2$s is the product title', 'pixel-caffeine' ),
709
+ 'plural' => _x( 'add to wishlist %2$s products', '%2$s are the product titles', 'pixel-caffeine' ),
710
+ )
711
+ ),
712
+
713
+ 'InitiateCheckout' => array(
714
+ 'generic' => __( 'enter the checkout flow', 'pixel-caffeine' ),
715
+ 'specific' => array(
716
+ 'singular' => _x( 'enter the checkout flow containing %2$s product', '%2$s is the product title', 'pixel-caffeine' ),
717
+ 'plural' => _x( 'enter the checkout flow containing %2$s products', '%2$s are the product titles', 'pixel-caffeine' ),
718
+ )
719
+ ),
720
+
721
+ 'AddPaymentInfo' => array(
722
+ 'generic' => __( 'add payment information in the checkout flow', 'pixel-caffeine' ),
723
+ 'specific' => array(
724
+ 'singular' => _x( 'add payment information in the checkout flow containing %2$s product', '%2$s is the product title', 'pixel-caffeine' ),
725
+ 'plural' => _x( 'add payment information in the checkout flow containing %2$s products', '%2$s are the product titles', 'pixel-caffeine' ),
726
+ )
727
+ ),
728
+
729
+ 'Purchase' => array(
730
+ 'generic' => __( 'make a purchase', 'pixel-caffeine' ),
731
+ 'specific' => array(
732
+ 'singular' => _x( 'purchase %2$s product', '%2$s is the product title', 'pixel-caffeine' ),
733
+ 'plural' => _x( 'purchase %2$s products', '%2$s are the product titles', 'pixel-caffeine' ),
734
+ )
735
+ ),
736
+
737
+ 'Lead' => array(
738
+ 'generic' => __( 'sign up for something', 'pixel-caffeine' ),
739
+ 'specific' => array(
740
+ 'singular' => _x( 'sign up for %2$s product', '%2$s is the product title', 'pixel-caffeine' ),
741
+ 'plural' => _x( 'sign up for %2$s products', '%2$s are the product titles', 'pixel-caffeine' ),
742
+ )
743
+ ),
744
+
745
+ 'CompleteRegistration' => array(
746
+ 'generic' => __( 'complete registration for a service', 'pixel-caffeine' ),
747
+ 'specific' => array(
748
+ 'singular' => _x( 'complete registration for %2$s product', '%2$s is the product title', 'pixel-caffeine' ),
749
+ 'plural' => _x( 'complete registration for %2$s products', '%2$s are the product titles', 'pixel-caffeine' ),
750
+ )
751
+ ),
752
+ ),
753
+
754
+ // Standard statements
755
+ 'i_contains' => _x( '%1$s contains %2$s', '%1$s is the parameter and %2$s is the value', 'pixel-caffeine' ),
756
+ 'i_not_contains' => _x( '%1$s not contains %2$s', '%1$s is the parameter and %2$s is the value', 'pixel-caffeine' ),
757
+ 'eq' => _x( 'have set %2$s as %1$s', '%1$s is the parameter and %2$s is the value', 'pixel-caffeine' ),
758
+ 'neq' => _x( 'have not set %2$s as %1$s', '%1$s is the parameter and %2$s is the value', 'pixel-caffeine' ),
759
+ 'gte' => _x( '%1$s greater than or equal to %2$s', '%1$s is the parameter and %2$s is the value', 'pixel-caffeine' ),
760
+ 'gt' => _x( '%1$s greater than %2$s', '%1$s is the parameter and %2$s is the value', 'pixel-caffeine' ),
761
+ 'lte' => _x( '%1$s lower than or equal to %2$s', '%1$s is the parameter and %2$s is the value', 'pixel-caffeine' ),
762
+ 'lt' => _x( '%1$s lower than %2$s', '%1$s is the parameter and %2$s is the value', 'pixel-caffeine' ),
763
+ );
764
+
765
+ // Don't add any statement for URL filter
766
+ if ( 'url' == $rule['event_type'] && 'url' == $rule['event'] ) {
767
+ return '';
768
+ }
769
+
770
+ $conditions = array();
771
+ $values_count = 0;
772
+ $prepend = '';
773
+
774
+ // Force to add conditions key when it doesn't exist
775
+ if ( ! isset( $rule['conditions'] ) ) {
776
+ $rule['conditions'] = array();
777
+ }
778
+
779
+ foreach ( $rule['conditions'] as $k => $condition ) {
780
+ $statement = $parameter = $value = '';
781
+
782
+ // Remove condition if it's not allowed empty key and empty value
783
+ if ( in_array( $rule['event_type'], array( 'attributes', 'blog' ) ) && ( isset( $condition['key'] ) && empty( $condition['key'] ) || empty( $condition['value'] ) ) ) {
784
+ unset( $rule['conditions'][$k] );
785
+ continue;
786
+ }
787
+
788
+ // Define the value and parameters in specific cases
789
+ if ( ! empty( $condition['value'] ) ) {
790
+ $condition['value'] = array_map( 'trim', explode( ',', $condition['value'] ) );
791
+
792
+ // Save the count of values useful for parameter, to choose between singular and plural
793
+ $values_count = count( $condition['value'] );
794
+
795
+ // Use this to set some text after and before the value, by replacing the value of variable with a localized string and %s for the value
796
+ $value_wrapper = '%s';
797
+
798
+ // Sanitize all values
799
+ foreach ( $condition['value'] as &$v ) {
800
+
801
+ // Get language english name
802
+ if ( 'attributes' == $rule['event_type'] && 'language' == $rule['event'] ) {
803
+ if ( 'en-US' == $v ) {
804
+ $v = __( 'English (American)', 'pixel-caffeine' );
805
+ }
806
+
807
+ else {
808
+ if ( empty( self::$translations ) ) {
809
+ require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
810
+ self::$translations = wp_get_available_translations();
811
+ }
812
+
813
+ foreach ( self::$translations as $translation ) {
814
+ if ( $v == str_replace( '_', '-', $translation['language'] ) ) {
815
+ $v = $translation['english_name'];
816
+ }
817
+ }
818
+ }
819
+ }
820
+
821
+ // Get label of taxonomy
822
+ elseif ( 'blog' == $rule['event_type'] && in_array( $rule['event'], array( 'categories', 'tax_post_tag' ) ) ) {
823
+ if ( '[[any]]' === $v ) {
824
+ $v = _x( 'any', 'Sentence like: "read posts from any category"', 'pixel-caffeine' );
825
+ } elseif ( $term = get_term_by( 'slug', $v, str_replace( 'tax_', '', ( ! empty( $condition['key'] ) ? $condition['key'] : $rule['event'] ) ) ) ) {
826
+ $v = $term->name;
827
+ }
828
+
829
+ // Set now parameter
830
+ if ( ! empty( $condition['key'] ) && 'tax_category' == $condition['key'] ) {
831
+ $parameter = _n( __( 'category', 'pixel-caffeine' ), __( 'categories', 'pixel-caffeine' ), $values_count );
832
+ } elseif ( 'tax_post_tag' == $rule['event'] && 'tax_post_tag' == $condition['key'] ) {
833
+ $parameter = _n( __( 'tag', 'pixel-caffeine' ), __( 'tags', 'pixel-caffeine' ), $values_count );
834
+ } elseif ( function_exists( 'WC' ) && 'tax_post_tag' == $rule['event'] && 'tax_product_tag' == $condition['key'] ) {
835
+ $parameter = _n( __( 'product tag', 'pixel-caffeine' ), __( 'product tags', 'pixel-caffeine' ), $values_count );
836
+ } else {
837
+ if ( '[[any]]' === $v ) {
838
+ $v = __( 'any term', 'pixel-caffeine' );
839
+ }
840
+ if ( $taxonomy = get_taxonomy( str_replace( 'tax_', '', $condition['key'] ) ) ) {
841
+ $label = $taxonomy->label;
842
+ } else {
843
+ $label = str_replace( 'tax_', '', $condition['key'] );
844
+ }
845
+ $parameter = sprintf( __( 'of %s custom taxonomy', 'pixel-caffeine' ), $highlight_before . $label . $highlight_after );
846
+ }
847
+ }
848
+
849
+ // Get post title
850
+ elseif ( 'blog' == $rule['event_type'] && 'posts' == $rule['event'] ) {
851
+ if ( '[[any]]' == $v ) {
852
+ $v = __( 'any post', 'pixel-caffeine' );
853
+ } else {
854
+ $value_wrapper = _n( 'the post %s', 'the posts %s', $values_count, 'pixel-caffeine' );
855
+ if ( $post_title = get_the_title( $v ) ) {
856
+ $v = $post_title;
857
+ }
858
+ }
859
+
860
+ // Set now parameter
861
+ if ( 'post' == $condition['key'] ) {
862
+ $parameter = 'blog';
863
+ } else {
864
+ $key = _x( '%s post type', 'The complete statement is "read the posts [Post Title 1] and [Post Title 2] from [Post Type Name] post type"', 'pixel-caffeine' );
865
+ $post_type = get_post_type_object( $condition['key'] );
866
+ if ( $post_type ) {
867
+ $post_type_labels = get_post_type_labels( $post_type );
868
+ $condition['key'] = $post_type_labels->singular_name;
869
+ }
870
+ $parameter = sprintf( $key, $highlight_before . ucfirst( $condition['key'] ) . $highlight_after );
871
+ }
872
+ }
873
+
874
+ // Get page title
875
+ elseif ( 'blog' == $rule['event_type'] && 'pages' == $rule['event'] ) {
876
+ if ( '[[any]]' == $v ) {
877
+ $v = __( 'any', 'pixel-caffeine' );
878
+ } elseif ( ! in_array( $v, array( 'home', 'blog' ) ) ) {
879
+ $v = get_the_title( $v );
880
+ }
881
+
882
+ // Set now parameter
883
+ $parameter = _n( __( 'page', 'pixel-caffeine' ), __( 'pages', 'pixel-caffeine' ), $values_count );
884
+ }
885
+
886
+ // Exception for custom fields
887
+ elseif ( 'blog' == $rule['event_type'] && 'custom_fields' == $rule['event'] ) {
888
+ $value_wrapper = _n( 'with %s value', 'with %s values', $values_count, 'pixel-caffeine' );
889
+ if ( '[[any]]' == $v ) {
890
+ $v = __( 'any', 'pixel-caffeine' );
891
+ }
892
+
893
+ // Set now parameter
894
+ if ( '[[any]]' == $condition['key'] ) {
895
+ $parameter = __( 'the custom fields defined on \'Track Custom Fields Based Events\' option on General Settings tab', 'pixel-caffeine' );
896
+ }
897
+ }
898
+
899
+ // Exception search event
900
+ elseif ( 'ecommerce' == $rule['event_type'] && 'Search' == $rule['event'] ) {
901
+ if ( '[[any]]' == $v ) {
902
+ $v = __( 'something', 'pixel-caffeine' );
903
+ }
904
+
905
+ $statement = '%2$s';
906
+ }
907
+
908
+ // Exception search event
909
+ elseif ( 'ecommerce' == $rule['event_type'] ) {
910
+ if ( '[[any]]' == $v ) {
911
+ $v = __( 'any', 'pixel-caffeine' );
912
+ }
913
+
914
+ // Replace IDs with product title, if a store plugin installed
915
+ if ( 'content_ids' == $condition['key'] && function_exists( 'wc_get_product' ) && $product = wc_get_product( intval( $v ) ) ) {
916
+ $v = $product->get_title();
917
+ }
918
+ }
919
+
920
+ // Translate underscores into spaces
921
+ if ( empty( $condition['key'] ) || ! in_array( $condition['key'], array( 'content_type' ) ) ) {
922
+ $v = str_replace( '_', ' ', $v );
923
+ }
924
+
925
+ $v = ! empty( $v ) ? $highlight_before . $v . $highlight_after : '';
926
+ }
927
+
928
+ // Format array list
929
+ if ( 1 == $values_count ) {
930
+ $value = $condition['value'][0];
931
+ }
932
+
933
+ else {
934
+ $last_condition = array_pop( $condition['value'] );
935
+ $and_or = in_array( $condition['operator'], array( 'eq', 'neq' ) ) ? __( 'or', 'pixel-caffeine' ) : __( 'and', 'pixel-caffeine' );
936
+ $value = implode( ', ', $condition['value'] ) . ' ' . $and_or . ' ' . $last_condition;
937
+ }
938
+
939
+ // Wrap the value list with some text defined in some cases
940
+ $value = sprintf( $value_wrapper, $value );
941
+
942
+ }
943
+
944
+ // Define the parameter, for cases not covered above
945
+ if ( empty( $parameter ) ) {
946
+ if ( 'attributes' == $rule['event_type'] && 'language' == $rule['event'] ) {
947
+ $parameter = __( 'browser language', 'pixel-caffeine' );
948
+
949
+ } elseif ( 'blog' == $rule['event_type'] && 'custom_fields' == $rule['event'] && '[[any]]' != $condition['key'] ) {
950
+ $parameter = sprintf( __( '%s custom field', 'pixel-caffeine' ), $highlight_before . $condition['key'] . $highlight_after );
951
+
952
+ } elseif ( 'ecommerce' == $rule['event_type'] ) {
953
+ $parameter = sprintf( __( '%s parameter', 'pixel-caffeine' ), $highlight_before . $condition['key'] . $highlight_after );
954
+
955
+ } elseif ( ! empty( $condition['key'] ) ) {
956
+ $parameter = $condition['key'];
957
+ }
958
+ }
959
+
960
+ // Set by default the statement to use for this row, it could be changed in some cases above
961
+ if ( empty( $statement ) ) {
962
+ if ( isset( $translate_words[ $rule['event_type'] ][ $rule['event'] ][ $condition['operator'] ] ) ) {
963
+ $statement = ' ' . $translate_words[ $rule['event_type'] ][ $rule['event'] ][ $condition['operator'] ];
964
+ } elseif ( isset( $condition['key'] ) && 'content_ids' == $condition['key'] && isset( $translate_words[ $rule['event_type'] ][ $rule['event'] ]['specific'] ) ) {
965
+ $statement = $translate_words[ $rule['event_type'] ][ $rule['event'] ]['specific'];
966
+
967
+ if ( is_array( $statement ) ) {
968
+ $statement = $statement[ $values_count <= 1 ? 'singular' : 'plural' ];
969
+ }
970
+
971
+ $statement = ' ' . $statement;
972
+ } else {
973
+ $statement = ' ' . $translate_words[ $condition['operator'] ];
974
+ }
975
+ }
976
+
977
+ if ( empty( $value ) ) {
978
+ $value = __( 'nothing', 'pixel-caffeine' );
979
+ }
980
+
981
+ // Decide what statement use
982
+ if ( ! empty( $condition['key'] ) && 'content_ids' == $condition['key'] ) {
983
+ $prepend = sprintf( trim( $statement ), $parameter, $value ) . ' ';
984
+ } else {
985
+ $conditions[] = sprintf( trim( $statement ), $parameter, $value );
986
+ }
987
+ }
988
+
989
+ // Set some statement to prepend to above generated
990
+ if ( empty( $prepend ) && isset( $translate_words[ $rule['event_type'] ][ $rule['event'] ]['generic'] ) ) {
991
+ $prepend = $translate_words[ $rule['event_type'] ][ $rule['event'] ]['generic'] . ' ';
992
+ }
993
+
994
+ // Add conditions if any
995
+ if ( ! empty( $prepend ) && ! empty( $conditions ) && ! in_array( $rule['event'], array( 'Search' ) ) ) {
996
+ $prepend .= __( 'with', 'pixel-caffeine' ) . ' ';
997
+ }
998
+
999
+ // Save final text
1000
+ if ( empty( $conditions ) ) {
1001
+ $final = '';
1002
+ } elseif ( 1 == count( $conditions ) ) {
1003
+ $final = $conditions[0];
1004
+ } else {
1005
+ $last_condition = array_pop( $conditions );
1006
+ $final = implode( ', ', $conditions ) . ' ' . __( 'and', 'pixel-caffeine' ) . ' ' . $last_condition;
1007
+ }
1008
+
1009
+ // Save final statement
1010
+ return trim( $prepend . $final );
1011
+ }
1012
+
1013
+ /**
1014
+ * Get a list of all rule formatted for human reading to print out on frontend
1015
+ *
1016
+ * @param string $highlight_before What put before the highlighted word
1017
+ * @param string $highlight_after What put after the highlighted word
1018
+ *
1019
+ * @return array
1020
+ */
1021
+ public function get_human_rule_list( $highlight_before = '[', $highlight_after = ']' ) {
1022
+ $filters = $this->get_rule();
1023
+
1024
+ // Change each condition into text readable
1025
+ foreach ( $filters as $filter_id => &$rule ) {
1026
+
1027
+ // Don't add any statement for URL filter
1028
+ if ( 'url' == $rule['event_type'] && 'url' == $rule['event'] ) {
1029
+ unset( $filters[ $filter_id ] );
1030
+ continue;
1031
+ }
1032
+
1033
+ // Save final statement
1034
+ $rule = $this->get_human_filter( $rule, $highlight_before, $highlight_after );
1035
+ }
1036
+
1037
+ return array_filter( $filters );
1038
+ }
1039
+
1040
+ /**
1041
+ * Set the size of audience
1042
+ *
1043
+ * @param int $size
1044
+ *
1045
+ * @return int
1046
+ */
1047
+ public function set_size( $size ) {
1048
+ return $this->_data['approximate_count'] = absint( $size );
1049
+ }
1050
+
1051
+ /**
1052
+ * Add new filter to rules already existing with AND condition
1053
+ *
1054
+ * @param array $rule
1055
+ */
1056
+ public function add_filter( array $rule ) {
1057
+
1058
+ // Remove conditions with emptu value and key
1059
+ foreach ( $rule['conditions'] as $k => $condition ) {
1060
+ if (
1061
+ isset( $condition['key'] ) && empty( $condition['key'] )
1062
+ || ! isset( $condition['key'] ) && empty( $condition['value'] )
1063
+ ) {
1064
+ unset( $rule['conditions'][ $k ] );
1065
+ }
1066
+ }
1067
+
1068
+ $this->set_rule( array_merge( $this->get_rule(), array( $rule ) ) );
1069
+ }
1070
+
1071
+ /**
1072
+ * Get error message if any
1073
+ *
1074
+ * @param $field
1075
+ *
1076
+ * @return bool|mixed
1077
+ */
1078
+ public function get_error( $field ) {
1079
+ return AEPC_Admin_Notices::get_notices( 'error', 'ca_' . $field );
1080
+ }
1081
+
1082
+ /**
1083
+ * Return if the CA have some errors
1084
+ */
1085
+ public function have_errors() {
1086
+ return AEPC_Admin_Notices::has_notice( 'error' );
1087
+ }
1088
+
1089
+ /**
1090
+ * Get all error messages
1091
+ *
1092
+ * @return array
1093
+ */
1094
+ public function get_errors() {
1095
+ return AEPC_Admin_Notices::get_notices( 'error' );
1096
+ }
1097
+
1098
+ /**
1099
+ * Delete an error for a field
1100
+ *
1101
+ * @param $field
1102
+ */
1103
+ public function remove_error( $field ) {
1104
+ AEPC_Admin_Notices::remove_notices( 'error', 'ca_' . $field );
1105
+
1106
+ if ( 'rule' == $field ) {
1107
+ AEPC_Admin_Notices::remove_notices( 'error', 'ca_include_url' );
1108
+ AEPC_Admin_Notices::remove_notices( 'error', 'ca_exclude_url' );
1109
+ }
1110
+ }
1111
+
1112
+ /**
1113
+ * Reset all errors
1114
+ */
1115
+ public function reset_errors() {
1116
+ AEPC_Admin_Notices::remove_notices( 'error' );
1117
+ }
1118
+
1119
+ }
includes/admin/class-aepc-admin-handlers.php ADDED
@@ -0,0 +1,417 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit; // Exit if accessed directly.
4
+ }
5
+
6
+ /**
7
+ * @class AEPC_Admin_Handlers
8
+ */
9
+ class AEPC_Admin_Handlers {
10
+
11
+ /**
12
+ * AEPC_Admin_Handlers Constructor.
13
+ */
14
+ public static function init() {
15
+ add_action( 'admin_init', array( __CLASS__, 'admin_hooks' ) );
16
+ }
17
+
18
+ /**
19
+ * Hook actions on admin_init
20
+ */
21
+ public static function admin_hooks() {
22
+ // Fb connect/disconnect - Must be run before connect of Facebook adapter
23
+ add_action( 'load-' . AEPC_Admin_Menu::$hook_page, array( __CLASS__, 'pixel_disconnect' ), 4 );
24
+ add_action( 'load-' . AEPC_Admin_Menu::$hook_page, array( __CLASS__, 'save_facebook_options' ), 4 );
25
+
26
+ // Conversions/events
27
+ add_action( 'load-' . AEPC_Admin_Menu::$hook_page, array( __CLASS__, 'save_settings' ), 5 );
28
+ add_action( 'load-' . AEPC_Admin_Menu::$hook_page, array( __CLASS__, 'save_events' ), 5 );
29
+ add_action( 'load-' . AEPC_Admin_Menu::$hook_page, array( __CLASS__, 'edit_event' ), 5 );
30
+ add_action( 'load-' . AEPC_Admin_Menu::$hook_page, array( __CLASS__, 'delete_event' ), 5 );
31
+
32
+ // CA management
33
+ add_action( 'load-' . AEPC_Admin_Menu::$hook_page, array( __CLASS__, 'save_audience' ), 5 );
34
+ add_action( 'load-' . AEPC_Admin_Menu::$hook_page, array( __CLASS__, 'edit_audience' ), 5 );
35
+ add_action( 'load-' . AEPC_Admin_Menu::$hook_page, array( __CLASS__, 'duplicate_audience' ), 5 );
36
+ add_action( 'load-' . AEPC_Admin_Menu::$hook_page, array( __CLASS__, 'delete_audience' ), 5 );
37
+ }
38
+
39
+ /**
40
+ * Simply delete the option saved with pixel ID
41
+ */
42
+ public static function pixel_disconnect() {
43
+ $screen = get_current_screen();
44
+
45
+ if (
46
+ empty( $screen->id )
47
+ || AEPC_Admin_Menu::$hook_page != $screen->id
48
+ || empty( $_GET['action'] )
49
+ || 'pixel-disconnect' != $_GET['action']
50
+ || empty( $_GET['_wpnonce'] )
51
+ || ! current_user_can( 'manage_ads' )
52
+ || ! wp_verify_nonce( $_GET['_wpnonce'], 'pixel_disconnect' )
53
+ ) {
54
+ return;
55
+ }
56
+
57
+ // Delete the option
58
+ delete_option( 'aepc_pixel_id' );
59
+
60
+ // Send success notice
61
+ AEPC_Admin_Notices::add_notice( 'success', 'main', __( 'Pixel ID disconnected.', 'pixel-caffeine' ) );
62
+
63
+ // If all good, redirect in the same page
64
+ self::redirect_to( remove_query_arg( array( 'action', '_wpnonce' ) ) );
65
+ }
66
+
67
+ /**
68
+ * Save the account id and pixel id
69
+ *
70
+ * @return bool
71
+ */
72
+ public static function save_facebook_options() {
73
+ if (
74
+ empty( $_POST['action'] )
75
+ || 'aepc_save_facebook_options' != $_POST['action']
76
+ || ! current_user_can( 'manage_ads' )
77
+ || empty( $_POST['_wpnonce'] )
78
+ || ! wp_verify_nonce( $_POST['_wpnonce'], 'save_facebook_options' )
79
+ ) {
80
+ return false;
81
+ }
82
+
83
+ try {
84
+
85
+ if ( empty( $_POST['aepc_account_id'] ) ) {
86
+ AEPC_Admin_Notices::add_notice( 'error', 'account_id', __( 'Set the account ID', 'pixel-caffeine' ) );
87
+ }
88
+
89
+ if ( empty( $_POST['aepc_pixel_id'] ) ) {
90
+ AEPC_Admin_Notices::add_notice( 'error', 'pixel_id', __( 'Set the pixel ID', 'pixel-caffeine' ) );
91
+ }
92
+
93
+ if ( AEPC_Admin_Notices::has_notice( 'error' ) ) {
94
+ throw new Exception();
95
+ }
96
+
97
+ AEPC_Admin::save_facebook_options( stripslashes_deep( $_POST ) );
98
+
99
+ // Send success notice
100
+ AEPC_Admin_Notices::add_notice( 'success', 'main', __( 'Facebook Ad Account connected successfully.', 'pixel-caffeine' ) );
101
+
102
+ // If all good, redirect in the same page
103
+ if ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) {
104
+ self::redirect_to( remove_query_arg( 'ref' ) );
105
+ }
106
+
107
+ return true;
108
+ }
109
+
110
+ catch( Exception $e ) {
111
+ AEPC_Admin_Notices::add_notice( 'error', 'main', __( 'Please, check again all fields value.', 'pixel-caffeine' ) );
112
+ }
113
+
114
+ return false;
115
+ }
116
+
117
+ /**
118
+ * General method for all standard settings, defined on "settings" directory, triggered when a page form is submitted
119
+ */
120
+ public static function save_settings() {
121
+ $screen = get_current_screen();
122
+
123
+ if (
124
+ empty( $screen->id )
125
+ || AEPC_Admin_Menu::$hook_page != $screen->id
126
+ || ! current_user_can( 'manage_ads' )
127
+ || empty( $_POST )
128
+ || empty( $_POST['_wpnonce'] )
129
+ || ! wp_verify_nonce( $_POST['_wpnonce'], 'save_general_settings' )
130
+ ) {
131
+ return;
132
+ }
133
+
134
+ try {
135
+
136
+ // Save
137
+ AEPC_Admin::save_settings( wp_unslash( $_POST ) );
138
+
139
+ // Send success notice
140
+ AEPC_Admin_Notices::add_notice( 'success', 'main', __( 'Settings saved properly.', 'pixel-caffeine' ) );
141
+
142
+ // If all good, redirect in the same page
143
+ self::redirect_to( remove_query_arg( 'ref' ) );
144
+ }
145
+
146
+ catch( Exception $e ) {
147
+ AEPC_Admin_Notices::add_notice( 'error', 'main', __( 'Please, check again all fields value.', 'pixel-caffeine' ) );
148
+ }
149
+ }
150
+
151
+ /**
152
+ * Save the conversions events added by user in admin page
153
+ *
154
+ * @return bool
155
+ */
156
+ public static function save_events() {
157
+ if (
158
+ empty( $_POST )
159
+ || empty( $_POST['action'] )
160
+ || $_POST['action'] != 'aepc_save_tracking_conversion'
161
+ || ! current_user_can( 'manage_ads' )
162
+ || empty( $_POST['_wpnonce'] )
163
+ || ! wp_verify_nonce( $_POST['_wpnonce'], 'save_tracking_conversion' )
164
+ ) {
165
+ return false;
166
+ }
167
+
168
+ try {
169
+
170
+ // Save events
171
+ AEPC_Admin::save_events( wp_unslash( $_POST ) );
172
+
173
+ // Send success notice
174
+ AEPC_Admin_Notices::add_notice( 'success', 'main', sprintf( __( '<strong>Conversion event added properly!</strong> Follow the instructions on %sthis link%s to verify if the pixel tracking event you added works properly.', 'pixel-caffeine' ), '<a href="https://developers.facebook.com/docs/facebook-pixel/using-the-pixel#verify">', '</a>' ) );
175
+
176
+ return true;
177
+ }
178
+
179
+ catch ( Exception $e ) {
180
+ AEPC_Admin_Notices::add_notice( 'error', 'main', $e->getMessage() );
181
+ return false;
182
+ }
183
+ }
184
+
185
+ /**
186
+ * Edit a conversion event
187
+ *
188
+ * @return bool
189
+ */
190
+ public static function edit_event() {
191
+ if (
192
+ empty( $_POST )
193
+ || empty( $_POST['action'] )
194
+ || $_POST['action'] != 'aepc_edit_tracking_conversion'
195
+ || ! isset( $_POST['event_id'] )
196
+ || ! current_user_can( 'manage_ads' )
197
+ || empty( $_POST['_wpnonce'] )
198
+ || ! wp_verify_nonce( $_POST['_wpnonce'], 'edit_tracking_conversion' )
199
+ ) {
200
+ return false;
201
+ }
202
+
203
+ try {
204
+
205
+ // Edit event
206
+ AEPC_Admin::edit_event( wp_unslash( $_POST ) );
207
+
208
+ // Send success notice
209
+ AEPC_Admin_Notices::add_notice( 'success', 'main', __( 'Conversion changed successfully.', 'pixel-caffeine' ) );
210
+
211
+ return true;
212
+ }
213
+
214
+ catch ( Exception $e ) {
215
+ AEPC_Admin_Notices::add_notice( 'error', 'main', $e->getMessage() );
216
+ return false;
217
+ }
218
+ }
219
+
220
+ /**
221
+ * Delete conversion event
222
+ */
223
+ public static function delete_event() {
224
+ $screen = get_current_screen();
225
+
226
+ if (
227
+ empty( $screen->id )
228
+ || AEPC_Admin_Menu::$hook_page != $screen->id
229
+ || ! current_user_can( 'manage_ads' )
230
+ || empty( $_GET['_wpnonce'] )
231
+ || ! wp_verify_nonce( $_GET['_wpnonce'], 'delete_tracking_conversion' )
232
+ ) {
233
+ return;
234
+ }
235
+
236
+ // Delete event
237
+ AEPC_Admin::delete_event( intval( $_GET['id'] ) );
238
+
239
+ // Send success notice
240
+ AEPC_Admin_Notices::add_notice( 'success', 'main', __( 'Configuration removed properly!!', 'pixel-caffeine' ) );
241
+
242
+ // Redirect to the same page
243
+ self::redirect_to( remove_query_arg( array( 'id', '_wpnonce' ) ) );
244
+ }
245
+
246
+ /**
247
+ * CA MAnagement
248
+ */
249
+
250
+ /**
251
+ * Add new custom audience
252
+ *
253
+ * @return bool
254
+ */
255
+ public static function save_audience() {
256
+ if (
257
+ empty( $_POST['action'] )
258
+ || $_POST['action'] != 'aepc_add_custom_audience'
259
+ || ! current_user_can( 'manage_ads' )
260
+ || empty( $_POST['_wpnonce'] )
261
+ || ! wp_verify_nonce( $_POST['_wpnonce'], 'add_custom_audience' )
262
+ ) {
263
+ return false;
264
+ }
265
+
266
+ try {
267
+
268
+ // Save custom audience
269
+ AEPC_Admin_CA_Manager::save( wp_unslash( $_POST ) );
270
+
271
+ // Send success notice
272
+ AEPC_Admin_Notices::add_notice( 'success', 'main', sprintf( __( '<strong>New custom audience added!</strong> You will find this new custom audience also in %syour facebook ad account%s.', 'pixel-caffeine' ), '<a href="https://www.facebook.com/ads/manager/audiences/manage/?act=' . AEPC_Admin::$api->get_account_id() . '" target="_blank">', '</a>' ) );
273
+
274
+ // If all good, redirect in the same page
275
+ if ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) {
276
+ self::redirect_to( remove_query_arg( 'paged' ) );
277
+ }
278
+
279
+ return true;
280
+ }
281
+
282
+ catch ( Exception $e ) {
283
+ AEPC_Admin_Notices::add_notice( 'error', 'main', $e->getMessage() );
284
+ }
285
+
286
+ return false;
287
+ }
288
+
289
+ /**
290
+ * Edit a conversion event
291
+ *
292
+ * @return bool
293
+ */
294
+ public static function edit_audience() {
295
+ if (
296
+ ! isset( $_POST['ca_id'] )
297
+ || empty( $_POST['action'] )
298
+ || $_POST['action'] != 'aepc_edit_custom_audience'
299
+ || ! current_user_can( 'manage_ads' )
300
+ || empty( $_POST['_wpnonce'] )
301
+ || ! wp_verify_nonce( $_POST['_wpnonce'], 'edit_custom_audience' )
302
+ ) {
303
+ return false;
304
+ }
305
+
306
+ try {
307
+
308
+ // Edit event
309
+ AEPC_Admin_CA_Manager::edit( wp_unslash( $_POST ) );
310
+
311
+ // Send success notice
312
+ AEPC_Admin_Notices::add_notice( 'success', 'main', __( 'Custom audience changed successfully.', 'pixel-caffeine' ) );
313
+
314
+ // Redirect to the same page
315
+ if ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) {
316
+ self::redirect_to( add_query_arg( null, null ) );
317
+ }
318
+
319
+ return true;
320
+ }
321
+
322
+ catch ( Exception $e ) {
323
+ AEPC_Admin_Notices::add_notice( 'error', 'main', $e->getMessage() );
324
+ }
325
+
326
+ return false;
327
+ }
328
+
329
+ /**
330
+ * Duplicate custom audience event
331
+ *
332
+ * @return bool
333
+ */
334
+ public static function duplicate_audience() {
335
+ if (
336
+ empty( $_POST['action'] )
337
+ || 'aepc_duplicate_custom_audience' != $_POST['action']
338
+ || ! current_user_can( 'manage_ads' )
339
+ || empty( $_POST['_wpnonce'] )
340
+ || ! wp_verify_nonce( $_POST['_wpnonce'], 'duplicate_custom_audience' )
341
+ ) {
342
+ return false;
343
+ }
344
+
345
+ try {
346
+
347
+ // Delete event
348
+ AEPC_Admin_CA_Manager::duplicate( wp_unslash( $_POST ) );
349
+
350
+ // Send success notice
351
+ AEPC_Admin_Notices::add_notice( 'success', 'main', __( '<strong>Custom audience duplicated</strong> It is duplicated also on your facebook Ad account.', 'pixel-caffeine' ) );
352
+
353
+ // Redirect to the same page
354
+ if ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) {
355
+ self::redirect_to( add_query_arg( null, null ) );
356
+ }
357
+
358
+ return true;
359
+ }
360
+
361
+ catch ( Exception $e ) {
362
+ AEPC_Admin_Notices::add_notice( 'error', 'main', $e->getMessage() );
363
+
364
+ return false;
365
+ }
366
+ }
367
+
368
+ /**
369
+ * Delete custom audience event
370
+ */
371
+ public static function delete_audience() {
372
+ $screen = get_current_screen();
373
+
374
+ if (
375
+ empty( $screen->id )
376
+ || AEPC_Admin_Menu::$hook_page != $screen->id
377
+ || ! current_user_can( 'manage_ads' )
378
+ || empty( $_GET['_wpnonce'] )
379
+ || ! wp_verify_nonce( $_GET['_wpnonce'], 'delete_custom_audience' )
380
+ || empty( $_GET['id'] )
381
+ ) {
382
+ return;
383
+ }
384
+
385
+ try {
386
+ // Delete event
387
+ AEPC_Admin_CA_Manager::delete( intval( $_GET['id'] ) );
388
+
389
+ // Send success notice
390
+ AEPC_Admin_Notices::add_notice( 'success', 'main', __( '<strong>Custom audience removed</strong> It was removed also on your facebook Ad account.', 'pixel-caffeine' ) );
391
+ }
392
+
393
+ catch ( Exception $e ) {
394
+ AEPC_Admin_Notices::add_notice( 'error', 'main', '<strong>' . __( 'Unable to delete', 'pixel-caffeine' ) . '</strong> ' . $e->getMessage() );
395
+ }
396
+
397
+ // Redirect to the same page
398
+ self::redirect_to( remove_query_arg( array( 'id', '_wpnonce' ) ) );
399
+ }
400
+
401
+ /**
402
+ * Used on requests, to redirect to a page after endi request
403
+ *
404
+ * @param $to
405
+ */
406
+ protected static function redirect_to( $to ) {
407
+ if ( defined( 'DOING_AJAX' ) && DOING_AJAX || isset( $_GET['ajax'] ) && 1 == $_GET['ajax'] ) {
408
+ wp_send_json_success();
409
+ }
410
+
411
+ wp_redirect( $to );
412
+ exit();
413
+ }
414
+
415
+ }
416
+
417
+ AEPC_Admin_Handlers::init();
includes/admin/class-aepc-admin-install.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit; // Exit if accessed directly.
4
+ }
5
+
6
+ /**
7
+ * @class AEPC_Admin_Install
8
+ */
9
+ class AEPC_Admin_Install {
10
+
11
+ const AEPC_DB_VERSION = 201610061600;
12
+
13
+ /**
14
+ * AEPC_Admin_Install Constructor.
15
+ */
16
+ public static function init() {
17
+ if ( get_option( 'aepc_db_version' ) < self::AEPC_DB_VERSION ) {
18
+ add_action( 'plugins_loaded', array( __CLASS__, 'install' ) );
19
+ }
20
+ }
21
+
22
+ /**
23
+ * Add the capability manage_ads for administrators
24
+ */
25
+ public static function add_role_capability() {
26
+ $role = get_role( 'administrator' );
27
+ $role->add_cap( 'manage_ads' );
28
+ }
29
+
30
+ /**
31
+ * Add the table for custom audiences
32
+ */
33
+ public static function install() {
34
+ global $wpdb;
35
+
36
+ $charset_collate = $wpdb->get_charset_collate();
37
+
38
+ $sql = "CREATE TABLE {$wpdb->prefix}aepc_custom_audiences (
39
+ ID mediumint(9) NOT NULL AUTO_INCREMENT,
40
+ name varchar(255) NOT NULL,
41
+ description longtext NULL,
42
+ date datetime NOT NULL default '0000-00-00 00:00:00',
43
+ date_gmt datetime NOT NULL default '0000-00-00 00:00:00',
44
+ modified_date datetime NOT NULL default '0000-00-00 00:00:00',
45
+ modified_date_gmt datetime NOT NULL default '0000-00-00 00:00:00',
46
+ retention tinyint(1) UNSIGNED DEFAULT 14 NOT NULL,
47
+ rule longtext NOT NULL,
48
+ fb_id varchar(15) NOT NULL DEFAULT 0,
49
+ approximate_count bigint(20) NOT NULL DEFAULT 0,
50
+ UNIQUE KEY ID (ID)
51
+ ) $charset_collate;";
52
+
53
+ require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
54
+ dbDelta( $sql );
55
+
56
+ // Add capability
57
+ self::add_role_capability();
58
+
59
+ // Save version on database
60
+ update_option( 'aepc_db_version', self::AEPC_DB_VERSION );
61
+ }
62
+
63
+ }
64
+
65
+ AEPC_Admin_Install::init();
includes/admin/class-aepc-admin-menu.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit; // Exit if accessed directly.
4
+ }
5
+
6
+ /**
7
+ * Main class for admin pages
8
+ *
9
+ * @class AEPC_Admin_Menu
10
+ */
11
+ class AEPC_Admin_Menu {
12
+
13
+ public static $page_id = 'aepc-settings';
14
+ public static $hook_page = '';
15
+
16
+ /**
17
+ * AEPC_Admin_Menu Constructor.
18
+ */
19
+ public static function init() {
20
+ add_action( 'admin_menu', array( __CLASS__, 'add_menu' ) );
21
+ }
22
+
23
+ /**
24
+ * Define here the page titles
25
+ *
26
+ * @return array
27
+ */
28
+ public static function get_page_titles() {
29
+ return array(
30
+ 'dashboard' => _x( 'Dashboard', 'page title', 'pixel-caffeine' ),
31
+ 'custom-audiences' => _x( 'Custom Audiences', 'page title', 'pixel-caffeine' ),
32
+ 'conversions' => _x( 'Conversions/Events', 'page title', 'pixel-caffeine' ),
33
+ 'general-settings' => _x( 'General Settings', 'page title', 'pixel-caffeine' ),
34
+ );
35
+ }
36
+
37
+ /**
38
+ * Add the menu page
39
+ */
40
+ public static function add_menu() {
41
+
42
+ // Titles
43
+ $titles = self::get_page_titles();
44
+ $page = isset( $_GET['tab'] ) ? $_GET['tab'] : 'dashboard';
45
+
46
+ self::$hook_page = add_menu_page(
47
+ AEPC_Admin::PLUGIN_NAME . ' - ' . $titles[ $page ],
48
+ AEPC_Admin::PLUGIN_NAME,
49
+ 'manage_ads',
50
+ self::$page_id,
51
+ array( __CLASS__, 'view' ),
52
+ null
53
+ );
54
+ }
55
+
56
+ /**
57
+ * Show template for the dashboard
58
+ */
59
+ public static function view() {
60
+ $page = isset( $_GET['tab'] ) ? $_GET['tab'] : 'dashboard';
61
+ AEPC_Admin::get_page( $page )->output();
62
+ }
63
+ }
64
+
65
+ AEPC_Admin_Menu::init();
includes/admin/class-aepc-admin-notices.php ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit; // Exit if accessed directly.
4
+ }
5
+
6
+ /**
7
+ * @class AEPC_Admin_Notices
8
+ */
9
+ class AEPC_Admin_Notices {
10
+
11
+ /** @var array Save all notices occur in the admin pages */
12
+ protected static $notices = array(
13
+ 'error' => array(),
14
+ 'success' => array(),
15
+ 'warning' => array(),
16
+ 'info' => array()
17
+ );
18
+
19
+ /**
20
+ * Add useful hooks for initialization
21
+ */
22
+ public static function init() {
23
+ add_action( 'admin_init', array( __CLASS__, 'get_notices_from_user_meta' ) );
24
+ add_action( 'shutdown', array( __CLASS__, 'save_notices_in_user_meta' ) );
25
+ }
26
+
27
+ /**
28
+ * Add the notice, by $type and $id
29
+ *
30
+ * @param $type
31
+ * @param $id
32
+ * @param $message
33
+ */
34
+ public static function add_notice( $type, $id, $message ) {
35
+ if ( ! isset( self::$notices[ $type ][ $id ] ) ) {
36
+ self::$notices[ $type ][ $id ] = array();
37
+ }
38
+
39
+ // Add the notice
40
+ self::$notices[ $type ][ $id ][] = $message;
41
+ }
42
+
43
+ /**
44
+ * Check if there is some error for the type and ID
45
+ *
46
+ * @param string $type
47
+ * @param string $id
48
+ *
49
+ * @return bool
50
+ */
51
+ public static function has_notice( $type = '', $id = '' ) {
52
+ if ( 'any' === $type ) {
53
+ $type = '';
54
+ }
55
+
56
+ // Check for all
57
+ if ( empty( $type ) && empty( $id ) ) {
58
+ foreach( array_keys( self::$notices ) as $type ) {
59
+ if ( ! empty( self::$notices[ $type ] ) ) {
60
+ return true;
61
+ }
62
+ }
63
+ }
64
+
65
+ // Check for ID of any type
66
+ elseif ( empty( $type ) && ! empty( $id ) ) {
67
+ foreach( array_keys( self::$notices ) as $type ) {
68
+ if ( ! empty( self::$notices[ $type ][ $id ] ) ) {
69
+ return true;
70
+ }
71
+ }
72
+ }
73
+
74
+ // Check any ID of specific type
75
+ elseif ( ! empty( $type ) && empty( $id ) ) {
76
+ return ! empty( self::$notices[ $type ] );
77
+ }
78
+
79
+ // Check specific ID of specific type
80
+ elseif ( ! empty( $type ) && ! empty( $id ) ) {
81
+ return ! empty( self::$notices[ $type ][ $id ] );
82
+ }
83
+
84
+ return false;
85
+ }
86
+
87
+ /**
88
+ * Return the notices, by $type and $id
89
+ *
90
+ * @param string $type
91
+ * @param string $id
92
+ *
93
+ * @return array|mixed
94
+ */
95
+ public static function get_notices( $type = '', $id = '' ) {
96
+ if ( 'any' === $type ) {
97
+ $type = '';
98
+ }
99
+
100
+ // Init array to return with all empty keys
101
+ $notices = array_map( '__return_empty_array', array_flip( array_keys( self::$notices ) ) );
102
+
103
+ // Check for all
104
+ if ( empty( $type ) && empty( $id ) ) {
105
+ foreach( array_keys( self::$notices ) as $type ) {
106
+ if ( ! empty( self::$notices[ $type ] ) ) {
107
+ $notices[ $type ] = self::$notices[ $type ];
108
+ }
109
+ }
110
+ }
111
+
112
+ // Check for ID of any type
113
+ elseif ( empty( $type ) && ! empty( $id ) ) {
114
+ foreach( array_keys( self::$notices ) as $type ) {
115
+ if ( ! empty( self::$notices[ $type ][ $id ] ) ) {
116
+ $notices[ $type ][ $id ] = self::$notices[ $type ][ $id ];
117
+ }
118
+ }
119
+ }
120
+
121
+ // Check any ID of specific type
122
+ elseif ( ! empty( $type ) && empty( $id ) && ! empty( self::$notices[ $type ] ) ) {
123
+ return self::$notices[ $type ];
124
+ }
125
+
126
+ // Check specific ID of specific type
127
+ elseif ( ! empty( $type ) && ! empty( $id ) && ! empty( self::$notices[ $type ][ $id ] ) ) {
128
+ return self::$notices[ $type ][ $id ];
129
+ }
130
+
131
+ return array_filter( $notices );
132
+ }
133
+
134
+ /**
135
+ * Remove the notices, by defining $type and $id, both optional
136
+ *
137
+ * @param string $type
138
+ * @param string $id
139
+ */
140
+ public static function remove_notices( $type = '', $id = '' ) {
141
+ if ( 'any' === $type ) {
142
+ $type = '';
143
+ }
144
+
145
+ // Check for all
146
+ if ( empty( $type ) && empty( $id ) ) {
147
+ self::$notices = array_map( '__return_empty_array', self::$notices );
148
+ }
149
+
150
+ // Check for ID of any type
151
+ elseif ( empty( $type ) && ! empty( $id ) ) {
152
+ foreach( array_keys( self::$notices ) as $type ) {
153
+ unset( self::$notices[ $type ][ $id ] );
154
+ }
155
+ }
156
+
157
+ // Check any ID of specific type
158
+ elseif ( ! empty( $type ) && empty( $id ) && ! empty( self::$notices[ $type ] ) ) {
159
+ self::$notices[ $type ] = array();
160
+ }
161
+
162
+ // Check specific ID of specific type
163
+ elseif ( ! empty( $type ) && ! empty( $id ) && ! empty( self::$notices[ $type ][ $id ] ) ) {
164
+ unset( self::$notices[ $type ][ $id ] );
165
+ }
166
+ }
167
+
168
+ /**
169
+ * Get the notices from user meta, saved on php shutdown
170
+ */
171
+ public static function get_notices_from_user_meta() {
172
+ if ( $saved_notices = get_user_meta( get_current_user_id(), 'aepc_admin_notices', true ) ) {
173
+ self::$notices = $saved_notices;
174
+ delete_user_meta( get_current_user_id(), 'aepc_admin_notices' );
175
+ }
176
+ }
177
+
178
+ /**
179
+ * This method is triggered on php shutdown, because if some notice remains, it will be shown on frontend
180
+ * as soon as possible
181
+ */
182
+ public static function save_notices_in_user_meta() {
183
+ if ( ! empty( self::$notices ) ) {
184
+ update_user_meta( get_current_user_id(), 'aepc_admin_notices', self::$notices );
185
+ }
186
+ }
187
+
188
+ public static function dismiss_notice( $type, $id ) {
189
+
190
+ }
191
+
192
+ }
193
+
194
+ AEPC_Admin_Notices::init();
includes/admin/class-aepc-admin-view.php ADDED
@@ -0,0 +1,999 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit; // Exit if accessed directly.
4
+ }
5
+
6
+ /**
7
+ * @class AEPC_Admin_General
8
+ */
9
+ class AEPC_Admin_View {
10
+
11
+ /** @var string The slug of page */
12
+ public $id = null;
13
+
14
+ /** @var array All settings arguments of page */
15
+ public $settings = array();
16
+
17
+ /** @var array All script templates register that must be printed out with footer scripts */
18
+ protected $script_templates = array();
19
+
20
+ /**
21
+ * AEPC_Admin_View constructor.
22
+ *
23
+ * @param $id
24
+ */
25
+ public function __construct( $id ) {
26
+ $this->id = $id;
27
+
28
+ // Get settings from file
29
+ $this->get_settings();
30
+
31
+ // Add hooks
32
+ add_action( 'admin_print_footer_scripts', array( $this, 'print_script_templates' ) );
33
+ }
34
+
35
+ /**
36
+ * Return the page title
37
+ *
38
+ * @return string
39
+ */
40
+ public function get_title() {
41
+ $titles = AEPC_Admin_Menu::get_page_titles();
42
+ return AEPC_Admin::PLUGIN_NAME . ' - ' . $titles[ $this->id ];
43
+ }
44
+
45
+ /**
46
+ * Print out the page title
47
+ */
48
+ public function the_title() {
49
+ echo self::get_title();
50
+ }
51
+
52
+ /**
53
+ * Get settings of tab
54
+ */
55
+ public function get_settings() {
56
+ if ( ! empty( $this->settings ) ) {
57
+ return $this->settings;
58
+ }
59
+
60
+ if ( file_exists( dirname(__FILE__) . '/settings/' . $this->id . '.php' ) ) {
61
+ $this->settings = include_once( 'settings/' . $this->id . '.php' );
62
+ }
63
+
64
+ return $this->settings;
65
+ }
66
+
67
+ /**
68
+ * AEPC_Admin_General Constructor.
69
+ */
70
+ public function output() {
71
+ ob_start();
72
+ AEPC_Admin::get_template( $this->id . '.php', array( 'page' => $this ) );
73
+ $output = ob_get_clean();
74
+
75
+ if ( empty( $output ) ) {
76
+ wp_redirect( add_query_arg( 'page', AEPC_Admin_Menu::$page_id, admin_url() ) );
77
+ exit();
78
+ }
79
+
80
+ echo $output;
81
+ }
82
+
83
+ // HELPERS
84
+
85
+ /**
86
+ * Return the proper string for field name for the option
87
+ *
88
+ * @param $option_id
89
+ *
90
+ * @return string
91
+ */
92
+ public function get_field_name( $option_id ) {
93
+ return $option_id;
94
+ }
95
+
96
+ /**
97
+ * Print the proper string for field name for the option
98
+ *
99
+ * @param $option_id
100
+ *
101
+ * @return string
102
+ */
103
+ public function field_name( $option_id ) {
104
+ echo esc_attr( $this->get_field_name( $option_id ) );
105
+ }
106
+
107
+ /**
108
+ * Return the proper string for field id for the option
109
+ *
110
+ * @param $option_id
111
+ *
112
+ * @return string
113
+ */
114
+ public function get_field_id( $option_id ) {
115
+ return $option_id;
116
+ }
117
+
118
+ /**
119
+ * Print the proper string for field id for the option
120
+ *
121
+ * @param $option_id
122
+ *
123
+ * @return string
124
+ */
125
+ public function field_id( $option_id ) {
126
+ echo esc_attr( $this->get_field_id( $option_id ) );
127
+ }
128
+
129
+ /**
130
+ * Print out the classes for the option, by checking if 'active' class necessary and also has-error.
131
+ *
132
+ * Usually printed out on .form-group element, that wraps the field elements and not only input element
133
+ *
134
+ * @param string $option_id
135
+ * @param array|string $classes
136
+ */
137
+ public function field_class( $option_id, $classes = '' ) {
138
+ if ( ! is_array( $classes ) ) {
139
+ $classes = array( $classes );
140
+ }
141
+
142
+ // Add active class
143
+ if ( '' !== $this->get_value( $option_id ) && ! $this->has_error( $option_id ) ) {
144
+ $classes[] = 'active';
145
+ }
146
+
147
+ // Add has error class
148
+ if ( $this->has_error( $option_id ) ) {
149
+ $classes[] = 'has-error';
150
+ }
151
+
152
+ // Remove some empty value
153
+ $classes = array_filter( $classes );
154
+
155
+ // Print out only if there is some class to print
156
+ if ( ! empty( $classes ) ) {
157
+ echo ' ' . implode( ' ', $classes );
158
+ }
159
+
160
+ }
161
+
162
+ /**
163
+ * Print 'has-error' class if any error occurred in the field
164
+ *
165
+ * @param $option_id
166
+ *
167
+ * @return bool
168
+ */
169
+ public function has_error( $option_id ) {
170
+ return AEPC_Admin_Notices::has_notice( 'error', $option_id );
171
+ }
172
+
173
+ /**
174
+ * Print the error of field
175
+ *
176
+ * @param $option_id
177
+ * @param string $before
178
+ * @param string $after
179
+ * @param string $separator
180
+ */
181
+ public function print_field_error( $option_id, $before = '', $after = '', $separator = ' ' ) {
182
+ if ( ! AEPC_Admin_Notices::has_notice( 'error', $option_id ) ) {
183
+ return;
184
+ }
185
+
186
+ echo $before . implode( $separator, AEPC_Admin_Notices::get_notices( 'error', $option_id ) ) . $after;
187
+
188
+ // Reset error messages
189
+ AEPC_Admin_Notices::remove_notices( 'error', $option_id );
190
+ }
191
+
192
+ /**
193
+ * Print out the main notices of page
194
+ */
195
+ public function print_notices() {
196
+ $notices = AEPC_Admin_Notices::get_notices( 'any', 'main' );
197
+
198
+ foreach ( $notices as $notice_type => $ids ) {
199
+ foreach ( $ids as $message_id => $messages ) {
200
+ foreach ( $messages as $message ) {
201
+ $this->get_template_part( 'notices/' . $notice_type, array( 'message' => $message ) );
202
+ }
203
+ }
204
+ }
205
+
206
+ // Reset error messages
207
+ AEPC_Admin_Notices::remove_notices( 'any', 'main' );
208
+ }
209
+
210
+ /**
211
+ * Print a notice defined on fly by parameters
212
+ *
213
+ * @param $notice_type
214
+ * @param $message
215
+ */
216
+ public function print_notice( $notice_type, $message ) {
217
+ $this->get_template_part( 'notices/' . $notice_type, array( 'message' => $message ) );
218
+ }
219
+
220
+ /**
221
+ * Return the value for option from database. If not exists, return the default one.
222
+ *
223
+ * @param $option_id
224
+ *
225
+ * @return string
226
+ */
227
+ public function get_value( $option_id ) {
228
+ if ( ! isset( $this->settings[ $option_id ] ) ) {
229
+ return '';
230
+ }
231
+
232
+ if ( isset( $_POST[ self::get_field_name( $option_id ) ] ) && $this->has_error( $option_id ) ) {
233
+ $value = $_POST[ self::get_field_name( $option_id ) ];
234
+
235
+ } else {
236
+ $value = get_option( $option_id, $this->settings[ $option_id ]['default'] );
237
+
238
+ if ( is_array( $value ) ) {
239
+ $value = implode( ',', $value );
240
+ }
241
+ }
242
+
243
+ return (string) $value;
244
+ }
245
+
246
+ /**
247
+ * Return a field value if it exists in post request, used for the add/edit forms
248
+ *
249
+ * @param $field
250
+ * @param string $default
251
+ *
252
+ * @return string|array
253
+ */
254
+ public function get_field_value( $field, $default = '' ) {
255
+ if ( empty( $_POST ) ) {
256
+ return $default;
257
+ }
258
+
259
+ if ( isset( $_POST[ $field ] ) ) {
260
+ $value = $_POST[ $field ];
261
+ } else {
262
+ $value = 'no';
263
+ }
264
+
265
+ // If ca_rule, return a specific structure
266
+ if ( 'ca_rule' == $field ) {
267
+
268
+ if ( ! is_array( $value ) || empty( $value ) ) {
269
+ $value = array();
270
+ }
271
+
272
+ foreach ( $value as $k => $v ) {
273
+ if ( ! isset( $value[ $v['main_condition'] ] ) ) {
274
+ $value[ $v['main_condition'] ] = array();
275
+ }
276
+
277
+ $value[ $v['main_condition'] ][] = $v;
278
+ unset( $value[ $k ] );
279
+ }
280
+ }
281
+
282
+ return $value;
283
+ }
284
+
285
+ /**
286
+ * Print the HTML formatted list of options for a select view
287
+ *
288
+ * @param $option_id
289
+ * @param mixed $selected
290
+ */
291
+ public function select_options_of( $option_id, $selected = false ) {
292
+ if ( ! isset( $this->settings[ $option_id ]['options'] ) ) {
293
+ return;
294
+ }
295
+
296
+ foreach ( $this->settings[ $option_id ]['options'] as $value => $label ) {
297
+ ?><option value="<?php echo esc_attr( $value ) ?>"<?php selected( $value, $selected ) ?>><?php echo esc_html( $label ) ?></option><?php
298
+ }
299
+ }
300
+
301
+ /**
302
+ * Return the current tab
303
+ */
304
+ public function get_current_tab() {
305
+ return isset( $_GET['tab'] ) ? $_GET['tab'] : 'dashboard';
306
+ }
307
+
308
+ /**
309
+ * Load a template part
310
+ *
311
+ * @param $part
312
+ * @param array $args
313
+ */
314
+ public function get_template_part( $part, $args = array() ) {
315
+ ob_start();
316
+ AEPC_Admin::get_template( 'parts/' . $part . '.php', wp_parse_args( $args, array( 'page' => $this ) ) );
317
+ echo ob_get_clean();
318
+ }
319
+
320
+ /**
321
+ * Load a template part
322
+ *
323
+ * @param $part
324
+ * @param array $args
325
+ * @param bool $echo
326
+ *
327
+ * @return mixed|string
328
+ */
329
+ public function get_form_fields( $part, $args = array(), $echo = true ) {
330
+ $args = wp_parse_args( $args, array( 'page' => $this, 'action' => 'add' ) );
331
+
332
+ ob_start();
333
+ AEPC_Admin::get_template( 'parts/forms/' . $part . '.php', $args );
334
+ $output = ob_get_clean();
335
+
336
+ if ( 'add' == $args['action'] ) {
337
+ $output = preg_replace( '/#>\n*\s*\t*.*\n*\s*\t*<#/m', '', $output );
338
+ $output = preg_replace( '/<#\n*\s*\t*.*\n*\s*\t*#>/m', '', $output );
339
+ $output = preg_replace( '/\{\{? index \}?\}?/', '0', $output );
340
+ $output = preg_replace( '/\{\{?\{? data.pass_advanced_params \}?\}?\}?/', 'no', $output );
341
+ $output = preg_replace( '/\{\{?\{?[^}]*\}\}?\}?/', '', $output );
342
+ }
343
+
344
+ if ( $echo ) {
345
+ echo $output;
346
+ }
347
+
348
+ return $output;
349
+ }
350
+
351
+ /**
352
+ * Return an array with all standard events and with all fields the user can define for each standard event
353
+ */
354
+ public function get_standard_events() {
355
+ return AEPC_Track::$standard_events;
356
+ }
357
+
358
+ /**
359
+ * Return the content_type values
360
+ */
361
+ public function get_content_types() {
362
+ $content_types = array();
363
+
364
+ foreach ( get_post_types( array( 'public' => true ), 'objects' ) as $post_type ) {
365
+ $content_types[ $post_type->name ] = $post_type->labels->singular_name;
366
+ }
367
+
368
+ return $content_types;
369
+ }
370
+
371
+ /**
372
+ * Return the URL of current view for actions and others
373
+ *
374
+ * @param array $query_str Query string parameters to add to the url
375
+ *
376
+ * @return string
377
+ */
378
+ public function get_view_url( $query_str = array() ) {
379
+ return add_query_arg( wp_parse_args( $query_str, array(
380
+ 'page' => AEPC_Admin_Menu::$page_id,
381
+ 'tab' => $this->id
382
+ ) ), admin_url( 'admin.php' ) );
383
+ }
384
+
385
+ public function get_pixel_status() {
386
+ $pixel_id = PixelCaffeine()->get_pixel_id();
387
+ $status = '<em>' . __( 'No pixel set', 'pixel-caffeine' ) . '</em>';
388
+
389
+ if ( ! empty( $pixel_id ) ) {
390
+ $status = $pixel_id;
391
+
392
+ if ( AEPC_Admin::$api->is_logged_in() ) {
393
+ $status .= ' - ' . __( 'Automatic facebook connection', 'pixel-caffeine' );
394
+ } else {
395
+ $status .= ' - ' . __( 'Manual facebook connection', 'pixel-caffeine' );
396
+ }
397
+ }
398
+
399
+ return $status;
400
+ }
401
+
402
+ /**
403
+ * Return an array with three arguments for code showing of fbq javascript function
404
+ *
405
+ * @param array $track The array with all event data
406
+ *
407
+ * @return array
408
+ */
409
+ public function get_track_code( $track ) {
410
+ $track = wp_parse_args( $track, array(
411
+ 'event' => '',
412
+ 'params' => array(),
413
+ 'custom_params' => array()
414
+ ) );
415
+
416
+ $code = AEPC_Track::track( $track['event'], $track['params'], $track['custom_params'] );
417
+ $code = preg_replace( '/aepc_extend_args\((\{[^\{]*\})\)/', '$1', $code );
418
+ $code = str_replace( ', {}', '', $code );
419
+
420
+ return $code;
421
+ }
422
+
423
+ /**
424
+ * Get the complete list of supported store plugins
425
+ *
426
+ * @return array
427
+ */
428
+ public function get_supported_store() {
429
+ return array(
430
+ 'woocommerce' => array(
431
+ 'plugin_name' => __( 'WooCommerce', 'pixel-caffeine' ),
432
+ 'file' => 'woocommerce/woocommerce.php',
433
+ 'exists' => function_exists( 'WC' )
434
+ )
435
+ );
436
+ }
437
+
438
+ /**
439
+ * Detect if a store plugin is detected
440
+ *
441
+ * @param string $store If empty, check for all store supported
442
+ *
443
+ * @return bool
444
+ */
445
+ public function is_store_detected( $store = '' ) {
446
+ $stores = $this->get_supported_store();
447
+
448
+ if ( ! empty( $store ) ) {
449
+ return isset( $stores[ $store ] ) && $stores[ $store ]['exists'] ? $store : false;
450
+ }
451
+
452
+ return in_array( true, wp_list_pluck( $stores, 'exists' ) ) ? array_search( true, $stores ) : false;
453
+ }
454
+
455
+ /**
456
+ * Return the store detected on site
457
+ *
458
+ * @return bool|null
459
+ */
460
+ public function get_store_detected() {
461
+ if ( $store = $this->is_store_detected() ) {
462
+ return $store;
463
+ }
464
+
465
+ return null;
466
+ }
467
+
468
+ /**
469
+ * Return the label of detected store
470
+ *
471
+ * @return mixed|null
472
+ */
473
+ public function get_store_detected_name() {
474
+ if ( $store = $this->get_store_detected() ) {
475
+ return $this->store_name( $store );
476
+ }
477
+
478
+ return null;
479
+ }
480
+
481
+ /**
482
+ * Return the url for the details of plugin we suggest for the store
483
+ *
484
+ * @param string $store_slug
485
+ *
486
+ * @return string
487
+ */
488
+ public function get_store_plugin_install_link( $store_slug ) {
489
+ return self_admin_url( 'plugin-install.php?tab=plugin-information&amp;plugin=' . $store_slug .
490
+ '&amp;TB_iframe=true&amp;width=772&amp;height=916' );
491
+ }
492
+
493
+ /**
494
+ * Return the url for the details of plugin we suggest for the store
495
+ *
496
+ * @param string $store_slug
497
+ *
498
+ * @return string
499
+ */
500
+ public function get_store_plugin_activate_link( $store_slug ) {
501
+ $stores = $this->get_supported_store();
502
+ $plugin_file = $stores[ $store_slug ]['file'];
503
+
504
+ return wp_nonce_url( 'plugins.php?action=activate&amp;plugin=' . $plugin_file . '&amp;plugin_status=all', 'activate-plugin_' . $plugin_file );
505
+ }
506
+
507
+ /**
508
+ * Return "install" or "active" action with link if user is allowed
509
+ *
510
+ * @param $store_slug
511
+ *
512
+ * @return string|void
513
+ */
514
+ public function store_allowed_action( $store_slug ) {
515
+ $stores = $this->get_supported_store();
516
+ $store = $stores[ $store_slug ];
517
+ $plugin_file = $store['file'];
518
+ $is_installed = file_exists( WP_PLUGIN_DIR . '/' . $plugin_file );
519
+
520
+ if ( $is_installed ) {
521
+ $action = _x( 'active', 'This will be integrated in the statement: "%s the supported plugin "Name"', 'pixel-caffeine' );
522
+
523
+ if ( current_user_can( 'activate_plugins' ) ) {
524
+ $action = '<a href="' . esc_url( $this->get_store_plugin_activate_link( $store_slug ) ) . '" class="edit" aria-label="' . esc_attr( sprintf( __( 'Activate %s', 'pixel-caffeine' ), $store['plugin_name'] ) ) . '">' . $action . '</a>';
525
+ }
526
+ }
527
+
528
+ else {
529
+ $action = _x( 'install', 'This will be integrated in the statement: "%s the supported plugin "Name"', 'pixel-caffeine' );
530
+
531
+ if ( current_user_can( 'install_plugins' ) ) {
532
+ $action = '<a href="' . esc_url( $this->get_store_plugin_install_link( $store_slug ) ) . '" class="thickbox open-plugin-details-modal" aria-label="' . esc_attr( sprintf( __( 'More information about %s', 'pixel-caffeine' ), $store['plugin_name'] ) ) . '" data-title="' . esc_attr( $store['plugin_name'] ) . '">' . $action . '</a>';
533
+ }
534
+ }
535
+
536
+ return $action;
537
+ }
538
+
539
+ public function store_name( $store ) {
540
+ $stores = $this->get_supported_store();
541
+
542
+ return $stores[ $store ]['plugin_name'];
543
+ }
544
+
545
+ public function store_logo( $store ) {
546
+ $stores = $this->get_supported_store();
547
+
548
+ if ( ! empty( $stores[ $store ]['plugin_logo'] ) ) {
549
+ return $stores[ $store ]['plugin_logo'];
550
+ } else {
551
+ return PixelCaffeine()->plugin_url() . '/includes/admin/assets/img/store-logo/' . $store . '.png';
552
+ }
553
+ }
554
+
555
+ public function store_website( $store ) {
556
+ $stores = $this->get_supported_store();
557
+
558
+ if ( ! empty( $stores[ $store ]['plugin_website'] ) ) {
559
+ return $stores[ $store ]['plugin_website'];
560
+ }
561
+
562
+ return null;
563
+ }
564
+
565
+ /**
566
+ * Return the array of conversions paged
567
+ *
568
+ * @param array $args
569
+ *
570
+ * @return array
571
+ */
572
+ public function get_conversions( $args = array() ) {
573
+
574
+ /**
575
+ * Allowed arguments to configure pagination
576
+ *
577
+ * @var int $per_page
578
+ * @var int $paged
579
+ * @var string $order 'newest' or 'oldest'
580
+ */
581
+ extract( wp_parse_args( $args, array(
582
+ 'per_page' => 5,
583
+ 'paged' => isset( $_GET['paged'] ) ? intval( $_GET['paged'] ) : 1,
584
+ 'order' => 'newest'
585
+ ) ) );
586
+
587
+ $conversions = AEPC_Track::get_conversions_events();
588
+
589
+ // reverse order if should be shown from 'newest'
590
+ if ( 'newest' == $order ) {
591
+ $conversions = array_reverse( $conversions, true );
592
+ }
593
+
594
+ $conversions = array_slice( $conversions, ( $per_page * ( $paged - 1 ) ), $per_page, true );
595
+
596
+ return $conversions;
597
+ }
598
+
599
+ /**
600
+ * Return the number of conversion events defined by user
601
+ *
602
+ * @return int
603
+ */
604
+ public function get_conversions_count() {
605
+ return count( AEPC_Track::get_conversions_events() );
606
+ }
607
+
608
+ /**
609
+ * Print out the number of conversion events defined by user, setting also the label
610
+ *
611
+ * @param string $single_label Define %d to replace the number
612
+ * @param string $plural_label Define %d to replace the number
613
+ */
614
+ public function conversions_count( $single_label = '', $plural_label = '' ) {
615
+ $num = self::get_conversions_count();
616
+
617
+ if ( ! empty( $single_label ) && ! empty( $plural_label ) ) {
618
+ $num = sprintf( 1 == $num ? $single_label : $plural_label, $num );
619
+ }
620
+
621
+ echo $num;
622
+ }
623
+
624
+ /**
625
+ * Return the array of conversions paged
626
+ *
627
+ * @param array $args
628
+ *
629
+ * @return AEPC_Admin_CA[]
630
+ */
631
+ public function get_audiences( $args = array() ) {
632
+ $audiences = AEPC_Admin_CA_Manager::get_audiences( wp_parse_args( $args, array(
633
+ 'per_page' => 5,
634
+ 'paged' => isset( $_GET['paged'] ) ? intval( $_GET['paged'] ) : 1,
635
+ 'orderby' => 'date',
636
+ 'order' => 'DESC'
637
+ ) ) );
638
+
639
+ return $audiences;
640
+ }
641
+
642
+ /**
643
+ * Generate a pagination
644
+ *
645
+ * @param $nitems
646
+ * @param array $args
647
+ *
648
+ * @return string
649
+ */
650
+ public function get_pagination( $nitems, $args = array() ) {
651
+
652
+ /**
653
+ * Allowed arguments to configure pagination
654
+ *
655
+ * @var int $per_page
656
+ * @var int $paged
657
+ * @var string $list_wrap
658
+ * @var string $item_wrap
659
+ * @var string $item_wrap_active
660
+ * @var string $item_wrap_disabled
661
+ * @var string $url_param
662
+ * @var int $visible_pages
663
+ */
664
+ extract( wp_parse_args( $args, array(
665
+ 'per_page' => 5,
666
+ 'paged' => ! empty( $_GET['paged'] ) ? intval( $_GET['paged'] ) : 1,
667
+ 'list_wrap' => '<ul>%1$s</ul>',
668
+ 'item_wrap' => '<li>%1$s</li>',
669
+ 'item_wrap_active' => '<li class="active">%1$s</li>',
670
+ 'item_wrap_disabled' => '<li class="disabled">%1$s</li>',
671
+ 'url_param' => 'paged',
672
+ 'visible_pages' => 5
673
+ ) ) );
674
+
675
+ // Init
676
+ $pages_links = array();
677
+
678
+ $last = ceil( $nitems / $per_page );
679
+
680
+ if ( $last == 1 ) {
681
+ return null;
682
+ }
683
+
684
+ $start = ( ( $paged - $visible_pages ) > 0 ) ? $paged - $visible_pages : 1;
685
+ $end = ( ( $paged + $visible_pages ) < $last ) ? $paged + $visible_pages : $last;
686
+
687
+ // Previous link
688
+ if ( $paged > 1 ) {
689
+ $pages_links[] = sprintf( $item_wrap, '<a href="' . $this->get_view_url( 'paged=' . ( $paged - 1 ) ) . '">&laquo;</a>' );
690
+ }
691
+
692
+ // Hide pages out of range
693
+ if ( $start > 1 ) {
694
+ $pages_links[] = sprintf( $item_wrap, '<a href="' . $this->get_view_url( 'paged=1' ) . '">1</a>' );
695
+
696
+ if ( $start > 2 ) {
697
+ $pages_links[] = sprintf( $item_wrap_disabled, '<span>...</span>' );
698
+ }
699
+ }
700
+
701
+ // Get page links
702
+ for ( $i = $start ; $i <= $end; $i++ ) {
703
+ $pages_links[] = sprintf( ( $paged == $i ) ? $item_wrap_active : $item_wrap, '<a href="' . $this->get_view_url( 'paged=' . $i ) . '">' . $i . '</a>' );
704
+ }
705
+
706
+ // Hide pages out of range
707
+ if ( $end < $last ) {
708
+ if ( $end < $last - 1 ) {
709
+ $pages_links[] = sprintf( $item_wrap_disabled, '<span>...</span>' );
710
+ }
711
+
712
+ $pages_links[] = sprintf( $item_wrap, '<a href="' . $this->get_view_url( 'paged=' . $last ) . '">' . $last . '</a>' );
713
+ }
714
+
715
+ // Next link
716
+ if ( $paged < $last ) {
717
+ $pages_links[] = sprintf( $item_wrap, '<a href="' . $this->get_view_url( 'paged=' . ( $paged + 1 ) ) . '">&raquo;</a>' );
718
+ }
719
+
720
+ // Wrap list
721
+ $html = sprintf( $list_wrap, implode( '', $pages_links ) );
722
+
723
+ return $html;
724
+ }
725
+
726
+ /**
727
+ * Return the pagination for conversions table
728
+ *
729
+ * @param array $args
730
+ *
731
+ * @return string
732
+ */
733
+ public function conversions_pagination( $args = array() ) {
734
+ echo $this->get_pagination( count( AEPC_Track::get_conversions_events() ), $args );
735
+ }
736
+
737
+ /**
738
+ * Return the pagination for conversions table
739
+ *
740
+ * @param array $args
741
+ *
742
+ * @return string
743
+ */
744
+ public function audiences_pagination( $args = array() ) {
745
+ echo $this->get_pagination( AEPC_Admin_CA_Manager::get_all_audiences_count(), $args );
746
+ }
747
+
748
+ /**
749
+ * Return the options list for the currency dropdown
750
+ *
751
+ * @param string $selected If some option must be selected
752
+ *
753
+ * @return string
754
+ */
755
+ public function get_currency_dropdown( $selected = '' ) {
756
+ $options = array();
757
+
758
+ foreach ( AEPC_Currency::get_currencies() as $currency => $args ) {
759
+ $selected = $selected === $currency ? ' selected="selected"' : '';
760
+ $options[] = sprintf( '<option value="%s"%s>%s</option>', esc_attr( $currency ), $selected, esc_html( $args->symbol . ' (' . $args->name . ')' ) );
761
+ }
762
+
763
+ return implode( "\n", $options );
764
+ }
765
+
766
+ /**
767
+ * Print each field value for the conversion, useful for edit modal
768
+ *
769
+ * @param $id
770
+ */
771
+ public function conversion_data_values( $id ) {
772
+ $events = AEPC_Track::get_conversions_events();
773
+
774
+ // Nothing if not existing
775
+ if ( empty( $events[ $id ] ) ) {
776
+ return;
777
+ }
778
+
779
+ // Init
780
+ $data = $events[ $id ];
781
+
782
+ // Integrate not existing parameters
783
+ $data = wp_parse_args( $data, array(
784
+ 'name' => '',
785
+ 'trigger' => '',
786
+ 'url' => '',
787
+ 'css' => '',
788
+ 'event' => '',
789
+ 'params' => array(),
790
+ 'custom_params' => array(),
791
+ ) );
792
+
793
+ // Add event ID to add it on the form as input hidden
794
+ $data = array_merge( array( 'event_id' => $id ), $data );
795
+
796
+ if ( AEPC_Track::is( 'custom', $data['event'] ) ) {
797
+ $data['custom_event_name'] = $data['event'];
798
+ $data['event'] = 'CustomEvent';
799
+ } else {
800
+ $data['custom_event_name'] = '';
801
+ }
802
+
803
+ $data['pass_advanced_params'] = empty( $data['params'] ) && empty( $data['custom_params'] ) ? 'no' : 'yes';
804
+
805
+ // Fix arrays
806
+ foreach ( $data['params'] as $key => &$value ) {
807
+ if ( is_array( $value ) ) {
808
+ $value = implode( ', ', $value );
809
+ }
810
+ }
811
+
812
+ // Format custom params
813
+ foreach ( $data['custom_params'] as $key => &$value ) {
814
+ $value = array( 'key' => $key, 'value' => $value );
815
+ }
816
+ $data['custom_params'] = array_values( $data['custom_params'] );
817
+
818
+ // If any custom params, add an empty one useful on frontend
819
+ if ( empty( $data['custom_params'] ) ) {
820
+ $data['custom_params'][] = array( 'key' => '', 'value' => '' );
821
+ }
822
+
823
+ // Generate output
824
+ echo ' data-config="' . esc_attr( json_encode( $data ) ) . '"';
825
+ }
826
+
827
+ /**
828
+ * Print each field value for the custom audience, useful for clone and edit modal
829
+ *
830
+ * @param $id
831
+ */
832
+ public function audience_data_values( $id ) {
833
+ $ca = new AEPC_Admin_CA( $id );
834
+
835
+ if ( ! $ca->exists() ) {
836
+ return;
837
+ }
838
+
839
+ $data = array(
840
+ 'id' => $ca->get_id(),
841
+ 'name' => $ca->get_name(),
842
+ 'description' => $ca->get_description(),
843
+ 'retention' => $ca->get_retention(),
844
+ 'include_url' => $ca->get_rule( 'include_url' ),
845
+ 'exclude_url' => $ca->get_rule( 'exclude_url' ),
846
+ 'include_filters' => $ca->get_filters( 'include' ),
847
+ 'exclude_filters' => $ca->get_filters( 'exclude' ),
848
+ );
849
+
850
+ // Add statement for each rule
851
+ foreach ( array( 'include', 'exclude' ) as $condition ) {
852
+ foreach ( $data[ $condition . '_filters' ] as &$rule ) {
853
+ $rule['statement'] = $ca->get_human_filter( $rule, '<em>', '</em>' );
854
+ }
855
+ }
856
+
857
+ // Generate output
858
+ echo ' data-config="' . esc_attr( json_encode( $data ) ) . '"';
859
+ }
860
+
861
+ /**
862
+ * Print out a list of <option> for the available operators for ca filter
863
+ *
864
+ * @param array $include
865
+ * @param string $selected
866
+ */
867
+ public function ca_operators_list( $include = array(), $selected = '' ) {
868
+ $operators = array(
869
+ 'i_contains' => __( 'Contains', 'pixel-caffeine' ),
870
+ 'i_not_contains' => __( 'Not Contains', 'pixel-caffeine' ),
871
+ 'eq' => __( 'Is', 'pixel-caffeine' ),
872
+ 'neq' => __( 'Not equal', 'pixel-caffeine' ),
873
+ 'lt' => __( 'Less than', 'pixel-caffeine' ),
874
+ 'lte' => __( 'Less than or equal to', 'pixel-caffeine' ),
875
+ 'gt' => __( 'Greater than or equal to', 'pixel-caffeine' ),
876
+ 'gte' => __( 'Greater than or equal to', 'pixel-caffeine' ),
877
+ );
878
+
879
+ // Intersect with parameter if you want specify what return exactly
880
+ if ( ! empty( $include ) ) {
881
+ $operators = array_intersect_key( $operators, array_flip( $include ) );
882
+ }
883
+
884
+ // Print out options
885
+ foreach ( $operators as $operator => $label ) {
886
+ ?><option value="<?php echo esc_attr( $operator ) ?>"<?php selected( $operator, $selected ) ?>><?php echo esc_html( $label ) ?></option><?php
887
+ }
888
+ }
889
+
890
+ /**
891
+ * Print out a list of <option> for the available operators for ca filter
892
+ *
893
+ * @param string $selected
894
+ */
895
+ public function taxonomies_dropdown( $selected = '' ) {
896
+ $taxonomies = get_taxonomies( array(
897
+ 'public' => true
898
+ ), 'objects' );
899
+
900
+ // Print out options
901
+ foreach ( $taxonomies as $taxonomy => $the ) {
902
+
903
+ // system taxes to skip
904
+ $skip_categories = array(
905
+ 'nav_menu',
906
+ 'link_category',
907
+ 'post_format',
908
+ 'post_tag',
909
+ 'product_tag',
910
+ 'product_shipping_class',
911
+ );
912
+
913
+ if( in_array( $the->name, $skip_categories ) )
914
+ continue;
915
+
916
+ ?><option value="tax_<?php echo esc_attr( $taxonomy ) ?>"<?php selected( $taxonomy, $selected ) ?>><?php echo esc_html( $the->labels->singular_name ) ?></option><?php
917
+ }
918
+ }
919
+
920
+ /**
921
+ * Print out a list of <option> for the available operators for ca filter
922
+ *
923
+ * @param string $selected
924
+ */
925
+ public function tags_dropdown( $selected = '' ) {
926
+ $taxonomies = get_taxonomies( array(
927
+ 'public' => true
928
+ ), 'objects' );
929
+
930
+ // Print out options
931
+ foreach ( $taxonomies as $taxonomy => $the ) {
932
+
933
+ // system taxes to skip
934
+ $print_only = array(
935
+ 'post_tag',
936
+ 'product_tag'
937
+ );
938
+
939
+ if( ! in_array( $the->name, $print_only ) )
940
+ continue;
941
+
942
+ ?><option value="tax_<?php echo esc_attr( $taxonomy ) ?>"<?php selected( $taxonomy, $selected ) ?>><?php echo esc_html( $the->labels->singular_name ) ?></option><?php
943
+ }
944
+ }
945
+
946
+ /**
947
+ * Print out a list of <option> for the available post types
948
+ *
949
+ * @param string $selected
950
+ */
951
+ public function post_types_dropdown( $selected = '' ) {
952
+ $post_types = get_post_types( array(
953
+ 'public' => true
954
+ ), 'objects' );
955
+
956
+ // Print out options
957
+ foreach ( $post_types as $post_type => $the ) {
958
+
959
+ // system taxes to skip
960
+ $print_only = array(
961
+ 'attachment',
962
+ 'page'
963
+ );
964
+
965
+ if( in_array( $the->name, $print_only ) )
966
+ continue;
967
+
968
+ ?><option value="<?php echo esc_attr( $post_type ) ?>"<?php selected( $post_type, $selected ) ?>><?php echo esc_html( $the->labels->singular_name ) ?></option><?php
969
+ }
970
+ }
971
+
972
+ /**
973
+ * Register script template that will be printed out with footer scripts
974
+ *
975
+ * @param $id
976
+ * @param $html
977
+ */
978
+ public function register_script_template( $id, $html ) {
979
+ if ( isset( $this->script_templates[ $id ] ) ) {
980
+ return;
981
+ }
982
+
983
+ $this->script_templates[ $id ] = $html;
984
+ }
985
+
986
+ /**
987
+ * Print out the registered script templates with other footer scripts
988
+ */
989
+ public function print_script_templates() {
990
+ foreach ( $this->script_templates as $id => $html ) {
991
+ ?>
992
+
993
+ <script type="text/html" id="tmpl-<?php echo $id ?>"><?php echo $html ?></script>
994
+
995
+ <?php
996
+ }
997
+ }
998
+
999
+ }
includes/admin/class-aepc-admin.php ADDED
@@ -0,0 +1,700 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit; // Exit if accessed directly.
4
+ }
5
+
6
+ /**
7
+ * @class AEPC_Admin
8
+ */
9
+ class AEPC_Admin {
10
+
11
+ /** Plugin name used on menu and page titles */
12
+ const PLUGIN_NAME = 'Pixel Caffeine';
13
+
14
+ /** @var array List of instances for each admin page */
15
+ static $pages = array();
16
+
17
+ /** @var array The full list of settings, divided by pages */
18
+ static $settings = array();
19
+
20
+ /** @var AEPC_Facebook_Adapter */
21
+ static $api = null;
22
+
23
+ /**
24
+ * AEPC_Admin Constructor.
25
+ */
26
+ public static function init() {
27
+ self::includes();
28
+
29
+ add_action( 'admin_init', array( __CLASS__, 'admin_hooks' ) );
30
+ add_action( 'admin_init', array( __CLASS__, 'add_notice_for_php_requirements' ), 99 );
31
+ add_action( 'activated_plugin', array( __CLASS__, 'redirect_to_dashboard' ) );
32
+ add_filter( 'plugin_action_links_' . plugin_basename( AEPC_PLUGIN_FILE ), array( __CLASS__, 'admin_plugin_settings_link' ) );
33
+ add_filter( 'admin_body_class', array( __CLASS__, 'add_body_class' ) );
34
+ }
35
+
36
+ /**
37
+ * Hook actions on admin_init
38
+ */
39
+ public static function admin_hooks() {
40
+ add_action( 'current_screen', array( __CLASS__, 'conditional_includes' ) );
41
+ add_action( 'admin_enqueue_scripts', array( __CLASS__, 'enqueue_assets' ) );
42
+ }
43
+
44
+ /**
45
+ * Include required core files used in admin and on the frontend.
46
+ */
47
+ public static function includes() {
48
+ include_once( 'class-aepc-admin-install.php' );
49
+ include_once( 'class-aepc-admin-menu.php' );
50
+ include_once( 'class-aepc-admin-ca-manager.php' );
51
+ include_once( 'class-aepc-admin-notices.php' );
52
+ include_once( 'class-aepc-admin-handlers.php' );
53
+ include_once( 'class-aepc-admin-view.php' );
54
+ include_once( 'class-aepc-admin-ajax.php' );
55
+
56
+ if ( AEPC_Admin::is_php_supported() ) {
57
+ self::$api = include_once( 'class-aepc-facebook-adapter.php' );
58
+ }
59
+ }
60
+
61
+ /**
62
+ * Include admin files conditionally.
63
+ */
64
+ public static function conditional_includes() {
65
+ if ( ! $screen = get_current_screen() ) {
66
+ return;
67
+ }
68
+
69
+ switch ( $screen->id ) {
70
+ default:
71
+ break;
72
+ }
73
+ }
74
+
75
+ /**
76
+ * Check php requirements
77
+ *
78
+ * @return mixed
79
+ */
80
+ public static function is_php_supported() {
81
+ return version_compare( phpversion(), AEPC_PHP_REQUIREMENT, '>=' );
82
+ }
83
+
84
+ /**
85
+ * Add a notice message that inform the user that can't do anything without facebook connection.
86
+ *
87
+ * This notice will be shown only on CA page
88
+ */
89
+ public static function add_notice_for_php_requirements() {
90
+ if (
91
+ ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX )
92
+ && ! self::is_php_supported()
93
+ && ! empty( $_GET['page'] )
94
+ && AEPC_Admin_Menu::$page_id == $_GET['page']
95
+ && ! empty( $_GET['tab'] ) && 'custom-audiences' == $_GET['tab']
96
+ ) {
97
+ AEPC_Admin_Notices::add_notice( 'error', 'main', sprintf( __( 'You need to update the PHP version of your server from %s to %s to manage custom audiences.', 'pixel-caffeine' ), phpversion(), AEPC_PHP_REQUIREMENT ) );
98
+ }
99
+ }
100
+
101
+ /**
102
+ * Redirect to dashboard on plugin activation, if plugin isn't configured yet
103
+ *
104
+ * @param string $plugin_file_name Plugin path to main plugin file with plugin data.
105
+ */
106
+ public static function redirect_to_dashboard( $plugin_file_name ) {
107
+ if ( plugin_basename( AEPC_PLUGIN_FILE ) === $plugin_file_name && ! self::is_plugin_configured() ) {
108
+ wp_redirect( self::get_page('dashboard')->get_view_url() );
109
+ exit();
110
+ }
111
+ }
112
+
113
+ /**
114
+ * Add settings link into the actions of plugins list
115
+ *
116
+ * @param $links
117
+ *
118
+ * @return mixed
119
+ */
120
+ public static function admin_plugin_settings_link( $links ) {
121
+ $dashboard_link = '<a href="'.esc_url( self::get_page('dashboard')->get_view_url() ).'">'.__('Dashboard', 'pixel-caffeine').'</a>';
122
+ $settings_link = '<a href="'.esc_url( self::get_page('general-settings')->get_view_url() ).'">'.__('Settings', 'pixel-caffeine').'</a>';
123
+ array_unshift( $links, $settings_link );
124
+ array_unshift( $links, $dashboard_link );
125
+
126
+ return $links;
127
+ }
128
+
129
+ /**
130
+ * Return an instance of a single page
131
+ *
132
+ * @param string $page
133
+ *
134
+ * @return AEPC_Admin_View
135
+ */
136
+ public static function get_page( $page = 'dashboard' ) {
137
+ if ( ! isset( self::$pages[ $page ] ) ) {
138
+ self::$pages[ $page ] = new AEPC_Admin_View( $page );
139
+ }
140
+
141
+ return self::$pages[ $page ];
142
+ }
143
+
144
+ /**
145
+ * Get the setting of a tab
146
+ *
147
+ * @param string $tab
148
+ *
149
+ * @return array
150
+ */
151
+ public static function get_settings_of( $tab ) {
152
+ if ( isset( self::$settings[ $tab ] ) ) {
153
+ return self::$settings[ $tab ];
154
+ }
155
+
156
+ $page = self::get_page( $tab );
157
+ self::$settings[ $tab ] = empty( $page ) ? array() : $page->get_settings();
158
+
159
+ return self::$settings[ $tab ];
160
+ }
161
+
162
+ /**
163
+ * Get all id of all fields
164
+ *
165
+ * @param string $tab
166
+ *
167
+ * @return array
168
+ */
169
+ public static function get_setting_ids( $tab = '' ) {
170
+ $settings = self::get_settings_of( $tab );
171
+ return array_keys( $settings );
172
+ }
173
+
174
+ /**
175
+ * Return array of all fields and own defaults
176
+ *
177
+ * @param string $tab
178
+ *
179
+ * @return array
180
+ */
181
+ public static function get_setting_defaults( $tab = '' ) {
182
+ $settings = self::get_settings_of( $tab );
183
+ $defaults = array();
184
+
185
+ foreach ( $settings as $option_id => $option ) {
186
+ $defaults[ $option_id ] = ! empty( $option['default'] ) ? $option['default'] : '';
187
+ }
188
+
189
+ return $defaults;
190
+ }
191
+
192
+ /**
193
+ * Locate admin template file
194
+ *
195
+ * @param string $template The name of template.
196
+ *
197
+ * @return string
198
+ */
199
+ public static function locate_template( $template ) {
200
+ return PixelCaffeine()->plugin_path() . '/includes/admin/templates/' . $template;
201
+ }
202
+
203
+ /**
204
+ * Load the admin template
205
+ *
206
+ * @param $template string The name of template.
207
+ * @param array $args
208
+ */
209
+ public static function get_template( $template, $args = array() ) {
210
+ if ( ! empty( $args ) && is_array( $args ) ) {
211
+ extract( $args );
212
+ }
213
+
214
+ $located = self::locate_template( $template );
215
+
216
+ file_exists( $located ) && include( $located );
217
+ }
218
+
219
+ /**
220
+ * Save settings
221
+ *
222
+ * Only settings of the actual tab will be saved, settings of other tab will be ignored
223
+ * All checkboxes will have 'yes' or 'no' value, instead the value of other types if not passed, will be ignored.
224
+ *
225
+ * This method must be called by a bind method, triggered on some event
226
+ *
227
+ * @param array $post_data
228
+ *
229
+ * @return bool
230
+ * @throws Exception
231
+ */
232
+ public static function save_settings( $post_data ) {
233
+
234
+ // Get settings for page
235
+ $tab_args = self::get_settings_of( $post_data['tab'] );
236
+
237
+ // Save facebook options if defined both account id and pixel id
238
+ if ( ! empty( $post_data['aepc_account_id'] ) && ! empty( $post_data['aepc_pixel_id'] ) ) {
239
+ self::save_facebook_options( $post_data );
240
+
241
+ // Remove two keys, to exclude them from general saving below
242
+ unset( $post_data['aepc_account_id'], $post_data['aepc_pixel_id'] );
243
+ }
244
+
245
+ // Save data
246
+ foreach ( $tab_args as $option_id => $option ) {
247
+ if ( 'checkbox' == $option['type'] ) {
248
+ $post_data[ $option_id ] = isset( $post_data[ $option_id ] ) ? 'yes' : 'no';
249
+ } // Leave unchanged if not existing
250
+ elseif ( ! isset( $post_data[ $option_id ] ) ) {
251
+ continue;
252
+ }
253
+
254
+ // validation
255
+ if ( 'array' == $option['type'] ) {
256
+ if ( ! is_array( $post_data[ $option_id ] ) ) {
257
+ $post_data[ $option_id ] = explode( ',', $post_data[ $option_id ] );
258
+ }
259
+ $value = array_map( 'trim', array_filter( (array) $post_data[ $option_id ] ) );
260
+ } else {
261
+ $value = sanitize_text_field( $post_data[ $option_id ] );
262
+ }
263
+
264
+ // Check pixel id format
265
+ if ( 'aepc_pixel_id' === $option_id && ! AEPC_Track::validate_pixel_id( $post_data[ $option_id ] ) ) {
266
+ AEPC_Admin_Notices::add_notice( 'error', $option_id, __( 'The Pixel ID value must contains only numbers and must be 15 digits length.', 'pixel-caffeine' ) );
267
+ continue;
268
+ }
269
+
270
+ update_option( $option_id, $value );
271
+ }
272
+
273
+ // Throw exception if any error occurred
274
+ if ( AEPC_Admin_Notices::has_notice( 'error' ) ) {
275
+ throw new Exception( __( '<strong>Some option cannot be saved</strong> Please, check errors below.', 'pixel-caffeine' ) );
276
+ }
277
+
278
+ // If at least once the user save the settings, set the plugin configured
279
+ self::set_plugin_configured();
280
+ }
281
+
282
+ /**
283
+ * Save the account and pixel ID defined when the user is logged in facebook
284
+ *
285
+ * @param array $post_data The $_POST data containing aepc_account_id and aepc_pixel_id
286
+ */
287
+ public static function save_facebook_options( $post_data ) {
288
+ $account = json_decode( $post_data['aepc_account_id'] );
289
+ $pixel = json_decode( $post_data['aepc_pixel_id'] );
290
+
291
+ update_option( 'aepc_account_id', $account->id );
292
+ set_transient( 'aepc_account_name_' . $account->id, $account->name, WEEK_IN_SECONDS );
293
+ update_option( 'aepc_pixel_id', $pixel->id );
294
+ set_transient( 'aepc_pixel_name_' . $pixel->id, $pixel->name, WEEK_IN_SECONDS );
295
+
296
+ // Enable pixel
297
+ update_option( 'aepc_enable_pixel', 'yes' );
298
+
299
+ // Set the plugin as configured when the plugin is just installed
300
+ self::set_plugin_configured();
301
+ }
302
+
303
+ /**
304
+ * Convert the input data from request in structured array to save, used on save and edit actions
305
+ *
306
+ * @param array $post_data The raw data from request
307
+ *
308
+ * @return array
309
+ * @throws Exception
310
+ */
311
+ protected static function conversion_post_data_adapter( $post_data = array() ) {
312
+ $raw_data = array(
313
+ 'name' => sanitize_text_field( $post_data['event_name'] ),
314
+ 'trigger' => sanitize_text_field( $post_data['event_trigger_on'] ),
315
+ 'url' => sanitize_text_field( $post_data['event_url'] ),
316
+ 'css' => sanitize_text_field( $post_data['event_css'] ),
317
+ 'event' => sanitize_text_field( $post_data['event_standard_events'] ),
318
+ 'custom_event_name' => sanitize_text_field( $post_data['event_name_custom'] ),
319
+ 'pass_advanced_data' => ! empty( $post_data['event_enable_advanced_data'] ),
320
+ 'value' => sanitize_text_field( $post_data['event_field_value'] ),
321
+ 'currency' => sanitize_text_field( $post_data['event_field_currency'] ),
322
+ 'content_name' => sanitize_text_field( $post_data['event_field_content_name'] ),
323
+ 'content_category' => sanitize_text_field( $post_data['event_field_content_category'] ),
324
+ 'content_ids' => sanitize_text_field( $post_data['event_field_content_ids'] ),
325
+ 'content_type' => sanitize_text_field( $post_data['event_field_content_type'] ),
326
+ 'num_items' => sanitize_text_field( $post_data['event_field_num_items'] ),
327
+ 'search_string' => sanitize_text_field( $post_data['event_field_search_string'] ),
328
+ 'status' => sanitize_text_field( $post_data['event_field_status'] ),
329
+ 'custom_params' => isset( $post_data['event_custom_params'] ) ? $post_data['event_custom_params'] : array()
330
+ );
331
+
332
+ // Throw exception if any error occurred
333
+ if ( AEPC_Admin_Notices::has_notice( 'error' ) ) {
334
+ throw new Exception( __( 'Please, check fields errors below.', 'pixel-caffeine' ) );
335
+ }
336
+
337
+ // Structure data
338
+ $track = array(
339
+ 'name' => $raw_data['name'],
340
+ 'trigger' => $raw_data['trigger'],
341
+ 'url' => $raw_data['url'],
342
+ 'css' => $raw_data['css'],
343
+ 'event' => $raw_data['event'],
344
+ 'params' => array(),
345
+ 'custom_params' => array(),
346
+ );
347
+
348
+ // Get custom name for the event name if it is custom one
349
+ if ( AEPC_Track::is( 'custom', $raw_data['event'] ) ) {
350
+ $track['event'] = $raw_data['custom_event_name'];
351
+ }
352
+
353
+ // data
354
+ if ( $raw_data['pass_advanced_data'] ) {
355
+
356
+ // Set data for standard events
357
+ if ( $fields = AEPC_Track::get_standard_event_fields( $raw_data['event'] ) ) {
358
+
359
+ foreach ( $fields as $field ) {
360
+ if ( 'content_ids' == $field && ! empty( $raw_data[ $field ] ) ) {
361
+ $raw_data[ $field ] = array_map( 'trim', explode( ',', $raw_data[ $field ] ) );
362
+ }
363
+
364
+ if ( ! empty( $raw_data[ $field ] ) ) {
365
+ $track['params'][ $field ] = $raw_data[ $field ];
366
+ }
367
+ }
368
+ }
369
+
370
+ // Add custom parameters
371
+ if ( ! empty( $raw_data['custom_params'] ) ) {
372
+ foreach ( $raw_data['custom_params'] as $param ) {
373
+ if ( ! empty( $param['key'] ) && ! empty( $param['value'] ) ) {
374
+ $track['custom_params'][ $param['key'] ] = $param['value'];
375
+ }
376
+ }
377
+ }
378
+
379
+ }
380
+
381
+ return $track;
382
+ }
383
+
384
+ /**
385
+ * Save the conversions events added by user in admin page
386
+ *
387
+ * This method must be called by a bind method, triggered on some event
388
+ *
389
+ * @param array $post_data
390
+ */
391
+ public static function save_events( $post_data ) {
392
+ $events = AEPC_Track::get_conversions_events();
393
+ update_option( 'aepc_conversions_events', array_merge( $events, array( self::conversion_post_data_adapter( $post_data ) ) ) );
394
+ }
395
+
396
+ /**
397
+ * Edit a conversion event
398
+ *
399
+ * This method must be called by a bind method, triggered on some event
400
+ *
401
+ * @param array $post_data
402
+ */
403
+ public static function edit_event( $post_data ) {
404
+ $event_id = intval( $post_data['event_id'] );
405
+ $events = AEPC_Track::get_conversions_events();
406
+
407
+ if ( isset( $events[ $event_id ] ) ) {
408
+ $events[ $event_id ] = self::conversion_post_data_adapter( $post_data );
409
+
410
+ // Fix value of url/css fields
411
+ if ( 'css_selector' === $events[ $event_id ]['trigger'] ) {
412
+ $events[ $event_id ]['url'] = '';
413
+ } else {
414
+ $events[ $event_id ]['css'] = '';
415
+ }
416
+
417
+ update_option( 'aepc_conversions_events', $events );
418
+ }
419
+ }
420
+
421
+ /**
422
+ * Delete conversion event
423
+ *
424
+ * @param int $id
425
+ */
426
+ public static function delete_event( $id ) {
427
+ $events = AEPC_Track::get_conversions_events();
428
+ if ( ! empty( $events[ $id ] ) ) {
429
+ unset( $events[ $id ] );
430
+ update_option( 'aepc_conversions_events', $events );
431
+ }
432
+ }
433
+
434
+ /**
435
+ * Check if plugin is been configured by user or not
436
+ *
437
+ * @return bool
438
+ */
439
+ public static function is_plugin_configured() {
440
+ return 'yes' === get_option( 'aepc_configured' );
441
+ }
442
+
443
+ /**
444
+ * Set plugin configured by adding an option set to yes
445
+ */
446
+ public static function set_plugin_configured() {
447
+ add_option( 'aepc_configured', 'yes' );
448
+ }
449
+
450
+ /**
451
+ * Delete the flag option set if plugin is configured or not
452
+ */
453
+ public static function set_plugin_not_configured() {
454
+ delete_option( 'aepc_configured' );
455
+ }
456
+
457
+ /**
458
+ * Enqueue styles and scripts in admin
459
+ */
460
+ public static function enqueue_assets( $hook_suffix ) {
461
+ $suffix = SCRIPT_DEBUG ? '' : '.min';
462
+
463
+ // Register common assets
464
+ wp_register_style( 'aepc-menu', PixelCaffeine()->plugin_url() . "/includes/admin/dist/css/menu{$suffix}.css" );
465
+ wp_enqueue_style( 'aepc-menu' );
466
+
467
+ // General settings admin page.
468
+ if ( in_array( $hook_suffix, array( AEPC_Admin_Menu::$hook_page ) ) ) {
469
+
470
+ // Add wp thickbox library to launch plugin information popup on ecommerce box
471
+ add_thickbox();
472
+
473
+ wp_register_script( 'aepc-admin-settings', PixelCaffeine()->plugin_url() . "/includes/admin/dist/js/admin{$suffix}.js", array( 'jquery', 'wp-util' ), PixelCaffeine()->version, true );
474
+ wp_enqueue_script( 'aepc-admin-settings' );
475
+
476
+ // Script util arguments
477
+ $script_args = array(
478
+ 'ajax_url' => admin_url( 'admin-ajax.php' ),
479
+ 'unsaved' => __( 'You have unsaved changes on this page. Do you want to leave this page and discard your changes or stay on this page?', 'pixel-caffeine' ),
480
+ 'switch_unsaved' => __( 'You need to save!', 'pixel-caffeine' ),
481
+
482
+ 'ajax_form_saving' => __( 'Saving...', 'pixel-caffeine' ),
483
+
484
+ 'tooltip_clipboard_copied' => __( 'Copied!', 'pixel-caffeine' ),
485
+ 'tooltip_clipboard_no_support' => __( 'No support :(', 'pixel-caffeine' ),
486
+ 'tooltip_clipboard_mac_copy_suggestion' => __( 'Press ⌘-{{{ key }}} to copy', 'pixel-caffeine' ),
487
+ 'tooltip_clipboard_win_copy_suggestion' => __( 'Press Ctrl-{{{ key }}} to copy', 'pixel-caffeine' ),
488
+ 'tooltip_clipboard_mac_cut_suggestion' => __( 'Press ⌘-{{{ key }}} to cut', 'pixel-caffeine' ),
489
+ 'tooltip_clipboard_win_cut_suggestion' => __( 'Press Ctrl-{{{ key }}} to cut', 'pixel-caffeine' ),
490
+
491
+ 'filter_any' => __( 'any', 'pixel-caffeine' ),
492
+ 'filter_custom_field_placeholder' => __( 'Write the key or select from below', 'pixel-caffeine' ),
493
+ 'filter_saving' => __( 'Saving...', 'pixel-caffeine' ),
494
+ 'filter_no_data_error' => __( '<strong>Can\'t add filter</strong> You have to select an event type', 'pixel-caffeine' ),
495
+ 'filter_no_condition_error' => __( '<strong>Can\'t add filter</strong> You have to define at least one condition', 'pixel-caffeine' ),
496
+
497
+ 'fb_option_account_id_placeholder' => __( 'Select an account ID', 'pixel-caffeine' ),
498
+ 'fb_option_no_account' => __( 'No Ad account found', 'pixel-caffeine' ),
499
+ 'fb_option_no_pixel' => __( 'No pixel found', 'pixel-caffeine' ),
500
+
501
+ 'highcharts_range_today' => __( 'Today', 'pixel-caffeine' ),
502
+ 'highcharts_range_yesterday' => __( 'Yesterday', 'pixel-caffeine' ),
503
+ 'highcharts_range_2days' => __( '2 Days', 'pixel-caffeine' ),
504
+ 'highcharts_range_7days' => __( '7 Days', 'pixel-caffeine' ),
505
+ 'highcharts_range_14days' => __( '14 Days', 'pixel-caffeine' ),
506
+ );
507
+
508
+ // Add ajax utils
509
+ foreach( AEPC_Admin_Ajax::$ajax_actions as $action ) {
510
+ $tab = ! empty( $_GET['tab'] ) ? $_GET['tab'] : 'dashboard';
511
+
512
+ // Hooks for pages
513
+ $page_hooks = array(
514
+ 'dashboard' => array(
515
+ 'get_pixel_stats'
516
+ ),
517
+
518
+ 'custom-audiences' => array(
519
+ 'get_custom_fields',
520
+ 'get_languages',
521
+ 'get_device_types',
522
+ 'get_categories',
523
+ 'get_tags',
524
+ 'get_posts',
525
+ 'get_dpa_params',
526
+ 'get_filter_statement',
527
+ 'get_currencies'
528
+ ),
529
+
530
+ 'conversions' => array(),
531
+
532
+ 'general-settings' => array(
533
+ 'get_account_ids',
534
+ 'get_pixel_ids',
535
+ 'get_custom_fields',
536
+ )
537
+ );
538
+
539
+ if (
540
+ in_array( $action, array_merge( $page_hooks['dashboard'], $page_hooks['conversions'], $page_hooks['custom-audiences'], $page_hooks['general-settings'] ) )
541
+ && ! in_array( $action, $page_hooks[ $tab ] )
542
+ ) {
543
+ continue;
544
+ }
545
+
546
+ $script_args['actions'][ $action ] = array(
547
+ 'name' => 'aepc_' . $action,
548
+ 'nonce' => wp_create_nonce( $action )
549
+ );
550
+ }
551
+
552
+ wp_localize_script( 'aepc-admin-settings', 'aepc_admin', $script_args );
553
+
554
+ // Register assents for the views
555
+ wp_register_style( 'aepc-admin', PixelCaffeine()->plugin_url() . "/includes/admin/dist/css/admin{$suffix}.css" );
556
+ wp_enqueue_style( 'aepc-admin' );
557
+
558
+ }
559
+ }
560
+
561
+ /**
562
+ * Add a general class to the body
563
+ *
564
+ * @param $classes
565
+ *
566
+ * @return string
567
+ */
568
+ public static function add_body_class( $classes ) {
569
+ return $classes . ' pixel-caffeine ';
570
+ }
571
+
572
+ /**
573
+ * Get the pixel statistics for all hours between today and two weeks ago
574
+ *
575
+ * @param string $interval
576
+ *
577
+ * @return array
578
+ */
579
+ public static function get_pixel_stats_sets( $interval = 'hourly' ) {
580
+
581
+ /// Get pixel stats from facebook
582
+ if ( false === ( $stats = get_transient( 'aepc_pixel_stats' ) ) ) {
583
+ $fb = AEPC_Admin::$api;
584
+ $stats = $fb->get_pixel_stats();
585
+ set_transient( 'aepc_pixel_stats', $stats, HOUR_IN_SECONDS );
586
+ }
587
+
588
+ // Convert array to work better after
589
+ foreach ( $stats as $i => $stat ) {
590
+ $stat->timestamp = new DateTime( $stat->timestamp );
591
+ $stats[ $stat->timestamp->format( DATE_ISO8601 ) ] = $stat->data[0]->count;
592
+ unset( $stats[ $i ] );
593
+ }
594
+
595
+ $counter = new DateTime( '2 weeks ago' );
596
+ $counter->setTime( 0, 0 );
597
+ $tomorrow = new DateTime( 'tomorrow' );
598
+ $counters = array();
599
+
600
+ do {
601
+ // $counters[] = isset( $stats[ $counter->format( DATE_ISO8601 ) ] ) ? $stats[ $counter->format( DATE_ISO8601 ) ] : 0;
602
+ $counters[] = array(
603
+ $counter->getTimestamp() * 1000,
604
+ isset( $stats[ $counter->format( DATE_ISO8601 ) ] ) ? $stats[ $counter->format( DATE_ISO8601 ) ] : 0
605
+ );
606
+
607
+ $counter->modify('+1 hour');
608
+ } while ( $counter < $tomorrow );
609
+
610
+ return $counters;
611
+ }
612
+
613
+ /**
614
+ * SIDEBAR TOOLS
615
+ */
616
+
617
+ /**
618
+ * Fetch the banners for the sidebar from a remote JSON file
619
+ */
620
+ public static function fetch_sidebar() {
621
+ if ( false === ( $sidebar = get_transient( 'aepc_sidebar' ) ) ) {
622
+ if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
623
+ $response = wp_remote_get( 'https://adespresso.com/wp-content/uploads/pixel-caffeine-sidebar.json' );
624
+
625
+ if ( is_wp_error( $response ) ) {
626
+ return false;
627
+ }
628
+
629
+ $body = wp_remote_retrieve_body( $response );
630
+ $sidebar = json_decode( $body );
631
+
632
+ set_transient( 'aepc_sidebar', $sidebar, 6 * HOUR_IN_SECONDS );
633
+ } else {
634
+ return array();
635
+ }
636
+ }
637
+
638
+ return $sidebar;
639
+ }
640
+
641
+ /**
642
+ * Fetch the blog posts from official site for sidebar
643
+ *
644
+ * @param array $args
645
+ *
646
+ * @return array
647
+ */
648
+ public static function fetch_sidebar_posts( $args = array() ) {
649
+ $args = wp_parse_args( (array) $args, array(
650
+ 'feed' => '',
651
+ 'items' => 3
652
+ ) );
653
+
654
+ if ( defined( 'DOING_AJAX' ) && DOING_AJAX && ! empty( $args['feed'] ) ) {
655
+ $rss = fetch_feed( $args['feed'] );
656
+
657
+ if ( is_wp_error( $rss ) ) {
658
+ if ( is_admin() || current_user_can('manage_ads') ) {
659
+ return array(
660
+ 'error' => '<p>' . sprintf( __( '<strong>RSS Error</strong>: %s', 'pixel-caffeine' ), $rss->get_error_message() ) . '</p>'
661
+ );
662
+ }
663
+
664
+ return array();
665
+ }
666
+
667
+ if ( !$rss->get_item_quantity() ) {
668
+ $rss->__destruct();
669
+ unset($rss);
670
+
671
+ return array(
672
+ 'error' => '<p>' . __( 'An error has occurred, which probably means the feed is down. Try again later.', 'pixel-caffeine' ) . '</p>'
673
+ );
674
+ }
675
+
676
+ $posts = array();
677
+
678
+ foreach ( $rss->get_items( 0, $args['items'] ) as $item ) {
679
+ /** @var SimplePie_Item $item */
680
+
681
+ $posts[] = array(
682
+ 'link' => $item->get_link(),
683
+ 'title' => $item->get_title(),
684
+ 'description' => $item->get_description(),
685
+ 'date' => $item->get_date()
686
+ );
687
+ }
688
+
689
+ set_transient( 'aepc_rss_posts', $posts, 12 * HOUR_IN_SECONDS );
690
+
691
+ } else {
692
+ $posts = (array) get_transient( 'aepc_rss_posts' );
693
+ }
694
+
695
+ return $posts;
696
+ }
697
+
698
+ }
699
+
700
+ AEPC_Admin::init();
includes/admin/class-aepc-facebook-adapter.php ADDED
@@ -0,0 +1,1027 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit; // Exit if accessed directly.
4
+ }
5
+
6
+ use Firebase\JWT\JWT;
7
+ use Symfony\Component\Yaml\Yaml;
8
+
9
+ /**
10
+ * @class AEPC_Facebook_Adapter
11
+ */
12
+ class AEPC_Facebook_Adapter {
13
+
14
+ /** @var null The token generated by FB for authorization */
15
+ public $access_token = false;
16
+
17
+ /** @var string The account ID */
18
+ protected $account_id = '';
19
+
20
+ /** @var string The pixel ID */
21
+ protected $pixel_id = '';
22
+
23
+ /** @var string The base API URL */
24
+ protected $api_url = 'https://wca-connector.adespresso.com';
25
+
26
+ /** @var string The base API URL */
27
+ protected $api_stage = 'prod';
28
+
29
+ /**
30
+ * Init facebook adapter
31
+ */
32
+ public function __construct() {
33
+
34
+ // Get the access token and connect the website to facebook api through access token
35
+ add_action( 'admin_init', array( $this, 'connect' ), 5 );
36
+
37
+ // Get the auth-response request to save the access token and login the site for the facebook requests
38
+ add_action( 'admin_init', array( $this, 'login' ), 5 );
39
+
40
+ // Remove the access token to disconnect the site from facebook api and force the user to make a new login
41
+ add_action( 'admin_init', array( $this, 'disconnect' ), 5 );
42
+ }
43
+
44
+ /**
45
+ * Define access token, where we can know if the user did login or not
46
+ */
47
+ public function connect() {
48
+ if ( ! is_user_logged_in() ) {
49
+ return;
50
+ }
51
+
52
+ // Load local configuration, if defined the file resources/fb.yml
53
+ if ( file_exists( PixelCaffeine()->plugin_path() . '/includes/resources/fb.dev.yml' ) && class_exists( 'Yaml' ) ) {
54
+ $local_config = Yaml::parse( file_get_contents( PixelCaffeine()->plugin_path() . '/includes/resources/fb.dev.yml' ) );
55
+ $this->api_url = $local_config['fb']['api_url'];
56
+ $this->api_stage = $local_config['fb']['api_stage'];
57
+ }
58
+
59
+ // Get access token, it means logged in to facebook if it's not empty
60
+ $token = get_option( 'aepc_fb_access_token' );
61
+
62
+ // Save access token and then login only if the token is not expired
63
+ if ( ! empty( $token ) && ! $this->is_token_expired( $token ) ) {
64
+ $this->access_token = $token['access_token'];
65
+
66
+ // Set account and pixel ID from option set by user
67
+ $this->set_account_id( get_option( 'aepc_account_id', '' ) );
68
+ $this->set_pixel_id( get_option( 'aepc_pixel_id', '' ) );
69
+ }
70
+ }
71
+
72
+ /**
73
+ * Check if token expired or it's lifetime if token_expiration is 0
74
+ *
75
+ * @param $token
76
+ *
77
+ * @return bool
78
+ */
79
+ protected function is_token_expired( $token ) {
80
+ return $token['token_expiration'] > 0 && time() >= $token['token_expiration'];
81
+ }
82
+
83
+ /**
84
+ * Get the complete URL of the request to endpoint defined in parameter
85
+ *
86
+ * @param string $endpoint It must start with /
87
+ * @param array $args The array of arguments for request
88
+ *
89
+ * @return string
90
+ */
91
+ protected function get_request_api_url( $endpoint, $args = array() ) {
92
+ return add_query_arg( $args, $this->api_url . '/' . $this->api_stage . $endpoint );
93
+ }
94
+
95
+ /**
96
+ * Return the URL where make the login to facebook
97
+ *
98
+ * @return string
99
+ */
100
+ public function get_login_url() {
101
+ return $this->get_request_api_url( '/auth-request', array(
102
+ 'site_id' => $this->get_uuid(),
103
+ 'redirect_uri' => urlencode( add_query_arg( 'action', 'fb-login', AEPC_Admin::get_page('general-settings')->get_view_url() ) )
104
+ ) );
105
+ }
106
+
107
+ /**
108
+ * Return the URL where make the logout to facebook
109
+ *
110
+ * @return string
111
+ */
112
+ public function get_logout_url() {
113
+ return wp_nonce_url( add_query_arg( 'action', 'fb-disconnect', AEPC_Admin::get_page('general-settings')->get_view_url() ), 'facebook_disconnect' );
114
+ }
115
+
116
+ /**
117
+ * Decode the token passed in parameter and save own access token and expiration
118
+ *
119
+ * @param $token
120
+ *
121
+ * @throws Exception If the token is empty or expired
122
+ */
123
+ public function doLogin( $token ) {
124
+ // Token empty doesn't allowed
125
+ if ( empty( $token ) ) {
126
+ throw new Exception( __( 'Empty Token', 'pixel-caffeine' ), 400 );
127
+ }
128
+
129
+ try {
130
+ JWT::$leeway = defined( 'AEPC_LEEWAY' ) ? AEPC_LEEWAY : 3600;
131
+ $jwt = (array) JWT::decode( $token, $this->get_uuid(), array( 'HS256' ) );
132
+ } catch ( Firebase\JWT\BeforeValidException $e ) {
133
+ $message = __( 'Invalid login, please try again.', 'pixel-caffeine' );
134
+
135
+ // Debug information
136
+ if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
137
+ $message .= '<br /><strong>DEBUG:</strong> ' . $e->getCode() . ' - ' . $e->getMessage();
138
+ }
139
+
140
+ throw new Exception( $message, 400 );
141
+ }
142
+
143
+ // Check if token is expired
144
+ if ( $this->is_token_expired( $jwt ) ) {
145
+ $this->set_disconnected( 'expired' );
146
+ throw new Exception( __( 'Expired Token', 'pixel-caffeine' ), 408 );
147
+ }
148
+
149
+ delete_option( 'aepc_fb_access_expired' );
150
+ update_option( 'aepc_fb_access_token', $jwt );
151
+ $this->access_token = $jwt['access_token'];
152
+ }
153
+
154
+ /**
155
+ * Get the auth-response request to save the access token and login the site for the facebook requests
156
+ */
157
+ public function login() {
158
+ if (
159
+ empty( $_GET['action'] )
160
+ || 'fb-login' != $_GET['action']
161
+ || ( empty( $_GET['token'] ) && empty( $_GET['error'] ) )
162
+ || ! current_user_can( 'manage_ads' )
163
+ ) {
164
+ return;
165
+ }
166
+
167
+ // Refresh the page to remove query args
168
+ $to = get_option( 'aepc_account_id', '' ) == '' ? AEPC_Admin::get_page( 'general-settings' )->get_view_url() : false;
169
+
170
+ try {
171
+ if ( isset( $_GET['error'] ) ) {
172
+ $error = sanitize_text_field( $_GET['error'] );
173
+ $error_description = sanitize_text_field( $_GET['error_description'] );
174
+
175
+ if ( 'access_denied' == $error ) {
176
+ $error_description = __( 'Please, grant the permissions requested', 'pixel-caffeine' );
177
+ } else if ( 'permissions_denied' == $error ) {
178
+ $error_description = sprintf( __( 'Please, grant the permissions: %s', 'pixel-caffeine' ), $error_description );
179
+ }
180
+
181
+ throw new Exception( sprintf( '<strong>%s</strong> %s', __( 'Facebook authentication error', 'pixel-caffeine' ), $error_description ), 401 );
182
+ }
183
+
184
+ $this->doLogin( $_GET['token'] );
185
+
186
+ if ( false === $to ) {
187
+ AEPC_Admin_Notices::add_notice( 'success', 'main', __( '<strong>Facebook connected</strong> Your facebook account is properly connected now.', 'pixel-caffeine' ) );
188
+ }
189
+ } catch( Exception $e ) {
190
+ AEPC_Admin_Notices::add_notice( 'error', 'main', $e->getMessage() );
191
+ }
192
+
193
+ wp_redirect( add_query_arg( 'ref', 'fblogin', remove_query_arg( array( 'action', 'token' ), $to ) ) );
194
+ exit();
195
+ }
196
+
197
+ /**
198
+ * Set access_token to false and delete the option saved on database, so in the next connect any access token will
199
+ * be saved and then the site won't logged in
200
+ *
201
+ * @param string $why 'logout' or 'expired'
202
+ */
203
+ public function set_disconnected( $why = 'logout' ) {
204
+ $this->access_token = false;
205
+ delete_option( 'aepc_fb_access_token' );
206
+ update_option( 'aepc_fb_access_expired', 'expired' === $why );
207
+ }
208
+
209
+ /**
210
+ * Disconnect the user removing the saved access token
211
+ */
212
+ public function disconnect() {
213
+ if (
214
+ empty( $_GET['action'] )
215
+ || 'fb-disconnect' != $_GET['action']
216
+ || empty( $_GET['_wpnonce'] )
217
+ || ! wp_verify_nonce( $_GET['_wpnonce'], 'facebook_disconnect' )
218
+ || ! current_user_can( 'manage_ads' )
219
+ ) {
220
+ return;
221
+ }
222
+
223
+ try {
224
+ $this->set_disconnected();
225
+ delete_option( 'aepc_account_id' );
226
+ delete_option( 'aepc_pixel_id' );
227
+
228
+ } catch( Exception $e ) {
229
+ AEPC_Admin_Notices::add_notice( 'error', 'main', $e->getMessage() );
230
+ }
231
+
232
+ if ( defined( 'DOING_AJAX' ) && DOING_AJAX || isset( $_GET['ajax'] ) && 1 == $_GET['ajax'] ) {
233
+ wp_send_json_success();
234
+ }
235
+
236
+ // Refresh the page to remove the query args
237
+ wp_redirect( remove_query_arg( array( 'ref', 'action', '_wpnonce' ) ) );
238
+ exit();
239
+ }
240
+
241
+ /**
242
+ * Set the access token in the instance
243
+ *
244
+ * @param $access_token
245
+ */
246
+ public function set_access_token( $access_token ) {
247
+ $this->access_token = $access_token;
248
+ }
249
+
250
+ /**
251
+ * Check if authorization is right
252
+ *
253
+ * @return bool
254
+ */
255
+ public function is_logged_in() {
256
+ return ! empty( $this->access_token );
257
+ }
258
+
259
+ /**
260
+ * Check if the user has token expired or the connection is lost
261
+ *
262
+ * @return mixed|void
263
+ */
264
+ public function is_expired() {
265
+ return get_option( 'aepc_fb_access_expired' );
266
+ }
267
+
268
+ /**
269
+ * Get the Account ID
270
+ *
271
+ * @return string
272
+ */
273
+ public function get_account_id() {
274
+ return $this->account_id;
275
+ }
276
+
277
+ /**
278
+ * Set the Account ID
279
+ *
280
+ * @param $account_id
281
+ */
282
+ public function set_account_id( $account_id ) {
283
+ $this->account_id = ! empty( $account_id ) ? (string) $account_id : '';
284
+ }
285
+
286
+ /**
287
+ * Get the Pixel ID
288
+ *
289
+ * @return string
290
+ */
291
+ public function get_pixel_id() {
292
+ return $this->pixel_id;
293
+ }
294
+
295
+ /**
296
+ * Set the Pixel ID
297
+ *
298
+ * @param $pixel_id
299
+ */
300
+ public function set_pixel_id( $pixel_id ) {
301
+ $this->pixel_id = ! empty( $pixel_id ) ? (string) $pixel_id : '';
302
+ }
303
+
304
+ // FB Methods
305
+
306
+ /**
307
+ * Make the facebook api requesto to connector
308
+ *
309
+ * @param string $method The Facebook API endpoint to call.
310
+ * @param string $endpoint The http method to use for the facebook API call (GET, POST, DELETE).
311
+ * @param array $args The list of GET or POST parameters to pass to the Facebook API call (without the fb access_token).
312
+ * @param bool $cache Cache the request if another identical request is made, avoid call to facebook api with the same request.
313
+ *
314
+ * @return array|WP_Error
315
+ * @throws Exception
316
+ */
317
+ public function request( $method, $endpoint, $args = array(), $cache = true ) {
318
+ if ( ! $this->is_logged_in() ) {
319
+ throw new Exception( 'Please, connect your facebook account to make operations to the custom audiences of your Ad account.', 401 );
320
+ }
321
+
322
+ // Key to set/get from cache an already made request
323
+ $cache_key = 'fb_call_' . md5( $method . $endpoint . serialize( $args ) );
324
+
325
+ $payload = array(
326
+ 'endpoint' => $endpoint,
327
+ 'method' => $method,
328
+ 'auth_token' => $this->access_token,
329
+ 'parameters' => $args
330
+ );
331
+
332
+ if ( ! $cache || false === ( $response = wp_cache_get( $cache_key ) ) ) {
333
+ // Do request
334
+ $response = wp_remote_post( $this->get_request_api_url( '/request' ), array(
335
+ 'timeout' => 15,
336
+ 'headers' => array( 'content-type' => 'application/json' ),
337
+ 'body' => json_encode( array(
338
+ 'request' => JWT::encode( $payload, $this->get_uuid() )
339
+ ) )
340
+ ) );
341
+
342
+ wp_cache_set( $cache_key, $response );
343
+ }
344
+
345
+ // Check about errors and throw Exception if one
346
+ $this->check_error_messages( $response, $payload );
347
+
348
+ return $response;
349
+ }
350
+
351
+ /**
352
+ * Check if the response contains some error message and throw an exception
353
+ *
354
+ * @param $response
355
+ * @param $payload
356
+ *
357
+ * @throws Exception
358
+ */
359
+ protected function check_error_messages( $response, $payload ) {
360
+ $body = json_decode( wp_remote_retrieve_body( $response ) );
361
+ $message = $code = '';
362
+ $general_code = 400;
363
+ $general_error = __( 'Something goes wrong during the connection with facebook API. Please, try again later.', 'pixel-caffeine' );
364
+
365
+ // Check if request fails with wp_error response
366
+ if ( is_wp_error( $response ) ) {
367
+ /** @var WP_Error $response */
368
+
369
+ // Define error messages
370
+ $wp_error = array(
371
+ 'http_request_failed' => __( 'Cannot save on facebook account because of something gone wrong during facebook connection.', 'pixel-caffeine' )
372
+ );
373
+
374
+ $message = isset( $wp_error[ $response->get_error_code() ] ) ? $wp_error[ $response->get_error_code() ] : $general_error;
375
+
376
+ // Debug information
377
+ if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
378
+ $message .= '<br /><strong>DEBUG:</strong> ' . $response->get_error_code() . ' - ' . $response->get_error_message();
379
+ }
380
+ }
381
+
382
+ // Check errors from HTTP request
383
+ elseif ( wp_remote_retrieve_response_code( $response ) >= 400 ) {
384
+
385
+ // Define error messages
386
+ $http_messages = array(
387
+ 408 => sprintf( __( 'Facebook connection timed out. Please, login again from %shere%s', 'pixel-caffeine' ), '<a href="' . AEPC_Admin::get_page('general-settings')->get_view_url() . '" target="_blank">', '</a>' )
388
+ );
389
+
390
+ $code = wp_remote_retrieve_response_code( $response );
391
+ $message = isset( $http_messages[ $code ] ) ? $http_messages[ $code ] : $general_error;
392
+
393
+ // Debug information
394
+ if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG && isset( $body->errorMessage ) ) {
395
+ $message .= '<br /><strong>DEBUG:</strong> ' . trim( str_replace( $code, '', $body->errorMessage ) );
396
+ }
397
+
398
+ // Run custom actions if occurred an error
399
+ if ( apply_filters( 'aepc_fb_requests_needs_refresh', true ) && in_array( $code, array( 408 ) ) ) {
400
+ $this->set_disconnected( 'expired' );
401
+ wp_send_json_error( array( 'refresh' => true ) );
402
+ }
403
+ }
404
+
405
+ // Check errors in body for facebook api error
406
+ elseif ( isset( $body->error ) ) {
407
+
408
+ // Define errors to show for user
409
+ $fb_errors = array(
410
+ 190 => sprintf( __( 'Facebook connection timed out or you need to authorize again. Please, login again from %shere%s', 'pixel-caffeine' ), '<a href="' . AEPC_Admin::get_page('general-settings')->get_view_url() . '" target="_blank">', '</a>' ),
411
+ 272 => __( 'This Ads action requires the user to be admin of the application.', 'pixel-caffeine' ),
412
+ 273 => __( 'This Ads action requires the user to be admin of the ad account.', 'pixel-caffeine' ),
413
+ 274 => __( 'The ad account is not enabled for usage in Ads API. Please add it in developers.facebook.com/apps -> select your app -> settings -> advanced -> advertising accounts -> Ads API.', 'pixel-caffeine' ),
414
+ 275 => __( 'The facebook object you are trying to use does not exist.', 'pixel-caffeine' ),
415
+ 278 => __( 'You have to extend permission for ads_read to complete the action.', 'pixel-caffeine' ),
416
+ 294 => __( 'You have to extend permission for ads_management to complete the action.', 'pixel-caffeine' ),
417
+ 2650 => __( 'Failed to update the custom audience.', 'pixel-caffeine' ),
418
+ 2651 => __( 'Failed to create lookalike custom audience.', 'pixel-caffeine' ),
419
+ 2654 => __( 'Failed to create custom audience on your facebook account.', 'pixel-caffeine' ),
420
+ 2655 => make_clickable( __( 'Terms of service has not been accepted. To accept, go to https://www.facebook.com/ads/manage/customaudiences/tos.php', 'pixel-caffeine' ) ),
421
+ 2656 => __( 'Failed to delete custom audience because associated lookalikes exist.', 'pixel-caffeine' ),
422
+ 2663 => make_clickable( __( 'Terms of service has not been accepted. To accept, go to https://www.facebook.com/customaudiences/app/tos', 'pixel-caffeine' ) ),
423
+ 2664 => make_clickable( __( 'The corporate terms of service has not been accepted. To accept, go to https://business.facebook.com/ads/manage/customaudiences/tos.php', 'pixel-caffeine' ) ),
424
+ 16000 => __( 'Specified audience is too small.', 'pixel-caffeine' ),
425
+ );
426
+
427
+ // Ignore message if delete action
428
+ if ( 'DELETE' === $payload['method'] && in_array( $body->error->code, array( 100, 275 ) ) ) {
429
+ return;
430
+ }
431
+
432
+ $message = isset( $fb_errors[ $body->error->code ] ) ? $fb_errors[ $body->error->code ] : $general_error;
433
+
434
+ // Debug information
435
+ if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
436
+ $message .= '<br /><strong>DEBUG:</strong> ' . $body->error->code . ' - ' . $body->error->type . ' - ' . $body->error->message . ' (fbtrace_id: ' . $body->error->fbtrace_id . ')';
437
+ }
438
+
439
+ // Run custom actions if occurred an error
440
+ if ( apply_filters( 'aepc_fb_requests_needs_refresh', true ) && in_array( $body->error->code, array( 3, 190, 278, 294 ) ) ) {
441
+ $this->set_disconnected( 'expired' );
442
+ wp_send_json_error( array( 'refresh' => true ) );
443
+ }
444
+ }
445
+
446
+ // Throw the exception if some error was found
447
+ if ( ! empty( $message ) ) {
448
+ throw new Exception( $message, empty( $code ) ? $general_code : $code );
449
+ }
450
+ }
451
+
452
+ /**
453
+ * Get the current user
454
+ */
455
+ public function get_user() {
456
+ if ( false === ( $user = get_transient( 'aepc_fb_user' ) ) ) {
457
+ $response = $this->request( 'GET', '/me', array(
458
+ 'fields' => 'id,name,picture'
459
+ ) );
460
+
461
+ $user = json_decode( wp_remote_retrieve_body( $response ) );
462
+ set_transient( 'aepc_fb_user', $user, WEEK_IN_SECONDS );
463
+ }
464
+
465
+ return $user;
466
+ }
467
+
468
+ /**
469
+ * Get the user ID of user logged in
470
+ *
471
+ * @return mixed
472
+ */
473
+ public function get_user_id() {
474
+ $user = $this->get_user();
475
+
476
+ return $user->id;
477
+ }
478
+
479
+ /**
480
+ * Get the display name of user logged in
481
+ *
482
+ * @return mixed
483
+ */
484
+ public function get_user_name() {
485
+ $user = $this->get_user();
486
+
487
+ return $user->name;
488
+ }
489
+
490
+ /**
491
+ * Get the photo url of user current logged in
492
+ *
493
+ * @return mixed
494
+ */
495
+ public function get_user_photo_uri() {
496
+ $user = $this->get_user();
497
+
498
+ return $user->picture->data->url;
499
+ }
500
+
501
+ /**
502
+ * Return an array with all account ids of the user
503
+ *
504
+ * @return object[]
505
+ */
506
+ public function get_account_ids() {
507
+ $response = $this->request( 'GET', '/' . $this->get_user_id() . '/adaccounts', array(
508
+ 'fields' => 'account_id,name'
509
+ ) );
510
+
511
+ $accounts = json_decode( wp_remote_retrieve_body( $response ) );
512
+ return $accounts->data;
513
+ }
514
+
515
+ /**
516
+ * Get the name of account, checking on option before (set on facebook options saving)
517
+ *
518
+ * @param string $account_id
519
+ *
520
+ * @return mixed|null
521
+ */
522
+ public function get_account_name( $account_id = '' ) {
523
+ if ( empty( $account_id ) && ! ( $account_id = $this->get_account_id() ) ) {
524
+ return null;
525
+ }
526
+
527
+ if ( false === ( $account_name = get_transient( 'aepc_account_name_' . $account_id ) ) ) {
528
+ $accounts = $this->get_account_ids();
529
+ foreach ( $accounts as $account ) {
530
+ if ( $account->account_id == $account_id ) {
531
+ $account_name = $account->name;
532
+ break;
533
+ }
534
+ }
535
+
536
+ set_transient( 'aepc_account_name_' . $account_id, $account_name );
537
+ }
538
+
539
+ return $account_name;
540
+ }
541
+
542
+ /**
543
+ * Return an array with all pixel ids of the user
544
+ *
545
+ * @param string $account_id
546
+ *
547
+ * @return object[]
548
+ */
549
+ public function get_pixel_ids( $account_id = '' ) {
550
+ if ( empty( $account_id ) && ! ( $account_id = $this->get_account_id() ) ) {
551
+ return null;
552
+ }
553
+
554
+ $response = $this->request( 'GET', '/act_' . $account_id . '/adspixels', array(
555
+ 'fields' => 'id,name'
556
+ ) );
557
+
558
+ $pixels = json_decode( wp_remote_retrieve_body( $response ) );
559
+ return $pixels->data;
560
+ }
561
+
562
+ /**
563
+ * Return an array with all pixel ids of the user
564
+ *
565
+ * @param string $account_id
566
+ *
567
+ * @return object[]
568
+ */
569
+ public function get_offsite_pixel_ids( $account_id = '' ) {
570
+ if ( empty( $account_id ) && ! ( $account_id = $this->get_account_id() ) ) {
571
+ return null;
572
+ }
573
+
574
+ $response = $this->request( 'GET', '/act_' . $account_id . '/offsitepixels', array(
575
+ 'fields' => 'id,name'
576
+ ) );
577
+
578
+ $pixels = json_decode( wp_remote_retrieve_body( $response ) );
579
+ return $pixels->data;
580
+ }
581
+
582
+ /**
583
+ * Get the name of account, checking on option before (set on facebook options saving)
584
+ *
585
+ * @param string $pixel_id
586
+ *
587
+ * @return mixed|null
588
+ */
589
+ public function get_pixel_name( $pixel_id = '' ) {
590
+ if ( empty( $pixel_id ) && ! ( $pixel_id = $this->get_pixel_id() ) ) {
591
+ return null;
592
+ }
593
+
594
+ if ( false === ( $pixel_name = get_transient( 'aepc_pixel_name_' . $pixel_id ) ) ) {
595
+ try {
596
+ $response = $this->request( 'GET', '/' . $pixel_id, array( 'fields' => 'name' ) );
597
+ $pixel = json_decode( wp_remote_retrieve_body( $response ) );
598
+ $pixel_name = $pixel->name;
599
+ } catch ( Exception $e ) {
600
+ $pixel_name = null;
601
+ }
602
+
603
+ set_transient( 'aepc_pixel_name_' . $pixel_id, $pixel_name );
604
+ }
605
+
606
+ return $pixel_name;
607
+ }
608
+
609
+ /**
610
+ * Get Pixel statistic of an account ID
611
+ *
612
+ * @param array $args
613
+ * @param string $pixel_id If not defined, get the pixel ID set
614
+ *
615
+ * @return array
616
+ */
617
+ public function get_pixel_stats( $args = array(), $pixel_id = '' ) {
618
+ if ( empty( $pixel_id ) && ! ( $pixel_id = $this->get_pixel_id() ) ) {
619
+ return null;
620
+ }
621
+
622
+ $args = wp_parse_args( $args, array(
623
+ 'aggregation' => 'pixel_fire',
624
+ 'event' => 'aggregation',
625
+ 'start_time' => time() - 2 * WEEK_IN_SECONDS,
626
+ 'end_time' => time()
627
+ ) );
628
+
629
+ $response = $this->request( 'GET', '/' . $pixel_id . '/stats', $args );
630
+
631
+ $pixels = json_decode( wp_remote_retrieve_body( $response ) );
632
+ return $pixels->data;
633
+ }
634
+
635
+ /**
636
+ * Create the audience in Facebook account
637
+ *
638
+ * @param array $args {
639
+ * Arguments to configure the new custom audience
640
+ *
641
+ * @type string $name The name for the cluster.
642
+ * @type string $description A brief explanation of cluster.
643
+ * @type int $retention Number of days to keep the user in this cluster. You can use any value between 1 and 180 days. Defaults to 14 days if not specified.
644
+ * @type bool $prefill true - Include website traffic recorded prior to the audience creation. false - Only include website traffic beginning at the time of the audience creation.
645
+ * @type array rule Audience rules to be applied on the referrer URL.
646
+ * }
647
+ *
648
+ * @return object
649
+ */
650
+ public function create_audience( $args = array() ) {
651
+ $args = (object) wp_parse_args( $args, array(
652
+ 'name' => '',
653
+ 'description' => '',
654
+ 'retention' => 14,
655
+ 'prefill' => true,
656
+ 'rule' => array()
657
+ ) );
658
+
659
+ $args->rule = $this->compose_rules( $args->rule );
660
+
661
+ // Do request
662
+ $response = $this->request( 'POST', '/act_' . $this->get_account_id() . '/customaudiences', array(
663
+ 'pixel_id' => $this->get_pixel_id(),
664
+ 'name' => $args->name,
665
+ 'description' => $args->description,
666
+ 'subtype' => 'WEBSITE',
667
+ 'retention_days' => $args->retention,
668
+ 'prefill' => (int) $args->prefill,
669
+ 'rule' => $args->rule
670
+ ) );
671
+
672
+ // Return only the CA ID from facebook
673
+ return json_decode( wp_remote_retrieve_body( $response ) );
674
+ }
675
+
676
+ /**
677
+ * Retrieve a custom audience created by user
678
+ *
679
+ * @param $ca_id
680
+ * @param string $fields List of fields you want to have
681
+ *
682
+ * @return object
683
+ */
684
+ public function get_audience( $ca_id, $fields = 'name,description,approximate_count' ) {
685
+ $fields = trim( $fields, ", \t\n\r\0\x0B" );
686
+
687
+ // If empty, put 'id' as default
688
+ if ( empty( $fields ) ) {
689
+ $fields = 'id';
690
+ }
691
+
692
+ $response = $this->request( 'GET', '/' . $ca_id, array(
693
+ 'fields' => $fields
694
+ ) );
695
+
696
+ return json_decode( wp_remote_retrieve_body( $response ) );
697
+ }
698
+
699
+ /**
700
+ * Retrieve all custom audiences created by user
701
+ *
702
+ * @param string $fields List of fields you want to have
703
+ *
704
+ * @return object[]
705
+ */
706
+ public function get_audiences( $fields = 'name,description,approximate_count' ) {
707
+ $fields = trim( $fields, ", \t\n\r\0\x0B" );
708
+
709
+ // If empty, put 'id' as default
710
+ if ( empty( $fields ) ) {
711
+ $fields = 'id';
712
+ }
713
+
714
+ $response = $this->request( 'GET', '/act_' . $this->get_account_id() . '/customaudiences', array(
715
+ 'fields' => $fields
716
+ ) );
717
+
718
+ $audiences = json_decode( wp_remote_retrieve_body( $response ) );
719
+ return $audiences->data;
720
+ }
721
+
722
+ /**
723
+ * Update a custom audience on facebook account
724
+ *
725
+ * @param $ca_id
726
+ * @param array $args
727
+ *
728
+ * @return array|mixed|object
729
+ */
730
+ public function update_audience( $ca_id, $args = array() ) {
731
+
732
+ // Check keys and values
733
+ foreach ( $args as $key => $fbparam ) {
734
+ if ( 'retention' == $key ) {
735
+ $args['retention_days'] = $fbparam;
736
+ unset( $args[ $key ] );
737
+ }
738
+ }
739
+
740
+ // Compone rules for facebook request
741
+ if ( isset( $args['rule'] ) ) {
742
+ $args['rule'] = $this->compose_rules( $args['rule'] );
743
+ }
744
+
745
+ // Do request
746
+ $response = $this->request( 'POST', '/' . $ca_id, $args );
747
+
748
+ // Return only the CA ID from facebook
749
+ return json_decode( wp_remote_retrieve_body( $response ) );
750
+ }
751
+
752
+ /**
753
+ * Delete a custom audience on facebook account
754
+ *
755
+ * @param $ca_id
756
+ *
757
+ * @return array|mixed|object
758
+ */
759
+ public function delete_audience( $ca_id ) {
760
+ $response = $this->request( 'DELETE', '/' . $ca_id );
761
+ return json_decode( wp_remote_retrieve_body( $response ) );
762
+ }
763
+
764
+ /**
765
+ * Compose the rules for facebook reuests
766
+ *
767
+ * @param array $rules
768
+ *
769
+ * @return mixed|string|void
770
+ */
771
+ public function compose_rules( $rules ) {
772
+ foreach ( $rules as &$rule ) {
773
+ $rule = $this->rule_adapter( $rule );
774
+ }
775
+
776
+ return json_encode( array( 'and' => $rules ) );
777
+ }
778
+
779
+ /**
780
+ * Format a rule with conditions for facebook request
781
+ *
782
+ * @param array $args
783
+ *
784
+ * @return array
785
+ */
786
+ public function rule_adapter( $args ) {
787
+ $exclude = array(
788
+ 'i_contains' => 'i_not_contains',
789
+ 'i_not_contains' => 'i_contains',
790
+ 'contains' => 'not_contains',
791
+ 'not_contains' => 'contains',
792
+ 'eq' => 'neq',
793
+ 'neq' => 'eq',
794
+ 'lt' => 'gte',
795
+ 'lte' => 'gt',
796
+ 'gt' => 'lte',
797
+ 'gte' => 'lt'
798
+ );
799
+
800
+ // Init
801
+ $rule = array();
802
+ $main_operator = 'and';
803
+ $operator = array(
804
+ 'include' => array_combine( array_keys( $exclude ), array_keys( $exclude ) ),
805
+ 'exclude' => $exclude
806
+ );
807
+ $operator = $operator[ $args['main_condition'] ];
808
+
809
+ // Add AdvancedEvents event condition
810
+ if (
811
+ 'attributes' == $args['event_type'] && in_array( $args['event'], array( 'login_status' ) )
812
+ || 'blog' == $args['event_type'] && in_array( $args['event'], array( 'categories', 'tax_post_tag', 'posts', 'pages' ) )
813
+ ) {
814
+ $rule[] = array( 'event' => array( $operator['i_contains'] => 'AdvancedEvents' ) );
815
+ }
816
+
817
+ // Add custom fields event condition
818
+ elseif ( 'blog' == $args['event_type'] && in_array( $args['event'], array( 'custom_fields' ) ) ) {
819
+ $rule[] = array( 'event' => array( $operator['i_contains'] => 'CustomFields' ) );
820
+ }
821
+
822
+ // Add DPA tracking events on condition
823
+ elseif ( 'ecommerce' == $args['event_type'] && in_array( $args['event'], array_keys( AEPC_Track::$standard_events ) ) ) {
824
+ $rule[] = array( 'event' => array( $operator['i_contains'] => $args['event'] ) );
825
+ }
826
+
827
+ /**
828
+ * Then add specific conditions
829
+ */
830
+
831
+ // Force to add conditions key when it doesn't exist
832
+ if ( ! isset( $args['conditions'] ) ) {
833
+ $args['conditions'] = array();
834
+ }
835
+
836
+ foreach ( $args['conditions'] as $k => $condition ) {
837
+
838
+ // Remove condition if it's not allowed empty key and empty value
839
+ if ( in_array( $args['event_type'], array( 'attributes', 'blog' ) ) && ( isset( $condition['key'] ) && empty( $condition['key'] ) || empty( $condition['value'] ) ) ) {
840
+ unset( $args['conditions'][$k] );
841
+ continue;
842
+ }
843
+
844
+ // Add blog posts condition for object_type, post_type and object_id parameters
845
+ if ( 'blog' == $args['event_type'] && 'posts' == $args['event'] ) {
846
+ $rule[] = array( 'post_type' => array( $operator['i_contains'] => $condition['key'] ) );
847
+ $rule[] = array( 'object_type' => array( $operator['i_contains'] => 'single' ) );
848
+
849
+ // If the value contains [[any]], don't set object_id in condition, because we want to search all posts
850
+ if ( false === strpos( $condition['value'], '[[any]]' ) ) {
851
+
852
+ // If the value is an array, separated by comma, set 'or' condition for the values
853
+ if ( false === strpos( $condition['value'], ',' ) ) {
854
+ $rule[] = array( 'object_id' => array( $operator['i_contains'] => $condition['value'] ) );
855
+ } else {
856
+ $or = array();
857
+ foreach ( array_map( 'trim', explode( ',', $condition['value'] ) ) as $value ) {
858
+ $or[] = array( 'object_id' => array( $operator[ $condition['operator'] ] => $value ) );
859
+ }
860
+
861
+ if ( 'include' === $args['main_condition'] ) {
862
+ $rule[] = array( 'or' => $or );
863
+ } else {
864
+ $rule = array_merge( $rule, $or );
865
+ }
866
+ }
867
+ }
868
+ }
869
+
870
+ // Add blog page condition for object_type, post_type and object_id parameters
871
+ elseif ( 'blog' == $args['event_type'] && 'pages' == $args['event'] ) {
872
+
873
+ // If [[any]] passed into value, search only for page (all), home, blog
874
+ if ( false !== strpos( $condition['value'], '[[any]]' ) ) {
875
+ $set = array(
876
+ array( 'object_type' => array( $operator['i_contains'] => 'home' ) ),
877
+ array( 'object_type' => array( $operator['i_contains'] => 'blog' ) ),
878
+ array( 'object_type' => array( $operator['i_contains'] => 'page' ) ),
879
+ );
880
+
881
+ if ( 'include' === $args['main_condition'] ) {
882
+ $rule[] = array( 'or' => $set );
883
+ } else {
884
+ $rule = array_merge( $rule, $set );
885
+ }
886
+ }
887
+
888
+ else {
889
+
890
+ // If the value is an array, separated by comma, set 'or' condition for the values
891
+ if ( false === strpos( $condition['value'], ',' ) ) {
892
+ if ( in_array( $condition['value'], array( 'home', 'blog' ) ) ) {
893
+ $rule[] = array( 'object_type' => array( $operator['i_contains'] => $condition['value'] ) );
894
+ } else {
895
+ $rule[] = array( 'post_type' => array( $operator['i_contains'] => 'page' ) );
896
+ $rule[] = array( 'object_type' => array( $operator['i_contains'] => 'page' ) );
897
+ $rule[] = array( 'object_id' => array( $operator['i_contains'] => $condition['value'] ) );
898
+ }
899
+ } else {
900
+ $or = array();
901
+ foreach ( array_map( 'trim', explode( ',', $condition['value'] ) ) as $value ) {
902
+ if ( in_array( $value, array( 'home', 'blog' ) ) ) {
903
+ $or[] = array( 'object_type' => array( $operator['i_contains'] => $value ) );
904
+ } else {
905
+ $set = array(
906
+ array( 'post_type' => array( $operator['i_contains'] => 'page' ) ),
907
+ array( 'object_type' => array( $operator['i_contains'] => 'page' ) ),
908
+ array( 'object_id' => array( $operator['i_contains'] => $value ) ),
909
+ );
910
+
911
+ // If we are in exclude mode, merge without operator because it will be already in a 'and' condition
912
+ if ( 'include' === $args['main_condition'] ) {
913
+ $or[] = array( 'and' => $set );
914
+ } else {
915
+ $or = array_merge( $or, $set );
916
+ }
917
+ }
918
+ }
919
+
920
+ if ( 'include' === $args['main_condition'] ) {
921
+ $rule[] = array( 'or' => $or );
922
+ } else {
923
+ $rule = array_merge( $rule, $or );
924
+ }
925
+ }
926
+ }
927
+ }
928
+
929
+ // other cases
930
+ else {
931
+
932
+ $param = isset( $condition['key'] ) ? $condition['key'] : $args['event'];
933
+
934
+ // If the key is [[all]], it shouldn't have any condition
935
+ if ( '[[any]]' != $param ) {
936
+
937
+ // If the value is [[any]], the condition must be not equal to empty
938
+ if ( '[[any]]' == $condition['value'] ) {
939
+ $rule[] = array( $param => array( $operator['neq'] => '' ) );
940
+ }
941
+
942
+ // If it's array, set 'or' operator
943
+ elseif ( false === strpos( $condition['value'], ',' ) ) {
944
+ $rule[] = array( $param => array( $operator[ $condition['operator'] ] => $condition['value'] ) );
945
+ } else {
946
+ $or = array();
947
+ foreach ( array_map( 'trim', explode( ',', $condition['value'] ) ) as $value ) {
948
+ $or[] = array( $param => array( $operator[ $condition['operator'] ] => $value ) );
949
+ }
950
+
951
+ if ( 'include' === $args['main_condition'] ) {
952
+ $rule[] = array( 'or' => $or );
953
+ } else {
954
+ $rule = array_merge( $rule, $or );
955
+ }
956
+ }
957
+
958
+ }
959
+
960
+ }
961
+ }
962
+
963
+ // Clean final array
964
+ if ( 1 == count( $rule ) && ( isset( $rule[0]['and'] ) || isset( $rule[0]['or'] ) ) ) {
965
+ foreach ( $rule[0] as $main_operator => $subrule ) {
966
+ $rule = $subrule;
967
+ }
968
+ }
969
+
970
+ return array( $main_operator => $rule );
971
+ }
972
+
973
+ /**
974
+ * Get the unique site ID for the
975
+ *
976
+ * @return string
977
+ */
978
+ public function get_uuid() {
979
+ if ( ! $uuid = get_option( 'aepc_fb_uuid' ) ) {
980
+ $uuid = $this->generate_uuid();
981
+ update_option( 'aepc_fb_uuid', $uuid );
982
+ }
983
+
984
+ return $uuid;
985
+ }
986
+
987
+ /**
988
+ * Generate the SITEID useful for fb request in UUIDv4
989
+ */
990
+ protected function generate_uuid() {
991
+ mt_srand( crc32( serialize( array( microtime( true ), $_SERVER['REMOTE_ADDR'] ) ) ) );
992
+
993
+ return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
994
+ // 32 bits for "time_low"
995
+ mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
996
+
997
+ // 16 bits for "time_mid"
998
+ mt_rand( 0, 0xffff ),
999
+
1000
+ // 16 bits for "time_hi_and_version",
1001
+ // four most significant bits holds version number 4
1002
+ mt_rand( 0, 0x0fff ) | 0x4000,
1003
+
1004
+ // 16 bits, 8 bits for "clk_seq_hi_res",
1005
+ // 8 bits for "clk_seq_low",
1006
+ // two most significant bits holds zero and one for variant DCE1.1
1007
+ mt_rand( 0, 0x3fff ) | 0x8000,
1008
+
1009
+ // 48 bits for "node"
1010
+ mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
1011
+ );
1012
+ }
1013
+
1014
+ /**
1015
+ * Check if the debug mode is active
1016
+ *
1017
+ * When the debug mode is active, the plugin shouldn't do any facebook request and give ability to use custom audiences
1018
+ * system.
1019
+ *
1020
+ * @return bool
1021
+ */
1022
+ public function is_debug() {
1023
+ return defined( 'AEPC_DEACTIVE_FB_REQUESTS' ) && AEPC_DEACTIVE_FB_REQUESTS;
1024
+ }
1025
+ }
1026
+
1027
+ return new AEPC_Facebook_Adapter();
includes/admin/dist/css/admin.css ADDED
@@ -0,0 +1,9313 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset "UTF-8";
2
+ /*!
3
+ * Admin pages common
4
+ */
5
+ @import url("//fonts.googleapis.com/icon?family=Material+Icons");
6
+ /*
7
+
8
+ To get this list of colors inject jQuery at http://www.google.com/design/spec/style/color.html#color-color-palette
9
+
10
+ Then, run this script to get the list@mixin (function(){
11
+ var colors = {}, main = {};
12
+ $(".color-group")@mixin each(function(){
13
+ var color = $(this).find(".name").text().trim().toLowerCase().replace(" ", "-");
14
+ colors[color] = {};
15
+
16
+ $(this)@mixin find(".color").not(".main-color").each(function(){
17
+ var shade = $(this).find(".shade").text().trim(),
18
+ hex = $(this).find(".hex").text().trim();
19
+
20
+ colors[color][shade] = hex;
21
+ });
22
+ main[color] = color + "-" + $(this).find(".main-color .shade").text().trim();
23
+
24
+ });
25
+ var LESS = "";
26
+ $@mixin each(colors, function(name, shades){
27
+ LESS += "\n\n";
28
+ $@mixin each(shades, function(shade, hex){
29
+ LESS += "$" + name + "-" + shade + ": " + hex + ";\n" !default;
30
+ });
31
+ if (main[name]) {
32
+ LESS += "$" + name + ": " + main[name] + ";\n" !default;
33
+ }
34
+ });
35
+ console.log(LESS);
36
+ })();
37
+
38
+
39
+ */
40
+ /* ANIMATION */
41
+ /* SHADOWS */
42
+ /* Shadows (from mdl http://www.getmdl.io/) */
43
+ @keyframes anim-spin {
44
+ 0% {
45
+ transform: rotate(0deg); }
46
+ 100% {
47
+ transform: rotate(-360deg); } }
48
+ .pixel-caffeine-wrapper * {
49
+ -webkit-box-sizing: border-box;
50
+ -moz-box-sizing: border-box;
51
+ box-sizing: border-box; }
52
+ .pixel-caffeine-wrapper *:before,
53
+ .pixel-caffeine-wrapper *:after {
54
+ -webkit-box-sizing: border-box;
55
+ -moz-box-sizing: border-box;
56
+ box-sizing: border-box; }
57
+ .pixel-caffeine-wrapper html {
58
+ font-size: 10px;
59
+ -webkit-tap-highlight-color: transparent; }
60
+ .pixel-caffeine-wrapper body {
61
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
62
+ font-size: 14px;
63
+ line-height: 1.42857;
64
+ color: #333333;
65
+ background-color: transparent; }
66
+ .pixel-caffeine-wrapper input,
67
+ .pixel-caffeine-wrapper button,
68
+ .pixel-caffeine-wrapper select,
69
+ .pixel-caffeine-wrapper textarea {
70
+ font-family: inherit;
71
+ font-size: inherit;
72
+ line-height: inherit; }
73
+ .pixel-caffeine-wrapper a {
74
+ color: #337ab7;
75
+ text-decoration: none; }
76
+ .pixel-caffeine-wrapper a:hover, .pixel-caffeine-wrapper a:focus {
77
+ color: #23527c;
78
+ text-decoration: underline; }
79
+ .pixel-caffeine-wrapper a:focus {
80
+ outline: 5px auto -webkit-focus-ring-color;
81
+ outline-offset: -2px; }
82
+ .pixel-caffeine-wrapper figure {
83
+ margin: 0; }
84
+ .pixel-caffeine-wrapper img {
85
+ vertical-align: middle; }
86
+ .pixel-caffeine-wrapper .img-responsive {
87
+ display: block;
88
+ max-width: 100%;
89
+ height: auto; }
90
+ .pixel-caffeine-wrapper .img-rounded {
91
+ border-radius: 6px; }
92
+ .pixel-caffeine-wrapper .img-thumbnail {
93
+ padding: 4px;
94
+ line-height: 1.42857;
95
+ background-color: #fff;
96
+ border: 1px solid #ddd;
97
+ border-radius: 4px;
98
+ -webkit-transition: all 0.2s ease-in-out;
99
+ -o-transition: all 0.2s ease-in-out;
100
+ transition: all 0.2s ease-in-out;
101
+ display: inline-block;
102
+ max-width: 100%;
103
+ height: auto; }
104
+ .pixel-caffeine-wrapper .img-circle {
105
+ border-radius: 50%; }
106
+ .pixel-caffeine-wrapper hr {
107
+ margin-top: 20px;
108
+ margin-bottom: 20px;
109
+ border: 0;
110
+ border-top: 1px solid #eeeeee; }
111
+ .pixel-caffeine-wrapper .sr-only {
112
+ position: absolute;
113
+ width: 1px;
114
+ height: 1px;
115
+ margin: -1px;
116
+ padding: 0;
117
+ overflow: hidden;
118
+ clip: rect(0, 0, 0, 0);
119
+ border: 0; }
120
+ .pixel-caffeine-wrapper .sr-only-focusable:active, .pixel-caffeine-wrapper .sr-only-focusable:focus {
121
+ position: static;
122
+ width: auto;
123
+ height: auto;
124
+ margin: 0;
125
+ overflow: visible;
126
+ clip: auto; }
127
+ .pixel-caffeine-wrapper [role="button"] {
128
+ cursor: pointer; }
129
+ .pixel-caffeine-wrapper h1, .pixel-caffeine-wrapper h2, .pixel-caffeine-wrapper h3, .pixel-caffeine-wrapper h4, .pixel-caffeine-wrapper h5, .pixel-caffeine-wrapper h6,
130
+ .pixel-caffeine-wrapper .h1, .pixel-caffeine-wrapper .h2, .pixel-caffeine-wrapper .h3, .pixel-caffeine-wrapper .h4, .pixel-caffeine-wrapper .h5, .pixel-caffeine-wrapper .h6 {
131
+ font-family: inherit;
132
+ font-weight: 700;
133
+ line-height: 1.1;
134
+ color: inherit; }
135
+ .pixel-caffeine-wrapper h1 small,
136
+ .pixel-caffeine-wrapper h1 .small, .pixel-caffeine-wrapper h2 small,
137
+ .pixel-caffeine-wrapper h2 .small, .pixel-caffeine-wrapper h3 small,
138
+ .pixel-caffeine-wrapper h3 .small, .pixel-caffeine-wrapper h4 small,
139
+ .pixel-caffeine-wrapper h4 .small, .pixel-caffeine-wrapper h5 small,
140
+ .pixel-caffeine-wrapper h5 .small, .pixel-caffeine-wrapper h6 small,
141
+ .pixel-caffeine-wrapper h6 .small,
142
+ .pixel-caffeine-wrapper .h1 small,
143
+ .pixel-caffeine-wrapper .h1 .small, .pixel-caffeine-wrapper .h2 small,
144
+ .pixel-caffeine-wrapper .h2 .small, .pixel-caffeine-wrapper .h3 small,
145
+ .pixel-caffeine-wrapper .h3 .small, .pixel-caffeine-wrapper .h4 small,
146
+ .pixel-caffeine-wrapper .h4 .small, .pixel-caffeine-wrapper .h5 small,
147
+ .pixel-caffeine-wrapper .h5 .small, .pixel-caffeine-wrapper .h6 small,
148
+ .pixel-caffeine-wrapper .h6 .small {
149
+ font-weight: normal;
150
+ line-height: 1;
151
+ color: #777777; }
152
+ .pixel-caffeine-wrapper h1, .pixel-caffeine-wrapper .h1,
153
+ .pixel-caffeine-wrapper h2, .pixel-caffeine-wrapper .h2,
154
+ .pixel-caffeine-wrapper h3, .pixel-caffeine-wrapper .h3 {
155
+ margin-top: 20px;
156
+ margin-bottom: 10px; }
157
+ .pixel-caffeine-wrapper h1 small,
158
+ .pixel-caffeine-wrapper h1 .small, .pixel-caffeine-wrapper .h1 small,
159
+ .pixel-caffeine-wrapper .h1 .small,
160
+ .pixel-caffeine-wrapper h2 small,
161
+ .pixel-caffeine-wrapper h2 .small, .pixel-caffeine-wrapper .h2 small,
162
+ .pixel-caffeine-wrapper .h2 .small,
163
+ .pixel-caffeine-wrapper h3 small,
164
+ .pixel-caffeine-wrapper h3 .small, .pixel-caffeine-wrapper .h3 small,
165
+ .pixel-caffeine-wrapper .h3 .small {
166
+ font-size: 65%; }
167
+ .pixel-caffeine-wrapper h4, .pixel-caffeine-wrapper .h4,
168
+ .pixel-caffeine-wrapper h5, .pixel-caffeine-wrapper .h5,
169
+ .pixel-caffeine-wrapper h6, .pixel-caffeine-wrapper .h6 {
170
+ margin-top: 10px;
171
+ margin-bottom: 10px; }
172
+ .pixel-caffeine-wrapper h4 small,
173
+ .pixel-caffeine-wrapper h4 .small, .pixel-caffeine-wrapper .h4 small,
174
+ .pixel-caffeine-wrapper .h4 .small,
175
+ .pixel-caffeine-wrapper h5 small,
176
+ .pixel-caffeine-wrapper h5 .small, .pixel-caffeine-wrapper .h5 small,
177
+ .pixel-caffeine-wrapper .h5 .small,
178
+ .pixel-caffeine-wrapper h6 small,
179
+ .pixel-caffeine-wrapper h6 .small, .pixel-caffeine-wrapper .h6 small,
180
+ .pixel-caffeine-wrapper .h6 .small {
181
+ font-size: 75%; }
182
+ .pixel-caffeine-wrapper h1, .pixel-caffeine-wrapper .h1 {
183
+ font-size: 36px; }
184
+ .pixel-caffeine-wrapper h2, .pixel-caffeine-wrapper .h2 {
185
+ font-size: 30px; }
186
+ .pixel-caffeine-wrapper h3, .pixel-caffeine-wrapper .h3 {
187
+ font-size: 24px; }
188
+ .pixel-caffeine-wrapper h4, .pixel-caffeine-wrapper .h4 {
189
+ font-size: 18px; }
190
+ .pixel-caffeine-wrapper h5, .pixel-caffeine-wrapper .h5 {
191
+ font-size: 14px; }
192
+ .pixel-caffeine-wrapper h6, .pixel-caffeine-wrapper .h6 {
193
+ font-size: 12px; }
194
+ .pixel-caffeine-wrapper p {
195
+ margin: 0 0 10px; }
196
+ .pixel-caffeine-wrapper .lead {
197
+ margin-bottom: 20px;
198
+ font-size: 16px;
199
+ font-weight: 300;
200
+ line-height: 1.4; }
201
+ @media (min-width: 768px) {
202
+ .pixel-caffeine-wrapper .lead {
203
+ font-size: 21px; } }
204
+ .pixel-caffeine-wrapper small,
205
+ .pixel-caffeine-wrapper .small {
206
+ font-size: 85%; }
207
+ .pixel-caffeine-wrapper mark,
208
+ .pixel-caffeine-wrapper .mark {
209
+ background-color: #fcf8e3;
210
+ padding: .2em; }
211
+ .pixel-caffeine-wrapper .text-left {
212
+ text-align: left; }
213
+ .pixel-caffeine-wrapper .text-right {
214
+ text-align: right; }
215
+ .pixel-caffeine-wrapper .text-center {
216
+ text-align: center; }
217
+ .pixel-caffeine-wrapper .text-justify {
218
+ text-align: justify; }
219
+ .pixel-caffeine-wrapper .text-nowrap {
220
+ white-space: nowrap; }
221
+ .pixel-caffeine-wrapper .text-lowercase {
222
+ text-transform: lowercase; }
223
+ .pixel-caffeine-wrapper .text-uppercase, .pixel-caffeine-wrapper .initialism {
224
+ text-transform: uppercase; }
225
+ .pixel-caffeine-wrapper .text-capitalize {
226
+ text-transform: capitalize; }
227
+ .pixel-caffeine-wrapper .text-muted {
228
+ color: #777777; }
229
+ .pixel-caffeine-wrapper .text-primary {
230
+ color: #4C70BA; }
231
+ .pixel-caffeine-wrapper a.text-primary:hover,
232
+ .pixel-caffeine-wrapper a.text-primary:focus {
233
+ color: #3b5998; }
234
+ .pixel-caffeine-wrapper .text-success {
235
+ color: #3c763d; }
236
+ .pixel-caffeine-wrapper a.text-success:hover,
237
+ .pixel-caffeine-wrapper a.text-success:focus {
238
+ color: #2b542c; }
239
+ .pixel-caffeine-wrapper .text-info {
240
+ color: #31708f; }
241
+ .pixel-caffeine-wrapper a.text-info:hover,
242
+ .pixel-caffeine-wrapper a.text-info:focus {
243
+ color: #245269; }
244
+ .pixel-caffeine-wrapper .text-warning {
245
+ color: #8a6d3b; }
246
+ .pixel-caffeine-wrapper a.text-warning:hover,
247
+ .pixel-caffeine-wrapper a.text-warning:focus {
248
+ color: #66512c; }
249
+ .pixel-caffeine-wrapper .text-danger {
250
+ color: #a94442; }
251
+ .pixel-caffeine-wrapper a.text-danger:hover,
252
+ .pixel-caffeine-wrapper a.text-danger:focus {
253
+ color: #843534; }
254
+ .pixel-caffeine-wrapper .bg-primary {
255
+ color: #fff; }
256
+ .pixel-caffeine-wrapper .bg-primary {
257
+ background-color: #4C70BA; }
258
+ .pixel-caffeine-wrapper a.bg-primary:hover,
259
+ .pixel-caffeine-wrapper a.bg-primary:focus {
260
+ background-color: #3b5998; }
261
+ .pixel-caffeine-wrapper .bg-success {
262
+ background-color: #dff0d8; }
263
+ .pixel-caffeine-wrapper a.bg-success:hover,
264
+ .pixel-caffeine-wrapper a.bg-success:focus {
265
+ background-color: #c1e2b3; }
266
+ .pixel-caffeine-wrapper .bg-info {
267
+ background-color: #d9edf7; }
268
+ .pixel-caffeine-wrapper a.bg-info:hover,
269
+ .pixel-caffeine-wrapper a.bg-info:focus {
270
+ background-color: #afd9ee; }
271
+ .pixel-caffeine-wrapper .bg-warning {
272
+ background-color: #fcf8e3; }
273
+ .pixel-caffeine-wrapper a.bg-warning:hover,
274
+ .pixel-caffeine-wrapper a.bg-warning:focus {
275
+ background-color: #f7ecb5; }
276
+ .pixel-caffeine-wrapper .bg-danger {
277
+ background-color: #f2dede; }
278
+ .pixel-caffeine-wrapper a.bg-danger:hover,
279
+ .pixel-caffeine-wrapper a.bg-danger:focus {
280
+ background-color: #e4b9b9; }
281
+ .pixel-caffeine-wrapper .page-header {
282
+ padding-bottom: 9px;
283
+ margin: 40px 0 20px;
284
+ border-bottom: 1px solid #eeeeee; }
285
+ .pixel-caffeine-wrapper ul,
286
+ .pixel-caffeine-wrapper ol {
287
+ margin-top: 0;
288
+ margin-bottom: 10px; }
289
+ .pixel-caffeine-wrapper ul ul,
290
+ .pixel-caffeine-wrapper ul ol,
291
+ .pixel-caffeine-wrapper ol ul,
292
+ .pixel-caffeine-wrapper ol ol {
293
+ margin-bottom: 0; }
294
+ .pixel-caffeine-wrapper .list-unstyled {
295
+ padding-left: 0;
296
+ list-style: none; }
297
+ .pixel-caffeine-wrapper .list-inline {
298
+ padding-left: 0;
299
+ list-style: none;
300
+ margin-left: -5px; }
301
+ .pixel-caffeine-wrapper .list-inline > li {
302
+ display: inline-block;
303
+ padding-left: 5px;
304
+ padding-right: 5px; }
305
+ .pixel-caffeine-wrapper dl {
306
+ margin-top: 0;
307
+ margin-bottom: 20px; }
308
+ .pixel-caffeine-wrapper dt,
309
+ .pixel-caffeine-wrapper dd {
310
+ line-height: 1.42857; }
311
+ .pixel-caffeine-wrapper dt {
312
+ font-weight: bold; }
313
+ .pixel-caffeine-wrapper dd {
314
+ margin-left: 0; }
315
+ .pixel-caffeine-wrapper .dl-horizontal dd:before, .pixel-caffeine-wrapper .dl-horizontal dd:after {
316
+ content: " ";
317
+ display: table; }
318
+ .pixel-caffeine-wrapper .dl-horizontal dd:after {
319
+ clear: both; }
320
+ @media (min-width: 768px) {
321
+ .pixel-caffeine-wrapper .dl-horizontal dt {
322
+ float: left;
323
+ width: 160px;
324
+ clear: left;
325
+ text-align: right;
326
+ overflow: hidden;
327
+ text-overflow: ellipsis;
328
+ white-space: nowrap; }
329
+ .pixel-caffeine-wrapper .dl-horizontal dd {
330
+ margin-left: 180px; } }
331
+ .pixel-caffeine-wrapper abbr[title],
332
+ .pixel-caffeine-wrapper abbr[data-original-title] {
333
+ cursor: help;
334
+ border-bottom: 1px dotted #777777; }
335
+ .pixel-caffeine-wrapper .initialism {
336
+ font-size: 90%; }
337
+ .pixel-caffeine-wrapper blockquote {
338
+ padding: 10px 20px;
339
+ margin: 0 0 20px;
340
+ font-size: 17.5px;
341
+ border-left: 5px solid #eeeeee; }
342
+ .pixel-caffeine-wrapper blockquote p:last-child,
343
+ .pixel-caffeine-wrapper blockquote ul:last-child,
344
+ .pixel-caffeine-wrapper blockquote ol:last-child {
345
+ margin-bottom: 0; }
346
+ .pixel-caffeine-wrapper blockquote footer,
347
+ .pixel-caffeine-wrapper blockquote small,
348
+ .pixel-caffeine-wrapper blockquote .small {
349
+ display: block;
350
+ font-size: 80%;
351
+ line-height: 1.42857;
352
+ color: #777777; }
353
+ .pixel-caffeine-wrapper blockquote footer:before,
354
+ .pixel-caffeine-wrapper blockquote small:before,
355
+ .pixel-caffeine-wrapper blockquote .small:before {
356
+ content: '\2014 \00A0'; }
357
+ .pixel-caffeine-wrapper .blockquote-reverse,
358
+ .pixel-caffeine-wrapper blockquote.pull-right {
359
+ padding-right: 15px;
360
+ padding-left: 0;
361
+ border-right: 5px solid #eeeeee;
362
+ border-left: 0;
363
+ text-align: right; }
364
+ .pixel-caffeine-wrapper .blockquote-reverse footer:before,
365
+ .pixel-caffeine-wrapper .blockquote-reverse small:before,
366
+ .pixel-caffeine-wrapper .blockquote-reverse .small:before,
367
+ .pixel-caffeine-wrapper blockquote.pull-right footer:before,
368
+ .pixel-caffeine-wrapper blockquote.pull-right small:before,
369
+ .pixel-caffeine-wrapper blockquote.pull-right .small:before {
370
+ content: ''; }
371
+ .pixel-caffeine-wrapper .blockquote-reverse footer:after,
372
+ .pixel-caffeine-wrapper .blockquote-reverse small:after,
373
+ .pixel-caffeine-wrapper .blockquote-reverse .small:after,
374
+ .pixel-caffeine-wrapper blockquote.pull-right footer:after,
375
+ .pixel-caffeine-wrapper blockquote.pull-right small:after,
376
+ .pixel-caffeine-wrapper blockquote.pull-right .small:after {
377
+ content: '\00A0 \2014'; }
378
+ .pixel-caffeine-wrapper address {
379
+ margin-bottom: 20px;
380
+ font-style: normal;
381
+ line-height: 1.42857; }
382
+ .pixel-caffeine-wrapper code,
383
+ .pixel-caffeine-wrapper kbd,
384
+ .pixel-caffeine-wrapper pre,
385
+ .pixel-caffeine-wrapper samp {
386
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace; }
387
+ .pixel-caffeine-wrapper code {
388
+ padding: 2px 4px;
389
+ font-size: 90%;
390
+ color: #c7254e;
391
+ background-color: #f9f2f4;
392
+ border-radius: 4px; }
393
+ .pixel-caffeine-wrapper kbd {
394
+ padding: 2px 4px;
395
+ font-size: 90%;
396
+ color: #fff;
397
+ background-color: #333;
398
+ border-radius: 3px;
399
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); }
400
+ .pixel-caffeine-wrapper kbd kbd {
401
+ padding: 0;
402
+ font-size: 100%;
403
+ font-weight: bold;
404
+ box-shadow: none; }
405
+ .pixel-caffeine-wrapper pre {
406
+ display: block;
407
+ padding: 9.5px;
408
+ margin: 0 0 10px;
409
+ font-size: 13px;
410
+ line-height: 1.42857;
411
+ word-break: break-all;
412
+ word-wrap: break-word;
413
+ color: #333333;
414
+ background-color: #f5f5f5;
415
+ border: 1px solid #ccc;
416
+ border-radius: 4px; }
417
+ .pixel-caffeine-wrapper pre code {
418
+ padding: 0;
419
+ font-size: inherit;
420
+ color: inherit;
421
+ white-space: pre-wrap;
422
+ background-color: transparent;
423
+ border-radius: 0; }
424
+ .pixel-caffeine-wrapper .pre-scrollable {
425
+ max-height: 340px;
426
+ overflow-y: scroll; }
427
+ .pixel-caffeine-wrapper .container {
428
+ margin-right: auto;
429
+ margin-left: auto;
430
+ padding-left: 15px;
431
+ padding-right: 15px; }
432
+ .pixel-caffeine-wrapper .container:before, .pixel-caffeine-wrapper .container:after {
433
+ content: " ";
434
+ display: table; }
435
+ .pixel-caffeine-wrapper .container:after {
436
+ clear: both; }
437
+ @media (min-width: 768px) {
438
+ .pixel-caffeine-wrapper .container {
439
+ width: 750px; } }
440
+ @media (min-width: 992px) {
441
+ .pixel-caffeine-wrapper .container {
442
+ width: 970px; } }
443
+ @media (min-width: 1200px) {
444
+ .pixel-caffeine-wrapper .container {
445
+ width: 1170px; } }
446
+ .pixel-caffeine-wrapper .container-fluid {
447
+ margin-right: auto;
448
+ margin-left: auto;
449
+ padding-left: 15px;
450
+ padding-right: 15px; }
451
+ .pixel-caffeine-wrapper .container-fluid:before, .pixel-caffeine-wrapper .container-fluid:after {
452
+ content: " ";
453
+ display: table; }
454
+ .pixel-caffeine-wrapper .container-fluid:after {
455
+ clear: both; }
456
+ .pixel-caffeine-wrapper .row {
457
+ margin-left: -15px;
458
+ margin-right: -15px; }
459
+ .pixel-caffeine-wrapper .row:before, .pixel-caffeine-wrapper .row:after {
460
+ content: " ";
461
+ display: table; }
462
+ .pixel-caffeine-wrapper .row:after {
463
+ clear: both; }
464
+ .pixel-caffeine-wrapper .col-xs-1, .pixel-caffeine-wrapper .col-sm-1, .pixel-caffeine-wrapper .col-md-1, .pixel-caffeine-wrapper .col-lg-1, .pixel-caffeine-wrapper .col-xs-2, .pixel-caffeine-wrapper .col-sm-2, .pixel-caffeine-wrapper .col-md-2, .pixel-caffeine-wrapper .col-lg-2, .pixel-caffeine-wrapper .col-xs-3, .pixel-caffeine-wrapper .col-sm-3, .pixel-caffeine-wrapper .col-md-3, .pixel-caffeine-wrapper .col-lg-3, .pixel-caffeine-wrapper .col-xs-4, .pixel-caffeine-wrapper .col-sm-4, .pixel-caffeine-wrapper .col-md-4, .pixel-caffeine-wrapper .col-lg-4, .pixel-caffeine-wrapper .col-xs-5, .pixel-caffeine-wrapper .col-sm-5, .pixel-caffeine-wrapper .col-md-5, .pixel-caffeine-wrapper .col-lg-5, .pixel-caffeine-wrapper .col-xs-6, .pixel-caffeine-wrapper .col-sm-6, .pixel-caffeine-wrapper .col-md-6, .pixel-caffeine-wrapper .col-lg-6, .pixel-caffeine-wrapper .col-xs-7, .pixel-caffeine-wrapper .col-sm-7, .pixel-caffeine-wrapper .col-md-7, .pixel-caffeine-wrapper .col-lg-7, .pixel-caffeine-wrapper .col-xs-8, .pixel-caffeine-wrapper .col-sm-8, .pixel-caffeine-wrapper .col-md-8, .pixel-caffeine-wrapper .col-lg-8, .pixel-caffeine-wrapper .col-xs-9, .pixel-caffeine-wrapper .col-sm-9, .pixel-caffeine-wrapper .col-md-9, .pixel-caffeine-wrapper .col-lg-9, .pixel-caffeine-wrapper .col-xs-10, .pixel-caffeine-wrapper .col-sm-10, .pixel-caffeine-wrapper .col-md-10, .pixel-caffeine-wrapper .col-lg-10, .pixel-caffeine-wrapper .col-xs-11, .pixel-caffeine-wrapper .col-sm-11, .pixel-caffeine-wrapper .col-md-11, .pixel-caffeine-wrapper .col-lg-11, .pixel-caffeine-wrapper .col-xs-12, .pixel-caffeine-wrapper .col-sm-12, .pixel-caffeine-wrapper .col-md-12, .pixel-caffeine-wrapper .col-lg-12 {
465
+ position: relative;
466
+ min-height: 1px;
467
+ padding-left: 15px;
468
+ padding-right: 15px; }
469
+ .pixel-caffeine-wrapper .col-xs-1, .pixel-caffeine-wrapper .col-xs-2, .pixel-caffeine-wrapper .col-xs-3, .pixel-caffeine-wrapper .col-xs-4, .pixel-caffeine-wrapper .col-xs-5, .pixel-caffeine-wrapper .col-xs-6, .pixel-caffeine-wrapper .col-xs-7, .pixel-caffeine-wrapper .col-xs-8, .pixel-caffeine-wrapper .col-xs-9, .pixel-caffeine-wrapper .col-xs-10, .pixel-caffeine-wrapper .col-xs-11, .pixel-caffeine-wrapper .col-xs-12 {
470
+ float: left; }
471
+ .pixel-caffeine-wrapper .col-xs-1 {
472
+ width: 8.33333%; }
473
+ .pixel-caffeine-wrapper .col-xs-2 {
474
+ width: 16.66667%; }
475
+ .pixel-caffeine-wrapper .col-xs-3 {
476
+ width: 25%; }
477
+ .pixel-caffeine-wrapper .col-xs-4 {
478
+ width: 33.33333%; }
479
+ .pixel-caffeine-wrapper .col-xs-5 {
480
+ width: 41.66667%; }
481
+ .pixel-caffeine-wrapper .col-xs-6 {
482
+ width: 50%; }
483
+ .pixel-caffeine-wrapper .col-xs-7 {
484
+ width: 58.33333%; }
485
+ .pixel-caffeine-wrapper .col-xs-8 {
486
+ width: 66.66667%; }
487
+ .pixel-caffeine-wrapper .col-xs-9 {
488
+ width: 75%; }
489
+ .pixel-caffeine-wrapper .col-xs-10 {
490
+ width: 83.33333%; }
491
+ .pixel-caffeine-wrapper .col-xs-11 {
492
+ width: 91.66667%; }
493
+ .pixel-caffeine-wrapper .col-xs-12 {
494
+ width: 100%; }
495
+ .pixel-caffeine-wrapper .col-xs-pull-0 {
496
+ right: auto; }
497
+ .pixel-caffeine-wrapper .col-xs-pull-1 {
498
+ right: 8.33333%; }
499
+ .pixel-caffeine-wrapper .col-xs-pull-2 {
500
+ right: 16.66667%; }
501
+ .pixel-caffeine-wrapper .col-xs-pull-3 {
502
+ right: 25%; }
503
+ .pixel-caffeine-wrapper .col-xs-pull-4 {
504
+ right: 33.33333%; }
505
+ .pixel-caffeine-wrapper .col-xs-pull-5 {
506
+ right: 41.66667%; }
507
+ .pixel-caffeine-wrapper .col-xs-pull-6 {
508
+ right: 50%; }
509
+ .pixel-caffeine-wrapper .col-xs-pull-7 {
510
+ right: 58.33333%; }
511
+ .pixel-caffeine-wrapper .col-xs-pull-8 {
512
+ right: 66.66667%; }
513
+ .pixel-caffeine-wrapper .col-xs-pull-9 {
514
+ right: 75%; }
515
+ .pixel-caffeine-wrapper .col-xs-pull-10 {
516
+ right: 83.33333%; }
517
+ .pixel-caffeine-wrapper .col-xs-pull-11 {
518
+ right: 91.66667%; }
519
+ .pixel-caffeine-wrapper .col-xs-pull-12 {
520
+ right: 100%; }
521
+ .pixel-caffeine-wrapper .col-xs-push-0 {
522
+ left: auto; }
523
+ .pixel-caffeine-wrapper .col-xs-push-1 {
524
+ left: 8.33333%; }
525
+ .pixel-caffeine-wrapper .col-xs-push-2 {
526
+ left: 16.66667%; }
527
+ .pixel-caffeine-wrapper .col-xs-push-3 {
528
+ left: 25%; }
529
+ .pixel-caffeine-wrapper .col-xs-push-4 {
530
+ left: 33.33333%; }
531
+ .pixel-caffeine-wrapper .col-xs-push-5 {
532
+ left: 41.66667%; }
533
+ .pixel-caffeine-wrapper .col-xs-push-6 {
534
+ left: 50%; }
535
+ .pixel-caffeine-wrapper .col-xs-push-7 {
536
+ left: 58.33333%; }
537
+ .pixel-caffeine-wrapper .col-xs-push-8 {
538
+ left: 66.66667%; }
539
+ .pixel-caffeine-wrapper .col-xs-push-9 {
540
+ left: 75%; }
541
+ .pixel-caffeine-wrapper .col-xs-push-10 {
542
+ left: 83.33333%; }
543
+ .pixel-caffeine-wrapper .col-xs-push-11 {
544
+ left: 91.66667%; }
545
+ .pixel-caffeine-wrapper .col-xs-push-12 {
546
+ left: 100%; }
547
+ .pixel-caffeine-wrapper .col-xs-offset-0 {
548
+ margin-left: 0%; }
549
+ .pixel-caffeine-wrapper .col-xs-offset-1 {
550
+ margin-left: 8.33333%; }
551
+ .pixel-caffeine-wrapper .col-xs-offset-2 {
552
+ margin-left: 16.66667%; }
553
+ .pixel-caffeine-wrapper .col-xs-offset-3 {
554
+ margin-left: 25%; }
555
+ .pixel-caffeine-wrapper .col-xs-offset-4 {
556
+ margin-left: 33.33333%; }
557
+ .pixel-caffeine-wrapper .col-xs-offset-5 {
558
+ margin-left: 41.66667%; }
559
+ .pixel-caffeine-wrapper .col-xs-offset-6 {
560
+ margin-left: 50%; }
561
+ .pixel-caffeine-wrapper .col-xs-offset-7 {
562
+ margin-left: 58.33333%; }
563
+ .pixel-caffeine-wrapper .col-xs-offset-8 {
564
+ margin-left: 66.66667%; }
565
+ .pixel-caffeine-wrapper .col-xs-offset-9 {
566
+ margin-left: 75%; }
567
+ .pixel-caffeine-wrapper .col-xs-offset-10 {
568
+ margin-left: 83.33333%; }
569
+ .pixel-caffeine-wrapper .col-xs-offset-11 {
570
+ margin-left: 91.66667%; }
571
+ .pixel-caffeine-wrapper .col-xs-offset-12 {
572
+ margin-left: 100%; }
573
+ @media (min-width: 768px) {
574
+ .pixel-caffeine-wrapper .col-sm-1, .pixel-caffeine-wrapper .col-sm-2, .pixel-caffeine-wrapper .col-sm-3, .pixel-caffeine-wrapper .col-sm-4, .pixel-caffeine-wrapper .col-sm-5, .pixel-caffeine-wrapper .col-sm-6, .pixel-caffeine-wrapper .col-sm-7, .pixel-caffeine-wrapper .col-sm-8, .pixel-caffeine-wrapper .col-sm-9, .pixel-caffeine-wrapper .col-sm-10, .pixel-caffeine-wrapper .col-sm-11, .pixel-caffeine-wrapper .col-sm-12 {
575
+ float: left; }
576
+ .pixel-caffeine-wrapper .col-sm-1 {
577
+ width: 8.33333%; }
578
+ .pixel-caffeine-wrapper .col-sm-2 {
579
+ width: 16.66667%; }
580
+ .pixel-caffeine-wrapper .col-sm-3 {
581
+ width: 25%; }
582
+ .pixel-caffeine-wrapper .col-sm-4 {
583
+ width: 33.33333%; }
584
+ .pixel-caffeine-wrapper .col-sm-5 {
585
+ width: 41.66667%; }
586
+ .pixel-caffeine-wrapper .col-sm-6 {
587
+ width: 50%; }
588
+ .pixel-caffeine-wrapper .col-sm-7 {
589
+ width: 58.33333%; }
590
+ .pixel-caffeine-wrapper .col-sm-8 {
591
+ width: 66.66667%; }
592
+ .pixel-caffeine-wrapper .col-sm-9 {
593
+ width: 75%; }
594
+ .pixel-caffeine-wrapper .col-sm-10 {
595
+ width: 83.33333%; }
596
+ .pixel-caffeine-wrapper .col-sm-11 {
597
+ width: 91.66667%; }
598
+ .pixel-caffeine-wrapper .col-sm-12 {
599
+ width: 100%; }
600
+ .pixel-caffeine-wrapper .col-sm-pull-0 {
601
+ right: auto; }
602
+ .pixel-caffeine-wrapper .col-sm-pull-1 {
603
+ right: 8.33333%; }
604
+ .pixel-caffeine-wrapper .col-sm-pull-2 {
605
+ right: 16.66667%; }
606
+ .pixel-caffeine-wrapper .col-sm-pull-3 {
607
+ right: 25%; }
608
+ .pixel-caffeine-wrapper .col-sm-pull-4 {
609
+ right: 33.33333%; }
610
+ .pixel-caffeine-wrapper .col-sm-pull-5 {
611
+ right: 41.66667%; }
612
+ .pixel-caffeine-wrapper .col-sm-pull-6 {
613
+ right: 50%; }
614
+ .pixel-caffeine-wrapper .col-sm-pull-7 {
615
+ right: 58.33333%; }
616
+ .pixel-caffeine-wrapper .col-sm-pull-8 {
617
+ right: 66.66667%; }
618
+ .pixel-caffeine-wrapper .col-sm-pull-9 {
619
+ right: 75%; }
620
+ .pixel-caffeine-wrapper .col-sm-pull-10 {
621
+ right: 83.33333%; }
622
+ .pixel-caffeine-wrapper .col-sm-pull-11 {
623
+ right: 91.66667%; }
624
+ .pixel-caffeine-wrapper .col-sm-pull-12 {
625
+ right: 100%; }
626
+ .pixel-caffeine-wrapper .col-sm-push-0 {
627
+ left: auto; }
628
+ .pixel-caffeine-wrapper .col-sm-push-1 {
629
+ left: 8.33333%; }
630
+ .pixel-caffeine-wrapper .col-sm-push-2 {
631
+ left: 16.66667%; }
632
+ .pixel-caffeine-wrapper .col-sm-push-3 {
633
+ left: 25%; }
634
+ .pixel-caffeine-wrapper .col-sm-push-4 {
635
+ left: 33.33333%; }
636
+ .pixel-caffeine-wrapper .col-sm-push-5 {
637
+ left: 41.66667%; }
638
+ .pixel-caffeine-wrapper .col-sm-push-6 {
639
+ left: 50%; }
640
+ .pixel-caffeine-wrapper .col-sm-push-7 {
641
+ left: 58.33333%; }
642
+ .pixel-caffeine-wrapper .col-sm-push-8 {
643
+ left: 66.66667%; }
644
+ .pixel-caffeine-wrapper .col-sm-push-9 {
645
+ left: 75%; }
646
+ .pixel-caffeine-wrapper .col-sm-push-10 {
647
+ left: 83.33333%; }
648
+ .pixel-caffeine-wrapper .col-sm-push-11 {
649
+ left: 91.66667%; }
650
+ .pixel-caffeine-wrapper .col-sm-push-12 {
651
+ left: 100%; }
652
+ .pixel-caffeine-wrapper .col-sm-offset-0 {
653
+ margin-left: 0%; }
654
+ .pixel-caffeine-wrapper .col-sm-offset-1 {
655
+ margin-left: 8.33333%; }
656
+ .pixel-caffeine-wrapper .col-sm-offset-2 {
657
+ margin-left: 16.66667%; }
658
+ .pixel-caffeine-wrapper .col-sm-offset-3 {
659
+ margin-left: 25%; }
660
+ .pixel-caffeine-wrapper .col-sm-offset-4 {
661
+ margin-left: 33.33333%; }
662
+ .pixel-caffeine-wrapper .col-sm-offset-5 {
663
+ margin-left: 41.66667%; }
664
+ .pixel-caffeine-wrapper .col-sm-offset-6 {
665
+ margin-left: 50%; }
666
+ .pixel-caffeine-wrapper .col-sm-offset-7 {
667
+ margin-left: 58.33333%; }
668
+ .pixel-caffeine-wrapper .col-sm-offset-8 {
669
+ margin-left: 66.66667%; }
670
+ .pixel-caffeine-wrapper .col-sm-offset-9 {
671
+ margin-left: 75%; }
672
+ .pixel-caffeine-wrapper .col-sm-offset-10 {
673
+ margin-left: 83.33333%; }
674
+ .pixel-caffeine-wrapper .col-sm-offset-11 {
675
+ margin-left: 91.66667%; }
676
+ .pixel-caffeine-wrapper .col-sm-offset-12 {
677
+ margin-left: 100%; } }
678
+ @media (min-width: 992px) {
679
+ .pixel-caffeine-wrapper .col-md-1, .pixel-caffeine-wrapper .col-md-2, .pixel-caffeine-wrapper .col-md-3, .pixel-caffeine-wrapper .col-md-4, .pixel-caffeine-wrapper .col-md-5, .pixel-caffeine-wrapper .col-md-6, .pixel-caffeine-wrapper .col-md-7, .pixel-caffeine-wrapper .col-md-8, .pixel-caffeine-wrapper .col-md-9, .pixel-caffeine-wrapper .col-md-10, .pixel-caffeine-wrapper .col-md-11, .pixel-caffeine-wrapper .col-md-12 {
680
+ float: left; }
681
+ .pixel-caffeine-wrapper .col-md-1 {
682
+ width: 8.33333%; }
683
+ .pixel-caffeine-wrapper .col-md-2 {
684
+ width: 16.66667%; }
685
+ .pixel-caffeine-wrapper .col-md-3 {
686
+ width: 25%; }
687
+ .pixel-caffeine-wrapper .col-md-4 {
688
+ width: 33.33333%; }
689
+ .pixel-caffeine-wrapper .col-md-5 {
690
+ width: 41.66667%; }
691
+ .pixel-caffeine-wrapper .col-md-6 {
692
+ width: 50%; }
693
+ .pixel-caffeine-wrapper .col-md-7 {
694
+ width: 58.33333%; }
695
+ .pixel-caffeine-wrapper .col-md-8 {
696
+ width: 66.66667%; }
697
+ .pixel-caffeine-wrapper .col-md-9 {
698
+ width: 75%; }
699
+ .pixel-caffeine-wrapper .col-md-10 {
700
+ width: 83.33333%; }
701
+ .pixel-caffeine-wrapper .col-md-11 {
702
+ width: 91.66667%; }
703
+ .pixel-caffeine-wrapper .col-md-12 {
704
+ width: 100%; }
705
+ .pixel-caffeine-wrapper .col-md-pull-0 {
706
+ right: auto; }
707
+ .pixel-caffeine-wrapper .col-md-pull-1 {
708
+ right: 8.33333%; }
709
+ .pixel-caffeine-wrapper .col-md-pull-2 {
710
+ right: 16.66667%; }
711
+ .pixel-caffeine-wrapper .col-md-pull-3 {
712
+ right: 25%; }
713
+ .pixel-caffeine-wrapper .col-md-pull-4 {
714
+ right: 33.33333%; }
715
+ .pixel-caffeine-wrapper .col-md-pull-5 {
716
+ right: 41.66667%; }
717
+ .pixel-caffeine-wrapper .col-md-pull-6 {
718
+ right: 50%; }
719
+ .pixel-caffeine-wrapper .col-md-pull-7 {
720
+ right: 58.33333%; }
721
+ .pixel-caffeine-wrapper .col-md-pull-8 {
722
+ right: 66.66667%; }
723
+ .pixel-caffeine-wrapper .col-md-pull-9 {
724
+ right: 75%; }
725
+ .pixel-caffeine-wrapper .col-md-pull-10 {
726
+ right: 83.33333%; }
727
+ .pixel-caffeine-wrapper .col-md-pull-11 {
728
+ right: 91.66667%; }
729
+ .pixel-caffeine-wrapper .col-md-pull-12 {
730
+ right: 100%; }
731
+ .pixel-caffeine-wrapper .col-md-push-0 {
732
+ left: auto; }
733
+ .pixel-caffeine-wrapper .col-md-push-1 {
734
+ left: 8.33333%; }
735
+ .pixel-caffeine-wrapper .col-md-push-2 {
736
+ left: 16.66667%; }
737
+ .pixel-caffeine-wrapper .col-md-push-3 {
738
+ left: 25%; }
739
+ .pixel-caffeine-wrapper .col-md-push-4 {
740
+ left: 33.33333%; }
741
+ .pixel-caffeine-wrapper .col-md-push-5 {
742
+ left: 41.66667%; }
743
+ .pixel-caffeine-wrapper .col-md-push-6 {
744
+ left: 50%; }
745
+ .pixel-caffeine-wrapper .col-md-push-7 {
746
+ left: 58.33333%; }
747
+ .pixel-caffeine-wrapper .col-md-push-8 {
748
+ left: 66.66667%; }
749
+ .pixel-caffeine-wrapper .col-md-push-9 {
750
+ left: 75%; }
751
+ .pixel-caffeine-wrapper .col-md-push-10 {
752
+ left: 83.33333%; }
753
+ .pixel-caffeine-wrapper .col-md-push-11 {
754
+ left: 91.66667%; }
755
+ .pixel-caffeine-wrapper .col-md-push-12 {
756
+ left: 100%; }
757
+ .pixel-caffeine-wrapper .col-md-offset-0 {
758
+ margin-left: 0%; }
759
+ .pixel-caffeine-wrapper .col-md-offset-1 {
760
+ margin-left: 8.33333%; }
761
+ .pixel-caffeine-wrapper .col-md-offset-2 {
762
+ margin-left: 16.66667%; }
763
+ .pixel-caffeine-wrapper .col-md-offset-3 {
764
+ margin-left: 25%; }
765
+ .pixel-caffeine-wrapper .col-md-offset-4 {
766
+ margin-left: 33.33333%; }
767
+ .pixel-caffeine-wrapper .col-md-offset-5 {
768
+ margin-left: 41.66667%; }
769
+ .pixel-caffeine-wrapper .col-md-offset-6 {
770
+ margin-left: 50%; }
771
+ .pixel-caffeine-wrapper .col-md-offset-7 {
772
+ margin-left: 58.33333%; }
773
+ .pixel-caffeine-wrapper .col-md-offset-8 {
774
+ margin-left: 66.66667%; }
775
+ .pixel-caffeine-wrapper .col-md-offset-9 {
776
+ margin-left: 75%; }
777
+ .pixel-caffeine-wrapper .col-md-offset-10 {
778
+ margin-left: 83.33333%; }
779
+ .pixel-caffeine-wrapper .col-md-offset-11 {
780
+ margin-left: 91.66667%; }
781
+ .pixel-caffeine-wrapper .col-md-offset-12 {
782
+ margin-left: 100%; } }
783
+ @media (min-width: 1200px) {
784
+ .pixel-caffeine-wrapper .col-lg-1, .pixel-caffeine-wrapper .col-lg-2, .pixel-caffeine-wrapper .col-lg-3, .pixel-caffeine-wrapper .col-lg-4, .pixel-caffeine-wrapper .col-lg-5, .pixel-caffeine-wrapper .col-lg-6, .pixel-caffeine-wrapper .col-lg-7, .pixel-caffeine-wrapper .col-lg-8, .pixel-caffeine-wrapper .col-lg-9, .pixel-caffeine-wrapper .col-lg-10, .pixel-caffeine-wrapper .col-lg-11, .pixel-caffeine-wrapper .col-lg-12 {
785
+ float: left; }
786
+ .pixel-caffeine-wrapper .col-lg-1 {
787
+ width: 8.33333%; }
788
+ .pixel-caffeine-wrapper .col-lg-2 {
789
+ width: 16.66667%; }
790
+ .pixel-caffeine-wrapper .col-lg-3 {
791
+ width: 25%; }
792
+ .pixel-caffeine-wrapper .col-lg-4 {
793
+ width: 33.33333%; }
794
+ .pixel-caffeine-wrapper .col-lg-5 {
795
+ width: 41.66667%; }
796
+ .pixel-caffeine-wrapper .col-lg-6 {
797
+ width: 50%; }
798
+ .pixel-caffeine-wrapper .col-lg-7 {
799
+ width: 58.33333%; }
800
+ .pixel-caffeine-wrapper .col-lg-8 {
801
+ width: 66.66667%; }
802
+ .pixel-caffeine-wrapper .col-lg-9 {
803
+ width: 75%; }
804
+ .pixel-caffeine-wrapper .col-lg-10 {
805
+ width: 83.33333%; }
806
+ .pixel-caffeine-wrapper .col-lg-11 {
807
+ width: 91.66667%; }
808
+ .pixel-caffeine-wrapper .col-lg-12 {
809
+ width: 100%; }
810
+ .pixel-caffeine-wrapper .col-lg-pull-0 {
811
+ right: auto; }
812
+ .pixel-caffeine-wrapper .col-lg-pull-1 {
813
+ right: 8.33333%; }
814
+ .pixel-caffeine-wrapper .col-lg-pull-2 {
815
+ right: 16.66667%; }
816
+ .pixel-caffeine-wrapper .col-lg-pull-3 {
817
+ right: 25%; }
818
+ .pixel-caffeine-wrapper .col-lg-pull-4 {
819
+ right: 33.33333%; }
820
+ .pixel-caffeine-wrapper .col-lg-pull-5 {
821
+ right: 41.66667%; }
822
+ .pixel-caffeine-wrapper .col-lg-pull-6 {
823
+ right: 50%; }
824
+ .pixel-caffeine-wrapper .col-lg-pull-7 {
825
+ right: 58.33333%; }
826
+ .pixel-caffeine-wrapper .col-lg-pull-8 {
827
+ right: 66.66667%; }
828
+ .pixel-caffeine-wrapper .col-lg-pull-9 {
829
+ right: 75%; }
830
+ .pixel-caffeine-wrapper .col-lg-pull-10 {
831
+ right: 83.33333%; }
832
+ .pixel-caffeine-wrapper .col-lg-pull-11 {
833
+ right: 91.66667%; }
834
+ .pixel-caffeine-wrapper .col-lg-pull-12 {
835
+ right: 100%; }
836
+ .pixel-caffeine-wrapper .col-lg-push-0 {
837
+ left: auto; }
838
+ .pixel-caffeine-wrapper .col-lg-push-1 {
839
+ left: 8.33333%; }
840
+ .pixel-caffeine-wrapper .col-lg-push-2 {
841
+ left: 16.66667%; }
842
+ .pixel-caffeine-wrapper .col-lg-push-3 {
843
+ left: 25%; }
844
+ .pixel-caffeine-wrapper .col-lg-push-4 {
845
+ left: 33.33333%; }
846
+ .pixel-caffeine-wrapper .col-lg-push-5 {
847
+ left: 41.66667%; }
848
+ .pixel-caffeine-wrapper .col-lg-push-6 {
849
+ left: 50%; }
850
+ .pixel-caffeine-wrapper .col-lg-push-7 {
851
+ left: 58.33333%; }
852
+ .pixel-caffeine-wrapper .col-lg-push-8 {
853
+ left: 66.66667%; }
854
+ .pixel-caffeine-wrapper .col-lg-push-9 {
855
+ left: 75%; }
856
+ .pixel-caffeine-wrapper .col-lg-push-10 {
857
+ left: 83.33333%; }
858
+ .pixel-caffeine-wrapper .col-lg-push-11 {
859
+ left: 91.66667%; }
860
+ .pixel-caffeine-wrapper .col-lg-push-12 {
861
+ left: 100%; }
862
+ .pixel-caffeine-wrapper .col-lg-offset-0 {
863
+ margin-left: 0%; }
864
+ .pixel-caffeine-wrapper .col-lg-offset-1 {
865
+ margin-left: 8.33333%; }
866
+ .pixel-caffeine-wrapper .col-lg-offset-2 {
867
+ margin-left: 16.66667%; }
868
+ .pixel-caffeine-wrapper .col-lg-offset-3 {
869
+ margin-left: 25%; }
870
+ .pixel-caffeine-wrapper .col-lg-offset-4 {
871
+ margin-left: 33.33333%; }
872
+ .pixel-caffeine-wrapper .col-lg-offset-5 {
873
+ margin-left: 41.66667%; }
874
+ .pixel-caffeine-wrapper .col-lg-offset-6 {
875
+ margin-left: 50%; }
876
+ .pixel-caffeine-wrapper .col-lg-offset-7 {
877
+ margin-left: 58.33333%; }
878
+ .pixel-caffeine-wrapper .col-lg-offset-8 {
879
+ margin-left: 66.66667%; }
880
+ .pixel-caffeine-wrapper .col-lg-offset-9 {
881
+ margin-left: 75%; }
882
+ .pixel-caffeine-wrapper .col-lg-offset-10 {
883
+ margin-left: 83.33333%; }
884
+ .pixel-caffeine-wrapper .col-lg-offset-11 {
885
+ margin-left: 91.66667%; }
886
+ .pixel-caffeine-wrapper .col-lg-offset-12 {
887
+ margin-left: 100%; } }
888
+ .pixel-caffeine-wrapper table {
889
+ background-color: transparent; }
890
+ .pixel-caffeine-wrapper caption {
891
+ padding-top: 8px;
892
+ padding-bottom: 8px;
893
+ color: #777777;
894
+ text-align: left; }
895
+ .pixel-caffeine-wrapper th {
896
+ text-align: left; }
897
+ .pixel-caffeine-wrapper .table {
898
+ width: 100%;
899
+ max-width: 100%;
900
+ margin-bottom: 20px; }
901
+ .pixel-caffeine-wrapper .table > thead > tr > th,
902
+ .pixel-caffeine-wrapper .table > thead > tr > td,
903
+ .pixel-caffeine-wrapper .table > tbody > tr > th,
904
+ .pixel-caffeine-wrapper .table > tbody > tr > td,
905
+ .pixel-caffeine-wrapper .table > tfoot > tr > th,
906
+ .pixel-caffeine-wrapper .table > tfoot > tr > td {
907
+ padding: 8px;
908
+ line-height: 1.42857;
909
+ vertical-align: top;
910
+ border-top: 1px solid #ddd; }
911
+ .pixel-caffeine-wrapper .table > thead > tr > th {
912
+ vertical-align: bottom;
913
+ border-bottom: 2px solid #ddd; }
914
+ .pixel-caffeine-wrapper .table > caption + thead > tr:first-child > th,
915
+ .pixel-caffeine-wrapper .table > caption + thead > tr:first-child > td,
916
+ .pixel-caffeine-wrapper .table > colgroup + thead > tr:first-child > th,
917
+ .pixel-caffeine-wrapper .table > colgroup + thead > tr:first-child > td,
918
+ .pixel-caffeine-wrapper .table > thead:first-child > tr:first-child > th,
919
+ .pixel-caffeine-wrapper .table > thead:first-child > tr:first-child > td {
920
+ border-top: 0; }
921
+ .pixel-caffeine-wrapper .table > tbody + tbody {
922
+ border-top: 2px solid #ddd; }
923
+ .pixel-caffeine-wrapper .table .table {
924
+ background-color: transparent; }
925
+ .pixel-caffeine-wrapper .table-condensed > thead > tr > th,
926
+ .pixel-caffeine-wrapper .table-condensed > thead > tr > td,
927
+ .pixel-caffeine-wrapper .table-condensed > tbody > tr > th,
928
+ .pixel-caffeine-wrapper .table-condensed > tbody > tr > td,
929
+ .pixel-caffeine-wrapper .table-condensed > tfoot > tr > th,
930
+ .pixel-caffeine-wrapper .table-condensed > tfoot > tr > td {
931
+ padding: 5px; }
932
+ .pixel-caffeine-wrapper .table-bordered {
933
+ border: 1px solid #ddd; }
934
+ .pixel-caffeine-wrapper .table-bordered > thead > tr > th,
935
+ .pixel-caffeine-wrapper .table-bordered > thead > tr > td,
936
+ .pixel-caffeine-wrapper .table-bordered > tbody > tr > th,
937
+ .pixel-caffeine-wrapper .table-bordered > tbody > tr > td,
938
+ .pixel-caffeine-wrapper .table-bordered > tfoot > tr > th,
939
+ .pixel-caffeine-wrapper .table-bordered > tfoot > tr > td {
940
+ border: 1px solid #ddd; }
941
+ .pixel-caffeine-wrapper .table-bordered > thead > tr > th,
942
+ .pixel-caffeine-wrapper .table-bordered > thead > tr > td {
943
+ border-bottom-width: 2px; }
944
+ .pixel-caffeine-wrapper .table-striped > tbody > tr:nth-of-type(odd) {
945
+ background-color: #f9f9f9; }
946
+ .pixel-caffeine-wrapper .table-hover > tbody > tr:hover {
947
+ background-color: #f5f5f5; }
948
+ .pixel-caffeine-wrapper table col[class*="col-"] {
949
+ position: static;
950
+ float: none;
951
+ display: table-column; }
952
+ .pixel-caffeine-wrapper table td[class*="col-"],
953
+ .pixel-caffeine-wrapper table th[class*="col-"] {
954
+ position: static;
955
+ float: none;
956
+ display: table-cell; }
957
+ .pixel-caffeine-wrapper .table > thead > tr > td.active,
958
+ .pixel-caffeine-wrapper .table > thead > tr > th.active, .pixel-caffeine-wrapper .table > thead > tr.active > td, .pixel-caffeine-wrapper .table > thead > tr.active > th,
959
+ .pixel-caffeine-wrapper .table > tbody > tr > td.active,
960
+ .pixel-caffeine-wrapper .table > tbody > tr > th.active,
961
+ .pixel-caffeine-wrapper .table > tbody > tr.active > td,
962
+ .pixel-caffeine-wrapper .table > tbody > tr.active > th,
963
+ .pixel-caffeine-wrapper .table > tfoot > tr > td.active,
964
+ .pixel-caffeine-wrapper .table > tfoot > tr > th.active,
965
+ .pixel-caffeine-wrapper .table > tfoot > tr.active > td,
966
+ .pixel-caffeine-wrapper .table > tfoot > tr.active > th {
967
+ background-color: #f5f5f5; }
968
+ .pixel-caffeine-wrapper .table-hover > tbody > tr > td.active:hover,
969
+ .pixel-caffeine-wrapper .table-hover > tbody > tr > th.active:hover, .pixel-caffeine-wrapper .table-hover > tbody > tr.active:hover > td, .pixel-caffeine-wrapper .table-hover > tbody > tr:hover > .active, .pixel-caffeine-wrapper .table-hover > tbody > tr.active:hover > th {
970
+ background-color: #e8e8e8; }
971
+ .pixel-caffeine-wrapper .table > thead > tr > td.success,
972
+ .pixel-caffeine-wrapper .table > thead > tr > th.success, .pixel-caffeine-wrapper .table > thead > tr.success > td, .pixel-caffeine-wrapper .table > thead > tr.success > th,
973
+ .pixel-caffeine-wrapper .table > tbody > tr > td.success,
974
+ .pixel-caffeine-wrapper .table > tbody > tr > th.success,
975
+ .pixel-caffeine-wrapper .table > tbody > tr.success > td,
976
+ .pixel-caffeine-wrapper .table > tbody > tr.success > th,
977
+ .pixel-caffeine-wrapper .table > tfoot > tr > td.success,
978
+ .pixel-caffeine-wrapper .table > tfoot > tr > th.success,
979
+ .pixel-caffeine-wrapper .table > tfoot > tr.success > td,
980
+ .pixel-caffeine-wrapper .table > tfoot > tr.success > th {
981
+ background-color: #dff0d8; }
982
+ .pixel-caffeine-wrapper .table-hover > tbody > tr > td.success:hover,
983
+ .pixel-caffeine-wrapper .table-hover > tbody > tr > th.success:hover, .pixel-caffeine-wrapper .table-hover > tbody > tr.success:hover > td, .pixel-caffeine-wrapper .table-hover > tbody > tr:hover > .success, .pixel-caffeine-wrapper .table-hover > tbody > tr.success:hover > th {
984
+ background-color: #d0e9c6; }
985
+ .pixel-caffeine-wrapper .table > thead > tr > td.info,
986
+ .pixel-caffeine-wrapper .table > thead > tr > th.info, .pixel-caffeine-wrapper .table > thead > tr.info > td, .pixel-caffeine-wrapper .table > thead > tr.info > th,
987
+ .pixel-caffeine-wrapper .table > tbody > tr > td.info,
988
+ .pixel-caffeine-wrapper .table > tbody > tr > th.info,
989
+ .pixel-caffeine-wrapper .table > tbody > tr.info > td,
990
+ .pixel-caffeine-wrapper .table > tbody > tr.info > th,
991
+ .pixel-caffeine-wrapper .table > tfoot > tr > td.info,
992
+ .pixel-caffeine-wrapper .table > tfoot > tr > th.info,
993
+ .pixel-caffeine-wrapper .table > tfoot > tr.info > td,
994
+ .pixel-caffeine-wrapper .table > tfoot > tr.info > th {
995
+ background-color: #d9edf7; }
996
+ .pixel-caffeine-wrapper .table-hover > tbody > tr > td.info:hover,
997
+ .pixel-caffeine-wrapper .table-hover > tbody > tr > th.info:hover, .pixel-caffeine-wrapper .table-hover > tbody > tr.info:hover > td, .pixel-caffeine-wrapper .table-hover > tbody > tr:hover > .info, .pixel-caffeine-wrapper .table-hover > tbody > tr.info:hover > th {
998
+ background-color: #c4e3f3; }
999
+ .pixel-caffeine-wrapper .table > thead > tr > td.warning,
1000
+ .pixel-caffeine-wrapper .table > thead > tr > th.warning, .pixel-caffeine-wrapper .table > thead > tr.warning > td, .pixel-caffeine-wrapper .table > thead > tr.warning > th,
1001
+ .pixel-caffeine-wrapper .table > tbody > tr > td.warning,
1002
+ .pixel-caffeine-wrapper .table > tbody > tr > th.warning,
1003
+ .pixel-caffeine-wrapper .table > tbody > tr.warning > td,
1004
+ .pixel-caffeine-wrapper .table > tbody > tr.warning > th,
1005
+ .pixel-caffeine-wrapper .table > tfoot > tr > td.warning,
1006
+ .pixel-caffeine-wrapper .table > tfoot > tr > th.warning,
1007
+ .pixel-caffeine-wrapper .table > tfoot > tr.warning > td,
1008
+ .pixel-caffeine-wrapper .table > tfoot > tr.warning > th {
1009
+ background-color: #fcf8e3; }
1010
+ .pixel-caffeine-wrapper .table-hover > tbody > tr > td.warning:hover,
1011
+ .pixel-caffeine-wrapper .table-hover > tbody > tr > th.warning:hover, .pixel-caffeine-wrapper .table-hover > tbody > tr.warning:hover > td, .pixel-caffeine-wrapper .table-hover > tbody > tr:hover > .warning, .pixel-caffeine-wrapper .table-hover > tbody > tr.warning:hover > th {
1012
+ background-color: #faf2cc; }
1013
+ .pixel-caffeine-wrapper .table > thead > tr > td.danger,
1014
+ .pixel-caffeine-wrapper .table > thead > tr > th.danger, .pixel-caffeine-wrapper .table > thead > tr.danger > td, .pixel-caffeine-wrapper .table > thead > tr.danger > th,
1015
+ .pixel-caffeine-wrapper .table > tbody > tr > td.danger,
1016
+ .pixel-caffeine-wrapper .table > tbody > tr > th.danger,
1017
+ .pixel-caffeine-wrapper .table > tbody > tr.danger > td,
1018
+ .pixel-caffeine-wrapper .table > tbody > tr.danger > th,
1019
+ .pixel-caffeine-wrapper .table > tfoot > tr > td.danger,
1020
+ .pixel-caffeine-wrapper .table > tfoot > tr > th.danger,
1021
+ .pixel-caffeine-wrapper .table > tfoot > tr.danger > td,
1022
+ .pixel-caffeine-wrapper .table > tfoot > tr.danger > th {
1023
+ background-color: #f2dede; }
1024
+ .pixel-caffeine-wrapper .table-hover > tbody > tr > td.danger:hover,
1025
+ .pixel-caffeine-wrapper .table-hover > tbody > tr > th.danger:hover, .pixel-caffeine-wrapper .table-hover > tbody > tr.danger:hover > td, .pixel-caffeine-wrapper .table-hover > tbody > tr:hover > .danger, .pixel-caffeine-wrapper .table-hover > tbody > tr.danger:hover > th {
1026
+ background-color: #ebcccc; }
1027
+ .pixel-caffeine-wrapper .table-responsive {
1028
+ overflow-x: auto;
1029
+ min-height: 0.01%; }
1030
+ @media screen and (max-width: 767px) {
1031
+ .pixel-caffeine-wrapper .table-responsive {
1032
+ width: 100%;
1033
+ margin-bottom: 15px;
1034
+ overflow-y: hidden;
1035
+ -ms-overflow-style: -ms-autohiding-scrollbar;
1036
+ border: 1px solid #ddd; }
1037
+ .pixel-caffeine-wrapper .table-responsive > .table {
1038
+ margin-bottom: 0; }
1039
+ .pixel-caffeine-wrapper .table-responsive > .table > thead > tr > th,
1040
+ .pixel-caffeine-wrapper .table-responsive > .table > thead > tr > td,
1041
+ .pixel-caffeine-wrapper .table-responsive > .table > tbody > tr > th,
1042
+ .pixel-caffeine-wrapper .table-responsive > .table > tbody > tr > td,
1043
+ .pixel-caffeine-wrapper .table-responsive > .table > tfoot > tr > th,
1044
+ .pixel-caffeine-wrapper .table-responsive > .table > tfoot > tr > td {
1045
+ white-space: nowrap; }
1046
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered {
1047
+ border: 0; }
1048
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > thead > tr > th:first-child,
1049
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > thead > tr > td:first-child,
1050
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > tbody > tr > th:first-child,
1051
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > tbody > tr > td:first-child,
1052
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > tfoot > tr > th:first-child,
1053
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > tfoot > tr > td:first-child {
1054
+ border-left: 0; }
1055
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > thead > tr > th:last-child,
1056
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > thead > tr > td:last-child,
1057
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > tbody > tr > th:last-child,
1058
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > tbody > tr > td:last-child,
1059
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > tfoot > tr > th:last-child,
1060
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > tfoot > tr > td:last-child {
1061
+ border-right: 0; }
1062
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > tbody > tr:last-child > th,
1063
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > tbody > tr:last-child > td,
1064
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > tfoot > tr:last-child > th,
1065
+ .pixel-caffeine-wrapper .table-responsive > .table-bordered > tfoot > tr:last-child > td {
1066
+ border-bottom: 0; } }
1067
+ .pixel-caffeine-wrapper fieldset {
1068
+ padding: 0;
1069
+ margin: 0;
1070
+ border: 0;
1071
+ min-width: 0; }
1072
+ .pixel-caffeine-wrapper legend {
1073
+ display: block;
1074
+ width: 100%;
1075
+ padding: 0;
1076
+ margin-bottom: 20px;
1077
+ font-size: 21px;
1078
+ line-height: inherit;
1079
+ color: #333333;
1080
+ border: 0;
1081
+ border-bottom: 1px solid #e5e5e5; }
1082
+ .pixel-caffeine-wrapper label {
1083
+ display: inline-block;
1084
+ max-width: 100%;
1085
+ margin-bottom: 5px;
1086
+ font-weight: bold; }
1087
+ .pixel-caffeine-wrapper input[type="search"] {
1088
+ -webkit-box-sizing: border-box;
1089
+ -moz-box-sizing: border-box;
1090
+ box-sizing: border-box; }
1091
+ .pixel-caffeine-wrapper input[type="radio"],
1092
+ .pixel-caffeine-wrapper input[type="checkbox"] {
1093
+ margin: 4px 0 0;
1094
+ margin-top: 1px \9;
1095
+ line-height: normal; }
1096
+ .pixel-caffeine-wrapper input[type="file"] {
1097
+ display: block; }
1098
+ .pixel-caffeine-wrapper input[type="range"] {
1099
+ display: block;
1100
+ width: 100%; }
1101
+ .pixel-caffeine-wrapper select[multiple],
1102
+ .pixel-caffeine-wrapper select[size] {
1103
+ height: auto; }
1104
+ .pixel-caffeine-wrapper input[type="file"]:focus,
1105
+ .pixel-caffeine-wrapper input[type="radio"]:focus,
1106
+ .pixel-caffeine-wrapper input[type="checkbox"]:focus {
1107
+ outline: 5px auto -webkit-focus-ring-color;
1108
+ outline-offset: -2px; }
1109
+ .pixel-caffeine-wrapper output {
1110
+ display: block;
1111
+ padding-top: 7px;
1112
+ font-size: 14px;
1113
+ line-height: 1.42857;
1114
+ color: #555555; }
1115
+ .pixel-caffeine-wrapper .form-control {
1116
+ display: block;
1117
+ width: 100%;
1118
+ height: 34px;
1119
+ padding: 6px 12px;
1120
+ font-size: 14px;
1121
+ line-height: 1.42857;
1122
+ color: #555555;
1123
+ background-color: #fff;
1124
+ background-image: none;
1125
+ border: 1px solid #ccc;
1126
+ border-radius: 4px;
1127
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1128
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1129
+ -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
1130
+ -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
1131
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; }
1132
+ .pixel-caffeine-wrapper .form-control:focus {
1133
+ border-color: #66afe9;
1134
+ outline: 0;
1135
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
1136
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }
1137
+ .pixel-caffeine-wrapper .form-control::-moz-placeholder {
1138
+ color: #999;
1139
+ opacity: 1; }
1140
+ .pixel-caffeine-wrapper .form-control:-ms-input-placeholder {
1141
+ color: #999; }
1142
+ .pixel-caffeine-wrapper .form-control::-webkit-input-placeholder {
1143
+ color: #999; }
1144
+ .pixel-caffeine-wrapper .form-control::-ms-expand {
1145
+ border: 0;
1146
+ background-color: transparent; }
1147
+ .pixel-caffeine-wrapper .form-control[disabled], .pixel-caffeine-wrapper .form-control[readonly], fieldset[disabled] .pixel-caffeine-wrapper .form-control {
1148
+ background-color: #eeeeee;
1149
+ opacity: 1; }
1150
+ .pixel-caffeine-wrapper .form-control[disabled], fieldset[disabled] .pixel-caffeine-wrapper .form-control {
1151
+ cursor: not-allowed; }
1152
+ .pixel-caffeine-wrapper textarea.form-control {
1153
+ height: auto; }
1154
+ .pixel-caffeine-wrapper input[type="search"] {
1155
+ -webkit-appearance: none; }
1156
+ @media screen and (-webkit-min-device-pixel-ratio: 0) {
1157
+ .pixel-caffeine-wrapper input[type="date"].form-control,
1158
+ .pixel-caffeine-wrapper input[type="time"].form-control,
1159
+ .pixel-caffeine-wrapper input[type="datetime-local"].form-control,
1160
+ .pixel-caffeine-wrapper input[type="month"].form-control {
1161
+ line-height: 34px; }
1162
+ .pixel-caffeine-wrapper input[type="date"].input-sm, .pixel-caffeine-wrapper .input-group-sm > input[type="date"].form-control,
1163
+ .pixel-caffeine-wrapper .input-group-sm > input[type="date"].input-group-addon,
1164
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > input[type="date"].btn, .input-group-sm .pixel-caffeine-wrapper input[type="date"],
1165
+ .pixel-caffeine-wrapper input[type="time"].input-sm,
1166
+ .pixel-caffeine-wrapper .input-group-sm > input[type="time"].form-control,
1167
+ .pixel-caffeine-wrapper .input-group-sm > input[type="time"].input-group-addon,
1168
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > input[type="time"].btn, .input-group-sm
1169
+ .pixel-caffeine-wrapper input[type="time"],
1170
+ .pixel-caffeine-wrapper input[type="datetime-local"].input-sm,
1171
+ .pixel-caffeine-wrapper .input-group-sm > input[type="datetime-local"].form-control,
1172
+ .pixel-caffeine-wrapper .input-group-sm > input[type="datetime-local"].input-group-addon,
1173
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > input[type="datetime-local"].btn, .input-group-sm
1174
+ .pixel-caffeine-wrapper input[type="datetime-local"],
1175
+ .pixel-caffeine-wrapper input[type="month"].input-sm,
1176
+ .pixel-caffeine-wrapper .input-group-sm > input[type="month"].form-control,
1177
+ .pixel-caffeine-wrapper .input-group-sm > input[type="month"].input-group-addon,
1178
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > input[type="month"].btn, .input-group-sm
1179
+ .pixel-caffeine-wrapper input[type="month"] {
1180
+ line-height: 30px; }
1181
+ .pixel-caffeine-wrapper input[type="date"].input-lg, .pixel-caffeine-wrapper .input-group-lg > input[type="date"].form-control,
1182
+ .pixel-caffeine-wrapper .input-group-lg > input[type="date"].input-group-addon,
1183
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > input[type="date"].btn, .input-group-lg .pixel-caffeine-wrapper input[type="date"],
1184
+ .pixel-caffeine-wrapper input[type="time"].input-lg,
1185
+ .pixel-caffeine-wrapper .input-group-lg > input[type="time"].form-control,
1186
+ .pixel-caffeine-wrapper .input-group-lg > input[type="time"].input-group-addon,
1187
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > input[type="time"].btn, .input-group-lg
1188
+ .pixel-caffeine-wrapper input[type="time"],
1189
+ .pixel-caffeine-wrapper input[type="datetime-local"].input-lg,
1190
+ .pixel-caffeine-wrapper .input-group-lg > input[type="datetime-local"].form-control,
1191
+ .pixel-caffeine-wrapper .input-group-lg > input[type="datetime-local"].input-group-addon,
1192
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > input[type="datetime-local"].btn, .input-group-lg
1193
+ .pixel-caffeine-wrapper input[type="datetime-local"],
1194
+ .pixel-caffeine-wrapper input[type="month"].input-lg,
1195
+ .pixel-caffeine-wrapper .input-group-lg > input[type="month"].form-control,
1196
+ .pixel-caffeine-wrapper .input-group-lg > input[type="month"].input-group-addon,
1197
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > input[type="month"].btn, .input-group-lg
1198
+ .pixel-caffeine-wrapper input[type="month"] {
1199
+ line-height: 46px; } }
1200
+ .pixel-caffeine-wrapper .form-group {
1201
+ margin-bottom: 15px; }
1202
+ .pixel-caffeine-wrapper .radio,
1203
+ .pixel-caffeine-wrapper .checkbox {
1204
+ position: relative;
1205
+ display: block;
1206
+ margin-top: 10px;
1207
+ margin-bottom: 10px; }
1208
+ .pixel-caffeine-wrapper .radio label,
1209
+ .pixel-caffeine-wrapper .checkbox label {
1210
+ min-height: 20px;
1211
+ padding-left: 20px;
1212
+ margin-bottom: 0;
1213
+ font-weight: normal;
1214
+ cursor: pointer; }
1215
+ .pixel-caffeine-wrapper .radio input[type="radio"],
1216
+ .pixel-caffeine-wrapper .radio-inline input[type="radio"],
1217
+ .pixel-caffeine-wrapper .checkbox input[type="checkbox"],
1218
+ .pixel-caffeine-wrapper .checkbox-inline input[type="checkbox"] {
1219
+ position: absolute;
1220
+ margin-left: -20px;
1221
+ margin-top: 4px \9; }
1222
+ .pixel-caffeine-wrapper .radio + .radio,
1223
+ .pixel-caffeine-wrapper .checkbox + .checkbox {
1224
+ margin-top: -5px; }
1225
+ .pixel-caffeine-wrapper .radio-inline,
1226
+ .pixel-caffeine-wrapper .checkbox-inline {
1227
+ position: relative;
1228
+ display: inline-block;
1229
+ padding-left: 20px;
1230
+ margin-bottom: 0;
1231
+ vertical-align: middle;
1232
+ font-weight: normal;
1233
+ cursor: pointer; }
1234
+ .pixel-caffeine-wrapper .radio-inline + .radio-inline,
1235
+ .pixel-caffeine-wrapper .checkbox-inline + .checkbox-inline {
1236
+ margin-top: 0;
1237
+ margin-left: 10px; }
1238
+ .pixel-caffeine-wrapper input[type="radio"][disabled], .pixel-caffeine-wrapper input[type="radio"].disabled, fieldset[disabled] .pixel-caffeine-wrapper input[type="radio"],
1239
+ .pixel-caffeine-wrapper input[type="checkbox"][disabled],
1240
+ .pixel-caffeine-wrapper input[type="checkbox"].disabled, fieldset[disabled]
1241
+ .pixel-caffeine-wrapper input[type="checkbox"] {
1242
+ cursor: not-allowed; }
1243
+ .pixel-caffeine-wrapper .radio-inline.disabled, fieldset[disabled] .pixel-caffeine-wrapper .radio-inline,
1244
+ .pixel-caffeine-wrapper .checkbox-inline.disabled, fieldset[disabled]
1245
+ .pixel-caffeine-wrapper .checkbox-inline {
1246
+ cursor: not-allowed; }
1247
+ .pixel-caffeine-wrapper .radio.disabled label, fieldset[disabled] .pixel-caffeine-wrapper .radio label,
1248
+ .pixel-caffeine-wrapper .checkbox.disabled label, fieldset[disabled]
1249
+ .pixel-caffeine-wrapper .checkbox label {
1250
+ cursor: not-allowed; }
1251
+ .pixel-caffeine-wrapper .form-control-static {
1252
+ padding-top: 7px;
1253
+ padding-bottom: 7px;
1254
+ margin-bottom: 0;
1255
+ min-height: 34px; }
1256
+ .pixel-caffeine-wrapper .form-control-static.input-lg, .pixel-caffeine-wrapper .input-group-lg > .form-control-static.form-control,
1257
+ .pixel-caffeine-wrapper .input-group-lg > .form-control-static.input-group-addon,
1258
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .form-control-static.btn, .pixel-caffeine-wrapper .form-control-static.input-sm, .pixel-caffeine-wrapper .input-group-sm > .form-control-static.form-control,
1259
+ .pixel-caffeine-wrapper .input-group-sm > .form-control-static.input-group-addon,
1260
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .form-control-static.btn {
1261
+ padding-left: 0;
1262
+ padding-right: 0; }
1263
+ .pixel-caffeine-wrapper .input-sm, .pixel-caffeine-wrapper .input-group-sm > .form-control,
1264
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon,
1265
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn {
1266
+ height: 30px;
1267
+ padding: 5px 10px;
1268
+ font-size: 12px;
1269
+ line-height: 1.5;
1270
+ border-radius: 3px; }
1271
+ .pixel-caffeine-wrapper select.input-sm, .pixel-caffeine-wrapper .input-group-sm > select.form-control,
1272
+ .pixel-caffeine-wrapper .input-group-sm > select.input-group-addon,
1273
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > select.btn {
1274
+ height: 30px;
1275
+ line-height: 30px; }
1276
+ .pixel-caffeine-wrapper textarea.input-sm, .pixel-caffeine-wrapper .input-group-sm > textarea.form-control,
1277
+ .pixel-caffeine-wrapper .input-group-sm > textarea.input-group-addon,
1278
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > textarea.btn,
1279
+ .pixel-caffeine-wrapper select[multiple].input-sm,
1280
+ .pixel-caffeine-wrapper .input-group-sm > select[multiple].form-control,
1281
+ .pixel-caffeine-wrapper .input-group-sm > select[multiple].input-group-addon,
1282
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > select[multiple].btn {
1283
+ height: auto; }
1284
+ .pixel-caffeine-wrapper .form-group-sm .form-control {
1285
+ height: 30px;
1286
+ padding: 5px 10px;
1287
+ font-size: 12px;
1288
+ line-height: 1.5;
1289
+ border-radius: 3px; }
1290
+ .pixel-caffeine-wrapper .form-group-sm select.form-control {
1291
+ height: 30px;
1292
+ line-height: 30px; }
1293
+ .pixel-caffeine-wrapper .form-group-sm textarea.form-control,
1294
+ .pixel-caffeine-wrapper .form-group-sm select[multiple].form-control {
1295
+ height: auto; }
1296
+ .pixel-caffeine-wrapper .form-group-sm .form-control-static {
1297
+ height: 30px;
1298
+ min-height: 32px;
1299
+ padding: 6px 10px;
1300
+ font-size: 12px;
1301
+ line-height: 1.5; }
1302
+ .pixel-caffeine-wrapper .input-lg, .pixel-caffeine-wrapper .input-group-lg > .form-control,
1303
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon,
1304
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn {
1305
+ height: 46px;
1306
+ padding: 10px 16px;
1307
+ font-size: 18px;
1308
+ line-height: 1.33333;
1309
+ border-radius: 6px; }
1310
+ .pixel-caffeine-wrapper select.input-lg, .pixel-caffeine-wrapper .input-group-lg > select.form-control,
1311
+ .pixel-caffeine-wrapper .input-group-lg > select.input-group-addon,
1312
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > select.btn {
1313
+ height: 46px;
1314
+ line-height: 46px; }
1315
+ .pixel-caffeine-wrapper textarea.input-lg, .pixel-caffeine-wrapper .input-group-lg > textarea.form-control,
1316
+ .pixel-caffeine-wrapper .input-group-lg > textarea.input-group-addon,
1317
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > textarea.btn,
1318
+ .pixel-caffeine-wrapper select[multiple].input-lg,
1319
+ .pixel-caffeine-wrapper .input-group-lg > select[multiple].form-control,
1320
+ .pixel-caffeine-wrapper .input-group-lg > select[multiple].input-group-addon,
1321
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > select[multiple].btn {
1322
+ height: auto; }
1323
+ .pixel-caffeine-wrapper .form-group-lg .form-control {
1324
+ height: 46px;
1325
+ padding: 10px 16px;
1326
+ font-size: 18px;
1327
+ line-height: 1.33333;
1328
+ border-radius: 6px; }
1329
+ .pixel-caffeine-wrapper .form-group-lg select.form-control {
1330
+ height: 46px;
1331
+ line-height: 46px; }
1332
+ .pixel-caffeine-wrapper .form-group-lg textarea.form-control,
1333
+ .pixel-caffeine-wrapper .form-group-lg select[multiple].form-control {
1334
+ height: auto; }
1335
+ .pixel-caffeine-wrapper .form-group-lg .form-control-static {
1336
+ height: 46px;
1337
+ min-height: 38px;
1338
+ padding: 11px 16px;
1339
+ font-size: 18px;
1340
+ line-height: 1.33333; }
1341
+ .pixel-caffeine-wrapper .has-feedback {
1342
+ position: relative; }
1343
+ .pixel-caffeine-wrapper .has-feedback .form-control {
1344
+ padding-right: 42.5px; }
1345
+ .pixel-caffeine-wrapper .form-control-feedback {
1346
+ position: absolute;
1347
+ top: 0;
1348
+ right: 0;
1349
+ z-index: 2;
1350
+ display: block;
1351
+ width: 34px;
1352
+ height: 34px;
1353
+ line-height: 34px;
1354
+ text-align: center;
1355
+ pointer-events: none; }
1356
+ .pixel-caffeine-wrapper .input-lg + .form-control-feedback, .pixel-caffeine-wrapper .input-group-lg > .form-control + .form-control-feedback,
1357
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon + .form-control-feedback,
1358
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn + .form-control-feedback,
1359
+ .pixel-caffeine-wrapper .input-group-lg + .form-control-feedback,
1360
+ .pixel-caffeine-wrapper .form-group-lg .form-control + .form-control-feedback {
1361
+ width: 46px;
1362
+ height: 46px;
1363
+ line-height: 46px; }
1364
+ .pixel-caffeine-wrapper .input-sm + .form-control-feedback, .pixel-caffeine-wrapper .input-group-sm > .form-control + .form-control-feedback,
1365
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon + .form-control-feedback,
1366
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn + .form-control-feedback,
1367
+ .pixel-caffeine-wrapper .input-group-sm + .form-control-feedback,
1368
+ .pixel-caffeine-wrapper .form-group-sm .form-control + .form-control-feedback {
1369
+ width: 30px;
1370
+ height: 30px;
1371
+ line-height: 30px; }
1372
+ .pixel-caffeine-wrapper .has-success .help-block,
1373
+ .pixel-caffeine-wrapper .has-success .control-label,
1374
+ .pixel-caffeine-wrapper .has-success .radio,
1375
+ .pixel-caffeine-wrapper .has-success .checkbox,
1376
+ .pixel-caffeine-wrapper .has-success .radio-inline,
1377
+ .pixel-caffeine-wrapper .has-success .checkbox-inline, .pixel-caffeine-wrapper .has-success.radio label, .pixel-caffeine-wrapper .has-success.checkbox label, .pixel-caffeine-wrapper .has-success.radio-inline label, .pixel-caffeine-wrapper .has-success.checkbox-inline label {
1378
+ color: #3c763d; }
1379
+ .pixel-caffeine-wrapper .has-success .form-control {
1380
+ border-color: #3c763d;
1381
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1382
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
1383
+ .pixel-caffeine-wrapper .has-success .form-control:focus {
1384
+ border-color: #2b542c;
1385
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
1386
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; }
1387
+ .pixel-caffeine-wrapper .has-success .input-group-addon {
1388
+ color: #3c763d;
1389
+ border-color: #3c763d;
1390
+ background-color: #dff0d8; }
1391
+ .pixel-caffeine-wrapper .has-success .form-control-feedback {
1392
+ color: #3c763d; }
1393
+ .pixel-caffeine-wrapper .has-warning .help-block,
1394
+ .pixel-caffeine-wrapper .has-warning .control-label,
1395
+ .pixel-caffeine-wrapper .has-warning .radio,
1396
+ .pixel-caffeine-wrapper .has-warning .checkbox,
1397
+ .pixel-caffeine-wrapper .has-warning .radio-inline,
1398
+ .pixel-caffeine-wrapper .has-warning .checkbox-inline, .pixel-caffeine-wrapper .has-warning.radio label, .pixel-caffeine-wrapper .has-warning.checkbox label, .pixel-caffeine-wrapper .has-warning.radio-inline label, .pixel-caffeine-wrapper .has-warning.checkbox-inline label {
1399
+ color: #8a6d3b; }
1400
+ .pixel-caffeine-wrapper .has-warning .form-control {
1401
+ border-color: #8a6d3b;
1402
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1403
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
1404
+ .pixel-caffeine-wrapper .has-warning .form-control:focus {
1405
+ border-color: #66512c;
1406
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
1407
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; }
1408
+ .pixel-caffeine-wrapper .has-warning .input-group-addon {
1409
+ color: #8a6d3b;
1410
+ border-color: #8a6d3b;
1411
+ background-color: #fcf8e3; }
1412
+ .pixel-caffeine-wrapper .has-warning .form-control-feedback {
1413
+ color: #8a6d3b; }
1414
+ .pixel-caffeine-wrapper .has-error .help-block,
1415
+ .pixel-caffeine-wrapper .has-error .control-label,
1416
+ .pixel-caffeine-wrapper .has-error .radio,
1417
+ .pixel-caffeine-wrapper .has-error .checkbox,
1418
+ .pixel-caffeine-wrapper .has-error .radio-inline,
1419
+ .pixel-caffeine-wrapper .has-error .checkbox-inline, .pixel-caffeine-wrapper .has-error.radio label, .pixel-caffeine-wrapper .has-error.checkbox label, .pixel-caffeine-wrapper .has-error.radio-inline label, .pixel-caffeine-wrapper .has-error.checkbox-inline label {
1420
+ color: #a94442; }
1421
+ .pixel-caffeine-wrapper .has-error .form-control {
1422
+ border-color: #a94442;
1423
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1424
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
1425
+ .pixel-caffeine-wrapper .has-error .form-control:focus {
1426
+ border-color: #843534;
1427
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
1428
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; }
1429
+ .pixel-caffeine-wrapper .has-error .input-group-addon {
1430
+ color: #a94442;
1431
+ border-color: #a94442;
1432
+ background-color: #f2dede; }
1433
+ .pixel-caffeine-wrapper .has-error .form-control-feedback {
1434
+ color: #a94442; }
1435
+ .pixel-caffeine-wrapper .has-feedback label ~ .form-control-feedback {
1436
+ top: 25px; }
1437
+ .pixel-caffeine-wrapper .has-feedback label.sr-only ~ .form-control-feedback {
1438
+ top: 0; }
1439
+ .pixel-caffeine-wrapper .help-block {
1440
+ display: block;
1441
+ margin-top: 5px;
1442
+ margin-bottom: 10px;
1443
+ color: #737373; }
1444
+ @media (min-width: 768px) {
1445
+ .pixel-caffeine-wrapper .form-inline .form-group {
1446
+ display: inline-block;
1447
+ margin-bottom: 0;
1448
+ vertical-align: middle; }
1449
+ .pixel-caffeine-wrapper .form-inline .form-control {
1450
+ display: inline-block;
1451
+ width: auto;
1452
+ vertical-align: middle; }
1453
+ .pixel-caffeine-wrapper .form-inline .form-control-static {
1454
+ display: inline-block; }
1455
+ .pixel-caffeine-wrapper .form-inline .input-group {
1456
+ display: inline-table;
1457
+ vertical-align: middle; }
1458
+ .pixel-caffeine-wrapper .form-inline .input-group .input-group-addon,
1459
+ .pixel-caffeine-wrapper .form-inline .input-group .input-group-btn,
1460
+ .pixel-caffeine-wrapper .form-inline .input-group .form-control {
1461
+ width: auto; }
1462
+ .pixel-caffeine-wrapper .form-inline .input-group > .form-control {
1463
+ width: 100%; }
1464
+ .pixel-caffeine-wrapper .form-inline .control-label {
1465
+ margin-bottom: 0;
1466
+ vertical-align: middle; }
1467
+ .pixel-caffeine-wrapper .form-inline .radio,
1468
+ .pixel-caffeine-wrapper .form-inline .checkbox {
1469
+ display: inline-block;
1470
+ margin-top: 0;
1471
+ margin-bottom: 0;
1472
+ vertical-align: middle; }
1473
+ .pixel-caffeine-wrapper .form-inline .radio label,
1474
+ .pixel-caffeine-wrapper .form-inline .checkbox label {
1475
+ padding-left: 0; }
1476
+ .pixel-caffeine-wrapper .form-inline .radio input[type="radio"],
1477
+ .pixel-caffeine-wrapper .form-inline .checkbox input[type="checkbox"] {
1478
+ position: relative;
1479
+ margin-left: 0; }
1480
+ .pixel-caffeine-wrapper .form-inline .has-feedback .form-control-feedback {
1481
+ top: 0; } }
1482
+ .pixel-caffeine-wrapper .form-horizontal .radio,
1483
+ .pixel-caffeine-wrapper .form-horizontal .checkbox,
1484
+ .pixel-caffeine-wrapper .form-horizontal .radio-inline,
1485
+ .pixel-caffeine-wrapper .form-horizontal .checkbox-inline {
1486
+ margin-top: 0;
1487
+ margin-bottom: 0;
1488
+ padding-top: 7px; }
1489
+ .pixel-caffeine-wrapper .form-horizontal .radio,
1490
+ .pixel-caffeine-wrapper .form-horizontal .checkbox {
1491
+ min-height: 27px; }
1492
+ .pixel-caffeine-wrapper .form-horizontal .form-group {
1493
+ margin-left: -15px;
1494
+ margin-right: -15px; }
1495
+ .pixel-caffeine-wrapper .form-horizontal .form-group:before, .pixel-caffeine-wrapper .form-horizontal .form-group:after {
1496
+ content: " ";
1497
+ display: table; }
1498
+ .pixel-caffeine-wrapper .form-horizontal .form-group:after {
1499
+ clear: both; }
1500
+ @media (min-width: 768px) {
1501
+ .pixel-caffeine-wrapper .form-horizontal .control-label {
1502
+ text-align: right;
1503
+ margin-bottom: 0;
1504
+ padding-top: 7px; } }
1505
+ .pixel-caffeine-wrapper .form-horizontal .has-feedback .form-control-feedback {
1506
+ right: 15px; }
1507
+ @media (min-width: 768px) {
1508
+ .pixel-caffeine-wrapper .form-horizontal .form-group-lg .control-label {
1509
+ padding-top: 11px;
1510
+ font-size: 18px; } }
1511
+ @media (min-width: 768px) {
1512
+ .pixel-caffeine-wrapper .form-horizontal .form-group-sm .control-label {
1513
+ padding-top: 6px;
1514
+ font-size: 12px; } }
1515
+ .pixel-caffeine-wrapper .btn {
1516
+ display: inline-block;
1517
+ margin-bottom: 0;
1518
+ font-weight: normal;
1519
+ text-align: center;
1520
+ vertical-align: middle;
1521
+ touch-action: manipulation;
1522
+ cursor: pointer;
1523
+ background-image: none;
1524
+ border: 1px solid transparent;
1525
+ white-space: nowrap;
1526
+ padding: 6px 12px;
1527
+ font-size: 14px;
1528
+ line-height: 1.42857;
1529
+ border-radius: 4px;
1530
+ -webkit-user-select: none;
1531
+ -moz-user-select: none;
1532
+ -ms-user-select: none;
1533
+ user-select: none; }
1534
+ .pixel-caffeine-wrapper .btn:focus, .pixel-caffeine-wrapper .btn.focus, .pixel-caffeine-wrapper .btn:active:focus, .pixel-caffeine-wrapper .btn:active.focus, .pixel-caffeine-wrapper .btn.active:focus, .pixel-caffeine-wrapper .btn.active.focus {
1535
+ outline: 5px auto -webkit-focus-ring-color;
1536
+ outline-offset: -2px; }
1537
+ .pixel-caffeine-wrapper .btn:hover, .pixel-caffeine-wrapper .btn:focus, .pixel-caffeine-wrapper .btn.focus {
1538
+ color: #333;
1539
+ text-decoration: none; }
1540
+ .pixel-caffeine-wrapper .btn:active, .pixel-caffeine-wrapper .btn.active {
1541
+ outline: 0;
1542
+ background-image: none;
1543
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1544
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }
1545
+ .pixel-caffeine-wrapper .btn.disabled, .pixel-caffeine-wrapper .btn[disabled], fieldset[disabled] .pixel-caffeine-wrapper .btn {
1546
+ cursor: not-allowed;
1547
+ opacity: 0.65;
1548
+ filter: alpha(opacity=65);
1549
+ -webkit-box-shadow: none;
1550
+ box-shadow: none; }
1551
+ .pixel-caffeine-wrapper a.btn.disabled, fieldset[disabled] .pixel-caffeine-wrapper a.btn {
1552
+ pointer-events: none; }
1553
+ .pixel-caffeine-wrapper .btn-default {
1554
+ color: #333;
1555
+ background-color: #f2f2f2;
1556
+ border-color: #ccc; }
1557
+ .pixel-caffeine-wrapper .btn-default:focus, .pixel-caffeine-wrapper .btn-default.focus {
1558
+ color: #333;
1559
+ background-color: #d9d9d9;
1560
+ border-color: #8c8c8c; }
1561
+ .pixel-caffeine-wrapper .btn-default:hover {
1562
+ color: #333;
1563
+ background-color: #d9d9d9;
1564
+ border-color: #adadad; }
1565
+ .pixel-caffeine-wrapper .btn-default:active, .pixel-caffeine-wrapper .btn-default.active, .open > .pixel-caffeine-wrapper .btn-default.dropdown-toggle {
1566
+ color: #333;
1567
+ background-color: #d9d9d9;
1568
+ border-color: #adadad; }
1569
+ .pixel-caffeine-wrapper .btn-default:active:hover, .pixel-caffeine-wrapper .btn-default:active:focus, .pixel-caffeine-wrapper .btn-default:active.focus, .pixel-caffeine-wrapper .btn-default.active:hover, .pixel-caffeine-wrapper .btn-default.active:focus, .pixel-caffeine-wrapper .btn-default.active.focus, .open > .pixel-caffeine-wrapper .btn-default.dropdown-toggle:hover, .open > .pixel-caffeine-wrapper .btn-default.dropdown-toggle:focus, .open > .pixel-caffeine-wrapper .btn-default.dropdown-toggle.focus {
1570
+ color: #333;
1571
+ background-color: #c7c7c7;
1572
+ border-color: #8c8c8c; }
1573
+ .pixel-caffeine-wrapper .btn-default:active, .pixel-caffeine-wrapper .btn-default.active, .open > .pixel-caffeine-wrapper .btn-default.dropdown-toggle {
1574
+ background-image: none; }
1575
+ .pixel-caffeine-wrapper .btn-default.disabled:hover, .pixel-caffeine-wrapper .btn-default.disabled:focus, .pixel-caffeine-wrapper .btn-default.disabled.focus, .pixel-caffeine-wrapper .btn-default[disabled]:hover, .pixel-caffeine-wrapper .btn-default[disabled]:focus, .pixel-caffeine-wrapper .btn-default[disabled].focus, fieldset[disabled] .pixel-caffeine-wrapper .btn-default:hover, fieldset[disabled] .pixel-caffeine-wrapper .btn-default:focus, fieldset[disabled] .pixel-caffeine-wrapper .btn-default.focus {
1576
+ background-color: #f2f2f2;
1577
+ border-color: #ccc; }
1578
+ .pixel-caffeine-wrapper .btn-default .badge {
1579
+ color: #f2f2f2;
1580
+ background-color: #333; }
1581
+ .pixel-caffeine-wrapper .btn-primary {
1582
+ color: #fff;
1583
+ background-color: #337ab7;
1584
+ border-color: #2e6da4; }
1585
+ .pixel-caffeine-wrapper .btn-primary:focus, .pixel-caffeine-wrapper .btn-primary.focus {
1586
+ color: #fff;
1587
+ background-color: #286090;
1588
+ border-color: #122b40; }
1589
+ .pixel-caffeine-wrapper .btn-primary:hover {
1590
+ color: #fff;
1591
+ background-color: #286090;
1592
+ border-color: #204d74; }
1593
+ .pixel-caffeine-wrapper .btn-primary:active, .pixel-caffeine-wrapper .btn-primary.active, .open > .pixel-caffeine-wrapper .btn-primary.dropdown-toggle {
1594
+ color: #fff;
1595
+ background-color: #286090;
1596
+ border-color: #204d74; }
1597
+ .pixel-caffeine-wrapper .btn-primary:active:hover, .pixel-caffeine-wrapper .btn-primary:active:focus, .pixel-caffeine-wrapper .btn-primary:active.focus, .pixel-caffeine-wrapper .btn-primary.active:hover, .pixel-caffeine-wrapper .btn-primary.active:focus, .pixel-caffeine-wrapper .btn-primary.active.focus, .open > .pixel-caffeine-wrapper .btn-primary.dropdown-toggle:hover, .open > .pixel-caffeine-wrapper .btn-primary.dropdown-toggle:focus, .open > .pixel-caffeine-wrapper .btn-primary.dropdown-toggle.focus {
1598
+ color: #fff;
1599
+ background-color: #204d74;
1600
+ border-color: #122b40; }
1601
+ .pixel-caffeine-wrapper .btn-primary:active, .pixel-caffeine-wrapper .btn-primary.active, .open > .pixel-caffeine-wrapper .btn-primary.dropdown-toggle {
1602
+ background-image: none; }
1603
+ .pixel-caffeine-wrapper .btn-primary.disabled:hover, .pixel-caffeine-wrapper .btn-primary.disabled:focus, .pixel-caffeine-wrapper .btn-primary.disabled.focus, .pixel-caffeine-wrapper .btn-primary[disabled]:hover, .pixel-caffeine-wrapper .btn-primary[disabled]:focus, .pixel-caffeine-wrapper .btn-primary[disabled].focus, fieldset[disabled] .pixel-caffeine-wrapper .btn-primary:hover, fieldset[disabled] .pixel-caffeine-wrapper .btn-primary:focus, fieldset[disabled] .pixel-caffeine-wrapper .btn-primary.focus {
1604
+ background-color: #337ab7;
1605
+ border-color: #2e6da4; }
1606
+ .pixel-caffeine-wrapper .btn-primary .badge {
1607
+ color: #337ab7;
1608
+ background-color: #fff; }
1609
+ .pixel-caffeine-wrapper .btn-success {
1610
+ color: #fff;
1611
+ background-color: #5cb85c;
1612
+ border-color: #4cae4c; }
1613
+ .pixel-caffeine-wrapper .btn-success:focus, .pixel-caffeine-wrapper .btn-success.focus {
1614
+ color: #fff;
1615
+ background-color: #449d44;
1616
+ border-color: #255625; }
1617
+ .pixel-caffeine-wrapper .btn-success:hover {
1618
+ color: #fff;
1619
+ background-color: #449d44;
1620
+ border-color: #398439; }
1621
+ .pixel-caffeine-wrapper .btn-success:active, .pixel-caffeine-wrapper .btn-success.active, .open > .pixel-caffeine-wrapper .btn-success.dropdown-toggle {
1622
+ color: #fff;
1623
+ background-color: #449d44;
1624
+ border-color: #398439; }
1625
+ .pixel-caffeine-wrapper .btn-success:active:hover, .pixel-caffeine-wrapper .btn-success:active:focus, .pixel-caffeine-wrapper .btn-success:active.focus, .pixel-caffeine-wrapper .btn-success.active:hover, .pixel-caffeine-wrapper .btn-success.active:focus, .pixel-caffeine-wrapper .btn-success.active.focus, .open > .pixel-caffeine-wrapper .btn-success.dropdown-toggle:hover, .open > .pixel-caffeine-wrapper .btn-success.dropdown-toggle:focus, .open > .pixel-caffeine-wrapper .btn-success.dropdown-toggle.focus {
1626
+ color: #fff;
1627
+ background-color: #398439;
1628
+ border-color: #255625; }
1629
+ .pixel-caffeine-wrapper .btn-success:active, .pixel-caffeine-wrapper .btn-success.active, .open > .pixel-caffeine-wrapper .btn-success.dropdown-toggle {
1630
+ background-image: none; }
1631
+ .pixel-caffeine-wrapper .btn-success.disabled:hover, .pixel-caffeine-wrapper .btn-success.disabled:focus, .pixel-caffeine-wrapper .btn-success.disabled.focus, .pixel-caffeine-wrapper .btn-success[disabled]:hover, .pixel-caffeine-wrapper .btn-success[disabled]:focus, .pixel-caffeine-wrapper .btn-success[disabled].focus, fieldset[disabled] .pixel-caffeine-wrapper .btn-success:hover, fieldset[disabled] .pixel-caffeine-wrapper .btn-success:focus, fieldset[disabled] .pixel-caffeine-wrapper .btn-success.focus {
1632
+ background-color: #5cb85c;
1633
+ border-color: #4cae4c; }
1634
+ .pixel-caffeine-wrapper .btn-success .badge {
1635
+ color: #5cb85c;
1636
+ background-color: #fff; }
1637
+ .pixel-caffeine-wrapper .btn-info {
1638
+ color: #fff;
1639
+ background-color: #5bc0de;
1640
+ border-color: #46b8da; }
1641
+ .pixel-caffeine-wrapper .btn-info:focus, .pixel-caffeine-wrapper .btn-info.focus {
1642
+ color: #fff;
1643
+ background-color: #31b0d5;
1644
+ border-color: #1b6d85; }
1645
+ .pixel-caffeine-wrapper .btn-info:hover {
1646
+ color: #fff;
1647
+ background-color: #31b0d5;
1648
+ border-color: #269abc; }
1649
+ .pixel-caffeine-wrapper .btn-info:active, .pixel-caffeine-wrapper .btn-info.active, .open > .pixel-caffeine-wrapper .btn-info.dropdown-toggle {
1650
+ color: #fff;
1651
+ background-color: #31b0d5;
1652
+ border-color: #269abc; }
1653
+ .pixel-caffeine-wrapper .btn-info:active:hover, .pixel-caffeine-wrapper .btn-info:active:focus, .pixel-caffeine-wrapper .btn-info:active.focus, .pixel-caffeine-wrapper .btn-info.active:hover, .pixel-caffeine-wrapper .btn-info.active:focus, .pixel-caffeine-wrapper .btn-info.active.focus, .open > .pixel-caffeine-wrapper .btn-info.dropdown-toggle:hover, .open > .pixel-caffeine-wrapper .btn-info.dropdown-toggle:focus, .open > .pixel-caffeine-wrapper .btn-info.dropdown-toggle.focus {
1654
+ color: #fff;
1655
+ background-color: #269abc;
1656
+ border-color: #1b6d85; }
1657
+ .pixel-caffeine-wrapper .btn-info:active, .pixel-caffeine-wrapper .btn-info.active, .open > .pixel-caffeine-wrapper .btn-info.dropdown-toggle {
1658
+ background-image: none; }
1659
+ .pixel-caffeine-wrapper .btn-info.disabled:hover, .pixel-caffeine-wrapper .btn-info.disabled:focus, .pixel-caffeine-wrapper .btn-info.disabled.focus, .pixel-caffeine-wrapper .btn-info[disabled]:hover, .pixel-caffeine-wrapper .btn-info[disabled]:focus, .pixel-caffeine-wrapper .btn-info[disabled].focus, fieldset[disabled] .pixel-caffeine-wrapper .btn-info:hover, fieldset[disabled] .pixel-caffeine-wrapper .btn-info:focus, fieldset[disabled] .pixel-caffeine-wrapper .btn-info.focus {
1660
+ background-color: #5bc0de;
1661
+ border-color: #46b8da; }
1662
+ .pixel-caffeine-wrapper .btn-info .badge {
1663
+ color: #5bc0de;
1664
+ background-color: #fff; }
1665
+ .pixel-caffeine-wrapper .btn-warning {
1666
+ color: #fff;
1667
+ background-color: #f0ad4e;
1668
+ border-color: #eea236; }
1669
+ .pixel-caffeine-wrapper .btn-warning:focus, .pixel-caffeine-wrapper .btn-warning.focus {
1670
+ color: #fff;
1671
+ background-color: #ec971f;
1672
+ border-color: #985f0d; }
1673
+ .pixel-caffeine-wrapper .btn-warning:hover {
1674
+ color: #fff;
1675
+ background-color: #ec971f;
1676
+ border-color: #d58512; }
1677
+ .pixel-caffeine-wrapper .btn-warning:active, .pixel-caffeine-wrapper .btn-warning.active, .open > .pixel-caffeine-wrapper .btn-warning.dropdown-toggle {
1678
+ color: #fff;
1679
+ background-color: #ec971f;
1680
+ border-color: #d58512; }
1681
+ .pixel-caffeine-wrapper .btn-warning:active:hover, .pixel-caffeine-wrapper .btn-warning:active:focus, .pixel-caffeine-wrapper .btn-warning:active.focus, .pixel-caffeine-wrapper .btn-warning.active:hover, .pixel-caffeine-wrapper .btn-warning.active:focus, .pixel-caffeine-wrapper .btn-warning.active.focus, .open > .pixel-caffeine-wrapper .btn-warning.dropdown-toggle:hover, .open > .pixel-caffeine-wrapper .btn-warning.dropdown-toggle:focus, .open > .pixel-caffeine-wrapper .btn-warning.dropdown-toggle.focus {
1682
+ color: #fff;
1683
+ background-color: #d58512;
1684
+ border-color: #985f0d; }
1685
+ .pixel-caffeine-wrapper .btn-warning:active, .pixel-caffeine-wrapper .btn-warning.active, .open > .pixel-caffeine-wrapper .btn-warning.dropdown-toggle {
1686
+ background-image: none; }
1687
+ .pixel-caffeine-wrapper .btn-warning.disabled:hover, .pixel-caffeine-wrapper .btn-warning.disabled:focus, .pixel-caffeine-wrapper .btn-warning.disabled.focus, .pixel-caffeine-wrapper .btn-warning[disabled]:hover, .pixel-caffeine-wrapper .btn-warning[disabled]:focus, .pixel-caffeine-wrapper .btn-warning[disabled].focus, fieldset[disabled] .pixel-caffeine-wrapper .btn-warning:hover, fieldset[disabled] .pixel-caffeine-wrapper .btn-warning:focus, fieldset[disabled] .pixel-caffeine-wrapper .btn-warning.focus {
1688
+ background-color: #f0ad4e;
1689
+ border-color: #eea236; }
1690
+ .pixel-caffeine-wrapper .btn-warning .badge {
1691
+ color: #f0ad4e;
1692
+ background-color: #fff; }
1693
+ .pixel-caffeine-wrapper .btn-danger {
1694
+ color: #fff;
1695
+ background-color: #d9534f;
1696
+ border-color: #d43f3a; }
1697
+ .pixel-caffeine-wrapper .btn-danger:focus, .pixel-caffeine-wrapper .btn-danger.focus {
1698
+ color: #fff;
1699
+ background-color: #c9302c;
1700
+ border-color: #761c19; }
1701
+ .pixel-caffeine-wrapper .btn-danger:hover {
1702
+ color: #fff;
1703
+ background-color: #c9302c;
1704
+ border-color: #ac2925; }
1705
+ .pixel-caffeine-wrapper .btn-danger:active, .pixel-caffeine-wrapper .btn-danger.active, .open > .pixel-caffeine-wrapper .btn-danger.dropdown-toggle {
1706
+ color: #fff;
1707
+ background-color: #c9302c;
1708
+ border-color: #ac2925; }
1709
+ .pixel-caffeine-wrapper .btn-danger:active:hover, .pixel-caffeine-wrapper .btn-danger:active:focus, .pixel-caffeine-wrapper .btn-danger:active.focus, .pixel-caffeine-wrapper .btn-danger.active:hover, .pixel-caffeine-wrapper .btn-danger.active:focus, .pixel-caffeine-wrapper .btn-danger.active.focus, .open > .pixel-caffeine-wrapper .btn-danger.dropdown-toggle:hover, .open > .pixel-caffeine-wrapper .btn-danger.dropdown-toggle:focus, .open > .pixel-caffeine-wrapper .btn-danger.dropdown-toggle.focus {
1710
+ color: #fff;
1711
+ background-color: #ac2925;
1712
+ border-color: #761c19; }
1713
+ .pixel-caffeine-wrapper .btn-danger:active, .pixel-caffeine-wrapper .btn-danger.active, .open > .pixel-caffeine-wrapper .btn-danger.dropdown-toggle {
1714
+ background-image: none; }
1715
+ .pixel-caffeine-wrapper .btn-danger.disabled:hover, .pixel-caffeine-wrapper .btn-danger.disabled:focus, .pixel-caffeine-wrapper .btn-danger.disabled.focus, .pixel-caffeine-wrapper .btn-danger[disabled]:hover, .pixel-caffeine-wrapper .btn-danger[disabled]:focus, .pixel-caffeine-wrapper .btn-danger[disabled].focus, fieldset[disabled] .pixel-caffeine-wrapper .btn-danger:hover, fieldset[disabled] .pixel-caffeine-wrapper .btn-danger:focus, fieldset[disabled] .pixel-caffeine-wrapper .btn-danger.focus {
1716
+ background-color: #d9534f;
1717
+ border-color: #d43f3a; }
1718
+ .pixel-caffeine-wrapper .btn-danger .badge {
1719
+ color: #d9534f;
1720
+ background-color: #fff; }
1721
+ .pixel-caffeine-wrapper .btn-link {
1722
+ color: #337ab7;
1723
+ font-weight: normal;
1724
+ border-radius: 0; }
1725
+ .pixel-caffeine-wrapper .btn-link, .pixel-caffeine-wrapper .btn-link:active, .pixel-caffeine-wrapper .btn-link.active, .pixel-caffeine-wrapper .btn-link[disabled], fieldset[disabled] .pixel-caffeine-wrapper .btn-link {
1726
+ background-color: transparent;
1727
+ -webkit-box-shadow: none;
1728
+ box-shadow: none; }
1729
+ .pixel-caffeine-wrapper .btn-link, .pixel-caffeine-wrapper .btn-link:hover, .pixel-caffeine-wrapper .btn-link:focus, .pixel-caffeine-wrapper .btn-link:active {
1730
+ border-color: transparent; }
1731
+ .pixel-caffeine-wrapper .btn-link:hover, .pixel-caffeine-wrapper .btn-link:focus {
1732
+ color: #23527c;
1733
+ text-decoration: underline;
1734
+ background-color: transparent; }
1735
+ .pixel-caffeine-wrapper .btn-link[disabled]:hover, .pixel-caffeine-wrapper .btn-link[disabled]:focus, fieldset[disabled] .pixel-caffeine-wrapper .btn-link:hover, fieldset[disabled] .pixel-caffeine-wrapper .btn-link:focus {
1736
+ color: #777777;
1737
+ text-decoration: none; }
1738
+ .pixel-caffeine-wrapper .btn-lg, .pixel-caffeine-wrapper .btn-group-lg > .btn {
1739
+ padding: 10px 16px;
1740
+ font-size: 18px;
1741
+ line-height: 1.33333;
1742
+ border-radius: 6px; }
1743
+ .pixel-caffeine-wrapper .btn-sm, .pixel-caffeine-wrapper .btn-group-sm > .btn {
1744
+ padding: 5px 10px;
1745
+ font-size: 12px;
1746
+ line-height: 1.5;
1747
+ border-radius: 3px; }
1748
+ .pixel-caffeine-wrapper .btn-xs, .pixel-caffeine-wrapper .btn-group-xs > .btn {
1749
+ padding: 1px 5px;
1750
+ font-size: 12px;
1751
+ line-height: 1.5;
1752
+ border-radius: 3px; }
1753
+ .pixel-caffeine-wrapper .btn-block {
1754
+ display: block;
1755
+ width: 100%; }
1756
+ .pixel-caffeine-wrapper .btn-block + .btn-block {
1757
+ margin-top: 5px; }
1758
+ .pixel-caffeine-wrapper input[type="submit"].btn-block,
1759
+ .pixel-caffeine-wrapper input[type="reset"].btn-block,
1760
+ .pixel-caffeine-wrapper input[type="button"].btn-block {
1761
+ width: 100%; }
1762
+ .pixel-caffeine-wrapper .fade {
1763
+ opacity: 0;
1764
+ -webkit-transition: opacity 0.15s linear;
1765
+ -o-transition: opacity 0.15s linear;
1766
+ transition: opacity 0.15s linear; }
1767
+ .pixel-caffeine-wrapper .fade.in {
1768
+ opacity: 1; }
1769
+ .pixel-caffeine-wrapper .collapse {
1770
+ display: none; }
1771
+ .pixel-caffeine-wrapper .collapse.in {
1772
+ display: block; }
1773
+ .pixel-caffeine-wrapper tr.collapse.in {
1774
+ display: table-row; }
1775
+ .pixel-caffeine-wrapper tbody.collapse.in {
1776
+ display: table-row-group; }
1777
+ .pixel-caffeine-wrapper .collapsing {
1778
+ position: relative;
1779
+ height: 0;
1780
+ overflow: hidden;
1781
+ -webkit-transition-property: height, visibility;
1782
+ transition-property: height, visibility;
1783
+ -webkit-transition-duration: 0.35s;
1784
+ transition-duration: 0.35s;
1785
+ -webkit-transition-timing-function: ease;
1786
+ transition-timing-function: ease; }
1787
+ .pixel-caffeine-wrapper .caret {
1788
+ display: inline-block;
1789
+ width: 0;
1790
+ height: 0;
1791
+ margin-left: 2px;
1792
+ vertical-align: middle;
1793
+ border-top: 4px dashed;
1794
+ border-top: 4px solid \9;
1795
+ border-right: 4px solid transparent;
1796
+ border-left: 4px solid transparent; }
1797
+ .pixel-caffeine-wrapper .dropup,
1798
+ .pixel-caffeine-wrapper .dropdown {
1799
+ position: relative; }
1800
+ .pixel-caffeine-wrapper .dropdown-toggle:focus {
1801
+ outline: 0; }
1802
+ .pixel-caffeine-wrapper .dropdown-menu {
1803
+ position: absolute;
1804
+ top: 100%;
1805
+ left: 0;
1806
+ z-index: 1000;
1807
+ display: none;
1808
+ float: left;
1809
+ min-width: 160px;
1810
+ padding: 5px 0;
1811
+ margin: 2px 0 0;
1812
+ list-style: none;
1813
+ font-size: 14px;
1814
+ text-align: left;
1815
+ background-color: #fff;
1816
+ border: 1px solid #ccc;
1817
+ border: 1px solid rgba(0, 0, 0, 0.15);
1818
+ border-radius: 4px;
1819
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
1820
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
1821
+ background-clip: padding-box; }
1822
+ .pixel-caffeine-wrapper .dropdown-menu.pull-right {
1823
+ right: 0;
1824
+ left: auto; }
1825
+ .pixel-caffeine-wrapper .dropdown-menu .divider {
1826
+ height: 1px;
1827
+ margin: 9px 0;
1828
+ overflow: hidden;
1829
+ background-color: #e5e5e5; }
1830
+ .pixel-caffeine-wrapper .dropdown-menu > li > a {
1831
+ display: block;
1832
+ padding: 3px 20px;
1833
+ clear: both;
1834
+ font-weight: normal;
1835
+ line-height: 1.42857;
1836
+ color: #333333;
1837
+ white-space: nowrap; }
1838
+ .pixel-caffeine-wrapper .dropdown-menu > li > a:hover, .pixel-caffeine-wrapper .dropdown-menu > li > a:focus {
1839
+ text-decoration: none;
1840
+ color: #262626;
1841
+ background-color: #f5f5f5; }
1842
+ .pixel-caffeine-wrapper .dropdown-menu > .active > a, .pixel-caffeine-wrapper .dropdown-menu > .active > a:hover, .pixel-caffeine-wrapper .dropdown-menu > .active > a:focus {
1843
+ color: #fff;
1844
+ text-decoration: none;
1845
+ outline: 0;
1846
+ background-color: #337ab7; }
1847
+ .pixel-caffeine-wrapper .dropdown-menu > .disabled > a, .pixel-caffeine-wrapper .dropdown-menu > .disabled > a:hover, .pixel-caffeine-wrapper .dropdown-menu > .disabled > a:focus {
1848
+ color: #777777; }
1849
+ .pixel-caffeine-wrapper .dropdown-menu > .disabled > a:hover, .pixel-caffeine-wrapper .dropdown-menu > .disabled > a:focus {
1850
+ text-decoration: none;
1851
+ background-color: transparent;
1852
+ background-image: none;
1853
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
1854
+ cursor: not-allowed; }
1855
+ .pixel-caffeine-wrapper .open > .dropdown-menu {
1856
+ display: block; }
1857
+ .pixel-caffeine-wrapper .open > a {
1858
+ outline: 0; }
1859
+ .pixel-caffeine-wrapper .dropdown-menu-right {
1860
+ left: auto;
1861
+ right: 0; }
1862
+ .pixel-caffeine-wrapper .dropdown-menu-left {
1863
+ left: 0;
1864
+ right: auto; }
1865
+ .pixel-caffeine-wrapper .dropdown-header {
1866
+ display: block;
1867
+ padding: 3px 20px;
1868
+ font-size: 12px;
1869
+ line-height: 1.42857;
1870
+ color: #777777;
1871
+ white-space: nowrap; }
1872
+ .pixel-caffeine-wrapper .dropdown-backdrop {
1873
+ position: fixed;
1874
+ left: 0;
1875
+ right: 0;
1876
+ bottom: 0;
1877
+ top: 0;
1878
+ z-index: 990; }
1879
+ .pixel-caffeine-wrapper .pull-right > .dropdown-menu {
1880
+ right: 0;
1881
+ left: auto; }
1882
+ .pixel-caffeine-wrapper .dropup .caret,
1883
+ .pixel-caffeine-wrapper .navbar-fixed-bottom .dropdown .caret {
1884
+ border-top: 0;
1885
+ border-bottom: 4px dashed;
1886
+ border-bottom: 4px solid \9;
1887
+ content: ""; }
1888
+ .pixel-caffeine-wrapper .dropup .dropdown-menu,
1889
+ .pixel-caffeine-wrapper .navbar-fixed-bottom .dropdown .dropdown-menu {
1890
+ top: auto;
1891
+ bottom: 100%;
1892
+ margin-bottom: 2px; }
1893
+ @media (min-width: 768px) {
1894
+ .pixel-caffeine-wrapper .navbar-right .dropdown-menu {
1895
+ right: 0;
1896
+ left: auto; }
1897
+ .pixel-caffeine-wrapper .navbar-right .dropdown-menu-left {
1898
+ left: 0;
1899
+ right: auto; } }
1900
+ .pixel-caffeine-wrapper .btn-group,
1901
+ .pixel-caffeine-wrapper .btn-group-vertical {
1902
+ position: relative;
1903
+ display: inline-block;
1904
+ vertical-align: middle; }
1905
+ .pixel-caffeine-wrapper .btn-group > .btn,
1906
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn {
1907
+ position: relative;
1908
+ float: left; }
1909
+ .pixel-caffeine-wrapper .btn-group > .btn:hover, .pixel-caffeine-wrapper .btn-group > .btn:focus, .pixel-caffeine-wrapper .btn-group > .btn:active, .pixel-caffeine-wrapper .btn-group > .btn.active,
1910
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn:hover,
1911
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn:focus,
1912
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn:active,
1913
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn.active {
1914
+ z-index: 2; }
1915
+ .pixel-caffeine-wrapper .btn-group .btn + .btn,
1916
+ .pixel-caffeine-wrapper .btn-group .btn + .btn-group,
1917
+ .pixel-caffeine-wrapper .btn-group .btn-group + .btn,
1918
+ .pixel-caffeine-wrapper .btn-group .btn-group + .btn-group {
1919
+ margin-left: -1px; }
1920
+ .pixel-caffeine-wrapper .btn-toolbar {
1921
+ margin-left: -5px; }
1922
+ .pixel-caffeine-wrapper .btn-toolbar:before, .pixel-caffeine-wrapper .btn-toolbar:after {
1923
+ content: " ";
1924
+ display: table; }
1925
+ .pixel-caffeine-wrapper .btn-toolbar:after {
1926
+ clear: both; }
1927
+ .pixel-caffeine-wrapper .btn-toolbar .btn,
1928
+ .pixel-caffeine-wrapper .btn-toolbar .btn-group,
1929
+ .pixel-caffeine-wrapper .btn-toolbar .input-group {
1930
+ float: left; }
1931
+ .pixel-caffeine-wrapper .btn-toolbar > .btn,
1932
+ .pixel-caffeine-wrapper .btn-toolbar > .btn-group,
1933
+ .pixel-caffeine-wrapper .btn-toolbar > .input-group {
1934
+ margin-left: 5px; }
1935
+ .pixel-caffeine-wrapper .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
1936
+ border-radius: 0; }
1937
+ .pixel-caffeine-wrapper .btn-group > .btn:first-child {
1938
+ margin-left: 0; }
1939
+ .pixel-caffeine-wrapper .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
1940
+ border-bottom-right-radius: 0;
1941
+ border-top-right-radius: 0; }
1942
+ .pixel-caffeine-wrapper .btn-group > .btn:last-child:not(:first-child),
1943
+ .pixel-caffeine-wrapper .btn-group > .dropdown-toggle:not(:first-child) {
1944
+ border-bottom-left-radius: 0;
1945
+ border-top-left-radius: 0; }
1946
+ .pixel-caffeine-wrapper .btn-group > .btn-group {
1947
+ float: left; }
1948
+ .pixel-caffeine-wrapper .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
1949
+ border-radius: 0; }
1950
+ .pixel-caffeine-wrapper .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
1951
+ .pixel-caffeine-wrapper .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
1952
+ border-bottom-right-radius: 0;
1953
+ border-top-right-radius: 0; }
1954
+ .pixel-caffeine-wrapper .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
1955
+ border-bottom-left-radius: 0;
1956
+ border-top-left-radius: 0; }
1957
+ .pixel-caffeine-wrapper .btn-group .dropdown-toggle:active,
1958
+ .pixel-caffeine-wrapper .btn-group.open .dropdown-toggle {
1959
+ outline: 0; }
1960
+ .pixel-caffeine-wrapper .btn-group > .btn + .dropdown-toggle {
1961
+ padding-left: 8px;
1962
+ padding-right: 8px; }
1963
+ .pixel-caffeine-wrapper .btn-group > .btn-lg + .dropdown-toggle, .pixel-caffeine-wrapper .btn-group-lg.btn-group > .btn + .dropdown-toggle {
1964
+ padding-left: 12px;
1965
+ padding-right: 12px; }
1966
+ .pixel-caffeine-wrapper .btn-group.open .dropdown-toggle {
1967
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
1968
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }
1969
+ .pixel-caffeine-wrapper .btn-group.open .dropdown-toggle.btn-link {
1970
+ -webkit-box-shadow: none;
1971
+ box-shadow: none; }
1972
+ .pixel-caffeine-wrapper .btn .caret {
1973
+ margin-left: 0; }
1974
+ .pixel-caffeine-wrapper .btn-lg .caret, .pixel-caffeine-wrapper .btn-group-lg > .btn .caret {
1975
+ border-width: 5px 5px 0;
1976
+ border-bottom-width: 0; }
1977
+ .pixel-caffeine-wrapper .dropup .btn-lg .caret, .pixel-caffeine-wrapper .dropup .btn-group-lg > .btn .caret {
1978
+ border-width: 0 5px 5px; }
1979
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn,
1980
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn-group,
1981
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn-group > .btn {
1982
+ display: block;
1983
+ float: none;
1984
+ width: 100%;
1985
+ max-width: 100%; }
1986
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn-group:before, .pixel-caffeine-wrapper .btn-group-vertical > .btn-group:after {
1987
+ content: " ";
1988
+ display: table; }
1989
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn-group:after {
1990
+ clear: both; }
1991
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn-group > .btn {
1992
+ float: none; }
1993
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn + .btn,
1994
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn + .btn-group,
1995
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn-group + .btn,
1996
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn-group + .btn-group {
1997
+ margin-top: -1px;
1998
+ margin-left: 0; }
1999
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn:not(:first-child):not(:last-child) {
2000
+ border-radius: 0; }
2001
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn:first-child:not(:last-child) {
2002
+ border-top-right-radius: 4px;
2003
+ border-top-left-radius: 4px;
2004
+ border-bottom-right-radius: 0;
2005
+ border-bottom-left-radius: 0; }
2006
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn:last-child:not(:first-child) {
2007
+ border-top-right-radius: 0;
2008
+ border-top-left-radius: 0;
2009
+ border-bottom-right-radius: 4px;
2010
+ border-bottom-left-radius: 4px; }
2011
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
2012
+ border-radius: 0; }
2013
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
2014
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
2015
+ border-bottom-right-radius: 0;
2016
+ border-bottom-left-radius: 0; }
2017
+ .pixel-caffeine-wrapper .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
2018
+ border-top-right-radius: 0;
2019
+ border-top-left-radius: 0; }
2020
+ .pixel-caffeine-wrapper .btn-group-justified {
2021
+ display: table;
2022
+ width: 100%;
2023
+ table-layout: fixed;
2024
+ border-collapse: separate; }
2025
+ .pixel-caffeine-wrapper .btn-group-justified > .btn,
2026
+ .pixel-caffeine-wrapper .btn-group-justified > .btn-group {
2027
+ float: none;
2028
+ display: table-cell;
2029
+ width: 1%; }
2030
+ .pixel-caffeine-wrapper .btn-group-justified > .btn-group .btn {
2031
+ width: 100%; }
2032
+ .pixel-caffeine-wrapper .btn-group-justified > .btn-group .dropdown-menu {
2033
+ left: auto; }
2034
+ .pixel-caffeine-wrapper [data-toggle="buttons"] > .btn input[type="radio"],
2035
+ .pixel-caffeine-wrapper [data-toggle="buttons"] > .btn input[type="checkbox"],
2036
+ .pixel-caffeine-wrapper [data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
2037
+ .pixel-caffeine-wrapper [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
2038
+ position: absolute;
2039
+ clip: rect(0, 0, 0, 0);
2040
+ pointer-events: none; }
2041
+ .pixel-caffeine-wrapper .input-group {
2042
+ position: relative;
2043
+ display: table;
2044
+ border-collapse: separate; }
2045
+ .pixel-caffeine-wrapper .input-group[class*="col-"] {
2046
+ float: none;
2047
+ padding-left: 0;
2048
+ padding-right: 0; }
2049
+ .pixel-caffeine-wrapper .input-group .form-control {
2050
+ position: relative;
2051
+ z-index: 2;
2052
+ float: left;
2053
+ width: 100%;
2054
+ margin-bottom: 0; }
2055
+ .pixel-caffeine-wrapper .input-group .form-control:focus {
2056
+ z-index: 3; }
2057
+ .pixel-caffeine-wrapper .input-group-addon,
2058
+ .pixel-caffeine-wrapper .input-group-btn,
2059
+ .pixel-caffeine-wrapper .input-group .form-control {
2060
+ display: table-cell; }
2061
+ .pixel-caffeine-wrapper .input-group-addon:not(:first-child):not(:last-child),
2062
+ .pixel-caffeine-wrapper .input-group-btn:not(:first-child):not(:last-child),
2063
+ .pixel-caffeine-wrapper .input-group .form-control:not(:first-child):not(:last-child) {
2064
+ border-radius: 0; }
2065
+ .pixel-caffeine-wrapper .input-group-addon,
2066
+ .pixel-caffeine-wrapper .input-group-btn {
2067
+ width: 1%;
2068
+ white-space: nowrap;
2069
+ vertical-align: middle; }
2070
+ .pixel-caffeine-wrapper .input-group-addon {
2071
+ padding: 6px 12px;
2072
+ font-size: 14px;
2073
+ font-weight: normal;
2074
+ line-height: 1;
2075
+ color: #555555;
2076
+ text-align: center;
2077
+ background-color: #eeeeee;
2078
+ border: 1px solid #ccc;
2079
+ border-radius: 4px; }
2080
+ .pixel-caffeine-wrapper .input-group-addon.input-sm,
2081
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon,
2082
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .input-group-addon.btn {
2083
+ padding: 5px 10px;
2084
+ font-size: 12px;
2085
+ border-radius: 3px; }
2086
+ .pixel-caffeine-wrapper .input-group-addon.input-lg,
2087
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon,
2088
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .input-group-addon.btn {
2089
+ padding: 10px 16px;
2090
+ font-size: 18px;
2091
+ border-radius: 6px; }
2092
+ .pixel-caffeine-wrapper .input-group-addon input[type="radio"],
2093
+ .pixel-caffeine-wrapper .input-group-addon input[type="checkbox"] {
2094
+ margin-top: 0; }
2095
+ .pixel-caffeine-wrapper .input-group .form-control:first-child,
2096
+ .pixel-caffeine-wrapper .input-group-addon:first-child,
2097
+ .pixel-caffeine-wrapper .input-group-btn:first-child > .btn,
2098
+ .pixel-caffeine-wrapper .input-group-btn:first-child > .btn-group > .btn,
2099
+ .pixel-caffeine-wrapper .input-group-btn:first-child > .dropdown-toggle,
2100
+ .pixel-caffeine-wrapper .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
2101
+ .pixel-caffeine-wrapper .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
2102
+ border-bottom-right-radius: 0;
2103
+ border-top-right-radius: 0; }
2104
+ .pixel-caffeine-wrapper .input-group-addon:first-child {
2105
+ border-right: 0; }
2106
+ .pixel-caffeine-wrapper .input-group .form-control:last-child,
2107
+ .pixel-caffeine-wrapper .input-group-addon:last-child,
2108
+ .pixel-caffeine-wrapper .input-group-btn:last-child > .btn,
2109
+ .pixel-caffeine-wrapper .input-group-btn:last-child > .btn-group > .btn,
2110
+ .pixel-caffeine-wrapper .input-group-btn:last-child > .dropdown-toggle,
2111
+ .pixel-caffeine-wrapper .input-group-btn:first-child > .btn:not(:first-child),
2112
+ .pixel-caffeine-wrapper .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
2113
+ border-bottom-left-radius: 0;
2114
+ border-top-left-radius: 0; }
2115
+ .pixel-caffeine-wrapper .input-group-addon:last-child {
2116
+ border-left: 0; }
2117
+ .pixel-caffeine-wrapper .input-group-btn {
2118
+ position: relative;
2119
+ font-size: 0;
2120
+ white-space: nowrap; }
2121
+ .pixel-caffeine-wrapper .input-group-btn > .btn {
2122
+ position: relative; }
2123
+ .pixel-caffeine-wrapper .input-group-btn > .btn + .btn {
2124
+ margin-left: -1px; }
2125
+ .pixel-caffeine-wrapper .input-group-btn > .btn:hover, .pixel-caffeine-wrapper .input-group-btn > .btn:focus, .pixel-caffeine-wrapper .input-group-btn > .btn:active {
2126
+ z-index: 2; }
2127
+ .pixel-caffeine-wrapper .input-group-btn:first-child > .btn,
2128
+ .pixel-caffeine-wrapper .input-group-btn:first-child > .btn-group {
2129
+ margin-right: -1px; }
2130
+ .pixel-caffeine-wrapper .input-group-btn:last-child > .btn,
2131
+ .pixel-caffeine-wrapper .input-group-btn:last-child > .btn-group {
2132
+ z-index: 2;
2133
+ margin-left: -1px; }
2134
+ .pixel-caffeine-wrapper .nav {
2135
+ margin-bottom: 0;
2136
+ padding-left: 0;
2137
+ list-style: none; }
2138
+ .pixel-caffeine-wrapper .nav:before, .pixel-caffeine-wrapper .nav:after {
2139
+ content: " ";
2140
+ display: table; }
2141
+ .pixel-caffeine-wrapper .nav:after {
2142
+ clear: both; }
2143
+ .pixel-caffeine-wrapper .nav > li {
2144
+ position: relative;
2145
+ display: block; }
2146
+ .pixel-caffeine-wrapper .nav > li > a {
2147
+ position: relative;
2148
+ display: block;
2149
+ padding: 10px 15px; }
2150
+ .pixel-caffeine-wrapper .nav > li > a:hover, .pixel-caffeine-wrapper .nav > li > a:focus {
2151
+ text-decoration: none;
2152
+ background-color: #eeeeee; }
2153
+ .pixel-caffeine-wrapper .nav > li.disabled > a {
2154
+ color: #777777; }
2155
+ .pixel-caffeine-wrapper .nav > li.disabled > a:hover, .pixel-caffeine-wrapper .nav > li.disabled > a:focus {
2156
+ color: #777777;
2157
+ text-decoration: none;
2158
+ background-color: transparent;
2159
+ cursor: not-allowed; }
2160
+ .pixel-caffeine-wrapper .nav .open > a, .pixel-caffeine-wrapper .nav .open > a:hover, .pixel-caffeine-wrapper .nav .open > a:focus {
2161
+ background-color: #eeeeee;
2162
+ border-color: #337ab7; }
2163
+ .pixel-caffeine-wrapper .nav .nav-divider {
2164
+ height: 1px;
2165
+ margin: 9px 0;
2166
+ overflow: hidden;
2167
+ background-color: #e5e5e5; }
2168
+ .pixel-caffeine-wrapper .nav > li > a > img {
2169
+ max-width: none; }
2170
+ .pixel-caffeine-wrapper .nav-tabs {
2171
+ border-bottom: 1px solid #ddd; }
2172
+ .pixel-caffeine-wrapper .nav-tabs > li {
2173
+ float: left;
2174
+ margin-bottom: -1px; }
2175
+ .pixel-caffeine-wrapper .nav-tabs > li > a {
2176
+ margin-right: 2px;
2177
+ line-height: 1.42857;
2178
+ border: 1px solid transparent;
2179
+ border-radius: 4px 4px 0 0; }
2180
+ .pixel-caffeine-wrapper .nav-tabs > li > a:hover {
2181
+ border-color: #eeeeee #eeeeee #ddd; }
2182
+ .pixel-caffeine-wrapper .nav-tabs > li.active > a, .pixel-caffeine-wrapper .nav-tabs > li.active > a:hover, .pixel-caffeine-wrapper .nav-tabs > li.active > a:focus {
2183
+ color: #555555;
2184
+ background-color: #fff;
2185
+ border: 1px solid #ddd;
2186
+ border-bottom-color: transparent;
2187
+ cursor: default; }
2188
+ .pixel-caffeine-wrapper .nav-pills > li {
2189
+ float: left; }
2190
+ .pixel-caffeine-wrapper .nav-pills > li > a {
2191
+ border-radius: 4px; }
2192
+ .pixel-caffeine-wrapper .nav-pills > li + li {
2193
+ margin-left: 2px; }
2194
+ .pixel-caffeine-wrapper .nav-pills > li.active > a, .pixel-caffeine-wrapper .nav-pills > li.active > a:hover, .pixel-caffeine-wrapper .nav-pills > li.active > a:focus {
2195
+ color: #fff;
2196
+ background-color: #337ab7; }
2197
+ .pixel-caffeine-wrapper .nav-stacked > li {
2198
+ float: none; }
2199
+ .pixel-caffeine-wrapper .nav-stacked > li + li {
2200
+ margin-top: 2px;
2201
+ margin-left: 0; }
2202
+ .pixel-caffeine-wrapper .nav-justified, .pixel-caffeine-wrapper .nav-tabs.nav-justified {
2203
+ width: 100%; }
2204
+ .pixel-caffeine-wrapper .nav-justified > li, .pixel-caffeine-wrapper .nav-tabs.nav-justified > li {
2205
+ float: none; }
2206
+ .pixel-caffeine-wrapper .nav-justified > li > a, .pixel-caffeine-wrapper .nav-tabs.nav-justified > li > a {
2207
+ text-align: center;
2208
+ margin-bottom: 5px; }
2209
+ .pixel-caffeine-wrapper .nav-justified > .dropdown .dropdown-menu {
2210
+ top: auto;
2211
+ left: auto; }
2212
+ @media (min-width: 768px) {
2213
+ .pixel-caffeine-wrapper .nav-justified > li, .pixel-caffeine-wrapper .nav-tabs.nav-justified > li {
2214
+ display: table-cell;
2215
+ width: 1%; }
2216
+ .pixel-caffeine-wrapper .nav-justified > li > a, .pixel-caffeine-wrapper .nav-tabs.nav-justified > li > a {
2217
+ margin-bottom: 0; } }
2218
+ .pixel-caffeine-wrapper .nav-tabs-justified, .pixel-caffeine-wrapper .nav-tabs.nav-justified {
2219
+ border-bottom: 0; }
2220
+ .pixel-caffeine-wrapper .nav-tabs-justified > li > a, .pixel-caffeine-wrapper .nav-tabs.nav-justified > li > a {
2221
+ margin-right: 0;
2222
+ border-radius: 4px; }
2223
+ .pixel-caffeine-wrapper .nav-tabs-justified > .active > a, .pixel-caffeine-wrapper .nav-tabs.nav-justified > .active > a,
2224
+ .pixel-caffeine-wrapper .nav-tabs-justified > .active > a:hover,
2225
+ .pixel-caffeine-wrapper .nav-tabs.nav-justified > .active > a:hover,
2226
+ .pixel-caffeine-wrapper .nav-tabs-justified > .active > a:focus,
2227
+ .pixel-caffeine-wrapper .nav-tabs.nav-justified > .active > a:focus {
2228
+ border: 1px solid #ddd; }
2229
+ @media (min-width: 768px) {
2230
+ .pixel-caffeine-wrapper .nav-tabs-justified > li > a, .pixel-caffeine-wrapper .nav-tabs.nav-justified > li > a {
2231
+ border-bottom: 1px solid #ddd;
2232
+ border-radius: 4px 4px 0 0; }
2233
+ .pixel-caffeine-wrapper .nav-tabs-justified > .active > a, .pixel-caffeine-wrapper .nav-tabs.nav-justified > .active > a,
2234
+ .pixel-caffeine-wrapper .nav-tabs-justified > .active > a:hover,
2235
+ .pixel-caffeine-wrapper .nav-tabs.nav-justified > .active > a:hover,
2236
+ .pixel-caffeine-wrapper .nav-tabs-justified > .active > a:focus,
2237
+ .pixel-caffeine-wrapper .nav-tabs.nav-justified > .active > a:focus {
2238
+ border-bottom-color: #fff; } }
2239
+ .pixel-caffeine-wrapper .tab-content > .tab-pane {
2240
+ display: none; }
2241
+ .pixel-caffeine-wrapper .tab-content > .active {
2242
+ display: block; }
2243
+ .pixel-caffeine-wrapper .nav-tabs .dropdown-menu {
2244
+ margin-top: -1px;
2245
+ border-top-right-radius: 0;
2246
+ border-top-left-radius: 0; }
2247
+ .pixel-caffeine-wrapper .navbar {
2248
+ position: relative;
2249
+ min-height: 50px;
2250
+ margin-bottom: 20px;
2251
+ border: 1px solid transparent; }
2252
+ .pixel-caffeine-wrapper .navbar:before, .pixel-caffeine-wrapper .navbar:after {
2253
+ content: " ";
2254
+ display: table; }
2255
+ .pixel-caffeine-wrapper .navbar:after {
2256
+ clear: both; }
2257
+ @media (min-width: 768px) {
2258
+ .pixel-caffeine-wrapper .navbar {
2259
+ border-radius: 4px; } }
2260
+ .pixel-caffeine-wrapper .navbar-header:before, .pixel-caffeine-wrapper .navbar-header:after {
2261
+ content: " ";
2262
+ display: table; }
2263
+ .pixel-caffeine-wrapper .navbar-header:after {
2264
+ clear: both; }
2265
+ @media (min-width: 768px) {
2266
+ .pixel-caffeine-wrapper .navbar-header {
2267
+ float: left; } }
2268
+ .pixel-caffeine-wrapper .navbar-collapse {
2269
+ overflow-x: visible;
2270
+ padding-right: 15px;
2271
+ padding-left: 15px;
2272
+ border-top: 1px solid transparent;
2273
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
2274
+ -webkit-overflow-scrolling: touch; }
2275
+ .pixel-caffeine-wrapper .navbar-collapse:before, .pixel-caffeine-wrapper .navbar-collapse:after {
2276
+ content: " ";
2277
+ display: table; }
2278
+ .pixel-caffeine-wrapper .navbar-collapse:after {
2279
+ clear: both; }
2280
+ .pixel-caffeine-wrapper .navbar-collapse.in {
2281
+ overflow-y: auto; }
2282
+ @media (min-width: 768px) {
2283
+ .pixel-caffeine-wrapper .navbar-collapse {
2284
+ width: auto;
2285
+ border-top: 0;
2286
+ box-shadow: none; }
2287
+ .pixel-caffeine-wrapper .navbar-collapse.collapse {
2288
+ display: block !important;
2289
+ height: auto !important;
2290
+ padding-bottom: 0;
2291
+ overflow: visible !important; }
2292
+ .pixel-caffeine-wrapper .navbar-collapse.in {
2293
+ overflow-y: visible; }
2294
+ .navbar-fixed-top .pixel-caffeine-wrapper .navbar-collapse, .navbar-static-top .pixel-caffeine-wrapper .navbar-collapse, .navbar-fixed-bottom .pixel-caffeine-wrapper .navbar-collapse {
2295
+ padding-left: 0;
2296
+ padding-right: 0; } }
2297
+ .pixel-caffeine-wrapper .navbar-fixed-top .navbar-collapse,
2298
+ .pixel-caffeine-wrapper .navbar-fixed-bottom .navbar-collapse {
2299
+ max-height: 340px; }
2300
+ @media (max-device-width: 480px) and (orientation: landscape) {
2301
+ .pixel-caffeine-wrapper .navbar-fixed-top .navbar-collapse,
2302
+ .pixel-caffeine-wrapper .navbar-fixed-bottom .navbar-collapse {
2303
+ max-height: 200px; } }
2304
+ .pixel-caffeine-wrapper .container > .navbar-header,
2305
+ .pixel-caffeine-wrapper .container > .navbar-collapse,
2306
+ .pixel-caffeine-wrapper .container-fluid > .navbar-header,
2307
+ .pixel-caffeine-wrapper .container-fluid > .navbar-collapse {
2308
+ margin-right: -15px;
2309
+ margin-left: -15px; }
2310
+ @media (min-width: 768px) {
2311
+ .pixel-caffeine-wrapper .container > .navbar-header,
2312
+ .pixel-caffeine-wrapper .container > .navbar-collapse,
2313
+ .pixel-caffeine-wrapper .container-fluid > .navbar-header,
2314
+ .pixel-caffeine-wrapper .container-fluid > .navbar-collapse {
2315
+ margin-right: 0;
2316
+ margin-left: 0; } }
2317
+ .pixel-caffeine-wrapper .navbar-static-top {
2318
+ z-index: 1000;
2319
+ border-width: 0 0 1px; }
2320
+ @media (min-width: 768px) {
2321
+ .pixel-caffeine-wrapper .navbar-static-top {
2322
+ border-radius: 0; } }
2323
+ .pixel-caffeine-wrapper .navbar-fixed-top,
2324
+ .pixel-caffeine-wrapper .navbar-fixed-bottom {
2325
+ position: fixed;
2326
+ right: 0;
2327
+ left: 0;
2328
+ z-index: 1030; }
2329
+ @media (min-width: 768px) {
2330
+ .pixel-caffeine-wrapper .navbar-fixed-top,
2331
+ .pixel-caffeine-wrapper .navbar-fixed-bottom {
2332
+ border-radius: 0; } }
2333
+ .pixel-caffeine-wrapper .navbar-fixed-top {
2334
+ top: 0;
2335
+ border-width: 0 0 1px; }
2336
+ .pixel-caffeine-wrapper .navbar-fixed-bottom {
2337
+ bottom: 0;
2338
+ margin-bottom: 0;
2339
+ border-width: 1px 0 0; }
2340
+ .pixel-caffeine-wrapper .navbar-brand {
2341
+ float: left;
2342
+ padding: 15px 15px;
2343
+ font-size: 18px;
2344
+ line-height: 20px;
2345
+ height: 50px; }
2346
+ .pixel-caffeine-wrapper .navbar-brand:hover, .pixel-caffeine-wrapper .navbar-brand:focus {
2347
+ text-decoration: none; }
2348
+ .pixel-caffeine-wrapper .navbar-brand > img {
2349
+ display: block; }
2350
+ @media (min-width: 768px) {
2351
+ .navbar > .container .pixel-caffeine-wrapper .navbar-brand, .navbar > .container-fluid .pixel-caffeine-wrapper .navbar-brand {
2352
+ margin-left: -15px; } }
2353
+ .pixel-caffeine-wrapper .navbar-toggle {
2354
+ position: relative;
2355
+ float: right;
2356
+ margin-right: 15px;
2357
+ padding: 9px 10px;
2358
+ margin-top: 8px;
2359
+ margin-bottom: 8px;
2360
+ background-color: transparent;
2361
+ background-image: none;
2362
+ border: 1px solid transparent;
2363
+ border-radius: 4px; }
2364
+ .pixel-caffeine-wrapper .navbar-toggle:focus {
2365
+ outline: 0; }
2366
+ .pixel-caffeine-wrapper .navbar-toggle .icon-bar {
2367
+ display: block;
2368
+ width: 22px;
2369
+ height: 2px;
2370
+ border-radius: 1px; }
2371
+ .pixel-caffeine-wrapper .navbar-toggle .icon-bar + .icon-bar {
2372
+ margin-top: 4px; }
2373
+ @media (min-width: 768px) {
2374
+ .pixel-caffeine-wrapper .navbar-toggle {
2375
+ display: none; } }
2376
+ .pixel-caffeine-wrapper .navbar-nav {
2377
+ margin: 7.5px -15px; }
2378
+ .pixel-caffeine-wrapper .navbar-nav > li > a {
2379
+ padding-top: 10px;
2380
+ padding-bottom: 10px;
2381
+ line-height: 20px; }
2382
+ @media (max-width: 767px) {
2383
+ .pixel-caffeine-wrapper .navbar-nav .open .dropdown-menu {
2384
+ position: static;
2385
+ float: none;
2386
+ width: auto;
2387
+ margin-top: 0;
2388
+ background-color: transparent;
2389
+ border: 0;
2390
+ box-shadow: none; }
2391
+ .pixel-caffeine-wrapper .navbar-nav .open .dropdown-menu > li > a,
2392
+ .pixel-caffeine-wrapper .navbar-nav .open .dropdown-menu .dropdown-header {
2393
+ padding: 5px 15px 5px 25px; }
2394
+ .pixel-caffeine-wrapper .navbar-nav .open .dropdown-menu > li > a {
2395
+ line-height: 20px; }
2396
+ .pixel-caffeine-wrapper .navbar-nav .open .dropdown-menu > li > a:hover, .pixel-caffeine-wrapper .navbar-nav .open .dropdown-menu > li > a:focus {
2397
+ background-image: none; } }
2398
+ @media (min-width: 768px) {
2399
+ .pixel-caffeine-wrapper .navbar-nav {
2400
+ float: left;
2401
+ margin: 0; }
2402
+ .pixel-caffeine-wrapper .navbar-nav > li {
2403
+ float: left; }
2404
+ .pixel-caffeine-wrapper .navbar-nav > li > a {
2405
+ padding-top: 15px;
2406
+ padding-bottom: 15px; } }
2407
+ .pixel-caffeine-wrapper .navbar-form {
2408
+ margin-left: -15px;
2409
+ margin-right: -15px;
2410
+ padding: 10px 15px;
2411
+ border-top: 1px solid transparent;
2412
+ border-bottom: 1px solid transparent;
2413
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
2414
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
2415
+ margin-top: 8px;
2416
+ margin-bottom: 8px; }
2417
+ @media (min-width: 768px) {
2418
+ .pixel-caffeine-wrapper .navbar-form .form-group {
2419
+ display: inline-block;
2420
+ margin-bottom: 0;
2421
+ vertical-align: middle; }
2422
+ .pixel-caffeine-wrapper .navbar-form .form-control {
2423
+ display: inline-block;
2424
+ width: auto;
2425
+ vertical-align: middle; }
2426
+ .pixel-caffeine-wrapper .navbar-form .form-control-static {
2427
+ display: inline-block; }
2428
+ .pixel-caffeine-wrapper .navbar-form .input-group {
2429
+ display: inline-table;
2430
+ vertical-align: middle; }
2431
+ .pixel-caffeine-wrapper .navbar-form .input-group .input-group-addon,
2432
+ .pixel-caffeine-wrapper .navbar-form .input-group .input-group-btn,
2433
+ .pixel-caffeine-wrapper .navbar-form .input-group .form-control {
2434
+ width: auto; }
2435
+ .pixel-caffeine-wrapper .navbar-form .input-group > .form-control {
2436
+ width: 100%; }
2437
+ .pixel-caffeine-wrapper .navbar-form .control-label {
2438
+ margin-bottom: 0;
2439
+ vertical-align: middle; }
2440
+ .pixel-caffeine-wrapper .navbar-form .radio,
2441
+ .pixel-caffeine-wrapper .navbar-form .checkbox {
2442
+ display: inline-block;
2443
+ margin-top: 0;
2444
+ margin-bottom: 0;
2445
+ vertical-align: middle; }
2446
+ .pixel-caffeine-wrapper .navbar-form .radio label,
2447
+ .pixel-caffeine-wrapper .navbar-form .checkbox label {
2448
+ padding-left: 0; }
2449
+ .pixel-caffeine-wrapper .navbar-form .radio input[type="radio"],
2450
+ .pixel-caffeine-wrapper .navbar-form .checkbox input[type="checkbox"] {
2451
+ position: relative;
2452
+ margin-left: 0; }
2453
+ .pixel-caffeine-wrapper .navbar-form .has-feedback .form-control-feedback {
2454
+ top: 0; } }
2455
+ @media (max-width: 767px) {
2456
+ .pixel-caffeine-wrapper .navbar-form .form-group {
2457
+ margin-bottom: 5px; }
2458
+ .pixel-caffeine-wrapper .navbar-form .form-group:last-child {
2459
+ margin-bottom: 0; } }
2460
+ @media (min-width: 768px) {
2461
+ .pixel-caffeine-wrapper .navbar-form {
2462
+ width: auto;
2463
+ border: 0;
2464
+ margin-left: 0;
2465
+ margin-right: 0;
2466
+ padding-top: 0;
2467
+ padding-bottom: 0;
2468
+ -webkit-box-shadow: none;
2469
+ box-shadow: none; } }
2470
+ .pixel-caffeine-wrapper .navbar-nav > li > .dropdown-menu {
2471
+ margin-top: 0;
2472
+ border-top-right-radius: 0;
2473
+ border-top-left-radius: 0; }
2474
+ .pixel-caffeine-wrapper .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
2475
+ margin-bottom: 0;
2476
+ border-top-right-radius: 4px;
2477
+ border-top-left-radius: 4px;
2478
+ border-bottom-right-radius: 0;
2479
+ border-bottom-left-radius: 0; }
2480
+ .pixel-caffeine-wrapper .navbar-btn {
2481
+ margin-top: 8px;
2482
+ margin-bottom: 8px; }
2483
+ .pixel-caffeine-wrapper .navbar-btn.btn-sm, .pixel-caffeine-wrapper .btn-group-sm > .navbar-btn.btn {
2484
+ margin-top: 10px;
2485
+ margin-bottom: 10px; }
2486
+ .pixel-caffeine-wrapper .navbar-btn.btn-xs, .pixel-caffeine-wrapper .btn-group-xs > .navbar-btn.btn {
2487
+ margin-top: 14px;
2488
+ margin-bottom: 14px; }
2489
+ .pixel-caffeine-wrapper .navbar-text {
2490
+ margin-top: 15px;
2491
+ margin-bottom: 15px; }
2492
+ @media (min-width: 768px) {
2493
+ .pixel-caffeine-wrapper .navbar-text {
2494
+ float: left;
2495
+ margin-left: 15px;
2496
+ margin-right: 15px; } }
2497
+ @media (min-width: 768px) {
2498
+ .pixel-caffeine-wrapper .navbar-left {
2499
+ float: left !important; }
2500
+ .pixel-caffeine-wrapper .navbar-right {
2501
+ float: right !important;
2502
+ margin-right: -15px; }
2503
+ .pixel-caffeine-wrapper .navbar-right ~ .navbar-right {
2504
+ margin-right: 0; } }
2505
+ .pixel-caffeine-wrapper .navbar-default {
2506
+ background-color: #f8f8f8;
2507
+ border-color: #e7e7e7; }
2508
+ .pixel-caffeine-wrapper .navbar-default .navbar-brand {
2509
+ color: #777; }
2510
+ .pixel-caffeine-wrapper .navbar-default .navbar-brand:hover, .pixel-caffeine-wrapper .navbar-default .navbar-brand:focus {
2511
+ color: #5e5e5e;
2512
+ background-color: transparent; }
2513
+ .pixel-caffeine-wrapper .navbar-default .navbar-text {
2514
+ color: #777; }
2515
+ .pixel-caffeine-wrapper .navbar-default .navbar-nav > li > a {
2516
+ color: #777; }
2517
+ .pixel-caffeine-wrapper .navbar-default .navbar-nav > li > a:hover, .pixel-caffeine-wrapper .navbar-default .navbar-nav > li > a:focus {
2518
+ color: #333;
2519
+ background-color: transparent; }
2520
+ .pixel-caffeine-wrapper .navbar-default .navbar-nav > .active > a, .pixel-caffeine-wrapper .navbar-default .navbar-nav > .active > a:hover, .pixel-caffeine-wrapper .navbar-default .navbar-nav > .active > a:focus {
2521
+ color: #555;
2522
+ background-color: #e7e7e7; }
2523
+ .pixel-caffeine-wrapper .navbar-default .navbar-nav > .disabled > a, .pixel-caffeine-wrapper .navbar-default .navbar-nav > .disabled > a:hover, .pixel-caffeine-wrapper .navbar-default .navbar-nav > .disabled > a:focus {
2524
+ color: #ccc;
2525
+ background-color: transparent; }
2526
+ .pixel-caffeine-wrapper .navbar-default .navbar-toggle {
2527
+ border-color: #ddd; }
2528
+ .pixel-caffeine-wrapper .navbar-default .navbar-toggle:hover, .pixel-caffeine-wrapper .navbar-default .navbar-toggle:focus {
2529
+ background-color: #ddd; }
2530
+ .pixel-caffeine-wrapper .navbar-default .navbar-toggle .icon-bar {
2531
+ background-color: #888; }
2532
+ .pixel-caffeine-wrapper .navbar-default .navbar-collapse,
2533
+ .pixel-caffeine-wrapper .navbar-default .navbar-form {
2534
+ border-color: #e7e7e7; }
2535
+ .pixel-caffeine-wrapper .navbar-default .navbar-nav > .open > a, .pixel-caffeine-wrapper .navbar-default .navbar-nav > .open > a:hover, .pixel-caffeine-wrapper .navbar-default .navbar-nav > .open > a:focus {
2536
+ background-color: #e7e7e7;
2537
+ color: #555; }
2538
+ @media (max-width: 767px) {
2539
+ .pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu > li > a {
2540
+ color: #777; }
2541
+ .pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
2542
+ color: #333;
2543
+ background-color: transparent; }
2544
+ .pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
2545
+ color: #555;
2546
+ background-color: #e7e7e7; }
2547
+ .pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, .pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, .pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
2548
+ color: #ccc;
2549
+ background-color: transparent; } }
2550
+ .pixel-caffeine-wrapper .navbar-default .navbar-link {
2551
+ color: #777; }
2552
+ .pixel-caffeine-wrapper .navbar-default .navbar-link:hover {
2553
+ color: #333; }
2554
+ .pixel-caffeine-wrapper .navbar-default .btn-link {
2555
+ color: #777; }
2556
+ .pixel-caffeine-wrapper .navbar-default .btn-link:hover, .pixel-caffeine-wrapper .navbar-default .btn-link:focus {
2557
+ color: #333; }
2558
+ .pixel-caffeine-wrapper .navbar-default .btn-link[disabled]:hover, .pixel-caffeine-wrapper .navbar-default .btn-link[disabled]:focus, fieldset[disabled] .pixel-caffeine-wrapper .navbar-default .btn-link:hover, fieldset[disabled] .pixel-caffeine-wrapper .navbar-default .btn-link:focus {
2559
+ color: #ccc; }
2560
+ .pixel-caffeine-wrapper .navbar-inverse {
2561
+ background-color: #222;
2562
+ border-color: #090909; }
2563
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-brand {
2564
+ color: #9d9d9d; }
2565
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-brand:hover, .pixel-caffeine-wrapper .navbar-inverse .navbar-brand:focus {
2566
+ color: #fff;
2567
+ background-color: transparent; }
2568
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-text {
2569
+ color: #9d9d9d; }
2570
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-nav > li > a {
2571
+ color: #9d9d9d; }
2572
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-nav > li > a:hover, .pixel-caffeine-wrapper .navbar-inverse .navbar-nav > li > a:focus {
2573
+ color: #fff;
2574
+ background-color: transparent; }
2575
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-nav > .active > a, .pixel-caffeine-wrapper .navbar-inverse .navbar-nav > .active > a:hover, .pixel-caffeine-wrapper .navbar-inverse .navbar-nav > .active > a:focus {
2576
+ color: #fff;
2577
+ background-color: #090909; }
2578
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-nav > .disabled > a, .pixel-caffeine-wrapper .navbar-inverse .navbar-nav > .disabled > a:hover, .pixel-caffeine-wrapper .navbar-inverse .navbar-nav > .disabled > a:focus {
2579
+ color: #444;
2580
+ background-color: transparent; }
2581
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-toggle {
2582
+ border-color: #333; }
2583
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-toggle:hover, .pixel-caffeine-wrapper .navbar-inverse .navbar-toggle:focus {
2584
+ background-color: #333; }
2585
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-toggle .icon-bar {
2586
+ background-color: #fff; }
2587
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-collapse,
2588
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-form {
2589
+ border-color: #101010; }
2590
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-nav > .open > a, .pixel-caffeine-wrapper .navbar-inverse .navbar-nav > .open > a:hover, .pixel-caffeine-wrapper .navbar-inverse .navbar-nav > .open > a:focus {
2591
+ background-color: #090909;
2592
+ color: #fff; }
2593
+ @media (max-width: 767px) {
2594
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
2595
+ border-color: #090909; }
2596
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
2597
+ background-color: #090909; }
2598
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
2599
+ color: #9d9d9d; }
2600
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
2601
+ color: #fff;
2602
+ background-color: transparent; }
2603
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, .pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, .pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
2604
+ color: #fff;
2605
+ background-color: #090909; }
2606
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, .pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, .pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
2607
+ color: #444;
2608
+ background-color: transparent; } }
2609
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-link {
2610
+ color: #9d9d9d; }
2611
+ .pixel-caffeine-wrapper .navbar-inverse .navbar-link:hover {
2612
+ color: #fff; }
2613
+ .pixel-caffeine-wrapper .navbar-inverse .btn-link {
2614
+ color: #9d9d9d; }
2615
+ .pixel-caffeine-wrapper .navbar-inverse .btn-link:hover, .pixel-caffeine-wrapper .navbar-inverse .btn-link:focus {
2616
+ color: #fff; }
2617
+ .pixel-caffeine-wrapper .navbar-inverse .btn-link[disabled]:hover, .pixel-caffeine-wrapper .navbar-inverse .btn-link[disabled]:focus, fieldset[disabled] .pixel-caffeine-wrapper .navbar-inverse .btn-link:hover, fieldset[disabled] .pixel-caffeine-wrapper .navbar-inverse .btn-link:focus {
2618
+ color: #444; }
2619
+ .pixel-caffeine-wrapper .breadcrumb {
2620
+ padding: 8px 15px;
2621
+ margin-bottom: 20px;
2622
+ list-style: none;
2623
+ background-color: #f5f5f5;
2624
+ border-radius: 4px; }
2625
+ .pixel-caffeine-wrapper .breadcrumb > li {
2626
+ display: inline-block; }
2627
+ .pixel-caffeine-wrapper .breadcrumb > li + li:before {
2628
+ content: "/ ";
2629
+ padding: 0 5px;
2630
+ color: #ccc; }
2631
+ .pixel-caffeine-wrapper .breadcrumb > .active {
2632
+ color: #777777; }
2633
+ .pixel-caffeine-wrapper .pagination {
2634
+ display: inline-block;
2635
+ padding-left: 0;
2636
+ margin: 20px 0;
2637
+ border-radius: 4px; }
2638
+ .pixel-caffeine-wrapper .pagination > li {
2639
+ display: inline; }
2640
+ .pixel-caffeine-wrapper .pagination > li > a,
2641
+ .pixel-caffeine-wrapper .pagination > li > span {
2642
+ position: relative;
2643
+ float: left;
2644
+ padding: 6px 12px;
2645
+ line-height: 1.42857;
2646
+ text-decoration: none;
2647
+ color: #337ab7;
2648
+ background-color: #fff;
2649
+ border: 1px solid #ddd;
2650
+ margin-left: -1px; }
2651
+ .pixel-caffeine-wrapper .pagination > li:first-child > a,
2652
+ .pixel-caffeine-wrapper .pagination > li:first-child > span {
2653
+ margin-left: 0;
2654
+ border-bottom-left-radius: 4px;
2655
+ border-top-left-radius: 4px; }
2656
+ .pixel-caffeine-wrapper .pagination > li:last-child > a,
2657
+ .pixel-caffeine-wrapper .pagination > li:last-child > span {
2658
+ border-bottom-right-radius: 4px;
2659
+ border-top-right-radius: 4px; }
2660
+ .pixel-caffeine-wrapper .pagination > li > a:hover, .pixel-caffeine-wrapper .pagination > li > a:focus,
2661
+ .pixel-caffeine-wrapper .pagination > li > span:hover,
2662
+ .pixel-caffeine-wrapper .pagination > li > span:focus {
2663
+ z-index: 2;
2664
+ color: #23527c;
2665
+ background-color: #eeeeee;
2666
+ border-color: #ddd; }
2667
+ .pixel-caffeine-wrapper .pagination > .active > a, .pixel-caffeine-wrapper .pagination > .active > a:hover, .pixel-caffeine-wrapper .pagination > .active > a:focus,
2668
+ .pixel-caffeine-wrapper .pagination > .active > span,
2669
+ .pixel-caffeine-wrapper .pagination > .active > span:hover,
2670
+ .pixel-caffeine-wrapper .pagination > .active > span:focus {
2671
+ z-index: 3;
2672
+ color: #fff;
2673
+ background-color: #337ab7;
2674
+ border-color: #337ab7;
2675
+ cursor: default; }
2676
+ .pixel-caffeine-wrapper .pagination > .disabled > span,
2677
+ .pixel-caffeine-wrapper .pagination > .disabled > span:hover,
2678
+ .pixel-caffeine-wrapper .pagination > .disabled > span:focus,
2679
+ .pixel-caffeine-wrapper .pagination > .disabled > a,
2680
+ .pixel-caffeine-wrapper .pagination > .disabled > a:hover,
2681
+ .pixel-caffeine-wrapper .pagination > .disabled > a:focus {
2682
+ color: #777777;
2683
+ background-color: #fff;
2684
+ border-color: #ddd;
2685
+ cursor: not-allowed; }
2686
+ .pixel-caffeine-wrapper .pagination-lg > li > a,
2687
+ .pixel-caffeine-wrapper .pagination-lg > li > span {
2688
+ padding: 10px 16px;
2689
+ font-size: 18px;
2690
+ line-height: 1.33333; }
2691
+ .pixel-caffeine-wrapper .pagination-lg > li:first-child > a,
2692
+ .pixel-caffeine-wrapper .pagination-lg > li:first-child > span {
2693
+ border-bottom-left-radius: 6px;
2694
+ border-top-left-radius: 6px; }
2695
+ .pixel-caffeine-wrapper .pagination-lg > li:last-child > a,
2696
+ .pixel-caffeine-wrapper .pagination-lg > li:last-child > span {
2697
+ border-bottom-right-radius: 6px;
2698
+ border-top-right-radius: 6px; }
2699
+ .pixel-caffeine-wrapper .pagination-sm > li > a,
2700
+ .pixel-caffeine-wrapper .pagination-sm > li > span {
2701
+ padding: 5px 10px;
2702
+ font-size: 12px;
2703
+ line-height: 1.5; }
2704
+ .pixel-caffeine-wrapper .pagination-sm > li:first-child > a,
2705
+ .pixel-caffeine-wrapper .pagination-sm > li:first-child > span {
2706
+ border-bottom-left-radius: 3px;
2707
+ border-top-left-radius: 3px; }
2708
+ .pixel-caffeine-wrapper .pagination-sm > li:last-child > a,
2709
+ .pixel-caffeine-wrapper .pagination-sm > li:last-child > span {
2710
+ border-bottom-right-radius: 3px;
2711
+ border-top-right-radius: 3px; }
2712
+ .pixel-caffeine-wrapper .pager {
2713
+ padding-left: 0;
2714
+ margin: 20px 0;
2715
+ list-style: none;
2716
+ text-align: center; }
2717
+ .pixel-caffeine-wrapper .pager:before, .pixel-caffeine-wrapper .pager:after {
2718
+ content: " ";
2719
+ display: table; }
2720
+ .pixel-caffeine-wrapper .pager:after {
2721
+ clear: both; }
2722
+ .pixel-caffeine-wrapper .pager li {
2723
+ display: inline; }
2724
+ .pixel-caffeine-wrapper .pager li > a,
2725
+ .pixel-caffeine-wrapper .pager li > span {
2726
+ display: inline-block;
2727
+ padding: 5px 14px;
2728
+ background-color: #fff;
2729
+ border: 1px solid #ddd;
2730
+ border-radius: 15px; }
2731
+ .pixel-caffeine-wrapper .pager li > a:hover,
2732
+ .pixel-caffeine-wrapper .pager li > a:focus {
2733
+ text-decoration: none;
2734
+ background-color: #eeeeee; }
2735
+ .pixel-caffeine-wrapper .pager .next > a,
2736
+ .pixel-caffeine-wrapper .pager .next > span {
2737
+ float: right; }
2738
+ .pixel-caffeine-wrapper .pager .previous > a,
2739
+ .pixel-caffeine-wrapper .pager .previous > span {
2740
+ float: left; }
2741
+ .pixel-caffeine-wrapper .pager .disabled > a,
2742
+ .pixel-caffeine-wrapper .pager .disabled > a:hover,
2743
+ .pixel-caffeine-wrapper .pager .disabled > a:focus,
2744
+ .pixel-caffeine-wrapper .pager .disabled > span {
2745
+ color: #777777;
2746
+ background-color: #fff;
2747
+ cursor: not-allowed; }
2748
+ .pixel-caffeine-wrapper .label {
2749
+ display: inline;
2750
+ padding: .2em .6em .3em;
2751
+ font-size: 75%;
2752
+ font-weight: bold;
2753
+ line-height: 1;
2754
+ color: #fff;
2755
+ text-align: center;
2756
+ white-space: nowrap;
2757
+ vertical-align: baseline;
2758
+ border-radius: .25em; }
2759
+ .pixel-caffeine-wrapper .label:empty {
2760
+ display: none; }
2761
+ .btn .pixel-caffeine-wrapper .label {
2762
+ position: relative;
2763
+ top: -1px; }
2764
+ .pixel-caffeine-wrapper a.label:hover, .pixel-caffeine-wrapper a.label:focus {
2765
+ color: #fff;
2766
+ text-decoration: none;
2767
+ cursor: pointer; }
2768
+ .pixel-caffeine-wrapper .label-default {
2769
+ background-color: #777777; }
2770
+ .pixel-caffeine-wrapper .label-default[href]:hover, .pixel-caffeine-wrapper .label-default[href]:focus {
2771
+ background-color: #5e5e5e; }
2772
+ .pixel-caffeine-wrapper .label-primary {
2773
+ background-color: #337ab7; }
2774
+ .pixel-caffeine-wrapper .label-primary[href]:hover, .pixel-caffeine-wrapper .label-primary[href]:focus {
2775
+ background-color: #286090; }
2776
+ .pixel-caffeine-wrapper .label-success {
2777
+ background-color: #5cb85c; }
2778
+ .pixel-caffeine-wrapper .label-success[href]:hover, .pixel-caffeine-wrapper .label-success[href]:focus {
2779
+ background-color: #449d44; }
2780
+ .pixel-caffeine-wrapper .label-info {
2781
+ background-color: #5bc0de; }
2782
+ .pixel-caffeine-wrapper .label-info[href]:hover, .pixel-caffeine-wrapper .label-info[href]:focus {
2783
+ background-color: #31b0d5; }
2784
+ .pixel-caffeine-wrapper .label-warning {
2785
+ background-color: #f0ad4e; }
2786
+ .pixel-caffeine-wrapper .label-warning[href]:hover, .pixel-caffeine-wrapper .label-warning[href]:focus {
2787
+ background-color: #ec971f; }
2788
+ .pixel-caffeine-wrapper .label-danger {
2789
+ background-color: #d9534f; }
2790
+ .pixel-caffeine-wrapper .label-danger[href]:hover, .pixel-caffeine-wrapper .label-danger[href]:focus {
2791
+ background-color: #c9302c; }
2792
+ .pixel-caffeine-wrapper .badge {
2793
+ display: inline-block;
2794
+ min-width: 10px;
2795
+ padding: 3px 7px;
2796
+ font-size: 12px;
2797
+ font-weight: bold;
2798
+ color: #fff;
2799
+ line-height: 1;
2800
+ vertical-align: middle;
2801
+ white-space: nowrap;
2802
+ text-align: center;
2803
+ background-color: #777777;
2804
+ border-radius: 10px; }
2805
+ .pixel-caffeine-wrapper .badge:empty {
2806
+ display: none; }
2807
+ .btn .pixel-caffeine-wrapper .badge {
2808
+ position: relative;
2809
+ top: -1px; }
2810
+ .btn-xs .pixel-caffeine-wrapper .badge, .pixel-caffeine-wrapper .btn-group-xs > .btn .pixel-caffeine-wrapper .badge, .btn-group-xs > .btn .pixel-caffeine-wrapper .badge {
2811
+ top: 0;
2812
+ padding: 1px 5px; }
2813
+ .list-group-item.active > .pixel-caffeine-wrapper .badge, .nav-pills > .active > a > .pixel-caffeine-wrapper .badge {
2814
+ color: #337ab7;
2815
+ background-color: #fff; }
2816
+ .list-group-item > .pixel-caffeine-wrapper .badge {
2817
+ float: right; }
2818
+ .list-group-item > .pixel-caffeine-wrapper .badge + .pixel-caffeine-wrapper .badge {
2819
+ margin-right: 5px; }
2820
+ .nav-pills > li > a > .pixel-caffeine-wrapper .badge {
2821
+ margin-left: 3px; }
2822
+ .pixel-caffeine-wrapper a.badge:hover, .pixel-caffeine-wrapper a.badge:focus {
2823
+ color: #fff;
2824
+ text-decoration: none;
2825
+ cursor: pointer; }
2826
+ .pixel-caffeine-wrapper .jumbotron {
2827
+ padding-top: 30px;
2828
+ padding-bottom: 30px;
2829
+ margin-bottom: 30px;
2830
+ color: inherit;
2831
+ background-color: #eeeeee; }
2832
+ .pixel-caffeine-wrapper .jumbotron h1,
2833
+ .pixel-caffeine-wrapper .jumbotron .h1 {
2834
+ color: inherit; }
2835
+ .pixel-caffeine-wrapper .jumbotron p {
2836
+ margin-bottom: 15px;
2837
+ font-size: 21px;
2838
+ font-weight: 200; }
2839
+ .pixel-caffeine-wrapper .jumbotron > hr {
2840
+ border-top-color: #d5d5d5; }
2841
+ .container .pixel-caffeine-wrapper .jumbotron, .container-fluid .pixel-caffeine-wrapper .jumbotron {
2842
+ border-radius: 6px;
2843
+ padding-left: 15px;
2844
+ padding-right: 15px; }
2845
+ .pixel-caffeine-wrapper .jumbotron .container {
2846
+ max-width: 100%; }
2847
+ @media screen and (min-width: 768px) {
2848
+ .pixel-caffeine-wrapper .jumbotron {
2849
+ padding-top: 48px;
2850
+ padding-bottom: 48px; }
2851
+ .container .pixel-caffeine-wrapper .jumbotron, .container-fluid .pixel-caffeine-wrapper .jumbotron {
2852
+ padding-left: 60px;
2853
+ padding-right: 60px; }
2854
+ .pixel-caffeine-wrapper .jumbotron h1,
2855
+ .pixel-caffeine-wrapper .jumbotron .h1 {
2856
+ font-size: 63px; } }
2857
+ .pixel-caffeine-wrapper .thumbnail {
2858
+ display: block;
2859
+ padding: 4px;
2860
+ margin-bottom: 20px;
2861
+ line-height: 1.42857;
2862
+ background-color: #fff;
2863
+ border: 1px solid #ddd;
2864
+ border-radius: 4px;
2865
+ -webkit-transition: border 0.2s ease-in-out;
2866
+ -o-transition: border 0.2s ease-in-out;
2867
+ transition: border 0.2s ease-in-out; }
2868
+ .pixel-caffeine-wrapper .thumbnail > img,
2869
+ .pixel-caffeine-wrapper .thumbnail a > img {
2870
+ display: block;
2871
+ max-width: 100%;
2872
+ height: auto;
2873
+ margin-left: auto;
2874
+ margin-right: auto; }
2875
+ .pixel-caffeine-wrapper .thumbnail .caption {
2876
+ padding: 9px;
2877
+ color: #333333; }
2878
+ .pixel-caffeine-wrapper a.thumbnail:hover,
2879
+ .pixel-caffeine-wrapper a.thumbnail:focus,
2880
+ .pixel-caffeine-wrapper a.thumbnail.active {
2881
+ border-color: #337ab7; }
2882
+ .pixel-caffeine-wrapper .alert {
2883
+ padding: 15px;
2884
+ margin-bottom: 20px;
2885
+ border: 1px solid transparent;
2886
+ border-radius: 4px; }
2887
+ .pixel-caffeine-wrapper .alert h4 {
2888
+ margin-top: 0;
2889
+ color: inherit; }
2890
+ .pixel-caffeine-wrapper .alert .alert-link {
2891
+ font-weight: bold; }
2892
+ .pixel-caffeine-wrapper .alert > p,
2893
+ .pixel-caffeine-wrapper .alert > ul {
2894
+ margin-bottom: 0; }
2895
+ .pixel-caffeine-wrapper .alert > p + p {
2896
+ margin-top: 5px; }
2897
+ .pixel-caffeine-wrapper .alert-dismissable,
2898
+ .pixel-caffeine-wrapper .alert-dismissible {
2899
+ padding-right: 35px; }
2900
+ .pixel-caffeine-wrapper .alert-dismissable .close,
2901
+ .pixel-caffeine-wrapper .alert-dismissible .close {
2902
+ position: relative;
2903
+ top: -2px;
2904
+ right: -21px;
2905
+ color: inherit; }
2906
+ .pixel-caffeine-wrapper .alert-success {
2907
+ background-color: #dff0d8;
2908
+ border-color: #d6e9c6;
2909
+ color: #3c763d; }
2910
+ .pixel-caffeine-wrapper .alert-success hr {
2911
+ border-top-color: #c9e2b3; }
2912
+ .pixel-caffeine-wrapper .alert-success .alert-link {
2913
+ color: #2b542c; }
2914
+ .pixel-caffeine-wrapper .alert-info {
2915
+ background-color: #d9edf7;
2916
+ border-color: #bce8f1;
2917
+ color: #31708f; }
2918
+ .pixel-caffeine-wrapper .alert-info hr {
2919
+ border-top-color: #a6e1ec; }
2920
+ .pixel-caffeine-wrapper .alert-info .alert-link {
2921
+ color: #245269; }
2922
+ .pixel-caffeine-wrapper .alert-warning {
2923
+ background-color: #fcf8e3;
2924
+ border-color: #faebcc;
2925
+ color: #8a6d3b; }
2926
+ .pixel-caffeine-wrapper .alert-warning hr {
2927
+ border-top-color: #f7e1b5; }
2928
+ .pixel-caffeine-wrapper .alert-warning .alert-link {
2929
+ color: #66512c; }
2930
+ .pixel-caffeine-wrapper .alert-danger {
2931
+ background-color: #f2dede;
2932
+ border-color: #ebccd1;
2933
+ color: #a94442; }
2934
+ .pixel-caffeine-wrapper .alert-danger hr {
2935
+ border-top-color: #e4b9c0; }
2936
+ .pixel-caffeine-wrapper .alert-danger .alert-link {
2937
+ color: #843534; }
2938
+ @-webkit-keyframes progress-bar-stripes {
2939
+ from {
2940
+ background-position: 40px 0; }
2941
+ to {
2942
+ background-position: 0 0; } }
2943
+ @keyframes progress-bar-stripes {
2944
+ from {
2945
+ background-position: 40px 0; }
2946
+ to {
2947
+ background-position: 0 0; } }
2948
+ .pixel-caffeine-wrapper .progress {
2949
+ overflow: hidden;
2950
+ height: 20px;
2951
+ margin-bottom: 20px;
2952
+ background-color: #f5f5f5;
2953
+ border-radius: 4px;
2954
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
2955
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); }
2956
+ .pixel-caffeine-wrapper .progress-bar {
2957
+ float: left;
2958
+ width: 0%;
2959
+ height: 100%;
2960
+ font-size: 12px;
2961
+ line-height: 20px;
2962
+ color: #fff;
2963
+ text-align: center;
2964
+ background-color: #337ab7;
2965
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
2966
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
2967
+ -webkit-transition: width 0.6s ease;
2968
+ -o-transition: width 0.6s ease;
2969
+ transition: width 0.6s ease; }
2970
+ .pixel-caffeine-wrapper .progress-striped .progress-bar,
2971
+ .pixel-caffeine-wrapper .progress-bar-striped {
2972
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
2973
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
2974
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
2975
+ background-size: 40px 40px; }
2976
+ .pixel-caffeine-wrapper .progress.active .progress-bar,
2977
+ .pixel-caffeine-wrapper .progress-bar.active {
2978
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
2979
+ -o-animation: progress-bar-stripes 2s linear infinite;
2980
+ animation: progress-bar-stripes 2s linear infinite; }
2981
+ .pixel-caffeine-wrapper .progress-bar-success {
2982
+ background-color: #5cb85c; }
2983
+ .progress-striped .pixel-caffeine-wrapper .progress-bar-success {
2984
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
2985
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
2986
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
2987
+ .pixel-caffeine-wrapper .progress-bar-info {
2988
+ background-color: #5bc0de; }
2989
+ .progress-striped .pixel-caffeine-wrapper .progress-bar-info {
2990
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
2991
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
2992
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
2993
+ .pixel-caffeine-wrapper .progress-bar-warning {
2994
+ background-color: #f0ad4e; }
2995
+ .progress-striped .pixel-caffeine-wrapper .progress-bar-warning {
2996
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
2997
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
2998
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
2999
+ .pixel-caffeine-wrapper .progress-bar-danger {
3000
+ background-color: #d9534f; }
3001
+ .progress-striped .pixel-caffeine-wrapper .progress-bar-danger {
3002
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
3003
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
3004
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
3005
+ .pixel-caffeine-wrapper .media {
3006
+ margin-top: 15px; }
3007
+ .pixel-caffeine-wrapper .media:first-child {
3008
+ margin-top: 0; }
3009
+ .pixel-caffeine-wrapper .media,
3010
+ .pixel-caffeine-wrapper .media-body {
3011
+ zoom: 1;
3012
+ overflow: hidden; }
3013
+ .pixel-caffeine-wrapper .media-body {
3014
+ width: 10000px; }
3015
+ .pixel-caffeine-wrapper .media-object {
3016
+ display: block; }
3017
+ .pixel-caffeine-wrapper .media-object.img-thumbnail {
3018
+ max-width: none; }
3019
+ .pixel-caffeine-wrapper .media-right,
3020
+ .pixel-caffeine-wrapper .media > .pull-right {
3021
+ padding-left: 10px; }
3022
+ .pixel-caffeine-wrapper .media-left,
3023
+ .pixel-caffeine-wrapper .media > .pull-left {
3024
+ padding-right: 10px; }
3025
+ .pixel-caffeine-wrapper .media-left,
3026
+ .pixel-caffeine-wrapper .media-right,
3027
+ .pixel-caffeine-wrapper .media-body {
3028
+ display: table-cell;
3029
+ vertical-align: top; }
3030
+ .pixel-caffeine-wrapper .media-middle {
3031
+ vertical-align: middle; }
3032
+ .pixel-caffeine-wrapper .media-bottom {
3033
+ vertical-align: bottom; }
3034
+ .pixel-caffeine-wrapper .media-heading {
3035
+ margin-top: 0;
3036
+ margin-bottom: 5px; }
3037
+ .pixel-caffeine-wrapper .media-list {
3038
+ padding-left: 0;
3039
+ list-style: none; }
3040
+ .pixel-caffeine-wrapper .list-group {
3041
+ margin-bottom: 20px;
3042
+ padding-left: 0; }
3043
+ .pixel-caffeine-wrapper .list-group-item {
3044
+ position: relative;
3045
+ display: block;
3046
+ padding: 10px 15px;
3047
+ margin-bottom: -1px;
3048
+ background-color: #fff;
3049
+ border: 1px solid #ddd; }
3050
+ .pixel-caffeine-wrapper .list-group-item:first-child {
3051
+ border-top-right-radius: 4px;
3052
+ border-top-left-radius: 4px; }
3053
+ .pixel-caffeine-wrapper .list-group-item:last-child {
3054
+ margin-bottom: 0;
3055
+ border-bottom-right-radius: 4px;
3056
+ border-bottom-left-radius: 4px; }
3057
+ .pixel-caffeine-wrapper a.list-group-item,
3058
+ .pixel-caffeine-wrapper button.list-group-item {
3059
+ color: #555; }
3060
+ .pixel-caffeine-wrapper a.list-group-item .list-group-item-heading,
3061
+ .pixel-caffeine-wrapper button.list-group-item .list-group-item-heading {
3062
+ color: #333; }
3063
+ .pixel-caffeine-wrapper a.list-group-item:hover, .pixel-caffeine-wrapper a.list-group-item:focus,
3064
+ .pixel-caffeine-wrapper button.list-group-item:hover,
3065
+ .pixel-caffeine-wrapper button.list-group-item:focus {
3066
+ text-decoration: none;
3067
+ color: #555;
3068
+ background-color: #f5f5f5; }
3069
+ .pixel-caffeine-wrapper button.list-group-item {
3070
+ width: 100%;
3071
+ text-align: left; }
3072
+ .pixel-caffeine-wrapper .list-group-item.disabled, .pixel-caffeine-wrapper .list-group-item.disabled:hover, .pixel-caffeine-wrapper .list-group-item.disabled:focus {
3073
+ background-color: #eeeeee;
3074
+ color: #777777;
3075
+ cursor: not-allowed; }
3076
+ .pixel-caffeine-wrapper .list-group-item.disabled .list-group-item-heading, .pixel-caffeine-wrapper .list-group-item.disabled:hover .list-group-item-heading, .pixel-caffeine-wrapper .list-group-item.disabled:focus .list-group-item-heading {
3077
+ color: inherit; }
3078
+ .pixel-caffeine-wrapper .list-group-item.disabled .list-group-item-text, .pixel-caffeine-wrapper .list-group-item.disabled:hover .list-group-item-text, .pixel-caffeine-wrapper .list-group-item.disabled:focus .list-group-item-text {
3079
+ color: #777777; }
3080
+ .pixel-caffeine-wrapper .list-group-item.active, .pixel-caffeine-wrapper .list-group-item.active:hover, .pixel-caffeine-wrapper .list-group-item.active:focus {
3081
+ z-index: 2;
3082
+ color: #fff;
3083
+ background-color: #337ab7;
3084
+ border-color: #337ab7; }
3085
+ .pixel-caffeine-wrapper .list-group-item.active .list-group-item-heading,
3086
+ .pixel-caffeine-wrapper .list-group-item.active .list-group-item-heading > small,
3087
+ .pixel-caffeine-wrapper .list-group-item.active .list-group-item-heading > .small, .pixel-caffeine-wrapper .list-group-item.active:hover .list-group-item-heading,
3088
+ .pixel-caffeine-wrapper .list-group-item.active:hover .list-group-item-heading > small,
3089
+ .pixel-caffeine-wrapper .list-group-item.active:hover .list-group-item-heading > .small, .pixel-caffeine-wrapper .list-group-item.active:focus .list-group-item-heading,
3090
+ .pixel-caffeine-wrapper .list-group-item.active:focus .list-group-item-heading > small,
3091
+ .pixel-caffeine-wrapper .list-group-item.active:focus .list-group-item-heading > .small {
3092
+ color: inherit; }
3093
+ .pixel-caffeine-wrapper .list-group-item.active .list-group-item-text, .pixel-caffeine-wrapper .list-group-item.active:hover .list-group-item-text, .pixel-caffeine-wrapper .list-group-item.active:focus .list-group-item-text {
3094
+ color: #c7ddef; }
3095
+ .pixel-caffeine-wrapper .list-group-item-success {
3096
+ color: #3c763d;
3097
+ background-color: #dff0d8; }
3098
+ .pixel-caffeine-wrapper a.list-group-item-success,
3099
+ .pixel-caffeine-wrapper button.list-group-item-success {
3100
+ color: #3c763d; }
3101
+ .pixel-caffeine-wrapper a.list-group-item-success .list-group-item-heading,
3102
+ .pixel-caffeine-wrapper button.list-group-item-success .list-group-item-heading {
3103
+ color: inherit; }
3104
+ .pixel-caffeine-wrapper a.list-group-item-success:hover, .pixel-caffeine-wrapper a.list-group-item-success:focus,
3105
+ .pixel-caffeine-wrapper button.list-group-item-success:hover,
3106
+ .pixel-caffeine-wrapper button.list-group-item-success:focus {
3107
+ color: #3c763d;
3108
+ background-color: #d0e9c6; }
3109
+ .pixel-caffeine-wrapper a.list-group-item-success.active, .pixel-caffeine-wrapper a.list-group-item-success.active:hover, .pixel-caffeine-wrapper a.list-group-item-success.active:focus,
3110
+ .pixel-caffeine-wrapper button.list-group-item-success.active,
3111
+ .pixel-caffeine-wrapper button.list-group-item-success.active:hover,
3112
+ .pixel-caffeine-wrapper button.list-group-item-success.active:focus {
3113
+ color: #fff;
3114
+ background-color: #3c763d;
3115
+ border-color: #3c763d; }
3116
+ .pixel-caffeine-wrapper .list-group-item-info {
3117
+ color: #31708f;
3118
+ background-color: #d9edf7; }
3119
+ .pixel-caffeine-wrapper a.list-group-item-info,
3120
+ .pixel-caffeine-wrapper button.list-group-item-info {
3121
+ color: #31708f; }
3122
+ .pixel-caffeine-wrapper a.list-group-item-info .list-group-item-heading,
3123
+ .pixel-caffeine-wrapper button.list-group-item-info .list-group-item-heading {
3124
+ color: inherit; }
3125
+ .pixel-caffeine-wrapper a.list-group-item-info:hover, .pixel-caffeine-wrapper a.list-group-item-info:focus,
3126
+ .pixel-caffeine-wrapper button.list-group-item-info:hover,
3127
+ .pixel-caffeine-wrapper button.list-group-item-info:focus {
3128
+ color: #31708f;
3129
+ background-color: #c4e3f3; }
3130
+ .pixel-caffeine-wrapper a.list-group-item-info.active, .pixel-caffeine-wrapper a.list-group-item-info.active:hover, .pixel-caffeine-wrapper a.list-group-item-info.active:focus,
3131
+ .pixel-caffeine-wrapper button.list-group-item-info.active,
3132
+ .pixel-caffeine-wrapper button.list-group-item-info.active:hover,
3133
+ .pixel-caffeine-wrapper button.list-group-item-info.active:focus {
3134
+ color: #fff;
3135
+ background-color: #31708f;
3136
+ border-color: #31708f; }
3137
+ .pixel-caffeine-wrapper .list-group-item-warning {
3138
+ color: #8a6d3b;
3139
+ background-color: #fcf8e3; }
3140
+ .pixel-caffeine-wrapper a.list-group-item-warning,
3141
+ .pixel-caffeine-wrapper button.list-group-item-warning {
3142
+ color: #8a6d3b; }
3143
+ .pixel-caffeine-wrapper a.list-group-item-warning .list-group-item-heading,
3144
+ .pixel-caffeine-wrapper button.list-group-item-warning .list-group-item-heading {
3145
+ color: inherit; }
3146
+ .pixel-caffeine-wrapper a.list-group-item-warning:hover, .pixel-caffeine-wrapper a.list-group-item-warning:focus,
3147
+ .pixel-caffeine-wrapper button.list-group-item-warning:hover,
3148
+ .pixel-caffeine-wrapper button.list-group-item-warning:focus {
3149
+ color: #8a6d3b;
3150
+ background-color: #faf2cc; }
3151
+ .pixel-caffeine-wrapper a.list-group-item-warning.active, .pixel-caffeine-wrapper a.list-group-item-warning.active:hover, .pixel-caffeine-wrapper a.list-group-item-warning.active:focus,
3152
+ .pixel-caffeine-wrapper button.list-group-item-warning.active,
3153
+ .pixel-caffeine-wrapper button.list-group-item-warning.active:hover,
3154
+ .pixel-caffeine-wrapper button.list-group-item-warning.active:focus {
3155
+ color: #fff;
3156
+ background-color: #8a6d3b;
3157
+ border-color: #8a6d3b; }
3158
+ .pixel-caffeine-wrapper .list-group-item-danger {
3159
+ color: #a94442;
3160
+ background-color: #f2dede; }
3161
+ .pixel-caffeine-wrapper a.list-group-item-danger,
3162
+ .pixel-caffeine-wrapper button.list-group-item-danger {
3163
+ color: #a94442; }
3164
+ .pixel-caffeine-wrapper a.list-group-item-danger .list-group-item-heading,
3165
+ .pixel-caffeine-wrapper button.list-group-item-danger .list-group-item-heading {
3166
+ color: inherit; }
3167
+ .pixel-caffeine-wrapper a.list-group-item-danger:hover, .pixel-caffeine-wrapper a.list-group-item-danger:focus,
3168
+ .pixel-caffeine-wrapper button.list-group-item-danger:hover,
3169
+ .pixel-caffeine-wrapper button.list-group-item-danger:focus {
3170
+ color: #a94442;
3171
+ background-color: #ebcccc; }
3172
+ .pixel-caffeine-wrapper a.list-group-item-danger.active, .pixel-caffeine-wrapper a.list-group-item-danger.active:hover, .pixel-caffeine-wrapper a.list-group-item-danger.active:focus,
3173
+ .pixel-caffeine-wrapper button.list-group-item-danger.active,
3174
+ .pixel-caffeine-wrapper button.list-group-item-danger.active:hover,
3175
+ .pixel-caffeine-wrapper button.list-group-item-danger.active:focus {
3176
+ color: #fff;
3177
+ background-color: #a94442;
3178
+ border-color: #a94442; }
3179
+ .pixel-caffeine-wrapper .list-group-item-heading {
3180
+ margin-top: 0;
3181
+ margin-bottom: 5px; }
3182
+ .pixel-caffeine-wrapper .list-group-item-text {
3183
+ margin-bottom: 0;
3184
+ line-height: 1.3; }
3185
+ .pixel-caffeine-wrapper .panel {
3186
+ margin-bottom: 20px;
3187
+ background-color: #fff;
3188
+ border: 1px solid transparent;
3189
+ border-radius: 4px;
3190
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
3191
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }
3192
+ .pixel-caffeine-wrapper .panel-body {
3193
+ padding: 15px; }
3194
+ .pixel-caffeine-wrapper .panel-body:before, .pixel-caffeine-wrapper .panel-body:after {
3195
+ content: " ";
3196
+ display: table; }
3197
+ .pixel-caffeine-wrapper .panel-body:after {
3198
+ clear: both; }
3199
+ .pixel-caffeine-wrapper .panel-heading {
3200
+ padding: 10px 15px;
3201
+ border-bottom: 1px solid transparent;
3202
+ border-top-right-radius: 3px;
3203
+ border-top-left-radius: 3px; }
3204
+ .pixel-caffeine-wrapper .panel-heading > .dropdown .dropdown-toggle {
3205
+ color: inherit; }
3206
+ .pixel-caffeine-wrapper .panel-title {
3207
+ margin-top: 0;
3208
+ margin-bottom: 0;
3209
+ font-size: 16px;
3210
+ color: inherit; }
3211
+ .pixel-caffeine-wrapper .panel-title > a,
3212
+ .pixel-caffeine-wrapper .panel-title > small,
3213
+ .pixel-caffeine-wrapper .panel-title > .small,
3214
+ .pixel-caffeine-wrapper .panel-title > small > a,
3215
+ .pixel-caffeine-wrapper .panel-title > .small > a {
3216
+ color: inherit; }
3217
+ .pixel-caffeine-wrapper .panel-footer {
3218
+ padding: 10px 15px;
3219
+ background-color: #f5f5f5;
3220
+ border-top: 1px solid #ddd;
3221
+ border-bottom-right-radius: 3px;
3222
+ border-bottom-left-radius: 3px; }
3223
+ .pixel-caffeine-wrapper .panel > .list-group,
3224
+ .pixel-caffeine-wrapper .panel > .panel-collapse > .list-group {
3225
+ margin-bottom: 0; }
3226
+ .pixel-caffeine-wrapper .panel > .list-group .list-group-item,
3227
+ .pixel-caffeine-wrapper .panel > .panel-collapse > .list-group .list-group-item {
3228
+ border-width: 1px 0;
3229
+ border-radius: 0; }
3230
+ .pixel-caffeine-wrapper .panel > .list-group:first-child .list-group-item:first-child,
3231
+ .pixel-caffeine-wrapper .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
3232
+ border-top: 0;
3233
+ border-top-right-radius: 3px;
3234
+ border-top-left-radius: 3px; }
3235
+ .pixel-caffeine-wrapper .panel > .list-group:last-child .list-group-item:last-child,
3236
+ .pixel-caffeine-wrapper .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
3237
+ border-bottom: 0;
3238
+ border-bottom-right-radius: 3px;
3239
+ border-bottom-left-radius: 3px; }
3240
+ .pixel-caffeine-wrapper .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
3241
+ border-top-right-radius: 0;
3242
+ border-top-left-radius: 0; }
3243
+ .pixel-caffeine-wrapper .panel-heading + .list-group .list-group-item:first-child {
3244
+ border-top-width: 0; }
3245
+ .pixel-caffeine-wrapper .list-group + .panel-footer {
3246
+ border-top-width: 0; }
3247
+ .pixel-caffeine-wrapper .panel > .table,
3248
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table,
3249
+ .pixel-caffeine-wrapper .panel > .panel-collapse > .table {
3250
+ margin-bottom: 0; }
3251
+ .pixel-caffeine-wrapper .panel > .table caption,
3252
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table caption,
3253
+ .pixel-caffeine-wrapper .panel > .panel-collapse > .table caption {
3254
+ padding-left: 15px;
3255
+ padding-right: 15px; }
3256
+ .pixel-caffeine-wrapper .panel > .table:first-child,
3257
+ .pixel-caffeine-wrapper .panel > .table-responsive:first-child > .table:first-child {
3258
+ border-top-right-radius: 3px;
3259
+ border-top-left-radius: 3px; }
3260
+ .pixel-caffeine-wrapper .panel > .table:first-child > thead:first-child > tr:first-child,
3261
+ .pixel-caffeine-wrapper .panel > .table:first-child > tbody:first-child > tr:first-child,
3262
+ .pixel-caffeine-wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
3263
+ .pixel-caffeine-wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
3264
+ border-top-left-radius: 3px;
3265
+ border-top-right-radius: 3px; }
3266
+ .pixel-caffeine-wrapper .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
3267
+ .pixel-caffeine-wrapper .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
3268
+ .pixel-caffeine-wrapper .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
3269
+ .pixel-caffeine-wrapper .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
3270
+ .pixel-caffeine-wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
3271
+ .pixel-caffeine-wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
3272
+ .pixel-caffeine-wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
3273
+ .pixel-caffeine-wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
3274
+ border-top-left-radius: 3px; }
3275
+ .pixel-caffeine-wrapper .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
3276
+ .pixel-caffeine-wrapper .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
3277
+ .pixel-caffeine-wrapper .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
3278
+ .pixel-caffeine-wrapper .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
3279
+ .pixel-caffeine-wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
3280
+ .pixel-caffeine-wrapper .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
3281
+ .pixel-caffeine-wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
3282
+ .pixel-caffeine-wrapper .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
3283
+ border-top-right-radius: 3px; }
3284
+ .pixel-caffeine-wrapper .panel > .table:last-child,
3285
+ .pixel-caffeine-wrapper .panel > .table-responsive:last-child > .table:last-child {
3286
+ border-bottom-right-radius: 3px;
3287
+ border-bottom-left-radius: 3px; }
3288
+ .pixel-caffeine-wrapper .panel > .table:last-child > tbody:last-child > tr:last-child,
3289
+ .pixel-caffeine-wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child,
3290
+ .pixel-caffeine-wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
3291
+ .pixel-caffeine-wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
3292
+ border-bottom-left-radius: 3px;
3293
+ border-bottom-right-radius: 3px; }
3294
+ .pixel-caffeine-wrapper .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
3295
+ .pixel-caffeine-wrapper .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
3296
+ .pixel-caffeine-wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
3297
+ .pixel-caffeine-wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
3298
+ .pixel-caffeine-wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
3299
+ .pixel-caffeine-wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
3300
+ .pixel-caffeine-wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
3301
+ .pixel-caffeine-wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
3302
+ border-bottom-left-radius: 3px; }
3303
+ .pixel-caffeine-wrapper .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
3304
+ .pixel-caffeine-wrapper .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
3305
+ .pixel-caffeine-wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
3306
+ .pixel-caffeine-wrapper .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
3307
+ .pixel-caffeine-wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
3308
+ .pixel-caffeine-wrapper .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
3309
+ .pixel-caffeine-wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
3310
+ .pixel-caffeine-wrapper .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
3311
+ border-bottom-right-radius: 3px; }
3312
+ .pixel-caffeine-wrapper .panel > .panel-body + .table,
3313
+ .pixel-caffeine-wrapper .panel > .panel-body + .table-responsive,
3314
+ .pixel-caffeine-wrapper .panel > .table + .panel-body,
3315
+ .pixel-caffeine-wrapper .panel > .table-responsive + .panel-body {
3316
+ border-top: 1px solid #ddd; }
3317
+ .pixel-caffeine-wrapper .panel > .table > tbody:first-child > tr:first-child th,
3318
+ .pixel-caffeine-wrapper .panel > .table > tbody:first-child > tr:first-child td {
3319
+ border-top: 0; }
3320
+ .pixel-caffeine-wrapper .panel > .table-bordered,
3321
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered {
3322
+ border: 0; }
3323
+ .pixel-caffeine-wrapper .panel > .table-bordered > thead > tr > th:first-child,
3324
+ .pixel-caffeine-wrapper .panel > .table-bordered > thead > tr > td:first-child,
3325
+ .pixel-caffeine-wrapper .panel > .table-bordered > tbody > tr > th:first-child,
3326
+ .pixel-caffeine-wrapper .panel > .table-bordered > tbody > tr > td:first-child,
3327
+ .pixel-caffeine-wrapper .panel > .table-bordered > tfoot > tr > th:first-child,
3328
+ .pixel-caffeine-wrapper .panel > .table-bordered > tfoot > tr > td:first-child,
3329
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
3330
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
3331
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
3332
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
3333
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
3334
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
3335
+ border-left: 0; }
3336
+ .pixel-caffeine-wrapper .panel > .table-bordered > thead > tr > th:last-child,
3337
+ .pixel-caffeine-wrapper .panel > .table-bordered > thead > tr > td:last-child,
3338
+ .pixel-caffeine-wrapper .panel > .table-bordered > tbody > tr > th:last-child,
3339
+ .pixel-caffeine-wrapper .panel > .table-bordered > tbody > tr > td:last-child,
3340
+ .pixel-caffeine-wrapper .panel > .table-bordered > tfoot > tr > th:last-child,
3341
+ .pixel-caffeine-wrapper .panel > .table-bordered > tfoot > tr > td:last-child,
3342
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
3343
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
3344
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
3345
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
3346
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
3347
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
3348
+ border-right: 0; }
3349
+ .pixel-caffeine-wrapper .panel > .table-bordered > thead > tr:first-child > td,
3350
+ .pixel-caffeine-wrapper .panel > .table-bordered > thead > tr:first-child > th,
3351
+ .pixel-caffeine-wrapper .panel > .table-bordered > tbody > tr:first-child > td,
3352
+ .pixel-caffeine-wrapper .panel > .table-bordered > tbody > tr:first-child > th,
3353
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
3354
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
3355
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
3356
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
3357
+ border-bottom: 0; }
3358
+ .pixel-caffeine-wrapper .panel > .table-bordered > tbody > tr:last-child > td,
3359
+ .pixel-caffeine-wrapper .panel > .table-bordered > tbody > tr:last-child > th,
3360
+ .pixel-caffeine-wrapper .panel > .table-bordered > tfoot > tr:last-child > td,
3361
+ .pixel-caffeine-wrapper .panel > .table-bordered > tfoot > tr:last-child > th,
3362
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
3363
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
3364
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
3365
+ .pixel-caffeine-wrapper .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
3366
+ border-bottom: 0; }
3367
+ .pixel-caffeine-wrapper .panel > .table-responsive {
3368
+ border: 0;
3369
+ margin-bottom: 0; }
3370
+ .pixel-caffeine-wrapper .panel-group {
3371
+ margin-bottom: 20px; }
3372
+ .pixel-caffeine-wrapper .panel-group .panel {
3373
+ margin-bottom: 0;
3374
+ border-radius: 4px; }
3375
+ .pixel-caffeine-wrapper .panel-group .panel + .panel {
3376
+ margin-top: 5px; }
3377
+ .pixel-caffeine-wrapper .panel-group .panel-heading {
3378
+ border-bottom: 0; }
3379
+ .pixel-caffeine-wrapper .panel-group .panel-heading + .panel-collapse > .panel-body,
3380
+ .pixel-caffeine-wrapper .panel-group .panel-heading + .panel-collapse > .list-group {
3381
+ border-top: 1px solid #ddd; }
3382
+ .pixel-caffeine-wrapper .panel-group .panel-footer {
3383
+ border-top: 0; }
3384
+ .pixel-caffeine-wrapper .panel-group .panel-footer + .panel-collapse .panel-body {
3385
+ border-bottom: 1px solid #ddd; }
3386
+ .pixel-caffeine-wrapper .panel-default {
3387
+ border-color: #ddd; }
3388
+ .pixel-caffeine-wrapper .panel-default > .panel-heading {
3389
+ color: #333333;
3390
+ background-color: #f5f5f5;
3391
+ border-color: #ddd; }
3392
+ .pixel-caffeine-wrapper .panel-default > .panel-heading + .panel-collapse > .panel-body {
3393
+ border-top-color: #ddd; }
3394
+ .pixel-caffeine-wrapper .panel-default > .panel-heading .badge {
3395
+ color: #f5f5f5;
3396
+ background-color: #333333; }
3397
+ .pixel-caffeine-wrapper .panel-default > .panel-footer + .panel-collapse > .panel-body {
3398
+ border-bottom-color: #ddd; }
3399
+ .pixel-caffeine-wrapper .panel-primary {
3400
+ border-color: #337ab7; }
3401
+ .pixel-caffeine-wrapper .panel-primary > .panel-heading {
3402
+ color: #fff;
3403
+ background-color: #337ab7;
3404
+ border-color: #337ab7; }
3405
+ .pixel-caffeine-wrapper .panel-primary > .panel-heading + .panel-collapse > .panel-body {
3406
+ border-top-color: #337ab7; }
3407
+ .pixel-caffeine-wrapper .panel-primary > .panel-heading .badge {
3408
+ color: #337ab7;
3409
+ background-color: #fff; }
3410
+ .pixel-caffeine-wrapper .panel-primary > .panel-footer + .panel-collapse > .panel-body {
3411
+ border-bottom-color: #337ab7; }
3412
+ .pixel-caffeine-wrapper .panel-success {
3413
+ border-color: #d6e9c6; }
3414
+ .pixel-caffeine-wrapper .panel-success > .panel-heading {
3415
+ color: #3c763d;
3416
+ background-color: #dff0d8;
3417
+ border-color: #d6e9c6; }
3418
+ .pixel-caffeine-wrapper .panel-success > .panel-heading + .panel-collapse > .panel-body {
3419
+ border-top-color: #d6e9c6; }
3420
+ .pixel-caffeine-wrapper .panel-success > .panel-heading .badge {
3421
+ color: #dff0d8;
3422
+ background-color: #3c763d; }
3423
+ .pixel-caffeine-wrapper .panel-success > .panel-footer + .panel-collapse > .panel-body {
3424
+ border-bottom-color: #d6e9c6; }
3425
+ .pixel-caffeine-wrapper .panel-info {
3426
+ border-color: #bce8f1; }
3427
+ .pixel-caffeine-wrapper .panel-info > .panel-heading {
3428
+ color: #31708f;
3429
+ background-color: #d9edf7;
3430
+ border-color: #bce8f1; }
3431
+ .pixel-caffeine-wrapper .panel-info > .panel-heading + .panel-collapse > .panel-body {
3432
+ border-top-color: #bce8f1; }
3433
+ .pixel-caffeine-wrapper .panel-info > .panel-heading .badge {
3434
+ color: #d9edf7;
3435
+ background-color: #31708f; }
3436
+ .pixel-caffeine-wrapper .panel-info > .panel-footer + .panel-collapse > .panel-body {
3437
+ border-bottom-color: #bce8f1; }
3438
+ .pixel-caffeine-wrapper .panel-warning {
3439
+ border-color: #faebcc; }
3440
+ .pixel-caffeine-wrapper .panel-warning > .panel-heading {
3441
+ color: #8a6d3b;
3442
+ background-color: #fcf8e3;
3443
+ border-color: #faebcc; }
3444
+ .pixel-caffeine-wrapper .panel-warning > .panel-heading + .panel-collapse > .panel-body {
3445
+ border-top-color: #faebcc; }
3446
+ .pixel-caffeine-wrapper .panel-warning > .panel-heading .badge {
3447
+ color: #fcf8e3;
3448
+ background-color: #8a6d3b; }
3449
+ .pixel-caffeine-wrapper .panel-warning > .panel-footer + .panel-collapse > .panel-body {
3450
+ border-bottom-color: #faebcc; }
3451
+ .pixel-caffeine-wrapper .panel-danger {
3452
+ border-color: #ebccd1; }
3453
+ .pixel-caffeine-wrapper .panel-danger > .panel-heading {
3454
+ color: #a94442;
3455
+ background-color: #f2dede;
3456
+ border-color: #ebccd1; }
3457
+ .pixel-caffeine-wrapper .panel-danger > .panel-heading + .panel-collapse > .panel-body {
3458
+ border-top-color: #ebccd1; }
3459
+ .pixel-caffeine-wrapper .panel-danger > .panel-heading .badge {
3460
+ color: #f2dede;
3461
+ background-color: #a94442; }
3462
+ .pixel-caffeine-wrapper .panel-danger > .panel-footer + .panel-collapse > .panel-body {
3463
+ border-bottom-color: #ebccd1; }
3464
+ .pixel-caffeine-wrapper .embed-responsive {
3465
+ position: relative;
3466
+ display: block;
3467
+ height: 0;
3468
+ padding: 0;
3469
+ overflow: hidden; }
3470
+ .pixel-caffeine-wrapper .embed-responsive .embed-responsive-item,
3471
+ .pixel-caffeine-wrapper .embed-responsive iframe,
3472
+ .pixel-caffeine-wrapper .embed-responsive embed,
3473
+ .pixel-caffeine-wrapper .embed-responsive object,
3474
+ .pixel-caffeine-wrapper .embed-responsive video {
3475
+ position: absolute;
3476
+ top: 0;
3477
+ left: 0;
3478
+ bottom: 0;
3479
+ height: 100%;
3480
+ width: 100%;
3481
+ border: 0; }
3482
+ .pixel-caffeine-wrapper .embed-responsive-16by9 {
3483
+ padding-bottom: 56.25%; }
3484
+ .pixel-caffeine-wrapper .embed-responsive-4by3 {
3485
+ padding-bottom: 75%; }
3486
+ .pixel-caffeine-wrapper .well {
3487
+ min-height: 20px;
3488
+ padding: 19px;
3489
+ margin-bottom: 20px;
3490
+ background-color: #f5f5f5;
3491
+ border: 1px solid #e3e3e3;
3492
+ border-radius: 4px;
3493
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
3494
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); }
3495
+ .pixel-caffeine-wrapper .well blockquote {
3496
+ border-color: #ddd;
3497
+ border-color: rgba(0, 0, 0, 0.15); }
3498
+ .pixel-caffeine-wrapper .well-lg {
3499
+ padding: 24px;
3500
+ border-radius: 6px; }
3501
+ .pixel-caffeine-wrapper .well-sm {
3502
+ padding: 9px;
3503
+ border-radius: 3px; }
3504
+ .pixel-caffeine-wrapper .close {
3505
+ float: right;
3506
+ font-size: 21px;
3507
+ font-weight: bold;
3508
+ line-height: 1;
3509
+ color: #000;
3510
+ text-shadow: 0 1px 0 #fff;
3511
+ opacity: 0.2;
3512
+ filter: alpha(opacity=20); }
3513
+ .pixel-caffeine-wrapper .close:hover, .pixel-caffeine-wrapper .close:focus {
3514
+ color: #000;
3515
+ text-decoration: none;
3516
+ cursor: pointer;
3517
+ opacity: 0.5;
3518
+ filter: alpha(opacity=50); }
3519
+ .pixel-caffeine-wrapper button.close {
3520
+ padding: 0;
3521
+ cursor: pointer;
3522
+ background: transparent;
3523
+ border: 0;
3524
+ -webkit-appearance: none; }
3525
+ .pixel-caffeine-wrapper .modal-open {
3526
+ overflow: hidden; }
3527
+ .pixel-caffeine-wrapper .modal {
3528
+ display: none;
3529
+ overflow: hidden;
3530
+ position: fixed;
3531
+ top: 0;
3532
+ right: 0;
3533
+ bottom: 0;
3534
+ left: 0;
3535
+ z-index: 1050;
3536
+ -webkit-overflow-scrolling: touch;
3537
+ outline: 0; }
3538
+ .pixel-caffeine-wrapper .modal.fade .modal-dialog {
3539
+ -webkit-transform: translate(0, -25%);
3540
+ -ms-transform: translate(0, -25%);
3541
+ -o-transform: translate(0, -25%);
3542
+ transform: translate(0, -25%);
3543
+ -webkit-transition: -webkit-transform 0.3s ease-out;
3544
+ -moz-transition: -moz-transform 0.3s ease-out;
3545
+ -o-transition: -o-transform 0.3s ease-out;
3546
+ transition: transform 0.3s ease-out; }
3547
+ .pixel-caffeine-wrapper .modal.in .modal-dialog {
3548
+ -webkit-transform: translate(0, 0);
3549
+ -ms-transform: translate(0, 0);
3550
+ -o-transform: translate(0, 0);
3551
+ transform: translate(0, 0); }
3552
+ .pixel-caffeine-wrapper .modal-open .modal {
3553
+ overflow-x: hidden;
3554
+ overflow-y: auto; }
3555
+ .pixel-caffeine-wrapper .modal-dialog {
3556
+ position: relative;
3557
+ width: auto;
3558
+ margin: 10px; }
3559
+ .pixel-caffeine-wrapper .modal-content {
3560
+ position: relative;
3561
+ background-color: #fff;
3562
+ border: 1px solid #999;
3563
+ border: 1px solid rgba(0, 0, 0, 0.2);
3564
+ border-radius: 6px;
3565
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
3566
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
3567
+ background-clip: padding-box;
3568
+ outline: 0; }
3569
+ .pixel-caffeine-wrapper .modal-backdrop {
3570
+ position: fixed;
3571
+ top: 0;
3572
+ right: 0;
3573
+ bottom: 0;
3574
+ left: 0;
3575
+ z-index: 1040;
3576
+ background-color: #000; }
3577
+ .pixel-caffeine-wrapper .modal-backdrop.fade {
3578
+ opacity: 0;
3579
+ filter: alpha(opacity=0); }
3580
+ .pixel-caffeine-wrapper .modal-backdrop.in {
3581
+ opacity: 0.5;
3582
+ filter: alpha(opacity=50); }
3583
+ .pixel-caffeine-wrapper .modal-header {
3584
+ padding: 15px;
3585
+ border-bottom: 1px solid #e5e5e5; }
3586
+ .pixel-caffeine-wrapper .modal-header:before, .pixel-caffeine-wrapper .modal-header:after {
3587
+ content: " ";
3588
+ display: table; }
3589
+ .pixel-caffeine-wrapper .modal-header:after {
3590
+ clear: both; }
3591
+ .pixel-caffeine-wrapper .modal-header .close {
3592
+ margin-top: -2px; }
3593
+ .pixel-caffeine-wrapper .modal-title {
3594
+ margin: 0;
3595
+ line-height: 1.42857; }
3596
+ .pixel-caffeine-wrapper .modal-body {
3597
+ position: relative;
3598
+ padding: 15px; }
3599
+ .pixel-caffeine-wrapper .modal-footer {
3600
+ padding: 15px;
3601
+ text-align: right;
3602
+ border-top: 1px solid #e5e5e5; }
3603
+ .pixel-caffeine-wrapper .modal-footer:before, .pixel-caffeine-wrapper .modal-footer:after {
3604
+ content: " ";
3605
+ display: table; }
3606
+ .pixel-caffeine-wrapper .modal-footer:after {
3607
+ clear: both; }
3608
+ .pixel-caffeine-wrapper .modal-footer .btn + .btn {
3609
+ margin-left: 5px;
3610
+ margin-bottom: 0; }
3611
+ .pixel-caffeine-wrapper .modal-footer .btn-group .btn + .btn {
3612
+ margin-left: -1px; }
3613
+ .pixel-caffeine-wrapper .modal-footer .btn-block + .btn-block {
3614
+ margin-left: 0; }
3615
+ .pixel-caffeine-wrapper .modal-scrollbar-measure {
3616
+ position: absolute;
3617
+ top: -9999px;
3618
+ width: 50px;
3619
+ height: 50px;
3620
+ overflow: scroll; }
3621
+ @media (min-width: 768px) {
3622
+ .pixel-caffeine-wrapper .modal-dialog {
3623
+ width: 600px;
3624
+ margin: 30px auto; }
3625
+ .pixel-caffeine-wrapper .modal-content {
3626
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
3627
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); }
3628
+ .pixel-caffeine-wrapper .modal-sm {
3629
+ width: 300px; } }
3630
+ @media (min-width: 992px) {
3631
+ .pixel-caffeine-wrapper .modal-lg {
3632
+ width: 900px; } }
3633
+ .pixel-caffeine-wrapper .tooltip {
3634
+ position: absolute;
3635
+ z-index: 1070;
3636
+ display: block;
3637
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
3638
+ font-style: normal;
3639
+ font-weight: normal;
3640
+ letter-spacing: normal;
3641
+ line-break: auto;
3642
+ line-height: 1.42857;
3643
+ text-align: left;
3644
+ text-align: start;
3645
+ text-decoration: none;
3646
+ text-shadow: none;
3647
+ text-transform: none;
3648
+ white-space: normal;
3649
+ word-break: normal;
3650
+ word-spacing: normal;
3651
+ word-wrap: normal;
3652
+ font-size: 12px;
3653
+ opacity: 0;
3654
+ filter: alpha(opacity=0); }
3655
+ .pixel-caffeine-wrapper .tooltip.in {
3656
+ opacity: 0.9;
3657
+ filter: alpha(opacity=90); }
3658
+ .pixel-caffeine-wrapper .tooltip.top {
3659
+ margin-top: -3px;
3660
+ padding: 5px 0; }
3661
+ .pixel-caffeine-wrapper .tooltip.right {
3662
+ margin-left: 3px;
3663
+ padding: 0 5px; }
3664
+ .pixel-caffeine-wrapper .tooltip.bottom {
3665
+ margin-top: 3px;
3666
+ padding: 5px 0; }
3667
+ .pixel-caffeine-wrapper .tooltip.left {
3668
+ margin-left: -3px;
3669
+ padding: 0 5px; }
3670
+ .pixel-caffeine-wrapper .tooltip-inner {
3671
+ max-width: 200px;
3672
+ padding: 3px 8px;
3673
+ color: #fff;
3674
+ text-align: center;
3675
+ background-color: #000;
3676
+ border-radius: 4px; }
3677
+ .pixel-caffeine-wrapper .tooltip-arrow {
3678
+ position: absolute;
3679
+ width: 0;
3680
+ height: 0;
3681
+ border-color: transparent;
3682
+ border-style: solid; }
3683
+ .pixel-caffeine-wrapper .tooltip.top .tooltip-arrow {
3684
+ bottom: 0;
3685
+ left: 50%;
3686
+ margin-left: -5px;
3687
+ border-width: 5px 5px 0;
3688
+ border-top-color: #000; }
3689
+ .pixel-caffeine-wrapper .tooltip.top-left .tooltip-arrow {
3690
+ bottom: 0;
3691
+ right: 5px;
3692
+ margin-bottom: -5px;
3693
+ border-width: 5px 5px 0;
3694
+ border-top-color: #000; }
3695
+ .pixel-caffeine-wrapper .tooltip.top-right .tooltip-arrow {
3696
+ bottom: 0;
3697
+ left: 5px;
3698
+ margin-bottom: -5px;
3699
+ border-width: 5px 5px 0;
3700
+ border-top-color: #000; }
3701
+ .pixel-caffeine-wrapper .tooltip.right .tooltip-arrow {
3702
+ top: 50%;
3703
+ left: 0;
3704
+ margin-top: -5px;
3705
+ border-width: 5px 5px 5px 0;
3706
+ border-right-color: #000; }
3707
+ .pixel-caffeine-wrapper .tooltip.left .tooltip-arrow {
3708
+ top: 50%;
3709
+ right: 0;
3710
+ margin-top: -5px;
3711
+ border-width: 5px 0 5px 5px;
3712
+ border-left-color: #000; }
3713
+ .pixel-caffeine-wrapper .tooltip.bottom .tooltip-arrow {
3714
+ top: 0;
3715
+ left: 50%;
3716
+ margin-left: -5px;
3717
+ border-width: 0 5px 5px;
3718
+ border-bottom-color: #000; }
3719
+ .pixel-caffeine-wrapper .tooltip.bottom-left .tooltip-arrow {
3720
+ top: 0;
3721
+ right: 5px;
3722
+ margin-top: -5px;
3723
+ border-width: 0 5px 5px;
3724
+ border-bottom-color: #000; }
3725
+ .pixel-caffeine-wrapper .tooltip.bottom-right .tooltip-arrow {
3726
+ top: 0;
3727
+ left: 5px;
3728
+ margin-top: -5px;
3729
+ border-width: 0 5px 5px;
3730
+ border-bottom-color: #000; }
3731
+ .pixel-caffeine-wrapper .popover {
3732
+ position: absolute;
3733
+ top: 0;
3734
+ left: 0;
3735
+ z-index: 1060;
3736
+ display: none;
3737
+ max-width: 276px;
3738
+ padding: 1px;
3739
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
3740
+ font-style: normal;
3741
+ font-weight: normal;
3742
+ letter-spacing: normal;
3743
+ line-break: auto;
3744
+ line-height: 1.42857;
3745
+ text-align: left;
3746
+ text-align: start;
3747
+ text-decoration: none;
3748
+ text-shadow: none;
3749
+ text-transform: none;
3750
+ white-space: normal;
3751
+ word-break: normal;
3752
+ word-spacing: normal;
3753
+ word-wrap: normal;
3754
+ font-size: 14px;
3755
+ background-color: #fff;
3756
+ background-clip: padding-box;
3757
+ border: 1px solid #ccc;
3758
+ border: 1px solid rgba(0, 0, 0, 0.2);
3759
+ border-radius: 6px;
3760
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
3761
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); }
3762
+ .pixel-caffeine-wrapper .popover.top {
3763
+ margin-top: -10px; }
3764
+ .pixel-caffeine-wrapper .popover.right {
3765
+ margin-left: 10px; }
3766
+ .pixel-caffeine-wrapper .popover.bottom {
3767
+ margin-top: 10px; }
3768
+ .pixel-caffeine-wrapper .popover.left {
3769
+ margin-left: -10px; }
3770
+ .pixel-caffeine-wrapper .popover-title {
3771
+ margin: 0;
3772
+ padding: 8px 14px;
3773
+ font-size: 14px;
3774
+ background-color: #f7f7f7;
3775
+ border-bottom: 1px solid #ebebeb;
3776
+ border-radius: 5px 5px 0 0; }
3777
+ .pixel-caffeine-wrapper .popover-content {
3778
+ padding: 9px 14px; }
3779
+ .pixel-caffeine-wrapper .popover > .arrow, .pixel-caffeine-wrapper .popover > .arrow:after {
3780
+ position: absolute;
3781
+ display: block;
3782
+ width: 0;
3783
+ height: 0;
3784
+ border-color: transparent;
3785
+ border-style: solid; }
3786
+ .pixel-caffeine-wrapper .popover > .arrow {
3787
+ border-width: 11px; }
3788
+ .pixel-caffeine-wrapper .popover > .arrow:after {
3789
+ border-width: 10px;
3790
+ content: ""; }
3791
+ .pixel-caffeine-wrapper .popover.top > .arrow {
3792
+ left: 50%;
3793
+ margin-left: -11px;
3794
+ border-bottom-width: 0;
3795
+ border-top-color: #999999;
3796
+ border-top-color: rgba(0, 0, 0, 0.25);
3797
+ bottom: -11px; }
3798
+ .pixel-caffeine-wrapper .popover.top > .arrow:after {
3799
+ content: " ";
3800
+ bottom: 1px;
3801
+ margin-left: -10px;
3802
+ border-bottom-width: 0;
3803
+ border-top-color: #fff; }
3804
+ .pixel-caffeine-wrapper .popover.right > .arrow {
3805
+ top: 50%;
3806
+ left: -11px;
3807
+ margin-top: -11px;
3808
+ border-left-width: 0;
3809
+ border-right-color: #999999;
3810
+ border-right-color: rgba(0, 0, 0, 0.25); }
3811
+ .pixel-caffeine-wrapper .popover.right > .arrow:after {
3812
+ content: " ";
3813
+ left: 1px;
3814
+ bottom: -10px;
3815
+ border-left-width: 0;
3816
+ border-right-color: #fff; }
3817
+ .pixel-caffeine-wrapper .popover.bottom > .arrow {
3818
+ left: 50%;
3819
+ margin-left: -11px;
3820
+ border-top-width: 0;
3821
+ border-bottom-color: #999999;
3822
+ border-bottom-color: rgba(0, 0, 0, 0.25);
3823
+ top: -11px; }
3824
+ .pixel-caffeine-wrapper .popover.bottom > .arrow:after {
3825
+ content: " ";
3826
+ top: 1px;
3827
+ margin-left: -10px;
3828
+ border-top-width: 0;
3829
+ border-bottom-color: #fff; }
3830
+ .pixel-caffeine-wrapper .popover.left > .arrow {
3831
+ top: 50%;
3832
+ right: -11px;
3833
+ margin-top: -11px;
3834
+ border-right-width: 0;
3835
+ border-left-color: #999999;
3836
+ border-left-color: rgba(0, 0, 0, 0.25); }
3837
+ .pixel-caffeine-wrapper .popover.left > .arrow:after {
3838
+ content: " ";
3839
+ right: 1px;
3840
+ border-right-width: 0;
3841
+ border-left-color: #fff;
3842
+ bottom: -10px; }
3843
+ .pixel-caffeine-wrapper .carousel {
3844
+ position: relative; }
3845
+ .pixel-caffeine-wrapper .carousel-inner {
3846
+ position: relative;
3847
+ overflow: hidden;
3848
+ width: 100%; }
3849
+ .pixel-caffeine-wrapper .carousel-inner > .item {
3850
+ display: none;
3851
+ position: relative;
3852
+ -webkit-transition: 0.6s ease-in-out left;
3853
+ -o-transition: 0.6s ease-in-out left;
3854
+ transition: 0.6s ease-in-out left; }
3855
+ .pixel-caffeine-wrapper .carousel-inner > .item > img,
3856
+ .pixel-caffeine-wrapper .carousel-inner > .item > a > img {
3857
+ display: block;
3858
+ max-width: 100%;
3859
+ height: auto;
3860
+ line-height: 1; }
3861
+ @media all and (transform-3d), (-webkit-transform-3d) {
3862
+ .pixel-caffeine-wrapper .carousel-inner > .item {
3863
+ -webkit-transition: -webkit-transform 0.6s ease-in-out;
3864
+ -moz-transition: -moz-transform 0.6s ease-in-out;
3865
+ -o-transition: -o-transform 0.6s ease-in-out;
3866
+ transition: transform 0.6s ease-in-out;
3867
+ -webkit-backface-visibility: hidden;
3868
+ -moz-backface-visibility: hidden;
3869
+ backface-visibility: hidden;
3870
+ -webkit-perspective: 1000px;
3871
+ -moz-perspective: 1000px;
3872
+ perspective: 1000px; }
3873
+ .pixel-caffeine-wrapper .carousel-inner > .item.next, .pixel-caffeine-wrapper .carousel-inner > .item.active.right {
3874
+ -webkit-transform: translate3d(100%, 0, 0);
3875
+ transform: translate3d(100%, 0, 0);
3876
+ left: 0; }
3877
+ .pixel-caffeine-wrapper .carousel-inner > .item.prev, .pixel-caffeine-wrapper .carousel-inner > .item.active.left {
3878
+ -webkit-transform: translate3d(-100%, 0, 0);
3879
+ transform: translate3d(-100%, 0, 0);
3880
+ left: 0; }
3881
+ .pixel-caffeine-wrapper .carousel-inner > .item.next.left, .pixel-caffeine-wrapper .carousel-inner > .item.prev.right, .pixel-caffeine-wrapper .carousel-inner > .item.active {
3882
+ -webkit-transform: translate3d(0, 0, 0);
3883
+ transform: translate3d(0, 0, 0);
3884
+ left: 0; } }
3885
+ .pixel-caffeine-wrapper .carousel-inner > .active,
3886
+ .pixel-caffeine-wrapper .carousel-inner > .next,
3887
+ .pixel-caffeine-wrapper .carousel-inner > .prev {
3888
+ display: block; }
3889
+ .pixel-caffeine-wrapper .carousel-inner > .active {
3890
+ left: 0; }
3891
+ .pixel-caffeine-wrapper .carousel-inner > .next,
3892
+ .pixel-caffeine-wrapper .carousel-inner > .prev {
3893
+ position: absolute;
3894
+ top: 0;
3895
+ width: 100%; }
3896
+ .pixel-caffeine-wrapper .carousel-inner > .next {
3897
+ left: 100%; }
3898
+ .pixel-caffeine-wrapper .carousel-inner > .prev {
3899
+ left: -100%; }
3900
+ .pixel-caffeine-wrapper .carousel-inner > .next.left,
3901
+ .pixel-caffeine-wrapper .carousel-inner > .prev.right {
3902
+ left: 0; }
3903
+ .pixel-caffeine-wrapper .carousel-inner > .active.left {
3904
+ left: -100%; }
3905
+ .pixel-caffeine-wrapper .carousel-inner > .active.right {
3906
+ left: 100%; }
3907
+ .pixel-caffeine-wrapper .carousel-control {
3908
+ position: absolute;
3909
+ top: 0;
3910
+ left: 0;
3911
+ bottom: 0;
3912
+ width: 15%;
3913
+ opacity: 0.5;
3914
+ filter: alpha(opacity=50);
3915
+ font-size: 20px;
3916
+ color: #fff;
3917
+ text-align: center;
3918
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
3919
+ background-color: transparent; }
3920
+ .pixel-caffeine-wrapper .carousel-control.left {
3921
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
3922
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
3923
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
3924
+ background-repeat: repeat-x;
3925
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); }
3926
+ .pixel-caffeine-wrapper .carousel-control.right {
3927
+ left: auto;
3928
+ right: 0;
3929
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
3930
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
3931
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
3932
+ background-repeat: repeat-x;
3933
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); }
3934
+ .pixel-caffeine-wrapper .carousel-control:hover, .pixel-caffeine-wrapper .carousel-control:focus {
3935
+ outline: 0;
3936
+ color: #fff;
3937
+ text-decoration: none;
3938
+ opacity: 0.9;
3939
+ filter: alpha(opacity=90); }
3940
+ .pixel-caffeine-wrapper .carousel-control .icon-prev,
3941
+ .pixel-caffeine-wrapper .carousel-control .icon-next,
3942
+ .pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-left,
3943
+ .pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-right {
3944
+ position: absolute;
3945
+ top: 50%;
3946
+ margin-top: -10px;
3947
+ z-index: 5;
3948
+ display: inline-block; }
3949
+ .pixel-caffeine-wrapper .carousel-control .icon-prev,
3950
+ .pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-left {
3951
+ left: 50%;
3952
+ margin-left: -10px; }
3953
+ .pixel-caffeine-wrapper .carousel-control .icon-next,
3954
+ .pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-right {
3955
+ right: 50%;
3956
+ margin-right: -10px; }
3957
+ .pixel-caffeine-wrapper .carousel-control .icon-prev,
3958
+ .pixel-caffeine-wrapper .carousel-control .icon-next {
3959
+ width: 20px;
3960
+ height: 20px;
3961
+ line-height: 1;
3962
+ font-family: serif; }
3963
+ .pixel-caffeine-wrapper .carousel-control .icon-prev:before {
3964
+ content: '\2039'; }
3965
+ .pixel-caffeine-wrapper .carousel-control .icon-next:before {
3966
+ content: '\203a'; }
3967
+ .pixel-caffeine-wrapper .carousel-indicators {
3968
+ position: absolute;
3969
+ bottom: 10px;
3970
+ left: 50%;
3971
+ z-index: 15;
3972
+ width: 60%;
3973
+ margin-left: -30%;
3974
+ padding-left: 0;
3975
+ list-style: none;
3976
+ text-align: center; }
3977
+ .pixel-caffeine-wrapper .carousel-indicators li {
3978
+ display: inline-block;
3979
+ width: 10px;
3980
+ height: 10px;
3981
+ margin: 1px;
3982
+ text-indent: -999px;
3983
+ border: 1px solid #fff;
3984
+ border-radius: 10px;
3985
+ cursor: pointer;
3986
+ background-color: #000 \9;
3987
+ background-color: transparent; }
3988
+ .pixel-caffeine-wrapper .carousel-indicators .active {
3989
+ margin: 0;
3990
+ width: 12px;
3991
+ height: 12px;
3992
+ background-color: #fff; }
3993
+ .pixel-caffeine-wrapper .carousel-caption {
3994
+ position: absolute;
3995
+ left: 15%;
3996
+ right: 15%;
3997
+ bottom: 20px;
3998
+ z-index: 10;
3999
+ padding-top: 20px;
4000
+ padding-bottom: 20px;
4001
+ color: #fff;
4002
+ text-align: center;
4003
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); }
4004
+ .pixel-caffeine-wrapper .carousel-caption .btn {
4005
+ text-shadow: none; }
4006
+ @media screen and (min-width: 768px) {
4007
+ .pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-left,
4008
+ .pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-right,
4009
+ .pixel-caffeine-wrapper .carousel-control .icon-prev,
4010
+ .pixel-caffeine-wrapper .carousel-control .icon-next {
4011
+ width: 30px;
4012
+ height: 30px;
4013
+ margin-top: -10px;
4014
+ font-size: 30px; }
4015
+ .pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-left,
4016
+ .pixel-caffeine-wrapper .carousel-control .icon-prev {
4017
+ margin-left: -10px; }
4018
+ .pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-right,
4019
+ .pixel-caffeine-wrapper .carousel-control .icon-next {
4020
+ margin-right: -10px; }
4021
+ .pixel-caffeine-wrapper .carousel-caption {
4022
+ left: 20%;
4023
+ right: 20%;
4024
+ padding-bottom: 30px; }
4025
+ .pixel-caffeine-wrapper .carousel-indicators {
4026
+ bottom: 20px; } }
4027
+ .pixel-caffeine-wrapper .clearfix:before, .pixel-caffeine-wrapper .clearfix:after {
4028
+ content: " ";
4029
+ display: table; }
4030
+ .pixel-caffeine-wrapper .clearfix:after {
4031
+ clear: both; }
4032
+ .pixel-caffeine-wrapper .center-block {
4033
+ display: block;
4034
+ margin-left: auto;
4035
+ margin-right: auto; }
4036
+ .pixel-caffeine-wrapper .pull-right {
4037
+ float: right !important; }
4038
+ .pixel-caffeine-wrapper .pull-left {
4039
+ float: left !important; }
4040
+ .pixel-caffeine-wrapper .hide {
4041
+ display: none !important; }
4042
+ .pixel-caffeine-wrapper .show {
4043
+ display: block !important; }
4044
+ .pixel-caffeine-wrapper .invisible {
4045
+ visibility: hidden; }
4046
+ .pixel-caffeine-wrapper .text-hide {
4047
+ font: 0/0 a;
4048
+ color: transparent;
4049
+ text-shadow: none;
4050
+ background-color: transparent;
4051
+ border: 0; }
4052
+ .pixel-caffeine-wrapper .hidden {
4053
+ display: none !important; }
4054
+ .pixel-caffeine-wrapper .affix {
4055
+ position: fixed; }
4056
+ @-ms-viewport {
4057
+ width: device-width; }
4058
+ .pixel-caffeine-wrapper .visible-xs {
4059
+ display: none !important; }
4060
+ .pixel-caffeine-wrapper .visible-sm {
4061
+ display: none !important; }
4062
+ .pixel-caffeine-wrapper .visible-md {
4063
+ display: none !important; }
4064
+ .pixel-caffeine-wrapper .visible-lg {
4065
+ display: none !important; }
4066
+ .pixel-caffeine-wrapper .visible-xs-block,
4067
+ .pixel-caffeine-wrapper .visible-xs-inline,
4068
+ .pixel-caffeine-wrapper .visible-xs-inline-block,
4069
+ .pixel-caffeine-wrapper .visible-sm-block,
4070
+ .pixel-caffeine-wrapper .visible-sm-inline,
4071
+ .pixel-caffeine-wrapper .visible-sm-inline-block,
4072
+ .pixel-caffeine-wrapper .visible-md-block,
4073
+ .pixel-caffeine-wrapper .visible-md-inline,
4074
+ .pixel-caffeine-wrapper .visible-md-inline-block,
4075
+ .pixel-caffeine-wrapper .visible-lg-block,
4076
+ .pixel-caffeine-wrapper .visible-lg-inline,
4077
+ .pixel-caffeine-wrapper .visible-lg-inline-block {
4078
+ display: none !important; }
4079
+ @media (max-width: 767px) {
4080
+ .pixel-caffeine-wrapper .visible-xs {
4081
+ display: block !important; }
4082
+ .pixel-caffeine-wrapper table.visible-xs {
4083
+ display: table !important; }
4084
+ .pixel-caffeine-wrapper tr.visible-xs {
4085
+ display: table-row !important; }
4086
+ .pixel-caffeine-wrapper th.visible-xs,
4087
+ .pixel-caffeine-wrapper td.visible-xs {
4088
+ display: table-cell !important; } }
4089
+ @media (max-width: 767px) {
4090
+ .pixel-caffeine-wrapper .visible-xs-block {
4091
+ display: block !important; } }
4092
+ @media (max-width: 767px) {
4093
+ .pixel-caffeine-wrapper .visible-xs-inline {
4094
+ display: inline !important; } }
4095
+ @media (max-width: 767px) {
4096
+ .pixel-caffeine-wrapper .visible-xs-inline-block {
4097
+ display: inline-block !important; } }
4098
+ @media (min-width: 768px) and (max-width: 991px) {
4099
+ .pixel-caffeine-wrapper .visible-sm {
4100
+ display: block !important; }
4101
+ .pixel-caffeine-wrapper table.visible-sm {
4102
+ display: table !important; }
4103
+ .pixel-caffeine-wrapper tr.visible-sm {
4104
+ display: table-row !important; }
4105
+ .pixel-caffeine-wrapper th.visible-sm,
4106
+ .pixel-caffeine-wrapper td.visible-sm {
4107
+ display: table-cell !important; } }
4108
+ @media (min-width: 768px) and (max-width: 991px) {
4109
+ .pixel-caffeine-wrapper .visible-sm-block {
4110
+ display: block !important; } }
4111
+ @media (min-width: 768px) and (max-width: 991px) {
4112
+ .pixel-caffeine-wrapper .visible-sm-inline {
4113
+ display: inline !important; } }
4114
+ @media (min-width: 768px) and (max-width: 991px) {
4115
+ .pixel-caffeine-wrapper .visible-sm-inline-block {
4116
+ display: inline-block !important; } }
4117
+ @media (min-width: 992px) and (max-width: 1199px) {
4118
+ .pixel-caffeine-wrapper .visible-md {
4119
+ display: block !important; }
4120
+ .pixel-caffeine-wrapper table.visible-md {
4121
+ display: table !important; }
4122
+ .pixel-caffeine-wrapper tr.visible-md {
4123
+ display: table-row !important; }
4124
+ .pixel-caffeine-wrapper th.visible-md,
4125
+ .pixel-caffeine-wrapper td.visible-md {
4126
+ display: table-cell !important; } }
4127
+ @media (min-width: 992px) and (max-width: 1199px) {
4128
+ .pixel-caffeine-wrapper .visible-md-block {
4129
+ display: block !important; } }
4130
+ @media (min-width: 992px) and (max-width: 1199px) {
4131
+ .pixel-caffeine-wrapper .visible-md-inline {
4132
+ display: inline !important; } }
4133
+ @media (min-width: 992px) and (max-width: 1199px) {
4134
+ .pixel-caffeine-wrapper .visible-md-inline-block {
4135
+ display: inline-block !important; } }
4136
+ @media (min-width: 1200px) {
4137
+ .pixel-caffeine-wrapper .visible-lg {
4138
+ display: block !important; }
4139
+ .pixel-caffeine-wrapper table.visible-lg {
4140
+ display: table !important; }
4141
+ .pixel-caffeine-wrapper tr.visible-lg {
4142
+ display: table-row !important; }
4143
+ .pixel-caffeine-wrapper th.visible-lg,
4144
+ .pixel-caffeine-wrapper td.visible-lg {
4145
+ display: table-cell !important; } }
4146
+ @media (min-width: 1200px) {
4147
+ .pixel-caffeine-wrapper .visible-lg-block {
4148
+ display: block !important; } }
4149
+ @media (min-width: 1200px) {
4150
+ .pixel-caffeine-wrapper .visible-lg-inline {
4151
+ display: inline !important; } }
4152
+ @media (min-width: 1200px) {
4153
+ .pixel-caffeine-wrapper .visible-lg-inline-block {
4154
+ display: inline-block !important; } }
4155
+ @media (max-width: 767px) {
4156
+ .pixel-caffeine-wrapper .hidden-xs {
4157
+ display: none !important; } }
4158
+ @media (min-width: 768px) and (max-width: 991px) {
4159
+ .pixel-caffeine-wrapper .hidden-sm {
4160
+ display: none !important; } }
4161
+ @media (min-width: 992px) and (max-width: 1199px) {
4162
+ .pixel-caffeine-wrapper .hidden-md {
4163
+ display: none !important; } }
4164
+ @media (min-width: 1200px) {
4165
+ .pixel-caffeine-wrapper .hidden-lg {
4166
+ display: none !important; } }
4167
+ .pixel-caffeine-wrapper .visible-print {
4168
+ display: none !important; }
4169
+ @media print {
4170
+ .pixel-caffeine-wrapper .visible-print {
4171
+ display: block !important; }
4172
+ .pixel-caffeine-wrapper table.visible-print {
4173
+ display: table !important; }
4174
+ .pixel-caffeine-wrapper tr.visible-print {
4175
+ display: table-row !important; }
4176
+ .pixel-caffeine-wrapper th.visible-print,
4177
+ .pixel-caffeine-wrapper td.visible-print {
4178
+ display: table-cell !important; } }
4179
+ .pixel-caffeine-wrapper .visible-print-block {
4180
+ display: none !important; }
4181
+ @media print {
4182
+ .pixel-caffeine-wrapper .visible-print-block {
4183
+ display: block !important; } }
4184
+ .pixel-caffeine-wrapper .visible-print-inline {
4185
+ display: none !important; }
4186
+ @media print {
4187
+ .pixel-caffeine-wrapper .visible-print-inline {
4188
+ display: inline !important; } }
4189
+ .pixel-caffeine-wrapper .visible-print-inline-block {
4190
+ display: none !important; }
4191
+ @media print {
4192
+ .pixel-caffeine-wrapper .visible-print-inline-block {
4193
+ display: inline-block !important; } }
4194
+ @media print {
4195
+ .pixel-caffeine-wrapper .hidden-print {
4196
+ display: none !important; } }
4197
+ .pixel-caffeine-wrapper body {
4198
+ background-color: transparent; }
4199
+ .pixel-caffeine-wrapper body.inverse {
4200
+ background: #333333; }
4201
+ .pixel-caffeine-wrapper body.inverse, .pixel-caffeine-wrapper body.inverse .form-control {
4202
+ color: rgba(255,255,255, 0.84); }
4203
+ .pixel-caffeine-wrapper body.inverse .modal,
4204
+ .pixel-caffeine-wrapper body.inverse .modal .form-control,
4205
+ .pixel-caffeine-wrapper body.inverse .panel-default,
4206
+ .pixel-caffeine-wrapper body.inverse .panel-default .form-control,
4207
+ .pixel-caffeine-wrapper body.inverse .card,
4208
+ .pixel-caffeine-wrapper body.inverse .card .form-control {
4209
+ background-color: initial;
4210
+ color: initial; }
4211
+ .pixel-caffeine-wrapper body, .pixel-caffeine-wrapper h1, .pixel-caffeine-wrapper h2, .pixel-caffeine-wrapper h3, .pixel-caffeine-wrapper h4, .pixel-caffeine-wrapper h5, .pixel-caffeine-wrapper h6, .pixel-caffeine-wrapper .h1, .pixel-caffeine-wrapper .h2, .pixel-caffeine-wrapper .h3, .pixel-caffeine-wrapper .h4 {
4212
+ font-family: "Open Sans", Arial, sans-serif;
4213
+ font-weight: 300; }
4214
+ .pixel-caffeine-wrapper h5, .pixel-caffeine-wrapper h6 {
4215
+ font-weight: 400; }
4216
+ .pixel-caffeine-wrapper a, .pixel-caffeine-wrapper a:hover, .pixel-caffeine-wrapper a:focus {
4217
+ color: #337ab7; }
4218
+ .pixel-caffeine-wrapper a .material-icons, .pixel-caffeine-wrapper a:hover .material-icons, .pixel-caffeine-wrapper a:focus .material-icons {
4219
+ vertical-align: middle; }
4220
+ .pixel-caffeine-wrapper .form-horizontal .radio,
4221
+ .pixel-caffeine-wrapper .form-horizontal .checkbox,
4222
+ .pixel-caffeine-wrapper .form-horizontal .radio-inline,
4223
+ .pixel-caffeine-wrapper .form-horizontal .checkbox-inline {
4224
+ padding-top: 0; }
4225
+ .pixel-caffeine-wrapper .form-horizontal .radio {
4226
+ margin-bottom: 10px; }
4227
+ .pixel-caffeine-wrapper .form-horizontal label {
4228
+ text-align: right; }
4229
+ .pixel-caffeine-wrapper .form-horizontal label.control-label {
4230
+ margin: 0; }
4231
+ .pixel-caffeine-wrapper body .container .well.well-sm,
4232
+ .pixel-caffeine-wrapper body .container-fluid .well.well-sm {
4233
+ padding: 10px; }
4234
+ .pixel-caffeine-wrapper body .container .well.well-lg,
4235
+ .pixel-caffeine-wrapper body .container-fluid .well.well-lg {
4236
+ padding: 26px; }
4237
+ .pixel-caffeine-wrapper body .container .well,
4238
+ .pixel-caffeine-wrapper body .container .jumbotron,
4239
+ .pixel-caffeine-wrapper body .container-fluid .well,
4240
+ .pixel-caffeine-wrapper body .container-fluid .jumbotron {
4241
+ background-color: #fff;
4242
+ padding: 19px;
4243
+ margin-bottom: 20px;
4244
+ box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
4245
+ border-radius: 4px;
4246
+ border: 0; }
4247
+ .pixel-caffeine-wrapper body .container .well p,
4248
+ .pixel-caffeine-wrapper body .container .jumbotron p,
4249
+ .pixel-caffeine-wrapper body .container-fluid .well p,
4250
+ .pixel-caffeine-wrapper body .container-fluid .jumbotron p {
4251
+ font-weight: 300; }
4252
+ .pixel-caffeine-wrapper body .container .well, .pixel-caffeine-wrapper body .container .well-default,
4253
+ .pixel-caffeine-wrapper body .container .jumbotron,
4254
+ .pixel-caffeine-wrapper body .container .jumbotron-default,
4255
+ .pixel-caffeine-wrapper body .container-fluid .well,
4256
+ .pixel-caffeine-wrapper body .container-fluid .well-default,
4257
+ .pixel-caffeine-wrapper body .container-fluid .jumbotron,
4258
+ .pixel-caffeine-wrapper body .container-fluid .jumbotron-default {
4259
+ background-color: #FFF; }
4260
+ .pixel-caffeine-wrapper body .container .well-inverse,
4261
+ .pixel-caffeine-wrapper body .container .jumbotron-inverse,
4262
+ .pixel-caffeine-wrapper body .container-fluid .well-inverse,
4263
+ .pixel-caffeine-wrapper body .container-fluid .jumbotron-inverse {
4264
+ background-color: #3f51b5; }
4265
+ .pixel-caffeine-wrapper body .container .well-primary,
4266
+ .pixel-caffeine-wrapper body .container .jumbotron-primary,
4267
+ .pixel-caffeine-wrapper body .container-fluid .well-primary,
4268
+ .pixel-caffeine-wrapper body .container-fluid .jumbotron-primary {
4269
+ background-color: #4C70BA; }
4270
+ .pixel-caffeine-wrapper body .container .well-success,
4271
+ .pixel-caffeine-wrapper body .container .jumbotron-success,
4272
+ .pixel-caffeine-wrapper body .container-fluid .well-success,
4273
+ .pixel-caffeine-wrapper body .container-fluid .jumbotron-success {
4274
+ background-color: #68AA20; }
4275
+ .pixel-caffeine-wrapper body .container .well-info,
4276
+ .pixel-caffeine-wrapper body .container .jumbotron-info,
4277
+ .pixel-caffeine-wrapper body .container-fluid .well-info,
4278
+ .pixel-caffeine-wrapper body .container-fluid .jumbotron-info {
4279
+ background-color: #5bc0de; }
4280
+ .pixel-caffeine-wrapper body .container .well-warning,
4281
+ .pixel-caffeine-wrapper body .container .jumbotron-warning,
4282
+ .pixel-caffeine-wrapper body .container-fluid .well-warning,
4283
+ .pixel-caffeine-wrapper body .container-fluid .jumbotron-warning {
4284
+ background-color: #FD9C00; }
4285
+ .pixel-caffeine-wrapper body .container .well-danger,
4286
+ .pixel-caffeine-wrapper body .container .jumbotron-danger,
4287
+ .pixel-caffeine-wrapper body .container-fluid .well-danger,
4288
+ .pixel-caffeine-wrapper body .container-fluid .jumbotron-danger {
4289
+ background-color: #E15667; }
4290
+ .pixel-caffeine-wrapper .btn,
4291
+ .pixel-caffeine-wrapper .input-group-btn .btn {
4292
+ border: none;
4293
+ border-radius: 4px;
4294
+ position: relative;
4295
+ padding: 8px 30px;
4296
+ margin: 10px 1px;
4297
+ font-size: 14px;
4298
+ font-weight: 500;
4299
+ text-transform: uppercase;
4300
+ letter-spacing: 0;
4301
+ will-change: box-shadow, transform;
4302
+ transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
4303
+ outline: 0;
4304
+ cursor: pointer;
4305
+ text-decoration: none;
4306
+ background: transparent; }
4307
+ .pixel-caffeine-wrapper .btn::-moz-focus-inner,
4308
+ .pixel-caffeine-wrapper .input-group-btn .btn::-moz-focus-inner {
4309
+ border: 0; }
4310
+ .pixel-caffeine-wrapper .btn:not(.btn-raised),
4311
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised) {
4312
+ box-shadow: none; }
4313
+ .pixel-caffeine-wrapper .btn:not(.btn-raised), .pixel-caffeine-wrapper .btn:not(.btn-raised).btn-default,
4314
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised),
4315
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised).btn-default {
4316
+ color: rgba(0,0,0, 0.87); }
4317
+ .pixel-caffeine-wrapper .btn:not(.btn-raised).btn-inverse,
4318
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised).btn-inverse {
4319
+ color: #3f51b5; }
4320
+ .pixel-caffeine-wrapper .btn:not(.btn-raised).btn-primary,
4321
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised).btn-primary {
4322
+ color: #4C70BA; }
4323
+ .pixel-caffeine-wrapper .btn:not(.btn-raised).btn-success,
4324
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised).btn-success {
4325
+ color: #68AA20; }
4326
+ .pixel-caffeine-wrapper .btn:not(.btn-raised).btn-info,
4327
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised).btn-info {
4328
+ color: #5bc0de; }
4329
+ .pixel-caffeine-wrapper .btn:not(.btn-raised).btn-warning,
4330
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised).btn-warning {
4331
+ color: #FD9C00; }
4332
+ .pixel-caffeine-wrapper .btn:not(.btn-raised).btn-danger,
4333
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised).btn-danger {
4334
+ color: #E15667; }
4335
+ .pixel-caffeine-wrapper .btn:not(.btn-raised):not(.btn-link):hover, .pixel-caffeine-wrapper .btn:not(.btn-raised):not(.btn-link):focus,
4336
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised):not(.btn-link):hover,
4337
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised):not(.btn-link):focus {
4338
+ background-color: rgba(153, 153, 153, 0.2); }
4339
+ .theme-dark .pixel-caffeine-wrapper .btn:not(.btn-raised):not(.btn-link):hover, .theme-dark .pixel-caffeine-wrapper .btn:not(.btn-raised):not(.btn-link):focus, .theme-dark
4340
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised):not(.btn-link):hover, .theme-dark
4341
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised):not(.btn-link):focus {
4342
+ background-color: rgba(204, 204, 204, 0.15); }
4343
+ .pixel-caffeine-wrapper .btn.btn-raised, .pixel-caffeine-wrapper .btn.btn-raised.btn-default, .pixel-caffeine-wrapper .btn.btn-fab, .pixel-caffeine-wrapper .btn.btn-fab.btn-default, .btn-group-raised .pixel-caffeine-wrapper .btn, .btn-group-raised .pixel-caffeine-wrapper .btn.btn-default,
4344
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised,
4345
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.btn-default,
4346
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab,
4347
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-default, .btn-group-raised
4348
+ .pixel-caffeine-wrapper .input-group-btn .btn, .btn-group-raised
4349
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-default {
4350
+ background-color: transparent;
4351
+ color: rgba(0,0,0, 0.87); }
4352
+ .pixel-caffeine-wrapper .btn.btn-raised.btn-inverse, .pixel-caffeine-wrapper .btn.btn-fab.btn-inverse, .btn-group-raised .pixel-caffeine-wrapper .btn.btn-inverse,
4353
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.btn-inverse,
4354
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-inverse, .btn-group-raised
4355
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-inverse {
4356
+ background-color: #3f51b5;
4357
+ color: #ffffff; }
4358
+ .pixel-caffeine-wrapper .btn.btn-raised.btn-primary, .pixel-caffeine-wrapper .btn.btn-fab.btn-primary, .btn-group-raised .pixel-caffeine-wrapper .btn.btn-primary,
4359
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.btn-primary,
4360
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-primary, .btn-group-raised
4361
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-primary {
4362
+ background-color: #4C70BA;
4363
+ color: rgba(255,255,255, 0.84); }
4364
+ .pixel-caffeine-wrapper .btn.btn-raised.btn-success, .pixel-caffeine-wrapper .btn.btn-fab.btn-success, .btn-group-raised .pixel-caffeine-wrapper .btn.btn-success,
4365
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.btn-success,
4366
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-success, .btn-group-raised
4367
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-success {
4368
+ background-color: #68AA20;
4369
+ color: rgba(255,255,255, 0.84); }
4370
+ .pixel-caffeine-wrapper .btn.btn-raised.btn-info, .pixel-caffeine-wrapper .btn.btn-fab.btn-info, .btn-group-raised .pixel-caffeine-wrapper .btn.btn-info,
4371
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.btn-info,
4372
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-info, .btn-group-raised
4373
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-info {
4374
+ background-color: #5bc0de;
4375
+ color: rgba(255,255,255, 0.84); }
4376
+ .pixel-caffeine-wrapper .btn.btn-raised.btn-warning, .pixel-caffeine-wrapper .btn.btn-fab.btn-warning, .btn-group-raised .pixel-caffeine-wrapper .btn.btn-warning,
4377
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.btn-warning,
4378
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-warning, .btn-group-raised
4379
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-warning {
4380
+ background-color: #FD9C00;
4381
+ color: rgba(255,255,255, 0.84); }
4382
+ .pixel-caffeine-wrapper .btn.btn-raised.btn-danger, .pixel-caffeine-wrapper .btn.btn-fab.btn-danger, .btn-group-raised .pixel-caffeine-wrapper .btn.btn-danger,
4383
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.btn-danger,
4384
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-danger, .btn-group-raised
4385
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-danger {
4386
+ background-color: #E15667;
4387
+ color: rgba(255,255,255, 0.84); }
4388
+ .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link), .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link),
4389
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link), .btn-group-raised
4390
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link) {
4391
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }
4392
+ .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active,
4393
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover,
4394
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus,
4395
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active,
4396
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active, .btn-group-raised
4397
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover, .btn-group-raised
4398
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus, .btn-group-raised
4399
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active, .btn-group-raised
4400
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active {
4401
+ outline: 0; }
4402
+ .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover.btn-default, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.btn-default, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active.btn-default, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active.btn-default, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover.btn-default, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.btn-default, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active.btn-default, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active.btn-default,
4403
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover,
4404
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover.btn-default,
4405
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus,
4406
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.btn-default,
4407
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active,
4408
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active.btn-default,
4409
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active,
4410
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active.btn-default, .btn-group-raised
4411
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover, .btn-group-raised
4412
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover.btn-default, .btn-group-raised
4413
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus, .btn-group-raised
4414
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.btn-default, .btn-group-raised
4415
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active, .btn-group-raised
4416
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active.btn-default, .btn-group-raised
4417
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active, .btn-group-raised
4418
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active.btn-default {
4419
+ background-color: rgba(10, 10, 10, 0); }
4420
+ .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover.btn-inverse, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.btn-inverse, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active.btn-inverse, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active.btn-inverse, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover.btn-inverse, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.btn-inverse, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active.btn-inverse, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active.btn-inverse,
4421
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover.btn-inverse,
4422
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.btn-inverse,
4423
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active.btn-inverse,
4424
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active.btn-inverse, .btn-group-raised
4425
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover.btn-inverse, .btn-group-raised
4426
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.btn-inverse, .btn-group-raised
4427
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active.btn-inverse, .btn-group-raised
4428
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active.btn-inverse {
4429
+ background-color: #495bc0; }
4430
+ .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover.btn-primary, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.btn-primary, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active.btn-primary, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active.btn-primary, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover.btn-primary, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.btn-primary, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active.btn-primary, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active.btn-primary,
4431
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover.btn-primary,
4432
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.btn-primary,
4433
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active.btn-primary,
4434
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active.btn-primary, .btn-group-raised
4435
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover.btn-primary, .btn-group-raised
4436
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.btn-primary, .btn-group-raised
4437
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active.btn-primary, .btn-group-raised
4438
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active.btn-primary {
4439
+ background-color: #5b7cc0; }
4440
+ .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover.btn-success, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.btn-success, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active.btn-success, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active.btn-success, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover.btn-success, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.btn-success, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active.btn-success, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active.btn-success,
4441
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover.btn-success,
4442
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.btn-success,
4443
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active.btn-success,
4444
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active.btn-success, .btn-group-raised
4445
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover.btn-success, .btn-group-raised
4446
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.btn-success, .btn-group-raised
4447
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active.btn-success, .btn-group-raised
4448
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active.btn-success {
4449
+ background-color: #5d991d; }
4450
+ .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover.btn-info, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.btn-info, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active.btn-info, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active.btn-info, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover.btn-info, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.btn-info, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active.btn-info, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active.btn-info,
4451
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover.btn-info,
4452
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.btn-info,
4453
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active.btn-info,
4454
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active.btn-info, .btn-group-raised
4455
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover.btn-info, .btn-group-raised
4456
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.btn-info, .btn-group-raised
4457
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active.btn-info, .btn-group-raised
4458
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active.btn-info {
4459
+ background-color: #6cc7e1; }
4460
+ .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover.btn-warning, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.btn-warning, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active.btn-warning, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active.btn-warning, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover.btn-warning, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.btn-warning, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active.btn-warning, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active.btn-warning,
4461
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover.btn-warning,
4462
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.btn-warning,
4463
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active.btn-warning,
4464
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active.btn-warning, .btn-group-raised
4465
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover.btn-warning, .btn-group-raised
4466
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.btn-warning, .btn-group-raised
4467
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active.btn-warning, .btn-group-raised
4468
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active.btn-warning {
4469
+ background-color: #e98f00; }
4470
+ .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover.btn-danger, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.btn-danger, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active.btn-danger, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active.btn-danger, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover.btn-danger, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.btn-danger, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active.btn-danger, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active.btn-danger,
4471
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover.btn-danger,
4472
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.btn-danger,
4473
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active.btn-danger,
4474
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active.btn-danger, .btn-group-raised
4475
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover.btn-danger, .btn-group-raised
4476
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.btn-danger, .btn-group-raised
4477
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active.btn-danger, .btn-group-raised
4478
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active.btn-danger {
4479
+ background-color: #e46777; }
4480
+ .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active:hover, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active:hover, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active:hover, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active:hover,
4481
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active,
4482
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active:hover,
4483
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active,
4484
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active:hover, .btn-group-raised
4485
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active, .btn-group-raised
4486
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active:hover, .btn-group-raised
4487
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active, .btn-group-raised
4488
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active:hover {
4489
+ box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2); }
4490
+ .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus:hover, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.active, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.active:hover, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus:active, .pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus:active:hover, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus:hover, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.active, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.active:hover, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus:active, .btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus:active:hover,
4491
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus,
4492
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus:hover,
4493
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.active,
4494
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.active:hover,
4495
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus:active,
4496
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus:active:hover, .btn-group-raised
4497
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus, .btn-group-raised
4498
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus:hover, .btn-group-raised
4499
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.active, .btn-group-raised
4500
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.active:hover, .btn-group-raised
4501
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus:active, .btn-group-raised
4502
+ .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus:active:hover {
4503
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36); }
4504
+ .pixel-caffeine-wrapper .btn.btn-fab,
4505
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab {
4506
+ border-radius: 50%;
4507
+ font-size: 24px;
4508
+ height: 40px;
4509
+ margin: auto;
4510
+ min-width: 40px;
4511
+ width: 40px;
4512
+ padding: 0;
4513
+ overflow: hidden;
4514
+ box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, 0.12), 0 1px 1px 0 rgba(0, 0, 0, 0.24);
4515
+ position: relative;
4516
+ line-height: normal; }
4517
+ .pixel-caffeine-wrapper .btn.btn-fab .ripple-container,
4518
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab .ripple-container {
4519
+ border-radius: 50%; }
4520
+ .pixel-caffeine-wrapper .btn.btn-fab.btn-fab-mini, .btn-group-sm .pixel-caffeine-wrapper .btn.btn-fab,
4521
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-fab-mini, .btn-group-sm
4522
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab {
4523
+ height: 28px;
4524
+ min-width: 28px;
4525
+ width: 28px; }
4526
+ .pixel-caffeine-wrapper .btn.btn-fab.btn-fab-mini.material-icons, .btn-group-sm .pixel-caffeine-wrapper .btn.btn-fab.material-icons,
4527
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-fab-mini.material-icons, .btn-group-sm
4528
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.material-icons {
4529
+ top: 0px;
4530
+ left: 0px; }
4531
+ .pixel-caffeine-wrapper .btn.btn-fab i.material-icons,
4532
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab i.material-icons {
4533
+ position: absolute;
4534
+ top: 50%;
4535
+ left: 50%;
4536
+ transform: translate(-12px, -12px);
4537
+ line-height: 24px;
4538
+ width: 24px; }
4539
+ .pixel-caffeine-wrapper .btn i.material-icons,
4540
+ .pixel-caffeine-wrapper .input-group-btn .btn i.material-icons {
4541
+ vertical-align: middle; }
4542
+ .pixel-caffeine-wrapper .btn.btn-lg, .pixel-caffeine-wrapper .btn-group-lg > .btn, .btn-group-lg .pixel-caffeine-wrapper .btn,
4543
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-lg,
4544
+ .pixel-caffeine-wrapper .input-group-btn .btn-group-lg > .btn, .btn-group-lg
4545
+ .pixel-caffeine-wrapper .input-group-btn .btn {
4546
+ font-size: 16px; }
4547
+ .pixel-caffeine-wrapper .btn.btn-sm, .pixel-caffeine-wrapper .btn-group-sm > .btn, .btn-group-sm .pixel-caffeine-wrapper .btn,
4548
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-sm,
4549
+ .pixel-caffeine-wrapper .input-group-btn .btn-group-sm > .btn, .btn-group-sm
4550
+ .pixel-caffeine-wrapper .input-group-btn .btn {
4551
+ padding: 5px 20px;
4552
+ font-size: 12px; }
4553
+ .pixel-caffeine-wrapper .btn.btn-xs, .pixel-caffeine-wrapper .btn-group-xs > .btn, .btn-group-xs .pixel-caffeine-wrapper .btn,
4554
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-xs,
4555
+ .pixel-caffeine-wrapper .input-group-btn .btn-group-xs > .btn, .btn-group-xs
4556
+ .pixel-caffeine-wrapper .input-group-btn .btn {
4557
+ padding: 4px 15px;
4558
+ font-size: 10px; }
4559
+ fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn, .pixel-caffeine-wrapper .btn.disabled, .pixel-caffeine-wrapper .btn:disabled, .pixel-caffeine-wrapper .btn[disabled][disabled], fieldset[disabled][disabled]
4560
+ .pixel-caffeine-wrapper .input-group-btn .btn,
4561
+ .pixel-caffeine-wrapper .input-group-btn .btn.disabled,
4562
+ .pixel-caffeine-wrapper .input-group-btn .btn:disabled,
4563
+ .pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled], fieldset[disabled][disabled]
4564
+ .pixel-caffeine-wrapper .btn-group,
4565
+ .pixel-caffeine-wrapper .btn-group.disabled,
4566
+ .pixel-caffeine-wrapper .btn-group:disabled,
4567
+ .pixel-caffeine-wrapper .btn-group[disabled][disabled], fieldset[disabled][disabled]
4568
+ .pixel-caffeine-wrapper .btn-group-vertical,
4569
+ .pixel-caffeine-wrapper .btn-group-vertical.disabled,
4570
+ .pixel-caffeine-wrapper .btn-group-vertical:disabled,
4571
+ .pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled] {
4572
+ color: rgba(0, 0, 0, 0.26);
4573
+ background: transparent; }
4574
+ .theme-dark fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn, .theme-dark .pixel-caffeine-wrapper .btn.disabled, .theme-dark .pixel-caffeine-wrapper .btn:disabled, .theme-dark .pixel-caffeine-wrapper .btn[disabled][disabled], .theme-dark fieldset[disabled][disabled]
4575
+ .pixel-caffeine-wrapper .input-group-btn .btn, .theme-dark
4576
+ .pixel-caffeine-wrapper .input-group-btn .btn.disabled, .theme-dark
4577
+ .pixel-caffeine-wrapper .input-group-btn .btn:disabled, .theme-dark
4578
+ .pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled], .theme-dark fieldset[disabled][disabled]
4579
+ .pixel-caffeine-wrapper .btn-group, .theme-dark
4580
+ .pixel-caffeine-wrapper .btn-group.disabled, .theme-dark
4581
+ .pixel-caffeine-wrapper .btn-group:disabled, .theme-dark
4582
+ .pixel-caffeine-wrapper .btn-group[disabled][disabled], .theme-dark fieldset[disabled][disabled]
4583
+ .pixel-caffeine-wrapper .btn-group-vertical, .theme-dark
4584
+ .pixel-caffeine-wrapper .btn-group-vertical.disabled, .theme-dark
4585
+ .pixel-caffeine-wrapper .btn-group-vertical:disabled, .theme-dark
4586
+ .pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled] {
4587
+ color: rgba(255, 255, 255, 0.3); }
4588
+ fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-raised, fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-raised.active, fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-raised:active, fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-raised:focus:not(:active), fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-group-raised, fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-group-raised.active, fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-group-raised:active, fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-group-raised:focus:not(:active), .pixel-caffeine-wrapper .btn.disabled.btn-raised, .pixel-caffeine-wrapper .btn.disabled.btn-raised.active, .pixel-caffeine-wrapper .btn.disabled.btn-raised:active, .pixel-caffeine-wrapper .btn.disabled.btn-raised:focus:not(:active), .pixel-caffeine-wrapper .btn.disabled.btn-group-raised, .pixel-caffeine-wrapper .btn.disabled.btn-group-raised.active, .pixel-caffeine-wrapper .btn.disabled.btn-group-raised:active, .pixel-caffeine-wrapper .btn.disabled.btn-group-raised:focus:not(:active), .pixel-caffeine-wrapper .btn:disabled.btn-raised, .pixel-caffeine-wrapper .btn:disabled.btn-raised.active, .pixel-caffeine-wrapper .btn:disabled.btn-raised:active, .pixel-caffeine-wrapper .btn:disabled.btn-raised:focus:not(:active), .pixel-caffeine-wrapper .btn:disabled.btn-group-raised, .pixel-caffeine-wrapper .btn:disabled.btn-group-raised.active, .pixel-caffeine-wrapper .btn:disabled.btn-group-raised:active, .pixel-caffeine-wrapper .btn:disabled.btn-group-raised:focus:not(:active), .pixel-caffeine-wrapper .btn[disabled][disabled].btn-raised, .pixel-caffeine-wrapper .btn[disabled][disabled].btn-raised.active, .pixel-caffeine-wrapper .btn[disabled][disabled].btn-raised:active, .pixel-caffeine-wrapper .btn[disabled][disabled].btn-raised:focus:not(:active), .pixel-caffeine-wrapper .btn[disabled][disabled].btn-group-raised, .pixel-caffeine-wrapper .btn[disabled][disabled].btn-group-raised.active, .pixel-caffeine-wrapper .btn[disabled][disabled].btn-group-raised:active, .pixel-caffeine-wrapper .btn[disabled][disabled].btn-group-raised:focus:not(:active), fieldset[disabled][disabled]
4589
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised, fieldset[disabled][disabled]
4590
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.active, fieldset[disabled][disabled]
4591
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:active, fieldset[disabled][disabled]
4592
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:focus:not(:active), fieldset[disabled][disabled]
4593
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-group-raised, fieldset[disabled][disabled]
4594
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-group-raised.active, fieldset[disabled][disabled]
4595
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-group-raised:active, fieldset[disabled][disabled]
4596
+ .pixel-caffeine-wrapper .input-group-btn .btn.btn-group-raised:focus:not(:active),
4597
+ .pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-raised,
4598
+ .pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-raised.active,
4599
+ .pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-raised:active,
4600
+ .pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-raised:focus:not(:active),
4601
+ .pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-group-raised,
4602
+ .pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-group-raised.active,
4603
+ .pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-group-raised:active,
4604
+ .pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-group-raised:focus:not(:active),
4605
+ .pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-raised,
4606
+ .pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-raised.active,
4607
+ .pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-raised:active,
4608
+ .pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-raised:focus:not(:active),
4609
+ .pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-group-raised,
4610
+ .pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-group-raised.active,
4611
+ .pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-group-raised:active,
4612
+ .pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-group-raised:focus:not(:active),
4613
+ .pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-raised,
4614
+ .pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-raised.active,
4615
+ .pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-raised:active,
4616
+ .pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-raised:focus:not(:active),
4617
+ .pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-group-raised,
4618
+ .pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-group-raised.active,
4619
+ .pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-group-raised:active,
4620
+ .pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-group-raised:focus:not(:active), fieldset[disabled][disabled]
4621
+ .pixel-caffeine-wrapper .btn-group.btn-raised, fieldset[disabled][disabled]
4622
+ .pixel-caffeine-wrapper .btn-group.btn-raised.active, fieldset[disabled][disabled]
4623
+ .pixel-caffeine-wrapper .btn-group.btn-raised:active, fieldset[disabled][disabled]
4624
+ .pixel-caffeine-wrapper .btn-group.btn-raised:focus:not(:active), fieldset[disabled][disabled]
4625
+ .pixel-caffeine-wrapper .btn-group.btn-group-raised, fieldset[disabled][disabled]
4626
+ .pixel-caffeine-wrapper .btn-group.btn-group-raised.active, fieldset[disabled][disabled]
4627
+ .pixel-caffeine-wrapper .btn-group.btn-group-raised:active, fieldset[disabled][disabled]
4628
+ .pixel-caffeine-wrapper .btn-group.btn-group-raised:focus:not(:active),
4629
+ .pixel-caffeine-wrapper .btn-group.disabled.btn-raised,
4630
+ .pixel-caffeine-wrapper .btn-group.disabled.btn-raised.active,
4631
+ .pixel-caffeine-wrapper .btn-group.disabled.btn-raised:active,
4632
+ .pixel-caffeine-wrapper .btn-group.disabled.btn-raised:focus:not(:active),
4633
+ .pixel-caffeine-wrapper .btn-group.disabled.btn-group-raised,
4634
+ .pixel-caffeine-wrapper .btn-group.disabled.btn-group-raised.active,
4635
+ .pixel-caffeine-wrapper .btn-group.disabled.btn-group-raised:active,
4636
+ .pixel-caffeine-wrapper .btn-group.disabled.btn-group-raised:focus:not(:active),
4637
+ .pixel-caffeine-wrapper .btn-group:disabled.btn-raised,
4638
+ .pixel-caffeine-wrapper .btn-group:disabled.btn-raised.active,
4639
+ .pixel-caffeine-wrapper .btn-group:disabled.btn-raised:active,
4640
+ .pixel-caffeine-wrapper .btn-group:disabled.btn-raised:focus:not(:active),
4641
+ .pixel-caffeine-wrapper .btn-group:disabled.btn-group-raised,
4642
+ .pixel-caffeine-wrapper .btn-group:disabled.btn-group-raised.active,
4643
+ .pixel-caffeine-wrapper .btn-group:disabled.btn-group-raised:active,
4644
+ .pixel-caffeine-wrapper .btn-group:disabled.btn-group-raised:focus:not(:active),
4645
+ .pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-raised,
4646
+ .pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-raised.active,
4647
+ .pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-raised:active,
4648
+ .pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-raised:focus:not(:active),
4649
+ .pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-group-raised,
4650
+ .pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-group-raised.active,
4651
+ .pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-group-raised:active,
4652
+ .pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-group-raised:focus:not(:active), fieldset[disabled][disabled]
4653
+ .pixel-caffeine-wrapper .btn-group-vertical.btn-raised, fieldset[disabled][disabled]
4654
+ .pixel-caffeine-wrapper .btn-group-vertical.btn-raised.active, fieldset[disabled][disabled]
4655
+ .pixel-caffeine-wrapper .btn-group-vertical.btn-raised:active, fieldset[disabled][disabled]
4656
+ .pixel-caffeine-wrapper .btn-group-vertical.btn-raised:focus:not(:active), fieldset[disabled][disabled]
4657
+ .pixel-caffeine-wrapper .btn-group-vertical.btn-group-raised, fieldset[disabled][disabled]
4658
+ .pixel-caffeine-wrapper .btn-group-vertical.btn-group-raised.active, fieldset[disabled][disabled]
4659
+ .pixel-caffeine-wrapper .btn-group-vertical.btn-group-raised:active, fieldset[disabled][disabled]
4660
+ .pixel-caffeine-wrapper .btn-group-vertical.btn-group-raised:focus:not(:active),
4661
+ .pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-raised,
4662
+ .pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-raised.active,
4663
+ .pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-raised:active,
4664
+ .pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-raised:focus:not(:active),
4665
+ .pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-group-raised,
4666
+ .pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-group-raised.active,
4667
+ .pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-group-raised:active,
4668
+ .pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-group-raised:focus:not(:active),
4669
+ .pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-raised,
4670
+ .pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-raised.active,
4671
+ .pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-raised:active,
4672
+ .pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-raised:focus:not(:active),
4673
+ .pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-group-raised,
4674
+ .pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-group-raised.active,
4675
+ .pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-group-raised:active,
4676
+ .pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-group-raised:focus:not(:active),
4677
+ .pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-raised,
4678
+ .pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-raised.active,
4679
+ .pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-raised:active,
4680
+ .pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-raised:focus:not(:active),
4681
+ .pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-group-raised,
4682
+ .pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-group-raised.active,
4683
+ .pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-group-raised:active,
4684
+ .pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-group-raised:focus:not(:active) {
4685
+ box-shadow: none; }
4686
+ .pixel-caffeine-wrapper .btn-group,
4687
+ .pixel-caffeine-wrapper .btn-group-vertical {
4688
+ position: relative;
4689
+ margin: 10px 1px; }
4690
+ .pixel-caffeine-wrapper .btn-group.open > .dropdown-toggle.btn, .pixel-caffeine-wrapper .btn-group.open > .dropdown-toggle.btn.btn-default,
4691
+ .pixel-caffeine-wrapper .btn-group-vertical.open > .dropdown-toggle.btn,
4692
+ .pixel-caffeine-wrapper .btn-group-vertical.open > .dropdown-toggle.btn.btn-default {
4693
+ background-color: transparent; }
4694
+ .pixel-caffeine-wrapper .btn-group.open > .dropdown-toggle.btn.btn-inverse,
4695
+ .pixel-caffeine-wrapper .btn-group-vertical.open > .dropdown-toggle.btn.btn-inverse {
4696
+ background-color: #3f51b5; }
4697
+ .pixel-caffeine-wrapper .btn-group.open > .dropdown-toggle.btn.btn-primary,
4698
+ .pixel-caffeine-wrapper .btn-group-vertical.open > .dropdown-toggle.btn.btn-primary {
4699
+ background-color: #4C70BA; }
4700
+ .pixel-caffeine-wrapper .btn-group.open > .dropdown-toggle.btn.btn-success,
4701
+ .pixel-caffeine-wrapper .btn-group-vertical.open > .dropdown-toggle.btn.btn-success {
4702
+ background-color: #68AA20; }
4703
+ .pixel-caffeine-wrapper .btn-group.open > .dropdown-toggle.btn.btn-info,
4704
+ .pixel-caffeine-wrapper .btn-group-vertical.open > .dropdown-toggle.btn.btn-info {
4705
+ background-color: #5bc0de; }
4706
+ .pixel-caffeine-wrapper .btn-group.open > .dropdown-toggle.btn.btn-warning,
4707
+ .pixel-caffeine-wrapper .btn-group-vertical.open > .dropdown-toggle.btn.btn-warning {
4708
+ background-color: #FD9C00; }
4709
+ .pixel-caffeine-wrapper .btn-group.open > .dropdown-toggle.btn.btn-danger,
4710
+ .pixel-caffeine-wrapper .btn-group-vertical.open > .dropdown-toggle.btn.btn-danger {
4711
+ background-color: #E15667; }
4712
+ .pixel-caffeine-wrapper .btn-group .dropdown-menu,
4713
+ .pixel-caffeine-wrapper .btn-group-vertical .dropdown-menu {
4714
+ border-radius: 0 0 4px 4px; }
4715
+ .pixel-caffeine-wrapper .btn-group.btn-group-raised,
4716
+ .pixel-caffeine-wrapper .btn-group-vertical.btn-group-raised {
4717
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }
4718
+ .pixel-caffeine-wrapper .btn-group .btn + .btn,
4719
+ .pixel-caffeine-wrapper .btn-group .btn,
4720
+ .pixel-caffeine-wrapper .btn-group .btn:active,
4721
+ .pixel-caffeine-wrapper .btn-group .btn-group,
4722
+ .pixel-caffeine-wrapper .btn-group-vertical .btn + .btn,
4723
+ .pixel-caffeine-wrapper .btn-group-vertical .btn,
4724
+ .pixel-caffeine-wrapper .btn-group-vertical .btn:active,
4725
+ .pixel-caffeine-wrapper .btn-group-vertical .btn-group {
4726
+ margin: 0; }
4727
+ .pixel-caffeine-wrapper .checkbox label,
4728
+ .pixel-caffeine-wrapper label.checkbox-inline {
4729
+ cursor: pointer;
4730
+ padding-left: 0;
4731
+ color: rgba(0,0,0, 0.26); }
4732
+ .form-group.is-focused .pixel-caffeine-wrapper .checkbox label, .form-group.is-focused
4733
+ .pixel-caffeine-wrapper label.checkbox-inline {
4734
+ color: rgba(0,0,0, 0.26); }
4735
+ .form-group.is-focused .pixel-caffeine-wrapper .checkbox label:hover, .form-group.is-focused .pixel-caffeine-wrapper .checkbox label:focus, .form-group.is-focused
4736
+ .pixel-caffeine-wrapper label.checkbox-inline:hover, .form-group.is-focused
4737
+ .pixel-caffeine-wrapper label.checkbox-inline:focus {
4738
+ color: rgba(0,0,0, .54); }
4739
+ fieldset[disabled] .form-group.is-focused .pixel-caffeine-wrapper .checkbox label, fieldset[disabled] .form-group.is-focused
4740
+ .pixel-caffeine-wrapper label.checkbox-inline {
4741
+ color: rgba(0,0,0, 0.26); }
4742
+ .pixel-caffeine-wrapper .checkbox input[type=checkbox],
4743
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox] {
4744
+ opacity: 0;
4745
+ position: absolute;
4746
+ margin: 0;
4747
+ z-index: -1;
4748
+ width: 0;
4749
+ height: 0;
4750
+ overflow: hidden;
4751
+ left: 0;
4752
+ pointer-events: none; }
4753
+ .pixel-caffeine-wrapper .checkbox .checkbox-material,
4754
+ .pixel-caffeine-wrapper label.checkbox-inline .checkbox-material {
4755
+ vertical-align: middle;
4756
+ position: relative;
4757
+ top: 3px; }
4758
+ .pixel-caffeine-wrapper .checkbox .checkbox-material:before,
4759
+ .pixel-caffeine-wrapper label.checkbox-inline .checkbox-material:before {
4760
+ display: block;
4761
+ position: absolute;
4762
+ top: -5px;
4763
+ left: 0;
4764
+ content: "";
4765
+ background-color: rgba(0, 0, 0, 0.84);
4766
+ height: 20px;
4767
+ width: 20px;
4768
+ border-radius: 100%;
4769
+ z-index: 1;
4770
+ opacity: 0;
4771
+ margin: 0;
4772
+ transform: scale3d(2.3, 2.3, 1); }
4773
+ .pixel-caffeine-wrapper .checkbox .checkbox-material .check,
4774
+ .pixel-caffeine-wrapper label.checkbox-inline .checkbox-material .check {
4775
+ position: relative;
4776
+ display: inline-block;
4777
+ width: 20px;
4778
+ height: 20px;
4779
+ border: 2px solid rgba(0,0,0, .54);
4780
+ border-radius: 4px;
4781
+ overflow: hidden;
4782
+ z-index: 1; }
4783
+ .pixel-caffeine-wrapper .checkbox .checkbox-material .check:before,
4784
+ .pixel-caffeine-wrapper label.checkbox-inline .checkbox-material .check:before {
4785
+ position: absolute;
4786
+ content: "";
4787
+ transform: rotate(45deg);
4788
+ display: block;
4789
+ margin-top: -4px;
4790
+ margin-left: 6px;
4791
+ width: 0;
4792
+ height: 0;
4793
+ box-shadow: 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0 inset; }
4794
+ .pixel-caffeine-wrapper .checkbox input[type=checkbox]:focus + .checkbox-material .check:after,
4795
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:focus + .checkbox-material .check:after {
4796
+ opacity: 0.2; }
4797
+ .pixel-caffeine-wrapper .checkbox input[type=checkbox]:focus:checked + .checkbox-material:before,
4798
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:focus:checked + .checkbox-material:before {
4799
+ animation: rippleOn 500ms; }
4800
+ .pixel-caffeine-wrapper .checkbox input[type=checkbox]:focus:checked + .checkbox-material .check:before,
4801
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:focus:checked + .checkbox-material .check:before {
4802
+ animation: checkbox-on 0.3s forwards; }
4803
+ .pixel-caffeine-wrapper .checkbox input[type=checkbox]:focus:checked + .checkbox-material .check:after,
4804
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:focus:checked + .checkbox-material .check:after {
4805
+ animation: rippleOn 500ms forwards; }
4806
+ .pixel-caffeine-wrapper .checkbox input[type=checkbox]:focus:not(:checked) + .checkbox-material:before,
4807
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:focus:not(:checked) + .checkbox-material:before {
4808
+ animation: rippleOff 500ms; }
4809
+ .pixel-caffeine-wrapper .checkbox input[type=checkbox]:focus:not(:checked) + .checkbox-material .check:before,
4810
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:focus:not(:checked) + .checkbox-material .check:before {
4811
+ animation: checkbox-off 0.3s forwards; }
4812
+ .pixel-caffeine-wrapper .checkbox input[type=checkbox]:focus:not(:checked) + .checkbox-material .check:after,
4813
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:focus:not(:checked) + .checkbox-material .check:after {
4814
+ animation: rippleOff 500ms forwards; }
4815
+ .pixel-caffeine-wrapper .checkbox input[type=checkbox]:checked + .checkbox-material .check,
4816
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:checked + .checkbox-material .check {
4817
+ color: #4C70BA;
4818
+ border-color: #4C70BA; }
4819
+ .pixel-caffeine-wrapper .checkbox input[type=checkbox]:checked + .checkbox-material .check:before,
4820
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:checked + .checkbox-material .check:before {
4821
+ color: #4C70BA;
4822
+ box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px; }
4823
+ fieldset[disabled] .pixel-caffeine-wrapper .checkbox, fieldset[disabled] .pixel-caffeine-wrapper .checkbox input[type=checkbox],
4824
+ .pixel-caffeine-wrapper .checkbox input[type=checkbox][disabled]:not(:checked) ~ .checkbox-material .check:before,
4825
+ .pixel-caffeine-wrapper .checkbox input[type=checkbox][disabled]:not(:checked) ~ .checkbox-material .check,
4826
+ .pixel-caffeine-wrapper .checkbox input[type=checkbox][disabled] + .circle, fieldset[disabled]
4827
+ .pixel-caffeine-wrapper label.checkbox-inline, fieldset[disabled]
4828
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox],
4829
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox][disabled]:not(:checked) ~ .checkbox-material .check:before,
4830
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox][disabled]:not(:checked) ~ .checkbox-material .check,
4831
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox][disabled] + .circle {
4832
+ opacity: 0.5; }
4833
+ .pixel-caffeine-wrapper .checkbox input[type=checkbox][disabled] + .checkbox-material .check:after,
4834
+ .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox][disabled] + .checkbox-material .check:after {
4835
+ background-color: rgba(0,0,0, 0.87);
4836
+ transform: rotate(-45deg); }
4837
+ @keyframes checkbox-on {
4838
+ 0% {
4839
+ box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 15px 2px 0 11px; }
4840
+ 50% {
4841
+ box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px 2px 0 11px; }
4842
+ 100% {
4843
+ box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px; } }
4844
+ @keyframes checkbox-off {
4845
+ 0% {
4846
+ box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px, 0 0 0 0 inset; }
4847
+ 25% {
4848
+ box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 20px -12px 0 11px, 0 0 0 0 inset; }
4849
+ 50% {
4850
+ transform: rotate(45deg);
4851
+ margin-top: -4px;
4852
+ margin-left: 6px;
4853
+ width: 0;
4854
+ height: 0;
4855
+ box-shadow: 0 0 0 10px, 10px -10px 0 10px, 32px 0 0 20px, 0px 32px 0 20px, -5px 5px 0 10px, 15px 2px 0 11px, 0 0 0 0 inset; }
4856
+ 51% {
4857
+ transform: rotate(0deg);
4858
+ margin-top: -2px;
4859
+ margin-left: -2px;
4860
+ width: 20px;
4861
+ height: 20px;
4862
+ box-shadow: 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0px 0 0 10px inset; }
4863
+ 100% {
4864
+ transform: rotate(0deg);
4865
+ margin-top: -2px;
4866
+ margin-left: -2px;
4867
+ width: 20px;
4868
+ height: 20px;
4869
+ box-shadow: 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0 0 0 0, 0px 0 0 0 inset; } }
4870
+ @keyframes rippleOn {
4871
+ 0% {
4872
+ opacity: 0; }
4873
+ 50% {
4874
+ opacity: 0.2; }
4875
+ 100% {
4876
+ opacity: 0; } }
4877
+ @keyframes rippleOff {
4878
+ 0% {
4879
+ opacity: 0; }
4880
+ 50% {
4881
+ opacity: 0.2; }
4882
+ 100% {
4883
+ opacity: 0; } }
4884
+ .pixel-caffeine-wrapper .togglebutton {
4885
+ vertical-align: middle; }
4886
+ .pixel-caffeine-wrapper .togglebutton, .pixel-caffeine-wrapper .togglebutton label, .pixel-caffeine-wrapper .togglebutton input, .pixel-caffeine-wrapper .togglebutton .toggle {
4887
+ user-select: none; }
4888
+ .pixel-caffeine-wrapper .togglebutton label {
4889
+ cursor: pointer;
4890
+ color: rgba(0,0,0, 0.26); }
4891
+ .form-group.is-focused .pixel-caffeine-wrapper .togglebutton label {
4892
+ color: rgba(0,0,0, 0.26); }
4893
+ .form-group.is-focused .pixel-caffeine-wrapper .togglebutton label:hover, .form-group.is-focused .pixel-caffeine-wrapper .togglebutton label:focus {
4894
+ color: rgba(0,0,0, .54); }
4895
+ fieldset[disabled] .form-group.is-focused .pixel-caffeine-wrapper .togglebutton label {
4896
+ color: rgba(0,0,0, 0.26); }
4897
+ .pixel-caffeine-wrapper .togglebutton label input[type=checkbox] {
4898
+ opacity: 0;
4899
+ width: 0;
4900
+ height: 0; }
4901
+ .pixel-caffeine-wrapper .togglebutton label .toggle {
4902
+ text-align: left; }
4903
+ .pixel-caffeine-wrapper .togglebutton label .toggle,
4904
+ .pixel-caffeine-wrapper .togglebutton label input[type=checkbox][disabled] + .toggle {
4905
+ content: "";
4906
+ display: inline-block;
4907
+ width: 30px;
4908
+ height: 15px;
4909
+ background-color: rgba(80, 80, 80, 0.7);
4910
+ border-radius: 15px;
4911
+ margin-right: 15px;
4912
+ transition: background 0.3s ease;
4913
+ vertical-align: middle; }
4914
+ .pixel-caffeine-wrapper .togglebutton label .toggle:after {
4915
+ content: "";
4916
+ display: inline-block;
4917
+ width: 20px;
4918
+ height: 20px;
4919
+ background-color: #F1F1F1;
4920
+ border-radius: 20px;
4921
+ position: relative;
4922
+ box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4);
4923
+ left: -5px;
4924
+ top: -2px;
4925
+ transition: left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease; }
4926
+ .pixel-caffeine-wrapper .togglebutton label input[type=checkbox][disabled] + .toggle:after, .pixel-caffeine-wrapper .togglebutton label input[type=checkbox][disabled]:checked + .toggle:after {
4927
+ background-color: #BDBDBD; }
4928
+ .pixel-caffeine-wrapper .togglebutton label input[type=checkbox] + .toggle:active:after, .pixel-caffeine-wrapper .togglebutton label input[type=checkbox][disabled] + .toggle:active:after {
4929
+ box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(0, 0, 0, 0.1); }
4930
+ .pixel-caffeine-wrapper .togglebutton label input[type=checkbox]:checked + .toggle:after {
4931
+ left: 15px; }
4932
+ .pixel-caffeine-wrapper .togglebutton label input[type=checkbox]:checked + .toggle {
4933
+ background-color: rgba(76, 112, 186, 0.5); }
4934
+ .pixel-caffeine-wrapper .togglebutton label input[type=checkbox]:checked + .toggle:after {
4935
+ background-color: #4C70BA; }
4936
+ .pixel-caffeine-wrapper .togglebutton label input[type=checkbox]:checked + .toggle:active:after {
4937
+ box-shadow: 0 1px 3px 1px rgba(0, 0, 0, 0.4), 0 0 0 15px rgba(76, 112, 186, 0.1); }
4938
+ .pixel-caffeine-wrapper .radio label, .pixel-caffeine-wrapper label.radio-inline {
4939
+ cursor: pointer;
4940
+ padding-left: 45px;
4941
+ position: relative;
4942
+ color: rgba(0,0,0, 0.26); }
4943
+ .form-group.is-focused .pixel-caffeine-wrapper .radio label, .form-group.is-focused .pixel-caffeine-wrapper label.radio-inline {
4944
+ color: rgba(0,0,0, 0.26); }
4945
+ .form-group.is-focused .pixel-caffeine-wrapper .radio label:hover, .form-group.is-focused .pixel-caffeine-wrapper .radio label:focus, .form-group.is-focused .pixel-caffeine-wrapper label.radio-inline:hover, .form-group.is-focused .pixel-caffeine-wrapper label.radio-inline:focus {
4946
+ color: rgba(0,0,0, .54); }
4947
+ fieldset[disabled] .form-group.is-focused .pixel-caffeine-wrapper .radio label, fieldset[disabled] .form-group.is-focused .pixel-caffeine-wrapper label.radio-inline {
4948
+ color: rgba(0,0,0, 0.26); }
4949
+ .pixel-caffeine-wrapper .radio span, .pixel-caffeine-wrapper label.radio-inline span {
4950
+ display: block;
4951
+ position: absolute;
4952
+ left: 10px;
4953
+ top: 2px;
4954
+ transition-duration: 0.2s; }
4955
+ .pixel-caffeine-wrapper .radio .circle, .pixel-caffeine-wrapper label.radio-inline .circle {
4956
+ border: 2px solid rgba(0,0,0, .54);
4957
+ height: 15px;
4958
+ width: 15px;
4959
+ border-radius: 100%; }
4960
+ .pixel-caffeine-wrapper .radio .check, .pixel-caffeine-wrapper label.radio-inline .check {
4961
+ height: 15px;
4962
+ width: 15px;
4963
+ border-radius: 100%;
4964
+ background-color: #4C70BA;
4965
+ transform: scale3d(0, 0, 0); }
4966
+ .pixel-caffeine-wrapper .radio .check:after, .pixel-caffeine-wrapper label.radio-inline .check:after {
4967
+ display: block;
4968
+ position: absolute;
4969
+ content: "";
4970
+ background-color: rgba(0,0,0, 0.87);
4971
+ left: -18px;
4972
+ top: -18px;
4973
+ height: 50px;
4974
+ width: 50px;
4975
+ border-radius: 100%;
4976
+ z-index: 1;
4977
+ opacity: 0;
4978
+ margin: 0;
4979
+ transform: scale3d(1.5, 1.5, 1); }
4980
+ .pixel-caffeine-wrapper .radio input[type=radio]:focus:not(:checked) ~ .check:after, .pixel-caffeine-wrapper label.radio-inline input[type=radio]:focus:not(:checked) ~ .check:after {
4981
+ animation: rippleOff 500ms; }
4982
+ .pixel-caffeine-wrapper .radio input[type=radio]:focus:checked ~ .check:after, .pixel-caffeine-wrapper label.radio-inline input[type=radio]:focus:checked ~ .check:after {
4983
+ animation: rippleOn 500ms; }
4984
+ .pixel-caffeine-wrapper .radio input[type=radio], .pixel-caffeine-wrapper label.radio-inline input[type=radio] {
4985
+ opacity: 0;
4986
+ height: 0;
4987
+ width: 0;
4988
+ overflow: hidden; }
4989
+ .pixel-caffeine-wrapper .radio input[type=radio]:checked ~ .check, .pixel-caffeine-wrapper .radio input[type=radio]:checked ~ .circle, .pixel-caffeine-wrapper label.radio-inline input[type=radio]:checked ~ .check, .pixel-caffeine-wrapper label.radio-inline input[type=radio]:checked ~ .circle {
4990
+ opacity: 1; }
4991
+ .pixel-caffeine-wrapper .radio input[type=radio]:checked ~ .check, .pixel-caffeine-wrapper label.radio-inline input[type=radio]:checked ~ .check {
4992
+ background-color: #4C70BA; }
4993
+ .pixel-caffeine-wrapper .radio input[type=radio]:checked ~ .circle, .pixel-caffeine-wrapper label.radio-inline input[type=radio]:checked ~ .circle {
4994
+ border-color: #4C70BA; }
4995
+ .pixel-caffeine-wrapper .radio input[type=radio]:checked ~ .check, .pixel-caffeine-wrapper label.radio-inline input[type=radio]:checked ~ .check {
4996
+ transform: scale3d(0.55, 0.55, 1); }
4997
+ .pixel-caffeine-wrapper .radio input[type=radio][disabled] ~ .check, .pixel-caffeine-wrapper .radio input[type=radio][disabled] ~ .circle, .pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled] ~ .check, .pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled] ~ .circle {
4998
+ opacity: 0.26; }
4999
+ .pixel-caffeine-wrapper .radio input[type=radio][disabled] ~ .check, .pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled] ~ .check {
5000
+ background-color: #444; }
5001
+ .pixel-caffeine-wrapper .radio input[type=radio][disabled] ~ .circle, .pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled] ~ .circle {
5002
+ border-color: #444; }
5003
+ .theme-dark .pixel-caffeine-wrapper .radio input[type=radio][disabled] ~ .check, .theme-dark .pixel-caffeine-wrapper .radio input[type=radio][disabled] ~ .circle, .theme-dark .pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled] ~ .check, .theme-dark .pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled] ~ .circle {
5004
+ opacity: 0.3; }
5005
+ .theme-dark .pixel-caffeine-wrapper .radio input[type=radio][disabled] ~ .check, .theme-dark .pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled] ~ .check {
5006
+ background-color: #FFF; }
5007
+ .theme-dark .pixel-caffeine-wrapper .radio input[type=radio][disabled] ~ .circle, .theme-dark .pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled] ~ .circle {
5008
+ border-color: #FFF; }
5009
+ @keyframes rippleOn {
5010
+ 0% {
5011
+ opacity: 0; }
5012
+ 50% {
5013
+ opacity: 0.2; }
5014
+ 100% {
5015
+ opacity: 0; } }
5016
+ @keyframes rippleOff {
5017
+ 0% {
5018
+ opacity: 0; }
5019
+ 50% {
5020
+ opacity: 0.2; }
5021
+ 100% {
5022
+ opacity: 0; } }
5023
+ .pixel-caffeine-wrapper legend {
5024
+ margin-bottom: 22px;
5025
+ font-size: 21px; }
5026
+ .pixel-caffeine-wrapper output {
5027
+ padding-top: 8px;
5028
+ font-size: 14px;
5029
+ line-height: 1.42857; }
5030
+ .pixel-caffeine-wrapper .form-control {
5031
+ height: 38px;
5032
+ padding: 7px 0;
5033
+ font-size: 14px;
5034
+ line-height: 1.42857; }
5035
+ @media screen and (-webkit-min-device-pixel-ratio: 0) {
5036
+ .pixel-caffeine-wrapper input[type="date"].form-control,
5037
+ .pixel-caffeine-wrapper input[type="time"].form-control,
5038
+ .pixel-caffeine-wrapper input[type="datetime-local"].form-control,
5039
+ .pixel-caffeine-wrapper input[type="month"].form-control {
5040
+ line-height: 38px; }
5041
+ .pixel-caffeine-wrapper input[type="date"].input-sm, .pixel-caffeine-wrapper .input-group-sm > input[type="date"].form-control,
5042
+ .pixel-caffeine-wrapper .input-group-sm > input[type="date"].input-group-addon,
5043
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > input[type="date"].btn, .input-group-sm .pixel-caffeine-wrapper input[type="date"],
5044
+ .pixel-caffeine-wrapper input[type="time"].input-sm,
5045
+ .pixel-caffeine-wrapper .input-group-sm > input[type="time"].form-control,
5046
+ .pixel-caffeine-wrapper .input-group-sm > input[type="time"].input-group-addon,
5047
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > input[type="time"].btn, .input-group-sm
5048
+ .pixel-caffeine-wrapper input[type="time"],
5049
+ .pixel-caffeine-wrapper input[type="datetime-local"].input-sm,
5050
+ .pixel-caffeine-wrapper .input-group-sm > input[type="datetime-local"].form-control,
5051
+ .pixel-caffeine-wrapper .input-group-sm > input[type="datetime-local"].input-group-addon,
5052
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > input[type="datetime-local"].btn, .input-group-sm
5053
+ .pixel-caffeine-wrapper input[type="datetime-local"],
5054
+ .pixel-caffeine-wrapper input[type="month"].input-sm,
5055
+ .pixel-caffeine-wrapper .input-group-sm > input[type="month"].form-control,
5056
+ .pixel-caffeine-wrapper .input-group-sm > input[type="month"].input-group-addon,
5057
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > input[type="month"].btn, .input-group-sm
5058
+ .pixel-caffeine-wrapper input[type="month"] {
5059
+ line-height: 24px; }
5060
+ .pixel-caffeine-wrapper input[type="date"].input-lg, .pixel-caffeine-wrapper .input-group-lg > input[type="date"].form-control,
5061
+ .pixel-caffeine-wrapper .input-group-lg > input[type="date"].input-group-addon,
5062
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > input[type="date"].btn, .input-group-lg .pixel-caffeine-wrapper input[type="date"],
5063
+ .pixel-caffeine-wrapper input[type="time"].input-lg,
5064
+ .pixel-caffeine-wrapper .input-group-lg > input[type="time"].form-control,
5065
+ .pixel-caffeine-wrapper .input-group-lg > input[type="time"].input-group-addon,
5066
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > input[type="time"].btn, .input-group-lg
5067
+ .pixel-caffeine-wrapper input[type="time"],
5068
+ .pixel-caffeine-wrapper input[type="datetime-local"].input-lg,
5069
+ .pixel-caffeine-wrapper .input-group-lg > input[type="datetime-local"].form-control,
5070
+ .pixel-caffeine-wrapper .input-group-lg > input[type="datetime-local"].input-group-addon,
5071
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > input[type="datetime-local"].btn, .input-group-lg
5072
+ .pixel-caffeine-wrapper input[type="datetime-local"],
5073
+ .pixel-caffeine-wrapper input[type="month"].input-lg,
5074
+ .pixel-caffeine-wrapper .input-group-lg > input[type="month"].form-control,
5075
+ .pixel-caffeine-wrapper .input-group-lg > input[type="month"].input-group-addon,
5076
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > input[type="month"].btn, .input-group-lg
5077
+ .pixel-caffeine-wrapper input[type="month"] {
5078
+ line-height: 44px; } }
5079
+ .pixel-caffeine-wrapper .radio label,
5080
+ .pixel-caffeine-wrapper .checkbox label {
5081
+ min-height: 22px; }
5082
+ .pixel-caffeine-wrapper .form-control-static {
5083
+ padding-top: 8px;
5084
+ padding-bottom: 8px;
5085
+ min-height: 36px; }
5086
+ .pixel-caffeine-wrapper .input-sm .input-sm, .pixel-caffeine-wrapper .input-group-sm > .form-control .input-sm,
5087
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon .input-sm,
5088
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn .input-sm, .pixel-caffeine-wrapper .input-sm .input-group-sm > .form-control, .pixel-caffeine-wrapper .input-group-sm > .form-control .input-group-sm > .form-control,
5089
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon .input-group-sm > .form-control,
5090
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn .input-group-sm > .form-control,
5091
+ .pixel-caffeine-wrapper .input-sm .input-group-sm > .input-group-addon,
5092
+ .pixel-caffeine-wrapper .input-group-sm > .form-control .input-group-sm > .input-group-addon,
5093
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon .input-group-sm > .input-group-addon,
5094
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn .input-group-sm > .input-group-addon,
5095
+ .pixel-caffeine-wrapper .input-sm .input-group-sm > .input-group-btn > .btn,
5096
+ .pixel-caffeine-wrapper .input-group-sm > .form-control .input-group-sm > .input-group-btn > .btn,
5097
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon .input-group-sm > .input-group-btn > .btn,
5098
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn .input-group-sm > .input-group-btn > .btn {
5099
+ height: 24px;
5100
+ padding: 3px 0;
5101
+ font-size: 11px;
5102
+ line-height: 1.5;
5103
+ border-radius: 0; }
5104
+ .pixel-caffeine-wrapper .input-sm select.input-sm, .pixel-caffeine-wrapper .input-group-sm > .form-control select.input-sm,
5105
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon select.input-sm,
5106
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn select.input-sm, .pixel-caffeine-wrapper .input-sm .input-group-sm > select.form-control, .pixel-caffeine-wrapper .input-group-sm > .form-control .input-group-sm > select.form-control,
5107
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon .input-group-sm > select.form-control,
5108
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn .input-group-sm > select.form-control,
5109
+ .pixel-caffeine-wrapper .input-sm .input-group-sm > select.input-group-addon,
5110
+ .pixel-caffeine-wrapper .input-group-sm > .form-control .input-group-sm > select.input-group-addon,
5111
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon .input-group-sm > select.input-group-addon,
5112
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn .input-group-sm > select.input-group-addon,
5113
+ .pixel-caffeine-wrapper .input-sm .input-group-sm > .input-group-btn > select.btn,
5114
+ .pixel-caffeine-wrapper .input-group-sm > .form-control .input-group-sm > .input-group-btn > select.btn,
5115
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon .input-group-sm > .input-group-btn > select.btn,
5116
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn .input-group-sm > .input-group-btn > select.btn {
5117
+ height: 24px;
5118
+ line-height: 24px; }
5119
+ .pixel-caffeine-wrapper .input-sm textarea.input-sm, .pixel-caffeine-wrapper .input-group-sm > .form-control textarea.input-sm,
5120
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon textarea.input-sm,
5121
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn textarea.input-sm, .pixel-caffeine-wrapper .input-sm .input-group-sm > textarea.form-control, .pixel-caffeine-wrapper .input-group-sm > .form-control .input-group-sm > textarea.form-control,
5122
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon .input-group-sm > textarea.form-control,
5123
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn .input-group-sm > textarea.form-control,
5124
+ .pixel-caffeine-wrapper .input-sm .input-group-sm > textarea.input-group-addon,
5125
+ .pixel-caffeine-wrapper .input-group-sm > .form-control .input-group-sm > textarea.input-group-addon,
5126
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon .input-group-sm > textarea.input-group-addon,
5127
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn .input-group-sm > textarea.input-group-addon,
5128
+ .pixel-caffeine-wrapper .input-sm .input-group-sm > .input-group-btn > textarea.btn,
5129
+ .pixel-caffeine-wrapper .input-group-sm > .form-control .input-group-sm > .input-group-btn > textarea.btn,
5130
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon .input-group-sm > .input-group-btn > textarea.btn,
5131
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn .input-group-sm > .input-group-btn > textarea.btn,
5132
+ .pixel-caffeine-wrapper .input-sm select[multiple].input-sm,
5133
+ .pixel-caffeine-wrapper .input-group-sm > .form-control select[multiple].input-sm,
5134
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon select[multiple].input-sm,
5135
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn select[multiple].input-sm,
5136
+ .pixel-caffeine-wrapper .input-sm .input-group-sm > select[multiple].form-control,
5137
+ .pixel-caffeine-wrapper .input-group-sm > .form-control .input-group-sm > select[multiple].form-control,
5138
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon .input-group-sm > select[multiple].form-control,
5139
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn .input-group-sm > select[multiple].form-control,
5140
+ .pixel-caffeine-wrapper .input-sm .input-group-sm > select[multiple].input-group-addon,
5141
+ .pixel-caffeine-wrapper .input-group-sm > .form-control .input-group-sm > select[multiple].input-group-addon,
5142
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon .input-group-sm > select[multiple].input-group-addon,
5143
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn .input-group-sm > select[multiple].input-group-addon,
5144
+ .pixel-caffeine-wrapper .input-sm .input-group-sm > .input-group-btn > select[multiple].btn,
5145
+ .pixel-caffeine-wrapper .input-group-sm > .form-control .input-group-sm > .input-group-btn > select[multiple].btn,
5146
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-addon .input-group-sm > .input-group-btn > select[multiple].btn,
5147
+ .pixel-caffeine-wrapper .input-group-sm > .input-group-btn > .btn .input-group-sm > .input-group-btn > select[multiple].btn {
5148
+ height: auto; }
5149
+ .pixel-caffeine-wrapper .form-group-sm .form-control {
5150
+ height: 24px;
5151
+ padding: 3px 0;
5152
+ font-size: 11px;
5153
+ line-height: 1.5; }
5154
+ .pixel-caffeine-wrapper .form-group-sm select.form-control {
5155
+ height: 24px;
5156
+ line-height: 24px; }
5157
+ .pixel-caffeine-wrapper .form-group-sm textarea.form-control,
5158
+ .pixel-caffeine-wrapper .form-group-sm select[multiple].form-control {
5159
+ height: auto; }
5160
+ .pixel-caffeine-wrapper .form-group-sm .form-control-static {
5161
+ height: 24px;
5162
+ min-height: 33px;
5163
+ padding: 4px 0;
5164
+ font-size: 11px;
5165
+ line-height: 1.5; }
5166
+ .pixel-caffeine-wrapper .input-lg .input-lg, .pixel-caffeine-wrapper .input-group-lg > .form-control .input-lg,
5167
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon .input-lg,
5168
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn .input-lg, .pixel-caffeine-wrapper .input-lg .input-group-lg > .form-control, .pixel-caffeine-wrapper .input-group-lg > .form-control .input-group-lg > .form-control,
5169
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon .input-group-lg > .form-control,
5170
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn .input-group-lg > .form-control,
5171
+ .pixel-caffeine-wrapper .input-lg .input-group-lg > .input-group-addon,
5172
+ .pixel-caffeine-wrapper .input-group-lg > .form-control .input-group-lg > .input-group-addon,
5173
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon .input-group-lg > .input-group-addon,
5174
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn .input-group-lg > .input-group-addon,
5175
+ .pixel-caffeine-wrapper .input-lg .input-group-lg > .input-group-btn > .btn,
5176
+ .pixel-caffeine-wrapper .input-group-lg > .form-control .input-group-lg > .input-group-btn > .btn,
5177
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon .input-group-lg > .input-group-btn > .btn,
5178
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn .input-group-lg > .input-group-btn > .btn {
5179
+ height: 44px;
5180
+ padding: 9px 0;
5181
+ font-size: 18px;
5182
+ line-height: 1.33333;
5183
+ border-radius: 0; }
5184
+ .pixel-caffeine-wrapper .input-lg select.input-lg, .pixel-caffeine-wrapper .input-group-lg > .form-control select.input-lg,
5185
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon select.input-lg,
5186
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn select.input-lg, .pixel-caffeine-wrapper .input-lg .input-group-lg > select.form-control, .pixel-caffeine-wrapper .input-group-lg > .form-control .input-group-lg > select.form-control,
5187
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon .input-group-lg > select.form-control,
5188
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn .input-group-lg > select.form-control,
5189
+ .pixel-caffeine-wrapper .input-lg .input-group-lg > select.input-group-addon,
5190
+ .pixel-caffeine-wrapper .input-group-lg > .form-control .input-group-lg > select.input-group-addon,
5191
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon .input-group-lg > select.input-group-addon,
5192
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn .input-group-lg > select.input-group-addon,
5193
+ .pixel-caffeine-wrapper .input-lg .input-group-lg > .input-group-btn > select.btn,
5194
+ .pixel-caffeine-wrapper .input-group-lg > .form-control .input-group-lg > .input-group-btn > select.btn,
5195
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon .input-group-lg > .input-group-btn > select.btn,
5196
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn .input-group-lg > .input-group-btn > select.btn {
5197
+ height: 44px;
5198
+ line-height: 44px; }
5199
+ .pixel-caffeine-wrapper .input-lg textarea.input-lg, .pixel-caffeine-wrapper .input-group-lg > .form-control textarea.input-lg,
5200
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon textarea.input-lg,
5201
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn textarea.input-lg, .pixel-caffeine-wrapper .input-lg .input-group-lg > textarea.form-control, .pixel-caffeine-wrapper .input-group-lg > .form-control .input-group-lg > textarea.form-control,
5202
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon .input-group-lg > textarea.form-control,
5203
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn .input-group-lg > textarea.form-control,
5204
+ .pixel-caffeine-wrapper .input-lg .input-group-lg > textarea.input-group-addon,
5205
+ .pixel-caffeine-wrapper .input-group-lg > .form-control .input-group-lg > textarea.input-group-addon,
5206
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon .input-group-lg > textarea.input-group-addon,
5207
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn .input-group-lg > textarea.input-group-addon,
5208
+ .pixel-caffeine-wrapper .input-lg .input-group-lg > .input-group-btn > textarea.btn,
5209
+ .pixel-caffeine-wrapper .input-group-lg > .form-control .input-group-lg > .input-group-btn > textarea.btn,
5210
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon .input-group-lg > .input-group-btn > textarea.btn,
5211
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn .input-group-lg > .input-group-btn > textarea.btn,
5212
+ .pixel-caffeine-wrapper .input-lg select[multiple].input-lg,
5213
+ .pixel-caffeine-wrapper .input-group-lg > .form-control select[multiple].input-lg,
5214
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon select[multiple].input-lg,
5215
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn select[multiple].input-lg,
5216
+ .pixel-caffeine-wrapper .input-lg .input-group-lg > select[multiple].form-control,
5217
+ .pixel-caffeine-wrapper .input-group-lg > .form-control .input-group-lg > select[multiple].form-control,
5218
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon .input-group-lg > select[multiple].form-control,
5219
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn .input-group-lg > select[multiple].form-control,
5220
+ .pixel-caffeine-wrapper .input-lg .input-group-lg > select[multiple].input-group-addon,
5221
+ .pixel-caffeine-wrapper .input-group-lg > .form-control .input-group-lg > select[multiple].input-group-addon,
5222
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon .input-group-lg > select[multiple].input-group-addon,
5223
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn .input-group-lg > select[multiple].input-group-addon,
5224
+ .pixel-caffeine-wrapper .input-lg .input-group-lg > .input-group-btn > select[multiple].btn,
5225
+ .pixel-caffeine-wrapper .input-group-lg > .form-control .input-group-lg > .input-group-btn > select[multiple].btn,
5226
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-addon .input-group-lg > .input-group-btn > select[multiple].btn,
5227
+ .pixel-caffeine-wrapper .input-group-lg > .input-group-btn > .btn .input-group-lg > .input-group-btn > select[multiple].btn {
5228
+ height: auto; }
5229
+ .pixel-caffeine-wrapper .form-group-lg .form-control {
5230
+ height: 44px;
5231
+ padding: 9px 0;
5232
+ font-size: 18px;
5233
+ line-height: 1.33333; }
5234
+ .pixel-caffeine-wrapper .form-group-lg select.form-control {
5235
+ height: 44px;
5236
+ line-height: 44px; }
5237
+ .pixel-caffeine-wrapper .form-group-lg textarea.form-control,
5238
+ .pixel-caffeine-wrapper .form-group-lg select[multiple].form-control {
5239
+ height: auto; }
5240
+ .pixel-caffeine-wrapper .form-group-lg .form-control-static {
5241
+ height: 44px;
5242
+ min-height: 40px;
5243
+ padding: 10px 0;
5244
+ font-size: 18px;
5245
+ line-height: 1.33333; }
5246
+ .pixel-caffeine-wrapper .form-horizontal .radio,
5247
+ .pixel-caffeine-wrapper .form-horizontal .checkbox,
5248
+ .pixel-caffeine-wrapper .form-horizontal .radio-inline,
5249
+ .pixel-caffeine-wrapper .form-horizontal .checkbox-inline {
5250
+ padding-top: 8px; }
5251
+ .pixel-caffeine-wrapper .form-horizontal .radio,
5252
+ .pixel-caffeine-wrapper .form-horizontal .checkbox {
5253
+ min-height: 30px; }
5254
+ @media (min-width: 768px) {
5255
+ .pixel-caffeine-wrapper .form-horizontal .control-label {
5256
+ padding-top: 8px; } }
5257
+ @media (min-width: 768px) {
5258
+ .pixel-caffeine-wrapper .form-horizontal .form-group-lg .control-label {
5259
+ padding-top: 13px;
5260
+ font-size: 18px; } }
5261
+ @media (min-width: 768px) {
5262
+ .pixel-caffeine-wrapper .form-horizontal .form-group-sm .control-label {
5263
+ padding-top: 4px;
5264
+ font-size: 11px; } }
5265
+ .pixel-caffeine-wrapper .label {
5266
+ border-radius: 3px;
5267
+ padding: .3em .6em; }
5268
+ .pixel-caffeine-wrapper .label, .pixel-caffeine-wrapper .label.label-default {
5269
+ background-color: #9e9e9e; }
5270
+ .pixel-caffeine-wrapper .label.label-inverse {
5271
+ background-color: #3f51b5; }
5272
+ .pixel-caffeine-wrapper .label.label-primary {
5273
+ background-color: #4C70BA; }
5274
+ .pixel-caffeine-wrapper .label.label-success {
5275
+ background-color: #68AA20; }
5276
+ .pixel-caffeine-wrapper .label.label-info {
5277
+ background-color: #5bc0de; }
5278
+ .pixel-caffeine-wrapper .label.label-warning {
5279
+ background-color: #FD9C00; }
5280
+ .pixel-caffeine-wrapper .label.label-danger {
5281
+ background-color: #E15667; }
5282
+ .pixel-caffeine-wrapper .form-control,
5283
+ .pixel-caffeine-wrapper .form-group .form-control {
5284
+ border: 0;
5285
+ background-image: linear-gradient(#4C70BA, #4C70BA), linear-gradient(#D2D2D2, #D2D2D2);
5286
+ background-size: 0 2px, 100% 1px;
5287
+ background-repeat: no-repeat;
5288
+ background-position: center bottom, center calc(100% - 1px);
5289
+ background-color: transparent;
5290
+ transition: background 0s ease-out;
5291
+ float: none;
5292
+ box-shadow: none;
5293
+ border-radius: 0; }
5294
+ .pixel-caffeine-wrapper .form-control::-moz-placeholder,
5295
+ .pixel-caffeine-wrapper .form-group .form-control::-moz-placeholder {
5296
+ color: #BDBDBD;
5297
+ font-weight: 400; }
5298
+ .pixel-caffeine-wrapper .form-control:-ms-input-placeholder,
5299
+ .pixel-caffeine-wrapper .form-group .form-control:-ms-input-placeholder {
5300
+ color: #BDBDBD;
5301
+ font-weight: 400; }
5302
+ .pixel-caffeine-wrapper .form-control::-webkit-input-placeholder,
5303
+ .pixel-caffeine-wrapper .form-group .form-control::-webkit-input-placeholder {
5304
+ color: #BDBDBD;
5305
+ font-weight: 400; }
5306
+ .pixel-caffeine-wrapper .form-control[readonly], .pixel-caffeine-wrapper .form-control[disabled], fieldset[disabled] .pixel-caffeine-wrapper .form-control,
5307
+ .pixel-caffeine-wrapper .form-group .form-control[readonly],
5308
+ .pixel-caffeine-wrapper .form-group .form-control[disabled], fieldset[disabled]
5309
+ .pixel-caffeine-wrapper .form-group .form-control {
5310
+ background-color: transparent; }
5311
+ .pixel-caffeine-wrapper .form-control[disabled], fieldset[disabled] .pixel-caffeine-wrapper .form-control,
5312
+ .pixel-caffeine-wrapper .form-group .form-control[disabled], fieldset[disabled]
5313
+ .pixel-caffeine-wrapper .form-group .form-control {
5314
+ background-image: none;
5315
+ border-bottom: 1px dotted #D2D2D2; }
5316
+ .pixel-caffeine-wrapper .form-group {
5317
+ position: relative; }
5318
+ .pixel-caffeine-wrapper .form-group.label-static label.control-label, .pixel-caffeine-wrapper .form-group.label-placeholder label.control-label, .pixel-caffeine-wrapper .form-group.label-floating label.control-label {
5319
+ position: absolute;
5320
+ pointer-events: none;
5321
+ transition: 0.3s ease all; }
5322
+ .pixel-caffeine-wrapper .form-group.label-floating label.control-label {
5323
+ will-change: left, top, contents; }
5324
+ .pixel-caffeine-wrapper .form-group.label-placeholder:not(.is-empty) label.control-label {
5325
+ display: none; }
5326
+ .pixel-caffeine-wrapper .form-group .help-block {
5327
+ position: absolute;
5328
+ display: none; }
5329
+ .pixel-caffeine-wrapper .form-group.is-focused .form-control {
5330
+ outline: none;
5331
+ background-image: linear-gradient(#4C70BA, #4C70BA), linear-gradient(#D2D2D2, #D2D2D2);
5332
+ background-size: 100% 2px, 100% 1px;
5333
+ box-shadow: none;
5334
+ transition-duration: 0.3s; }
5335
+ .pixel-caffeine-wrapper .form-group.is-focused .form-control .material-input:after {
5336
+ background-color: #4C70BA; }
5337
+ .pixel-caffeine-wrapper .form-group.is-focused label,
5338
+ .pixel-caffeine-wrapper .form-group.is-focused label.control-label {
5339
+ color: #4C70BA; }
5340
+ .pixel-caffeine-wrapper .form-group.is-focused.label-placeholder label,
5341
+ .pixel-caffeine-wrapper .form-group.is-focused.label-placeholder label.control-label {
5342
+ color: #BDBDBD; }
5343
+ .pixel-caffeine-wrapper .form-group.is-focused .help-block {
5344
+ display: block; }
5345
+ .pixel-caffeine-wrapper .form-group.has-warning .form-control {
5346
+ box-shadow: none; }
5347
+ .pixel-caffeine-wrapper .form-group.has-warning.is-focused .form-control {
5348
+ background-image: linear-gradient(#FD9C00, #FD9C00), linear-gradient(#D2D2D2, #D2D2D2); }
5349
+ .pixel-caffeine-wrapper .form-group.has-warning label.control-label,
5350
+ .pixel-caffeine-wrapper .form-group.has-warning .help-block {
5351
+ color: #FD9C00; }
5352
+ .pixel-caffeine-wrapper .form-group.has-error .form-control {
5353
+ box-shadow: none; }
5354
+ .pixel-caffeine-wrapper .form-group.has-error.is-focused .form-control {
5355
+ background-image: linear-gradient(#E15667, #E15667), linear-gradient(#D2D2D2, #D2D2D2); }
5356
+ .pixel-caffeine-wrapper .form-group.has-error label.control-label,
5357
+ .pixel-caffeine-wrapper .form-group.has-error .help-block {
5358
+ color: #E15667; }
5359
+ .pixel-caffeine-wrapper .form-group.has-success .form-control {
5360
+ box-shadow: none; }
5361
+ .pixel-caffeine-wrapper .form-group.has-success.is-focused .form-control {
5362
+ background-image: linear-gradient(#68AA20, #68AA20), linear-gradient(#D2D2D2, #D2D2D2); }
5363
+ .pixel-caffeine-wrapper .form-group.has-success label.control-label,
5364
+ .pixel-caffeine-wrapper .form-group.has-success .help-block {
5365
+ color: #68AA20; }
5366
+ .pixel-caffeine-wrapper .form-group.has-info .form-control {
5367
+ box-shadow: none; }
5368
+ .pixel-caffeine-wrapper .form-group.has-info.is-focused .form-control {
5369
+ background-image: linear-gradient(#5bc0de, #5bc0de), linear-gradient(#D2D2D2, #D2D2D2); }
5370
+ .pixel-caffeine-wrapper .form-group.has-info label.control-label,
5371
+ .pixel-caffeine-wrapper .form-group.has-info .help-block {
5372
+ color: #5bc0de; }
5373
+ .pixel-caffeine-wrapper .form-group textarea {
5374
+ resize: none; }
5375
+ .pixel-caffeine-wrapper .form-group textarea ~ .form-control-highlight {
5376
+ margin-top: -11px; }
5377
+ .pixel-caffeine-wrapper .form-group select {
5378
+ appearance: none; }
5379
+ .pixel-caffeine-wrapper .form-group select ~ .material-input:after {
5380
+ display: none; }
5381
+ .pixel-caffeine-wrapper .form-control {
5382
+ margin-bottom: 7px; }
5383
+ .pixel-caffeine-wrapper .form-control::-moz-placeholder {
5384
+ font-size: 14px;
5385
+ line-height: 1.42857;
5386
+ color: #BDBDBD;
5387
+ font-weight: 400; }
5388
+ .pixel-caffeine-wrapper .form-control:-ms-input-placeholder {
5389
+ font-size: 14px;
5390
+ line-height: 1.42857;
5391
+ color: #BDBDBD;
5392
+ font-weight: 400; }
5393
+ .pixel-caffeine-wrapper .form-control::-webkit-input-placeholder {
5394
+ font-size: 14px;
5395
+ line-height: 1.42857;
5396
+ color: #BDBDBD;
5397
+ font-weight: 400; }
5398
+ .pixel-caffeine-wrapper .checkbox label,
5399
+ .pixel-caffeine-wrapper .radio label,
5400
+ .pixel-caffeine-wrapper label {
5401
+ font-size: 14px;
5402
+ line-height: 1.42857;
5403
+ color: #BDBDBD;
5404
+ font-weight: 400; }
5405
+ .pixel-caffeine-wrapper label.control-label {
5406
+ font-size: 11px;
5407
+ line-height: 1.07143;
5408
+ font-weight: 400;
5409
+ margin: 16px 0 0 0; }
5410
+ .pixel-caffeine-wrapper .help-block {
5411
+ margin-top: 0;
5412
+ font-size: 11px; }
5413
+ .pixel-caffeine-wrapper .form-group {
5414
+ padding-bottom: 7px;
5415
+ margin: 27px 0 0 0; }
5416
+ .pixel-caffeine-wrapper .form-group .form-control {
5417
+ margin-bottom: 7px; }
5418
+ .pixel-caffeine-wrapper .form-group .form-control::-moz-placeholder {
5419
+ font-size: 14px;
5420
+ line-height: 1.42857;
5421
+ color: #BDBDBD;
5422
+ font-weight: 400; }
5423
+ .pixel-caffeine-wrapper .form-group .form-control:-ms-input-placeholder {
5424
+ font-size: 14px;
5425
+ line-height: 1.42857;
5426
+ color: #BDBDBD;
5427
+ font-weight: 400; }
5428
+ .pixel-caffeine-wrapper .form-group .form-control::-webkit-input-placeholder {
5429
+ font-size: 14px;
5430
+ line-height: 1.42857;
5431
+ color: #BDBDBD;
5432
+ font-weight: 400; }
5433
+ .pixel-caffeine-wrapper .form-group .checkbox label,
5434
+ .pixel-caffeine-wrapper .form-group .radio label,
5435
+ .pixel-caffeine-wrapper .form-group label {
5436
+ font-size: 14px;
5437
+ line-height: 1.42857;
5438
+ color: #BDBDBD;
5439
+ font-weight: 400; }
5440
+ .pixel-caffeine-wrapper .form-group label.control-label {
5441
+ font-size: 11px;
5442
+ line-height: 1.07143;
5443
+ font-weight: 400;
5444
+ margin: 16px 0 0 0; }
5445
+ .pixel-caffeine-wrapper .form-group .help-block {
5446
+ margin-top: 0;
5447
+ font-size: 11px; }
5448
+ .pixel-caffeine-wrapper .form-group.label-floating label.control-label, .pixel-caffeine-wrapper .form-group.label-placeholder label.control-label {
5449
+ top: -7px;
5450
+ font-size: 14px;
5451
+ line-height: 1.42857; }
5452
+ .pixel-caffeine-wrapper .form-group.label-static label.control-label, .pixel-caffeine-wrapper .form-group.label-floating.is-focused label.control-label, .pixel-caffeine-wrapper .form-group.label-floating:not(.is-empty) label.control-label {
5453
+ top: -28px;
5454
+ left: 0;
5455
+ font-size: 11px;
5456
+ line-height: 1.07143; }
5457
+ .pixel-caffeine-wrapper .form-group.label-floating input.form-control:-webkit-autofill ~ label.control-label label.control-label {
5458
+ top: -28px;
5459
+ left: 0;
5460
+ font-size: 11px;
5461
+ line-height: 1.07143; }
5462
+ .pixel-caffeine-wrapper .form-group.form-group-sm {
5463
+ padding-bottom: 3px;
5464
+ margin: 21px 0 0 0; }
5465
+ .pixel-caffeine-wrapper .form-group.form-group-sm .form-control {
5466
+ margin-bottom: 3px; }
5467
+ .pixel-caffeine-wrapper .form-group.form-group-sm .form-control::-moz-placeholder {
5468
+ font-size: 11px;
5469
+ line-height: 1.5;
5470
+ color: #BDBDBD;
5471
+ font-weight: 400; }
5472
+ .pixel-caffeine-wrapper .form-group.form-group-sm .form-control:-ms-input-placeholder {
5473
+ font-size: 11px;
5474
+ line-height: 1.5;
5475
+ color: #BDBDBD;
5476
+ font-weight: 400; }
5477
+ .pixel-caffeine-wrapper .form-group.form-group-sm .form-control::-webkit-input-placeholder {
5478
+ font-size: 11px;
5479
+ line-height: 1.5;
5480
+ color: #BDBDBD;
5481
+ font-weight: 400; }
5482
+ .pixel-caffeine-wrapper .form-group.form-group-sm .checkbox label,
5483
+ .pixel-caffeine-wrapper .form-group.form-group-sm .radio label,
5484
+ .pixel-caffeine-wrapper .form-group.form-group-sm label {
5485
+ font-size: 11px;
5486
+ line-height: 1.5;
5487
+ color: #BDBDBD;
5488
+ font-weight: 400; }
5489
+ .pixel-caffeine-wrapper .form-group.form-group-sm label.control-label {
5490
+ font-size: 9px;
5491
+ line-height: 1.125;
5492
+ font-weight: 400;
5493
+ margin: 16px 0 0 0; }
5494
+ .pixel-caffeine-wrapper .form-group.form-group-sm .help-block {
5495
+ margin-top: 0;
5496
+ font-size: 9px; }
5497
+ .pixel-caffeine-wrapper .form-group.form-group-sm.label-floating label.control-label, .pixel-caffeine-wrapper .form-group.form-group-sm.label-placeholder label.control-label {
5498
+ top: -11px;
5499
+ font-size: 11px;
5500
+ line-height: 1.5; }
5501
+ .pixel-caffeine-wrapper .form-group.form-group-sm.label-static label.control-label, .pixel-caffeine-wrapper .form-group.form-group-sm.label-floating.is-focused label.control-label, .pixel-caffeine-wrapper .form-group.form-group-sm.label-floating:not(.is-empty) label.control-label {
5502
+ top: -25px;
5503
+ left: 0;
5504
+ font-size: 9px;
5505
+ line-height: 1.125; }
5506
+ .pixel-caffeine-wrapper .form-group.form-group-sm.label-floating input.form-control:-webkit-autofill ~ label.control-label label.control-label {
5507
+ top: -25px;
5508
+ left: 0;
5509
+ font-size: 9px;
5510
+ line-height: 1.125; }
5511
+ .pixel-caffeine-wrapper .form-group.form-group-lg {
5512
+ padding-bottom: 9px;
5513
+ margin: 30px 0 0 0; }
5514
+ .pixel-caffeine-wrapper .form-group.form-group-lg .form-control {
5515
+ margin-bottom: 9px; }
5516
+ .pixel-caffeine-wrapper .form-group.form-group-lg .form-control::-moz-placeholder {
5517
+ font-size: 18px;
5518
+ line-height: 1.33333;
5519
+ color: #BDBDBD;
5520
+ font-weight: 400; }
5521
+ .pixel-caffeine-wrapper .form-group.form-group-lg .form-control:-ms-input-placeholder {
5522
+ font-size: 18px;
5523
+ line-height: 1.33333;
5524
+ color: #BDBDBD;
5525
+ font-weight: 400; }
5526
+ .pixel-caffeine-wrapper .form-group.form-group-lg .form-control::-webkit-input-placeholder {
5527
+ font-size: 18px;
5528
+ line-height: 1.33333;
5529
+ color: #BDBDBD;
5530
+ font-weight: 400; }
5531
+ .pixel-caffeine-wrapper .form-group.form-group-lg .checkbox label,
5532
+ .pixel-caffeine-wrapper .form-group.form-group-lg .radio label,
5533
+ .pixel-caffeine-wrapper .form-group.form-group-lg label {
5534
+ font-size: 18px;
5535
+ line-height: 1.33333;
5536
+ color: #BDBDBD;
5537
+ font-weight: 400; }
5538
+ .pixel-caffeine-wrapper .form-group.form-group-lg label.control-label {
5539
+ font-size: 14px;
5540
+ line-height: 1;
5541
+ font-weight: 400;
5542
+ margin: 16px 0 0 0; }
5543
+ .pixel-caffeine-wrapper .form-group.form-group-lg .help-block {
5544
+ margin-top: 0;
5545
+ font-size: 14px; }
5546
+ .pixel-caffeine-wrapper .form-group.form-group-lg.label-floating label.control-label, .pixel-caffeine-wrapper .form-group.form-group-lg.label-placeholder label.control-label {
5547
+ top: -5px;
5548
+ font-size: 18px;
5549
+ line-height: 1.33333; }
5550
+ .pixel-caffeine-wrapper .form-group.form-group-lg.label-static label.control-label, .pixel-caffeine-wrapper .form-group.form-group-lg.label-floating.is-focused label.control-label, .pixel-caffeine-wrapper .form-group.form-group-lg.label-floating:not(.is-empty) label.control-label {
5551
+ top: -32px;
5552
+ left: 0;
5553
+ font-size: 14px;
5554
+ line-height: 1; }
5555
+ .pixel-caffeine-wrapper .form-group.form-group-lg.label-floating input.form-control:-webkit-autofill ~ label.control-label label.control-label {
5556
+ top: -32px;
5557
+ left: 0;
5558
+ font-size: 14px;
5559
+ line-height: 1; }
5560
+ .pixel-caffeine-wrapper select.form-control {
5561
+ border: 0;
5562
+ box-shadow: none;
5563
+ border-radius: 0; }
5564
+ .form-group.is-focused .pixel-caffeine-wrapper select.form-control {
5565
+ box-shadow: none;
5566
+ border-color: #D2D2D2; }
5567
+ .pixel-caffeine-wrapper select.form-control[multiple], .form-group.is-focused .pixel-caffeine-wrapper select.form-control[multiple] {
5568
+ height: 85px; }
5569
+ .pixel-caffeine-wrapper .input-group-btn .btn {
5570
+ margin: 0 0 7px 0; }
5571
+ .pixel-caffeine-wrapper .form-group.form-group-sm .input-group-btn .btn {
5572
+ margin: 0 0 3px 0; }
5573
+ .pixel-caffeine-wrapper .form-group.form-group-lg .input-group-btn .btn {
5574
+ margin: 0 0 9px 0; }
5575
+ .pixel-caffeine-wrapper .input-group .input-group-btn {
5576
+ padding: 0 12px; }
5577
+ .pixel-caffeine-wrapper .input-group .input-group-addon {
5578
+ border: 0;
5579
+ background: transparent; }
5580
+ .pixel-caffeine-wrapper .form-group input[type=file] {
5581
+ opacity: 0;
5582
+ position: absolute;
5583
+ top: 0;
5584
+ right: 0;
5585
+ bottom: 0;
5586
+ left: 0;
5587
+ width: 100%;
5588
+ height: 100%;
5589
+ z-index: 100; }
5590
+ .pixel-caffeine-wrapper legend {
5591
+ border-bottom: 0; }
5592
+ .pixel-caffeine-wrapper .list-group {
5593
+ border-radius: 0; }
5594
+ .pixel-caffeine-wrapper .list-group .list-group-item {
5595
+ background-color: transparent;
5596
+ overflow: hidden;
5597
+ border: 0;
5598
+ border-radius: 0;
5599
+ padding: 0 16px; }
5600
+ .pixel-caffeine-wrapper .list-group .list-group-item.baseline {
5601
+ border-bottom: 1px solid #cecece; }
5602
+ .pixel-caffeine-wrapper .list-group .list-group-item.baseline:last-child {
5603
+ border-bottom: none; }
5604
+ .pixel-caffeine-wrapper .list-group .list-group-item .row-picture, .pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary {
5605
+ display: inline-block;
5606
+ padding-right: 16px; }
5607
+ .pixel-caffeine-wrapper .list-group .list-group-item .row-picture img, .pixel-caffeine-wrapper .list-group .list-group-item .row-picture i, .pixel-caffeine-wrapper .list-group .list-group-item .row-picture label, .pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary img, .pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary i, .pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary label {
5608
+ display: block;
5609
+ width: 56px;
5610
+ height: 56px; }
5611
+ .pixel-caffeine-wrapper .list-group .list-group-item .row-picture img, .pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary img {
5612
+ background: rgba(0, 0, 0, 0.1);
5613
+ padding: 1px; }
5614
+ .pixel-caffeine-wrapper .list-group .list-group-item .row-picture img.circle, .pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary img.circle {
5615
+ border-radius: 100%; }
5616
+ .pixel-caffeine-wrapper .list-group .list-group-item .row-picture i, .pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary i {
5617
+ background: rgba(0, 0, 0, 0.25);
5618
+ border-radius: 100%;
5619
+ text-align: center;
5620
+ line-height: 56px;
5621
+ font-size: 20px;
5622
+ color: white; }
5623
+ .pixel-caffeine-wrapper .list-group .list-group-item .row-picture label, .pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary label {
5624
+ margin-left: 7px;
5625
+ margin-right: -7px;
5626
+ margin-top: 5px;
5627
+ margin-bottom: -5px; }
5628
+ .pixel-caffeine-wrapper .list-group .list-group-item .row-picture label .checkbox-material, .pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary label .checkbox-material {
5629
+ left: -10px; }
5630
+ .pixel-caffeine-wrapper .list-group .list-group-item .row-content {
5631
+ display: inline-block;
5632
+ width: calc(100% - 92px);
5633
+ min-height: 66px; }
5634
+ .pixel-caffeine-wrapper .list-group .list-group-item .row-content .action-secondary {
5635
+ position: absolute;
5636
+ right: 16px;
5637
+ top: 16px; }
5638
+ .pixel-caffeine-wrapper .list-group .list-group-item .row-content .action-secondary i {
5639
+ font-size: 20px;
5640
+ color: rgba(0, 0, 0, 0.25);
5641
+ cursor: pointer; }
5642
+ .pixel-caffeine-wrapper .list-group .list-group-item .row-content .action-secondary ~ * {
5643
+ max-width: calc(100% - 30px); }
5644
+ .pixel-caffeine-wrapper .list-group .list-group-item .row-content .least-content {
5645
+ position: absolute;
5646
+ right: 16px;
5647
+ top: 0;
5648
+ color: rgba(0, 0, 0, 0.54);
5649
+ font-size: 14px; }
5650
+ .pixel-caffeine-wrapper .list-group .list-group-item .list-group-item-heading {
5651
+ color: rgba(0, 0, 0, 0.77);
5652
+ font-size: 20px;
5653
+ line-height: 29px; }
5654
+ .pixel-caffeine-wrapper .list-group .list-group-item.active:hover, .pixel-caffeine-wrapper .list-group .list-group-item.active:focus {
5655
+ background: rgba(0, 0, 0, 0.15);
5656
+ outline: 10px solid rgba(0, 0, 0, 0.15); }
5657
+ .pixel-caffeine-wrapper .list-group .list-group-item.active .list-group-item-heading, .pixel-caffeine-wrapper .list-group .list-group-item.active .list-group-item-text {
5658
+ color: rgba(0,0,0, 0.87); }
5659
+ .pixel-caffeine-wrapper .list-group .list-group-separator {
5660
+ clear: both;
5661
+ overflow: hidden;
5662
+ margin-top: 10px;
5663
+ margin-bottom: 10px; }
5664
+ .pixel-caffeine-wrapper .list-group .list-group-separator:before {
5665
+ content: "";
5666
+ width: calc(100% - 90px);
5667
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
5668
+ float: right; }
5669
+ .pixel-caffeine-wrapper .navbar {
5670
+ background-color: #4C70BA;
5671
+ border: 0;
5672
+ border-radius: 0; }
5673
+ .pixel-caffeine-wrapper .navbar .navbar-brand {
5674
+ position: relative;
5675
+ height: 60px;
5676
+ line-height: 30px;
5677
+ color: inherit; }
5678
+ .pixel-caffeine-wrapper .navbar .navbar-brand:hover, .pixel-caffeine-wrapper .navbar .navbar-brand:focus {
5679
+ color: inherit;
5680
+ background-color: transparent; }
5681
+ .pixel-caffeine-wrapper .navbar .navbar-text {
5682
+ color: inherit;
5683
+ margin-top: 20px;
5684
+ margin-bottom: 20px; }
5685
+ .pixel-caffeine-wrapper .navbar .navbar-nav > li > a {
5686
+ color: inherit;
5687
+ padding-top: 20px;
5688
+ padding-bottom: 20px; }
5689
+ .pixel-caffeine-wrapper .navbar .navbar-nav > li > a:hover, .pixel-caffeine-wrapper .navbar .navbar-nav > li > a:focus {
5690
+ color: inherit;
5691
+ background-color: transparent; }
5692
+ .pixel-caffeine-wrapper .navbar .navbar-nav > .active > a, .pixel-caffeine-wrapper .navbar .navbar-nav > .active > a:hover, .pixel-caffeine-wrapper .navbar .navbar-nav > .active > a:focus {
5693
+ color: inherit;
5694
+ background-color: rgba(255, 255, 255, 0.1); }
5695
+ .pixel-caffeine-wrapper .navbar .navbar-nav > .disabled > a, .pixel-caffeine-wrapper .navbar .navbar-nav > .disabled > a:hover, .pixel-caffeine-wrapper .navbar .navbar-nav > .disabled > a:focus {
5696
+ color: inherit;
5697
+ background-color: transparent;
5698
+ opacity: 0.9; }
5699
+ .pixel-caffeine-wrapper .navbar .navbar-toggle {
5700
+ border: 0; }
5701
+ .pixel-caffeine-wrapper .navbar .navbar-toggle:hover, .pixel-caffeine-wrapper .navbar .navbar-toggle:focus {
5702
+ background-color: transparent; }
5703
+ .pixel-caffeine-wrapper .navbar .navbar-toggle .icon-bar {
5704
+ background-color: inherit;
5705
+ border: 1px solid; }
5706
+ .pixel-caffeine-wrapper .navbar .navbar-default .navbar-toggle,
5707
+ .pixel-caffeine-wrapper .navbar .navbar-inverse .navbar-toggle {
5708
+ border-color: transparent; }
5709
+ .pixel-caffeine-wrapper .navbar .navbar-collapse,
5710
+ .pixel-caffeine-wrapper .navbar .navbar-form {
5711
+ border-color: rgba(0, 0, 0, 0.1); }
5712
+ .pixel-caffeine-wrapper .navbar .navbar-nav > .open > a, .pixel-caffeine-wrapper .navbar .navbar-nav > .open > a:hover, .pixel-caffeine-wrapper .navbar .navbar-nav > .open > a:focus {
5713
+ background-color: transparent;
5714
+ color: inherit; }
5715
+ @media (max-width: 767px) {
5716
+ .pixel-caffeine-wrapper .navbar .navbar-nav .navbar-text {
5717
+ color: inherit;
5718
+ margin-top: 15px;
5719
+ margin-bottom: 15px; }
5720
+ .pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu > .dropdown-header {
5721
+ border: 0;
5722
+ color: inherit; }
5723
+ .pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu .divider {
5724
+ border-bottom: 1px solid;
5725
+ opacity: 0.08; }
5726
+ .pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu > li > a {
5727
+ color: inherit; }
5728
+ .pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu > li > a:hover, .pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu > li > a:focus {
5729
+ color: inherit;
5730
+ background-color: transparent; }
5731
+ .pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu > .active > a, .pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, .pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
5732
+ color: inherit;
5733
+ background-color: transparent; }
5734
+ .pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu > .disabled > a, .pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu > .disabled > a:hover, .pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu > .disabled > a:focus {
5735
+ color: inherit;
5736
+ background-color: transparent; } }
5737
+ .pixel-caffeine-wrapper .navbar .navbar-link {
5738
+ color: inherit; }
5739
+ .pixel-caffeine-wrapper .navbar .navbar-link:hover {
5740
+ color: inherit; }
5741
+ .pixel-caffeine-wrapper .navbar .btn-link {
5742
+ color: inherit; }
5743
+ .pixel-caffeine-wrapper .navbar .btn-link:hover, .pixel-caffeine-wrapper .navbar .btn-link:focus {
5744
+ color: inherit; }
5745
+ .pixel-caffeine-wrapper .navbar .btn-link[disabled]:hover, .pixel-caffeine-wrapper .navbar .btn-link[disabled]:focus, fieldset[disabled] .pixel-caffeine-wrapper .navbar .btn-link:hover, fieldset[disabled] .pixel-caffeine-wrapper .navbar .btn-link:focus {
5746
+ color: inherit; }
5747
+ .pixel-caffeine-wrapper .navbar .navbar-form {
5748
+ margin-top: 16px; }
5749
+ .pixel-caffeine-wrapper .navbar .navbar-form .form-group {
5750
+ margin: 0;
5751
+ padding: 0; }
5752
+ .pixel-caffeine-wrapper .navbar .navbar-form .form-group .material-input:before, .pixel-caffeine-wrapper .navbar .navbar-form .form-group.is-focused .material-input:after {
5753
+ background-color: inherit; }
5754
+ .pixel-caffeine-wrapper .navbar .navbar-form .form-group .form-control,
5755
+ .pixel-caffeine-wrapper .navbar .navbar-form .form-control {
5756
+ border-color: inherit;
5757
+ color: inherit;
5758
+ padding: 0;
5759
+ margin: 0;
5760
+ height: 28px;
5761
+ font-size: 14px;
5762
+ line-height: 1.42857; }
5763
+ .pixel-caffeine-wrapper .navbar, .pixel-caffeine-wrapper .navbar.navbar-default {
5764
+ background-color: #4C70BA;
5765
+ color: rgba(255,255,255, 0.84); }
5766
+ .pixel-caffeine-wrapper .navbar .navbar-form .form-group input.form-control::-moz-placeholder,
5767
+ .pixel-caffeine-wrapper .navbar .navbar-form input.form-control::-moz-placeholder, .pixel-caffeine-wrapper .navbar.navbar-default .navbar-form .form-group input.form-control::-moz-placeholder,
5768
+ .pixel-caffeine-wrapper .navbar.navbar-default .navbar-form input.form-control::-moz-placeholder {
5769
+ color: rgba(255,255,255, 0.84); }
5770
+ .pixel-caffeine-wrapper .navbar .navbar-form .form-group input.form-control:-ms-input-placeholder,
5771
+ .pixel-caffeine-wrapper .navbar .navbar-form input.form-control:-ms-input-placeholder, .pixel-caffeine-wrapper .navbar.navbar-default .navbar-form .form-group input.form-control:-ms-input-placeholder,
5772
+ .pixel-caffeine-wrapper .navbar.navbar-default .navbar-form input.form-control:-ms-input-placeholder {
5773
+ color: rgba(255,255,255, 0.84); }
5774
+ .pixel-caffeine-wrapper .navbar .navbar-form .form-group input.form-control::-webkit-input-placeholder,
5775
+ .pixel-caffeine-wrapper .navbar .navbar-form input.form-control::-webkit-input-placeholder, .pixel-caffeine-wrapper .navbar.navbar-default .navbar-form .form-group input.form-control::-webkit-input-placeholder,
5776
+ .pixel-caffeine-wrapper .navbar.navbar-default .navbar-form input.form-control::-webkit-input-placeholder {
5777
+ color: rgba(255,255,255, 0.84); }
5778
+ .pixel-caffeine-wrapper .navbar .dropdown-menu, .pixel-caffeine-wrapper .navbar.navbar-default .dropdown-menu {
5779
+ border-radius: 4px; }
5780
+ .pixel-caffeine-wrapper .navbar .dropdown-menu li > a, .pixel-caffeine-wrapper .navbar.navbar-default .dropdown-menu li > a {
5781
+ font-size: 16px;
5782
+ padding: 13px 16px; }
5783
+ .pixel-caffeine-wrapper .navbar .dropdown-menu li > a:hover, .pixel-caffeine-wrapper .navbar .dropdown-menu li > a:focus, .pixel-caffeine-wrapper .navbar.navbar-default .dropdown-menu li > a:hover, .pixel-caffeine-wrapper .navbar.navbar-default .dropdown-menu li > a:focus {
5784
+ color: #4C70BA;
5785
+ background-color: #eeeeee; }
5786
+ .pixel-caffeine-wrapper .navbar .dropdown-menu .active > a, .pixel-caffeine-wrapper .navbar.navbar-default .dropdown-menu .active > a {
5787
+ background-color: #4C70BA;
5788
+ color: rgba(255,255,255, 0.84); }
5789
+ .pixel-caffeine-wrapper .navbar .dropdown-menu .active > a:hover, .pixel-caffeine-wrapper .navbar .dropdown-menu .active > a:focus, .pixel-caffeine-wrapper .navbar.navbar-default .dropdown-menu .active > a:hover, .pixel-caffeine-wrapper .navbar.navbar-default .dropdown-menu .active > a:focus {
5790
+ color: rgba(255,255,255, 0.84); }
5791
+ .pixel-caffeine-wrapper .navbar.navbar-inverse {
5792
+ background-color: #3f51b5;
5793
+ color: #ffffff; }
5794
+ .pixel-caffeine-wrapper .navbar.navbar-inverse .navbar-form .form-group input.form-control::-moz-placeholder,
5795
+ .pixel-caffeine-wrapper .navbar.navbar-inverse .navbar-form input.form-control::-moz-placeholder {
5796
+ color: #ffffff; }
5797
+ .pixel-caffeine-wrapper .navbar.navbar-inverse .navbar-form .form-group input.form-control:-ms-input-placeholder,
5798
+ .pixel-caffeine-wrapper .navbar.navbar-inverse .navbar-form input.form-control:-ms-input-placeholder {
5799
+ color: #ffffff; }
5800
+ .pixel-caffeine-wrapper .navbar.navbar-inverse .navbar-form .form-group input.form-control::-webkit-input-placeholder,
5801
+ .pixel-caffeine-wrapper .navbar.navbar-inverse .navbar-form input.form-control::-webkit-input-placeholder {
5802
+ color: #ffffff; }
5803
+ .pixel-caffeine-wrapper .navbar.navbar-inverse .dropdown-menu {
5804
+ border-radius: 4px; }
5805
+ .pixel-caffeine-wrapper .navbar.navbar-inverse .dropdown-menu li > a {
5806
+ font-size: 16px;
5807
+ padding: 13px 16px; }
5808
+ .pixel-caffeine-wrapper .navbar.navbar-inverse .dropdown-menu li > a:hover, .pixel-caffeine-wrapper .navbar.navbar-inverse .dropdown-menu li > a:focus {
5809
+ color: #3f51b5;
5810
+ background-color: #eeeeee; }
5811
+ .pixel-caffeine-wrapper .navbar.navbar-inverse .dropdown-menu .active > a {
5812
+ background-color: #3f51b5;
5813
+ color: #ffffff; }
5814
+ .pixel-caffeine-wrapper .navbar.navbar-inverse .dropdown-menu .active > a:hover, .pixel-caffeine-wrapper .navbar.navbar-inverse .dropdown-menu .active > a:focus {
5815
+ color: #ffffff; }
5816
+ .pixel-caffeine-wrapper .navbar.navbar-primary {
5817
+ background-color: #4C70BA;
5818
+ color: rgba(255,255,255, 0.84); }
5819
+ .pixel-caffeine-wrapper .navbar.navbar-primary .navbar-form .form-group input.form-control::-moz-placeholder,
5820
+ .pixel-caffeine-wrapper .navbar.navbar-primary .navbar-form input.form-control::-moz-placeholder {
5821
+ color: rgba(255,255,255, 0.84); }
5822
+ .pixel-caffeine-wrapper .navbar.navbar-primary .navbar-form .form-group input.form-control:-ms-input-placeholder,
5823
+ .pixel-caffeine-wrapper .navbar.navbar-primary .navbar-form input.form-control:-ms-input-placeholder {
5824
+ color: rgba(255,255,255, 0.84); }
5825
+ .pixel-caffeine-wrapper .navbar.navbar-primary .navbar-form .form-group input.form-control::-webkit-input-placeholder,
5826
+ .pixel-caffeine-wrapper .navbar.navbar-primary .navbar-form input.form-control::-webkit-input-placeholder {
5827
+ color: rgba(255,255,255, 0.84); }
5828
+ .pixel-caffeine-wrapper .navbar.navbar-primary .dropdown-menu {
5829
+ border-radius: 4px; }
5830
+ .pixel-caffeine-wrapper .navbar.navbar-primary .dropdown-menu li > a {
5831
+ font-size: 16px;
5832
+ padding: 13px 16px; }
5833
+ .pixel-caffeine-wrapper .navbar.navbar-primary .dropdown-menu li > a:hover, .pixel-caffeine-wrapper .navbar.navbar-primary .dropdown-menu li > a:focus {
5834
+ color: #4C70BA;
5835
+ background-color: #eeeeee; }
5836
+ .pixel-caffeine-wrapper .navbar.navbar-primary .dropdown-menu .active > a {
5837
+ background-color: #4C70BA;
5838
+ color: rgba(255,255,255, 0.84); }
5839
+ .pixel-caffeine-wrapper .navbar.navbar-primary .dropdown-menu .active > a:hover, .pixel-caffeine-wrapper .navbar.navbar-primary .dropdown-menu .active > a:focus {
5840
+ color: rgba(255,255,255, 0.84); }
5841
+ .pixel-caffeine-wrapper .navbar.navbar-success {
5842
+ background-color: #68AA20;
5843
+ color: rgba(255,255,255, 0.84); }
5844
+ .pixel-caffeine-wrapper .navbar.navbar-success .navbar-form .form-group input.form-control::-moz-placeholder,
5845
+ .pixel-caffeine-wrapper .navbar.navbar-success .navbar-form input.form-control::-moz-placeholder {
5846
+ color: rgba(255,255,255, 0.84); }
5847
+ .pixel-caffeine-wrapper .navbar.navbar-success .navbar-form .form-group input.form-control:-ms-input-placeholder,
5848
+ .pixel-caffeine-wrapper .navbar.navbar-success .navbar-form input.form-control:-ms-input-placeholder {
5849
+ color: rgba(255,255,255, 0.84); }
5850
+ .pixel-caffeine-wrapper .navbar.navbar-success .navbar-form .form-group input.form-control::-webkit-input-placeholder,
5851
+ .pixel-caffeine-wrapper .navbar.navbar-success .navbar-form input.form-control::-webkit-input-placeholder {
5852
+ color: rgba(255,255,255, 0.84); }
5853
+ .pixel-caffeine-wrapper .navbar.navbar-success .dropdown-menu {
5854
+ border-radius: 4px; }
5855
+ .pixel-caffeine-wrapper .navbar.navbar-success .dropdown-menu li > a {
5856
+ font-size: 16px;
5857
+ padding: 13px 16px; }
5858
+ .pixel-caffeine-wrapper .navbar.navbar-success .dropdown-menu li > a:hover, .pixel-caffeine-wrapper .navbar.navbar-success .dropdown-menu li > a:focus {
5859
+ color: #68AA20;
5860
+ background-color: #eeeeee; }
5861
+ .pixel-caffeine-wrapper .navbar.navbar-success .dropdown-menu .active > a {
5862
+ background-color: #68AA20;
5863
+ color: rgba(255,255,255, 0.84); }
5864
+ .pixel-caffeine-wrapper .navbar.navbar-success .dropdown-menu .active > a:hover, .pixel-caffeine-wrapper .navbar.navbar-success .dropdown-menu .active > a:focus {
5865
+ color: rgba(255,255,255, 0.84); }
5866
+ .pixel-caffeine-wrapper .navbar.navbar-info {
5867
+ background-color: #5bc0de;
5868
+ color: rgba(255,255,255, 0.84); }
5869
+ .pixel-caffeine-wrapper .navbar.navbar-info .navbar-form .form-group input.form-control::-moz-placeholder,
5870
+ .pixel-caffeine-wrapper .navbar.navbar-info .navbar-form input.form-control::-moz-placeholder {
5871
+ color: rgba(255,255,255, 0.84); }
5872
+ .pixel-caffeine-wrapper .navbar.navbar-info .navbar-form .form-group input.form-control:-ms-input-placeholder,
5873
+ .pixel-caffeine-wrapper .navbar.navbar-info .navbar-form input.form-control:-ms-input-placeholder {
5874
+ color: rgba(255,255,255, 0.84); }
5875
+ .pixel-caffeine-wrapper .navbar.navbar-info .navbar-form .form-group input.form-control::-webkit-input-placeholder,
5876
+ .pixel-caffeine-wrapper .navbar.navbar-info .navbar-form input.form-control::-webkit-input-placeholder {
5877
+ color: rgba(255,255,255, 0.84); }
5878
+ .pixel-caffeine-wrapper .navbar.navbar-info .dropdown-menu {
5879
+ border-radius: 4px; }
5880
+ .pixel-caffeine-wrapper .navbar.navbar-info .dropdown-menu li > a {
5881
+ font-size: 16px;
5882
+ padding: 13px 16px; }
5883
+ .pixel-caffeine-wrapper .navbar.navbar-info .dropdown-menu li > a:hover, .pixel-caffeine-wrapper .navbar.navbar-info .dropdown-menu li > a:focus {
5884
+ color: #5bc0de;
5885
+ background-color: #eeeeee; }
5886
+ .pixel-caffeine-wrapper .navbar.navbar-info .dropdown-menu .active > a {
5887
+ background-color: #5bc0de;
5888
+ color: rgba(255,255,255, 0.84); }
5889
+ .pixel-caffeine-wrapper .navbar.navbar-info .dropdown-menu .active > a:hover, .pixel-caffeine-wrapper .navbar.navbar-info .dropdown-menu .active > a:focus {
5890
+ color: rgba(255,255,255, 0.84); }
5891
+ .pixel-caffeine-wrapper .navbar.navbar-warning {
5892
+ background-color: #FD9C00;
5893
+ color: rgba(255,255,255, 0.84); }
5894
+ .pixel-caffeine-wrapper .navbar.navbar-warning .navbar-form .form-group input.form-control::-moz-placeholder,
5895
+ .pixel-caffeine-wrapper .navbar.navbar-warning .navbar-form input.form-control::-moz-placeholder {
5896
+ color: rgba(255,255,255, 0.84); }
5897
+ .pixel-caffeine-wrapper .navbar.navbar-warning .navbar-form .form-group input.form-control:-ms-input-placeholder,
5898
+ .pixel-caffeine-wrapper .navbar.navbar-warning .navbar-form input.form-control:-ms-input-placeholder {
5899
+ color: rgba(255,255,255, 0.84); }
5900
+ .pixel-caffeine-wrapper .navbar.navbar-warning .navbar-form .form-group input.form-control::-webkit-input-placeholder,
5901
+ .pixel-caffeine-wrapper .navbar.navbar-warning .navbar-form input.form-control::-webkit-input-placeholder {
5902
+ color: rgba(255,255,255, 0.84); }
5903
+ .pixel-caffeine-wrapper .navbar.navbar-warning .dropdown-menu {
5904
+ border-radius: 4px; }
5905
+ .pixel-caffeine-wrapper .navbar.navbar-warning .dropdown-menu li > a {
5906
+ font-size: 16px;
5907
+ padding: 13px 16px; }
5908
+ .pixel-caffeine-wrapper .navbar.navbar-warning .dropdown-menu li > a:hover, .pixel-caffeine-wrapper .navbar.navbar-warning .dropdown-menu li > a:focus {
5909
+ color: #FD9C00;
5910
+ background-color: #eeeeee; }
5911
+ .pixel-caffeine-wrapper .navbar.navbar-warning .dropdown-menu .active > a {
5912
+ background-color: #FD9C00;
5913
+ color: rgba(255,255,255, 0.84); }
5914
+ .pixel-caffeine-wrapper .navbar.navbar-warning .dropdown-menu .active > a:hover, .pixel-caffeine-wrapper .navbar.navbar-warning .dropdown-menu .active > a:focus {
5915
+ color: rgba(255,255,255, 0.84); }
5916
+ .pixel-caffeine-wrapper .navbar.navbar-danger {
5917
+ background-color: #E15667;
5918
+ color: rgba(255,255,255, 0.84); }
5919
+ .pixel-caffeine-wrapper .navbar.navbar-danger .navbar-form .form-group input.form-control::-moz-placeholder,
5920
+ .pixel-caffeine-wrapper .navbar.navbar-danger .navbar-form input.form-control::-moz-placeholder {
5921
+ color: rgba(255,255,255, 0.84); }
5922
+ .pixel-caffeine-wrapper .navbar.navbar-danger .navbar-form .form-group input.form-control:-ms-input-placeholder,
5923
+ .pixel-caffeine-wrapper .navbar.navbar-danger .navbar-form input.form-control:-ms-input-placeholder {
5924
+ color: rgba(255,255,255, 0.84); }
5925
+ .pixel-caffeine-wrapper .navbar.navbar-danger .navbar-form .form-group input.form-control::-webkit-input-placeholder,
5926
+ .pixel-caffeine-wrapper .navbar.navbar-danger .navbar-form input.form-control::-webkit-input-placeholder {
5927
+ color: rgba(255,255,255, 0.84); }
5928
+ .pixel-caffeine-wrapper .navbar.navbar-danger .dropdown-menu {
5929
+ border-radius: 4px; }
5930
+ .pixel-caffeine-wrapper .navbar.navbar-danger .dropdown-menu li > a {
5931
+ font-size: 16px;
5932
+ padding: 13px 16px; }
5933
+ .pixel-caffeine-wrapper .navbar.navbar-danger .dropdown-menu li > a:hover, .pixel-caffeine-wrapper .navbar.navbar-danger .dropdown-menu li > a:focus {
5934
+ color: #E15667;
5935
+ background-color: #eeeeee; }
5936
+ .pixel-caffeine-wrapper .navbar.navbar-danger .dropdown-menu .active > a {
5937
+ background-color: #E15667;
5938
+ color: rgba(255,255,255, 0.84); }
5939
+ .pixel-caffeine-wrapper .navbar.navbar-danger .dropdown-menu .active > a:hover, .pixel-caffeine-wrapper .navbar.navbar-danger .dropdown-menu .active > a:focus {
5940
+ color: rgba(255,255,255, 0.84); }
5941
+ .pixel-caffeine-wrapper .navbar-inverse {
5942
+ background-color: #3f51b5; }
5943
+ @media (max-width: 1199px) {
5944
+ .pixel-caffeine-wrapper .navbar .navbar-brand {
5945
+ height: 50px;
5946
+ padding: 10px 15px; }
5947
+ .pixel-caffeine-wrapper .navbar .navbar-form {
5948
+ margin-top: 10px; }
5949
+ .pixel-caffeine-wrapper .navbar .navbar-nav > li > a {
5950
+ padding-top: 15px;
5951
+ padding-bottom: 15px; } }
5952
+ .pixel-caffeine-wrapper .dropdown-menu {
5953
+ border: 0;
5954
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); }
5955
+ .pixel-caffeine-wrapper .dropdown-menu .divider {
5956
+ background-color: rgba(0, 0, 0, 0.12); }
5957
+ .pixel-caffeine-wrapper .dropdown-menu li {
5958
+ overflow: hidden;
5959
+ position: relative; }
5960
+ .pixel-caffeine-wrapper .dropdown-menu li a:hover {
5961
+ background-color: transparent;
5962
+ color: #4C70BA; }
5963
+ .pixel-caffeine-wrapper .alert {
5964
+ border: 0;
5965
+ border-radius: 0; }
5966
+ .pixel-caffeine-wrapper .alert, .pixel-caffeine-wrapper .alert.alert-default {
5967
+ background-color: rgba(255,255,255, 0.84);
5968
+ color: rgba(255,255,255, 0.84); }
5969
+ .pixel-caffeine-wrapper .alert a, .pixel-caffeine-wrapper .alert .alert-link, .pixel-caffeine-wrapper .alert.alert-default a, .pixel-caffeine-wrapper .alert.alert-default .alert-link {
5970
+ color: rgba(255,255,255, 0.84); }
5971
+ .pixel-caffeine-wrapper .alert.alert-inverse {
5972
+ background-color: #3f51b5;
5973
+ color: #ffffff; }
5974
+ .pixel-caffeine-wrapper .alert.alert-inverse a, .pixel-caffeine-wrapper .alert.alert-inverse .alert-link {
5975
+ color: #ffffff; }
5976
+ .pixel-caffeine-wrapper .alert.alert-primary {
5977
+ background-color: #4C70BA;
5978
+ color: rgba(255,255,255, 0.84); }
5979
+ .pixel-caffeine-wrapper .alert.alert-primary a, .pixel-caffeine-wrapper .alert.alert-primary .alert-link {
5980
+ color: rgba(255,255,255, 0.84); }
5981
+ .pixel-caffeine-wrapper .alert.alert-success {
5982
+ background-color: #68AA20;
5983
+ color: rgba(255,255,255, 0.84); }
5984
+ .pixel-caffeine-wrapper .alert.alert-success a, .pixel-caffeine-wrapper .alert.alert-success .alert-link {
5985
+ color: rgba(255,255,255, 0.84); }
5986
+ .pixel-caffeine-wrapper .alert.alert-info {
5987
+ background-color: #5bc0de;
5988
+ color: rgba(255,255,255, 0.84); }
5989
+ .pixel-caffeine-wrapper .alert.alert-info a, .pixel-caffeine-wrapper .alert.alert-info .alert-link {
5990
+ color: rgba(255,255,255, 0.84); }
5991
+ .pixel-caffeine-wrapper .alert.alert-warning {
5992
+ background-color: #FD9C00;
5993
+ color: rgba(255,255,255, 0.84); }
5994
+ .pixel-caffeine-wrapper .alert.alert-warning a, .pixel-caffeine-wrapper .alert.alert-warning .alert-link {
5995
+ color: rgba(255,255,255, 0.84); }
5996
+ .pixel-caffeine-wrapper .alert.alert-danger {
5997
+ background-color: #E15667;
5998
+ color: rgba(255,255,255, 0.84); }
5999
+ .pixel-caffeine-wrapper .alert.alert-danger a, .pixel-caffeine-wrapper .alert.alert-danger .alert-link {
6000
+ color: rgba(255,255,255, 0.84); }
6001
+ .pixel-caffeine-wrapper .alert-info, .pixel-caffeine-wrapper .alert-danger, .pixel-caffeine-wrapper .alert-warning, .pixel-caffeine-wrapper .alert-success {
6002
+ color: rgba(255,255,255, 0.84); }
6003
+ .pixel-caffeine-wrapper .alert-default a, .pixel-caffeine-wrapper .alert-default .alert-link {
6004
+ color: rgba(0,0,0, 0.87); }
6005
+ .pixel-caffeine-wrapper .progress {
6006
+ height: 4px;
6007
+ border-radius: 0;
6008
+ box-shadow: none;
6009
+ background: #c8c8c8; }
6010
+ .pixel-caffeine-wrapper .progress .progress-bar {
6011
+ box-shadow: none; }
6012
+ .pixel-caffeine-wrapper .progress .progress-bar, .pixel-caffeine-wrapper .progress .progress-bar.progress-bar-default {
6013
+ background-color: #4C70BA; }
6014
+ .pixel-caffeine-wrapper .progress .progress-bar.progress-bar-inverse {
6015
+ background-color: #3f51b5; }
6016
+ .pixel-caffeine-wrapper .progress .progress-bar.progress-bar-primary {
6017
+ background-color: #4C70BA; }
6018
+ .pixel-caffeine-wrapper .progress .progress-bar.progress-bar-success {
6019
+ background-color: #68AA20; }
6020
+ .pixel-caffeine-wrapper .progress .progress-bar.progress-bar-info {
6021
+ background-color: #5bc0de; }
6022
+ .pixel-caffeine-wrapper .progress .progress-bar.progress-bar-warning {
6023
+ background-color: #FD9C00; }
6024
+ .pixel-caffeine-wrapper .progress .progress-bar.progress-bar-danger {
6025
+ background-color: #E15667; }
6026
+ .pixel-caffeine-wrapper .text-warning {
6027
+ color: #FD9C00; }
6028
+ .pixel-caffeine-wrapper .text-primary {
6029
+ color: #4C70BA; }
6030
+ .pixel-caffeine-wrapper .text-danger {
6031
+ color: #E15667; }
6032
+ .pixel-caffeine-wrapper .text-success {
6033
+ color: #68AA20; }
6034
+ .pixel-caffeine-wrapper .text-info {
6035
+ color: #5bc0de; }
6036
+ .pixel-caffeine-wrapper .nav-tabs {
6037
+ background: #4C70BA; }
6038
+ .pixel-caffeine-wrapper .nav-tabs > li > a {
6039
+ color: #FFFFFF;
6040
+ border: 0;
6041
+ margin: 0; }
6042
+ .pixel-caffeine-wrapper .nav-tabs > li > a:hover {
6043
+ background-color: transparent;
6044
+ border: 0; }
6045
+ .pixel-caffeine-wrapper .nav-tabs > li > a, .pixel-caffeine-wrapper .nav-tabs > li > a:hover, .pixel-caffeine-wrapper .nav-tabs > li > a:focus {
6046
+ background-color: transparent !important;
6047
+ border: 0 !important;
6048
+ color: #FFFFFF !important;
6049
+ font-weight: 500; }
6050
+ .pixel-caffeine-wrapper .nav-tabs > li.disabled > a, .pixel-caffeine-wrapper .nav-tabs > li.disabled > a:hover {
6051
+ color: rgba(255, 255, 255, 0.5); }
6052
+ .pixel-caffeine-wrapper .popover, .pixel-caffeine-wrapper .tooltip-inner {
6053
+ color: #ececec;
6054
+ line-height: 1em;
6055
+ background: rgba(101, 101, 101, 0.9);
6056
+ border: none;
6057
+ border-radius: 4px;
6058
+ box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 1px 6px 0 rgba(0, 0, 0, 0.12); }
6059
+ .pixel-caffeine-wrapper .tooltip, .pixel-caffeine-wrapper .tooltip.in {
6060
+ opacity: 1; }
6061
+ .pixel-caffeine-wrapper .popover .arrow, .pixel-caffeine-wrapper .popover .tooltip-arrow, .pixel-caffeine-wrapper .tooltip .arrow, .pixel-caffeine-wrapper .tooltip .tooltip-arrow {
6062
+ display: none; }
6063
+ .pixel-caffeine-wrapper .card {
6064
+ /***** Make height equal to width (http://stackoverflow.com/a/6615994) ****/
6065
+ display: inline-block;
6066
+ position: relative;
6067
+ width: 100%;
6068
+ /**************************************************************************/
6069
+ border-radius: 4px;
6070
+ color: rgba(0,0,0, 0.87);
6071
+ background: #fff;
6072
+ box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); }
6073
+ .pixel-caffeine-wrapper .card .card-height-indicator {
6074
+ margin-top: 100%; }
6075
+ .pixel-caffeine-wrapper .card .card-content {
6076
+ position: absolute;
6077
+ top: 0;
6078
+ bottom: 0;
6079
+ left: 0;
6080
+ right: 0; }
6081
+ .pixel-caffeine-wrapper .card .card-image {
6082
+ height: 60%;
6083
+ position: relative;
6084
+ overflow: hidden; }
6085
+ .pixel-caffeine-wrapper .card .card-image img {
6086
+ width: 100%;
6087
+ height: 100%;
6088
+ border-top-left-radius: 2px;
6089
+ border-top-right-radius: 2px;
6090
+ pointer-events: none; }
6091
+ .pixel-caffeine-wrapper .card .card-image .card-image-headline {
6092
+ position: absolute;
6093
+ bottom: 16px;
6094
+ left: 18px;
6095
+ color: #fff;
6096
+ font-size: 2em; }
6097
+ .pixel-caffeine-wrapper .card .card-body {
6098
+ height: 30%;
6099
+ padding: 18px; }
6100
+ .pixel-caffeine-wrapper .card .card-footer {
6101
+ height: 10%;
6102
+ padding: 18px; }
6103
+ .pixel-caffeine-wrapper .card .card-footer button, .pixel-caffeine-wrapper .card .card-footer a {
6104
+ margin: 0 !important;
6105
+ position: relative;
6106
+ bottom: 25px;
6107
+ width: auto; }
6108
+ .pixel-caffeine-wrapper .card .card-footer button:first-child, .pixel-caffeine-wrapper .card .card-footer a:first-child {
6109
+ left: -15px; }
6110
+ .pixel-caffeine-wrapper .modal-content {
6111
+ box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2), 0 40px 77px 0 rgba(0, 0, 0, 0.22);
6112
+ border-radius: 4px;
6113
+ border: none; }
6114
+ .pixel-caffeine-wrapper .modal-content .modal-header {
6115
+ border-bottom: none;
6116
+ padding-top: 24px;
6117
+ padding-right: 24px;
6118
+ padding-bottom: 0;
6119
+ padding-left: 24px; }
6120
+ .pixel-caffeine-wrapper .modal-content .modal-body {
6121
+ padding-top: 24px;
6122
+ padding-right: 24px;
6123
+ padding-bottom: 16px;
6124
+ padding-left: 24px; }
6125
+ .pixel-caffeine-wrapper .modal-content .modal-footer {
6126
+ border-top: none;
6127
+ padding: 7px; }
6128
+ .pixel-caffeine-wrapper .modal-content .modal-footer button {
6129
+ margin: 0;
6130
+ padding-left: 16px;
6131
+ padding-right: 16px;
6132
+ width: auto; }
6133
+ .pixel-caffeine-wrapper .modal-content .modal-footer button.pull-left {
6134
+ padding-left: 5px;
6135
+ padding-right: 5px;
6136
+ position: relative;
6137
+ left: -5px; }
6138
+ .pixel-caffeine-wrapper .modal-content .modal-footer button + button {
6139
+ margin-bottom: 16px; }
6140
+ .pixel-caffeine-wrapper .modal-content .modal-body + .modal-footer {
6141
+ padding-top: 0; }
6142
+ .pixel-caffeine-wrapper .modal-backdrop {
6143
+ background: rgba(0, 0, 0, 0.3); }
6144
+ .pixel-caffeine-wrapper .panel {
6145
+ border-radius: 2px;
6146
+ border: 0;
6147
+ box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 1px 6px 0 rgba(0, 0, 0, 0.12); }
6148
+ .pixel-caffeine-wrapper .panel > .panel-heading, .pixel-caffeine-wrapper .panel.panel-default > .panel-heading {
6149
+ background-color: #eeeeee; }
6150
+ .pixel-caffeine-wrapper .panel.panel-inverse > .panel-heading {
6151
+ background-color: #3f51b5; }
6152
+ .pixel-caffeine-wrapper .panel.panel-primary > .panel-heading {
6153
+ background-color: #4C70BA; }
6154
+ .pixel-caffeine-wrapper .panel.panel-success > .panel-heading {
6155
+ background-color: #68AA20; }
6156
+ .pixel-caffeine-wrapper .panel.panel-info > .panel-heading {
6157
+ background-color: #5bc0de; }
6158
+ .pixel-caffeine-wrapper .panel.panel-warning > .panel-heading {
6159
+ background-color: #FD9C00; }
6160
+ .pixel-caffeine-wrapper .panel.panel-danger > .panel-heading {
6161
+ background-color: #E15667; }
6162
+ .pixel-caffeine-wrapper [class*="panel-"] > .panel-heading {
6163
+ color: rgba(255,255,255, 0.84);
6164
+ border: 0; }
6165
+ .pixel-caffeine-wrapper .panel-default > .panel-heading, .pixel-caffeine-wrapper .panel:not([class*="panel-"]) > .panel-heading {
6166
+ color: rgba(0,0,0, 0.87); }
6167
+ .pixel-caffeine-wrapper .panel-footer {
6168
+ background-color: #eeeeee; }
6169
+ .pixel-caffeine-wrapper hr.on-dark {
6170
+ color: #5e5e5e; }
6171
+ .pixel-caffeine-wrapper hr.on-light {
6172
+ color: white; }
6173
+ @media (-webkit-min-device-pixel-ratio: 0.75), (min--moz-device-pixel-ratio: 0.75), (-o-device-pixel-ratio: 3 / 4), (min-device-pixel-ratio: 0.75), (min-resolution: 0.75dppx), (min-resolution: 120dpi) {
6174
+ .pixel-caffeine-wrapper hr {
6175
+ height: 0.75px; } }
6176
+ @media (-webkit-min-device-pixel-ratio: 1), (min--moz-device-pixel-ratio: 1), (-o-device-pixel-ratio: 1), (min-device-pixel-ratio: 1), (min-resolution: 1dppx), (min-resolution: 160dpi) {
6177
+ .pixel-caffeine-wrapper hr {
6178
+ height: 1px; } }
6179
+ @media (-webkit-min-device-pixel-ratio: 1.33), (min--moz-device-pixel-ratio: 1.33), (-o-device-pixel-ratio: 133 / 100), (min-device-pixel-ratio: 1.33), (min-resolution: 1.33dppx), (min-resolution: 213dpi) {
6180
+ .pixel-caffeine-wrapper hr {
6181
+ height: 1.333px; } }
6182
+ @media (-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-device-pixel-ratio: 3 / 2), (min-device-pixel-ratio: 1.5), (min-resolution: 1.5dppx), (min-resolution: 240dpi) {
6183
+ .pixel-caffeine-wrapper hr {
6184
+ height: 1.5px; } }
6185
+ @media (-webkit-min-device-pixel-ratio: 2), (min--moz-device-pixel-ratio: 2), (-o-device-pixel-ratio: 2 / 1), (min-device-pixel-ratio: 2), (min-resolution: 2dppx), (min-resolution: 380dpi) {
6186
+ .pixel-caffeine-wrapper hr {
6187
+ height: 2px; } }
6188
+ @media (-webkit-min-device-pixel-ratio: 3), (min--moz-device-pixel-ratio: 3), (-o-device-pixel-ratio: 3 / 1), (min-device-pixel-ratio: 3), (min-resolution: 3dppx), (min-resolution: 480dpi) {
6189
+ .pixel-caffeine-wrapper hr {
6190
+ height: 3px; } }
6191
+ @media (-webkit-min-device-pixel-ratio: 4), (min--moz-device-pixel-ratio: 4), (-o-device-pixel-ratio: 4 / 1), (min-device-pixel-ratio: 3), (min-resolution: 4dppx), (min-resolution: 640dpi) {
6192
+ .pixel-caffeine-wrapper hr {
6193
+ height: 4px; } }
6194
+ .pixel-caffeine-wrapper * {
6195
+ -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
6196
+ -webkit-tap-highlight-color: transparent; }
6197
+ .pixel-caffeine-wrapper *:focus {
6198
+ outline: 0; }
6199
+ .pixel-caffeine-wrapper .snackbar {
6200
+ background-color: #323232;
6201
+ color: rgba(255,255,255, 0.84);
6202
+ font-size: 14px;
6203
+ border-radius: 4px;
6204
+ box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 1px 6px 0 rgba(0, 0, 0, 0.12);
6205
+ height: 0;
6206
+ transition: transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0s linear 0.2s, padding 0s linear 0.2s, height 0s linear 0.2s;
6207
+ transform: translateY(200%); }
6208
+ .pixel-caffeine-wrapper .snackbar.snackbar-opened {
6209
+ padding: 14px 15px;
6210
+ margin-bottom: 20px;
6211
+ height: auto;
6212
+ transition: transform 0.2s ease-in-out, opacity 0.2s ease-in, height 0s linear 0.2s, height 0s linear 0.2s;
6213
+ transform: none; }
6214
+ .pixel-caffeine-wrapper .snackbar.toast {
6215
+ border-radius: 200px; }
6216
+ .pixel-caffeine-wrapper .noUi-target,
6217
+ .pixel-caffeine-wrapper .noUi-target * {
6218
+ -webkit-touch-callout: none;
6219
+ -ms-touch-action: none;
6220
+ user-select: none;
6221
+ box-sizing: border-box; }
6222
+ .pixel-caffeine-wrapper .noUi-base {
6223
+ width: 100%;
6224
+ height: 100%;
6225
+ position: relative; }
6226
+ .pixel-caffeine-wrapper .noUi-origin {
6227
+ position: absolute;
6228
+ right: 0;
6229
+ top: 0;
6230
+ left: 0;
6231
+ bottom: 0; }
6232
+ .pixel-caffeine-wrapper .noUi-handle {
6233
+ position: relative;
6234
+ z-index: 1;
6235
+ box-sizing: border-box; }
6236
+ .pixel-caffeine-wrapper .noUi-stacking .noUi-handle {
6237
+ z-index: 10; }
6238
+ .pixel-caffeine-wrapper .noUi-state-tap .noUi-origin {
6239
+ transition: left 0.3s, top 0.3s; }
6240
+ .pixel-caffeine-wrapper .noUi-state-drag * {
6241
+ cursor: inherit !important; }
6242
+ .pixel-caffeine-wrapper .noUi-horizontal {
6243
+ height: 10px; }
6244
+ .pixel-caffeine-wrapper .noUi-handle {
6245
+ box-sizing: border-box;
6246
+ width: 12px;
6247
+ height: 12px;
6248
+ left: -10px;
6249
+ top: -5px;
6250
+ cursor: ew-resize;
6251
+ border-radius: 100%;
6252
+ transition: all 0.2s ease-out;
6253
+ border: 1px solid; }
6254
+ .pixel-caffeine-wrapper .noUi-vertical .noUi-handle {
6255
+ margin-left: 5px;
6256
+ cursor: ns-resize; }
6257
+ .pixel-caffeine-wrapper .noUi-horizontal.noUi-extended {
6258
+ padding: 0 15px; }
6259
+ .pixel-caffeine-wrapper .noUi-horizontal.noUi-extended .noUi-origin {
6260
+ right: -15px; }
6261
+ .pixel-caffeine-wrapper .noUi-background {
6262
+ height: 2px;
6263
+ margin: 20px 0; }
6264
+ .pixel-caffeine-wrapper .noUi-origin {
6265
+ margin: 0;
6266
+ border-radius: 0;
6267
+ height: 2px;
6268
+ background: #c8c8c8; }
6269
+ .pixel-caffeine-wrapper .noUi-origin[style^="left: 0"] .noUi-handle {
6270
+ background-color: #fff;
6271
+ border: 2px solid #c8c8c8; }
6272
+ .pixel-caffeine-wrapper .noUi-origin[style^="left: 0"] .noUi-handle.noUi-active {
6273
+ border-width: 1px; }
6274
+ .pixel-caffeine-wrapper .noUi-target {
6275
+ border-radius: 4px; }
6276
+ .pixel-caffeine-wrapper .noUi-horizontal {
6277
+ height: 2px;
6278
+ margin: 15px 0; }
6279
+ .pixel-caffeine-wrapper .noUi-vertical {
6280
+ height: 100%;
6281
+ width: 2px;
6282
+ margin: 0 15px;
6283
+ display: inline-block; }
6284
+ .pixel-caffeine-wrapper .noUi-handle.noUi-active {
6285
+ transform: scale3d(2.5, 2.5, 1); }
6286
+ .pixel-caffeine-wrapper [disabled].noUi-slider {
6287
+ opacity: 0.5; }
6288
+ .pixel-caffeine-wrapper [disabled] .noUi-handle {
6289
+ cursor: not-allowed; }
6290
+ .pixel-caffeine-wrapper .slider {
6291
+ background: #c8c8c8; }
6292
+ .pixel-caffeine-wrapper .slider.noUi-connect, .pixel-caffeine-wrapper .slider.slider-default.noUi-connect {
6293
+ background-color: #4C70BA; }
6294
+ .pixel-caffeine-wrapper .slider.slider-inverse.noUi-connect {
6295
+ background-color: #3f51b5; }
6296
+ .pixel-caffeine-wrapper .slider.slider-primary.noUi-connect {
6297
+ background-color: #4C70BA; }
6298
+ .pixel-caffeine-wrapper .slider.slider-success.noUi-connect {
6299
+ background-color: #68AA20; }
6300
+ .pixel-caffeine-wrapper .slider.slider-info.noUi-connect {
6301
+ background-color: #5bc0de; }
6302
+ .pixel-caffeine-wrapper .slider.slider-warning.noUi-connect {
6303
+ background-color: #FD9C00; }
6304
+ .pixel-caffeine-wrapper .slider.slider-danger.noUi-connect {
6305
+ background-color: #E15667; }
6306
+ .pixel-caffeine-wrapper .slider .noUi-connect, .pixel-caffeine-wrapper .slider.slider-default .noUi-connect {
6307
+ background-color: #4C70BA; }
6308
+ .pixel-caffeine-wrapper .slider.slider-inverse .noUi-connect {
6309
+ background-color: #3f51b5; }
6310
+ .pixel-caffeine-wrapper .slider.slider-primary .noUi-connect {
6311
+ background-color: #4C70BA; }
6312
+ .pixel-caffeine-wrapper .slider.slider-success .noUi-connect {
6313
+ background-color: #68AA20; }
6314
+ .pixel-caffeine-wrapper .slider.slider-info .noUi-connect {
6315
+ background-color: #5bc0de; }
6316
+ .pixel-caffeine-wrapper .slider.slider-warning .noUi-connect {
6317
+ background-color: #FD9C00; }
6318
+ .pixel-caffeine-wrapper .slider.slider-danger .noUi-connect {
6319
+ background-color: #E15667; }
6320
+ .pixel-caffeine-wrapper .slider .noUi-handle, .pixel-caffeine-wrapper .slider.slider-default .noUi-handle {
6321
+ background-color: #4C70BA; }
6322
+ .pixel-caffeine-wrapper .slider.slider-inverse .noUi-handle {
6323
+ background-color: #3f51b5; }
6324
+ .pixel-caffeine-wrapper .slider.slider-primary .noUi-handle {
6325
+ background-color: #4C70BA; }
6326
+ .pixel-caffeine-wrapper .slider.slider-success .noUi-handle {
6327
+ background-color: #68AA20; }
6328
+ .pixel-caffeine-wrapper .slider.slider-info .noUi-handle {
6329
+ background-color: #5bc0de; }
6330
+ .pixel-caffeine-wrapper .slider.slider-warning .noUi-handle {
6331
+ background-color: #FD9C00; }
6332
+ .pixel-caffeine-wrapper .slider.slider-danger .noUi-handle {
6333
+ background-color: #E15667; }
6334
+ .pixel-caffeine-wrapper .slider .noUi-handle, .pixel-caffeine-wrapper .slider.slider-default .noUi-handle {
6335
+ border-color: #4C70BA; }
6336
+ .pixel-caffeine-wrapper .slider.slider-inverse .noUi-handle {
6337
+ border-color: #3f51b5; }
6338
+ .pixel-caffeine-wrapper .slider.slider-primary .noUi-handle {
6339
+ border-color: #4C70BA; }
6340
+ .pixel-caffeine-wrapper .slider.slider-success .noUi-handle {
6341
+ border-color: #68AA20; }
6342
+ .pixel-caffeine-wrapper .slider.slider-info .noUi-handle {
6343
+ border-color: #5bc0de; }
6344
+ .pixel-caffeine-wrapper .slider.slider-warning .noUi-handle {
6345
+ border-color: #FD9C00; }
6346
+ .pixel-caffeine-wrapper .slider.slider-danger .noUi-handle {
6347
+ border-color: #E15667; }
6348
+ .pixel-caffeine-wrapper .selectize-control.single, .pixel-caffeine-wrapper .selectize-control.multi {
6349
+ padding: 0; }
6350
+ .pixel-caffeine-wrapper .selectize-control.single .selectize-input, .pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active {
6351
+ cursor: text;
6352
+ background: transparent;
6353
+ box-shadow: none;
6354
+ border: 0;
6355
+ padding: 0;
6356
+ height: 100%;
6357
+ font-size: 14px;
6358
+ line-height: 30px; }
6359
+ .pixel-caffeine-wrapper .selectize-control.single .selectize-input .has-items, .pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active .has-items, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input .has-items, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active .has-items {
6360
+ padding: 0; }
6361
+ .pixel-caffeine-wrapper .selectize-control.single .selectize-input:after, .pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active:after, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input:after, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active:after {
6362
+ right: 5px;
6363
+ position: absolute;
6364
+ font-size: 25px;
6365
+ content: "\e5c5";
6366
+ font-family: 'Material Icons';
6367
+ speak: none;
6368
+ font-style: normal;
6369
+ font-weight: normal;
6370
+ font-variant: normal;
6371
+ text-transform: none;
6372
+ line-height: 1;
6373
+ -webkit-font-smoothing: antialiased;
6374
+ -moz-osx-font-smoothing: grayscale; }
6375
+ .pixel-caffeine-wrapper .selectize-control.single .selectize-input input, .pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active input, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input input, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active input {
6376
+ font-size: 14px;
6377
+ outline: 0;
6378
+ border: 0;
6379
+ background: transparent; }
6380
+ .pixel-caffeine-wrapper .selectize-control.single .selectize-input.label-floating-fix input, .pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active.label-floating-fix input, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input.label-floating-fix input, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active.label-floating-fix input {
6381
+ opacity: 0; }
6382
+ .pixel-caffeine-wrapper .selectize-control.single .selectize-input > div, .pixel-caffeine-wrapper .selectize-control.single .selectize-input > .item, .pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active > div, .pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active > .item, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input > div, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input > .item, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active > div, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active > .item {
6383
+ display: inline-block;
6384
+ margin: 0 8px 3px 0;
6385
+ padding: 0;
6386
+ background: transparent;
6387
+ border: 0; }
6388
+ .pixel-caffeine-wrapper .selectize-control.single .selectize-input > div:after, .pixel-caffeine-wrapper .selectize-control.single .selectize-input > .item:after, .pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active > div:after, .pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active > .item:after, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input > div:after, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input > .item:after, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active > div:after, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active > .item:after {
6389
+ content: ","; }
6390
+ .pixel-caffeine-wrapper .selectize-control.single .selectize-input > div:last-of-type:after, .pixel-caffeine-wrapper .selectize-control.single .selectize-input > .item:last-of-type:after, .pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active > div:last-of-type:after, .pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active > .item:last-of-type:after, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input > div:last-of-type:after, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input > .item:last-of-type:after, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active > div:last-of-type:after, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active > .item:last-of-type:after {
6391
+ content: ""; }
6392
+ .pixel-caffeine-wrapper .selectize-control.single .selectize-input > div.active, .pixel-caffeine-wrapper .selectize-control.single .selectize-input > .item.active, .pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active > div.active, .pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active > .item.active, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input > div.active, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input > .item.active, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active > div.active, .pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active > .item.active {
6393
+ font-weight: bold;
6394
+ background: transparent;
6395
+ border: 0; }
6396
+ .pixel-caffeine-wrapper .selectize-control.single .selectize-dropdown, .pixel-caffeine-wrapper .selectize-control.multi .selectize-dropdown {
6397
+ position: absolute;
6398
+ z-index: 1000;
6399
+ border: 0;
6400
+ width: 100% !important;
6401
+ left: 0 !important;
6402
+ height: auto;
6403
+ background-color: #FFF;
6404
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
6405
+ border-radius: 4px;
6406
+ padding: 0;
6407
+ margin-top: 3px; }
6408
+ .pixel-caffeine-wrapper .selectize-control.single .selectize-dropdown .active, .pixel-caffeine-wrapper .selectize-control.multi .selectize-dropdown .active {
6409
+ background-color: inherit; }
6410
+ .pixel-caffeine-wrapper .selectize-control.single .selectize-dropdown .highlight, .pixel-caffeine-wrapper .selectize-control.multi .selectize-dropdown .highlight {
6411
+ background-color: #d5d8ff; }
6412
+ .pixel-caffeine-wrapper .selectize-control.single .selectize-dropdown .selected, .pixel-caffeine-wrapper .selectize-control.single .selectize-dropdown .selected.active, .pixel-caffeine-wrapper .selectize-control.multi .selectize-dropdown .selected, .pixel-caffeine-wrapper .selectize-control.multi .selectize-dropdown .selected.active {
6413
+ background-color: #EEEEEE; }
6414
+ .pixel-caffeine-wrapper .selectize-control.single .selectize-dropdown [data-selectable], .pixel-caffeine-wrapper .selectize-control.single .selectize-dropdown .optgroup-header, .pixel-caffeine-wrapper .selectize-control.multi .selectize-dropdown [data-selectable], .pixel-caffeine-wrapper .selectize-control.multi .selectize-dropdown .optgroup-header {
6415
+ padding: 10px 20px;
6416
+ cursor: pointer; }
6417
+ .pixel-caffeine-wrapper .selectize-control.single .dropdown-active ~ .selectize-dropdown, .pixel-caffeine-wrapper .selectize-control.multi .dropdown-active ~ .selectize-dropdown {
6418
+ display: block; }
6419
+ .pixel-caffeine-wrapper .dropdownjs::after {
6420
+ right: 5px;
6421
+ top: 3px;
6422
+ font-size: 25px;
6423
+ position: absolute;
6424
+ font-family: 'Material Icons';
6425
+ font-style: normal;
6426
+ font-weight: 400;
6427
+ content: "\e5c5";
6428
+ pointer-events: none;
6429
+ color: #757575; }
6430
+ .pixel-caffeine-wrapper .withripple {
6431
+ position: relative; }
6432
+ .pixel-caffeine-wrapper .ripple-container {
6433
+ position: absolute;
6434
+ top: 0;
6435
+ left: 0;
6436
+ z-index: 1;
6437
+ width: 100%;
6438
+ height: 100%;
6439
+ overflow: hidden;
6440
+ border-radius: inherit;
6441
+ pointer-events: none; }
6442
+ .pixel-caffeine-wrapper .ripple {
6443
+ position: absolute;
6444
+ width: 20px;
6445
+ height: 20px;
6446
+ margin-left: -10px;
6447
+ margin-top: -10px;
6448
+ border-radius: 100%;
6449
+ background-color: #000;
6450
+ background-color: rgba(0, 0, 0, 0.05);
6451
+ transform: scale(1);
6452
+ transform-origin: 50%;
6453
+ opacity: 0;
6454
+ pointer-events: none; }
6455
+ .pixel-caffeine-wrapper .ripple.ripple-on {
6456
+ transition: opacity 0.15s ease-in 0s, transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s;
6457
+ opacity: 0.1; }
6458
+ .pixel-caffeine-wrapper .ripple.ripple-out {
6459
+ transition: opacity 0.1s linear 0s !important;
6460
+ opacity: 0; }
6461
+ .pixel-caffeine-wrapper table {
6462
+ border-collapse: collapse;
6463
+ border-spacing: 0; }
6464
+ .pixel-caffeine-wrapper .material-icons {
6465
+ font-family: 'Material Icons';
6466
+ font-weight: normal;
6467
+ font-style: normal;
6468
+ font-size: 24px;
6469
+ line-height: 1;
6470
+ letter-spacing: normal;
6471
+ text-transform: none;
6472
+ display: inline-block;
6473
+ white-space: nowrap;
6474
+ word-wrap: normal;
6475
+ direction: ltr;
6476
+ -webkit-font-feature-settings: 'liga';
6477
+ -webkit-font-smoothing: antialiased; }
6478
+ .pixel-caffeine-wrapper .wrap {
6479
+ background: transparent; }
6480
+ .pixel-caffeine-wrapper h1, .pixel-caffeine-wrapper h2, .pixel-caffeine-wrapper h3, .pixel-caffeine-wrapper h4, .pixel-caffeine-wrapper h5, .pixel-caffeine-wrapper h6 {
6481
+ font-weight: 700; }
6482
+ .pixel-caffeine-wrapper strong {
6483
+ font-weight: 600; }
6484
+ .pixel-caffeine-wrapper .actions .btn-fab {
6485
+ margin: 0 5px; }
6486
+ .pixel-caffeine-wrapper .actions .btn-fab.btn-mini {
6487
+ margin: 0 2px; }
6488
+ .pixel-caffeine-wrapper .wrap .page-title {
6489
+ margin-bottom: 10px;
6490
+ font-size: 28px;
6491
+ font-weight: 400; }
6492
+ .pixel-caffeine-wrapper .nav-tab:hover, .pixel-caffeine-wrapper .nav-tab:focus {
6493
+ background-color: #fff;
6494
+ color: #555555; }
6495
+ .pixel-caffeine-wrapper .nav-tab:hover, .pixel-caffeine-wrapper .nav-tab:focus, .pixel-caffeine-wrapper .nav-tab {
6496
+ color: #555555;
6497
+ text-decoration: none; }
6498
+ .pixel-caffeine-wrapper .nav-tab-active:hover, .pixel-caffeine-wrapper .nav-tab-active:focus, .pixel-caffeine-wrapper .nav-tab-active {
6499
+ border-bottom-color: #fafafa;
6500
+ color: #000;
6501
+ background: #fafafa; }
6502
+ .pixel-caffeine-wrapper .nav-tab-active,
6503
+ .pixel-caffeine-wrapper .plugin-sec {
6504
+ background: #fafafa; }
6505
+ .pixel-caffeine-wrapper .plugin-sec {
6506
+ padding: 30px;
6507
+ border: 1px solid #CCC; }
6508
+ .pixel-caffeine-wrapper .plugin-sec .plugin-sidebar {
6509
+ margin-top: 30px; }
6510
+ .pixel-caffeine-wrapper .plugin-sec .plugin-sidebar:before, .pixel-caffeine-wrapper .plugin-sec .plugin-sidebar:after {
6511
+ content: " ";
6512
+ display: table; }
6513
+ .pixel-caffeine-wrapper .plugin-sec .plugin-sidebar:after {
6514
+ clear: both; }
6515
+ .pixel-caffeine-wrapper .plugin-sec .plugin-sidebar-item {
6516
+ margin: 15px 0; }
6517
+ .pixel-caffeine-wrapper .plugin-sec .plugin-sidebar-item.fake-item .loading-msg {
6518
+ display: block;
6519
+ margin-bottom: 5px; }
6520
+ .pixel-caffeine-wrapper .plugin-sec .plugin-sidebar-item.fake-item .list-group .row-content {
6521
+ position: relative;
6522
+ min-height: 60px;
6523
+ background: url("../img/placeholder-loading-news.png") no-repeat 0 0;
6524
+ background-size: 100% 100%;
6525
+ opacity: 0.3; }
6526
+ @media screen and (min-width: 1200px) {
6527
+ .pixel-caffeine-wrapper .plugin-sec .plugin-sidebar-item.fake-item .list-group .row-content::before {
6528
+ content: "";
6529
+ position: absolute;
6530
+ top: 0;
6531
+ left: 0;
6532
+ display: block;
6533
+ width: 100%;
6534
+ height: 100%;
6535
+ animation: placeholder-shimmer 1s linear forwards infinite;
6536
+ background: #fafafa;
6537
+ background: linear-gradient(to right, transparent 8%, #fafafa 18%, transparent 33%);
6538
+ background-size: 800px 104px; } }
6539
+ .pixel-caffeine-wrapper .plugin-sec .banner-wrap {
6540
+ float: left;
6541
+ width: 250px;
6542
+ margin: 0 30px 30px 0;
6543
+ box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 1px 6px 0 rgba(0, 0, 0, 0.12); }
6544
+ .pixel-caffeine-wrapper .plugin-sec .banner-wrap a {
6545
+ background: #fff; }
6546
+ .pixel-caffeine-wrapper .plugin-sec .banner-wrap a:hover img {
6547
+ opacity: 0.9; }
6548
+ .pixel-caffeine-wrapper .plugin-sec .banner-wrap a:active img {
6549
+ opacity: 1; }
6550
+ .pixel-caffeine-wrapper .plugin-sec .banner-wrap img {
6551
+ display: block;
6552
+ width: 100%;
6553
+ height: auto;
6554
+ border: 5px solid #fff;
6555
+ transition: opacity 0.3s ease-out; }
6556
+ @media screen and (min-width: 1200px) {
6557
+ .pixel-caffeine-wrapper .plugin-sec {
6558
+ display: -webkit-box;
6559
+ display: -moz-box;
6560
+ display: -ms-flexbox;
6561
+ display: -webkit-flex;
6562
+ display: flex; }
6563
+ .pixel-caffeine-wrapper .plugin-sec .plugin-content {
6564
+ width: calc(100% - 250px - 30px);
6565
+ margin-right: 30px; }
6566
+ .pixel-caffeine-wrapper .plugin-sec .plugin-sidebar {
6567
+ width: 250px;
6568
+ margin-top: 0; } }
6569
+ .pixel-caffeine-wrapper .sec-overlay {
6570
+ position: relative; }
6571
+ .pixel-caffeine-wrapper .sec-overlay::after {
6572
+ background: rgba(0, 0, 0, 0.3);
6573
+ content: "";
6574
+ width: 100%;
6575
+ height: 100%;
6576
+ position: absolute;
6577
+ top: 0;
6578
+ left: 0;
6579
+ z-index: 1; }
6580
+ .pixel-caffeine-wrapper .sec-overlay .bumping {
6581
+ z-index: 2;
6582
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36); }
6583
+ .pixel-caffeine-wrapper .data-group {
6584
+ position: relative; }
6585
+ .pixel-caffeine-wrapper .data-group:before, .pixel-caffeine-wrapper .data-group:after {
6586
+ content: " ";
6587
+ display: table; }
6588
+ .pixel-caffeine-wrapper .data-group:after {
6589
+ clear: both; }
6590
+ .pixel-caffeine-wrapper .data-group .data {
6591
+ display: inline-block;
6592
+ margin-bottom: 5px;
6593
+ text-align: right;
6594
+ font-size: 14px;
6595
+ line-height: 1.42857;
6596
+ color: #919191;
6597
+ font-weight: 400; }
6598
+ .pixel-caffeine-wrapper .data-group .value {
6599
+ font-size: 14px; }
6600
+ .pixel-caffeine-wrapper .data-group .value-info {
6601
+ display: inline-block;
6602
+ vertical-align: middle; }
6603
+ .pixel-caffeine-wrapper .form-group,
6604
+ .pixel-caffeine-wrapper .data-group {
6605
+ margin-left: 0;
6606
+ margin-right: 0;
6607
+ margin-top: 0px;
6608
+ padding-bottom: 8px; }
6609
+ .pixel-caffeine-wrapper .panel .data-group,
6610
+ .pixel-caffeine-wrapper .panel .form-group {
6611
+ margin-left: 0;
6612
+ margin-right: 0; }
6613
+ .pixel-caffeine-wrapper .text-status {
6614
+ display: inline-block;
6615
+ vertical-align: middle;
6616
+ font-size: 14px; }
6617
+ .pixel-caffeine-wrapper .text-status-pending {
6618
+ color: #FD9C00; }
6619
+ .pixel-caffeine-wrapper .control-wrap {
6620
+ font-size: 14px; }
6621
+ .pixel-caffeine-wrapper .form-group label.control-label {
6622
+ padding-top: 7px;
6623
+ padding-bottom: 7px;
6624
+ margin-top: 0;
6625
+ font-size: 14px;
6626
+ color: #919191;
6627
+ text-transform: none; }
6628
+ .pixel-caffeine-wrapper .form-group .checkbox label,
6629
+ .pixel-caffeine-wrapper .form-group .radio label {
6630
+ font-weight: 300; }
6631
+ .pixel-caffeine-wrapper .form-group .multiple-fields .form-group {
6632
+ display: -webkit-box;
6633
+ display: -moz-box;
6634
+ display: -ms-flexbox;
6635
+ display: -webkit-flex;
6636
+ display: flex;
6637
+ -ms-flex-align: center;
6638
+ -webkit-align-items: center;
6639
+ align-items: center;
6640
+ padding-bottom: 20px; }
6641
+ .pixel-caffeine-wrapper .form-group .multiple-fields .control-wrap {
6642
+ -webkit-box-flex: 1 1 auto;
6643
+ -moz-box-flex: 1 1 auto;
6644
+ -webkit-flex: 1 1 auto;
6645
+ -ms-flex: 1 1 auto;
6646
+ flex: 1 1 auto;
6647
+ padding-left: 0; }
6648
+ .pixel-caffeine-wrapper .form-group .multiple-fields .control-wrap .form-control {
6649
+ margin-bottom: 0; }
6650
+ .pixel-caffeine-wrapper .form-group .multiple-fields .control-wrap + .control-wrap {
6651
+ padding-left: 15px; }
6652
+ .pixel-caffeine-wrapper .form-group .help-block {
6653
+ position: relative;
6654
+ display: inherit; }
6655
+ .pixel-caffeine-wrapper .form-group.has-error .form-control,
6656
+ .pixel-caffeine-wrapper .form-group.has-error .select2-container .select2-choice,
6657
+ .pixel-caffeine-wrapper .form-group.has-error .select2-container .select2-choices {
6658
+ background-color: #fceeef; }
6659
+ .pixel-caffeine-wrapper .form-group.has-error .text,
6660
+ .pixel-caffeine-wrapper .form-group.has-error .select2-chosen {
6661
+ color: #E15667; }
6662
+ .pixel-caffeine-wrapper .form-group .form-control[disabled] {
6663
+ background-color: #f6f6f6;
6664
+ color: #BDBDBD; }
6665
+ .pixel-caffeine-wrapper .form-group .checkbox label,
6666
+ .pixel-caffeine-wrapper .form-group .radio label,
6667
+ .pixel-caffeine-wrapper .form-group.is-focused .checkbox label,
6668
+ .pixel-caffeine-wrapper .form-group.is-focused .radio label {
6669
+ color: #444;
6670
+ font-weight: 400; }
6671
+ .pixel-caffeine-wrapper .form-group.is-focused .checkbox label:hover, .pixel-caffeine-wrapper .form-group.is-focused .checkbox label:focus,
6672
+ .pixel-caffeine-wrapper .form-group.is-focused label.checkbox-inline:hover,
6673
+ .pixel-caffeine-wrapper .form-group.is-focused label.checkbox-inline:focus {
6674
+ color: #444; }
6675
+ .pixel-caffeine-wrapper .form-group .help-block-error, .pixel-caffeine-wrapper .form-group.is-focused .help-block-error {
6676
+ display: none; }
6677
+ .pixel-caffeine-wrapper .form-group.has-error .help-block-error {
6678
+ display: block; }
6679
+ .pixel-caffeine-wrapper .radio label,
6680
+ .pixel-caffeine-wrapper label.radio-inline {
6681
+ padding-left: 32px; }
6682
+ .pixel-caffeine-wrapper .checkbox {
6683
+ position: relative;
6684
+ padding-left: 30px; }
6685
+ .pixel-caffeine-wrapper .checkbox .checkbox-material {
6686
+ position: absolute;
6687
+ top: 0;
6688
+ left: 0;
6689
+ width: 20px;
6690
+ height: 20px; }
6691
+ .pixel-caffeine-wrapper .checkbox .checkbox-material::before {
6692
+ top: 0; }
6693
+ .pixel-caffeine-wrapper .checkbox .checkbox-material .check {
6694
+ border-radius: 0; }
6695
+ .pixel-caffeine-wrapper .checkbox .text {
6696
+ display: block; }
6697
+ .pixel-caffeine-wrapper .multi-form-group:before, .pixel-caffeine-wrapper .multi-form-group:after {
6698
+ content: " ";
6699
+ display: table; }
6700
+ .pixel-caffeine-wrapper .multi-form-group:after {
6701
+ clear: both; }
6702
+ @media screen and (min-width: 992px) {
6703
+ .pixel-caffeine-wrapper .multi-form-group .sub-form-group {
6704
+ position: relative;
6705
+ min-height: 1px;
6706
+ padding-left: 15px;
6707
+ padding-right: 15px;
6708
+ float: right !important; } }
6709
+ @media screen and (min-width: 992px) and (min-width: 992px) {
6710
+ .pixel-caffeine-wrapper .multi-form-group .sub-form-group {
6711
+ float: left;
6712
+ width: 83.33333%; } }
6713
+
6714
+ @media screen and (min-width: 992px) {
6715
+ .pixel-caffeine-wrapper .modal .multi-form-group .sub-form-group {
6716
+ position: relative;
6717
+ min-height: 1px;
6718
+ padding-left: 15px;
6719
+ padding-right: 15px;
6720
+ padding-left: 0;
6721
+ padding-right: 0; } }
6722
+ @media screen and (min-width: 992px) and (min-width: 992px) {
6723
+ .pixel-caffeine-wrapper .modal .multi-form-group .sub-form-group {
6724
+ float: left;
6725
+ width: 100%; } }
6726
+
6727
+ .pixel-caffeine-wrapper input {
6728
+ margin-top: 0;
6729
+ margin-left: 0;
6730
+ margin-right: 0; }
6731
+ .pixel-caffeine-wrapper .form-toggle {
6732
+ padding-top: 12px;
6733
+ padding-bottom: 20px; }
6734
+ .pixel-caffeine-wrapper .form-toggle .control-wrap {
6735
+ display: inline-block;
6736
+ vertical-align: middle; }
6737
+ .pixel-caffeine-wrapper .form-toggle .text-status {
6738
+ margin-top: 0.3em; }
6739
+ .pixel-caffeine-wrapper .togglebutton {
6740
+ display: inline-block;
6741
+ vertical-align: middle;
6742
+ padding-left: 15px; }
6743
+ .pixel-caffeine-wrapper .togglebutton label {
6744
+ margin-bottom: 0; }
6745
+ .pixel-caffeine-wrapper .togglebutton label input {
6746
+ position: absolute; }
6747
+ .pixel-caffeine-wrapper .togglebutton label input[type=checkbox]:checked + .toggle {
6748
+ background: rgba(104, 170, 32, 0.5); }
6749
+ .pixel-caffeine-wrapper .togglebutton label input[type=checkbox]:checked + .toggle::after {
6750
+ background: #68AA20; }
6751
+ .pixel-caffeine-wrapper .togglebutton.pending label input[type=checkbox] + .toggle {
6752
+ background: rgba(253, 156, 0, 0.5); }
6753
+ .pixel-caffeine-wrapper .togglebutton.pending label input[type=checkbox] + .toggle::after {
6754
+ background: #FD9C00; }
6755
+ @media screen and (min-width: 992px) {
6756
+ .pixel-caffeine-wrapper .form-horizontal .togglebutton,
6757
+ .pixel-caffeine-wrapper .form-inline .togglebutton {
6758
+ padding-left: 0; } }
6759
+ .pixel-caffeine-wrapper .form-horizontal .togglebutton,
6760
+ .pixel-caffeine-wrapper .form-inline .togglebutton {
6761
+ margin-top: 0.3em; }
6762
+ .pixel-caffeine-wrapper .form-control,
6763
+ .pixel-caffeine-wrapper .form-group .form-control {
6764
+ background-color: #f2f4fa;
6765
+ padding-left: 10px;
6766
+ padding-right: 10px; }
6767
+ .pixel-caffeine-wrapper .form-control::-moz-placeholder,
6768
+ .pixel-caffeine-wrapper .form-group .form-control::-moz-placeholder {
6769
+ font-weight: 300; }
6770
+ .pixel-caffeine-wrapper .form-control:-ms-input-placeholder,
6771
+ .pixel-caffeine-wrapper .form-group .form-control:-ms-input-placeholder {
6772
+ font-weight: 300; }
6773
+ .pixel-caffeine-wrapper .form-control::-webkit-input-placeholder,
6774
+ .pixel-caffeine-wrapper .form-group .form-control::-webkit-input-placeholder {
6775
+ font-weight: 300; }
6776
+ .pixel-caffeine-wrapper .form-group-lg .form-control {
6777
+ font-size: 2em; }
6778
+ .pixel-caffeine-wrapper .form-group-lg.sub-panel {
6779
+ margin-top: 0; }
6780
+ .pixel-caffeine-wrapper .multiple-fields-actions .btn {
6781
+ margin-top: 0;
6782
+ margin-bottom: 0; }
6783
+ .pixel-caffeine-wrapper .form-inline .control-wrap {
6784
+ display: inline-block;
6785
+ width: auto;
6786
+ vertical-align: middle;
6787
+ margin-right: 10px; }
6788
+ .pixel-caffeine-wrapper .form-inline label.control-label {
6789
+ margin-right: 10px; }
6790
+ .pixel-caffeine-wrapper .form-inline .text {
6791
+ font-size: 14px; }
6792
+ .pixel-caffeine-wrapper .form-horizontal .control-label {
6793
+ position: relative;
6794
+ min-height: 1px;
6795
+ padding-left: 15px;
6796
+ padding-right: 15px; }
6797
+ @media (min-width: 992px) {
6798
+ .pixel-caffeine-wrapper .form-horizontal .control-label {
6799
+ float: left;
6800
+ width: 16.66667%; } }
6801
+ .pixel-caffeine-wrapper .form-horizontal .control-wrap {
6802
+ position: relative;
6803
+ min-height: 1px;
6804
+ padding-left: 15px;
6805
+ padding-right: 15px; }
6806
+ @media (min-width: 992px) {
6807
+ .pixel-caffeine-wrapper .form-horizontal .control-wrap {
6808
+ float: left;
6809
+ width: 83.33333%; } }
6810
+ .pixel-caffeine-wrapper .form-horizontal .control-label,
6811
+ .pixel-caffeine-wrapper .form-horizontal .data-group .data,
6812
+ .pixel-caffeine-wrapper .form-horizontal .control-wrap,
6813
+ .pixel-caffeine-wrapper .form-horizontal .data-group .value {
6814
+ padding-left: 0;
6815
+ padding-right: 0; }
6816
+ .pixel-caffeine-wrapper .form-horizontal .checkbox .checkbx-material {
6817
+ top: 10px; }
6818
+ .pixel-caffeine-wrapper .form-horizontal .list-filter {
6819
+ padding-top: 7px; }
6820
+ .pixel-caffeine-wrapper .form-horizontal .form-inline .control-wrap {
6821
+ float: none;
6822
+ width: auto; }
6823
+ .pixel-caffeine-wrapper .form-horizontal .form-inline .form-control {
6824
+ display: inline-block;
6825
+ width: auto;
6826
+ vertical-align: middle; }
6827
+ @media screen and (min-width: 992px) {
6828
+ .pixel-caffeine-wrapper .form-horizontal .form-group,
6829
+ .pixel-caffeine-wrapper .form-horizontal .data-group {
6830
+ padding-bottom: 20px; }
6831
+ .pixel-caffeine-wrapper .form-horizontal .control-label,
6832
+ .pixel-caffeine-wrapper .form-horizontal .data-group .data {
6833
+ padding-right: 15px; }
6834
+ .pixel-caffeine-wrapper .form-horizontal .form-group:not(.form-toggle) .control-label {
6835
+ margin-top: 0.3em; }
6836
+ .pixel-caffeine-wrapper .form-horizontal .control-wrap,
6837
+ .pixel-caffeine-wrapper .form-horizontal .data-group .data + .value {
6838
+ padding-left: 15px; }
6839
+ .pixel-caffeine-wrapper .form-horizontal .form-toggle {
6840
+ padding-top: 0; }
6841
+ .pixel-caffeine-wrapper .form-horizontal .form-inline .control-label {
6842
+ margin-right: 0; }
6843
+ .pixel-caffeine-wrapper .form-horizontal .help-block {
6844
+ position: absolute;
6845
+ margin-top: -5px; }
6846
+ .pixel-caffeine-wrapper .form-horizontal .has-error-long.has-error.form-group, .pixel-caffeine-wrapper .form-horizontal .has-error-long.has-error.data-group {
6847
+ padding-bottom: 0; }
6848
+ .pixel-caffeine-wrapper .form-horizontal .has-error-long.has-error .help-block {
6849
+ position: static; }
6850
+ .pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .control-label,
6851
+ .pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .data-group .data {
6852
+ position: relative;
6853
+ min-height: 1px;
6854
+ padding-left: 15px;
6855
+ padding-right: 15px; } }
6856
+ @media screen and (min-width: 992px) and (min-width: 992px) {
6857
+ .pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .control-label,
6858
+ .pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .data-group .data {
6859
+ float: left;
6860
+ width: 16.66667%; } }
6861
+ @media screen and (min-width: 992px) {
6862
+ .pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .control-wrap,
6863
+ .pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .data-group .value {
6864
+ position: relative;
6865
+ min-height: 1px;
6866
+ padding-left: 15px;
6867
+ padding-right: 15px; } }
6868
+ @media screen and (min-width: 992px) and (min-width: 992px) {
6869
+ .pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .control-wrap,
6870
+ .pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .data-group .value {
6871
+ float: left;
6872
+ width: 83.33333%; } }
6873
+
6874
+ .pixel-caffeine-wrapper .form-horizontal .data-group .data {
6875
+ position: relative;
6876
+ min-height: 1px;
6877
+ padding-left: 15px;
6878
+ padding-right: 15px; }
6879
+ @media (min-width: 768px) {
6880
+ .pixel-caffeine-wrapper .form-horizontal .data-group .data {
6881
+ float: left;
6882
+ width: 16.66667%; } }
6883
+ .pixel-caffeine-wrapper .form-horizontal .data-group .value {
6884
+ position: relative;
6885
+ min-height: 1px;
6886
+ padding-left: 15px;
6887
+ padding-right: 15px; }
6888
+ @media (min-width: 768px) {
6889
+ .pixel-caffeine-wrapper .form-horizontal .data-group .value {
6890
+ float: left;
6891
+ width: 83.33333%; } }
6892
+ .pixel-caffeine-wrapper .form-horizontal-inline .form-control,
6893
+ .pixel-caffeine-wrapper .form-horizontal-inline .text {
6894
+ display: inline-block;
6895
+ vertical-align: middle; }
6896
+ .pixel-caffeine-wrapper .form-horizontal-inline .form-control {
6897
+ width: auto;
6898
+ margin-right: 10px; }
6899
+ .pixel-caffeine-wrapper .form-vertical .form-group {
6900
+ padding-bottom: 8px; }
6901
+ @media screen and (min-width: 992px) {
6902
+ .pixel-caffeine-wrapper .form-vertical > .form-group > .control-label, .pixel-caffeine-wrapper .form-vertical > .form-group > .control-wrap,
6903
+ .pixel-caffeine-wrapper .form-vertical .multiple-fields {
6904
+ float: none;
6905
+ padding-left: 0;
6906
+ padding-right: 0; }
6907
+ .pixel-caffeine-wrapper .form-vertical .control-label {
6908
+ width: auto;
6909
+ text-align: left; }
6910
+ .pixel-caffeine-wrapper .form-vertical .control-wrap {
6911
+ width: 100%; }
6912
+ .pixel-caffeine-wrapper .form-vertical .multiple-fields .control-wrap {
6913
+ width: auto; } }
6914
+ .pixel-caffeine-wrapper .radio {
6915
+ margin-top: 10px;
6916
+ margin-bottom: 10px; }
6917
+ .pixel-caffeine-wrapper p {
6918
+ font-size: 14px;
6919
+ line-height: 1.42857; }
6920
+ .pixel-caffeine-wrapper .jumbotron {
6921
+ background: #fff;
6922
+ padding: 35px;
6923
+ box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 1px 6px 0 rgba(0, 0, 0, 0.12); }
6924
+ .pixel-caffeine-wrapper .jumbotron .tit {
6925
+ margin-top: 0;
6926
+ margin-bottom: 20px; }
6927
+ .pixel-caffeine-wrapper .panel > .panel-heading, .pixel-caffeine-wrapper .panel > .panel-footer {
6928
+ background: #fff; }
6929
+ .pixel-caffeine-wrapper .panel .panel-footer:before, .pixel-caffeine-wrapper .panel .panel-footer:after {
6930
+ content: " ";
6931
+ display: table; }
6932
+ .pixel-caffeine-wrapper .panel .panel-footer:after {
6933
+ clear: both; }
6934
+ .pixel-caffeine-wrapper .panel .panel-footer .form-control {
6935
+ margin-bottom: 0; }
6936
+ .pixel-caffeine-wrapper .panel > .panel-heading {
6937
+ display: -webkit-box;
6938
+ display: -moz-box;
6939
+ display: -ms-flexbox;
6940
+ display: -webkit-flex;
6941
+ display: flex;
6942
+ -ms-flex-align: center;
6943
+ -webkit-align-items: center;
6944
+ align-items: center;
6945
+ -ms-flex-pack: space-between;
6946
+ -webkit-justify-content: space-between;
6947
+ justify-content: space-between;
6948
+ border-bottom: 1px solid #ddd; }
6949
+ .pixel-caffeine-wrapper .panel > .panel-heading .text-status {
6950
+ display: block;
6951
+ text-transform: none;
6952
+ margin-top: 5px; }
6953
+ .pixel-caffeine-wrapper .panel .panel-heading {
6954
+ color: #444;
6955
+ text-transform: uppercase; }
6956
+ .pixel-caffeine-wrapper .panel .panel-heading .tit {
6957
+ display: inline-block;
6958
+ margin-top: 0.2em;
6959
+ margin-bottom: 0;
6960
+ font-size: 24px; }
6961
+ .pixel-caffeine-wrapper .panel .panel-heading .tit::before {
6962
+ margin-top: -0.2em;
6963
+ margin-right: 20px;
6964
+ color: #c4c4c4;
6965
+ font-size: 1.5em; }
6966
+ .pixel-caffeine-wrapper .panel .panel-heading .btn {
6967
+ margin: 0 0 0 10px; }
6968
+ .pixel-caffeine-wrapper .panel .panel-heading .form-group {
6969
+ padding: 0; }
6970
+ .pixel-caffeine-wrapper .panel .panel-heading .form-toggle {
6971
+ text-align: right; }
6972
+ .pixel-caffeine-wrapper .panel .panel-heading .form-toggle .toggle {
6973
+ margin-right: 6px; }
6974
+ .pixel-caffeine-wrapper .panel .panel-heading .form-toggle .text-status {
6975
+ font-style: italic; }
6976
+ .pixel-caffeine-wrapper .panel .panel-heading .form-toggle .control-label {
6977
+ padding-right: 0; }
6978
+ .pixel-caffeine-wrapper .panel .panel {
6979
+ box-shadow: none; }
6980
+ .pixel-caffeine-wrapper .panel .panel .panel-heading {
6981
+ padding: 0; }
6982
+ .pixel-caffeine-wrapper .panel .panel .panel-heading .tit {
6983
+ font-size: 20px; }
6984
+ .pixel-caffeine-wrapper .panel .panel .panel-body {
6985
+ padding-left: 0;
6986
+ padding-right: 0; }
6987
+ .pixel-caffeine-wrapper .panel .panel .panel-heading {
6988
+ border-bottom: none;
6989
+ margin-top: 40px; }
6990
+ .pixel-caffeine-wrapper .panel .panel .panel-heading::before {
6991
+ font-size: 2.5em; }
6992
+ .pixel-caffeine-wrapper .panel .panel .form-group {
6993
+ margin-top: 0;
6994
+ padding-bottom: 0; }
6995
+ .pixel-caffeine-wrapper .modal .panel {
6996
+ box-shadow: none;
6997
+ margin-top: 40px; }
6998
+ .pixel-caffeine-wrapper .modal .panel-body {
6999
+ padding: 0; }
7000
+ .pixel-caffeine-wrapper .modal .panel-heading {
7001
+ border: 0;
7002
+ padding: 10px 0; }
7003
+ .pixel-caffeine-wrapper .modal .panel-heading .tit {
7004
+ font-size: 16px; }
7005
+ .pixel-caffeine-wrapper .modal .panel-heading .tit::before {
7006
+ margin-right: 5px; }
7007
+ .pixel-caffeine-wrapper .sub-panel .tit {
7008
+ font-size: 20px; }
7009
+ .pixel-caffeine-wrapper .panel.disabled,
7010
+ .pixel-caffeine-wrapper .sub-panel.disabled {
7011
+ background: #fafafa;
7012
+ color: #b7b7b7; }
7013
+ .pixel-caffeine-wrapper .panel.disabled .divider,
7014
+ .pixel-caffeine-wrapper .sub-panel.disabled .divider {
7015
+ background: #fafafa; }
7016
+ .pixel-caffeine-wrapper .panel.disabled .btn-help,
7017
+ .pixel-caffeine-wrapper .sub-panel.disabled .btn-help {
7018
+ color: inherit; }
7019
+ .pixel-caffeine-wrapper .table th {
7020
+ text-transform: uppercase; }
7021
+ .pixel-caffeine-wrapper .table .actions {
7022
+ text-align: center; }
7023
+ .pixel-caffeine-wrapper .table .actions .btn {
7024
+ margin: 5px; }
7025
+ .pixel-caffeine-wrapper .table .info-extra {
7026
+ display: block;
7027
+ color: #919191; }
7028
+ @media screen and (min-width: 767px) {
7029
+ .pixel-caffeine-wrapper .table .btn-group,
7030
+ .pixel-caffeine-wrapper .table .btn-group-sm {
7031
+ min-width: 130px;
7032
+ text-align: center; } }
7033
+ .pixel-caffeine-wrapper .pagination > .active > a,
7034
+ .pixel-caffeine-wrapper .pagination > .active > a:hover,
7035
+ .pixel-caffeine-wrapper .pagination > .active > a:focus,
7036
+ .pixel-caffeine-wrapper .pagination > .active > span,
7037
+ .pixel-caffeine-wrapper .pagination > .active > span:hover,
7038
+ .pixel-caffeine-wrapper .pagination > .active > span:focus {
7039
+ background-color: #4C70BA;
7040
+ border-color: #4C70BA; }
7041
+ .pixel-caffeine-wrapper .pagination > li > a,
7042
+ .pixel-caffeine-wrapper .pagination .pagination > li > span {
7043
+ color: #4C70BA; }
7044
+ .pixel-caffeine-wrapper .btn,
7045
+ .pixel-caffeine-wrapper .input-group-btn .btn {
7046
+ padding: 8px 30px; }
7047
+ .pixel-caffeine-wrapper .btn:not(.btn-fab), .pixel-caffeine-wrapper .btn:not(.btn-raised), .pixel-caffeine-wrapper .btn:not(.btn-naked), .pixel-caffeine-wrapper .btn.btn-fab.btn-default, .pixel-caffeine-wrapper .btn.btn-raised.btn-default {
7048
+ background: #f2f2f2; }
7049
+ .pixel-caffeine-wrapper .btn:not(.btn-fab):hover, .pixel-caffeine-wrapper .btn:not(.btn-raised):hover, .pixel-caffeine-wrapper .btn:not(.btn-naked):hover, .pixel-caffeine-wrapper .btn.btn-fab.btn-default:hover, .pixel-caffeine-wrapper .btn.btn-raised.btn-default:hover {
7050
+ background: #e6e6e6; }
7051
+ .pixel-caffeine-wrapper .btn::before {
7052
+ font-size: 24px; }
7053
+ .pixel-caffeine-wrapper .btn:not(.btn-primary)
7054
+ :not(.btn-success)
7055
+ :not(.btn-info)
7056
+ :not(.btn-warning)
7057
+ :not(.btn-danger)
7058
+ :not(.active)::before {
7059
+ color: #444; }
7060
+ .pixel-caffeine-wrapper .btn.btn-primary.btn-raised:not(.btn-link), .pixel-caffeine-wrapper .btn.btn-success.btn-raised:not(.btn-link), .pixel-caffeine-wrapper .btn.btn-info.btn-raised:not(.btn-link), .pixel-caffeine-wrapper .btn.btn-warning.btn-raised:not(.btn-link), .pixel-caffeine-wrapper .btn.btn-danger.btn-raised:not(.btn-link) {
7061
+ color: #FFF; }
7062
+ .pixel-caffeine-wrapper .btn.btn-primary.btn-fab:not(.btn-link)::before, .pixel-caffeine-wrapper .btn.btn-primary.btn-raised:not(.btn-link)::before, .pixel-caffeine-wrapper .btn.btn-success.btn-fab:not(.btn-link)::before, .pixel-caffeine-wrapper .btn.btn-success.btn-raised:not(.btn-link)::before, .pixel-caffeine-wrapper .btn.btn-info.btn-fab:not(.btn-link)::before, .pixel-caffeine-wrapper .btn.btn-info.btn-raised:not(.btn-link)::before, .pixel-caffeine-wrapper .btn.btn-warning.btn-fab:not(.btn-link)::before, .pixel-caffeine-wrapper .btn.btn-warning.btn-raised:not(.btn-link)::before, .pixel-caffeine-wrapper .btn.btn-danger.btn-fab:not(.btn-link)::before, .pixel-caffeine-wrapper .btn.btn-danger.btn-raised:not(.btn-link)::before {
7063
+ color: #FFF; }
7064
+ .pixel-caffeine-wrapper .btn.btn-primary.btn-fab:not(.btn-link):hover, .pixel-caffeine-wrapper .btn.btn-primary.btn-fab:not(.btn-link):focus, .pixel-caffeine-wrapper .btn.btn-success.btn-fab:not(.btn-link):hover, .pixel-caffeine-wrapper .btn.btn-success.btn-fab:not(.btn-link):focus, .pixel-caffeine-wrapper .btn.btn-info.btn-fab:not(.btn-link):hover, .pixel-caffeine-wrapper .btn.btn-info.btn-fab:not(.btn-link):focus, .pixel-caffeine-wrapper .btn.btn-warning.btn-fab:not(.btn-link):hover, .pixel-caffeine-wrapper .btn.btn-warning.btn-fab:not(.btn-link):focus, .pixel-caffeine-wrapper .btn.btn-danger.btn-fab:not(.btn-link):hover, .pixel-caffeine-wrapper .btn.btn-danger.btn-fab:not(.btn-link):focus {
7065
+ background: currentColor;
7066
+ -webkit-box-shadow: 0 0 10px currentColor;
7067
+ box-shadow: 0 0 10px currentColor; }
7068
+ .pixel-caffeine-wrapper .btn.disabled {
7069
+ pointer-events: none; }
7070
+ .pixel-caffeine-wrapper .btn:not(:empty):not(.btn-fab)::before {
7071
+ margin-right: 0.4em; }
7072
+ .pixel-caffeine-wrapper .btn.btn-naked {
7073
+ background: transparent;
7074
+ box-shadow: none;
7075
+ color: #777777; }
7076
+ .pixel-caffeine-wrapper .btn.btn-naked.btn-raised {
7077
+ box-shadow: none; }
7078
+ .pixel-caffeine-wrapper .btn.btn-naked.btn-raised:hover {
7079
+ background: #e6e6e6; }
7080
+ .pixel-caffeine-wrapper .btn.btn-fab,
7081
+ .pixel-caffeine-wrapper .btn.btn-fab.btn-default {
7082
+ -webkit-transition: all 0.3s ease-out;
7083
+ -o-transition: all 0.3s ease-out;
7084
+ transition: all 0.3s ease-out; }
7085
+ .pixel-caffeine-wrapper .btn.btn-fab::before,
7086
+ .pixel-caffeine-wrapper .btn.btn-fab.btn-default::before {
7087
+ position: absolute;
7088
+ top: 50%;
7089
+ left: 50%;
7090
+ -webkit-transform: translate(-12px, -12px);
7091
+ -ms-transform: translate(-12px, -12px);
7092
+ -o-transform: translate(-12px, -12px);
7093
+ transform: translate(-12px, -12px);
7094
+ line-height: 24px;
7095
+ width: 24px;
7096
+ font-size: 24px; }
7097
+ .pixel-caffeine-wrapper .btn.btn-fab .ripple.ripple-on,
7098
+ .pixel-caffeine-wrapper .btn.btn-fab.btn-default .ripple.ripple-on {
7099
+ opacity: 0.3; }
7100
+ .pixel-caffeine-wrapper .btn.btn-fab .ripple.ripple-out,
7101
+ .pixel-caffeine-wrapper .btn.btn-fab.btn-default .ripple.ripple-out {
7102
+ opacity: 0; }
7103
+ .pixel-caffeine-wrapper .btn-group-sm .btn.btn-fab,
7104
+ .pixel-caffeine-wrapper .btn.btn-fab.btn-fab-mini {
7105
+ padding: 0;
7106
+ width: 28px;
7107
+ min-width: 28px;
7108
+ height: 28px; }
7109
+ .pixel-caffeine-wrapper .btn-group-sm .btn.btn-fab::before,
7110
+ .pixel-caffeine-wrapper .btn.btn-fab.btn-fab-mini::before {
7111
+ -webkit-transform: translate(-14px, -14px);
7112
+ -ms-transform: translate(-14px, -14px);
7113
+ -o-transform: translate(-14px, -14px);
7114
+ transform: translate(-14px, -14px);
7115
+ line-height: 28px;
7116
+ width: 28px;
7117
+ font-size: 16px; }
7118
+ .pixel-caffeine-wrapper .btn.btn-fab.btn-primary {
7119
+ background: #4C70BA;
7120
+ color: #4C70BA; }
7121
+ .pixel-caffeine-wrapper .btn.btn-fab.btn-success {
7122
+ background: #68AA20;
7123
+ color: #68AA20; }
7124
+ .pixel-caffeine-wrapper .btn.btn-fab.btn-info {
7125
+ background: #5bc0de;
7126
+ color: #5bc0de; }
7127
+ .pixel-caffeine-wrapper .btn.btn-fab.btn-warning {
7128
+ background: #FD9C00;
7129
+ color: #FD9C00; }
7130
+ .pixel-caffeine-wrapper .btn.btn-fab.btn-danger {
7131
+ background: #E15667;
7132
+ color: #E15667; }
7133
+ .pixel-caffeine-wrapper .btn.btn-delete::before {
7134
+ content: "delete";
7135
+ font-family: 'Material Icons';
7136
+ font-weight: normal;
7137
+ font-style: normal;
7138
+ line-height: 1;
7139
+ letter-spacing: normal;
7140
+ text-transform: none;
7141
+ display: inline-block;
7142
+ vertical-align: middle;
7143
+ white-space: nowrap;
7144
+ word-wrap: normal;
7145
+ direction: ltr;
7146
+ -webkit-font-feature-settings: 'liga';
7147
+ -webkit-font-smoothing: antialiased; }
7148
+ .pixel-caffeine-wrapper .btn.btn-clone::before {
7149
+ content: "queue";
7150
+ font-family: 'Material Icons';
7151
+ font-weight: normal;
7152
+ font-style: normal;
7153
+ line-height: 1;
7154
+ letter-spacing: normal;
7155
+ text-transform: none;
7156
+ display: inline-block;
7157
+ vertical-align: middle;
7158
+ white-space: nowrap;
7159
+ word-wrap: normal;
7160
+ direction: ltr;
7161
+ -webkit-font-feature-settings: 'liga';
7162
+ -webkit-font-smoothing: antialiased; }
7163
+ .pixel-caffeine-wrapper .btn.btn-edit::before {
7164
+ content: "mode_edit";
7165
+ font-family: 'Material Icons';
7166
+ font-weight: normal;
7167
+ font-style: normal;
7168
+ line-height: 1;
7169
+ letter-spacing: normal;
7170
+ text-transform: none;
7171
+ display: inline-block;
7172
+ vertical-align: middle;
7173
+ white-space: nowrap;
7174
+ word-wrap: normal;
7175
+ direction: ltr;
7176
+ -webkit-font-feature-settings: 'liga';
7177
+ -webkit-font-smoothing: antialiased; }
7178
+ .pixel-caffeine-wrapper .btn.btn-include::before {
7179
+ content: "add_circle_outline";
7180
+ font-family: 'Material Icons';
7181
+ font-weight: normal;
7182
+ font-style: normal;
7183
+ line-height: 1;
7184
+ letter-spacing: normal;
7185
+ text-transform: none;
7186
+ display: inline-block;
7187
+ vertical-align: middle;
7188
+ white-space: nowrap;
7189
+ word-wrap: normal;
7190
+ direction: ltr;
7191
+ -webkit-font-feature-settings: 'liga';
7192
+ -webkit-font-smoothing: antialiased; }
7193
+ .pixel-caffeine-wrapper .btn.btn-exclude::before {
7194
+ content: "remove_circle_outline";
7195
+ font-family: 'Material Icons';
7196
+ font-weight: normal;
7197
+ font-style: normal;
7198
+ line-height: 1;
7199
+ letter-spacing: normal;
7200
+ text-transform: none;
7201
+ display: inline-block;
7202
+ vertical-align: middle;
7203
+ white-space: nowrap;
7204
+ word-wrap: normal;
7205
+ direction: ltr;
7206
+ -webkit-font-feature-settings: 'liga';
7207
+ -webkit-font-smoothing: antialiased; }
7208
+ .pixel-caffeine-wrapper .btn.btn-sync::before {
7209
+ content: "sync";
7210
+ font-family: 'Material Icons';
7211
+ font-weight: normal;
7212
+ font-style: normal;
7213
+ line-height: 1;
7214
+ letter-spacing: normal;
7215
+ text-transform: none;
7216
+ display: inline-block;
7217
+ vertical-align: middle;
7218
+ white-space: nowrap;
7219
+ word-wrap: normal;
7220
+ direction: ltr;
7221
+ -webkit-font-feature-settings: 'liga';
7222
+ -webkit-font-smoothing: antialiased; }
7223
+ .pixel-caffeine-wrapper .btn.btn-help {
7224
+ background: transparent;
7225
+ box-shadow: none;
7226
+ color: #777777; }
7227
+ .pixel-caffeine-wrapper .btn.btn-help::before {
7228
+ content: "help_outline";
7229
+ font-family: 'Material Icons';
7230
+ font-weight: normal;
7231
+ font-style: normal;
7232
+ line-height: 1;
7233
+ letter-spacing: normal;
7234
+ text-transform: none;
7235
+ display: inline-block;
7236
+ vertical-align: middle;
7237
+ white-space: nowrap;
7238
+ word-wrap: normal;
7239
+ direction: ltr;
7240
+ -webkit-font-feature-settings: 'liga';
7241
+ -webkit-font-smoothing: antialiased; }
7242
+ .pixel-caffeine-wrapper .btn-config::before {
7243
+ content: "build";
7244
+ font-family: 'Material Icons';
7245
+ font-weight: normal;
7246
+ font-style: normal;
7247
+ line-height: 1;
7248
+ letter-spacing: normal;
7249
+ text-transform: none;
7250
+ display: inline-block;
7251
+ vertical-align: middle;
7252
+ white-space: nowrap;
7253
+ word-wrap: normal;
7254
+ direction: ltr;
7255
+ -webkit-font-feature-settings: 'liga';
7256
+ -webkit-font-smoothing: antialiased; }
7257
+ .pixel-caffeine-wrapper .btn-save::before {
7258
+ content: "save";
7259
+ font-family: 'Material Icons';
7260
+ font-weight: normal;
7261
+ font-style: normal;
7262
+ line-height: 1;
7263
+ letter-spacing: normal;
7264
+ text-transform: none;
7265
+ display: inline-block;
7266
+ vertical-align: middle;
7267
+ white-space: nowrap;
7268
+ word-wrap: normal;
7269
+ direction: ltr;
7270
+ -webkit-font-feature-settings: 'liga';
7271
+ -webkit-font-smoothing: antialiased; }
7272
+ .pixel-caffeine-wrapper .btn-apply::before {
7273
+ content: "check";
7274
+ font-family: 'Material Icons';
7275
+ font-weight: normal;
7276
+ font-style: normal;
7277
+ line-height: 1;
7278
+ letter-spacing: normal;
7279
+ text-transform: none;
7280
+ display: inline-block;
7281
+ vertical-align: middle;
7282
+ white-space: nowrap;
7283
+ word-wrap: normal;
7284
+ direction: ltr;
7285
+ -webkit-font-feature-settings: 'liga';
7286
+ -webkit-font-smoothing: antialiased; }
7287
+ .pixel-caffeine-wrapper .btn.btn-fb-connect {
7288
+ padding-top: 12px;
7289
+ padding-bottom: 12px;
7290
+ white-space: normal;
7291
+ font-weight: 600;
7292
+ line-height: 1.2em; }
7293
+ .pixel-caffeine-wrapper .btn.btn-fb-connect::before {
7294
+ content: "";
7295
+ display: inline-block;
7296
+ vertical-align: middle;
7297
+ width: 20px;
7298
+ height: 20px;
7299
+ background: url("../img/icon-fb.svg") no-repeat;
7300
+ background-size: contain;
7301
+ margin: -4px 0.5em 0 0; }
7302
+ .pixel-caffeine-wrapper .btn.btn-fb-connect[disabled], .pixel-caffeine-wrapper .btn.btn-fb-connect[disabled]:hover {
7303
+ background: #4C70BA;
7304
+ color: #FFF; }
7305
+ .pixel-caffeine-wrapper .btn-save.btn-plugin,
7306
+ .pixel-caffeine-wrapper .btn-config {
7307
+ font-size: 2em; }
7308
+ .pixel-caffeine-wrapper .panel-footer .btn-save.btn-plugin {
7309
+ float: right;
7310
+ font-size: 1.5em; }
7311
+ .pixel-caffeine-wrapper .btn-config::before,
7312
+ .pixel-caffeine-wrapper .btn-save::before {
7313
+ margin-right: 10px;
7314
+ font-size: 2em; }
7315
+ .pixel-caffeine-wrapper .btn-group-toggle .btn {
7316
+ text-align: center; }
7317
+ .pixel-caffeine-wrapper .btn-group-toggle .btn.active,
7318
+ .pixel-caffeine-wrapper .btn-group-toggle .btn.btn-raised:not(.btn-link).active,
7319
+ .pixel-caffeine-wrapper .btn-group-toggle .btn.btn-raised:not(.btn-link).hover,
7320
+ .pixel-caffeine-wrapper .btn-group-toggle .btn.btn-raised:not(.btn-link):focus.active,
7321
+ .pixel-caffeine-wrapper .btn-group-toggle .btn.btn-raised:not(.btn-link):focus.active:hover {
7322
+ -webkit-box-shadow: none;
7323
+ box-shadow: none; }
7324
+ .pixel-caffeine-wrapper .btn-group-toggle .btn.btn.active,
7325
+ .pixel-caffeine-wrapper .btn-group-toggle .btn.btn-raised:not(.btn-link).active {
7326
+ color: #FFF;
7327
+ background: #4C70BA; }
7328
+ .pixel-caffeine-wrapper .btn-group-toggle .btn.btn-raised:not(.btn-link):focus.active:hover {
7329
+ background: #718dc8; }
7330
+ .pixel-caffeine-wrapper .tooltip-inner {
7331
+ padding: 5px 8px; }
7332
+ .pixel-caffeine-wrapper .modal {
7333
+ background: rgba(76, 112, 186, 0.5);
7334
+ z-index: 9990; }
7335
+ .pixel-caffeine-wrapper .modal .modal-header .modal-title {
7336
+ padding-top: 10px;
7337
+ text-transform: uppercase; }
7338
+ .pixel-caffeine-wrapper .modal .modal-header .close {
7339
+ margin-left: 10px;
7340
+ font-size: 3em;
7341
+ font-weight: normal; }
7342
+ .pixel-caffeine-wrapper .modal .modal-body,
7343
+ .pixel-caffeine-wrapper .modal .modal-footer {
7344
+ padding-left: 24px;
7345
+ padding-right: 24px; }
7346
+ .pixel-caffeine-wrapper .modal .modal-footer {
7347
+ padding-bottom: 24px; }
7348
+ .pixel-caffeine-wrapper .alert .close {
7349
+ opacity: 0.5; }
7350
+ .pixel-caffeine-wrapper .alert a,
7351
+ .pixel-caffeine-wrapper .alert .alert-link {
7352
+ color: inherit;
7353
+ text-decoration: underline; }
7354
+ .pixel-caffeine-wrapper .alert a:hover,
7355
+ .pixel-caffeine-wrapper .alert .alert-link:hover {
7356
+ opacity: 0.8; }
7357
+ .pixel-caffeine-wrapper .alert a.btn {
7358
+ text-decoration: none; }
7359
+ .pixel-caffeine-wrapper .alert a.btn:hover {
7360
+ opacity: 1; }
7361
+ .pixel-caffeine-wrapper .alert.alert-warning {
7362
+ background: #ffb031;
7363
+ color: #975d00; }
7364
+ .pixel-caffeine-wrapper .alert.alert-warning a,
7365
+ .pixel-caffeine-wrapper .alert.alert-warning .alert-link {
7366
+ color: inherit; }
7367
+ .pixel-caffeine-wrapper .alert.alert-lite {
7368
+ background: none;
7369
+ padding: 0 0 0 1.8em;
7370
+ position: relative;
7371
+ font-size: 0.9em;
7372
+ margin-bottom: 10px; }
7373
+ .pixel-caffeine-wrapper .alert.alert-lite::before {
7374
+ position: absolute;
7375
+ top: 0;
7376
+ left: 0;
7377
+ font-size: 1.4em; }
7378
+ .pixel-caffeine-wrapper .alert.alert-lite.alert-warning {
7379
+ color: #e48c00; }
7380
+ .pixel-caffeine-wrapper .alert.alert-lite.alert-warning::before {
7381
+ content: "warning";
7382
+ font-family: 'Material Icons';
7383
+ font-weight: normal;
7384
+ font-style: normal;
7385
+ line-height: 1;
7386
+ letter-spacing: normal;
7387
+ text-transform: none;
7388
+ display: inline-block;
7389
+ vertical-align: middle;
7390
+ white-space: nowrap;
7391
+ word-wrap: normal;
7392
+ direction: ltr;
7393
+ -webkit-font-feature-settings: 'liga';
7394
+ -webkit-font-smoothing: antialiased; }
7395
+ .pixel-caffeine-wrapper .alert.alert-lite.alert-danger {
7396
+ color: #E15667; }
7397
+ .pixel-caffeine-wrapper .alert.alert-lite.alert-danger::before {
7398
+ content: "error";
7399
+ font-family: 'Material Icons';
7400
+ font-weight: normal;
7401
+ font-style: normal;
7402
+ line-height: 1;
7403
+ letter-spacing: normal;
7404
+ text-transform: none;
7405
+ display: inline-block;
7406
+ vertical-align: middle;
7407
+ white-space: nowrap;
7408
+ word-wrap: normal;
7409
+ direction: ltr;
7410
+ -webkit-font-feature-settings: 'liga';
7411
+ -webkit-font-smoothing: antialiased; }
7412
+ .pixel-caffeine-wrapper .alert.alert-lite.alert-success {
7413
+ color: #68AA20; }
7414
+ .pixel-caffeine-wrapper .alert.alert-lite.alert-success::before {
7415
+ content: "check";
7416
+ font-family: 'Material Icons';
7417
+ font-weight: normal;
7418
+ font-style: normal;
7419
+ line-height: 1;
7420
+ letter-spacing: normal;
7421
+ text-transform: none;
7422
+ display: inline-block;
7423
+ vertical-align: middle;
7424
+ white-space: nowrap;
7425
+ word-wrap: normal;
7426
+ direction: ltr;
7427
+ -webkit-font-feature-settings: 'liga';
7428
+ -webkit-font-smoothing: antialiased; }
7429
+ .pixel-caffeine-wrapper .alert.alert-lite.alert-info {
7430
+ color: #5bc0de; }
7431
+ .pixel-caffeine-wrapper .alert.alert-lite.alert-info::before {
7432
+ content: "info";
7433
+ font-family: 'Material Icons';
7434
+ font-weight: normal;
7435
+ font-style: normal;
7436
+ line-height: 1;
7437
+ letter-spacing: normal;
7438
+ text-transform: none;
7439
+ display: inline-block;
7440
+ vertical-align: middle;
7441
+ white-space: nowrap;
7442
+ word-wrap: normal;
7443
+ direction: ltr;
7444
+ -webkit-font-feature-settings: 'liga';
7445
+ -webkit-font-smoothing: antialiased; }
7446
+ @media screen and (min-width: 768px) {
7447
+ .pixel-caffeine-wrapper .alert-fancy.alert {
7448
+ background-color: transparent;
7449
+ padding: 0;
7450
+ display: flex;
7451
+ align-items: center; }
7452
+ .pixel-caffeine-wrapper .alert-fancy .alert-inner {
7453
+ padding: 15px;
7454
+ flex: 1 1 auto;
7455
+ position: relative;
7456
+ margin-left: 5px; }
7457
+ .pixel-caffeine-wrapper .alert-fancy .alert-inner *:only-child {
7458
+ margin: 0; }
7459
+ .pixel-caffeine-wrapper .alert-fancy .alert-inner::after {
7460
+ content: "";
7461
+ position: absolute;
7462
+ left: -15px;
7463
+ top: 0;
7464
+ bottom: 0;
7465
+ width: 0;
7466
+ height: 0;
7467
+ border-style: solid;
7468
+ border-width: 15px 15px 15px 0;
7469
+ margin: auto; }
7470
+ .pixel-caffeine-wrapper .alert-fancy::before {
7471
+ content: "";
7472
+ height: 150px;
7473
+ width: 150px;
7474
+ min-width: 100px;
7475
+ background-repeat: no-repeat; } }
7476
+ @media screen and (min-width: 768px) {
7477
+ .pixel-caffeine-wrapper .alert-fancy.alert-warning .alert-inner {
7478
+ background: #ffc464; }
7479
+ .pixel-caffeine-wrapper .alert-fancy.alert-warning .alert-inner::after {
7480
+ border-color: transparent #ffc464 transparent transparent; }
7481
+ .pixel-caffeine-wrapper .alert-fancy.alert-warning::before {
7482
+ background-image: url("../img/walter-face-lost.png");
7483
+ background-size: 85%;
7484
+ background-position: center left; } }
7485
+ @media screen and (min-width: 768px) {
7486
+ .pixel-caffeine-wrapper .alert-fancy.alert-success .alert-inner {
7487
+ background: #73bb23; }
7488
+ .pixel-caffeine-wrapper .alert-fancy.alert-success .alert-inner::after {
7489
+ border-color: transparent #73bb23 transparent transparent; }
7490
+ .pixel-caffeine-wrapper .alert-fancy.alert-success::before {
7491
+ background-image: url("../img/walter-face-2.png");
7492
+ background-size: 85%;
7493
+ background-position: center left; } }
7494
+ @media screen and (min-width: 768px) {
7495
+ .pixel-caffeine-wrapper .alert-fancy.alert-danger .alert-inner {
7496
+ background: #E15667; }
7497
+ .pixel-caffeine-wrapper .alert-fancy.alert-danger .alert-inner::after {
7498
+ border-color: transparent #E15667 transparent transparent; }
7499
+ .pixel-caffeine-wrapper .alert-fancy.alert-danger::before {
7500
+ background-image: url("../img/walter-face-lost.png");
7501
+ background-size: 85%;
7502
+ background-position: center left; } }
7503
+ @media screen and (min-width: 768px) {
7504
+ .pixel-caffeine-wrapper .alert-fancy.alert-info .alert-inner {
7505
+ background: #5bc0de; }
7506
+ .pixel-caffeine-wrapper .alert-fancy.alert-info .alert-inner::after {
7507
+ border-color: transparent #5bc0de transparent transparent; }
7508
+ .pixel-caffeine-wrapper .alert-fancy.alert-info::before {
7509
+ background-image: url("../img/walter-face.png");
7510
+ background-size: 85%;
7511
+ background-position: center left; } }
7512
+ @media screen and (min-width: 768px) {
7513
+ .pixel-caffeine-wrapper .alert-fancy.alert-token::before {
7514
+ background-image: url("../img/renew-token.png");
7515
+ background-size: 85%;
7516
+ background-position: center left; } }
7517
+ .pixel-caffeine-wrapper .alert-fixed {
7518
+ position: fixed;
7519
+ z-index: 12; }
7520
+ .pixel-caffeine-wrapper .alert-fixed .alert {
7521
+ margin-bottom: 0;
7522
+ transition: box-shadow 0.2s ease-in-out, margin-bottom 0.2s ease-in-out;
7523
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36); }
7524
+ @media screen and (min-width: 768px) {
7525
+ .pixel-caffeine-wrapper .alert-fixed .alert-fancy.alert {
7526
+ box-shadow: none;
7527
+ background: rgba(255, 255, 255, 0.8); }
7528
+ .pixel-caffeine-wrapper .alert-fixed .alert-fancy.alert .alert-inner {
7529
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36); } }
7530
+ .pixel-caffeine-wrapper .alert-wrap:before, .pixel-caffeine-wrapper .alert-wrap:after {
7531
+ content: " ";
7532
+ display: table; }
7533
+ .pixel-caffeine-wrapper .alert-wrap:after {
7534
+ clear: both; }
7535
+ .pixel-caffeine-wrapper .alert-info-disabled {
7536
+ display: none; }
7537
+ .pixel-caffeine-wrapper .disabled-box {
7538
+ position: relative; }
7539
+ .pixel-caffeine-wrapper .disabled-box::before {
7540
+ position: absolute;
7541
+ top: 0;
7542
+ left: 0;
7543
+ content: "";
7544
+ display: block;
7545
+ width: 100%;
7546
+ height: 100%;
7547
+ background: rgba(255, 255, 255, 0.75);
7548
+ z-index: 10;
7549
+ opacity: 0.75; }
7550
+ .pixel-caffeine-wrapper .disabled-box .alert-info-disabled {
7551
+ display: block;
7552
+ position: absolute;
7553
+ top: 75px;
7554
+ left: 50%;
7555
+ margin-left: -35%;
7556
+ width: 70%;
7557
+ background: #f1f1f1;
7558
+ color: #444;
7559
+ text-align: center;
7560
+ z-index: 11;
7561
+ box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 1px 6px 0 rgba(0, 0, 0, 0.12); }
7562
+ @media screen and (min-width: 992px) {
7563
+ .pixel-caffeine-wrapper .disabled-box .alert-info-disabled {
7564
+ width: 50%;
7565
+ margin-left: -25%; } }
7566
+ @media screen and (min-width: 992px) {
7567
+ .pixel-caffeine-wrapper .disabled-box .alert-info-disabled {
7568
+ width: 400px;
7569
+ margin-left: -200px; } }
7570
+ .pixel-caffeine-wrapper .disabled-box .alert-info-disabled .alert-tit {
7571
+ display: block;
7572
+ font-weight: bold;
7573
+ margin-bottom: 10px; }
7574
+ .pixel-caffeine-wrapper .list-group-tit {
7575
+ font-size: 18px;
7576
+ text-transform: uppercase; }
7577
+ .pixel-caffeine-wrapper .list-group .list-group-separator::before {
7578
+ width: calc(100% - (32px + 16px + 5px + 16px)); }
7579
+ .pixel-caffeine-wrapper .list-group .list-group-item {
7580
+ padding: 0; }
7581
+ .pixel-caffeine-wrapper .list-group .list-group-item::before {
7582
+ content: "description";
7583
+ font-family: 'Material Icons';
7584
+ font-weight: normal;
7585
+ font-style: normal;
7586
+ line-height: 1;
7587
+ letter-spacing: normal;
7588
+ text-transform: none;
7589
+ display: inline-block;
7590
+ vertical-align: middle;
7591
+ white-space: nowrap;
7592
+ word-wrap: normal;
7593
+ direction: ltr;
7594
+ -webkit-font-feature-settings: 'liga';
7595
+ -webkit-font-smoothing: antialiased;
7596
+ display: inline-block;
7597
+ vertical-align: top;
7598
+ width: 32px;
7599
+ line-height: 32px;
7600
+ background: #CCC;
7601
+ border-radius: 100%;
7602
+ margin-right: 16px;
7603
+ text-align: center;
7604
+ font-size: 24px;
7605
+ color: #FFF; }
7606
+ .pixel-caffeine-wrapper .list-group .list-group-item .list-group-item-heading {
7607
+ font-size: 14px;
7608
+ font-weight: bold;
7609
+ line-height: 1.42857; }
7610
+ .pixel-caffeine-wrapper .list-group .list-group-item a.list-group-item-heading {
7611
+ color: #337ab7; }
7612
+ .pixel-caffeine-wrapper .list-group .list-group-item .list-group-item-date {
7613
+ display: block;
7614
+ margin-bottom: 5px;
7615
+ font-style: italic;
7616
+ color: #919191; }
7617
+ .pixel-caffeine-wrapper .list-group .list-group-item .list-group-item-text {
7618
+ font-size: 12px; }
7619
+ .pixel-caffeine-wrapper .list-group .list-group-item .row-content {
7620
+ width: calc(100% - (32px + 16px + 5px));
7621
+ min-height: auto; }
7622
+ .pixel-caffeine-wrapper .list-group.no-icon .list-group-separator::before {
7623
+ width: 100%; }
7624
+ .pixel-caffeine-wrapper .list-group.no-icon .list-group-item::before {
7625
+ display: none; }
7626
+ .pixel-caffeine-wrapper .list-group.no-icon .list-group-item .row-content {
7627
+ width: 100%; }
7628
+ .pixel-caffeine-wrapper .list-filter .filter-and {
7629
+ text-transform: uppercase;
7630
+ font-weight: normal;
7631
+ color: #CCC;
7632
+ padding-right: 10px;
7633
+ display: table-cell;
7634
+ vertical-align: middle; }
7635
+ .pixel-caffeine-wrapper .list-filter .label {
7636
+ background-color: transparent;
7637
+ border-radius: 0;
7638
+ color: #444;
7639
+ text-align: left;
7640
+ font-weight: 300;
7641
+ font-size: 14px;
7642
+ line-height: normal;
7643
+ white-space: normal;
7644
+ transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
7645
+ border: 1px dashed #CCC;
7646
+ display: table-cell;
7647
+ vertical-align: middle; }
7648
+ .pixel-caffeine-wrapper .list-filter .actions {
7649
+ opacity: 0;
7650
+ transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
7651
+ padding: 0 10px;
7652
+ display: table-cell;
7653
+ vertical-align: middle; }
7654
+ .pixel-caffeine-wrapper .list-filter li {
7655
+ display: table;
7656
+ margin-bottom: 10px; }
7657
+ .pixel-caffeine-wrapper .list-filter li:hover .label {
7658
+ background-color: #EEE; }
7659
+ .pixel-caffeine-wrapper .list-filter li:hover .actions {
7660
+ opacity: 1; }
7661
+ .pixel-caffeine-wrapper .loading-data:not(.btn)::after {
7662
+ content: "sync";
7663
+ font-family: 'Material Icons';
7664
+ font-weight: normal;
7665
+ font-style: normal;
7666
+ line-height: 1;
7667
+ letter-spacing: normal;
7668
+ text-transform: none;
7669
+ display: inline-block;
7670
+ vertical-align: middle;
7671
+ white-space: nowrap;
7672
+ word-wrap: normal;
7673
+ direction: ltr;
7674
+ -webkit-font-feature-settings: 'liga';
7675
+ -webkit-font-smoothing: antialiased;
7676
+ animation: anim-spin 1s infinite linear;
7677
+ font-size: inherit;
7678
+ line-height: normal;
7679
+ color: inherit; }
7680
+ .pixel-caffeine-wrapper .loading-data.btn {
7681
+ pointer-events: none; }
7682
+ .pixel-caffeine-wrapper .loading-data.btn::before {
7683
+ content: "sync";
7684
+ font-family: 'Material Icons';
7685
+ font-weight: normal;
7686
+ font-style: normal;
7687
+ line-height: 1;
7688
+ letter-spacing: normal;
7689
+ text-transform: none;
7690
+ display: inline-block;
7691
+ vertical-align: middle;
7692
+ white-space: nowrap;
7693
+ word-wrap: normal;
7694
+ direction: ltr;
7695
+ -webkit-font-feature-settings: 'liga';
7696
+ -webkit-font-smoothing: antialiased;
7697
+ animation: anim-spin 1s infinite linear;
7698
+ font-size: inherit;
7699
+ line-height: normal;
7700
+ color: inherit;
7701
+ font-size: 24px; }
7702
+ .pixel-caffeine-wrapper .loading-data.btn-fab::before {
7703
+ margin-top: -12px;
7704
+ margin-left: -12px; }
7705
+ .pixel-caffeine-wrapper .loading-data.btn-fab-mini::before {
7706
+ margin-top: -14px;
7707
+ margin-left: -14px; }
7708
+ .pixel-caffeine-wrapper .btn-group-sm .btn-fab.loading-data {
7709
+ pointer-events: none; }
7710
+ .pixel-caffeine-wrapper .btn-group-sm .btn-fab.loading-data::before {
7711
+ margin-top: -14px;
7712
+ margin-left: -14px; }
7713
+ .pixel-caffeine-wrapper .loading-data.loading-box {
7714
+ position: relative; }
7715
+ .pixel-caffeine-wrapper .loading-data.loading-box::before {
7716
+ position: absolute;
7717
+ top: 0;
7718
+ left: 0;
7719
+ content: "";
7720
+ display: block;
7721
+ width: 100%;
7722
+ height: 100%;
7723
+ background: rgba(255, 255, 255, 0.75);
7724
+ z-index: 10; }
7725
+ .pixel-caffeine-wrapper .loading-data.loading-box::after {
7726
+ position: absolute;
7727
+ top: 50%;
7728
+ left: 50%;
7729
+ width: 90px;
7730
+ height: 90px;
7731
+ line-height: 90px;
7732
+ background: #EEE;
7733
+ border-radius: 50%;
7734
+ margin-top: -45px;
7735
+ margin-left: -45px;
7736
+ text-align: center;
7737
+ font-size: 50px;
7738
+ color: #444;
7739
+ z-index: 11; }
7740
+ .pixel-caffeine-wrapper .loading-data.loading-box::before, .pixel-caffeine-wrapper .loading-data.loading-box::after {
7741
+ opacity: 0.75; }
7742
+ @keyframes placeholder-shimmer {
7743
+ 0% {
7744
+ background-position: 100% 0; }
7745
+ 100% {
7746
+ background-position: -100% 0; } }
7747
+ .pixel-caffeine-wrapper .panel-ca-list .panel-heading .tit::before {
7748
+ content: "person";
7749
+ font-family: 'Material Icons';
7750
+ font-weight: normal;
7751
+ font-style: normal;
7752
+ line-height: 1;
7753
+ letter-spacing: normal;
7754
+ text-transform: none;
7755
+ display: inline-block;
7756
+ vertical-align: middle;
7757
+ white-space: nowrap;
7758
+ word-wrap: normal;
7759
+ direction: ltr;
7760
+ -webkit-font-feature-settings: 'liga';
7761
+ -webkit-font-smoothing: antialiased; }
7762
+ .pixel-caffeine-wrapper .panel-ca-list .panel-footer {
7763
+ text-align: center; }
7764
+ .pixel-caffeine-wrapper .panel-ca-list .table {
7765
+ margin-bottom: 0; }
7766
+ .pixel-caffeine-wrapper .panel-ca-list .table .name {
7767
+ max-width: 500px;
7768
+ font-weight: 600; }
7769
+ .pixel-caffeine-wrapper .panel-ca-list .table .name .info-extra {
7770
+ font-weight: normal; }
7771
+ @media screen and (min-width: 1199px) {
7772
+ .pixel-caffeine-wrapper .panel-ca-list .table .name {
7773
+ width: auto; } }
7774
+ .pixel-caffeine-wrapper .panel-ca-new .panel-heading .tit::before {
7775
+ content: "person_add";
7776
+ font-family: 'Material Icons';
7777
+ font-weight: normal;
7778
+ font-style: normal;
7779
+ line-height: 1;
7780
+ letter-spacing: normal;
7781
+ text-transform: none;
7782
+ display: inline-block;
7783
+ vertical-align: middle;
7784
+ white-space: nowrap;
7785
+ word-wrap: normal;
7786
+ direction: ltr;
7787
+ -webkit-font-feature-settings: 'liga';
7788
+ -webkit-font-smoothing: antialiased; }
7789
+ .pixel-caffeine-wrapper .panel-ca-filters .panel-heading .tit::before {
7790
+ content: "filter_list";
7791
+ font-family: 'Material Icons';
7792
+ font-weight: normal;
7793
+ font-style: normal;
7794
+ line-height: 1;
7795
+ letter-spacing: normal;
7796
+ text-transform: none;
7797
+ display: inline-block;
7798
+ vertical-align: middle;
7799
+ white-space: nowrap;
7800
+ word-wrap: normal;
7801
+ direction: ltr;
7802
+ -webkit-font-feature-settings: 'liga';
7803
+ -webkit-font-smoothing: antialiased; }
7804
+ .pixel-caffeine-wrapper .modal-ca-filter .btn-group {
7805
+ padding-bottom: 20px; }
7806
+ .pixel-caffeine-wrapper .modal-ca-filter .form-radio .control-wrap {
7807
+ position: relative;
7808
+ min-height: 1px;
7809
+ padding-left: 15px;
7810
+ padding-right: 15px;
7811
+ display: -webkit-box;
7812
+ display: -moz-box;
7813
+ display: -ms-flexbox;
7814
+ display: -webkit-flex;
7815
+ display: flex;
7816
+ -webkit-flex-wrap: wrap;
7817
+ -ms-flex-wrap: wrap;
7818
+ flex-wrap: wrap; }
7819
+ @media (min-width: 992px) {
7820
+ .pixel-caffeine-wrapper .modal-ca-filter .form-radio .control-wrap {
7821
+ float: left;
7822
+ width: 100%; } }
7823
+ .pixel-caffeine-wrapper .modal-ca-filter .form-radio .radio {
7824
+ -webkit-box-flex: 0 0 33%;
7825
+ -moz-box-flex: 0 0 33%;
7826
+ -webkit-flex: 0 0 33%;
7827
+ -ms-flex: 0 0 33%;
7828
+ flex: 0 0 33%;
7829
+ padding-right: 32px; }
7830
+ .pixel-caffeine-wrapper .modal-ca-filter .form-user,
7831
+ .pixel-caffeine-wrapper .modal-ca-filter .multiple-fields {
7832
+ padding-left: 7.5px;
7833
+ padding-right: 7.5px; }
7834
+ .pixel-caffeine-wrapper .modal-ca-filter .form-user .control-label,
7835
+ .pixel-caffeine-wrapper .modal-ca-filter .multiple-fields .control-wrap {
7836
+ position: relative;
7837
+ min-height: 1px;
7838
+ padding-left: 15px;
7839
+ padding-right: 15px;
7840
+ padding-left: 7.5px;
7841
+ padding-right: 7.5px; }
7842
+ @media (min-width: 992px) {
7843
+ .pixel-caffeine-wrapper .modal-ca-filter .form-user .control-label,
7844
+ .pixel-caffeine-wrapper .modal-ca-filter .multiple-fields .control-wrap {
7845
+ float: left;
7846
+ width: 33.33333%; } }
7847
+ .pixel-caffeine-wrapper .modal-ca-filter .form-user .control-wrap,
7848
+ .pixel-caffeine-wrapper .modal-ca-filter .multiple-fields .control-wrap + .control-wrap {
7849
+ position: relative;
7850
+ min-height: 1px;
7851
+ padding-left: 15px;
7852
+ padding-right: 15px;
7853
+ padding-left: 7.5px;
7854
+ padding-right: 7.5px; }
7855
+ @media (min-width: 992px) {
7856
+ .pixel-caffeine-wrapper .modal-ca-filter .form-user .control-wrap,
7857
+ .pixel-caffeine-wrapper .modal-ca-filter .multiple-fields .control-wrap + .control-wrap {
7858
+ float: left;
7859
+ width: 66.66667%; } }
7860
+ .pixel-caffeine-wrapper .modal-ca-filter .multiple-fields.multiple-three .control-wrap {
7861
+ position: relative;
7862
+ min-height: 1px;
7863
+ padding-left: 15px;
7864
+ padding-right: 15px;
7865
+ padding-left: 7.5px;
7866
+ padding-right: 7.5px; }
7867
+ @media (min-width: 992px) {
7868
+ .pixel-caffeine-wrapper .modal-ca-filter .multiple-fields.multiple-three .control-wrap {
7869
+ float: left;
7870
+ width: 33.33333%; } }
7871
+ .pixel-caffeine-wrapper .modal-ca-filter .multiple-fields.can-add-fields {
7872
+ padding-bottom: 20px; }
7873
+ .pixel-caffeine-wrapper .modal-ca-filter .multiple-fields.can-add-fields .form-group {
7874
+ display: -webkit-box;
7875
+ display: -moz-box;
7876
+ display: -ms-flexbox;
7877
+ display: -webkit-flex;
7878
+ display: flex;
7879
+ -ms-flex-align: center;
7880
+ -webkit-align-items: center;
7881
+ align-items: center;
7882
+ padding-bottom: 10px; }
7883
+ .pixel-caffeine-wrapper .modal-ca-filter .multiple-fields.can-add-fields .form-control {
7884
+ margin-bottom: 0; }
7885
+ .pixel-caffeine-wrapper .modal-ca-filter .multiple-fields.can-add-fields .control-wrap {
7886
+ -webkit-box-flex: 1 1 auto;
7887
+ -moz-box-flex: 1 1 auto;
7888
+ -webkit-flex: 1 1 auto;
7889
+ -ms-flex: 1 1 auto;
7890
+ flex: 1 1 auto; }
7891
+ .pixel-caffeine-wrapper .modal-ca-filter .multiple-fields.can-add-fields .multiple-fields-actions {
7892
+ margin-left: -7.5px;
7893
+ margin-right: -7.5px; }
7894
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .panel-heading .tit::before {
7895
+ content: "settings";
7896
+ font-family: 'Material Icons';
7897
+ font-weight: normal;
7898
+ font-style: normal;
7899
+ line-height: 1;
7900
+ letter-spacing: normal;
7901
+ text-transform: none;
7902
+ display: inline-block;
7903
+ vertical-align: middle;
7904
+ white-space: nowrap;
7905
+ word-wrap: normal;
7906
+ direction: ltr;
7907
+ -webkit-font-feature-settings: 'liga';
7908
+ -webkit-font-smoothing: antialiased; }
7909
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .panel-body {
7910
+ display: -webkit-box;
7911
+ display: -moz-box;
7912
+ display: -ms-flexbox;
7913
+ display: -webkit-flex;
7914
+ display: flex;
7915
+ -ms-flex-align: stretch;
7916
+ -webkit-align-items: stretch;
7917
+ align-items: stretch;
7918
+ -webkit-flex-wrap: wrap;
7919
+ -ms-flex-wrap: wrap;
7920
+ flex-wrap: wrap;
7921
+ padding: 0; }
7922
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .panel-footer .form-group {
7923
+ margin-top: 0;
7924
+ padding-bottom: 0; }
7925
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel {
7926
+ -webkit-box-flex: 1 0 100%;
7927
+ -moz-box-flex: 1 0 100%;
7928
+ -webkit-flex: 1 0 100%;
7929
+ -ms-flex: 1 0 100%;
7930
+ flex: 1 0 100%;
7931
+ padding: 15px; }
7932
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel:first-child {
7933
+ position: relative;
7934
+ order: 2;
7935
+ padding-top: 35px; }
7936
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect {
7937
+ background: #f2f4fa;
7938
+ padding-bottom: 35px;
7939
+ border-bottom: 1px solid #ddd;
7940
+ order: 1; }
7941
+ @media screen and (min-width: 768px) {
7942
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel {
7943
+ -webkit-box-flex: 0 0 50%;
7944
+ -moz-box-flex: 0 0 50%;
7945
+ -webkit-flex: 0 0 50%;
7946
+ -ms-flex: 0 0 50%;
7947
+ flex: 0 0 50%;
7948
+ max-width: 50%; }
7949
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel:first-child {
7950
+ padding-right: 45px;
7951
+ border-right: 1px solid #ddd;
7952
+ border-bottom: 0;
7953
+ padding-top: 15px;
7954
+ order: 1; }
7955
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect {
7956
+ padding-left: 45px;
7957
+ order: 2;
7958
+ padding-bottom: 15px; } }
7959
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .divider {
7960
+ display: block;
7961
+ position: absolute;
7962
+ top: 0;
7963
+ right: 0;
7964
+ left: 0;
7965
+ margin: auto;
7966
+ width: 70px;
7967
+ height: 70px;
7968
+ line-height: 70px;
7969
+ border-radius: 50%;
7970
+ background: #FFF;
7971
+ border: 1px solid #ddd;
7972
+ margin-top: -35px;
7973
+ text-align: center;
7974
+ text-transform: uppercase;
7975
+ font-style: normal;
7976
+ font-weight: 600;
7977
+ color: #aaaaaa; }
7978
+ @media screen and (min-width: 768px) {
7979
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .divider {
7980
+ top: 50%;
7981
+ right: -35.5px;
7982
+ left: auto; } }
7983
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .btn-fb-connect {
7984
+ padding-left: 12px;
7985
+ padding-right: 12px;
7986
+ font-size: 1.2em; }
7987
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .btn-fb-connect::before {
7988
+ width: 16px;
7989
+ height: 16px;
7990
+ margin: -4px 0.5em 0 0; }
7991
+ @media screen and (min-width: 992px) {
7992
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .btn-fb-connect {
7993
+ font-size: 1.5em; }
7994
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .btn-fb-connect::before {
7995
+ width: 20px;
7996
+ height: 20px; } }
7997
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-px-id .control-wrap {
7998
+ position: relative;
7999
+ padding-left: 0; }
8000
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-px-id .control-wrap::before {
8001
+ position: absolute;
8002
+ top: 0;
8003
+ right: 0;
8004
+ content: "check";
8005
+ font-family: 'Material Icons';
8006
+ font-weight: normal;
8007
+ font-style: normal;
8008
+ line-height: 1;
8009
+ letter-spacing: normal;
8010
+ text-transform: none;
8011
+ display: inline-block;
8012
+ vertical-align: middle;
8013
+ white-space: nowrap;
8014
+ word-wrap: normal;
8015
+ direction: ltr;
8016
+ -webkit-font-feature-settings: 'liga';
8017
+ -webkit-font-smoothing: antialiased;
8018
+ width: 40px;
8019
+ height: 40px;
8020
+ line-height: 40px;
8021
+ font-size: 2em;
8022
+ text-align: center;
8023
+ color: #68AA20;
8024
+ display: none; }
8025
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-px-id .control-wrap .form-control {
8026
+ padding-right: 40px; }
8027
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-px-id.active .control-wrap::before {
8028
+ display: block; }
8029
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-px-id.active .form-control {
8030
+ background-image: linear-gradient(#68AA20, #68AA20), linear-gradient(#D2D2D2, #D2D2D2);
8031
+ background-size: 100% 2px, 100% 1px;
8032
+ border-bottom-color: #68AA20;
8033
+ color: #68AA20; }
8034
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect .user-actions {
8035
+ display: none;
8036
+ overflow: hidden;
8037
+ font-size: 12px; }
8038
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect .user-actions .user-disconnect {
8039
+ display: inline-block;
8040
+ padding-right: 10px;
8041
+ margin-right: 10px;
8042
+ border-right: 1px dotted #68AA20;
8043
+ -webkit-transform: translate(-100%, 0);
8044
+ -ms-transform: translate(-100%, 0);
8045
+ -o-transform: translate(-100%, 0);
8046
+ transform: translate(-100%, 0); }
8047
+ @media screen and (min-width: 992px) {
8048
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect .user-actions .user-disconnect {
8049
+ border-right: none; } }
8050
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect .user-actions .user-edit {
8051
+ font-weight: 600;
8052
+ -webkit-transform: translate(100%, 0);
8053
+ -ms-transform: translate(100%, 0);
8054
+ -o-transform: translate(100%, 0);
8055
+ transform: translate(100%, 0); }
8056
+ @media screen and (min-width: 992px) {
8057
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect .user-actions .user-edit {
8058
+ float: right; } }
8059
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect .user-info {
8060
+ display: -webkit-box;
8061
+ display: -moz-box;
8062
+ display: -ms-flexbox;
8063
+ display: -webkit-flex;
8064
+ display: flex;
8065
+ -ms-flex-align: flex-start;
8066
+ -webkit-align-items: flex-start;
8067
+ align-items: flex-start; }
8068
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect .user-avatar {
8069
+ width: 35px;
8070
+ height: 35px;
8071
+ margin-right: 10px;
8072
+ border: 3px solid #FFF; }
8073
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect .sub-panel-actions {
8074
+ float: right; }
8075
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.to-set-up {
8076
+ background: #ffebca; }
8077
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.to-set-up .form-group .select2-container:not(.select2-container-disabled) {
8078
+ background-color: #FFF;
8079
+ background-image: linear-gradient(#FD9C00, #FD9C00), linear-gradient(#ffd797, #ffd797);
8080
+ background-position: center bottom, center bottom; }
8081
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.to-set-up .form-group label.control-label {
8082
+ color: #e48c00; }
8083
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.to-set-up .user-info {
8084
+ float: left;
8085
+ margin: 10px 0;
8086
+ font-size: 12px;
8087
+ color: #777777; }
8088
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.to-set-up .user-disconnect {
8089
+ display: block; }
8090
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active {
8091
+ background: #e5f7d2; }
8092
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info {
8093
+ background: #68AA20;
8094
+ padding: 16px;
8095
+ border-radius: 4px;
8096
+ margin-top: 10px;
8097
+ margin-bottom: 10px;
8098
+ white-space: normal;
8099
+ font-weight: 600;
8100
+ line-height: 1.2em;
8101
+ text-transform: none;
8102
+ color: #FFF; }
8103
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-info {
8104
+ -ms-flex-align: flex-start;
8105
+ -webkit-align-items: flex-start;
8106
+ align-items: flex-start;
8107
+ -ms-flex-pack: flex-start;
8108
+ -webkit-justify-content: flex-start;
8109
+ justify-content: flex-start;
8110
+ margin-top: 16px;
8111
+ position: relative; }
8112
+ @media screen and (min-width: 480px) {
8113
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-info::after {
8114
+ position: absolute;
8115
+ top: 50%;
8116
+ margin-top: -25px;
8117
+ right: 16px;
8118
+ width: 50px;
8119
+ height: 50px;
8120
+ line-height: 50px;
8121
+ content: "check";
8122
+ font-family: 'Material Icons';
8123
+ font-weight: normal;
8124
+ font-style: normal;
8125
+ line-height: 1;
8126
+ letter-spacing: normal;
8127
+ text-transform: none;
8128
+ display: inline-block;
8129
+ vertical-align: middle;
8130
+ white-space: nowrap;
8131
+ word-wrap: normal;
8132
+ direction: ltr;
8133
+ -webkit-font-feature-settings: 'liga';
8134
+ -webkit-font-smoothing: antialiased;
8135
+ color: inherit;
8136
+ font-size: 3.8em; }
8137
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-info .user-info-account {
8138
+ margin-right: 80px; }
8139
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-info .user-avatar {
8140
+ display: block; } }
8141
+ @media screen and (min-width: 768px) {
8142
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-info::after {
8143
+ display: none; }
8144
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-info .user-avatar {
8145
+ display: none; }
8146
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-info .user-info-account {
8147
+ margin-right: 0; } }
8148
+ @media screen and (min-width: 992px) {
8149
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-info::after {
8150
+ display: block; }
8151
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-info .user-avatar {
8152
+ display: block; }
8153
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-info .user-info-account {
8154
+ margin-right: 80px; } }
8155
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-avatar {
8156
+ display: none;
8157
+ width: 50px;
8158
+ height: 50px; }
8159
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-ad-account,
8160
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-name {
8161
+ font-size: 14px;
8162
+ line-height: normal; }
8163
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-ad-account {
8164
+ display: block;
8165
+ text-transform: uppercase;
8166
+ font-size: 12px; }
8167
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .pixel-id,
8168
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-ad-account {
8169
+ font-weight: 300; }
8170
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .pixel-id {
8171
+ font-style: normal;
8172
+ color: #FFF;
8173
+ font-size: 1.3em; }
8174
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .pixel-id-value,
8175
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-ad-account-value {
8176
+ font-weight: 600;
8177
+ word-break: break-all; }
8178
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-ad-account-value {
8179
+ display: block;
8180
+ text-transform: none;
8181
+ font-size: 14px; }
8182
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .fb-connect-info .user-name {
8183
+ font-weight: 300;
8184
+ color: #d9f3bd; }
8185
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .user-actions {
8186
+ display: block; }
8187
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .user-actions .user-edit {
8188
+ -webkit-transform: translate(0, 0);
8189
+ -ms-transform: translate(0, 0);
8190
+ -o-transform: translate(0, 0);
8191
+ transform: translate(0, 0); }
8192
+ .pixel-caffeine-wrapper .panel-settings-set-fb-px .sub-panel-fb-connect.active .user-actions .user-disconnect {
8193
+ -webkit-transform: translate(0, 0);
8194
+ -ms-transform: translate(0, 0);
8195
+ -o-transform: translate(0, 0);
8196
+ transform: translate(0, 0); }
8197
+ .pixel-caffeine-wrapper .panel-settings-ca .panel-heading .tit::before {
8198
+ content: "person";
8199
+ font-family: 'Material Icons';
8200
+ font-weight: normal;
8201
+ font-style: normal;
8202
+ line-height: 1;
8203
+ letter-spacing: normal;
8204
+ text-transform: none;
8205
+ display: inline-block;
8206
+ vertical-align: middle;
8207
+ white-space: nowrap;
8208
+ word-wrap: normal;
8209
+ direction: ltr;
8210
+ -webkit-font-feature-settings: 'liga';
8211
+ -webkit-font-smoothing: antialiased; }
8212
+ .pixel-caffeine-wrapper .panel-settings-ca .form-track {
8213
+ margin: 20px 0; }
8214
+ .pixel-caffeine-wrapper .panel-settings-ca .form-track:before, .pixel-caffeine-wrapper .panel-settings-ca .form-track:after {
8215
+ content: " ";
8216
+ display: table; }
8217
+ .pixel-caffeine-wrapper .panel-settings-ca .form-track:after {
8218
+ clear: both; }
8219
+ .pixel-caffeine-wrapper .panel-settings-ca .form-track .control-label,
8220
+ .pixel-caffeine-wrapper .panel-settings-ca .form-track .control-wrap {
8221
+ position: relative;
8222
+ min-height: 1px;
8223
+ padding-left: 15px;
8224
+ padding-right: 15px;
8225
+ padding-left: 0;
8226
+ padding-right: 0; }
8227
+ @media (min-width: 992px) {
8228
+ .pixel-caffeine-wrapper .panel-settings-ca .form-track .control-label,
8229
+ .pixel-caffeine-wrapper .panel-settings-ca .form-track .control-wrap {
8230
+ float: left;
8231
+ width: 100%; } }
8232
+ .pixel-caffeine-wrapper .panel-settings-ca .control-label {
8233
+ padding-top: 0;
8234
+ text-align: left; }
8235
+ .pixel-caffeine-wrapper .panel-settings-ca .control-label .tit {
8236
+ font-size: 20px; }
8237
+ .pixel-caffeine-wrapper .panel-settings-ca .sub-panel-adv-opt .form-group {
8238
+ position: relative;
8239
+ min-height: 1px;
8240
+ padding-left: 15px;
8241
+ padding-right: 15px;
8242
+ padding-left: 0; }
8243
+ @media (min-width: 992px) {
8244
+ .pixel-caffeine-wrapper .panel-settings-ca .sub-panel-adv-opt .form-group {
8245
+ float: left;
8246
+ width: 50%; } }
8247
+ .pixel-caffeine-wrapper .panel-settings-ca .sub-panel-adv-opt .control-wrap {
8248
+ position: relative;
8249
+ min-height: 1px;
8250
+ padding-left: 15px;
8251
+ padding-right: 15px;
8252
+ padding-left: 0;
8253
+ padding-right: 0; }
8254
+ @media (min-width: 992px) {
8255
+ .pixel-caffeine-wrapper .panel-settings-ca .sub-panel-adv-opt .control-wrap {
8256
+ float: left;
8257
+ width: 100%; } }
8258
+ .pixel-caffeine-wrapper .panel-settings-ca .sub-panel-adv-opt label {
8259
+ text-align: left; }
8260
+ .pixel-caffeine-wrapper .panel-settings-conversions .panel-heading .tit::before {
8261
+ content: "shopping_cart";
8262
+ font-family: 'Material Icons';
8263
+ font-weight: normal;
8264
+ font-style: normal;
8265
+ line-height: 1;
8266
+ letter-spacing: normal;
8267
+ text-transform: none;
8268
+ display: inline-block;
8269
+ vertical-align: middle;
8270
+ white-space: nowrap;
8271
+ word-wrap: normal;
8272
+ direction: ltr;
8273
+ -webkit-font-feature-settings: 'liga';
8274
+ -webkit-font-smoothing: antialiased; }
8275
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-detect .tit,
8276
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-conversions .tit {
8277
+ font-size: 20px; }
8278
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-detect {
8279
+ margin: 15px 0 30px; }
8280
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-detect .tit {
8281
+ display: inline-block;
8282
+ margin-top: 0;
8283
+ margin-bottom: 0; }
8284
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-detect .info {
8285
+ display: block;
8286
+ margin-top: 10px; }
8287
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-detect .info a {
8288
+ font-weight: 600;
8289
+ text-decoration: underline;
8290
+ text-transform: uppercase;
8291
+ color: inherit; }
8292
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-conversions {
8293
+ border-top: 1px solid #ddd; }
8294
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-conversions::after, .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-conversions::before {
8295
+ content: '';
8296
+ display: block;
8297
+ position: absolute;
8298
+ top: 0;
8299
+ left: 40px;
8300
+ width: 0;
8301
+ height: 0;
8302
+ border-style: solid; }
8303
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-conversions::after {
8304
+ top: -40px;
8305
+ border-color: transparent transparent #FFF transparent;
8306
+ border-width: 20px 18px;
8307
+ margin-left: 1px; }
8308
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-conversions::before {
8309
+ top: -42px;
8310
+ border-color: transparent transparent #ddd transparent;
8311
+ border-width: 21px 19px; }
8312
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-conversions .checkbox label {
8313
+ margin-right: 20px; }
8314
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-conversions .checkbox {
8315
+ display: inline-block; }
8316
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-conversions .checkbox-material {
8317
+ margin-right: 5px; }
8318
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-conversions {
8319
+ display: none; }
8320
+ .pixel-caffeine-wrapper .panel-settings-conversions.detected .ecomm-detect .info {
8321
+ display: none; }
8322
+ .pixel-caffeine-wrapper .panel-settings-conversions.detected .ecomm-conversions {
8323
+ display: block; }
8324
+ .pixel-caffeine-wrapper .panel-settings-conversions.not-detected .ecomm-detect {
8325
+ color: #E15667; }
8326
+ .pixel-caffeine-wrapper .panel-settings-conversions.not-detected .ecomm-detect::before {
8327
+ content: "error";
8328
+ font-family: 'Material Icons';
8329
+ font-weight: normal;
8330
+ font-style: normal;
8331
+ line-height: 1;
8332
+ letter-spacing: normal;
8333
+ text-transform: none;
8334
+ display: inline-block;
8335
+ vertical-align: middle;
8336
+ white-space: nowrap;
8337
+ word-wrap: normal;
8338
+ direction: ltr;
8339
+ -webkit-font-feature-settings: 'liga';
8340
+ -webkit-font-smoothing: antialiased;
8341
+ font-size: 2.5em;
8342
+ margin-right: 10px; }
8343
+ .pixel-caffeine-wrapper .panel-settings-conversions .ecomm-plugin-logo img {
8344
+ max-width: 130px;
8345
+ max-height: 70px; }
8346
+ .pixel-caffeine-wrapper .panel-settings-conversions .sub-panel-supported-plugin .tit,
8347
+ .pixel-caffeine-wrapper .panel-settings-conversions .sub-panel-supported-plugin .list-supported-plugin {
8348
+ display: inline-block;
8349
+ vertical-align: middle; }
8350
+ .pixel-caffeine-wrapper .panel-settings-conversions .sub-panel-supported-plugin .list-supported-plugin {
8351
+ margin-bottom: 0;
8352
+ margin-left: 5px; }
8353
+ .pixel-caffeine-wrapper .panel-settings-conversions .sub-panel-supported-plugin .list-supported-plugin .item {
8354
+ display: inline-block;
8355
+ margin-right: 10px;
8356
+ margin-bottom: 0;
8357
+ transition: transform 0.2s ease-in-out; }
8358
+ .pixel-caffeine-wrapper .panel-settings-conversions .sub-panel-supported-plugin .list-supported-plugin .item:hover {
8359
+ transform: scale(1.1); }
8360
+ .pixel-caffeine-wrapper .panel-settings-conversions .sub-panel-supported-plugin .list-supported-plugin .ecomm-plugin-logo {
8361
+ display: block; }
8362
+ .pixel-caffeine-wrapper .panel-ce-tracking .panel-heading .tit::before {
8363
+ content: "track_changes";
8364
+ font-family: 'Material Icons';
8365
+ font-weight: normal;
8366
+ font-style: normal;
8367
+ line-height: 1;
8368
+ letter-spacing: normal;
8369
+ text-transform: none;
8370
+ display: inline-block;
8371
+ vertical-align: middle;
8372
+ white-space: nowrap;
8373
+ word-wrap: normal;
8374
+ direction: ltr;
8375
+ -webkit-font-feature-settings: 'liga';
8376
+ -webkit-font-smoothing: antialiased; }
8377
+ .pixel-caffeine-wrapper .panel-ce-tracking .panel-footer {
8378
+ text-align: center; }
8379
+ .pixel-caffeine-wrapper .panel-ce-tracking .table {
8380
+ margin-bottom: 0; }
8381
+ .pixel-caffeine-wrapper .panel-ce-tracking .table .name {
8382
+ width: 200px;
8383
+ font-weight: bold; }
8384
+ .pixel-caffeine-wrapper .panel-ce-tracking .table .trigger {
8385
+ white-space: nowrap; }
8386
+ @media screen and (min-width: 1199px) {
8387
+ .pixel-caffeine-wrapper .panel-ce-tracking .table .name {
8388
+ width: auto; } }
8389
+ .pixel-caffeine-wrapper .panel-ce-tracking .code-sample {
8390
+ display: block; }
8391
+ .pixel-caffeine-wrapper .panel-ce-tracking .code-copy,
8392
+ .pixel-caffeine-wrapper .panel-ce-tracking .show-code {
8393
+ margin-top: 5px;
8394
+ display: inline-block;
8395
+ font-size: 12px;
8396
+ font-weight: 600;
8397
+ text-transform: uppercase; }
8398
+ .pixel-caffeine-wrapper .panel-ce-new .panel-heading .tit::before {
8399
+ content: "track_changes";
8400
+ font-family: 'Material Icons';
8401
+ font-weight: normal;
8402
+ font-style: normal;
8403
+ line-height: 1;
8404
+ letter-spacing: normal;
8405
+ text-transform: none;
8406
+ display: inline-block;
8407
+ vertical-align: middle;
8408
+ white-space: nowrap;
8409
+ word-wrap: normal;
8410
+ direction: ltr;
8411
+ -webkit-font-feature-settings: 'liga';
8412
+ -webkit-font-smoothing: antialiased; }
8413
+ .pixel-caffeine-wrapper .box-dashboard-config {
8414
+ display: -webkit-box;
8415
+ display: -moz-box;
8416
+ display: -ms-flexbox;
8417
+ display: -webkit-flex;
8418
+ display: flex;
8419
+ position: relative; }
8420
+ .pixel-caffeine-wrapper .box-dashboard-config .tit {
8421
+ font-size: 3em;
8422
+ text-transform: uppercase; }
8423
+ @media screen and (min-width: 992px) {
8424
+ .pixel-caffeine-wrapper .box-dashboard-config {
8425
+ min-height: 400px;
8426
+ padding-right: 300px; }
8427
+ .pixel-caffeine-wrapper .box-dashboard-config::before {
8428
+ content: "";
8429
+ position: absolute;
8430
+ bottom: 0;
8431
+ right: 0;
8432
+ display: block;
8433
+ width: 300px;
8434
+ height: 100%;
8435
+ background: url("../img/walter-dashboard-config.png") no-repeat 50% 50%;
8436
+ background-size: contain; } }
8437
+ .pixel-caffeine-wrapper .box-dashboard-config .jumbotron-body {
8438
+ margin: auto; }
8439
+ .pixel-caffeine-wrapper .box-dashboard-config .jumbotron-body .btn {
8440
+ margin: 20px 0 0;
8441
+ white-space: normal;
8442
+ font-size: 2.5em; }
8443
+ .pixel-caffeine-wrapper .box-features {
8444
+ margin-top: 50px;
8445
+ text-align: center; }
8446
+ .pixel-caffeine-wrapper .box-features .tit {
8447
+ text-transform: uppercase; }
8448
+ .pixel-caffeine-wrapper .list-features {
8449
+ display: -webkit-box;
8450
+ display: -moz-box;
8451
+ display: -ms-flexbox;
8452
+ display: -webkit-flex;
8453
+ display: flex;
8454
+ -webkit-flex-wrap: wrap;
8455
+ -ms-flex-wrap: wrap;
8456
+ flex-wrap: wrap; }
8457
+ .pixel-caffeine-wrapper .list-features .feature {
8458
+ -webkit-box-flex: 0 0 33.33%;
8459
+ -moz-box-flex: 0 0 33.33%;
8460
+ -webkit-flex: 0 0 33.33%;
8461
+ -ms-flex: 0 0 33.33%;
8462
+ flex: 0 0 33.33%;
8463
+ margin: 30px 0; }
8464
+ .pixel-caffeine-wrapper .list-features .feature .feature-icon {
8465
+ display: block;
8466
+ background: #CCC;
8467
+ width: 100px;
8468
+ height: 100px;
8469
+ line-height: 100px;
8470
+ border-radius: 100%;
8471
+ margin: 0 auto 16px;
8472
+ text-align: center;
8473
+ font-size: 4.5em;
8474
+ color: #FFF; }
8475
+ .pixel-caffeine-wrapper .list-features .feature:nth-child(3n+1) {
8476
+ padding-right: 20px; }
8477
+ .pixel-caffeine-wrapper .list-features .feature:nth-child(3n+2) {
8478
+ padding-left: 10px;
8479
+ padding-right: 10px; }
8480
+ .pixel-caffeine-wrapper .list-features .feature:nth-child(3n+3) {
8481
+ padding-left: 20px; }
8482
+ .pixel-caffeine-wrapper .panel-dashboard-main {
8483
+ position: relative; }
8484
+ .pixel-caffeine-wrapper .panel-dashboard-main .panel-heading .tit::before {
8485
+ content: "tune";
8486
+ font-family: 'Material Icons';
8487
+ font-weight: normal;
8488
+ font-style: normal;
8489
+ line-height: 1;
8490
+ letter-spacing: normal;
8491
+ text-transform: none;
8492
+ display: inline-block;
8493
+ vertical-align: middle;
8494
+ white-space: nowrap;
8495
+ word-wrap: normal;
8496
+ direction: ltr;
8497
+ -webkit-font-feature-settings: 'liga';
8498
+ -webkit-font-smoothing: antialiased; }
8499
+ .pixel-caffeine-wrapper .panel-dashboard-main .panel-body .data {
8500
+ padding-right: 0;
8501
+ text-align: left; }
8502
+ .pixel-caffeine-wrapper .panel-dashboard-main .panel-body .btn-settings {
8503
+ width: 100%;
8504
+ margin: 0; }
8505
+ .pixel-caffeine-wrapper .panel-dashboard-main .panel-body .data-group-pixel .value {
8506
+ word-break: break-all; }
8507
+ @media screen and (min-width: 480px) {
8508
+ .pixel-caffeine-wrapper .panel-dashboard-main .panel-body {
8509
+ display: -webkit-box;
8510
+ display: -moz-box;
8511
+ display: -ms-flexbox;
8512
+ display: -webkit-flex;
8513
+ display: flex;
8514
+ -webkit-flex-wrap: wrap;
8515
+ -ms-flex-wrap: wrap;
8516
+ flex-wrap: wrap; }
8517
+ .pixel-caffeine-wrapper .panel-dashboard-main .panel-body .data-group {
8518
+ -webkit-box-flex: 0 0 50%;
8519
+ -moz-box-flex: 0 0 50%;
8520
+ -webkit-flex: 0 0 50%;
8521
+ -ms-flex: 0 0 50%;
8522
+ flex: 0 0 50%; }
8523
+ .pixel-caffeine-wrapper .panel-dashboard-main .panel-body .data-group .data {
8524
+ width: auto; }
8525
+ .pixel-caffeine-wrapper .panel-dashboard-main .panel-body .data-group .value {
8526
+ width: auto; }
8527
+ .pixel-caffeine-wrapper .panel-dashboard-main .panel-body .data-group-pixel {
8528
+ -webkit-box-flex: 0 0 100%;
8529
+ -moz-box-flex: 0 0 100%;
8530
+ -webkit-flex: 0 0 100%;
8531
+ -ms-flex: 0 0 100%;
8532
+ flex: 0 0 100%; } }
8533
+ @media screen and (min-width: 768px) {
8534
+ .pixel-caffeine-wrapper .panel-dashboard-main .panel-body .btn-settings {
8535
+ position: absolute;
8536
+ top: 10px;
8537
+ right: 15px;
8538
+ width: auto; } }
8539
+ .pixel-caffeine-wrapper .panel-dashboard-main .data-group {
8540
+ padding-bottom: 20px; }
8541
+ .pixel-caffeine-wrapper .panel-dashboard-main .status .value {
8542
+ text-transform: uppercase;
8543
+ font-weight: bold; }
8544
+ .pixel-caffeine-wrapper .panel-dashboard-main .status .value .value-info {
8545
+ position: relative;
8546
+ padding-right: 35px; }
8547
+ .pixel-caffeine-wrapper .panel-dashboard-main .status .value .value-info::after {
8548
+ position: absolute;
8549
+ top: 50%;
8550
+ margin-top: -15px;
8551
+ right: 0;
8552
+ width: 30px;
8553
+ line-height: 30px;
8554
+ font-size: 2em;
8555
+ margin-left: 10px; }
8556
+ .pixel-caffeine-wrapper .panel-dashboard-main .status.active .value-info {
8557
+ color: #68AA20; }
8558
+ .pixel-caffeine-wrapper .panel-dashboard-main .status.active .value-info::after {
8559
+ content: "check";
8560
+ font-family: 'Material Icons';
8561
+ font-weight: normal;
8562
+ font-style: normal;
8563
+ line-height: 1;
8564
+ letter-spacing: normal;
8565
+ text-transform: none;
8566
+ display: inline-block;
8567
+ vertical-align: middle;
8568
+ white-space: nowrap;
8569
+ word-wrap: normal;
8570
+ direction: ltr;
8571
+ -webkit-font-feature-settings: 'liga';
8572
+ -webkit-font-smoothing: antialiased; }
8573
+ .pixel-caffeine-wrapper .panel-dashboard-main .status.inactive .value-info {
8574
+ color: #E15667; }
8575
+ .pixel-caffeine-wrapper .panel-dashboard-main .status.inactive .value-info::after {
8576
+ content: "close";
8577
+ font-family: 'Material Icons';
8578
+ font-weight: normal;
8579
+ font-style: normal;
8580
+ line-height: 1;
8581
+ letter-spacing: normal;
8582
+ text-transform: none;
8583
+ display: inline-block;
8584
+ vertical-align: middle;
8585
+ white-space: nowrap;
8586
+ word-wrap: normal;
8587
+ direction: ltr;
8588
+ -webkit-font-feature-settings: 'liga';
8589
+ -webkit-font-smoothing: antialiased; }
8590
+ .pixel-caffeine-wrapper .panel-dashboard-activity .panel-heading .tit::before {
8591
+ content: "graphic_eq";
8592
+ font-family: 'Material Icons';
8593
+ font-weight: normal;
8594
+ font-style: normal;
8595
+ line-height: 1;
8596
+ letter-spacing: normal;
8597
+ text-transform: none;
8598
+ display: inline-block;
8599
+ vertical-align: middle;
8600
+ white-space: nowrap;
8601
+ word-wrap: normal;
8602
+ direction: ltr;
8603
+ -webkit-font-feature-settings: 'liga';
8604
+ -webkit-font-smoothing: antialiased; }
8605
+
8606
+ .pixel-caffeine {
8607
+ /*
8608
+ Version: 3.5.4 Timestamp: Sun Aug 30 13:30:32 EDT 2015
8609
+ */
8610
+ /* results */
8611
+ /*
8612
+ disabled look for disabled choices in the results dropdown
8613
+ */
8614
+ /* disabled styles */
8615
+ /* multiselect */
8616
+ /* disabled styles */
8617
+ /* end multiselect */
8618
+ /* Retina-ize icons */ }
8619
+ .pixel-caffeine .select2-container {
8620
+ margin: 0;
8621
+ position: relative;
8622
+ display: inline-block;
8623
+ vertical-align: middle; }
8624
+ .pixel-caffeine .select2-container,
8625
+ .pixel-caffeine .select2-drop,
8626
+ .pixel-caffeine .select2-search,
8627
+ .pixel-caffeine .select2-search input {
8628
+ /*
8629
+ Force border-box so that % widths fit the parent
8630
+ container without overlap because of margin/padding.
8631
+ More Info : http://www.quirksmode.org/css/box.html
8632
+ */
8633
+ -webkit-box-sizing: border-box;
8634
+ /* webkit */
8635
+ -moz-box-sizing: border-box;
8636
+ /* firefox */
8637
+ box-sizing: border-box;
8638
+ /* css3 */ }
8639
+ .pixel-caffeine .select2-container .select2-choice {
8640
+ display: block;
8641
+ height: 26px;
8642
+ padding: 0 0 0 8px;
8643
+ overflow: hidden;
8644
+ position: relative;
8645
+ border: 1px solid #aaa;
8646
+ white-space: nowrap;
8647
+ line-height: 26px;
8648
+ color: #444;
8649
+ text-decoration: none;
8650
+ border-radius: 4px;
8651
+ background-clip: padding-box;
8652
+ -webkit-touch-callout: none;
8653
+ -webkit-user-select: none;
8654
+ -moz-user-select: none;
8655
+ -ms-user-select: none;
8656
+ user-select: none;
8657
+ background-color: #fff;
8658
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(0.5, #fff));
8659
+ background-image: -webkit-linear-gradient(center bottom, #eee 0%, #fff 50%);
8660
+ background-image: -moz-linear-gradient(center bottom, #eee 0%, #fff 50%);
8661
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#ffffff', endColorstr = '#eeeeee', GradientType = 0);
8662
+ background-image: linear-gradient(to top, #eee 0%, #fff 50%); }
8663
+ .pixel-caffeine html[dir="rtl"] .select2-container .select2-choice {
8664
+ padding: 0 8px 0 0; }
8665
+ .pixel-caffeine .select2-container.select2-drop-above .select2-choice {
8666
+ border-bottom-color: #aaa;
8667
+ border-radius: 0 0 4px 4px;
8668
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(0.9, #fff));
8669
+ background-image: -webkit-linear-gradient(center bottom, #eee 0%, #fff 90%);
8670
+ background-image: -moz-linear-gradient(center bottom, #eee 0%, #fff 90%);
8671
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);
8672
+ background-image: linear-gradient(to bottom, #eee 0%, #fff 90%); }
8673
+ .pixel-caffeine .select2-container.select2-allowclear .select2-choice .select2-chosen {
8674
+ margin-right: 42px; }
8675
+ .pixel-caffeine .select2-container .select2-choice > .select2-chosen {
8676
+ margin-right: 26px;
8677
+ display: block;
8678
+ overflow: hidden;
8679
+ white-space: nowrap;
8680
+ text-overflow: ellipsis;
8681
+ float: none;
8682
+ width: auto; }
8683
+ .pixel-caffeine html[dir="rtl"] .select2-container .select2-choice > .select2-chosen {
8684
+ margin-left: 26px;
8685
+ margin-right: 0; }
8686
+ .pixel-caffeine .select2-container .select2-choice abbr {
8687
+ display: none;
8688
+ width: 12px;
8689
+ height: 12px;
8690
+ position: absolute;
8691
+ right: 24px;
8692
+ top: 8px;
8693
+ font-size: 1px;
8694
+ text-decoration: none;
8695
+ border: 0;
8696
+ background: url("../img/select2/select2.png") right top no-repeat;
8697
+ cursor: pointer;
8698
+ outline: 0; }
8699
+ .pixel-caffeine .select2-container.select2-allowclear .select2-choice abbr {
8700
+ display: inline-block; }
8701
+ .pixel-caffeine .select2-container .select2-choice abbr:hover {
8702
+ background-position: right -11px;
8703
+ cursor: pointer; }
8704
+ .pixel-caffeine .select2-drop-mask {
8705
+ border: 0;
8706
+ margin: 0;
8707
+ padding: 0;
8708
+ position: fixed;
8709
+ left: 0;
8710
+ top: 0;
8711
+ min-height: 100%;
8712
+ min-width: 100%;
8713
+ height: auto;
8714
+ width: auto;
8715
+ opacity: 0;
8716
+ z-index: 9998;
8717
+ /* styles required for IE to work */
8718
+ background-color: #fff;
8719
+ filter: alpha(opacity=0); }
8720
+ .pixel-caffeine .select2-drop {
8721
+ width: 100%;
8722
+ margin-top: -1px;
8723
+ position: absolute;
8724
+ z-index: 9999;
8725
+ top: 100%;
8726
+ background: #fff;
8727
+ color: #000;
8728
+ border: 1px solid #aaa;
8729
+ border-top: 0;
8730
+ border-radius: 0 0 4px 4px;
8731
+ -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
8732
+ box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15); }
8733
+ .pixel-caffeine .select2-drop.select2-drop-above {
8734
+ margin-top: 1px;
8735
+ border-top: 1px solid #aaa;
8736
+ border-bottom: 0;
8737
+ border-radius: 4px 4px 0 0;
8738
+ -webkit-box-shadow: 0 -4px 5px rgba(0, 0, 0, 0.15);
8739
+ box-shadow: 0 -4px 5px rgba(0, 0, 0, 0.15); }
8740
+ .pixel-caffeine .select2-drop-active {
8741
+ border: 1px solid #5897fb;
8742
+ border-top: none; }
8743
+ .pixel-caffeine .select2-drop.select2-drop-above.select2-drop-active {
8744
+ border-top: 1px solid #5897fb; }
8745
+ .pixel-caffeine .select2-drop-auto-width {
8746
+ border-top: 1px solid #aaa;
8747
+ width: auto; }
8748
+ .pixel-caffeine .select2-container .select2-choice .select2-arrow {
8749
+ display: inline-block;
8750
+ width: 18px;
8751
+ height: 100%;
8752
+ position: absolute;
8753
+ right: 0;
8754
+ top: 0;
8755
+ border-left: 1px solid #aaa;
8756
+ border-radius: 0 4px 4px 0;
8757
+ background-clip: padding-box;
8758
+ background: #ccc;
8759
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
8760
+ background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
8761
+ background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
8762
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr = '#eeeeee', endColorstr = '#cccccc', GradientType = 0);
8763
+ background-image: linear-gradient(to top, #ccc 0%, #eee 60%); }
8764
+ .pixel-caffeine html[dir="rtl"] .select2-container .select2-choice .select2-arrow {
8765
+ left: 0;
8766
+ right: auto;
8767
+ border-left: none;
8768
+ border-right: 1px solid #aaa;
8769
+ border-radius: 4px 0 0 4px; }
8770
+ .pixel-caffeine .select2-container .select2-choice .select2-arrow b {
8771
+ display: block;
8772
+ width: 100%;
8773
+ height: 100%;
8774
+ background: url("../img/select2/select2.png") no-repeat 0 1px; }
8775
+ .pixel-caffeine html[dir="rtl"] .select2-container .select2-choice .select2-arrow b {
8776
+ background-position: 2px 1px; }
8777
+ .pixel-caffeine .select2-search {
8778
+ display: inline-block;
8779
+ width: 100%;
8780
+ min-height: 26px;
8781
+ margin: 0;
8782
+ padding: 4px 4px 0 4px;
8783
+ position: relative;
8784
+ z-index: 10000;
8785
+ white-space: nowrap; }
8786
+ .pixel-caffeine .select2-search input {
8787
+ width: 100%;
8788
+ height: auto !important;
8789
+ min-height: 26px;
8790
+ padding: 4px 20px 4px 5px;
8791
+ margin: 0;
8792
+ outline: 0;
8793
+ font-family: sans-serif;
8794
+ font-size: 1em;
8795
+ border: 1px solid #aaa;
8796
+ border-radius: 0;
8797
+ -webkit-box-shadow: none;
8798
+ box-shadow: none;
8799
+ background: #fff url("../img/select2/select2.png") no-repeat 100% -22px;
8800
+ background: url("../img/select2/select2.png") no-repeat 100% -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));
8801
+ background: url("../img/select2/select2.png") no-repeat 100% -22px, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);
8802
+ background: url("../img/select2/select2.png") no-repeat 100% -22px, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);
8803
+ background: url("../img/select2/select2.png") no-repeat 100% -22px, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0; }
8804
+ .pixel-caffeine html[dir="rtl"] .select2-search input {
8805
+ padding: 4px 5px 4px 20px;
8806
+ background: #fff url("../img/select2/select2.png") no-repeat -37px -22px;
8807
+ background: url("../img/select2/select2.png") no-repeat -37px -22px, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));
8808
+ background: url("../img/select2/select2.png") no-repeat -37px -22px, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);
8809
+ background: url("../img/select2/select2.png") no-repeat -37px -22px, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);
8810
+ background: url("../img/select2/select2.png") no-repeat -37px -22px, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0; }
8811
+ .pixel-caffeine .select2-search input.select2-active {
8812
+ background: #fff url("../img/select2/select2-spinner.gif") no-repeat 100%;
8813
+ background: url("../img/select2/select2-spinner.gif") no-repeat 100%, -webkit-gradient(linear, left bottom, left top, color-stop(0.85, #fff), color-stop(0.99, #eee));
8814
+ background: url("../img/select2/select2-spinner.gif") no-repeat 100%, -webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);
8815
+ background: url("../img/select2/select2-spinner.gif") no-repeat 100%, -moz-linear-gradient(center bottom, #fff 85%, #eee 99%);
8816
+ background: url("../img/select2/select2-spinner.gif") no-repeat 100%, linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0; }
8817
+ .pixel-caffeine .select2-container-active .select2-choice,
8818
+ .pixel-caffeine .select2-container-active .select2-choices {
8819
+ border: 1px solid #5897fb;
8820
+ outline: none;
8821
+ -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
8822
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); }
8823
+ .pixel-caffeine .select2-dropdown-open .select2-choice {
8824
+ border-bottom-color: transparent;
8825
+ -webkit-box-shadow: 0 1px 0 #fff inset;
8826
+ box-shadow: 0 1px 0 #fff inset;
8827
+ border-bottom-left-radius: 0;
8828
+ border-bottom-right-radius: 0;
8829
+ background-color: #eee;
8830
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #fff), color-stop(0.5, #eee));
8831
+ background-image: -webkit-linear-gradient(center bottom, #fff 0%, #eee 50%);
8832
+ background-image: -moz-linear-gradient(center bottom, #fff 0%, #eee 50%);
8833
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);
8834
+ background-image: linear-gradient(to top, #fff 0%, #eee 50%); }
8835
+ .pixel-caffeine .select2-dropdown-open.select2-drop-above .select2-choice,
8836
+ .pixel-caffeine .select2-dropdown-open.select2-drop-above .select2-choices {
8837
+ border: 1px solid #5897fb;
8838
+ border-top-color: transparent;
8839
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(0.5, #eee));
8840
+ background-image: -webkit-linear-gradient(center top, #fff 0%, #eee 50%);
8841
+ background-image: -moz-linear-gradient(center top, #fff 0%, #eee 50%);
8842
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);
8843
+ background-image: linear-gradient(to bottom, #fff 0%, #eee 50%); }
8844
+ .pixel-caffeine .select2-dropdown-open .select2-choice .select2-arrow {
8845
+ background: transparent;
8846
+ border-left: none;
8847
+ filter: none; }
8848
+ .pixel-caffeine html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow {
8849
+ border-right: none; }
8850
+ .pixel-caffeine .select2-dropdown-open .select2-choice .select2-arrow b {
8851
+ background-position: -18px 1px; }
8852
+ .pixel-caffeine html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow b {
8853
+ background-position: -16px 1px; }
8854
+ .pixel-caffeine .select2-hidden-accessible {
8855
+ border: 0;
8856
+ clip: rect(0 0 0 0);
8857
+ height: 1px;
8858
+ margin: -1px;
8859
+ overflow: hidden;
8860
+ padding: 0;
8861
+ position: absolute;
8862
+ width: 1px; }
8863
+ .pixel-caffeine .select2-results {
8864
+ max-height: 200px;
8865
+ padding: 0 0 0 4px;
8866
+ margin: 4px 4px 4px 0;
8867
+ position: relative;
8868
+ overflow-x: hidden;
8869
+ overflow-y: auto;
8870
+ -webkit-tap-highlight-color: transparent; }
8871
+ .pixel-caffeine html[dir="rtl"] .select2-results {
8872
+ padding: 0 4px 0 0;
8873
+ margin: 4px 0 4px 4px; }
8874
+ .pixel-caffeine .select2-results ul.select2-result-sub {
8875
+ margin: 0;
8876
+ padding-left: 0; }
8877
+ .pixel-caffeine .select2-results li {
8878
+ list-style: none;
8879
+ display: list-item;
8880
+ background-image: none; }
8881
+ .pixel-caffeine .select2-results li.select2-result-with-children > .select2-result-label {
8882
+ font-weight: bold; }
8883
+ .pixel-caffeine .select2-results .select2-result-label {
8884
+ padding: 3px 7px 4px;
8885
+ margin: 0;
8886
+ cursor: pointer;
8887
+ min-height: 1em;
8888
+ -webkit-touch-callout: none;
8889
+ -webkit-user-select: none;
8890
+ -moz-user-select: none;
8891
+ -ms-user-select: none;
8892
+ user-select: none; }
8893
+ .pixel-caffeine .select2-results-dept-1 .select2-result-label {
8894
+ padding-left: 20px; }
8895
+ .pixel-caffeine .select2-results-dept-2 .select2-result-label {
8896
+ padding-left: 40px; }
8897
+ .pixel-caffeine .select2-results-dept-3 .select2-result-label {
8898
+ padding-left: 60px; }
8899
+ .pixel-caffeine .select2-results-dept-4 .select2-result-label {
8900
+ padding-left: 80px; }
8901
+ .pixel-caffeine .select2-results-dept-5 .select2-result-label {
8902
+ padding-left: 100px; }
8903
+ .pixel-caffeine .select2-results-dept-6 .select2-result-label {
8904
+ padding-left: 110px; }
8905
+ .pixel-caffeine .select2-results-dept-7 .select2-result-label {
8906
+ padding-left: 120px; }
8907
+ .pixel-caffeine .select2-results .select2-highlighted {
8908
+ background: #3875d7;
8909
+ color: #fff; }
8910
+ .pixel-caffeine .select2-results li em {
8911
+ background: #feffde;
8912
+ font-style: normal; }
8913
+ .pixel-caffeine .select2-results .select2-highlighted em {
8914
+ background: transparent; }
8915
+ .pixel-caffeine .select2-results .select2-highlighted ul {
8916
+ background: #fff;
8917
+ color: #000; }
8918
+ .pixel-caffeine .select2-results .select2-no-results,
8919
+ .pixel-caffeine .select2-results .select2-searching,
8920
+ .pixel-caffeine .select2-results .select2-ajax-error,
8921
+ .pixel-caffeine .select2-results .select2-selection-limit {
8922
+ background: #f4f4f4;
8923
+ display: list-item;
8924
+ padding-left: 5px; }
8925
+ .pixel-caffeine .select2-results .select2-disabled.select2-highlighted {
8926
+ color: #666;
8927
+ background: #f4f4f4;
8928
+ display: list-item;
8929
+ cursor: default; }
8930
+ .pixel-caffeine .select2-results .select2-disabled {
8931
+ background: #f4f4f4;
8932
+ display: list-item;
8933
+ cursor: default; }
8934
+ .pixel-caffeine .select2-results .select2-selected {
8935
+ display: none; }
8936
+ .pixel-caffeine .select2-more-results.select2-active {
8937
+ background: #f4f4f4 url("../img/select2/select2-spinner.gif") no-repeat 100%; }
8938
+ .pixel-caffeine .select2-results .select2-ajax-error {
8939
+ background: rgba(255, 50, 50, 0.2); }
8940
+ .pixel-caffeine .select2-more-results {
8941
+ background: #f4f4f4;
8942
+ display: list-item; }
8943
+ .pixel-caffeine .select2-container.select2-container-disabled .select2-choice {
8944
+ background-color: #f4f4f4;
8945
+ background-image: none;
8946
+ border: 1px solid #ddd;
8947
+ cursor: default; }
8948
+ .pixel-caffeine .select2-container.select2-container-disabled .select2-choice .select2-arrow {
8949
+ background-color: #f4f4f4;
8950
+ background-image: none;
8951
+ border-left: 0; }
8952
+ .pixel-caffeine .select2-container.select2-container-disabled .select2-choice abbr {
8953
+ display: none; }
8954
+ .pixel-caffeine .select2-container-multi .select2-choices {
8955
+ height: auto !important;
8956
+ height: 1%;
8957
+ margin: 0;
8958
+ padding: 0 5px 0 0;
8959
+ position: relative;
8960
+ border: 1px solid #aaa;
8961
+ cursor: text;
8962
+ overflow: hidden;
8963
+ background-color: #fff;
8964
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eee), color-stop(15%, #fff));
8965
+ background-image: -webkit-linear-gradient(top, #eee 1%, #fff 15%);
8966
+ background-image: -moz-linear-gradient(top, #eee 1%, #fff 15%);
8967
+ background-image: linear-gradient(to bottom, #eee 1%, #fff 15%); }
8968
+ .pixel-caffeine html[dir="rtl"] .select2-container-multi .select2-choices {
8969
+ padding: 0 0 0 5px; }
8970
+ .pixel-caffeine .select2-locked {
8971
+ padding: 3px 5px 3px 5px !important; }
8972
+ .pixel-caffeine .select2-container-multi .select2-choices {
8973
+ min-height: 26px; }
8974
+ .pixel-caffeine .select2-container-multi.select2-container-active .select2-choices {
8975
+ border: 1px solid #5897fb;
8976
+ outline: none;
8977
+ -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
8978
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); }
8979
+ .pixel-caffeine .select2-container-multi .select2-choices li {
8980
+ float: left;
8981
+ list-style: none; }
8982
+ .pixel-caffeine html[dir="rtl"] .select2-container-multi .select2-choices li {
8983
+ float: right; }
8984
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-field {
8985
+ margin: 0;
8986
+ padding: 0;
8987
+ white-space: nowrap; }
8988
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-field input {
8989
+ padding: 5px;
8990
+ margin: 1px 0;
8991
+ font-family: sans-serif;
8992
+ font-size: 100%;
8993
+ color: #666;
8994
+ outline: 0;
8995
+ border: 0;
8996
+ -webkit-box-shadow: none;
8997
+ box-shadow: none;
8998
+ background: transparent !important; }
8999
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-field input.select2-active {
9000
+ background: #fff url("../img/select2/select2-spinner.gif") no-repeat 100% !important; }
9001
+ .pixel-caffeine .select2-default {
9002
+ color: #999 !important; }
9003
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-choice {
9004
+ padding: 3px 5px 3px 18px;
9005
+ margin: 3px 0 3px 5px;
9006
+ position: relative;
9007
+ line-height: 13px;
9008
+ color: #333;
9009
+ cursor: default;
9010
+ border: 1px solid #aaaaaa;
9011
+ border-radius: 3px;
9012
+ -webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
9013
+ box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
9014
+ background-clip: padding-box;
9015
+ -webkit-touch-callout: none;
9016
+ -webkit-user-select: none;
9017
+ -moz-user-select: none;
9018
+ -ms-user-select: none;
9019
+ user-select: none;
9020
+ background-color: #e4e4e4;
9021
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#f4f4f4', GradientType=0);
9022
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eee));
9023
+ background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
9024
+ background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
9025
+ background-image: linear-gradient(to bottom, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%); }
9026
+ .pixel-caffeine html[dir="rtl"] .select2-container-multi .select2-choices .select2-search-choice {
9027
+ margin: 3px 5px 3px 0;
9028
+ padding: 3px 18px 3px 5px; }
9029
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-choice .select2-chosen {
9030
+ cursor: default; }
9031
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-choice-focus {
9032
+ background: #d4d4d4; }
9033
+ .pixel-caffeine .select2-search-choice-close {
9034
+ display: block;
9035
+ width: 12px;
9036
+ height: 13px;
9037
+ position: absolute;
9038
+ right: 3px;
9039
+ top: 4px;
9040
+ font-size: 1px;
9041
+ outline: none;
9042
+ background: url("../img/select2/select2.png") right top no-repeat; }
9043
+ .pixel-caffeine html[dir="rtl"] .select2-search-choice-close {
9044
+ right: auto;
9045
+ left: 3px; }
9046
+ .pixel-caffeine .select2-container-multi .select2-search-choice-close {
9047
+ left: 3px; }
9048
+ .pixel-caffeine html[dir="rtl"] .select2-container-multi .select2-search-choice-close {
9049
+ left: auto;
9050
+ right: 2px; }
9051
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover {
9052
+ background-position: right -11px; }
9053
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close {
9054
+ background-position: right -11px; }
9055
+ .pixel-caffeine .select2-container-multi.select2-container-disabled .select2-choices {
9056
+ background-color: #f4f4f4;
9057
+ background-image: none;
9058
+ border: 1px solid #ddd;
9059
+ cursor: default; }
9060
+ .pixel-caffeine .select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice {
9061
+ padding: 3px 5px 3px 5px;
9062
+ border: 1px solid #ddd;
9063
+ background-image: none;
9064
+ background-color: #f4f4f4; }
9065
+ .pixel-caffeine .select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close {
9066
+ display: none;
9067
+ background: none; }
9068
+ .pixel-caffeine .select2-result-selectable .select2-match,
9069
+ .pixel-caffeine .select2-result-unselectable .select2-match {
9070
+ text-decoration: underline; }
9071
+ .pixel-caffeine .select2-offscreen, .pixel-caffeine .select2-offscreen:focus {
9072
+ clip: rect(0 0 0 0) !important;
9073
+ width: 1px !important;
9074
+ height: 1px !important;
9075
+ border: 0 !important;
9076
+ margin: 0 !important;
9077
+ padding: 0 !important;
9078
+ overflow: hidden !important;
9079
+ position: absolute !important;
9080
+ outline: 0 !important;
9081
+ left: 0px !important;
9082
+ top: 0px !important; }
9083
+ .pixel-caffeine .select2-display-none {
9084
+ display: none; }
9085
+ .pixel-caffeine .select2-measure-scrollbar {
9086
+ position: absolute;
9087
+ top: -10000px;
9088
+ left: -10000px;
9089
+ width: 100px;
9090
+ height: 100px;
9091
+ overflow: scroll; }
9092
+ @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min-resolution: 2dppx) {
9093
+ .pixel-caffeine .select2-search input,
9094
+ .pixel-caffeine .select2-search-choice-close,
9095
+ .pixel-caffeine .select2-container .select2-choice abbr,
9096
+ .pixel-caffeine .select2-container .select2-choice .select2-arrow b {
9097
+ background-image: url("../img/select2/select2x2.png") !important;
9098
+ background-repeat: no-repeat !important;
9099
+ background-size: 60px 40px !important; }
9100
+ .pixel-caffeine .select2-search input {
9101
+ background-position: 100% -21px !important; } }
9102
+ .pixel-caffeine .select2-container {
9103
+ height: auto;
9104
+ padding-top: 0;
9105
+ padding-bottom: 2px;
9106
+ z-index: 1; }
9107
+ .pixel-caffeine .select2-container:hover {
9108
+ background-color: #e7ecf6; }
9109
+ .pixel-caffeine .select2-container .select2-choice,
9110
+ .pixel-caffeine .select2-container .select2-choices {
9111
+ height: 37px;
9112
+ line-height: 37px;
9113
+ border: none;
9114
+ border-radius: 0;
9115
+ background: #f2f4fa; }
9116
+ .pixel-caffeine .select2-container .select2-choice .select2-arrow,
9117
+ .pixel-caffeine .select2-container .select2-choices .select2-arrow {
9118
+ width: 30px;
9119
+ background: none;
9120
+ border-left: none; }
9121
+ .pixel-caffeine .select2-container .select2-choice .select2-arrow b,
9122
+ .pixel-caffeine .select2-container .select2-choices .select2-arrow b {
9123
+ display: none; }
9124
+ .pixel-caffeine .select2-container .select2-choice .select2-arrow::before,
9125
+ .pixel-caffeine .select2-container .select2-choices .select2-arrow::before {
9126
+ content: "";
9127
+ position: absolute;
9128
+ top: 50%;
9129
+ left: 50%;
9130
+ margin-top: -3px;
9131
+ margin-left: -6px;
9132
+ width: 0;
9133
+ height: 0;
9134
+ border-style: solid;
9135
+ border-width: 6px 6px 0 6px;
9136
+ border-color: #444 transparent transparent transparent; }
9137
+ .pixel-caffeine .select2-container .select2-choice {
9138
+ padding-left: 0;
9139
+ padding-right: 0;
9140
+ background-color: transparent; }
9141
+ .pixel-caffeine .select2-container .select2-choice:hover {
9142
+ text-decoration: none;
9143
+ color: #444; }
9144
+ .pixel-caffeine .select2-container.select2-container-active .select2-choices,
9145
+ .pixel-caffeine .select2-container.select2-container-active .select2-choice {
9146
+ -webkit-box-shadow: none;
9147
+ box-shadow: none; }
9148
+ .pixel-caffeine .select2-container.select2-container-disabled {
9149
+ background: #f6f6f6;
9150
+ border-bottom: 1px dotted #D2D2D2;
9151
+ cursor: not-allowed; }
9152
+ .pixel-caffeine .select2-container.select2-container-disabled .select2-choice {
9153
+ background: none;
9154
+ border: none;
9155
+ pointer-events: none;
9156
+ color: #BDBDBD !important; }
9157
+ .pixel-caffeine .select2-container.select2-container-disabled .select2-choice .select2-chosen {
9158
+ color: inherit; }
9159
+ .pixel-caffeine .select2-container.select2-container-disabled .select2-choice .select2-arrow::before {
9160
+ border-color: #BDBDBD transparent transparent transparent; }
9161
+ .pixel-caffeine .select2-container .select2-chosen,
9162
+ .pixel-caffeine .select2-container .select2-arrow {
9163
+ transition: opacity 0.3s ease-out; }
9164
+ .pixel-caffeine .select2-container::after {
9165
+ opacity: 0;
9166
+ transition: opacity 0.3s ease-out; }
9167
+ .pixel-caffeine .select2-container.loading-data {
9168
+ pointer-events: none; }
9169
+ .pixel-caffeine .select2-container.loading-data::after {
9170
+ position: absolute;
9171
+ top: 9px;
9172
+ right: 14px;
9173
+ color: #444;
9174
+ opacity: 0.75;
9175
+ font-size: 1.5em; }
9176
+ .pixel-caffeine .select2-container.loading-data .select2-chosen {
9177
+ opacity: 0.5; }
9178
+ .pixel-caffeine .select2-container.loading-data .select2-arrow {
9179
+ opacity: 0; }
9180
+ .pixel-caffeine .form-group .select2-container-multi.form-control {
9181
+ padding-left: 0;
9182
+ padding-right: 0; }
9183
+ .pixel-caffeine .select2-container-multi:hover {
9184
+ background-color: #f2f4fa; }
9185
+ .pixel-caffeine .select2-container-multi .select2-choices {
9186
+ background-color: transparent;
9187
+ padding: 0 10px; }
9188
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-field .select2-input {
9189
+ padding: 0;
9190
+ margin: 0; }
9191
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-field,
9192
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-choice {
9193
+ float: none;
9194
+ display: inline-block;
9195
+ margin: 0px 5px 0px 0; }
9196
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-choice {
9197
+ position: relative;
9198
+ top: 1px;
9199
+ background: #dfe6f3;
9200
+ padding: 7px 27px 7px 7px;
9201
+ border: none;
9202
+ border-radius: 0;
9203
+ text-transform: uppercase;
9204
+ font-size: 0.85em;
9205
+ font-weight: 600;
9206
+ -webkit-box-shadow: none;
9207
+ box-shadow: none; }
9208
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-choice-close {
9209
+ top: 50%;
9210
+ margin-top: -10px;
9211
+ left: auto;
9212
+ width: 20px;
9213
+ height: 20px;
9214
+ line-height: 20px;
9215
+ background: none !important;
9216
+ text-align: center; }
9217
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-choice-close::before {
9218
+ content: "close";
9219
+ font-family: 'Material Icons';
9220
+ font-weight: normal;
9221
+ font-style: normal;
9222
+ line-height: 1;
9223
+ letter-spacing: normal;
9224
+ text-transform: none;
9225
+ display: inline-block;
9226
+ vertical-align: middle;
9227
+ white-space: nowrap;
9228
+ word-wrap: normal;
9229
+ direction: ltr;
9230
+ -webkit-font-feature-settings: 'liga';
9231
+ -webkit-font-smoothing: antialiased;
9232
+ color: #4C70BA;
9233
+ font-size: 18px; }
9234
+ .pixel-caffeine .select2-container-multi .select2-choices .select2-search-choice-close:hover::before {
9235
+ color: #E15667; }
9236
+ .pixel-caffeine .select2-container-multi.select2-container-active .select2-choices {
9237
+ border: none; }
9238
+ .pixel-caffeine .select2-drop {
9239
+ box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 1px 6px 0 rgba(0, 0, 0, 0.12);
9240
+ background: #dfe6f3;
9241
+ border: none; }
9242
+ .pixel-caffeine .select2-drop .select2-search {
9243
+ padding: 10px; }
9244
+ .pixel-caffeine .select2-drop .select2-search::before {
9245
+ position: absolute;
9246
+ right: 10px;
9247
+ width: 30px;
9248
+ content: "search";
9249
+ font-family: 'Material Icons';
9250
+ font-weight: normal;
9251
+ font-style: normal;
9252
+ line-height: 1;
9253
+ letter-spacing: normal;
9254
+ text-transform: none;
9255
+ display: inline-block;
9256
+ vertical-align: middle;
9257
+ white-space: nowrap;
9258
+ word-wrap: normal;
9259
+ direction: ltr;
9260
+ -webkit-font-feature-settings: 'liga';
9261
+ -webkit-font-smoothing: antialiased;
9262
+ line-height: 38px;
9263
+ color: #96abd6;
9264
+ font-size: 1.5em; }
9265
+ .pixel-caffeine .select2-drop .select2-search .select2-input {
9266
+ min-height: 38px;
9267
+ background-color: #FFF;
9268
+ background-image: none !important;
9269
+ border-color: #96abd6;
9270
+ padding-right: 30px; }
9271
+ .pixel-caffeine .select2-drop .select2-search .select2-input.select2-focused {
9272
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #96abd6;
9273
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #96abd6; }
9274
+ .pixel-caffeine .select2-drop.select2-drop-above.select2-drop-active {
9275
+ border-top: none;
9276
+ box-shadow: 0 1px 6px 0 rgba(0, 0, 0, 0.12), 0 1px 6px 0 rgba(0, 0, 0, 0.12); }
9277
+ .pixel-caffeine .select2-drop-multi {
9278
+ -webkit-transform: translate(0, 1px);
9279
+ -ms-transform: translate(0, 1px);
9280
+ -o-transform: translate(0, 1px);
9281
+ transform: translate(0, 1px); }
9282
+ .pixel-caffeine .select2-results {
9283
+ padding: 0;
9284
+ margin: 0;
9285
+ font-size: 14px;
9286
+ font-weight: 300; }
9287
+ .pixel-caffeine .select2-results .select2-result,
9288
+ .pixel-caffeine .select2-results .select2-no-results {
9289
+ padding: 10px;
9290
+ margin-bottom: 0; }
9291
+ .pixel-caffeine .select2-results .select2-result {
9292
+ border-top: 1px solid #bac8e5; }
9293
+ .pixel-caffeine .select2-results .select2-no-results {
9294
+ background: none; }
9295
+ .pixel-caffeine .select2-results .select2-result-label {
9296
+ padding: 0; }
9297
+ .pixel-caffeine .select2-results .select2-highlighted {
9298
+ background: #96abd6;
9299
+ color: #FFF; }
9300
+ .pixel-caffeine .select2-results .select2-highlighted:active {
9301
+ background: #4C70BA;
9302
+ color: #FFF; }
9303
+ .pixel-caffeine .select2-dropdown-open.select2-drop-above .select2-choice,
9304
+ .pixel-caffeine .select2-dropdown-open.select2-drop-above .select2-choices {
9305
+ background: none;
9306
+ border: none; }
9307
+ .pixel-caffeine.modal-open {
9308
+ overflow: hidden; }
9309
+ .pixel-caffeine.modal-open .modal {
9310
+ overflow-x: hidden;
9311
+ overflow-y: auto; }
9312
+
9313
+ /*# sourceMappingURL=admin.css.map */
includes/admin/dist/css/admin.min.css ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ @charset "UTF-8";/*!
2
+ * Admin pages common
3
+ */@import url(//fonts.googleapis.com/icon?family=Material+Icons);@keyframes anim-spin{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}.pixel-caffeine-wrapper *,.pixel-caffeine-wrapper :after,.pixel-caffeine-wrapper :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.pixel-caffeine-wrapper html{font-size:10px;-webkit-tap-highlight-color:transparent}.pixel-caffeine-wrapper body{font-size:14px;line-height:1.42857;color:#333;background-color:transparent}.pixel-caffeine-wrapper button,.pixel-caffeine-wrapper input,.pixel-caffeine-wrapper select,.pixel-caffeine-wrapper textarea{font-family:inherit;font-size:inherit;line-height:inherit}.pixel-caffeine-wrapper a{text-decoration:none}.pixel-caffeine-wrapper a:focus,.pixel-caffeine-wrapper a:hover{text-decoration:underline}.pixel-caffeine-wrapper a:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.pixel-caffeine-wrapper figure{margin:0}.pixel-caffeine-wrapper img{vertical-align:middle}.pixel-caffeine-wrapper .img-responsive{display:block;max-width:100%;height:auto}.pixel-caffeine-wrapper .img-rounded{border-radius:6px}.pixel-caffeine-wrapper .img-thumbnail{padding:4px;line-height:1.42857;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.pixel-caffeine-wrapper .img-circle{border-radius:50%}.pixel-caffeine-wrapper hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.pixel-caffeine-wrapper .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.pixel-caffeine-wrapper select[multiple],.pixel-caffeine-wrapper select[size],.pixel-caffeine-wrapper textarea.form-control{height:auto}.pixel-caffeine-wrapper .sr-only-focusable:active,.pixel-caffeine-wrapper .sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.pixel-caffeine-wrapper [role=button]{cursor:pointer}.pixel-caffeine-wrapper .h1,.pixel-caffeine-wrapper .h2,.pixel-caffeine-wrapper .h3,.pixel-caffeine-wrapper .h4,.pixel-caffeine-wrapper .h5,.pixel-caffeine-wrapper .h6,.pixel-caffeine-wrapper h1,.pixel-caffeine-wrapper h2,.pixel-caffeine-wrapper h3,.pixel-caffeine-wrapper h4,.pixel-caffeine-wrapper h5,.pixel-caffeine-wrapper h6{font-family:inherit;font-weight:700;line-height:1.1;color:inherit}.pixel-caffeine-wrapper .h1 .small,.pixel-caffeine-wrapper .h1 small,.pixel-caffeine-wrapper .h2 .small,.pixel-caffeine-wrapper .h2 small,.pixel-caffeine-wrapper .h3 .small,.pixel-caffeine-wrapper .h3 small,.pixel-caffeine-wrapper .h4 .small,.pixel-caffeine-wrapper .h4 small,.pixel-caffeine-wrapper .h5 .small,.pixel-caffeine-wrapper .h5 small,.pixel-caffeine-wrapper .h6 .small,.pixel-caffeine-wrapper .h6 small,.pixel-caffeine-wrapper h1 .small,.pixel-caffeine-wrapper h1 small,.pixel-caffeine-wrapper h2 .small,.pixel-caffeine-wrapper h2 small,.pixel-caffeine-wrapper h3 .small,.pixel-caffeine-wrapper h3 small,.pixel-caffeine-wrapper h4 .small,.pixel-caffeine-wrapper h4 small,.pixel-caffeine-wrapper h5 .small,.pixel-caffeine-wrapper h5 small,.pixel-caffeine-wrapper h6 .small,.pixel-caffeine-wrapper h6 small{font-weight:400;line-height:1;color:#777}.pixel-caffeine-wrapper .h1,.pixel-caffeine-wrapper .h2,.pixel-caffeine-wrapper .h3,.pixel-caffeine-wrapper h1,.pixel-caffeine-wrapper h2,.pixel-caffeine-wrapper h3{margin-top:20px;margin-bottom:10px}.pixel-caffeine-wrapper .h1 .small,.pixel-caffeine-wrapper .h1 small,.pixel-caffeine-wrapper .h2 .small,.pixel-caffeine-wrapper .h2 small,.pixel-caffeine-wrapper .h3 .small,.pixel-caffeine-wrapper .h3 small,.pixel-caffeine-wrapper h1 .small,.pixel-caffeine-wrapper h1 small,.pixel-caffeine-wrapper h2 .small,.pixel-caffeine-wrapper h2 small,.pixel-caffeine-wrapper h3 .small,.pixel-caffeine-wrapper h3 small{font-size:65%}.pixel-caffeine-wrapper .h4,.pixel-caffeine-wrapper .h5,.pixel-caffeine-wrapper .h6,.pixel-caffeine-wrapper h4,.pixel-caffeine-wrapper h5,.pixel-caffeine-wrapper h6{margin-top:10px;margin-bottom:10px}.pixel-caffeine-wrapper .h4 .small,.pixel-caffeine-wrapper .h4 small,.pixel-caffeine-wrapper .h5 .small,.pixel-caffeine-wrapper .h5 small,.pixel-caffeine-wrapper .h6 .small,.pixel-caffeine-wrapper .h6 small,.pixel-caffeine-wrapper h4 .small,.pixel-caffeine-wrapper h4 small,.pixel-caffeine-wrapper h5 .small,.pixel-caffeine-wrapper h5 small,.pixel-caffeine-wrapper h6 .small,.pixel-caffeine-wrapper h6 small{font-size:75%}.pixel-caffeine-wrapper .h1,.pixel-caffeine-wrapper h1{font-size:36px}.pixel-caffeine-wrapper .h2,.pixel-caffeine-wrapper h2{font-size:30px}.pixel-caffeine-wrapper .h3,.pixel-caffeine-wrapper h3{font-size:24px}.pixel-caffeine-wrapper .h4,.pixel-caffeine-wrapper h4{font-size:18px}.pixel-caffeine-wrapper .h5,.pixel-caffeine-wrapper h5{font-size:14px}.pixel-caffeine-wrapper .h6,.pixel-caffeine-wrapper h6{font-size:12px}.pixel-caffeine-wrapper p{margin:0 0 10px}.pixel-caffeine-wrapper .lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.pixel-caffeine-wrapper .lead{font-size:21px}}.pixel-caffeine-wrapper .small,.pixel-caffeine-wrapper small{font-size:85%}.pixel-caffeine-wrapper .mark,.pixel-caffeine-wrapper mark{background-color:#fcf8e3;padding:.2em}.pixel-caffeine-wrapper .text-left{text-align:left}.pixel-caffeine-wrapper .text-right{text-align:right}.pixel-caffeine-wrapper .text-center{text-align:center}.pixel-caffeine-wrapper .text-justify{text-align:justify}.pixel-caffeine-wrapper .text-nowrap{white-space:nowrap}.pixel-caffeine-wrapper .text-lowercase{text-transform:lowercase}.pixel-caffeine-wrapper .initialism,.pixel-caffeine-wrapper .text-uppercase{text-transform:uppercase}.pixel-caffeine-wrapper .text-capitalize{text-transform:capitalize}.pixel-caffeine-wrapper .text-muted{color:#777}.pixel-caffeine-wrapper a.text-primary:focus,.pixel-caffeine-wrapper a.text-primary:hover{color:#3b5998}.pixel-caffeine-wrapper a.text-success:focus,.pixel-caffeine-wrapper a.text-success:hover{color:#2b542c}.pixel-caffeine-wrapper a.text-info:focus,.pixel-caffeine-wrapper a.text-info:hover{color:#245269}.pixel-caffeine-wrapper a.text-warning:focus,.pixel-caffeine-wrapper a.text-warning:hover{color:#66512c}.pixel-caffeine-wrapper a.text-danger:focus,.pixel-caffeine-wrapper a.text-danger:hover{color:#843534}.pixel-caffeine-wrapper .bg-primary{color:#fff;background-color:#4C70BA}.pixel-caffeine-wrapper a.bg-primary:focus,.pixel-caffeine-wrapper a.bg-primary:hover{background-color:#3b5998}.pixel-caffeine-wrapper .bg-success{background-color:#dff0d8}.pixel-caffeine-wrapper a.bg-success:focus,.pixel-caffeine-wrapper a.bg-success:hover{background-color:#c1e2b3}.pixel-caffeine-wrapper .bg-info{background-color:#d9edf7}.pixel-caffeine-wrapper a.bg-info:focus,.pixel-caffeine-wrapper a.bg-info:hover{background-color:#afd9ee}.pixel-caffeine-wrapper .bg-warning{background-color:#fcf8e3}.pixel-caffeine-wrapper a.bg-warning:focus,.pixel-caffeine-wrapper a.bg-warning:hover{background-color:#f7ecb5}.pixel-caffeine-wrapper .bg-danger{background-color:#f2dede}.pixel-caffeine-wrapper a.bg-danger:focus,.pixel-caffeine-wrapper a.bg-danger:hover{background-color:#e4b9b9}.pixel-caffeine-wrapper .page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}.pixel-caffeine-wrapper ol,.pixel-caffeine-wrapper ul{margin-top:0;margin-bottom:10px}.pixel-caffeine-wrapper ol ol,.pixel-caffeine-wrapper ol ul,.pixel-caffeine-wrapper ul ol,.pixel-caffeine-wrapper ul ul{margin-bottom:0}.pixel-caffeine-wrapper .list-unstyled{padding-left:0;list-style:none}.pixel-caffeine-wrapper .list-inline{padding-left:0;list-style:none;margin-left:-5px}.pixel-caffeine-wrapper .list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}.pixel-caffeine-wrapper dl{margin-top:0;margin-bottom:20px}.pixel-caffeine-wrapper dd,.pixel-caffeine-wrapper dt{line-height:1.42857}.pixel-caffeine-wrapper dt{font-weight:700}.pixel-caffeine-wrapper dd{margin-left:0}.pixel-caffeine-wrapper .dl-horizontal dd:after,.pixel-caffeine-wrapper .dl-horizontal dd:before{content:" ";display:table}.pixel-caffeine-wrapper .dl-horizontal dd:after{clear:both}@media (min-width:768px){.pixel-caffeine-wrapper .dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pixel-caffeine-wrapper .dl-horizontal dd{margin-left:180px}.pixel-caffeine-wrapper .container{width:750px}}.pixel-caffeine-wrapper .alert-wrap:after,.pixel-caffeine-wrapper .btn-group-vertical>.btn-group:after,.pixel-caffeine-wrapper .btn-toolbar:after,.pixel-caffeine-wrapper .clearfix:after,.pixel-caffeine-wrapper .container-fluid:after,.pixel-caffeine-wrapper .container:after,.pixel-caffeine-wrapper .data-group:after,.pixel-caffeine-wrapper .dropdown-menu>li>a,.pixel-caffeine-wrapper .form-horizontal .form-group:after,.pixel-caffeine-wrapper .list-group .list-group-separator,.pixel-caffeine-wrapper .modal-footer:after,.pixel-caffeine-wrapper .modal-header:after,.pixel-caffeine-wrapper .multi-form-group:after,.pixel-caffeine-wrapper .nav:after,.pixel-caffeine-wrapper .navbar-collapse:after,.pixel-caffeine-wrapper .navbar-header:after,.pixel-caffeine-wrapper .navbar:after,.pixel-caffeine-wrapper .panel .panel-footer:after,.pixel-caffeine-wrapper .panel-body:after,.pixel-caffeine-wrapper .panel-settings-ca .form-track:after,.pixel-caffeine-wrapper .plugin-sec .plugin-sidebar:after,.pixel-caffeine-wrapper .row:after{clear:both}.pixel-caffeine-wrapper abbr[data-original-title],.pixel-caffeine-wrapper abbr[title]{cursor:help;border-bottom:1px dotted #777}.pixel-caffeine-wrapper .initialism{font-size:90%}.pixel-caffeine-wrapper blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}.pixel-caffeine-wrapper blockquote ol:last-child,.pixel-caffeine-wrapper blockquote p:last-child,.pixel-caffeine-wrapper blockquote ul:last-child{margin-bottom:0}.pixel-caffeine-wrapper blockquote .small,.pixel-caffeine-wrapper blockquote footer,.pixel-caffeine-wrapper blockquote small{display:block;font-size:80%;line-height:1.42857;color:#777}.pixel-caffeine-wrapper blockquote .small:before,.pixel-caffeine-wrapper blockquote footer:before,.pixel-caffeine-wrapper blockquote small:before{content:'\2014 \00A0'}.pixel-caffeine-wrapper .blockquote-reverse,.pixel-caffeine-wrapper blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.pixel-caffeine-wrapper .blockquote-reverse .small:before,.pixel-caffeine-wrapper .blockquote-reverse footer:before,.pixel-caffeine-wrapper .blockquote-reverse small:before,.pixel-caffeine-wrapper blockquote.pull-right .small:before,.pixel-caffeine-wrapper blockquote.pull-right footer:before,.pixel-caffeine-wrapper blockquote.pull-right small:before{content:''}.pixel-caffeine-wrapper .blockquote-reverse .small:after,.pixel-caffeine-wrapper .blockquote-reverse footer:after,.pixel-caffeine-wrapper .blockquote-reverse small:after,.pixel-caffeine-wrapper blockquote.pull-right .small:after,.pixel-caffeine-wrapper blockquote.pull-right footer:after,.pixel-caffeine-wrapper blockquote.pull-right small:after{content:'\00A0 \2014'}.pixel-caffeine-wrapper address{margin-bottom:20px;font-style:normal;line-height:1.42857}.pixel-caffeine-wrapper code,.pixel-caffeine-wrapper kbd,.pixel-caffeine-wrapper pre,.pixel-caffeine-wrapper samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}.pixel-caffeine-wrapper code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}.pixel-caffeine-wrapper kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}.pixel-caffeine-wrapper kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}.pixel-caffeine-wrapper pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.pixel-caffeine-wrapper .container-fluid:after,.pixel-caffeine-wrapper .container-fluid:before,.pixel-caffeine-wrapper .container:after,.pixel-caffeine-wrapper .container:before,.pixel-caffeine-wrapper .row:after,.pixel-caffeine-wrapper .row:before{display:table;content:" "}.pixel-caffeine-wrapper .container,.pixel-caffeine-wrapper .container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.pixel-caffeine-wrapper .table .table,.pixel-caffeine-wrapper table{background-color:transparent}.pixel-caffeine-wrapper pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pixel-caffeine-wrapper .pre-scrollable{max-height:340px;overflow-y:scroll}@media (min-width:992px){.pixel-caffeine-wrapper .container{width:970px}}@media (min-width:1200px){.pixel-caffeine-wrapper .container{width:1170px}}.pixel-caffeine-wrapper .row{margin-left:-15px;margin-right:-15px}.pixel-caffeine-wrapper .col-lg-1,.pixel-caffeine-wrapper .col-lg-10,.pixel-caffeine-wrapper .col-lg-11,.pixel-caffeine-wrapper .col-lg-12,.pixel-caffeine-wrapper .col-lg-2,.pixel-caffeine-wrapper .col-lg-3,.pixel-caffeine-wrapper .col-lg-4,.pixel-caffeine-wrapper .col-lg-5,.pixel-caffeine-wrapper .col-lg-6,.pixel-caffeine-wrapper .col-lg-7,.pixel-caffeine-wrapper .col-lg-8,.pixel-caffeine-wrapper .col-lg-9,.pixel-caffeine-wrapper .col-md-1,.pixel-caffeine-wrapper .col-md-10,.pixel-caffeine-wrapper .col-md-11,.pixel-caffeine-wrapper .col-md-12,.pixel-caffeine-wrapper .col-md-2,.pixel-caffeine-wrapper .col-md-3,.pixel-caffeine-wrapper .col-md-4,.pixel-caffeine-wrapper .col-md-5,.pixel-caffeine-wrapper .col-md-6,.pixel-caffeine-wrapper .col-md-7,.pixel-caffeine-wrapper .col-md-8,.pixel-caffeine-wrapper .col-md-9,.pixel-caffeine-wrapper .col-sm-1,.pixel-caffeine-wrapper .col-sm-10,.pixel-caffeine-wrapper .col-sm-11,.pixel-caffeine-wrapper .col-sm-12,.pixel-caffeine-wrapper .col-sm-2,.pixel-caffeine-wrapper .col-sm-3,.pixel-caffeine-wrapper .col-sm-4,.pixel-caffeine-wrapper .col-sm-5,.pixel-caffeine-wrapper .col-sm-6,.pixel-caffeine-wrapper .col-sm-7,.pixel-caffeine-wrapper .col-sm-8,.pixel-caffeine-wrapper .col-sm-9,.pixel-caffeine-wrapper .col-xs-1,.pixel-caffeine-wrapper .col-xs-10,.pixel-caffeine-wrapper .col-xs-11,.pixel-caffeine-wrapper .col-xs-12,.pixel-caffeine-wrapper .col-xs-2,.pixel-caffeine-wrapper .col-xs-3,.pixel-caffeine-wrapper .col-xs-4,.pixel-caffeine-wrapper .col-xs-5,.pixel-caffeine-wrapper .col-xs-6,.pixel-caffeine-wrapper .col-xs-7,.pixel-caffeine-wrapper .col-xs-8,.pixel-caffeine-wrapper .col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.pixel-caffeine-wrapper .col-xs-1,.pixel-caffeine-wrapper .col-xs-10,.pixel-caffeine-wrapper .col-xs-11,.pixel-caffeine-wrapper .col-xs-12,.pixel-caffeine-wrapper .col-xs-2,.pixel-caffeine-wrapper .col-xs-3,.pixel-caffeine-wrapper .col-xs-4,.pixel-caffeine-wrapper .col-xs-5,.pixel-caffeine-wrapper .col-xs-6,.pixel-caffeine-wrapper .col-xs-7,.pixel-caffeine-wrapper .col-xs-8,.pixel-caffeine-wrapper .col-xs-9{float:left}.pixel-caffeine-wrapper .col-xs-1{width:8.33333%}.pixel-caffeine-wrapper .col-xs-2{width:16.66667%}.pixel-caffeine-wrapper .col-xs-3{width:25%}.pixel-caffeine-wrapper .col-xs-4{width:33.33333%}.pixel-caffeine-wrapper .col-xs-5{width:41.66667%}.pixel-caffeine-wrapper .col-xs-6{width:50%}.pixel-caffeine-wrapper .col-xs-7{width:58.33333%}.pixel-caffeine-wrapper .col-xs-8{width:66.66667%}.pixel-caffeine-wrapper .col-xs-9{width:75%}.pixel-caffeine-wrapper .col-xs-10{width:83.33333%}.pixel-caffeine-wrapper .col-xs-11{width:91.66667%}.pixel-caffeine-wrapper .col-xs-12{width:100%}.pixel-caffeine-wrapper .col-xs-pull-0{right:auto}.pixel-caffeine-wrapper .col-xs-pull-1{right:8.33333%}.pixel-caffeine-wrapper .col-xs-pull-2{right:16.66667%}.pixel-caffeine-wrapper .col-xs-pull-3{right:25%}.pixel-caffeine-wrapper .col-xs-pull-4{right:33.33333%}.pixel-caffeine-wrapper .col-xs-pull-5{right:41.66667%}.pixel-caffeine-wrapper .col-xs-pull-6{right:50%}.pixel-caffeine-wrapper .col-xs-pull-7{right:58.33333%}.pixel-caffeine-wrapper .col-xs-pull-8{right:66.66667%}.pixel-caffeine-wrapper .col-xs-pull-9{right:75%}.pixel-caffeine-wrapper .col-xs-pull-10{right:83.33333%}.pixel-caffeine-wrapper .col-xs-pull-11{right:91.66667%}.pixel-caffeine-wrapper .col-xs-pull-12{right:100%}.pixel-caffeine-wrapper .col-xs-push-0{left:auto}.pixel-caffeine-wrapper .col-xs-push-1{left:8.33333%}.pixel-caffeine-wrapper .col-xs-push-2{left:16.66667%}.pixel-caffeine-wrapper .col-xs-push-3{left:25%}.pixel-caffeine-wrapper .col-xs-push-4{left:33.33333%}.pixel-caffeine-wrapper .col-xs-push-5{left:41.66667%}.pixel-caffeine-wrapper .col-xs-push-6{left:50%}.pixel-caffeine-wrapper .col-xs-push-7{left:58.33333%}.pixel-caffeine-wrapper .col-xs-push-8{left:66.66667%}.pixel-caffeine-wrapper .col-xs-push-9{left:75%}.pixel-caffeine-wrapper .col-xs-push-10{left:83.33333%}.pixel-caffeine-wrapper .col-xs-push-11{left:91.66667%}.pixel-caffeine-wrapper .col-xs-push-12{left:100%}.pixel-caffeine-wrapper .col-xs-offset-0{margin-left:0}.pixel-caffeine-wrapper .col-xs-offset-1{margin-left:8.33333%}.pixel-caffeine-wrapper .col-xs-offset-2{margin-left:16.66667%}.pixel-caffeine-wrapper .col-xs-offset-3{margin-left:25%}.pixel-caffeine-wrapper .col-xs-offset-4{margin-left:33.33333%}.pixel-caffeine-wrapper .col-xs-offset-5{margin-left:41.66667%}.pixel-caffeine-wrapper .col-xs-offset-6{margin-left:50%}.pixel-caffeine-wrapper .col-xs-offset-7{margin-left:58.33333%}.pixel-caffeine-wrapper .col-xs-offset-8{margin-left:66.66667%}.pixel-caffeine-wrapper .col-xs-offset-9{margin-left:75%}.pixel-caffeine-wrapper .col-xs-offset-10{margin-left:83.33333%}.pixel-caffeine-wrapper .col-xs-offset-11{margin-left:91.66667%}.pixel-caffeine-wrapper .col-xs-offset-12{margin-left:100%}@media (min-width:768px){.pixel-caffeine-wrapper .col-sm-1,.pixel-caffeine-wrapper .col-sm-10,.pixel-caffeine-wrapper .col-sm-11,.pixel-caffeine-wrapper .col-sm-12,.pixel-caffeine-wrapper .col-sm-2,.pixel-caffeine-wrapper .col-sm-3,.pixel-caffeine-wrapper .col-sm-4,.pixel-caffeine-wrapper .col-sm-5,.pixel-caffeine-wrapper .col-sm-6,.pixel-caffeine-wrapper .col-sm-7,.pixel-caffeine-wrapper .col-sm-8,.pixel-caffeine-wrapper .col-sm-9{float:left}.pixel-caffeine-wrapper .col-sm-1{width:8.33333%}.pixel-caffeine-wrapper .col-sm-2{width:16.66667%}.pixel-caffeine-wrapper .col-sm-3{width:25%}.pixel-caffeine-wrapper .col-sm-4{width:33.33333%}.pixel-caffeine-wrapper .col-sm-5{width:41.66667%}.pixel-caffeine-wrapper .col-sm-6{width:50%}.pixel-caffeine-wrapper .col-sm-7{width:58.33333%}.pixel-caffeine-wrapper .col-sm-8{width:66.66667%}.pixel-caffeine-wrapper .col-sm-9{width:75%}.pixel-caffeine-wrapper .col-sm-10{width:83.33333%}.pixel-caffeine-wrapper .col-sm-11{width:91.66667%}.pixel-caffeine-wrapper .col-sm-12{width:100%}.pixel-caffeine-wrapper .col-sm-pull-0{right:auto}.pixel-caffeine-wrapper .col-sm-pull-1{right:8.33333%}.pixel-caffeine-wrapper .col-sm-pull-2{right:16.66667%}.pixel-caffeine-wrapper .col-sm-pull-3{right:25%}.pixel-caffeine-wrapper .col-sm-pull-4{right:33.33333%}.pixel-caffeine-wrapper .col-sm-pull-5{right:41.66667%}.pixel-caffeine-wrapper .col-sm-pull-6{right:50%}.pixel-caffeine-wrapper .col-sm-pull-7{right:58.33333%}.pixel-caffeine-wrapper .col-sm-pull-8{right:66.66667%}.pixel-caffeine-wrapper .col-sm-pull-9{right:75%}.pixel-caffeine-wrapper .col-sm-pull-10{right:83.33333%}.pixel-caffeine-wrapper .col-sm-pull-11{right:91.66667%}.pixel-caffeine-wrapper .col-sm-pull-12{right:100%}.pixel-caffeine-wrapper .col-sm-push-0{left:auto}.pixel-caffeine-wrapper .col-sm-push-1{left:8.33333%}.pixel-caffeine-wrapper .col-sm-push-2{left:16.66667%}.pixel-caffeine-wrapper .col-sm-push-3{left:25%}.pixel-caffeine-wrapper .col-sm-push-4{left:33.33333%}.pixel-caffeine-wrapper .col-sm-push-5{left:41.66667%}.pixel-caffeine-wrapper .col-sm-push-6{left:50%}.pixel-caffeine-wrapper .col-sm-push-7{left:58.33333%}.pixel-caffeine-wrapper .col-sm-push-8{left:66.66667%}.pixel-caffeine-wrapper .col-sm-push-9{left:75%}.pixel-caffeine-wrapper .col-sm-push-10{left:83.33333%}.pixel-caffeine-wrapper .col-sm-push-11{left:91.66667%}.pixel-caffeine-wrapper .col-sm-push-12{left:100%}.pixel-caffeine-wrapper .col-sm-offset-0{margin-left:0}.pixel-caffeine-wrapper .col-sm-offset-1{margin-left:8.33333%}.pixel-caffeine-wrapper .col-sm-offset-2{margin-left:16.66667%}.pixel-caffeine-wrapper .col-sm-offset-3{margin-left:25%}.pixel-caffeine-wrapper .col-sm-offset-4{margin-left:33.33333%}.pixel-caffeine-wrapper .col-sm-offset-5{margin-left:41.66667%}.pixel-caffeine-wrapper .col-sm-offset-6{margin-left:50%}.pixel-caffeine-wrapper .col-sm-offset-7{margin-left:58.33333%}.pixel-caffeine-wrapper .col-sm-offset-8{margin-left:66.66667%}.pixel-caffeine-wrapper .col-sm-offset-9{margin-left:75%}.pixel-caffeine-wrapper .col-sm-offset-10{margin-left:83.33333%}.pixel-caffeine-wrapper .col-sm-offset-11{margin-left:91.66667%}.pixel-caffeine-wrapper .col-sm-offset-12{margin-left:100%}}@media (min-width:992px){.pixel-caffeine-wrapper .col-md-1,.pixel-caffeine-wrapper .col-md-10,.pixel-caffeine-wrapper .col-md-11,.pixel-caffeine-wrapper .col-md-12,.pixel-caffeine-wrapper .col-md-2,.pixel-caffeine-wrapper .col-md-3,.pixel-caffeine-wrapper .col-md-4,.pixel-caffeine-wrapper .col-md-5,.pixel-caffeine-wrapper .col-md-6,.pixel-caffeine-wrapper .col-md-7,.pixel-caffeine-wrapper .col-md-8,.pixel-caffeine-wrapper .col-md-9{float:left}.pixel-caffeine-wrapper .col-md-1{width:8.33333%}.pixel-caffeine-wrapper .col-md-2{width:16.66667%}.pixel-caffeine-wrapper .col-md-3{width:25%}.pixel-caffeine-wrapper .col-md-4{width:33.33333%}.pixel-caffeine-wrapper .col-md-5{width:41.66667%}.pixel-caffeine-wrapper .col-md-6{width:50%}.pixel-caffeine-wrapper .col-md-7{width:58.33333%}.pixel-caffeine-wrapper .col-md-8{width:66.66667%}.pixel-caffeine-wrapper .col-md-9{width:75%}.pixel-caffeine-wrapper .col-md-10{width:83.33333%}.pixel-caffeine-wrapper .col-md-11{width:91.66667%}.pixel-caffeine-wrapper .col-md-12{width:100%}.pixel-caffeine-wrapper .col-md-pull-0{right:auto}.pixel-caffeine-wrapper .col-md-pull-1{right:8.33333%}.pixel-caffeine-wrapper .col-md-pull-2{right:16.66667%}.pixel-caffeine-wrapper .col-md-pull-3{right:25%}.pixel-caffeine-wrapper .col-md-pull-4{right:33.33333%}.pixel-caffeine-wrapper .col-md-pull-5{right:41.66667%}.pixel-caffeine-wrapper .col-md-pull-6{right:50%}.pixel-caffeine-wrapper .col-md-pull-7{right:58.33333%}.pixel-caffeine-wrapper .col-md-pull-8{right:66.66667%}.pixel-caffeine-wrapper .col-md-pull-9{right:75%}.pixel-caffeine-wrapper .col-md-pull-10{right:83.33333%}.pixel-caffeine-wrapper .col-md-pull-11{right:91.66667%}.pixel-caffeine-wrapper .col-md-pull-12{right:100%}.pixel-caffeine-wrapper .col-md-push-0{left:auto}.pixel-caffeine-wrapper .col-md-push-1{left:8.33333%}.pixel-caffeine-wrapper .col-md-push-2{left:16.66667%}.pixel-caffeine-wrapper .col-md-push-3{left:25%}.pixel-caffeine-wrapper .col-md-push-4{left:33.33333%}.pixel-caffeine-wrapper .col-md-push-5{left:41.66667%}.pixel-caffeine-wrapper .col-md-push-6{left:50%}.pixel-caffeine-wrapper .col-md-push-7{left:58.33333%}.pixel-caffeine-wrapper .col-md-push-8{left:66.66667%}.pixel-caffeine-wrapper .col-md-push-9{left:75%}.pixel-caffeine-wrapper .col-md-push-10{left:83.33333%}.pixel-caffeine-wrapper .col-md-push-11{left:91.66667%}.pixel-caffeine-wrapper .col-md-push-12{left:100%}.pixel-caffeine-wrapper .col-md-offset-0{margin-left:0}.pixel-caffeine-wrapper .col-md-offset-1{margin-left:8.33333%}.pixel-caffeine-wrapper .col-md-offset-2{margin-left:16.66667%}.pixel-caffeine-wrapper .col-md-offset-3{margin-left:25%}.pixel-caffeine-wrapper .col-md-offset-4{margin-left:33.33333%}.pixel-caffeine-wrapper .col-md-offset-5{margin-left:41.66667%}.pixel-caffeine-wrapper .col-md-offset-6{margin-left:50%}.pixel-caffeine-wrapper .col-md-offset-7{margin-left:58.33333%}.pixel-caffeine-wrapper .col-md-offset-8{margin-left:66.66667%}.pixel-caffeine-wrapper .col-md-offset-9{margin-left:75%}.pixel-caffeine-wrapper .col-md-offset-10{margin-left:83.33333%}.pixel-caffeine-wrapper .col-md-offset-11{margin-left:91.66667%}.pixel-caffeine-wrapper .col-md-offset-12{margin-left:100%}}@media (min-width:1200px){.pixel-caffeine-wrapper .col-lg-1,.pixel-caffeine-wrapper .col-lg-10,.pixel-caffeine-wrapper .col-lg-11,.pixel-caffeine-wrapper .col-lg-12,.pixel-caffeine-wrapper .col-lg-2,.pixel-caffeine-wrapper .col-lg-3,.pixel-caffeine-wrapper .col-lg-4,.pixel-caffeine-wrapper .col-lg-5,.pixel-caffeine-wrapper .col-lg-6,.pixel-caffeine-wrapper .col-lg-7,.pixel-caffeine-wrapper .col-lg-8,.pixel-caffeine-wrapper .col-lg-9{float:left}.pixel-caffeine-wrapper .col-lg-1{width:8.33333%}.pixel-caffeine-wrapper .col-lg-2{width:16.66667%}.pixel-caffeine-wrapper .col-lg-3{width:25%}.pixel-caffeine-wrapper .col-lg-4{width:33.33333%}.pixel-caffeine-wrapper .col-lg-5{width:41.66667%}.pixel-caffeine-wrapper .col-lg-6{width:50%}.pixel-caffeine-wrapper .col-lg-7{width:58.33333%}.pixel-caffeine-wrapper .col-lg-8{width:66.66667%}.pixel-caffeine-wrapper .col-lg-9{width:75%}.pixel-caffeine-wrapper .col-lg-10{width:83.33333%}.pixel-caffeine-wrapper .col-lg-11{width:91.66667%}.pixel-caffeine-wrapper .col-lg-12{width:100%}.pixel-caffeine-wrapper .col-lg-pull-0{right:auto}.pixel-caffeine-wrapper .col-lg-pull-1{right:8.33333%}.pixel-caffeine-wrapper .col-lg-pull-2{right:16.66667%}.pixel-caffeine-wrapper .col-lg-pull-3{right:25%}.pixel-caffeine-wrapper .col-lg-pull-4{right:33.33333%}.pixel-caffeine-wrapper .col-lg-pull-5{right:41.66667%}.pixel-caffeine-wrapper .col-lg-pull-6{right:50%}.pixel-caffeine-wrapper .col-lg-pull-7{right:58.33333%}.pixel-caffeine-wrapper .col-lg-pull-8{right:66.66667%}.pixel-caffeine-wrapper .col-lg-pull-9{right:75%}.pixel-caffeine-wrapper .col-lg-pull-10{right:83.33333%}.pixel-caffeine-wrapper .col-lg-pull-11{right:91.66667%}.pixel-caffeine-wrapper .col-lg-pull-12{right:100%}.pixel-caffeine-wrapper .col-lg-push-0{left:auto}.pixel-caffeine-wrapper .col-lg-push-1{left:8.33333%}.pixel-caffeine-wrapper .col-lg-push-2{left:16.66667%}.pixel-caffeine-wrapper .col-lg-push-3{left:25%}.pixel-caffeine-wrapper .col-lg-push-4{left:33.33333%}.pixel-caffeine-wrapper .col-lg-push-5{left:41.66667%}.pixel-caffeine-wrapper .col-lg-push-6{left:50%}.pixel-caffeine-wrapper .col-lg-push-7{left:58.33333%}.pixel-caffeine-wrapper .col-lg-push-8{left:66.66667%}.pixel-caffeine-wrapper .col-lg-push-9{left:75%}.pixel-caffeine-wrapper .col-lg-push-10{left:83.33333%}.pixel-caffeine-wrapper .col-lg-push-11{left:91.66667%}.pixel-caffeine-wrapper .col-lg-push-12{left:100%}.pixel-caffeine-wrapper .col-lg-offset-0{margin-left:0}.pixel-caffeine-wrapper .col-lg-offset-1{margin-left:8.33333%}.pixel-caffeine-wrapper .col-lg-offset-2{margin-left:16.66667%}.pixel-caffeine-wrapper .col-lg-offset-3{margin-left:25%}.pixel-caffeine-wrapper .col-lg-offset-4{margin-left:33.33333%}.pixel-caffeine-wrapper .col-lg-offset-5{margin-left:41.66667%}.pixel-caffeine-wrapper .col-lg-offset-6{margin-left:50%}.pixel-caffeine-wrapper .col-lg-offset-7{margin-left:58.33333%}.pixel-caffeine-wrapper .col-lg-offset-8{margin-left:66.66667%}.pixel-caffeine-wrapper .col-lg-offset-9{margin-left:75%}.pixel-caffeine-wrapper .col-lg-offset-10{margin-left:83.33333%}.pixel-caffeine-wrapper .col-lg-offset-11{margin-left:91.66667%}.pixel-caffeine-wrapper .col-lg-offset-12{margin-left:100%}}.pixel-caffeine-wrapper caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}.pixel-caffeine-wrapper th{text-align:left}.pixel-caffeine-wrapper .table{width:100%;max-width:100%;margin-bottom:20px}.pixel-caffeine-wrapper .table>tbody>tr>td,.pixel-caffeine-wrapper .table>tbody>tr>th,.pixel-caffeine-wrapper .table>tfoot>tr>td,.pixel-caffeine-wrapper .table>tfoot>tr>th,.pixel-caffeine-wrapper .table>thead>tr>td,.pixel-caffeine-wrapper .table>thead>tr>th{padding:8px;line-height:1.42857;vertical-align:top;border-top:1px solid #ddd}.pixel-caffeine-wrapper .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.pixel-caffeine-wrapper .table>caption+thead>tr:first-child>td,.pixel-caffeine-wrapper .table>caption+thead>tr:first-child>th,.pixel-caffeine-wrapper .table>colgroup+thead>tr:first-child>td,.pixel-caffeine-wrapper .table>colgroup+thead>tr:first-child>th,.pixel-caffeine-wrapper .table>thead:first-child>tr:first-child>td,.pixel-caffeine-wrapper .table>thead:first-child>tr:first-child>th{border-top:0}.pixel-caffeine-wrapper .table>tbody+tbody{border-top:2px solid #ddd}.pixel-caffeine-wrapper .table-condensed>tbody>tr>td,.pixel-caffeine-wrapper .table-condensed>tbody>tr>th,.pixel-caffeine-wrapper .table-condensed>tfoot>tr>td,.pixel-caffeine-wrapper .table-condensed>tfoot>tr>th,.pixel-caffeine-wrapper .table-condensed>thead>tr>td,.pixel-caffeine-wrapper .table-condensed>thead>tr>th{padding:5px}.pixel-caffeine-wrapper .table-bordered,.pixel-caffeine-wrapper .table-bordered>tbody>tr>td,.pixel-caffeine-wrapper .table-bordered>tbody>tr>th,.pixel-caffeine-wrapper .table-bordered>tfoot>tr>td,.pixel-caffeine-wrapper .table-bordered>tfoot>tr>th,.pixel-caffeine-wrapper .table-bordered>thead>tr>td,.pixel-caffeine-wrapper .table-bordered>thead>tr>th{border:1px solid #ddd}.pixel-caffeine-wrapper .table-bordered>thead>tr>td,.pixel-caffeine-wrapper .table-bordered>thead>tr>th{border-bottom-width:2px}.pixel-caffeine-wrapper .table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.pixel-caffeine-wrapper .table-hover>tbody>tr:hover,.pixel-caffeine-wrapper .table>tbody>tr.active>td,.pixel-caffeine-wrapper .table>tbody>tr.active>th,.pixel-caffeine-wrapper .table>tbody>tr>td.active,.pixel-caffeine-wrapper .table>tbody>tr>th.active,.pixel-caffeine-wrapper .table>tfoot>tr.active>td,.pixel-caffeine-wrapper .table>tfoot>tr.active>th,.pixel-caffeine-wrapper .table>tfoot>tr>td.active,.pixel-caffeine-wrapper .table>tfoot>tr>th.active,.pixel-caffeine-wrapper .table>thead>tr.active>td,.pixel-caffeine-wrapper .table>thead>tr.active>th,.pixel-caffeine-wrapper .table>thead>tr>td.active,.pixel-caffeine-wrapper .table>thead>tr>th.active{background-color:#f5f5f5}.pixel-caffeine-wrapper table col[class*=col-]{position:static;float:none;display:table-column}.pixel-caffeine-wrapper table td[class*=col-],.pixel-caffeine-wrapper table th[class*=col-]{position:static;float:none;display:table-cell}.pixel-caffeine-wrapper .table-hover>tbody>tr.active:hover>td,.pixel-caffeine-wrapper .table-hover>tbody>tr.active:hover>th,.pixel-caffeine-wrapper .table-hover>tbody>tr:hover>.active,.pixel-caffeine-wrapper .table-hover>tbody>tr>td.active:hover,.pixel-caffeine-wrapper .table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.pixel-caffeine-wrapper .table>tbody>tr.success>td,.pixel-caffeine-wrapper .table>tbody>tr.success>th,.pixel-caffeine-wrapper .table>tbody>tr>td.success,.pixel-caffeine-wrapper .table>tbody>tr>th.success,.pixel-caffeine-wrapper .table>tfoot>tr.success>td,.pixel-caffeine-wrapper .table>tfoot>tr.success>th,.pixel-caffeine-wrapper .table>tfoot>tr>td.success,.pixel-caffeine-wrapper .table>tfoot>tr>th.success,.pixel-caffeine-wrapper .table>thead>tr.success>td,.pixel-caffeine-wrapper .table>thead>tr.success>th,.pixel-caffeine-wrapper .table>thead>tr>td.success,.pixel-caffeine-wrapper .table>thead>tr>th.success{background-color:#dff0d8}.pixel-caffeine-wrapper .table-hover>tbody>tr.success:hover>td,.pixel-caffeine-wrapper .table-hover>tbody>tr.success:hover>th,.pixel-caffeine-wrapper .table-hover>tbody>tr:hover>.success,.pixel-caffeine-wrapper .table-hover>tbody>tr>td.success:hover,.pixel-caffeine-wrapper .table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.pixel-caffeine-wrapper .table>tbody>tr.info>td,.pixel-caffeine-wrapper .table>tbody>tr.info>th,.pixel-caffeine-wrapper .table>tbody>tr>td.info,.pixel-caffeine-wrapper .table>tbody>tr>th.info,.pixel-caffeine-wrapper .table>tfoot>tr.info>td,.pixel-caffeine-wrapper .table>tfoot>tr.info>th,.pixel-caffeine-wrapper .table>tfoot>tr>td.info,.pixel-caffeine-wrapper .table>tfoot>tr>th.info,.pixel-caffeine-wrapper .table>thead>tr.info>td,.pixel-caffeine-wrapper .table>thead>tr.info>th,.pixel-caffeine-wrapper .table>thead>tr>td.info,.pixel-caffeine-wrapper .table>thead>tr>th.info{background-color:#d9edf7}.pixel-caffeine-wrapper .table-hover>tbody>tr.info:hover>td,.pixel-caffeine-wrapper .table-hover>tbody>tr.info:hover>th,.pixel-caffeine-wrapper .table-hover>tbody>tr:hover>.info,.pixel-caffeine-wrapper .table-hover>tbody>tr>td.info:hover,.pixel-caffeine-wrapper .table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.pixel-caffeine-wrapper .table>tbody>tr.warning>td,.pixel-caffeine-wrapper .table>tbody>tr.warning>th,.pixel-caffeine-wrapper .table>tbody>tr>td.warning,.pixel-caffeine-wrapper .table>tbody>tr>th.warning,.pixel-caffeine-wrapper .table>tfoot>tr.warning>td,.pixel-caffeine-wrapper .table>tfoot>tr.warning>th,.pixel-caffeine-wrapper .table>tfoot>tr>td.warning,.pixel-caffeine-wrapper .table>tfoot>tr>th.warning,.pixel-caffeine-wrapper .table>thead>tr.warning>td,.pixel-caffeine-wrapper .table>thead>tr.warning>th,.pixel-caffeine-wrapper .table>thead>tr>td.warning,.pixel-caffeine-wrapper .table>thead>tr>th.warning{background-color:#fcf8e3}.pixel-caffeine-wrapper .table-hover>tbody>tr.warning:hover>td,.pixel-caffeine-wrapper .table-hover>tbody>tr.warning:hover>th,.pixel-caffeine-wrapper .table-hover>tbody>tr:hover>.warning,.pixel-caffeine-wrapper .table-hover>tbody>tr>td.warning:hover,.pixel-caffeine-wrapper .table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.pixel-caffeine-wrapper .table>tbody>tr.danger>td,.pixel-caffeine-wrapper .table>tbody>tr.danger>th,.pixel-caffeine-wrapper .table>tbody>tr>td.danger,.pixel-caffeine-wrapper .table>tbody>tr>th.danger,.pixel-caffeine-wrapper .table>tfoot>tr.danger>td,.pixel-caffeine-wrapper .table>tfoot>tr.danger>th,.pixel-caffeine-wrapper .table>tfoot>tr>td.danger,.pixel-caffeine-wrapper .table>tfoot>tr>th.danger,.pixel-caffeine-wrapper .table>thead>tr.danger>td,.pixel-caffeine-wrapper .table>thead>tr.danger>th,.pixel-caffeine-wrapper .table>thead>tr>td.danger,.pixel-caffeine-wrapper .table>thead>tr>th.danger{background-color:#f2dede}.pixel-caffeine-wrapper .table-hover>tbody>tr.danger:hover>td,.pixel-caffeine-wrapper .table-hover>tbody>tr.danger:hover>th,.pixel-caffeine-wrapper .table-hover>tbody>tr:hover>.danger,.pixel-caffeine-wrapper .table-hover>tbody>tr>td.danger:hover,.pixel-caffeine-wrapper .table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.pixel-caffeine-wrapper .table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.pixel-caffeine-wrapper .table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.pixel-caffeine-wrapper .table-responsive>.table{margin-bottom:0}.pixel-caffeine-wrapper .table-responsive>.table>tbody>tr>td,.pixel-caffeine-wrapper .table-responsive>.table>tbody>tr>th,.pixel-caffeine-wrapper .table-responsive>.table>tfoot>tr>td,.pixel-caffeine-wrapper .table-responsive>.table>tfoot>tr>th,.pixel-caffeine-wrapper .table-responsive>.table>thead>tr>td,.pixel-caffeine-wrapper .table-responsive>.table>thead>tr>th{white-space:nowrap}.pixel-caffeine-wrapper .table-responsive>.table-bordered{border:0}.pixel-caffeine-wrapper .table-responsive>.table-bordered>tbody>tr>td:first-child,.pixel-caffeine-wrapper .table-responsive>.table-bordered>tbody>tr>th:first-child,.pixel-caffeine-wrapper .table-responsive>.table-bordered>tfoot>tr>td:first-child,.pixel-caffeine-wrapper .table-responsive>.table-bordered>tfoot>tr>th:first-child,.pixel-caffeine-wrapper .table-responsive>.table-bordered>thead>tr>td:first-child,.pixel-caffeine-wrapper .table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.pixel-caffeine-wrapper .table-responsive>.table-bordered>tbody>tr>td:last-child,.pixel-caffeine-wrapper .table-responsive>.table-bordered>tbody>tr>th:last-child,.pixel-caffeine-wrapper .table-responsive>.table-bordered>tfoot>tr>td:last-child,.pixel-caffeine-wrapper .table-responsive>.table-bordered>tfoot>tr>th:last-child,.pixel-caffeine-wrapper .table-responsive>.table-bordered>thead>tr>td:last-child,.pixel-caffeine-wrapper .table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.pixel-caffeine-wrapper .table-responsive>.table-bordered>tbody>tr:last-child>td,.pixel-caffeine-wrapper .table-responsive>.table-bordered>tbody>tr:last-child>th,.pixel-caffeine-wrapper .table-responsive>.table-bordered>tfoot>tr:last-child>td,.pixel-caffeine-wrapper .table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}.pixel-caffeine-wrapper fieldset{padding:0;margin:0;border:0;min-width:0}.pixel-caffeine-wrapper legend{display:block;width:100%;padding:0;line-height:inherit;color:#333;border:0}.pixel-caffeine-wrapper .form-control,.pixel-caffeine-wrapper output{color:#555;line-height:1.42857;font-size:14px}.pixel-caffeine-wrapper label{display:inline-block;max-width:100%;margin-bottom:5px}.pixel-caffeine-wrapper input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none}.pixel-caffeine-wrapper input[type=radio],.pixel-caffeine-wrapper input[type=checkbox]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.pixel-caffeine-wrapper input[type=file]{display:block}.pixel-caffeine-wrapper input[type=range]{display:block;width:100%}.pixel-caffeine-wrapper input[type=radio]:focus,.pixel-caffeine-wrapper input[type=checkbox]:focus,.pixel-caffeine-wrapper input[type=file]:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.pixel-caffeine-wrapper output{display:block;color:#555}.pixel-caffeine-wrapper .form-control{display:block;width:100%;color:#555;background-image:none;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.pixel-caffeine-wrapper .has-success .checkbox,.pixel-caffeine-wrapper .has-success .checkbox-inline,.pixel-caffeine-wrapper .has-success .control-label,.pixel-caffeine-wrapper .has-success .form-control-feedback,.pixel-caffeine-wrapper .has-success .help-block,.pixel-caffeine-wrapper .has-success .radio,.pixel-caffeine-wrapper .has-success .radio-inline,.pixel-caffeine-wrapper .has-success.checkbox label,.pixel-caffeine-wrapper .has-success.checkbox-inline label,.pixel-caffeine-wrapper .has-success.radio label,.pixel-caffeine-wrapper .has-success.radio-inline label{color:#3c763d}.pixel-caffeine-wrapper .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.pixel-caffeine-wrapper .form-control::-moz-placeholder{opacity:1}.pixel-caffeine-wrapper .form-control::-ms-expand{border:0;background-color:transparent}.pixel-caffeine-wrapper .form-control[disabled],.pixel-caffeine-wrapper .form-control[readonly],fieldset[disabled] .pixel-caffeine-wrapper .form-control{opacity:1}.pixel-caffeine-wrapper .form-control[disabled],fieldset[disabled] .pixel-caffeine-wrapper .form-control{cursor:not-allowed}@media screen and (-webkit-min-device-pixel-ratio:0){.pixel-caffeine-wrapper input[type=date].form-control,.pixel-caffeine-wrapper input[type=time].form-control,.pixel-caffeine-wrapper input[type=datetime-local].form-control,.pixel-caffeine-wrapper input[type=month].form-control{line-height:34px}.input-group-sm .pixel-caffeine-wrapper input[type=date],.input-group-sm .pixel-caffeine-wrapper input[type=time],.input-group-sm .pixel-caffeine-wrapper input[type=datetime-local],.input-group-sm .pixel-caffeine-wrapper input[type=month],.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>input[type=date].btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>input[type=time].btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>input[type=datetime-local].btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>input[type=month].btn,.pixel-caffeine-wrapper .input-group-sm>input[type=date].form-control,.pixel-caffeine-wrapper .input-group-sm>input[type=date].input-group-addon,.pixel-caffeine-wrapper .input-group-sm>input[type=time].form-control,.pixel-caffeine-wrapper .input-group-sm>input[type=time].input-group-addon,.pixel-caffeine-wrapper .input-group-sm>input[type=datetime-local].form-control,.pixel-caffeine-wrapper .input-group-sm>input[type=datetime-local].input-group-addon,.pixel-caffeine-wrapper .input-group-sm>input[type=month].form-control,.pixel-caffeine-wrapper .input-group-sm>input[type=month].input-group-addon,.pixel-caffeine-wrapper input[type=date].input-sm,.pixel-caffeine-wrapper input[type=time].input-sm,.pixel-caffeine-wrapper input[type=datetime-local].input-sm,.pixel-caffeine-wrapper input[type=month].input-sm{line-height:30px}.input-group-lg .pixel-caffeine-wrapper input[type=date],.input-group-lg .pixel-caffeine-wrapper input[type=time],.input-group-lg .pixel-caffeine-wrapper input[type=datetime-local],.input-group-lg .pixel-caffeine-wrapper input[type=month],.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>input[type=date].btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>input[type=time].btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>input[type=datetime-local].btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>input[type=month].btn,.pixel-caffeine-wrapper .input-group-lg>input[type=date].form-control,.pixel-caffeine-wrapper .input-group-lg>input[type=date].input-group-addon,.pixel-caffeine-wrapper .input-group-lg>input[type=time].form-control,.pixel-caffeine-wrapper .input-group-lg>input[type=time].input-group-addon,.pixel-caffeine-wrapper .input-group-lg>input[type=datetime-local].form-control,.pixel-caffeine-wrapper .input-group-lg>input[type=datetime-local].input-group-addon,.pixel-caffeine-wrapper .input-group-lg>input[type=month].form-control,.pixel-caffeine-wrapper .input-group-lg>input[type=month].input-group-addon,.pixel-caffeine-wrapper input[type=date].input-lg,.pixel-caffeine-wrapper input[type=time].input-lg,.pixel-caffeine-wrapper input[type=datetime-local].input-lg,.pixel-caffeine-wrapper input[type=month].input-lg{line-height:46px}}.pixel-caffeine-wrapper .form-group{margin-bottom:15px}.pixel-caffeine-wrapper .checkbox,.pixel-caffeine-wrapper .radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.pixel-caffeine-wrapper .checkbox label,.pixel-caffeine-wrapper .radio label{margin-bottom:0;cursor:pointer}.pixel-caffeine-wrapper .checkbox input[type=checkbox],.pixel-caffeine-wrapper .checkbox-inline input[type=checkbox],.pixel-caffeine-wrapper .radio input[type=radio],.pixel-caffeine-wrapper .radio-inline input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.pixel-caffeine-wrapper .checkbox+.checkbox,.pixel-caffeine-wrapper .radio+.radio{margin-top:-5px}.pixel-caffeine-wrapper .checkbox-inline,.pixel-caffeine-wrapper .radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.pixel-caffeine-wrapper .checkbox-inline+.checkbox-inline,.pixel-caffeine-wrapper .radio-inline+.radio-inline{margin-top:0;margin-left:10px}.pixel-caffeine-wrapper .checkbox-inline.disabled,.pixel-caffeine-wrapper .checkbox.disabled label,.pixel-caffeine-wrapper .radio-inline.disabled,.pixel-caffeine-wrapper .radio.disabled label,.pixel-caffeine-wrapper input[type=radio].disabled,.pixel-caffeine-wrapper input[type=radio][disabled],.pixel-caffeine-wrapper input[type=checkbox].disabled,.pixel-caffeine-wrapper input[type=checkbox][disabled],fieldset[disabled] .pixel-caffeine-wrapper .checkbox label,fieldset[disabled] .pixel-caffeine-wrapper .checkbox-inline,fieldset[disabled] .pixel-caffeine-wrapper .radio label,fieldset[disabled] .pixel-caffeine-wrapper .radio-inline,fieldset[disabled] .pixel-caffeine-wrapper input[type=radio],fieldset[disabled] .pixel-caffeine-wrapper input[type=checkbox]{cursor:not-allowed}.pixel-caffeine-wrapper .form-control-static{margin-bottom:0}.pixel-caffeine-wrapper .form-control-static.input-lg,.pixel-caffeine-wrapper .form-control-static.input-sm,.pixel-caffeine-wrapper .input-group-lg>.form-control-static.form-control,.pixel-caffeine-wrapper .input-group-lg>.form-control-static.input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.form-control-static.btn,.pixel-caffeine-wrapper .input-group-sm>.form-control-static.form-control,.pixel-caffeine-wrapper .input-group-sm>.form-control-static.input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.form-control-static.btn{padding-left:0;padding-right:0}.pixel-caffeine-wrapper .input-group-sm>.form-control,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn,.pixel-caffeine-wrapper .input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>select.btn,.pixel-caffeine-wrapper .input-group-sm>select.form-control,.pixel-caffeine-wrapper .input-group-sm>select.input-group-addon,.pixel-caffeine-wrapper select.input-sm{height:30px;line-height:30px}.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>select[multiple].btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>textarea.btn,.pixel-caffeine-wrapper .input-group-sm>select[multiple].form-control,.pixel-caffeine-wrapper .input-group-sm>select[multiple].input-group-addon,.pixel-caffeine-wrapper .input-group-sm>textarea.form-control,.pixel-caffeine-wrapper .input-group-sm>textarea.input-group-addon,.pixel-caffeine-wrapper select[multiple].input-sm,.pixel-caffeine-wrapper textarea.input-sm{height:auto}.pixel-caffeine-wrapper .form-group-sm .form-control{border-radius:3px}.pixel-caffeine-wrapper .input-group-lg>.form-control,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn,.pixel-caffeine-wrapper .input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33333;border-radius:6px}.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>select.btn,.pixel-caffeine-wrapper .input-group-lg>select.form-control,.pixel-caffeine-wrapper .input-group-lg>select.input-group-addon,.pixel-caffeine-wrapper select.input-lg{height:46px;line-height:46px}.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>select[multiple].btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>textarea.btn,.pixel-caffeine-wrapper .input-group-lg>select[multiple].form-control,.pixel-caffeine-wrapper .input-group-lg>select[multiple].input-group-addon,.pixel-caffeine-wrapper .input-group-lg>textarea.form-control,.pixel-caffeine-wrapper .input-group-lg>textarea.input-group-addon,.pixel-caffeine-wrapper select[multiple].input-lg,.pixel-caffeine-wrapper textarea.input-lg{height:auto}.pixel-caffeine-wrapper .form-group-lg .form-control{border-radius:6px}.pixel-caffeine-wrapper .has-feedback{position:relative}.pixel-caffeine-wrapper .has-feedback .form-control{padding-right:42.5px}.pixel-caffeine-wrapper .form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.pixel-caffeine-wrapper .form-group-lg .form-control+.form-control-feedback,.pixel-caffeine-wrapper .input-group-lg+.form-control-feedback,.pixel-caffeine-wrapper .input-group-lg>.form-control+.form-control-feedback,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon+.form-control-feedback,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn+.form-control-feedback,.pixel-caffeine-wrapper .input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.pixel-caffeine-wrapper .form-group-sm .form-control+.form-control-feedback,.pixel-caffeine-wrapper .input-group-sm+.form-control-feedback,.pixel-caffeine-wrapper .input-group-sm>.form-control+.form-control-feedback,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon+.form-control-feedback,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn+.form-control-feedback,.pixel-caffeine-wrapper .input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.pixel-caffeine-wrapper .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)}.pixel-caffeine-wrapper .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}.pixel-caffeine-wrapper .has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.pixel-caffeine-wrapper .has-warning .checkbox,.pixel-caffeine-wrapper .has-warning .checkbox-inline,.pixel-caffeine-wrapper .has-warning .control-label,.pixel-caffeine-wrapper .has-warning .form-control-feedback,.pixel-caffeine-wrapper .has-warning .help-block,.pixel-caffeine-wrapper .has-warning .radio,.pixel-caffeine-wrapper .has-warning .radio-inline,.pixel-caffeine-wrapper .has-warning.checkbox label,.pixel-caffeine-wrapper .has-warning.checkbox-inline label,.pixel-caffeine-wrapper .has-warning.radio label,.pixel-caffeine-wrapper .has-warning.radio-inline label{color:#8a6d3b}.pixel-caffeine-wrapper .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)}.pixel-caffeine-wrapper .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}.pixel-caffeine-wrapper .has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.pixel-caffeine-wrapper .has-error .checkbox,.pixel-caffeine-wrapper .has-error .checkbox-inline,.pixel-caffeine-wrapper .has-error .control-label,.pixel-caffeine-wrapper .has-error .form-control-feedback,.pixel-caffeine-wrapper .has-error .help-block,.pixel-caffeine-wrapper .has-error .radio,.pixel-caffeine-wrapper .has-error .radio-inline,.pixel-caffeine-wrapper .has-error.checkbox label,.pixel-caffeine-wrapper .has-error.checkbox-inline label,.pixel-caffeine-wrapper .has-error.radio label,.pixel-caffeine-wrapper .has-error.radio-inline label{color:#a94442}.pixel-caffeine-wrapper .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)}.pixel-caffeine-wrapper .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}.pixel-caffeine-wrapper .has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.pixel-caffeine-wrapper .has-feedback label~.form-control-feedback{top:25px}.pixel-caffeine-wrapper .has-feedback label.sr-only~.form-control-feedback{top:0}.pixel-caffeine-wrapper .help-block{display:block;margin-bottom:10px;color:#737373}@media (min-width:768px){.pixel-caffeine-wrapper .form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.pixel-caffeine-wrapper .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.pixel-caffeine-wrapper .form-inline .form-control-static{display:inline-block}.pixel-caffeine-wrapper .form-inline .input-group{display:inline-table;vertical-align:middle}.pixel-caffeine-wrapper .form-inline .input-group .form-control,.pixel-caffeine-wrapper .form-inline .input-group .input-group-addon,.pixel-caffeine-wrapper .form-inline .input-group .input-group-btn{width:auto}.pixel-caffeine-wrapper .form-inline .input-group>.form-control{width:100%}.pixel-caffeine-wrapper .form-inline .control-label{margin-bottom:0;vertical-align:middle}.pixel-caffeine-wrapper .form-inline .checkbox,.pixel-caffeine-wrapper .form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.pixel-caffeine-wrapper .form-inline .checkbox label,.pixel-caffeine-wrapper .form-inline .radio label{padding-left:0}.pixel-caffeine-wrapper .form-inline .checkbox input[type=checkbox],.pixel-caffeine-wrapper .form-inline .radio input[type=radio]{position:relative;margin-left:0}.pixel-caffeine-wrapper .form-inline .has-feedback .form-control-feedback{top:0}.pixel-caffeine-wrapper .form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.pixel-caffeine-wrapper .form-horizontal .checkbox,.pixel-caffeine-wrapper .form-horizontal .checkbox-inline,.pixel-caffeine-wrapper .form-horizontal .radio,.pixel-caffeine-wrapper .form-horizontal .radio-inline{margin-top:0;margin-bottom:0}.pixel-caffeine-wrapper .form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.pixel-caffeine-wrapper .form-horizontal .form-group:after,.pixel-caffeine-wrapper .form-horizontal .form-group:before{content:" ";display:table}.pixel-caffeine-wrapper .form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.pixel-caffeine-wrapper .form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}.pixel-caffeine-wrapper .form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.pixel-caffeine-wrapper .btn{display:inline-block;margin-bottom:0;text-align:center;vertical-align:middle;touch-action:manipulation;background-image:none;white-space:nowrap;line-height:1.42857;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pixel-caffeine-wrapper .btn.active.focus,.pixel-caffeine-wrapper .btn.active:focus,.pixel-caffeine-wrapper .btn.focus,.pixel-caffeine-wrapper .btn:active.focus,.pixel-caffeine-wrapper .btn:active:focus,.pixel-caffeine-wrapper .btn:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.pixel-caffeine-wrapper .btn.focus,.pixel-caffeine-wrapper .btn:focus,.pixel-caffeine-wrapper .btn:hover{color:#333;text-decoration:none}.pixel-caffeine-wrapper .btn.active,.pixel-caffeine-wrapper .btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.pixel-caffeine-wrapper .btn.disabled,.pixel-caffeine-wrapper .btn[disabled],fieldset[disabled] .pixel-caffeine-wrapper .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.pixel-caffeine-wrapper a.btn.disabled,fieldset[disabled] .pixel-caffeine-wrapper a.btn{pointer-events:none}.pixel-caffeine-wrapper .btn-default{color:#333;background-color:#f2f2f2;border-color:#ccc}.pixel-caffeine-wrapper .btn-default.focus,.pixel-caffeine-wrapper .btn-default:focus{color:#333;background-color:#d9d9d9;border-color:#8c8c8c}.open>.pixel-caffeine-wrapper .btn-default.dropdown-toggle,.pixel-caffeine-wrapper .btn-default.active,.pixel-caffeine-wrapper .btn-default:active,.pixel-caffeine-wrapper .btn-default:hover{color:#333;background-color:#d9d9d9;border-color:#adadad}.open>.pixel-caffeine-wrapper .btn-default.dropdown-toggle.focus,.open>.pixel-caffeine-wrapper .btn-default.dropdown-toggle:focus,.open>.pixel-caffeine-wrapper .btn-default.dropdown-toggle:hover,.pixel-caffeine-wrapper .btn-default.active.focus,.pixel-caffeine-wrapper .btn-default.active:focus,.pixel-caffeine-wrapper .btn-default.active:hover,.pixel-caffeine-wrapper .btn-default:active.focus,.pixel-caffeine-wrapper .btn-default:active:focus,.pixel-caffeine-wrapper .btn-default:active:hover{color:#333;background-color:#c7c7c7;border-color:#8c8c8c}.open>.pixel-caffeine-wrapper .btn-default.dropdown-toggle,.pixel-caffeine-wrapper .btn-default.active,.pixel-caffeine-wrapper .btn-default:active{background-image:none}.pixel-caffeine-wrapper .btn-default.disabled.focus,.pixel-caffeine-wrapper .btn-default.disabled:focus,.pixel-caffeine-wrapper .btn-default.disabled:hover,.pixel-caffeine-wrapper .btn-default[disabled].focus,.pixel-caffeine-wrapper .btn-default[disabled]:focus,.pixel-caffeine-wrapper .btn-default[disabled]:hover,fieldset[disabled] .pixel-caffeine-wrapper .btn-default.focus,fieldset[disabled] .pixel-caffeine-wrapper .btn-default:focus,fieldset[disabled] .pixel-caffeine-wrapper .btn-default:hover{background-color:#f2f2f2;border-color:#ccc}.pixel-caffeine-wrapper .btn-default .badge{color:#f2f2f2;background-color:#333}.pixel-caffeine-wrapper .btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.pixel-caffeine-wrapper .btn-primary.focus,.pixel-caffeine-wrapper .btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.open>.pixel-caffeine-wrapper .btn-primary.dropdown-toggle,.pixel-caffeine-wrapper .btn-primary.active,.pixel-caffeine-wrapper .btn-primary:active,.pixel-caffeine-wrapper .btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.open>.pixel-caffeine-wrapper .btn-primary.dropdown-toggle.focus,.open>.pixel-caffeine-wrapper .btn-primary.dropdown-toggle:focus,.open>.pixel-caffeine-wrapper .btn-primary.dropdown-toggle:hover,.pixel-caffeine-wrapper .btn-primary.active.focus,.pixel-caffeine-wrapper .btn-primary.active:focus,.pixel-caffeine-wrapper .btn-primary.active:hover,.pixel-caffeine-wrapper .btn-primary:active.focus,.pixel-caffeine-wrapper .btn-primary:active:focus,.pixel-caffeine-wrapper .btn-primary:active:hover{color:#fff;background-color:#204d74;border-color:#122b40}.open>.pixel-caffeine-wrapper .btn-primary.dropdown-toggle,.pixel-caffeine-wrapper .btn-primary.active,.pixel-caffeine-wrapper .btn-primary:active{background-image:none}.pixel-caffeine-wrapper .btn-primary.disabled.focus,.pixel-caffeine-wrapper .btn-primary.disabled:focus,.pixel-caffeine-wrapper .btn-primary.disabled:hover,.pixel-caffeine-wrapper .btn-primary[disabled].focus,.pixel-caffeine-wrapper .btn-primary[disabled]:focus,.pixel-caffeine-wrapper .btn-primary[disabled]:hover,fieldset[disabled] .pixel-caffeine-wrapper .btn-primary.focus,fieldset[disabled] .pixel-caffeine-wrapper .btn-primary:focus,fieldset[disabled] .pixel-caffeine-wrapper .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.pixel-caffeine-wrapper .btn-primary .badge{color:#337ab7;background-color:#fff}.pixel-caffeine-wrapper .btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.pixel-caffeine-wrapper .btn-success.focus,.pixel-caffeine-wrapper .btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.open>.pixel-caffeine-wrapper .btn-success.dropdown-toggle,.pixel-caffeine-wrapper .btn-success.active,.pixel-caffeine-wrapper .btn-success:active,.pixel-caffeine-wrapper .btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.open>.pixel-caffeine-wrapper .btn-success.dropdown-toggle.focus,.open>.pixel-caffeine-wrapper .btn-success.dropdown-toggle:focus,.open>.pixel-caffeine-wrapper .btn-success.dropdown-toggle:hover,.pixel-caffeine-wrapper .btn-success.active.focus,.pixel-caffeine-wrapper .btn-success.active:focus,.pixel-caffeine-wrapper .btn-success.active:hover,.pixel-caffeine-wrapper .btn-success:active.focus,.pixel-caffeine-wrapper .btn-success:active:focus,.pixel-caffeine-wrapper .btn-success:active:hover{color:#fff;background-color:#398439;border-color:#255625}.open>.pixel-caffeine-wrapper .btn-success.dropdown-toggle,.pixel-caffeine-wrapper .btn-success.active,.pixel-caffeine-wrapper .btn-success:active{background-image:none}.pixel-caffeine-wrapper .btn-success.disabled.focus,.pixel-caffeine-wrapper .btn-success.disabled:focus,.pixel-caffeine-wrapper .btn-success.disabled:hover,.pixel-caffeine-wrapper .btn-success[disabled].focus,.pixel-caffeine-wrapper .btn-success[disabled]:focus,.pixel-caffeine-wrapper .btn-success[disabled]:hover,fieldset[disabled] .pixel-caffeine-wrapper .btn-success.focus,fieldset[disabled] .pixel-caffeine-wrapper .btn-success:focus,fieldset[disabled] .pixel-caffeine-wrapper .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.pixel-caffeine-wrapper .btn-success .badge{color:#5cb85c;background-color:#fff}.pixel-caffeine-wrapper .btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.pixel-caffeine-wrapper .btn-info.focus,.pixel-caffeine-wrapper .btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.open>.pixel-caffeine-wrapper .btn-info.dropdown-toggle,.pixel-caffeine-wrapper .btn-info.active,.pixel-caffeine-wrapper .btn-info:active,.pixel-caffeine-wrapper .btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.open>.pixel-caffeine-wrapper .btn-info.dropdown-toggle.focus,.open>.pixel-caffeine-wrapper .btn-info.dropdown-toggle:focus,.open>.pixel-caffeine-wrapper .btn-info.dropdown-toggle:hover,.pixel-caffeine-wrapper .btn-info.active.focus,.pixel-caffeine-wrapper .btn-info.active:focus,.pixel-caffeine-wrapper .btn-info.active:hover,.pixel-caffeine-wrapper .btn-info:active.focus,.pixel-caffeine-wrapper .btn-info:active:focus,.pixel-caffeine-wrapper .btn-info:active:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.open>.pixel-caffeine-wrapper .btn-info.dropdown-toggle,.pixel-caffeine-wrapper .btn-info.active,.pixel-caffeine-wrapper .btn-info:active{background-image:none}.pixel-caffeine-wrapper .btn-info.disabled.focus,.pixel-caffeine-wrapper .btn-info.disabled:focus,.pixel-caffeine-wrapper .btn-info.disabled:hover,.pixel-caffeine-wrapper .btn-info[disabled].focus,.pixel-caffeine-wrapper .btn-info[disabled]:focus,.pixel-caffeine-wrapper .btn-info[disabled]:hover,fieldset[disabled] .pixel-caffeine-wrapper .btn-info.focus,fieldset[disabled] .pixel-caffeine-wrapper .btn-info:focus,fieldset[disabled] .pixel-caffeine-wrapper .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.pixel-caffeine-wrapper .btn-info .badge{color:#5bc0de;background-color:#fff}.pixel-caffeine-wrapper .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.pixel-caffeine-wrapper .btn-warning.focus,.pixel-caffeine-wrapper .btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.open>.pixel-caffeine-wrapper .btn-warning.dropdown-toggle,.pixel-caffeine-wrapper .btn-warning.active,.pixel-caffeine-wrapper .btn-warning:active,.pixel-caffeine-wrapper .btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.open>.pixel-caffeine-wrapper .btn-warning.dropdown-toggle.focus,.open>.pixel-caffeine-wrapper .btn-warning.dropdown-toggle:focus,.open>.pixel-caffeine-wrapper .btn-warning.dropdown-toggle:hover,.pixel-caffeine-wrapper .btn-warning.active.focus,.pixel-caffeine-wrapper .btn-warning.active:focus,.pixel-caffeine-wrapper .btn-warning.active:hover,.pixel-caffeine-wrapper .btn-warning:active.focus,.pixel-caffeine-wrapper .btn-warning:active:focus,.pixel-caffeine-wrapper .btn-warning:active:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.open>.pixel-caffeine-wrapper .btn-warning.dropdown-toggle,.pixel-caffeine-wrapper .btn-warning.active,.pixel-caffeine-wrapper .btn-warning:active{background-image:none}.pixel-caffeine-wrapper .btn-warning.disabled.focus,.pixel-caffeine-wrapper .btn-warning.disabled:focus,.pixel-caffeine-wrapper .btn-warning.disabled:hover,.pixel-caffeine-wrapper .btn-warning[disabled].focus,.pixel-caffeine-wrapper .btn-warning[disabled]:focus,.pixel-caffeine-wrapper .btn-warning[disabled]:hover,fieldset[disabled] .pixel-caffeine-wrapper .btn-warning.focus,fieldset[disabled] .pixel-caffeine-wrapper .btn-warning:focus,fieldset[disabled] .pixel-caffeine-wrapper .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.pixel-caffeine-wrapper .btn-warning .badge{color:#f0ad4e;background-color:#fff}.pixel-caffeine-wrapper .btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.pixel-caffeine-wrapper .btn-danger.focus,.pixel-caffeine-wrapper .btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.open>.pixel-caffeine-wrapper .btn-danger.dropdown-toggle,.pixel-caffeine-wrapper .btn-danger.active,.pixel-caffeine-wrapper .btn-danger:active,.pixel-caffeine-wrapper .btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.open>.pixel-caffeine-wrapper .btn-danger.dropdown-toggle.focus,.open>.pixel-caffeine-wrapper .btn-danger.dropdown-toggle:focus,.open>.pixel-caffeine-wrapper .btn-danger.dropdown-toggle:hover,.pixel-caffeine-wrapper .btn-danger.active.focus,.pixel-caffeine-wrapper .btn-danger.active:focus,.pixel-caffeine-wrapper .btn-danger.active:hover,.pixel-caffeine-wrapper .btn-danger:active.focus,.pixel-caffeine-wrapper .btn-danger:active:focus,.pixel-caffeine-wrapper .btn-danger:active:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.open>.pixel-caffeine-wrapper .btn-danger.dropdown-toggle,.pixel-caffeine-wrapper .btn-danger.active,.pixel-caffeine-wrapper .btn-danger:active{background-image:none}.pixel-caffeine-wrapper .btn-danger.disabled.focus,.pixel-caffeine-wrapper .btn-danger.disabled:focus,.pixel-caffeine-wrapper .btn-danger.disabled:hover,.pixel-caffeine-wrapper .btn-danger[disabled].focus,.pixel-caffeine-wrapper .btn-danger[disabled]:focus,.pixel-caffeine-wrapper .btn-danger[disabled]:hover,fieldset[disabled] .pixel-caffeine-wrapper .btn-danger.focus,fieldset[disabled] .pixel-caffeine-wrapper .btn-danger:focus,fieldset[disabled] .pixel-caffeine-wrapper .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.pixel-caffeine-wrapper .btn-danger .badge{color:#d9534f;background-color:#fff}.pixel-caffeine-wrapper .btn-link{color:#337ab7;font-weight:400;border-radius:0}.pixel-caffeine-wrapper .btn-link,.pixel-caffeine-wrapper .btn-link.active,.pixel-caffeine-wrapper .btn-link:active,.pixel-caffeine-wrapper .btn-link[disabled],fieldset[disabled] .pixel-caffeine-wrapper .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.pixel-caffeine-wrapper .btn-link,.pixel-caffeine-wrapper .btn-link:active,.pixel-caffeine-wrapper .btn-link:focus,.pixel-caffeine-wrapper .btn-link:hover{border-color:transparent}.pixel-caffeine-wrapper .btn-link:focus,.pixel-caffeine-wrapper .btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.pixel-caffeine-wrapper .btn-link[disabled]:focus,.pixel-caffeine-wrapper .btn-link[disabled]:hover,fieldset[disabled] .pixel-caffeine-wrapper .btn-link:focus,fieldset[disabled] .pixel-caffeine-wrapper .btn-link:hover{color:#777;text-decoration:none}.pixel-caffeine-wrapper .btn-group-lg>.btn,.pixel-caffeine-wrapper .btn-lg{padding:10px 16px;font-size:18px;line-height:1.33333;border-radius:6px}.pixel-caffeine-wrapper .btn-group-sm>.btn,.pixel-caffeine-wrapper .btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.pixel-caffeine-wrapper .btn-group-xs>.btn,.pixel-caffeine-wrapper .btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.pixel-caffeine-wrapper .btn-block{display:block;width:100%}.pixel-caffeine-wrapper .btn-block+.btn-block{margin-top:5px}.pixel-caffeine-wrapper input[type=submit].btn-block,.pixel-caffeine-wrapper input[type=reset].btn-block,.pixel-caffeine-wrapper input[type=button].btn-block{width:100%}.pixel-caffeine-wrapper .fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.pixel-caffeine-wrapper .fade.in{opacity:1}.pixel-caffeine-wrapper .collapse{display:none}.pixel-caffeine-wrapper .collapse.in{display:block}.pixel-caffeine-wrapper tr.collapse.in{display:table-row}.pixel-caffeine-wrapper tbody.collapse.in{display:table-row-group}.pixel-caffeine-wrapper .collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.pixel-caffeine-wrapper .caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.pixel-caffeine-wrapper .dropdown,.pixel-caffeine-wrapper .dropup{position:relative}.pixel-caffeine-wrapper .dropdown-toggle:focus{outline:0}.pixel-caffeine-wrapper .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;list-style:none;font-size:14px;text-align:left;background-color:#fff;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.pixel-caffeine-wrapper .dropdown-menu-right,.pixel-caffeine-wrapper .dropdown-menu.pull-right{left:auto;right:0}.pixel-caffeine-wrapper .btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.pixel-caffeine-wrapper .btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle,.pixel-caffeine-wrapper .btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.pixel-caffeine-wrapper .btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child,.pixel-caffeine-wrapper .btn-group>.btn:last-child:not(:first-child),.pixel-caffeine-wrapper .btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.pixel-caffeine-wrapper .btn-group-vertical>.btn:not(:first-child):not(:last-child),.pixel-caffeine-wrapper .btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,.pixel-caffeine-wrapper .btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.pixel-caffeine-wrapper .dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.pixel-caffeine-wrapper .dropdown-menu>li>a{display:block;padding:3px 20px;font-weight:400;line-height:1.42857;color:#333;white-space:nowrap}.pixel-caffeine-wrapper .dropdown-menu>li>a:focus,.pixel-caffeine-wrapper .dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.pixel-caffeine-wrapper .dropdown-menu>.active>a,.pixel-caffeine-wrapper .dropdown-menu>.active>a:focus,.pixel-caffeine-wrapper .dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.pixel-caffeine-wrapper .dropdown-menu>.disabled>a,.pixel-caffeine-wrapper .dropdown-menu>.disabled>a:focus,.pixel-caffeine-wrapper .dropdown-menu>.disabled>a:hover{color:#777}.pixel-caffeine-wrapper .dropdown-menu>.disabled>a:focus,.pixel-caffeine-wrapper .dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.pixel-caffeine-wrapper .open>.dropdown-menu{display:block}.pixel-caffeine-wrapper .open>a{outline:0}.pixel-caffeine-wrapper .dropdown-menu-left{left:0;right:auto}.pixel-caffeine-wrapper .dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857;color:#777;white-space:nowrap}.pixel-caffeine-wrapper .dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pixel-caffeine-wrapper .pull-right>.dropdown-menu{right:0;left:auto}.pixel-caffeine-wrapper .dropup .caret,.pixel-caffeine-wrapper .navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.pixel-caffeine-wrapper .dropup .dropdown-menu,.pixel-caffeine-wrapper .navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.pixel-caffeine-wrapper .navbar-right .dropdown-menu{right:0;left:auto}.pixel-caffeine-wrapper .navbar-right .dropdown-menu-left{left:0;right:auto}}.pixel-caffeine-wrapper .btn-group,.pixel-caffeine-wrapper .btn-group-vertical{display:inline-block;vertical-align:middle}.pixel-caffeine-wrapper .btn-group-vertical>.btn,.pixel-caffeine-wrapper .btn-group>.btn{position:relative;float:left}.pixel-caffeine-wrapper .btn-group-vertical>.btn.active,.pixel-caffeine-wrapper .btn-group-vertical>.btn:active,.pixel-caffeine-wrapper .btn-group-vertical>.btn:focus,.pixel-caffeine-wrapper .btn-group-vertical>.btn:hover,.pixel-caffeine-wrapper .btn-group>.btn.active,.pixel-caffeine-wrapper .btn-group>.btn:active,.pixel-caffeine-wrapper .btn-group>.btn:focus,.pixel-caffeine-wrapper .btn-group>.btn:hover{z-index:2}.pixel-caffeine-wrapper .btn-group .btn+.btn,.pixel-caffeine-wrapper .btn-group .btn+.btn-group,.pixel-caffeine-wrapper .btn-group .btn-group+.btn,.pixel-caffeine-wrapper .btn-group .btn-group+.btn-group{margin-left:-1px}.pixel-caffeine-wrapper .btn-toolbar{margin-left:-5px}.pixel-caffeine-wrapper .btn-toolbar:after,.pixel-caffeine-wrapper .btn-toolbar:before{content:" ";display:table}.pixel-caffeine-wrapper .btn-toolbar .btn,.pixel-caffeine-wrapper .btn-toolbar .btn-group,.pixel-caffeine-wrapper .btn-toolbar .input-group{float:left}.pixel-caffeine-wrapper .btn-toolbar>.btn,.pixel-caffeine-wrapper .btn-toolbar>.btn-group,.pixel-caffeine-wrapper .btn-toolbar>.input-group{margin-left:5px}.pixel-caffeine-wrapper .btn .caret,.pixel-caffeine-wrapper .btn-group>.btn:first-child{margin-left:0}.pixel-caffeine-wrapper .btn-group>.btn-group{float:left}.pixel-caffeine-wrapper .btn-group .dropdown-toggle:active,.pixel-caffeine-wrapper .btn-group.open .dropdown-toggle{outline:0}.pixel-caffeine-wrapper .btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.pixel-caffeine-wrapper .btn-group-lg.btn-group>.btn+.dropdown-toggle,.pixel-caffeine-wrapper .btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.pixel-caffeine-wrapper .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)}.pixel-caffeine-wrapper .btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.pixel-caffeine-wrapper .btn-group-lg>.btn .caret,.pixel-caffeine-wrapper .btn-lg .caret{border-width:5px 5px 0}.pixel-caffeine-wrapper .dropup .btn-group-lg>.btn .caret,.pixel-caffeine-wrapper .dropup .btn-lg .caret{border-width:0 5px 5px}.pixel-caffeine-wrapper .btn-group-vertical>.btn,.pixel-caffeine-wrapper .btn-group-vertical>.btn-group,.pixel-caffeine-wrapper .btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.pixel-caffeine-wrapper .btn-group-vertical>.btn-group:after,.pixel-caffeine-wrapper .btn-group-vertical>.btn-group:before{content:" ";display:table}.pixel-caffeine-wrapper .btn-group-vertical>.btn-group>.btn{float:none}.pixel-caffeine-wrapper .btn-group-vertical>.btn+.btn,.pixel-caffeine-wrapper .btn-group-vertical>.btn+.btn-group,.pixel-caffeine-wrapper .btn-group-vertical>.btn-group+.btn,.pixel-caffeine-wrapper .btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.pixel-caffeine-wrapper .btn-group-vertical>.btn:first-child:not(:last-child){border-radius:4px 4px 0 0}.pixel-caffeine-wrapper .btn-group-vertical>.btn:last-child:not(:first-child){border-radius:0 0 4px 4px}.pixel-caffeine-wrapper .btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn,.pixel-caffeine-wrapper .input-group .form-control:not(:first-child):not(:last-child),.pixel-caffeine-wrapper .input-group-addon:not(:first-child):not(:last-child),.pixel-caffeine-wrapper .input-group-btn:not(:first-child):not(:last-child){border-radius:0}.pixel-caffeine-wrapper .btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.pixel-caffeine-wrapper .btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.pixel-caffeine-wrapper .btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.pixel-caffeine-wrapper .btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.pixel-caffeine-wrapper .btn-group-justified>.btn,.pixel-caffeine-wrapper .btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.pixel-caffeine-wrapper .btn-group-justified>.btn-group .btn{width:100%}.pixel-caffeine-wrapper .btn-group-justified>.btn-group .dropdown-menu{left:auto}.pixel-caffeine-wrapper [data-toggle=buttons]>.btn input[type=radio],.pixel-caffeine-wrapper [data-toggle=buttons]>.btn input[type=checkbox],.pixel-caffeine-wrapper [data-toggle=buttons]>.btn-group>.btn input[type=radio],.pixel-caffeine-wrapper [data-toggle=buttons]>.btn-group>.btn input[type=checkbox]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.pixel-caffeine-wrapper .input-group{position:relative;display:table;border-collapse:separate}.pixel-caffeine-wrapper .input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.pixel-caffeine-wrapper .input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.pixel-caffeine-wrapper .input-group .form-control:focus{z-index:3}.pixel-caffeine-wrapper .input-group .form-control,.pixel-caffeine-wrapper .input-group-addon,.pixel-caffeine-wrapper .input-group-btn{display:table-cell}.pixel-caffeine-wrapper .input-group-addon,.pixel-caffeine-wrapper .input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.pixel-caffeine-wrapper .input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.pixel-caffeine-wrapper .input-group-addon.input-sm,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:12px;border-radius:3px}.pixel-caffeine-wrapper .input-group-addon.input-lg,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:18px;border-radius:6px}.pixel-caffeine-wrapper .input-group-addon input[type=radio],.pixel-caffeine-wrapper .input-group-addon input[type=checkbox]{margin-top:0}.pixel-caffeine-wrapper .input-group .form-control:first-child,.pixel-caffeine-wrapper .input-group-addon:first-child,.pixel-caffeine-wrapper .input-group-btn:first-child>.btn,.pixel-caffeine-wrapper .input-group-btn:first-child>.btn-group>.btn,.pixel-caffeine-wrapper .input-group-btn:first-child>.dropdown-toggle,.pixel-caffeine-wrapper .input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.pixel-caffeine-wrapper .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.pixel-caffeine-wrapper .input-group-addon:first-child{border-right:0}.pixel-caffeine-wrapper .input-group .form-control:last-child,.pixel-caffeine-wrapper .input-group-addon:last-child,.pixel-caffeine-wrapper .input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.pixel-caffeine-wrapper .input-group-btn:first-child>.btn:not(:first-child),.pixel-caffeine-wrapper .input-group-btn:last-child>.btn,.pixel-caffeine-wrapper .input-group-btn:last-child>.btn-group>.btn,.pixel-caffeine-wrapper .input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.pixel-caffeine-wrapper .input-group-addon:last-child{border-left:0}.pixel-caffeine-wrapper .input-group-btn{position:relative;font-size:0;white-space:nowrap}.pixel-caffeine-wrapper .input-group-btn>.btn{position:relative}.pixel-caffeine-wrapper .input-group-btn>.btn+.btn{margin-left:-1px}.pixel-caffeine-wrapper .input-group-btn>.btn:active,.pixel-caffeine-wrapper .input-group-btn>.btn:focus,.pixel-caffeine-wrapper .input-group-btn>.btn:hover{z-index:2}.pixel-caffeine-wrapper .input-group-btn:first-child>.btn,.pixel-caffeine-wrapper .input-group-btn:first-child>.btn-group{margin-right:-1px}.pixel-caffeine-wrapper .input-group-btn:last-child>.btn,.pixel-caffeine-wrapper .input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.pixel-caffeine-wrapper .nav{margin-bottom:0;padding-left:0;list-style:none}.pixel-caffeine-wrapper .nav:after,.pixel-caffeine-wrapper .nav:before{content:" ";display:table}.pixel-caffeine-wrapper .nav>li{position:relative;display:block}.pixel-caffeine-wrapper .nav>li>a{position:relative;display:block;padding:10px 15px}.pixel-caffeine-wrapper .nav>li>a:focus,.pixel-caffeine-wrapper .nav>li>a:hover{text-decoration:none;background-color:#eee}.pixel-caffeine-wrapper .nav>li.disabled>a{color:#777}.pixel-caffeine-wrapper .nav>li.disabled>a:focus,.pixel-caffeine-wrapper .nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.pixel-caffeine-wrapper .nav .open>a,.pixel-caffeine-wrapper .nav .open>a:focus,.pixel-caffeine-wrapper .nav .open>a:hover{background-color:#eee;border-color:#337ab7}.pixel-caffeine-wrapper .nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.pixel-caffeine-wrapper .nav>li>a>img{max-width:none}.pixel-caffeine-wrapper .nav-tabs{border-bottom:1px solid #ddd}.pixel-caffeine-wrapper .nav-tabs>li{float:left;margin-bottom:-1px}.pixel-caffeine-wrapper .nav-tabs>li>a{margin-right:2px;line-height:1.42857;border-radius:4px 4px 0 0}.pixel-caffeine-wrapper .nav-tabs>li.active>a,.pixel-caffeine-wrapper .nav-tabs>li.active>a:focus,.pixel-caffeine-wrapper .nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.pixel-caffeine-wrapper .nav-pills>li{float:left}.pixel-caffeine-wrapper .nav-justified>li,.pixel-caffeine-wrapper .nav-stacked>li,.pixel-caffeine-wrapper .nav-tabs.nav-justified>li{float:none}.pixel-caffeine-wrapper .nav-pills>li>a{border-radius:4px}.pixel-caffeine-wrapper .nav-pills>li+li{margin-left:2px}.pixel-caffeine-wrapper .nav-pills>li.active>a,.pixel-caffeine-wrapper .nav-pills>li.active>a:focus,.pixel-caffeine-wrapper .nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.pixel-caffeine-wrapper .nav-stacked>li+li{margin-top:2px;margin-left:0}.pixel-caffeine-wrapper .nav-justified,.pixel-caffeine-wrapper .nav-tabs.nav-justified{width:100%}.pixel-caffeine-wrapper .nav-justified>li>a,.pixel-caffeine-wrapper .nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.pixel-caffeine-wrapper .nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.pixel-caffeine-wrapper .nav-tabs-justified,.pixel-caffeine-wrapper .nav-tabs.nav-justified{border-bottom:0}.pixel-caffeine-wrapper .nav-tabs-justified>li>a,.pixel-caffeine-wrapper .nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.pixel-caffeine-wrapper .nav-tabs-justified>.active>a,.pixel-caffeine-wrapper .nav-tabs-justified>.active>a:focus,.pixel-caffeine-wrapper .nav-tabs-justified>.active>a:hover,.pixel-caffeine-wrapper .nav-tabs.nav-justified>.active>a,.pixel-caffeine-wrapper .nav-tabs.nav-justified>.active>a:focus,.pixel-caffeine-wrapper .nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.pixel-caffeine-wrapper .nav-justified>li,.pixel-caffeine-wrapper .nav-tabs.nav-justified>li{display:table-cell;width:1%}.pixel-caffeine-wrapper .nav-justified>li>a,.pixel-caffeine-wrapper .nav-tabs.nav-justified>li>a{margin-bottom:0}.pixel-caffeine-wrapper .nav-tabs-justified>li>a,.pixel-caffeine-wrapper .nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.pixel-caffeine-wrapper .nav-tabs-justified>.active>a,.pixel-caffeine-wrapper .nav-tabs-justified>.active>a:focus,.pixel-caffeine-wrapper .nav-tabs-justified>.active>a:hover,.pixel-caffeine-wrapper .nav-tabs.nav-justified>.active>a,.pixel-caffeine-wrapper .nav-tabs.nav-justified>.active>a:focus,.pixel-caffeine-wrapper .nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.pixel-caffeine-wrapper .tab-content>.tab-pane{display:none}.pixel-caffeine-wrapper .tab-content>.active{display:block}.pixel-caffeine-wrapper .navbar-collapse:after,.pixel-caffeine-wrapper .navbar-collapse:before,.pixel-caffeine-wrapper .navbar-header:after,.pixel-caffeine-wrapper .navbar-header:before,.pixel-caffeine-wrapper .navbar:after,.pixel-caffeine-wrapper .navbar:before{display:table;content:" "}.pixel-caffeine-wrapper .nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.pixel-caffeine-wrapper .navbar{position:relative;min-height:50px;margin-bottom:20px}.pixel-caffeine-wrapper .navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.pixel-caffeine-wrapper .navbar-collapse.in{overflow-y:auto}.pixel-caffeine-wrapper .navbar-fixed-bottom .navbar-collapse,.pixel-caffeine-wrapper .navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.pixel-caffeine-wrapper .navbar-fixed-bottom .navbar-collapse,.pixel-caffeine-wrapper .navbar-fixed-top .navbar-collapse{max-height:200px}}.pixel-caffeine-wrapper .container-fluid>.navbar-collapse,.pixel-caffeine-wrapper .container-fluid>.navbar-header,.pixel-caffeine-wrapper .container>.navbar-collapse,.pixel-caffeine-wrapper .container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.pixel-caffeine-wrapper .navbar{border-radius:4px}.pixel-caffeine-wrapper .navbar-header{float:left}.pixel-caffeine-wrapper .navbar-collapse{width:auto;border-top:0;box-shadow:none}.pixel-caffeine-wrapper .navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.pixel-caffeine-wrapper .navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .pixel-caffeine-wrapper .navbar-collapse,.navbar-fixed-top .pixel-caffeine-wrapper .navbar-collapse,.navbar-static-top .pixel-caffeine-wrapper .navbar-collapse{padding-left:0;padding-right:0}.pixel-caffeine-wrapper .container-fluid>.navbar-collapse,.pixel-caffeine-wrapper .container-fluid>.navbar-header,.pixel-caffeine-wrapper .container>.navbar-collapse,.pixel-caffeine-wrapper .container>.navbar-header{margin-right:0;margin-left:0}.pixel-caffeine-wrapper .navbar-static-top{border-radius:0}}.pixel-caffeine-wrapper .navbar-static-top{z-index:1000;border-width:0 0 1px}.pixel-caffeine-wrapper .navbar-fixed-bottom,.pixel-caffeine-wrapper .navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.pixel-caffeine-wrapper .navbar-fixed-top{top:0;border-width:0 0 1px}.pixel-caffeine-wrapper .navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.pixel-caffeine-wrapper .navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.pixel-caffeine-wrapper .navbar-brand:focus,.pixel-caffeine-wrapper .navbar-brand:hover{text-decoration:none}.pixel-caffeine-wrapper .navbar-brand>img{display:block}@media (min-width:768px){.pixel-caffeine-wrapper .navbar-fixed-bottom,.pixel-caffeine-wrapper .navbar-fixed-top{border-radius:0}.navbar>.container .pixel-caffeine-wrapper .navbar-brand,.navbar>.container-fluid .pixel-caffeine-wrapper .navbar-brand{margin-left:-15px}}.pixel-caffeine-wrapper .navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.pixel-caffeine-wrapper .navbar-toggle:focus{outline:0}.pixel-caffeine-wrapper .navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.pixel-caffeine-wrapper .navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.pixel-caffeine-wrapper .navbar-nav{margin:7.5px -15px}.pixel-caffeine-wrapper .navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.pixel-caffeine-wrapper .navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.pixel-caffeine-wrapper .navbar-nav .open .dropdown-menu .dropdown-header,.pixel-caffeine-wrapper .navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.pixel-caffeine-wrapper .navbar-nav .open .dropdown-menu>li>a{line-height:20px}.pixel-caffeine-wrapper .navbar-nav .open .dropdown-menu>li>a:focus,.pixel-caffeine-wrapper .navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.pixel-caffeine-wrapper .progress-bar-striped,.pixel-caffeine-wrapper .progress-striped .progress-bar,.progress-striped .pixel-caffeine-wrapper .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)}@media (min-width:768px){.pixel-caffeine-wrapper .navbar-toggle{display:none}.pixel-caffeine-wrapper .navbar-nav{float:left;margin:0}.pixel-caffeine-wrapper .navbar-nav>li{float:left}.pixel-caffeine-wrapper .navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.pixel-caffeine-wrapper .navbar-form{padding:10px 15px;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);margin:8px -15px}@media (min-width:768px){.pixel-caffeine-wrapper .navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.pixel-caffeine-wrapper .navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.pixel-caffeine-wrapper .navbar-form .form-control-static{display:inline-block}.pixel-caffeine-wrapper .navbar-form .input-group{display:inline-table;vertical-align:middle}.pixel-caffeine-wrapper .navbar-form .input-group .form-control,.pixel-caffeine-wrapper .navbar-form .input-group .input-group-addon,.pixel-caffeine-wrapper .navbar-form .input-group .input-group-btn{width:auto}.pixel-caffeine-wrapper .navbar-form .input-group>.form-control{width:100%}.pixel-caffeine-wrapper .navbar-form .control-label{margin-bottom:0;vertical-align:middle}.pixel-caffeine-wrapper .navbar-form .checkbox,.pixel-caffeine-wrapper .navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.pixel-caffeine-wrapper .navbar-form .checkbox label,.pixel-caffeine-wrapper .navbar-form .radio label{padding-left:0}.pixel-caffeine-wrapper .navbar-form .checkbox input[type=checkbox],.pixel-caffeine-wrapper .navbar-form .radio input[type=radio]{position:relative;margin-left:0}.pixel-caffeine-wrapper .navbar-form .has-feedback .form-control-feedback{top:0}.pixel-caffeine-wrapper .navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.btn .pixel-caffeine-wrapper .badge,.btn .pixel-caffeine-wrapper .label{top:-1px;position:relative}@media (max-width:767px){.pixel-caffeine-wrapper .navbar-form .form-group{margin-bottom:5px}.pixel-caffeine-wrapper .navbar-form .form-group:last-child{margin-bottom:0}}.pixel-caffeine-wrapper .navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.pixel-caffeine-wrapper .navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-radius:4px 4px 0 0}.pixel-caffeine-wrapper .navbar-btn{margin-top:8px;margin-bottom:8px}.pixel-caffeine-wrapper .btn-group-sm>.navbar-btn.btn,.pixel-caffeine-wrapper .navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.pixel-caffeine-wrapper .btn-group-xs>.navbar-btn.btn,.pixel-caffeine-wrapper .navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.pixel-caffeine-wrapper .navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.pixel-caffeine-wrapper .navbar-text{float:left;margin-left:15px;margin-right:15px}.pixel-caffeine-wrapper .navbar-left{float:left!important}.pixel-caffeine-wrapper .navbar-right{float:right!important;margin-right:-15px}.pixel-caffeine-wrapper .navbar-right~.navbar-right{margin-right:0}}.pixel-caffeine-wrapper .navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.pixel-caffeine-wrapper .navbar-default .navbar-brand{color:#777}.pixel-caffeine-wrapper .navbar-default .navbar-brand:focus,.pixel-caffeine-wrapper .navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.pixel-caffeine-wrapper .navbar-default .navbar-nav>li>a,.pixel-caffeine-wrapper .navbar-default .navbar-text{color:#777}.pixel-caffeine-wrapper .navbar-default .navbar-nav>li>a:focus,.pixel-caffeine-wrapper .navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.pixel-caffeine-wrapper .navbar-default .navbar-nav>.active>a,.pixel-caffeine-wrapper .navbar-default .navbar-nav>.active>a:focus,.pixel-caffeine-wrapper .navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.pixel-caffeine-wrapper .navbar-default .navbar-nav>.disabled>a,.pixel-caffeine-wrapper .navbar-default .navbar-nav>.disabled>a:focus,.pixel-caffeine-wrapper .navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.pixel-caffeine-wrapper .navbar-default .navbar-toggle{border-color:#ddd}.pixel-caffeine-wrapper .navbar-default .navbar-toggle:focus,.pixel-caffeine-wrapper .navbar-default .navbar-toggle:hover{background-color:#ddd}.pixel-caffeine-wrapper .navbar-default .navbar-toggle .icon-bar{background-color:#888}.pixel-caffeine-wrapper .navbar-default .navbar-collapse,.pixel-caffeine-wrapper .navbar-default .navbar-form{border-color:#e7e7e7}.pixel-caffeine-wrapper .navbar-default .navbar-nav>.open>a,.pixel-caffeine-wrapper .navbar-default .navbar-nav>.open>a:focus,.pixel-caffeine-wrapper .navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu>.active>a,.pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.pixel-caffeine-wrapper .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.pixel-caffeine-wrapper .navbar-default .navbar-link{color:#777}.pixel-caffeine-wrapper .navbar-default .navbar-link:hover{color:#333}.pixel-caffeine-wrapper .navbar-default .btn-link{color:#777}.pixel-caffeine-wrapper .navbar-default .btn-link:focus,.pixel-caffeine-wrapper .navbar-default .btn-link:hover{color:#333}.pixel-caffeine-wrapper .navbar-default .btn-link[disabled]:focus,.pixel-caffeine-wrapper .navbar-default .btn-link[disabled]:hover,fieldset[disabled] .pixel-caffeine-wrapper .navbar-default .btn-link:focus,fieldset[disabled] .pixel-caffeine-wrapper .navbar-default .btn-link:hover{color:#ccc}.pixel-caffeine-wrapper .navbar-inverse{border-color:#090909}.pixel-caffeine-wrapper .navbar-inverse .navbar-brand{color:#9d9d9d}.pixel-caffeine-wrapper .navbar-inverse .navbar-brand:focus,.pixel-caffeine-wrapper .navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.pixel-caffeine-wrapper .navbar-inverse .navbar-nav>li>a,.pixel-caffeine-wrapper .navbar-inverse .navbar-text{color:#9d9d9d}.pixel-caffeine-wrapper .navbar-inverse .navbar-nav>li>a:focus,.pixel-caffeine-wrapper .navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.pixel-caffeine-wrapper .navbar-inverse .navbar-nav>.active>a,.pixel-caffeine-wrapper .navbar-inverse .navbar-nav>.active>a:focus,.pixel-caffeine-wrapper .navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#090909}.pixel-caffeine-wrapper .navbar-inverse .navbar-nav>.disabled>a,.pixel-caffeine-wrapper .navbar-inverse .navbar-nav>.disabled>a:focus,.pixel-caffeine-wrapper .navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.pixel-caffeine-wrapper .navbar-inverse .navbar-toggle{border-color:#333}.pixel-caffeine-wrapper .navbar-inverse .navbar-toggle:focus,.pixel-caffeine-wrapper .navbar-inverse .navbar-toggle:hover{background-color:#333}.pixel-caffeine-wrapper .navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.pixel-caffeine-wrapper .navbar-inverse .navbar-collapse,.pixel-caffeine-wrapper .navbar-inverse .navbar-form{border-color:#101010}.pixel-caffeine-wrapper .navbar-inverse .navbar-nav>.open>a,.pixel-caffeine-wrapper .navbar-inverse .navbar-nav>.open>a:focus,.pixel-caffeine-wrapper .navbar-inverse .navbar-nav>.open>a:hover{background-color:#090909;color:#fff}@media (max-width:767px){.pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#090909}.pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#090909}.pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#090909}.pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.pixel-caffeine-wrapper .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.pixel-caffeine-wrapper .navbar-inverse .navbar-link{color:#9d9d9d}.pixel-caffeine-wrapper .navbar-inverse .navbar-link:hover{color:#fff}.pixel-caffeine-wrapper .navbar-inverse .btn-link{color:#9d9d9d}.pixel-caffeine-wrapper .navbar-inverse .btn-link:focus,.pixel-caffeine-wrapper .navbar-inverse .btn-link:hover{color:#fff}.pixel-caffeine-wrapper .navbar-inverse .btn-link[disabled]:focus,.pixel-caffeine-wrapper .navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .pixel-caffeine-wrapper .navbar-inverse .btn-link:focus,fieldset[disabled] .pixel-caffeine-wrapper .navbar-inverse .btn-link:hover{color:#444}.pixel-caffeine-wrapper .breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.pixel-caffeine-wrapper .breadcrumb>li{display:inline-block}.pixel-caffeine-wrapper .breadcrumb>li+li:before{content:"/ ";padding:0 5px;color:#ccc}.pixel-caffeine-wrapper .breadcrumb>.active{color:#777}.pixel-caffeine-wrapper .pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pixel-caffeine-wrapper .pagination>li{display:inline}.pixel-caffeine-wrapper .pagination>li>a,.pixel-caffeine-wrapper .pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857;text-decoration:none;color:#337ab7;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.list-group-item>.pixel-caffeine-wrapper .badge,.pixel-caffeine-wrapper .pager .next>a,.pixel-caffeine-wrapper .pager .next>span{float:right}.pixel-caffeine-wrapper .pagination>li:first-child>a,.pixel-caffeine-wrapper .pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pixel-caffeine-wrapper .pagination>li:last-child>a,.pixel-caffeine-wrapper .pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pixel-caffeine-wrapper .pagination>li>a:focus,.pixel-caffeine-wrapper .pagination>li>a:hover,.pixel-caffeine-wrapper .pagination>li>span:focus,.pixel-caffeine-wrapper .pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pixel-caffeine-wrapper .pagination>.active>a,.pixel-caffeine-wrapper .pagination>.active>a:focus,.pixel-caffeine-wrapper .pagination>.active>a:hover,.pixel-caffeine-wrapper .pagination>.active>span,.pixel-caffeine-wrapper .pagination>.active>span:focus,.pixel-caffeine-wrapper .pagination>.active>span:hover{z-index:3;color:#fff;cursor:default}.pixel-caffeine-wrapper .pagination>.disabled>a,.pixel-caffeine-wrapper .pagination>.disabled>a:focus,.pixel-caffeine-wrapper .pagination>.disabled>a:hover,.pixel-caffeine-wrapper .pagination>.disabled>span,.pixel-caffeine-wrapper .pagination>.disabled>span:focus,.pixel-caffeine-wrapper .pagination>.disabled>span:hover{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pixel-caffeine-wrapper .pagination-lg>li>a,.pixel-caffeine-wrapper .pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.33333}.pixel-caffeine-wrapper .pagination-lg>li:first-child>a,.pixel-caffeine-wrapper .pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pixel-caffeine-wrapper .pagination-lg>li:last-child>a,.pixel-caffeine-wrapper .pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pixel-caffeine-wrapper .pagination-sm>li>a,.pixel-caffeine-wrapper .pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pixel-caffeine-wrapper .badge,.pixel-caffeine-wrapper .label{font-weight:700;line-height:1;white-space:nowrap;text-align:center}.pixel-caffeine-wrapper .pagination-sm>li:first-child>a,.pixel-caffeine-wrapper .pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pixel-caffeine-wrapper .pagination-sm>li:last-child>a,.pixel-caffeine-wrapper .pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pixel-caffeine-wrapper .pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pixel-caffeine-wrapper .pager:after,.pixel-caffeine-wrapper .pager:before{content:" ";display:table}.pixel-caffeine-wrapper .pager:after{clear:both}.pixel-caffeine-wrapper .pager li{display:inline}.pixel-caffeine-wrapper .pager li>a,.pixel-caffeine-wrapper .pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pixel-caffeine-wrapper .pager li>a:focus,.pixel-caffeine-wrapper .pager li>a:hover{text-decoration:none;background-color:#eee}.pixel-caffeine-wrapper .pager .previous>a,.pixel-caffeine-wrapper .pager .previous>span{float:left}.pixel-caffeine-wrapper .pager .disabled>a,.pixel-caffeine-wrapper .pager .disabled>a:focus,.pixel-caffeine-wrapper .pager .disabled>a:hover,.pixel-caffeine-wrapper .pager .disabled>span{color:#777;background-color:#fff;cursor:not-allowed}.pixel-caffeine-wrapper .label{display:inline;font-size:75%;color:#fff;vertical-align:baseline}.pixel-caffeine-wrapper .label:empty{display:none}.pixel-caffeine-wrapper a.label:focus,.pixel-caffeine-wrapper a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.pixel-caffeine-wrapper .label-default{background-color:#777}.pixel-caffeine-wrapper .label-default[href]:focus,.pixel-caffeine-wrapper .label-default[href]:hover{background-color:#5e5e5e}.pixel-caffeine-wrapper .label-primary{background-color:#337ab7}.pixel-caffeine-wrapper .label-primary[href]:focus,.pixel-caffeine-wrapper .label-primary[href]:hover{background-color:#286090}.pixel-caffeine-wrapper .label-success{background-color:#5cb85c}.pixel-caffeine-wrapper .label-success[href]:focus,.pixel-caffeine-wrapper .label-success[href]:hover{background-color:#449d44}.pixel-caffeine-wrapper .label-info{background-color:#5bc0de}.pixel-caffeine-wrapper .label-info[href]:focus,.pixel-caffeine-wrapper .label-info[href]:hover{background-color:#31b0d5}.pixel-caffeine-wrapper .label-warning{background-color:#f0ad4e}.pixel-caffeine-wrapper .label-warning[href]:focus,.pixel-caffeine-wrapper .label-warning[href]:hover{background-color:#ec971f}.pixel-caffeine-wrapper .label-danger{background-color:#d9534f}.pixel-caffeine-wrapper .label-danger[href]:focus,.pixel-caffeine-wrapper .label-danger[href]:hover{background-color:#c9302c}.pixel-caffeine-wrapper .badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;color:#fff;vertical-align:middle;background-color:#777;border-radius:10px}.pixel-caffeine-wrapper .badge:empty{display:none}.btn-group-xs>.btn .pixel-caffeine-wrapper .badge,.btn-xs .pixel-caffeine-wrapper .badge,.pixel-caffeine-wrapper .btn-group-xs>.btn .pixel-caffeine-wrapper .badge{top:0;padding:1px 5px}.list-group-item.active>.pixel-caffeine-wrapper .badge,.nav-pills>.active>a>.pixel-caffeine-wrapper .badge{color:#337ab7;background-color:#fff}.list-group-item>.pixel-caffeine-wrapper .badge+.pixel-caffeine-wrapper .badge{margin-right:5px}.nav-pills>li>a>.pixel-caffeine-wrapper .badge{margin-left:3px}.pixel-caffeine-wrapper a.badge:focus,.pixel-caffeine-wrapper a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.pixel-caffeine-wrapper .jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.pixel-caffeine-wrapper .jumbotron .h1,.pixel-caffeine-wrapper .jumbotron h1{color:inherit}.pixel-caffeine-wrapper .jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.pixel-caffeine-wrapper .jumbotron>hr{border-top-color:#d5d5d5}.container .pixel-caffeine-wrapper .jumbotron,.container-fluid .pixel-caffeine-wrapper .jumbotron{border-radius:6px;padding-left:15px;padding-right:15px}.pixel-caffeine-wrapper .jumbotron .container{max-width:100%}@media screen and (min-width:768px){.pixel-caffeine-wrapper .jumbotron{padding-top:48px;padding-bottom:48px}.container .pixel-caffeine-wrapper .jumbotron,.container-fluid .pixel-caffeine-wrapper .jumbotron{padding-left:60px;padding-right:60px}.pixel-caffeine-wrapper .jumbotron .h1,.pixel-caffeine-wrapper .jumbotron h1{font-size:63px}}.pixel-caffeine-wrapper .thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.pixel-caffeine-wrapper .thumbnail a>img,.pixel-caffeine-wrapper .thumbnail>img{display:block;max-width:100%;height:auto;margin-left:auto;margin-right:auto}.pixel-caffeine-wrapper .thumbnail .caption{padding:9px;color:#333}.pixel-caffeine-wrapper a.thumbnail.active,.pixel-caffeine-wrapper a.thumbnail:focus,.pixel-caffeine-wrapper a.thumbnail:hover{border-color:#337ab7}.pixel-caffeine-wrapper .alert{padding:15px;margin-bottom:20px}.pixel-caffeine-wrapper .alert h4{margin-top:0;color:inherit}.pixel-caffeine-wrapper .alert .alert-link{font-weight:700}.pixel-caffeine-wrapper .alert>p,.pixel-caffeine-wrapper .alert>ul{margin-bottom:0}.pixel-caffeine-wrapper .alert>p+p{margin-top:5px}.pixel-caffeine-wrapper .alert-dismissable,.pixel-caffeine-wrapper .alert-dismissible{padding-right:35px}.pixel-caffeine-wrapper .alert-dismissable .close,.pixel-caffeine-wrapper .alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.pixel-caffeine-wrapper .alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.pixel-caffeine-wrapper .alert-success hr{border-top-color:#c9e2b3}.pixel-caffeine-wrapper .alert-success .alert-link{color:#2b542c}.pixel-caffeine-wrapper .alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.pixel-caffeine-wrapper .alert-info hr{border-top-color:#a6e1ec}.pixel-caffeine-wrapper .alert-info .alert-link{color:#245269}.pixel-caffeine-wrapper .alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.pixel-caffeine-wrapper .alert-warning hr{border-top-color:#f7e1b5}.pixel-caffeine-wrapper .alert-warning .alert-link{color:#66512c}.pixel-caffeine-wrapper .alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.pixel-caffeine-wrapper .alert-danger hr{border-top-color:#e4b9c0}.pixel-caffeine-wrapper .alert-danger .alert-link{color:#843534}@-webkit-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}}.pixel-caffeine-wrapper .progress{overflow:hidden;margin-bottom:20px;background-color:#f5f5f5;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.pixel-caffeine-wrapper .progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-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}.pixel-caffeine-wrapper .progress-bar-striped,.pixel-caffeine-wrapper .progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.pixel-caffeine-wrapper .progress-bar.active,.pixel-caffeine-wrapper .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}.pixel-caffeine-wrapper .progress-bar-success{background-color:#5cb85c}.progress-striped .pixel-caffeine-wrapper .progress-bar-success{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)}.progress-striped .pixel-caffeine-wrapper .progress-bar-info,.progress-striped .pixel-caffeine-wrapper .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)}.pixel-caffeine-wrapper .progress-bar-info{background-color:#5bc0de}.progress-striped .pixel-caffeine-wrapper .progress-bar-info{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)}.pixel-caffeine-wrapper .progress-bar-warning{background-color:#f0ad4e}.progress-striped .pixel-caffeine-wrapper .progress-bar-warning{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)}.pixel-caffeine-wrapper .progress-bar-danger{background-color:#d9534f}.progress-striped .pixel-caffeine-wrapper .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)}.pixel-caffeine-wrapper .media{margin-top:15px}.pixel-caffeine-wrapper .media:first-child{margin-top:0}.pixel-caffeine-wrapper .media,.pixel-caffeine-wrapper .media-body{zoom:1;overflow:hidden}.pixel-caffeine-wrapper .media-body{width:10000px}.pixel-caffeine-wrapper .media-object{display:block}.pixel-caffeine-wrapper .media-object.img-thumbnail{max-width:none}.pixel-caffeine-wrapper .media-right,.pixel-caffeine-wrapper .media>.pull-right{padding-left:10px}.pixel-caffeine-wrapper .media-left,.pixel-caffeine-wrapper .media>.pull-left{padding-right:10px}.pixel-caffeine-wrapper .media-body,.pixel-caffeine-wrapper .media-left,.pixel-caffeine-wrapper .media-right{display:table-cell;vertical-align:top}.pixel-caffeine-wrapper .media-middle{vertical-align:middle}.pixel-caffeine-wrapper .media-bottom{vertical-align:bottom}.pixel-caffeine-wrapper .media-heading{margin-top:0;margin-bottom:5px}.pixel-caffeine-wrapper .media-list{padding-left:0;list-style:none}.pixel-caffeine-wrapper .list-group{margin-bottom:20px;padding-left:0}.pixel-caffeine-wrapper .list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.pixel-caffeine-wrapper .list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.pixel-caffeine-wrapper .list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.pixel-caffeine-wrapper a.list-group-item,.pixel-caffeine-wrapper button.list-group-item{color:#555}.pixel-caffeine-wrapper a.list-group-item .list-group-item-heading,.pixel-caffeine-wrapper button.list-group-item .list-group-item-heading{color:#333}.pixel-caffeine-wrapper a.list-group-item:focus,.pixel-caffeine-wrapper a.list-group-item:hover,.pixel-caffeine-wrapper button.list-group-item:focus,.pixel-caffeine-wrapper button.list-group-item:hover{text-decoration:none;color:#555;background-color:#f5f5f5}.pixel-caffeine-wrapper button.list-group-item{width:100%;text-align:left}.pixel-caffeine-wrapper .list-group-item.disabled,.pixel-caffeine-wrapper .list-group-item.disabled:focus,.pixel-caffeine-wrapper .list-group-item.disabled:hover{background-color:#eee;color:#777;cursor:not-allowed}.pixel-caffeine-wrapper .list-group-item.disabled .list-group-item-heading,.pixel-caffeine-wrapper .list-group-item.disabled:focus .list-group-item-heading,.pixel-caffeine-wrapper .list-group-item.disabled:hover .list-group-item-heading{color:inherit}.pixel-caffeine-wrapper .list-group-item.disabled .list-group-item-text,.pixel-caffeine-wrapper .list-group-item.disabled:focus .list-group-item-text,.pixel-caffeine-wrapper .list-group-item.disabled:hover .list-group-item-text{color:#777}.pixel-caffeine-wrapper .list-group-item.active,.pixel-caffeine-wrapper .list-group-item.active:focus,.pixel-caffeine-wrapper .list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.pixel-caffeine-wrapper .list-group-item.active .list-group-item-heading,.pixel-caffeine-wrapper .list-group-item.active .list-group-item-heading>.small,.pixel-caffeine-wrapper .list-group-item.active .list-group-item-heading>small,.pixel-caffeine-wrapper .list-group-item.active:focus .list-group-item-heading,.pixel-caffeine-wrapper .list-group-item.active:focus .list-group-item-heading>.small,.pixel-caffeine-wrapper .list-group-item.active:focus .list-group-item-heading>small,.pixel-caffeine-wrapper .list-group-item.active:hover .list-group-item-heading,.pixel-caffeine-wrapper .list-group-item.active:hover .list-group-item-heading>.small,.pixel-caffeine-wrapper .list-group-item.active:hover .list-group-item-heading>small{color:inherit}.pixel-caffeine-wrapper .list-group-item.active .list-group-item-text,.pixel-caffeine-wrapper .list-group-item.active:focus .list-group-item-text,.pixel-caffeine-wrapper .list-group-item.active:hover .list-group-item-text{color:#c7ddef}.pixel-caffeine-wrapper .list-group-item-success{color:#3c763d;background-color:#dff0d8}.pixel-caffeine-wrapper a.list-group-item-success,.pixel-caffeine-wrapper button.list-group-item-success{color:#3c763d}.pixel-caffeine-wrapper a.list-group-item-success .list-group-item-heading,.pixel-caffeine-wrapper button.list-group-item-success .list-group-item-heading{color:inherit}.pixel-caffeine-wrapper a.list-group-item-success:focus,.pixel-caffeine-wrapper a.list-group-item-success:hover,.pixel-caffeine-wrapper button.list-group-item-success:focus,.pixel-caffeine-wrapper button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}.pixel-caffeine-wrapper a.list-group-item-success.active,.pixel-caffeine-wrapper a.list-group-item-success.active:focus,.pixel-caffeine-wrapper a.list-group-item-success.active:hover,.pixel-caffeine-wrapper button.list-group-item-success.active,.pixel-caffeine-wrapper button.list-group-item-success.active:focus,.pixel-caffeine-wrapper button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.pixel-caffeine-wrapper .list-group-item-info{color:#31708f;background-color:#d9edf7}.pixel-caffeine-wrapper a.list-group-item-info,.pixel-caffeine-wrapper button.list-group-item-info{color:#31708f}.pixel-caffeine-wrapper a.list-group-item-info .list-group-item-heading,.pixel-caffeine-wrapper button.list-group-item-info .list-group-item-heading{color:inherit}.pixel-caffeine-wrapper a.list-group-item-info:focus,.pixel-caffeine-wrapper a.list-group-item-info:hover,.pixel-caffeine-wrapper button.list-group-item-info:focus,.pixel-caffeine-wrapper button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}.pixel-caffeine-wrapper a.list-group-item-info.active,.pixel-caffeine-wrapper a.list-group-item-info.active:focus,.pixel-caffeine-wrapper a.list-group-item-info.active:hover,.pixel-caffeine-wrapper button.list-group-item-info.active,.pixel-caffeine-wrapper button.list-group-item-info.active:focus,.pixel-caffeine-wrapper button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.pixel-caffeine-wrapper .list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}.pixel-caffeine-wrapper a.list-group-item-warning,.pixel-caffeine-wrapper button.list-group-item-warning{color:#8a6d3b}.pixel-caffeine-wrapper a.list-group-item-warning .list-group-item-heading,.pixel-caffeine-wrapper button.list-group-item-warning .list-group-item-heading{color:inherit}.pixel-caffeine-wrapper a.list-group-item-warning:focus,.pixel-caffeine-wrapper a.list-group-item-warning:hover,.pixel-caffeine-wrapper button.list-group-item-warning:focus,.pixel-caffeine-wrapper button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}.pixel-caffeine-wrapper a.list-group-item-warning.active,.pixel-caffeine-wrapper a.list-group-item-warning.active:focus,.pixel-caffeine-wrapper a.list-group-item-warning.active:hover,.pixel-caffeine-wrapper button.list-group-item-warning.active,.pixel-caffeine-wrapper button.list-group-item-warning.active:focus,.pixel-caffeine-wrapper button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.pixel-caffeine-wrapper .list-group-item-danger{color:#a94442;background-color:#f2dede}.pixel-caffeine-wrapper a.list-group-item-danger,.pixel-caffeine-wrapper button.list-group-item-danger{color:#a94442}.pixel-caffeine-wrapper a.list-group-item-danger .list-group-item-heading,.pixel-caffeine-wrapper button.list-group-item-danger .list-group-item-heading{color:inherit}.pixel-caffeine-wrapper a.list-group-item-danger:focus,.pixel-caffeine-wrapper a.list-group-item-danger:hover,.pixel-caffeine-wrapper button.list-group-item-danger:focus,.pixel-caffeine-wrapper button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}.pixel-caffeine-wrapper a.list-group-item-danger.active,.pixel-caffeine-wrapper a.list-group-item-danger.active:focus,.pixel-caffeine-wrapper a.list-group-item-danger.active:hover,.pixel-caffeine-wrapper button.list-group-item-danger.active,.pixel-caffeine-wrapper button.list-group-item-danger.active:focus,.pixel-caffeine-wrapper button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.pixel-caffeine-wrapper .panel-heading>.dropdown .dropdown-toggle,.pixel-caffeine-wrapper .panel-title>.small,.pixel-caffeine-wrapper .panel-title>.small>a,.pixel-caffeine-wrapper .panel-title>a,.pixel-caffeine-wrapper .panel-title>small,.pixel-caffeine-wrapper .panel-title>small>a{color:inherit}.pixel-caffeine-wrapper .list-group-item-heading{margin-top:0;margin-bottom:5px}.pixel-caffeine-wrapper .list-group-item-text{margin-bottom:0;line-height:1.3}.pixel-caffeine-wrapper .panel{margin-bottom:20px;background-color:#fff;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05)}.pixel-caffeine-wrapper .panel-body{padding:15px}.pixel-caffeine-wrapper .panel-body:after,.pixel-caffeine-wrapper .panel-body:before{content:" ";display:table}.pixel-caffeine-wrapper .panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.pixel-caffeine-wrapper .panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.pixel-caffeine-wrapper .panel-footer{padding:10px 15px;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.pixel-caffeine-wrapper .panel>.list-group,.pixel-caffeine-wrapper .panel>.panel-collapse>.list-group{margin-bottom:0}.pixel-caffeine-wrapper .panel>.list-group .list-group-item,.pixel-caffeine-wrapper .panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.pixel-caffeine-wrapper .panel-group .panel-heading,.pixel-caffeine-wrapper .panel>.table-bordered>tbody>tr:first-child>td,.pixel-caffeine-wrapper .panel>.table-bordered>tbody>tr:first-child>th,.pixel-caffeine-wrapper .panel>.table-bordered>tbody>tr:last-child>td,.pixel-caffeine-wrapper .panel>.table-bordered>tbody>tr:last-child>th,.pixel-caffeine-wrapper .panel>.table-bordered>tfoot>tr:last-child>td,.pixel-caffeine-wrapper .panel>.table-bordered>tfoot>tr:last-child>th,.pixel-caffeine-wrapper .panel>.table-bordered>thead>tr:first-child>td,.pixel-caffeine-wrapper .panel>.table-bordered>thead>tr:first-child>th,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.pixel-caffeine-wrapper .panel>.table-responsive:last-child>.table:last-child,.pixel-caffeine-wrapper .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.pixel-caffeine-wrapper .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.pixel-caffeine-wrapper .panel>.table:last-child,.pixel-caffeine-wrapper .panel>.table:last-child>tbody:last-child>tr:last-child,.pixel-caffeine-wrapper .panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.pixel-caffeine-wrapper .panel>.list-group:first-child .list-group-item:first-child,.pixel-caffeine-wrapper .panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.pixel-caffeine-wrapper .panel>.list-group:last-child .list-group-item:last-child,.pixel-caffeine-wrapper .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}.pixel-caffeine-wrapper .panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.pixel-caffeine-wrapper .panel>.table-responsive:first-child>.table:first-child,.pixel-caffeine-wrapper .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.pixel-caffeine-wrapper .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.pixel-caffeine-wrapper .panel>.table:first-child,.pixel-caffeine-wrapper .panel>.table:first-child>tbody:first-child>tr:first-child,.pixel-caffeine-wrapper .panel>.table:first-child>thead:first-child>tr:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.pixel-caffeine-wrapper .list-group+.panel-footer,.pixel-caffeine-wrapper .panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.pixel-caffeine-wrapper .panel>.panel-collapse>.table,.pixel-caffeine-wrapper .panel>.table,.pixel-caffeine-wrapper .panel>.table-responsive>.table{margin-bottom:0}.pixel-caffeine-wrapper .panel>.panel-collapse>.table caption,.pixel-caffeine-wrapper .panel>.table caption,.pixel-caffeine-wrapper .panel>.table-responsive>.table caption{padding-left:15px;padding-right:15px}.pixel-caffeine-wrapper .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.pixel-caffeine-wrapper .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.pixel-caffeine-wrapper .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.pixel-caffeine-wrapper .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.pixel-caffeine-wrapper .panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.pixel-caffeine-wrapper .panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.pixel-caffeine-wrapper .panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.pixel-caffeine-wrapper .panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.pixel-caffeine-wrapper .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.pixel-caffeine-wrapper .panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.pixel-caffeine-wrapper .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.pixel-caffeine-wrapper .panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.pixel-caffeine-wrapper .panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.pixel-caffeine-wrapper .panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.pixel-caffeine-wrapper .panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.pixel-caffeine-wrapper .panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.pixel-caffeine-wrapper .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.pixel-caffeine-wrapper .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.pixel-caffeine-wrapper .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.pixel-caffeine-wrapper .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.pixel-caffeine-wrapper .panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.pixel-caffeine-wrapper .panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.pixel-caffeine-wrapper .panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.pixel-caffeine-wrapper .panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.pixel-caffeine-wrapper .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.pixel-caffeine-wrapper .panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.pixel-caffeine-wrapper .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.pixel-caffeine-wrapper .panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.pixel-caffeine-wrapper .panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.pixel-caffeine-wrapper .panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.pixel-caffeine-wrapper .panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.pixel-caffeine-wrapper .panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.pixel-caffeine-wrapper .panel>.panel-body+.table,.pixel-caffeine-wrapper .panel>.panel-body+.table-responsive,.pixel-caffeine-wrapper .panel>.table+.panel-body,.pixel-caffeine-wrapper .panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.pixel-caffeine-wrapper .panel>.table>tbody:first-child>tr:first-child td,.pixel-caffeine-wrapper .panel>.table>tbody:first-child>tr:first-child th{border-top:0}.pixel-caffeine-wrapper .panel>.table-bordered,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered{border:0}.pixel-caffeine-wrapper .panel>.table-bordered>tbody>tr>td:first-child,.pixel-caffeine-wrapper .panel>.table-bordered>tbody>tr>th:first-child,.pixel-caffeine-wrapper .panel>.table-bordered>tfoot>tr>td:first-child,.pixel-caffeine-wrapper .panel>.table-bordered>tfoot>tr>th:first-child,.pixel-caffeine-wrapper .panel>.table-bordered>thead>tr>td:first-child,.pixel-caffeine-wrapper .panel>.table-bordered>thead>tr>th:first-child,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.pixel-caffeine-wrapper .panel>.table-bordered>tbody>tr>td:last-child,.pixel-caffeine-wrapper .panel>.table-bordered>tbody>tr>th:last-child,.pixel-caffeine-wrapper .panel>.table-bordered>tfoot>tr>td:last-child,.pixel-caffeine-wrapper .panel>.table-bordered>tfoot>tr>th:last-child,.pixel-caffeine-wrapper .panel>.table-bordered>thead>tr>td:last-child,.pixel-caffeine-wrapper .panel>.table-bordered>thead>tr>th:last-child,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.pixel-caffeine-wrapper .panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.pixel-caffeine-wrapper .panel>.table-responsive{border:0;margin-bottom:0}.pixel-caffeine-wrapper .panel-group .panel-heading+.panel-collapse>.list-group,.pixel-caffeine-wrapper .panel-group .panel-heading+.panel-collapse>.panel-body,.pixel-caffeine-wrapper .panel-settings-conversions .ecomm-conversions{border-top:1px solid #ddd}.pixel-caffeine-wrapper .panel-group{margin-bottom:20px}.pixel-caffeine-wrapper .panel-group .panel{margin-bottom:0;border-radius:4px}.pixel-caffeine-wrapper .panel-group .panel+.panel{margin-top:5px}.pixel-caffeine-wrapper .panel-group .panel-footer{border-top:0}.pixel-caffeine-wrapper .panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.pixel-caffeine-wrapper .panel-default{border-color:#ddd}.pixel-caffeine-wrapper .panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.pixel-caffeine-wrapper .panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.pixel-caffeine-wrapper .panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.pixel-caffeine-wrapper .panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.pixel-caffeine-wrapper .panel-primary{border-color:#337ab7}.pixel-caffeine-wrapper .panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.pixel-caffeine-wrapper .panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.pixel-caffeine-wrapper .panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.pixel-caffeine-wrapper .panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.pixel-caffeine-wrapper .panel-success{border-color:#d6e9c6}.pixel-caffeine-wrapper .panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.pixel-caffeine-wrapper .panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.pixel-caffeine-wrapper .panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.pixel-caffeine-wrapper .panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.pixel-caffeine-wrapper .panel-info{border-color:#bce8f1}.pixel-caffeine-wrapper .panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.pixel-caffeine-wrapper .panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.pixel-caffeine-wrapper .panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.pixel-caffeine-wrapper .panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.pixel-caffeine-wrapper .panel-warning{border-color:#faebcc}.pixel-caffeine-wrapper .panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.pixel-caffeine-wrapper .panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.pixel-caffeine-wrapper .panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.pixel-caffeine-wrapper .panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.pixel-caffeine-wrapper .panel-danger{border-color:#ebccd1}.pixel-caffeine-wrapper .panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.pixel-caffeine-wrapper .panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.pixel-caffeine-wrapper .panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.pixel-caffeine-wrapper .panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.pixel-caffeine-wrapper .embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.pixel-caffeine-wrapper .embed-responsive .embed-responsive-item,.pixel-caffeine-wrapper .embed-responsive embed,.pixel-caffeine-wrapper .embed-responsive iframe,.pixel-caffeine-wrapper .embed-responsive object,.pixel-caffeine-wrapper .embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.pixel-caffeine-wrapper .embed-responsive-16by9{padding-bottom:56.25%}.pixel-caffeine-wrapper .embed-responsive-4by3{padding-bottom:75%}.pixel-caffeine-wrapper .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)}.pixel-caffeine-wrapper .well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.pixel-caffeine-wrapper .well-lg{padding:24px;border-radius:6px}.pixel-caffeine-wrapper .well-sm{padding:9px;border-radius:3px}.pixel-caffeine-wrapper .close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.pixel-caffeine-wrapper .popover,.pixel-caffeine-wrapper .tooltip{font-weight:400;letter-spacing:normal;line-break:auto;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;text-decoration:none}.pixel-caffeine-wrapper .close:focus,.pixel-caffeine-wrapper .close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.pixel-caffeine-wrapper button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.pixel-caffeine-wrapper .modal-open{overflow:hidden}.pixel-caffeine-wrapper .modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;-webkit-overflow-scrolling:touch;outline:0}.pixel-caffeine-wrapper .modal-footer:after,.pixel-caffeine-wrapper .modal-footer:before,.pixel-caffeine-wrapper .modal-header:after,.pixel-caffeine-wrapper .modal-header:before{content:" ";display:table}.pixel-caffeine-wrapper .modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.pixel-caffeine-wrapper .modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.pixel-caffeine-wrapper .modal-open .modal{overflow-x:hidden;overflow-y:auto}.pixel-caffeine-wrapper .modal-dialog{position:relative;width:auto;margin:10px}.pixel-caffeine-wrapper .modal-content{position:relative;background-color:#fff;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.pixel-caffeine-wrapper .modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.pixel-caffeine-wrapper .modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.pixel-caffeine-wrapper .modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.pixel-caffeine-wrapper .modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.pixel-caffeine-wrapper .modal-header .close{margin-top:-2px}.pixel-caffeine-wrapper .modal-title{margin:0;line-height:1.42857}.pixel-caffeine-wrapper .modal-body{position:relative;padding:15px}.pixel-caffeine-wrapper .modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.pixel-caffeine-wrapper .modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.pixel-caffeine-wrapper .modal-footer .btn-group .btn+.btn{margin-left:-1px}.pixel-caffeine-wrapper .modal-footer .btn-block+.btn-block{margin-left:0}.pixel-caffeine-wrapper .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.pixel-caffeine-wrapper .modal-dialog{width:600px;margin:30px auto}.pixel-caffeine-wrapper .modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.pixel-caffeine-wrapper .modal-sm{width:300px}}@media (min-width:992px){.pixel-caffeine-wrapper .modal-lg{width:900px}}.pixel-caffeine-wrapper .tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;line-height:1.42857;text-align:left;text-align:start;font-size:12px;filter:alpha(opacity=0)}.pixel-caffeine-wrapper .tooltip.in{filter:alpha(opacity=90)}.pixel-caffeine-wrapper .tooltip.top{margin-top:-3px;padding:5px 0}.pixel-caffeine-wrapper .tooltip.right{margin-left:3px;padding:0 5px}.pixel-caffeine-wrapper .tooltip.bottom{margin-top:3px;padding:5px 0}.pixel-caffeine-wrapper .tooltip.left{margin-left:-3px;padding:0 5px}.pixel-caffeine-wrapper .tooltip-inner{max-width:200px;text-align:center;background-color:#000}.pixel-caffeine-wrapper .tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.pixel-caffeine-wrapper .tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.pixel-caffeine-wrapper .tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.pixel-caffeine-wrapper .tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.pixel-caffeine-wrapper .tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.pixel-caffeine-wrapper .tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.pixel-caffeine-wrapper .tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.pixel-caffeine-wrapper .tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.pixel-caffeine-wrapper .tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.pixel-caffeine-wrapper .popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;text-align:left;text-align:start;font-size:14px;background-color:#fff;background-clip:padding-box;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2)}.pixel-caffeine-wrapper .popover.top{margin-top:-10px}.pixel-caffeine-wrapper .popover.right{margin-left:10px}.pixel-caffeine-wrapper .popover.bottom{margin-top:10px}.pixel-caffeine-wrapper .popover.left{margin-left:-10px}.pixel-caffeine-wrapper .popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.pixel-caffeine-wrapper .popover-content{padding:9px 14px}.pixel-caffeine-wrapper .popover>.arrow,.pixel-caffeine-wrapper .popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.pixel-caffeine-wrapper .popover>.arrow{border-width:11px}.pixel-caffeine-wrapper .popover>.arrow:after{border-width:10px;content:""}.pixel-caffeine-wrapper .popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.pixel-caffeine-wrapper .popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.pixel-caffeine-wrapper .popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.pixel-caffeine-wrapper .popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.pixel-caffeine-wrapper .popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.pixel-caffeine-wrapper .popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.pixel-caffeine-wrapper .popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.pixel-caffeine-wrapper .popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.pixel-caffeine-wrapper .carousel{position:relative}.pixel-caffeine-wrapper .carousel-inner{position:relative;overflow:hidden;width:100%}.pixel-caffeine-wrapper .carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.pixel-caffeine-wrapper .carousel-inner>.item>a>img,.pixel-caffeine-wrapper .carousel-inner>.item>img{display:block;max-width:100%;height:auto;line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.pixel-caffeine-wrapper .carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-moz-transition:-moz-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;-moz-perspective:1000px;perspective:1000px}.pixel-caffeine-wrapper .carousel-inner>.item.active.right,.pixel-caffeine-wrapper .carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.pixel-caffeine-wrapper .carousel-inner>.item.active.left,.pixel-caffeine-wrapper .carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.pixel-caffeine-wrapper .carousel-inner>.item.active,.pixel-caffeine-wrapper .carousel-inner>.item.next.left,.pixel-caffeine-wrapper .carousel-inner>.item.prev.right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0}}.pixel-caffeine-wrapper .carousel-inner>.active,.pixel-caffeine-wrapper .carousel-inner>.next,.pixel-caffeine-wrapper .carousel-inner>.prev{display:block}.pixel-caffeine-wrapper .carousel-inner>.active{left:0}.pixel-caffeine-wrapper .carousel-inner>.next,.pixel-caffeine-wrapper .carousel-inner>.prev{position:absolute;top:0;width:100%}.pixel-caffeine-wrapper .carousel-inner>.next{left:100%}.pixel-caffeine-wrapper .carousel-inner>.prev{left:-100%}.pixel-caffeine-wrapper .carousel-inner>.next.left,.pixel-caffeine-wrapper .carousel-inner>.prev.right{left:0}.pixel-caffeine-wrapper .carousel-inner>.active.left{left:-100%}.pixel-caffeine-wrapper .carousel-inner>.active.right{left:100%}.pixel-caffeine-wrapper .carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:transparent}.pixel-caffeine-wrapper .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:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.pixel-caffeine-wrapper .carousel-control.right{left:auto;right:0;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:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.pixel-caffeine-wrapper .carousel-control:focus,.pixel-caffeine-wrapper .carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-left,.pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-right,.pixel-caffeine-wrapper .carousel-control .icon-next,.pixel-caffeine-wrapper .carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-left,.pixel-caffeine-wrapper .carousel-control .icon-prev{left:50%;margin-left:-10px}.pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-right,.pixel-caffeine-wrapper .carousel-control .icon-next{right:50%;margin-right:-10px}.pixel-caffeine-wrapper .carousel-control .icon-next,.pixel-caffeine-wrapper .carousel-control .icon-prev{width:20px;height:20px;line-height:1;font-family:serif}.pixel-caffeine-wrapper .carousel-control .icon-prev:before{content:'\2039'}.pixel-caffeine-wrapper .carousel-control .icon-next:before{content:'\203a'}.pixel-caffeine-wrapper .carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.pixel-caffeine-wrapper .carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000\9;background-color:transparent}.pixel-caffeine-wrapper .carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.pixel-caffeine-wrapper .carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.pixel-caffeine-wrapper .carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-left,.pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-right,.pixel-caffeine-wrapper .carousel-control .icon-next,.pixel-caffeine-wrapper .carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-left,.pixel-caffeine-wrapper .carousel-control .icon-prev{margin-left:-10px}.pixel-caffeine-wrapper .carousel-control .glyphicon-chevron-right,.pixel-caffeine-wrapper .carousel-control .icon-next{margin-right:-10px}.pixel-caffeine-wrapper .carousel-caption{left:20%;right:20%;padding-bottom:30px}.pixel-caffeine-wrapper .carousel-indicators{bottom:20px}}.pixel-caffeine-wrapper .clearfix:after,.pixel-caffeine-wrapper .clearfix:before{content:" ";display:table}.pixel-caffeine-wrapper .center-block{display:block;margin-left:auto;margin-right:auto}.pixel-caffeine-wrapper .pull-right{float:right!important}.pixel-caffeine-wrapper .pull-left{float:left!important}.pixel-caffeine-wrapper .hide{display:none!important}.pixel-caffeine-wrapper .show{display:block!important}.pixel-caffeine-wrapper .hidden,.pixel-caffeine-wrapper .visible-lg,.pixel-caffeine-wrapper .visible-lg-block,.pixel-caffeine-wrapper .visible-lg-inline,.pixel-caffeine-wrapper .visible-lg-inline-block,.pixel-caffeine-wrapper .visible-md,.pixel-caffeine-wrapper .visible-md-block,.pixel-caffeine-wrapper .visible-md-inline,.pixel-caffeine-wrapper .visible-md-inline-block,.pixel-caffeine-wrapper .visible-sm,.pixel-caffeine-wrapper .visible-sm-block,.pixel-caffeine-wrapper .visible-sm-inline,.pixel-caffeine-wrapper .visible-sm-inline-block,.pixel-caffeine-wrapper .visible-xs,.pixel-caffeine-wrapper .visible-xs-block,.pixel-caffeine-wrapper .visible-xs-inline,.pixel-caffeine-wrapper .visible-xs-inline-block{display:none!important}.pixel-caffeine-wrapper .invisible{visibility:hidden}.pixel-caffeine-wrapper .text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.pixel-caffeine-wrapper .affix{position:fixed}@-ms-viewport{width:device-width}@media (max-width:767px){.pixel-caffeine-wrapper .visible-xs{display:block!important}.pixel-caffeine-wrapper table.visible-xs{display:table!important}.pixel-caffeine-wrapper tr.visible-xs{display:table-row!important}.pixel-caffeine-wrapper td.visible-xs,.pixel-caffeine-wrapper th.visible-xs{display:table-cell!important}.pixel-caffeine-wrapper .visible-xs-block{display:block!important}.pixel-caffeine-wrapper .visible-xs-inline{display:inline!important}.pixel-caffeine-wrapper .visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.pixel-caffeine-wrapper .visible-sm{display:block!important}.pixel-caffeine-wrapper table.visible-sm{display:table!important}.pixel-caffeine-wrapper tr.visible-sm{display:table-row!important}.pixel-caffeine-wrapper td.visible-sm,.pixel-caffeine-wrapper th.visible-sm{display:table-cell!important}.pixel-caffeine-wrapper .visible-sm-block{display:block!important}.pixel-caffeine-wrapper .visible-sm-inline{display:inline!important}.pixel-caffeine-wrapper .visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.pixel-caffeine-wrapper .visible-md{display:block!important}.pixel-caffeine-wrapper table.visible-md{display:table!important}.pixel-caffeine-wrapper tr.visible-md{display:table-row!important}.pixel-caffeine-wrapper td.visible-md,.pixel-caffeine-wrapper th.visible-md{display:table-cell!important}.pixel-caffeine-wrapper .visible-md-block{display:block!important}.pixel-caffeine-wrapper .visible-md-inline{display:inline!important}.pixel-caffeine-wrapper .visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.pixel-caffeine-wrapper .visible-lg{display:block!important}.pixel-caffeine-wrapper table.visible-lg{display:table!important}.pixel-caffeine-wrapper tr.visible-lg{display:table-row!important}.pixel-caffeine-wrapper td.visible-lg,.pixel-caffeine-wrapper th.visible-lg{display:table-cell!important}.pixel-caffeine-wrapper .visible-lg-block{display:block!important}.pixel-caffeine-wrapper .visible-lg-inline{display:inline!important}.pixel-caffeine-wrapper .visible-lg-inline-block{display:inline-block!important}.pixel-caffeine-wrapper .hidden-lg{display:none!important}}@media (max-width:767px){.pixel-caffeine-wrapper .hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.pixel-caffeine-wrapper .hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.pixel-caffeine-wrapper .hidden-md{display:none!important}}.pixel-caffeine-wrapper .visible-print{display:none!important}@media print{.pixel-caffeine-wrapper .visible-print{display:block!important}.pixel-caffeine-wrapper table.visible-print{display:table!important}.pixel-caffeine-wrapper tr.visible-print{display:table-row!important}.pixel-caffeine-wrapper td.visible-print,.pixel-caffeine-wrapper th.visible-print{display:table-cell!important}}.pixel-caffeine-wrapper .visible-print-block{display:none!important}@media print{.pixel-caffeine-wrapper .visible-print-block{display:block!important}}.pixel-caffeine-wrapper .visible-print-inline{display:none!important}@media print{.pixel-caffeine-wrapper .visible-print-inline{display:inline!important}}.pixel-caffeine-wrapper .visible-print-inline-block{display:none!important}@media print{.pixel-caffeine-wrapper .visible-print-inline-block{display:inline-block!important}.pixel-caffeine-wrapper .hidden-print{display:none!important}}.pixel-caffeine-wrapper body.inverse{background:#333}.pixel-caffeine-wrapper body.inverse,.pixel-caffeine-wrapper body.inverse .form-control{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper body.inverse .card,.pixel-caffeine-wrapper body.inverse .card .form-control,.pixel-caffeine-wrapper body.inverse .modal,.pixel-caffeine-wrapper body.inverse .modal .form-control,.pixel-caffeine-wrapper body.inverse .panel-default,.pixel-caffeine-wrapper body.inverse .panel-default .form-control{background-color:initial;color:initial}.pixel-caffeine-wrapper .h1,.pixel-caffeine-wrapper .h2,.pixel-caffeine-wrapper .h3,.pixel-caffeine-wrapper .h4,.pixel-caffeine-wrapper body,.pixel-caffeine-wrapper h1,.pixel-caffeine-wrapper h2,.pixel-caffeine-wrapper h3,.pixel-caffeine-wrapper h4,.pixel-caffeine-wrapper h5,.pixel-caffeine-wrapper h6{font-family:"Open Sans",Arial,sans-serif;font-weight:300}.pixel-caffeine-wrapper a,.pixel-caffeine-wrapper a:focus,.pixel-caffeine-wrapper a:hover{color:#337ab7}.pixel-caffeine-wrapper a .material-icons,.pixel-caffeine-wrapper a:focus .material-icons,.pixel-caffeine-wrapper a:hover .material-icons{vertical-align:middle}.pixel-caffeine-wrapper .form-horizontal .radio{margin-bottom:10px}.pixel-caffeine-wrapper .form-horizontal label{text-align:right}.pixel-caffeine-wrapper .form-horizontal label.control-label{margin:0}.pixel-caffeine-wrapper body .container .well.well-sm,.pixel-caffeine-wrapper body .container-fluid .well.well-sm{padding:10px}.pixel-caffeine-wrapper body .container .well.well-lg,.pixel-caffeine-wrapper body .container-fluid .well.well-lg{padding:26px}.pixel-caffeine-wrapper body .container .jumbotron,.pixel-caffeine-wrapper body .container .well,.pixel-caffeine-wrapper body .container-fluid .jumbotron,.pixel-caffeine-wrapper body .container-fluid .well{padding:19px;margin-bottom:20px;box-shadow:0 8px 17px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);border-radius:4px;border:0}.pixel-caffeine-wrapper body .container .jumbotron p,.pixel-caffeine-wrapper body .container .well p,.pixel-caffeine-wrapper body .container-fluid .jumbotron p,.pixel-caffeine-wrapper body .container-fluid .well p{font-weight:300}.pixel-caffeine-wrapper body .container .jumbotron,.pixel-caffeine-wrapper body .container .jumbotron-default,.pixel-caffeine-wrapper body .container .well,.pixel-caffeine-wrapper body .container .well-default,.pixel-caffeine-wrapper body .container-fluid .jumbotron,.pixel-caffeine-wrapper body .container-fluid .jumbotron-default,.pixel-caffeine-wrapper body .container-fluid .well,.pixel-caffeine-wrapper body .container-fluid .well-default{background-color:#FFF}.pixel-caffeine-wrapper body .container .jumbotron-inverse,.pixel-caffeine-wrapper body .container .well-inverse,.pixel-caffeine-wrapper body .container-fluid .jumbotron-inverse,.pixel-caffeine-wrapper body .container-fluid .well-inverse{background-color:#3f51b5}.pixel-caffeine-wrapper body .container .jumbotron-primary,.pixel-caffeine-wrapper body .container .well-primary,.pixel-caffeine-wrapper body .container-fluid .jumbotron-primary,.pixel-caffeine-wrapper body .container-fluid .well-primary{background-color:#4C70BA}.pixel-caffeine-wrapper body .container .jumbotron-success,.pixel-caffeine-wrapper body .container .well-success,.pixel-caffeine-wrapper body .container-fluid .jumbotron-success,.pixel-caffeine-wrapper body .container-fluid .well-success{background-color:#68AA20}.pixel-caffeine-wrapper body .container .jumbotron-info,.pixel-caffeine-wrapper body .container .well-info,.pixel-caffeine-wrapper body .container-fluid .jumbotron-info,.pixel-caffeine-wrapper body .container-fluid .well-info{background-color:#5bc0de}.pixel-caffeine-wrapper body .container .jumbotron-warning,.pixel-caffeine-wrapper body .container .well-warning,.pixel-caffeine-wrapper body .container-fluid .jumbotron-warning,.pixel-caffeine-wrapper body .container-fluid .well-warning{background-color:#FD9C00}.pixel-caffeine-wrapper body .container .jumbotron-danger,.pixel-caffeine-wrapper body .container .well-danger,.pixel-caffeine-wrapper body .container-fluid .jumbotron-danger,.pixel-caffeine-wrapper body .container-fluid .well-danger{background-color:#E15667}.pixel-caffeine-wrapper .btn,.pixel-caffeine-wrapper .input-group-btn .btn{border:none;border-radius:4px;position:relative;margin:10px 1px;font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:0;will-change:box-shadow,transform;transition:box-shadow .2s cubic-bezier(.4,0,1,1),background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);outline:0;cursor:pointer;text-decoration:none;background:0 0}.pixel-caffeine-wrapper .btn::-moz-focus-inner,.pixel-caffeine-wrapper .input-group-btn .btn::-moz-focus-inner{border:0}.pixel-caffeine-wrapper .btn:not(.btn-raised),.pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised){box-shadow:none}.pixel-caffeine-wrapper .btn:not(.btn-raised),.pixel-caffeine-wrapper .btn:not(.btn-raised).btn-default,.pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised),.pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised).btn-default{color:rgba(0,0,0,.87)}.pixel-caffeine-wrapper .btn:not(.btn-raised).btn-inverse,.pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised).btn-inverse{color:#3f51b5}.pixel-caffeine-wrapper .btn:not(.btn-raised).btn-primary,.pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised).btn-primary{color:#4C70BA}.pixel-caffeine-wrapper .btn:not(.btn-raised).btn-success,.pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised).btn-success{color:#68AA20}.pixel-caffeine-wrapper .btn:not(.btn-raised).btn-info,.pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised).btn-info{color:#5bc0de}.pixel-caffeine-wrapper .btn:not(.btn-raised).btn-warning,.pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised).btn-warning{color:#FD9C00}.pixel-caffeine-wrapper .btn:not(.btn-raised).btn-danger,.pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised).btn-danger{color:#E15667}.pixel-caffeine-wrapper .btn:not(.btn-raised):not(.btn-link):focus,.pixel-caffeine-wrapper .btn:not(.btn-raised):not(.btn-link):hover,.pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised):not(.btn-link):focus,.pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised):not(.btn-link):hover{background-color:rgba(153,153,153,.2)}.theme-dark .pixel-caffeine-wrapper .btn:not(.btn-raised):not(.btn-link):focus,.theme-dark .pixel-caffeine-wrapper .btn:not(.btn-raised):not(.btn-link):hover,.theme-dark .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised):not(.btn-link):focus,.theme-dark .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-raised):not(.btn-link):hover{background-color:rgba(204,204,204,.15)}.btn-group-raised .pixel-caffeine-wrapper .btn,.btn-group-raised .pixel-caffeine-wrapper .btn.btn-default,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn.btn-default,.pixel-caffeine-wrapper .btn.btn-fab,.pixel-caffeine-wrapper .btn.btn-fab.btn-default,.pixel-caffeine-wrapper .btn.btn-raised,.pixel-caffeine-wrapper .btn.btn-raised.btn-default,.pixel-caffeine-wrapper .input-group-btn .btn.btn-fab,.pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-default,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.btn-default{background-color:transparent;color:rgba(0,0,0,.87)}.btn-group-raised .pixel-caffeine-wrapper .btn.btn-inverse,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn.btn-inverse,.pixel-caffeine-wrapper .btn.btn-fab.btn-inverse,.pixel-caffeine-wrapper .btn.btn-raised.btn-inverse,.pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-inverse,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.btn-inverse{background-color:#3f51b5;color:#fff}.btn-group-raised .pixel-caffeine-wrapper .btn.btn-primary,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn.btn-primary,.pixel-caffeine-wrapper .btn.btn-fab.btn-primary,.pixel-caffeine-wrapper .btn.btn-raised.btn-primary,.pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-primary,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.btn-primary{background-color:#4C70BA;color:rgba(255,255,255,.84)}.btn-group-raised .pixel-caffeine-wrapper .btn.btn-success,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn.btn-success,.pixel-caffeine-wrapper .btn.btn-fab.btn-success,.pixel-caffeine-wrapper .btn.btn-raised.btn-success,.pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-success,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.btn-success{background-color:#68AA20;color:rgba(255,255,255,.84)}.btn-group-raised .pixel-caffeine-wrapper .btn.btn-info,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn.btn-info,.pixel-caffeine-wrapper .btn.btn-fab.btn-info,.pixel-caffeine-wrapper .btn.btn-raised.btn-info,.pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-info,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.btn-info{background-color:#5bc0de;color:rgba(255,255,255,.84)}.btn-group-raised .pixel-caffeine-wrapper .btn.btn-warning,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn.btn-warning,.pixel-caffeine-wrapper .btn.btn-fab.btn-warning,.pixel-caffeine-wrapper .btn.btn-raised.btn-warning,.pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-warning,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.btn-warning{background-color:#FD9C00;color:rgba(255,255,255,.84)}.btn-group-raised .pixel-caffeine-wrapper .btn.btn-danger,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn.btn-danger,.pixel-caffeine-wrapper .btn.btn-fab.btn-danger,.pixel-caffeine-wrapper .btn.btn-raised.btn-danger,.pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-danger,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.btn-danger{background-color:#E15667;color:rgba(255,255,255,.84)}.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link),.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link),.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link),.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link){box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover{outline:0}.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active.btn-default,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active.btn-default,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.btn-default,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover.btn-default,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active.btn-default,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active.btn-default,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.btn-default,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover.btn-default,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active.btn-default,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active.btn-default,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.btn-default,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover.btn-default,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active.btn-default,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active.btn-default,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.btn-default,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover.btn-default{background-color:rgba(10,10,10,0)}.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active.btn-inverse,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active.btn-inverse,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.btn-inverse,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover.btn-inverse,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active.btn-inverse,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active.btn-inverse,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.btn-inverse,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover.btn-inverse,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active.btn-inverse,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active.btn-inverse,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.btn-inverse,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover.btn-inverse,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active.btn-inverse,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active.btn-inverse,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.btn-inverse,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover.btn-inverse{background-color:#495bc0}.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active.btn-primary,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active.btn-primary,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.btn-primary,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover.btn-primary,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active.btn-primary,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active.btn-primary,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.btn-primary,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover.btn-primary,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active.btn-primary,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active.btn-primary,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.btn-primary,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover.btn-primary,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active.btn-primary,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active.btn-primary,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.btn-primary,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover.btn-primary{background-color:#5b7cc0}.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active.btn-success,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active.btn-success,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.btn-success,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover.btn-success,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active.btn-success,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active.btn-success,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.btn-success,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover.btn-success,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active.btn-success,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active.btn-success,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.btn-success,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover.btn-success,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active.btn-success,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active.btn-success,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.btn-success,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover.btn-success{background-color:#5d991d}.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active.btn-info,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active.btn-info,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.btn-info,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover.btn-info,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active.btn-info,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active.btn-info,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.btn-info,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover.btn-info,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active.btn-info,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active.btn-info,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.btn-info,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover.btn-info,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active.btn-info,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active.btn-info,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.btn-info,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover.btn-info{background-color:#6cc7e1}.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active.btn-warning,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active.btn-warning,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.btn-warning,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover.btn-warning,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active.btn-warning,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active.btn-warning,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.btn-warning,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover.btn-warning,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active.btn-warning,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active.btn-warning,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.btn-warning,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover.btn-warning,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active.btn-warning,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active.btn-warning,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.btn-warning,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover.btn-warning{background-color:#e98f00}.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active.btn-danger,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active.btn-danger,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.btn-danger,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):hover.btn-danger,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active.btn-danger,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active.btn-danger,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.btn-danger,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):hover.btn-danger,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active.btn-danger,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active.btn-danger,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.btn-danger,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):hover.btn-danger,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active.btn-danger,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active.btn-danger,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.btn-danger,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):hover.btn-danger{background-color:#e46777}.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link).active:hover,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):active:hover,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link).active:hover,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):active:hover,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link).active:hover,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):active:hover,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link).active:hover,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):active:hover{box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2)}.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.active,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus.active:hover,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus:active,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus:active:hover,.btn-group-raised .pixel-caffeine-wrapper .btn:not(.btn-link):focus:hover,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.active,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus.active:hover,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus:active,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus:active:hover,.btn-group-raised .pixel-caffeine-wrapper .input-group-btn .btn:not(.btn-link):focus:hover,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.active,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus.active:hover,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus:active,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus:active:hover,.pixel-caffeine-wrapper .btn.btn-raised:not(.btn-link):focus:hover,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.active,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus.active:hover,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus:active,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus:active:hover,.pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:not(.btn-link):focus:hover{box-shadow:0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36)}.pixel-caffeine-wrapper .btn.btn-fab,.pixel-caffeine-wrapper .input-group-btn .btn.btn-fab{border-radius:50%;font-size:24px;height:40px;margin:auto;min-width:40px;width:40px;padding:0;overflow:hidden;box-shadow:0 1px 1.5px 0 rgba(0,0,0,.12),0 1px 1px 0 rgba(0,0,0,.24);position:relative;line-height:normal}.pixel-caffeine-wrapper .btn.btn-fab .ripple-container,.pixel-caffeine-wrapper .input-group-btn .btn.btn-fab .ripple-container{border-radius:50%}.btn-group-sm .pixel-caffeine-wrapper .btn.btn-fab,.btn-group-sm .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab,.pixel-caffeine-wrapper .btn.btn-fab.btn-fab-mini,.pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-fab-mini{height:28px;min-width:28px;width:28px}.btn-group-sm .pixel-caffeine-wrapper .btn.btn-fab.material-icons,.btn-group-sm .pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.material-icons,.pixel-caffeine-wrapper .btn.btn-fab.btn-fab-mini.material-icons,.pixel-caffeine-wrapper .input-group-btn .btn.btn-fab.btn-fab-mini.material-icons{top:0;left:0}.pixel-caffeine-wrapper .btn.btn-fab i.material-icons,.pixel-caffeine-wrapper .input-group-btn .btn.btn-fab i.material-icons{position:absolute;top:50%;left:50%;transform:translate(-12px,-12px);line-height:24px;width:24px}.pixel-caffeine-wrapper .btn i.material-icons,.pixel-caffeine-wrapper .input-group-btn .btn i.material-icons{vertical-align:middle}.btn-group-lg .pixel-caffeine-wrapper .btn,.btn-group-lg .pixel-caffeine-wrapper .input-group-btn .btn,.pixel-caffeine-wrapper .btn-group-lg>.btn,.pixel-caffeine-wrapper .btn.btn-lg,.pixel-caffeine-wrapper .input-group-btn .btn-group-lg>.btn,.pixel-caffeine-wrapper .input-group-btn .btn.btn-lg{font-size:16px}.btn-group-sm .pixel-caffeine-wrapper .btn,.btn-group-sm .pixel-caffeine-wrapper .input-group-btn .btn,.pixel-caffeine-wrapper .btn-group-sm>.btn,.pixel-caffeine-wrapper .btn.btn-sm,.pixel-caffeine-wrapper .input-group-btn .btn-group-sm>.btn,.pixel-caffeine-wrapper .input-group-btn .btn.btn-sm{padding:5px 20px;font-size:12px}.btn-group-xs .pixel-caffeine-wrapper .btn,.btn-group-xs .pixel-caffeine-wrapper .input-group-btn .btn,.pixel-caffeine-wrapper .btn-group-xs>.btn,.pixel-caffeine-wrapper .btn.btn-xs,.pixel-caffeine-wrapper .input-group-btn .btn-group-xs>.btn,.pixel-caffeine-wrapper .input-group-btn .btn.btn-xs{padding:4px 15px;font-size:10px}.pixel-caffeine-wrapper .btn-group-vertical.disabled,.pixel-caffeine-wrapper .btn-group-vertical:disabled,.pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled],.pixel-caffeine-wrapper .btn-group.disabled,.pixel-caffeine-wrapper .btn-group:disabled,.pixel-caffeine-wrapper .btn-group[disabled][disabled],.pixel-caffeine-wrapper .btn.disabled,.pixel-caffeine-wrapper .btn:disabled,.pixel-caffeine-wrapper .btn[disabled][disabled],.pixel-caffeine-wrapper .input-group-btn .btn.disabled,.pixel-caffeine-wrapper .input-group-btn .btn:disabled,.pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled],fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group-vertical,fieldset[disabled][disabled] .pixel-caffeine-wrapper .input-group-btn .btn{color:rgba(0,0,0,.26);background:0 0}.theme-dark .pixel-caffeine-wrapper .btn-group-vertical.disabled,.theme-dark .pixel-caffeine-wrapper .btn-group-vertical:disabled,.theme-dark .pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled],.theme-dark .pixel-caffeine-wrapper .btn-group.disabled,.theme-dark .pixel-caffeine-wrapper .btn-group:disabled,.theme-dark .pixel-caffeine-wrapper .btn-group[disabled][disabled],.theme-dark .pixel-caffeine-wrapper .btn.disabled,.theme-dark .pixel-caffeine-wrapper .btn:disabled,.theme-dark .pixel-caffeine-wrapper .btn[disabled][disabled],.theme-dark .pixel-caffeine-wrapper .input-group-btn .btn.disabled,.theme-dark .pixel-caffeine-wrapper .input-group-btn .btn:disabled,.theme-dark .pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled],.theme-dark fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn,.theme-dark fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group,.theme-dark fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group-vertical,.theme-dark fieldset[disabled][disabled] .pixel-caffeine-wrapper .input-group-btn .btn{color:rgba(255,255,255,.3)}.pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-group-raised,.pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-group-raised.active,.pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-group-raised:active,.pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-group-raised:focus:not(:active),.pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-raised,.pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-raised.active,.pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-raised:active,.pixel-caffeine-wrapper .btn-group-vertical.disabled.btn-raised:focus:not(:active),.pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-group-raised,.pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-group-raised.active,.pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-group-raised:active,.pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-group-raised:focus:not(:active),.pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-raised,.pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-raised.active,.pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-raised:active,.pixel-caffeine-wrapper .btn-group-vertical:disabled.btn-raised:focus:not(:active),.pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-group-raised,.pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-group-raised.active,.pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-group-raised:active,.pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-group-raised:focus:not(:active),.pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-raised,.pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-raised.active,.pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-raised:active,.pixel-caffeine-wrapper .btn-group-vertical[disabled][disabled].btn-raised:focus:not(:active),.pixel-caffeine-wrapper .btn-group.disabled.btn-group-raised,.pixel-caffeine-wrapper .btn-group.disabled.btn-group-raised.active,.pixel-caffeine-wrapper .btn-group.disabled.btn-group-raised:active,.pixel-caffeine-wrapper .btn-group.disabled.btn-group-raised:focus:not(:active),.pixel-caffeine-wrapper .btn-group.disabled.btn-raised,.pixel-caffeine-wrapper .btn-group.disabled.btn-raised.active,.pixel-caffeine-wrapper .btn-group.disabled.btn-raised:active,.pixel-caffeine-wrapper .btn-group.disabled.btn-raised:focus:not(:active),.pixel-caffeine-wrapper .btn-group:disabled.btn-group-raised,.pixel-caffeine-wrapper .btn-group:disabled.btn-group-raised.active,.pixel-caffeine-wrapper .btn-group:disabled.btn-group-raised:active,.pixel-caffeine-wrapper .btn-group:disabled.btn-group-raised:focus:not(:active),.pixel-caffeine-wrapper .btn-group:disabled.btn-raised,.pixel-caffeine-wrapper .btn-group:disabled.btn-raised.active,.pixel-caffeine-wrapper .btn-group:disabled.btn-raised:active,.pixel-caffeine-wrapper .btn-group:disabled.btn-raised:focus:not(:active),.pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-group-raised,.pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-group-raised.active,.pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-group-raised:active,.pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-group-raised:focus:not(:active),.pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-raised,.pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-raised.active,.pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-raised:active,.pixel-caffeine-wrapper .btn-group[disabled][disabled].btn-raised:focus:not(:active),.pixel-caffeine-wrapper .btn.disabled.btn-group-raised,.pixel-caffeine-wrapper .btn.disabled.btn-group-raised.active,.pixel-caffeine-wrapper .btn.disabled.btn-group-raised:active,.pixel-caffeine-wrapper .btn.disabled.btn-group-raised:focus:not(:active),.pixel-caffeine-wrapper .btn.disabled.btn-raised,.pixel-caffeine-wrapper .btn.disabled.btn-raised.active,.pixel-caffeine-wrapper .btn.disabled.btn-raised:active,.pixel-caffeine-wrapper .btn.disabled.btn-raised:focus:not(:active),.pixel-caffeine-wrapper .btn:disabled.btn-group-raised,.pixel-caffeine-wrapper .btn:disabled.btn-group-raised.active,.pixel-caffeine-wrapper .btn:disabled.btn-group-raised:active,.pixel-caffeine-wrapper .btn:disabled.btn-group-raised:focus:not(:active),.pixel-caffeine-wrapper .btn:disabled.btn-raised,.pixel-caffeine-wrapper .btn:disabled.btn-raised.active,.pixel-caffeine-wrapper .btn:disabled.btn-raised:active,.pixel-caffeine-wrapper .btn:disabled.btn-raised:focus:not(:active),.pixel-caffeine-wrapper .btn[disabled][disabled].btn-group-raised,.pixel-caffeine-wrapper .btn[disabled][disabled].btn-group-raised.active,.pixel-caffeine-wrapper .btn[disabled][disabled].btn-group-raised:active,.pixel-caffeine-wrapper .btn[disabled][disabled].btn-group-raised:focus:not(:active),.pixel-caffeine-wrapper .btn[disabled][disabled].btn-raised,.pixel-caffeine-wrapper .btn[disabled][disabled].btn-raised.active,.pixel-caffeine-wrapper .btn[disabled][disabled].btn-raised:active,.pixel-caffeine-wrapper .btn[disabled][disabled].btn-raised:focus:not(:active),.pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-group-raised,.pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-group-raised.active,.pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-group-raised:active,.pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-group-raised:focus:not(:active),.pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-raised,.pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-raised.active,.pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-raised:active,.pixel-caffeine-wrapper .input-group-btn .btn.disabled.btn-raised:focus:not(:active),.pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-group-raised,.pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-group-raised.active,.pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-group-raised:active,.pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-group-raised:focus:not(:active),.pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-raised,.pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-raised.active,.pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-raised:active,.pixel-caffeine-wrapper .input-group-btn .btn:disabled.btn-raised:focus:not(:active),.pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-group-raised,.pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-group-raised.active,.pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-group-raised:active,.pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-group-raised:focus:not(:active),.pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-raised,.pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-raised.active,.pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-raised:active,.pixel-caffeine-wrapper .input-group-btn .btn[disabled][disabled].btn-raised:focus:not(:active),fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group-vertical.btn-group-raised,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group-vertical.btn-group-raised.active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group-vertical.btn-group-raised:active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group-vertical.btn-group-raised:focus:not(:active),fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group-vertical.btn-raised,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group-vertical.btn-raised.active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group-vertical.btn-raised:active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group-vertical.btn-raised:focus:not(:active),fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group.btn-group-raised,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group.btn-group-raised.active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group.btn-group-raised:active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group.btn-group-raised:focus:not(:active),fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group.btn-raised,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group.btn-raised.active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group.btn-raised:active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn-group.btn-raised:focus:not(:active),fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-group-raised,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-group-raised.active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-group-raised:active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-group-raised:focus:not(:active),fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-raised,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-raised.active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-raised:active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .btn.btn-raised:focus:not(:active),fieldset[disabled][disabled] .pixel-caffeine-wrapper .input-group-btn .btn.btn-group-raised,fieldset[disabled][disabled] .pixel-caffeine-wrapper .input-group-btn .btn.btn-group-raised.active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .input-group-btn .btn.btn-group-raised:active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .input-group-btn .btn.btn-group-raised:focus:not(:active),fieldset[disabled][disabled] .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised,fieldset[disabled][disabled] .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised.active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:active,fieldset[disabled][disabled] .pixel-caffeine-wrapper .input-group-btn .btn.btn-raised:focus:not(:active){box-shadow:none}.pixel-caffeine-wrapper .btn-group,.pixel-caffeine-wrapper .btn-group-vertical{position:relative;margin:10px 1px}.pixel-caffeine-wrapper .btn-group-vertical.open>.dropdown-toggle.btn,.pixel-caffeine-wrapper .btn-group-vertical.open>.dropdown-toggle.btn.btn-default,.pixel-caffeine-wrapper .btn-group.open>.dropdown-toggle.btn,.pixel-caffeine-wrapper .btn-group.open>.dropdown-toggle.btn.btn-default{background-color:transparent}.pixel-caffeine-wrapper .btn-group-vertical.open>.dropdown-toggle.btn.btn-inverse,.pixel-caffeine-wrapper .btn-group.open>.dropdown-toggle.btn.btn-inverse{background-color:#3f51b5}.pixel-caffeine-wrapper .btn-group-vertical.open>.dropdown-toggle.btn.btn-primary,.pixel-caffeine-wrapper .btn-group.open>.dropdown-toggle.btn.btn-primary{background-color:#4C70BA}.pixel-caffeine-wrapper .btn-group-vertical.open>.dropdown-toggle.btn.btn-success,.pixel-caffeine-wrapper .btn-group.open>.dropdown-toggle.btn.btn-success{background-color:#68AA20}.pixel-caffeine-wrapper .btn-group-vertical.open>.dropdown-toggle.btn.btn-info,.pixel-caffeine-wrapper .btn-group.open>.dropdown-toggle.btn.btn-info{background-color:#5bc0de}.pixel-caffeine-wrapper .btn-group-vertical.open>.dropdown-toggle.btn.btn-warning,.pixel-caffeine-wrapper .btn-group.open>.dropdown-toggle.btn.btn-warning{background-color:#FD9C00}.pixel-caffeine-wrapper .btn-group-vertical.open>.dropdown-toggle.btn.btn-danger,.pixel-caffeine-wrapper .btn-group.open>.dropdown-toggle.btn.btn-danger{background-color:#E15667}.pixel-caffeine-wrapper .btn-group .dropdown-menu,.pixel-caffeine-wrapper .btn-group-vertical .dropdown-menu{border-radius:0 0 4px 4px}.pixel-caffeine-wrapper .btn-group-vertical.btn-group-raised,.pixel-caffeine-wrapper .btn-group.btn-group-raised{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.pixel-caffeine-wrapper .btn-group .btn,.pixel-caffeine-wrapper .btn-group .btn+.btn,.pixel-caffeine-wrapper .btn-group .btn-group,.pixel-caffeine-wrapper .btn-group .btn:active,.pixel-caffeine-wrapper .btn-group-vertical .btn,.pixel-caffeine-wrapper .btn-group-vertical .btn+.btn,.pixel-caffeine-wrapper .btn-group-vertical .btn-group,.pixel-caffeine-wrapper .btn-group-vertical .btn:active{margin:0}.pixel-caffeine-wrapper .checkbox label,.pixel-caffeine-wrapper label.checkbox-inline{cursor:pointer;padding-left:0;color:rgba(0,0,0,.26)}.form-group.is-focused .pixel-caffeine-wrapper .checkbox label,.form-group.is-focused .pixel-caffeine-wrapper label.checkbox-inline{color:rgba(0,0,0,.26)}.form-group.is-focused .pixel-caffeine-wrapper .checkbox label:focus,.form-group.is-focused .pixel-caffeine-wrapper .checkbox label:hover,.form-group.is-focused .pixel-caffeine-wrapper label.checkbox-inline:focus,.form-group.is-focused .pixel-caffeine-wrapper label.checkbox-inline:hover{color:rgba(0,0,0,.54)}fieldset[disabled] .form-group.is-focused .pixel-caffeine-wrapper .checkbox label,fieldset[disabled] .form-group.is-focused .pixel-caffeine-wrapper label.checkbox-inline{color:rgba(0,0,0,.26)}.pixel-caffeine-wrapper .checkbox input[type=checkbox],.pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]{opacity:0;position:absolute;margin:0;z-index:-1;width:0;height:0;overflow:hidden;left:0;pointer-events:none}.pixel-caffeine-wrapper .checkbox .checkbox-material,.pixel-caffeine-wrapper label.checkbox-inline .checkbox-material{vertical-align:middle;position:relative;top:3px}.pixel-caffeine-wrapper .checkbox .checkbox-material:before,.pixel-caffeine-wrapper label.checkbox-inline .checkbox-material:before{display:block;position:absolute;top:-5px;left:0;content:"";background-color:rgba(0,0,0,.84);height:20px;width:20px;border-radius:100%;z-index:1;opacity:0;margin:0;transform:scale3d(2.3,2.3,1)}.pixel-caffeine-wrapper .checkbox .checkbox-material .check,.pixel-caffeine-wrapper label.checkbox-inline .checkbox-material .check{position:relative;display:inline-block;width:20px;height:20px;border:2px solid rgba(0,0,0,.54);border-radius:4px;overflow:hidden;z-index:1}.pixel-caffeine-wrapper .checkbox .checkbox-material .check:before,.pixel-caffeine-wrapper label.checkbox-inline .checkbox-material .check:before{position:absolute;content:"";transform:rotate(45deg);display:block;margin-top:-4px;margin-left:6px;width:0;height:0;box-shadow:0 0 0 0,0 0 0 0,0 0 0 0,0 0 0 0,0 0 0 0,0 0 0 0,0 0 0 0 inset}.pixel-caffeine-wrapper .checkbox input[type=checkbox]:focus+.checkbox-material .check:after,.pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:focus+.checkbox-material .check:after{opacity:.2}.pixel-caffeine-wrapper .checkbox input[type=checkbox]:focus:checked+.checkbox-material:before,.pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:focus:checked+.checkbox-material:before{animation:rippleOn .5s}.pixel-caffeine-wrapper .checkbox input[type=checkbox]:focus:checked+.checkbox-material .check:before,.pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:focus:checked+.checkbox-material .check:before{animation:checkbox-on .3s forwards}.pixel-caffeine-wrapper .checkbox input[type=checkbox]:focus:checked+.checkbox-material .check:after,.pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:focus:checked+.checkbox-material .check:after{animation:rippleOn .5s forwards}.pixel-caffeine-wrapper .checkbox input[type=checkbox]:focus:not(:checked)+.checkbox-material:before,.pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:focus:not(:checked)+.checkbox-material:before{animation:rippleOff .5s}.pixel-caffeine-wrapper .checkbox input[type=checkbox]:focus:not(:checked)+.checkbox-material .check:before,.pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:focus:not(:checked)+.checkbox-material .check:before{animation:checkbox-off .3s forwards}.pixel-caffeine-wrapper .checkbox input[type=checkbox]:focus:not(:checked)+.checkbox-material .check:after,.pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:focus:not(:checked)+.checkbox-material .check:after{animation:rippleOff .5s forwards}.pixel-caffeine-wrapper .checkbox input[type=checkbox]:checked+.checkbox-material .check,.pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:checked+.checkbox-material .check{color:#4C70BA;border-color:#4C70BA}.pixel-caffeine-wrapper .checkbox input[type=checkbox]:checked+.checkbox-material .check:before,.pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]:checked+.checkbox-material .check:before{color:#4C70BA;box-shadow:0 0 0 10px,10px -10px 0 10px,32px 0 0 20px,0 32px 0 20px,-5px 5px 0 10px,20px -12px 0 11px}.pixel-caffeine-wrapper .checkbox input[type=checkbox][disabled]+.circle,.pixel-caffeine-wrapper .checkbox input[type=checkbox][disabled]:not(:checked)~.checkbox-material .check,.pixel-caffeine-wrapper .checkbox input[type=checkbox][disabled]:not(:checked)~.checkbox-material .check:before,.pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox][disabled]+.circle,.pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox][disabled]:not(:checked)~.checkbox-material .check,.pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox][disabled]:not(:checked)~.checkbox-material .check:before,fieldset[disabled] .pixel-caffeine-wrapper .checkbox,fieldset[disabled] .pixel-caffeine-wrapper .checkbox input[type=checkbox],fieldset[disabled] .pixel-caffeine-wrapper label.checkbox-inline,fieldset[disabled] .pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox]{opacity:.5}.pixel-caffeine-wrapper .checkbox input[type=checkbox][disabled]+.checkbox-material .check:after,.pixel-caffeine-wrapper label.checkbox-inline input[type=checkbox][disabled]+.checkbox-material .check:after{background-color:rgba(0,0,0,.87);transform:rotate(-45deg)}@keyframes checkbox-on{0%{box-shadow:0 0 0 10px,10px -10px 0 10px,32px 0 0 20px,0 32px 0 20px,-5px 5px 0 10px,15px 2px 0 11px}50%{box-shadow:0 0 0 10px,10px -10px 0 10px,32px 0 0 20px,0 32px 0 20px,-5px 5px 0 10px,20px 2px 0 11px}100%{box-shadow:0 0 0 10px,10px -10px 0 10px,32px 0 0 20px,0 32px 0 20px,-5px 5px 0 10px,20px -12px 0 11px}}@keyframes checkbox-off{0%,25%{box-shadow:0 0 0 10px,10px -10px 0 10px,32px 0 0 20px,0 32px 0 20px,-5px 5px 0 10px,20px -12px 0 11px,0 0 0 0 inset}50%{transform:rotate(45deg);margin-top:-4px;margin-left:6px;width:0;height:0;box-shadow:0 0 0 10px,10px -10px 0 10px,32px 0 0 20px,0 32px 0 20px,-5px 5px 0 10px,15px 2px 0 11px,0 0 0 0 inset}51%{transform:rotate(0);margin-top:-2px;margin-left:-2px;width:20px;height:20px;box-shadow:0 0 0 0,0 0 0 0,0 0 0 0,0 0 0 0,0 0 0 0,0 0 0 0,0 0 0 10px inset}100%{transform:rotate(0);margin-top:-2px;margin-left:-2px;width:20px;height:20px;box-shadow:0 0 0 0,0 0 0 0,0 0 0 0,0 0 0 0,0 0 0 0,0 0 0 0,0 0 0 0 inset}}.pixel-caffeine-wrapper .togglebutton,.pixel-caffeine-wrapper .togglebutton .toggle,.pixel-caffeine-wrapper .togglebutton input,.pixel-caffeine-wrapper .togglebutton label{user-select:none}.pixel-caffeine-wrapper .togglebutton label{cursor:pointer;color:rgba(0,0,0,.26)}.form-group.is-focused .pixel-caffeine-wrapper .togglebutton label{color:rgba(0,0,0,.26)}.form-group.is-focused .pixel-caffeine-wrapper .togglebutton label:focus,.form-group.is-focused .pixel-caffeine-wrapper .togglebutton label:hover{color:rgba(0,0,0,.54)}.form-group.is-focused .pixel-caffeine-wrapper .radio label,.form-group.is-focused .pixel-caffeine-wrapper label.radio-inline,fieldset[disabled] .form-group.is-focused .pixel-caffeine-wrapper .togglebutton label{color:rgba(0,0,0,.26)}.pixel-caffeine-wrapper .togglebutton label input[type=checkbox]{opacity:0;width:0;height:0}.pixel-caffeine-wrapper .togglebutton label .toggle{text-align:left}.pixel-caffeine-wrapper .togglebutton label .toggle,.pixel-caffeine-wrapper .togglebutton label input[type=checkbox][disabled]+.toggle{content:"";display:inline-block;width:30px;height:15px;background-color:rgba(80,80,80,.7);border-radius:15px;margin-right:15px;transition:background .3s ease;vertical-align:middle}.pixel-caffeine-wrapper .togglebutton label .toggle:after{content:"";display:inline-block;width:20px;height:20px;background-color:#F1F1F1;border-radius:20px;position:relative;box-shadow:0 1px 3px 1px rgba(0,0,0,.4);left:-5px;top:-2px;transition:left .3s ease,background .3s ease,box-shadow .1s ease}.pixel-caffeine-wrapper .togglebutton label input[type=checkbox][disabled]+.toggle:after,.pixel-caffeine-wrapper .togglebutton label input[type=checkbox][disabled]:checked+.toggle:after{background-color:#BDBDBD}.pixel-caffeine-wrapper .togglebutton label input[type=checkbox]+.toggle:active:after,.pixel-caffeine-wrapper .togglebutton label input[type=checkbox][disabled]+.toggle:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,.4),0 0 0 15px rgba(0,0,0,.1)}.pixel-caffeine-wrapper .togglebutton label input[type=checkbox]:checked+.toggle{background-color:rgba(76,112,186,.5)}.pixel-caffeine-wrapper .togglebutton label input[type=checkbox]:checked+.toggle:after{left:15px;background-color:#4C70BA}.pixel-caffeine-wrapper .togglebutton label input[type=checkbox]:checked+.toggle:active:after{box-shadow:0 1px 3px 1px rgba(0,0,0,.4),0 0 0 15px rgba(76,112,186,.1)}.pixel-caffeine-wrapper .radio label,.pixel-caffeine-wrapper label.radio-inline{cursor:pointer;position:relative;color:rgba(0,0,0,.26)}.form-group.is-focused .pixel-caffeine-wrapper .radio label:focus,.form-group.is-focused .pixel-caffeine-wrapper .radio label:hover,.form-group.is-focused .pixel-caffeine-wrapper label.radio-inline:focus,.form-group.is-focused .pixel-caffeine-wrapper label.radio-inline:hover{color:rgba(0,0,0,.54)}fieldset[disabled] .form-group.is-focused .pixel-caffeine-wrapper .radio label,fieldset[disabled] .form-group.is-focused .pixel-caffeine-wrapper label.radio-inline{color:rgba(0,0,0,.26)}.pixel-caffeine-wrapper .radio span,.pixel-caffeine-wrapper label.radio-inline span{display:block;position:absolute;left:10px;top:2px;transition-duration:.2s}.pixel-caffeine-wrapper .radio .circle,.pixel-caffeine-wrapper label.radio-inline .circle{border:2px solid rgba(0,0,0,.54);height:15px;width:15px;border-radius:100%}.pixel-caffeine-wrapper .radio .check,.pixel-caffeine-wrapper label.radio-inline .check{height:15px;width:15px;border-radius:100%;background-color:#4C70BA;transform:scale3d(0,0,0)}.pixel-caffeine-wrapper .radio .check:after,.pixel-caffeine-wrapper label.radio-inline .check:after{display:block;position:absolute;content:"";background-color:rgba(0,0,0,.87);left:-18px;top:-18px;height:50px;width:50px;border-radius:100%;z-index:1;opacity:0;margin:0;transform:scale3d(1.5,1.5,1)}.pixel-caffeine-wrapper .radio input[type=radio]:focus:not(:checked)~.check:after,.pixel-caffeine-wrapper label.radio-inline input[type=radio]:focus:not(:checked)~.check:after{animation:rippleOff .5s}.pixel-caffeine-wrapper .radio input[type=radio]:focus:checked~.check:after,.pixel-caffeine-wrapper label.radio-inline input[type=radio]:focus:checked~.check:after{animation:rippleOn .5s}.pixel-caffeine-wrapper .radio input[type=radio],.pixel-caffeine-wrapper label.radio-inline input[type=radio]{opacity:0;height:0;width:0;overflow:hidden}.pixel-caffeine-wrapper .radio input[type=radio]:checked~.check,.pixel-caffeine-wrapper .radio input[type=radio]:checked~.circle,.pixel-caffeine-wrapper label.radio-inline input[type=radio]:checked~.check,.pixel-caffeine-wrapper label.radio-inline input[type=radio]:checked~.circle{opacity:1}.pixel-caffeine-wrapper .radio input[type=radio]:checked~.check,.pixel-caffeine-wrapper label.radio-inline input[type=radio]:checked~.check{background-color:#4C70BA;transform:scale3d(.55,.55,1)}.pixel-caffeine-wrapper .radio input[type=radio]:checked~.circle,.pixel-caffeine-wrapper label.radio-inline input[type=radio]:checked~.circle{border-color:#4C70BA}.pixel-caffeine-wrapper .radio input[type=radio][disabled]~.check,.pixel-caffeine-wrapper .radio input[type=radio][disabled]~.circle,.pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled]~.check,.pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled]~.circle{opacity:.26}.pixel-caffeine-wrapper .radio input[type=radio][disabled]~.check,.pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled]~.check{background-color:#444}.pixel-caffeine-wrapper .radio input[type=radio][disabled]~.circle,.pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled]~.circle{border-color:#444}.theme-dark .pixel-caffeine-wrapper .radio input[type=radio][disabled]~.check,.theme-dark .pixel-caffeine-wrapper .radio input[type=radio][disabled]~.circle,.theme-dark .pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled]~.check,.theme-dark .pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled]~.circle{opacity:.3}.theme-dark .pixel-caffeine-wrapper .radio input[type=radio][disabled]~.check,.theme-dark .pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled]~.check{background-color:#FFF}.theme-dark .pixel-caffeine-wrapper .radio input[type=radio][disabled]~.circle,.theme-dark .pixel-caffeine-wrapper label.radio-inline input[type=radio][disabled]~.circle{border-color:#FFF}@keyframes rippleOn{0%,100%{opacity:0}50%{opacity:.2}}@keyframes rippleOff{0%,100%{opacity:0}50%{opacity:.2}}.pixel-caffeine-wrapper legend{margin-bottom:22px;font-size:21px}.pixel-caffeine-wrapper output{padding-top:8px}.pixel-caffeine-wrapper .form-control{height:38px;padding:7px 0;margin-bottom:7px}@media screen and (-webkit-min-device-pixel-ratio:0){.pixel-caffeine-wrapper input[type=date].form-control,.pixel-caffeine-wrapper input[type=time].form-control,.pixel-caffeine-wrapper input[type=datetime-local].form-control,.pixel-caffeine-wrapper input[type=month].form-control{line-height:38px}.input-group-sm .pixel-caffeine-wrapper input[type=date],.input-group-sm .pixel-caffeine-wrapper input[type=time],.input-group-sm .pixel-caffeine-wrapper input[type=datetime-local],.input-group-sm .pixel-caffeine-wrapper input[type=month],.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>input[type=date].btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>input[type=time].btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>input[type=datetime-local].btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>input[type=month].btn,.pixel-caffeine-wrapper .input-group-sm>input[type=date].form-control,.pixel-caffeine-wrapper .input-group-sm>input[type=date].input-group-addon,.pixel-caffeine-wrapper .input-group-sm>input[type=time].form-control,.pixel-caffeine-wrapper .input-group-sm>input[type=time].input-group-addon,.pixel-caffeine-wrapper .input-group-sm>input[type=datetime-local].form-control,.pixel-caffeine-wrapper .input-group-sm>input[type=datetime-local].input-group-addon,.pixel-caffeine-wrapper .input-group-sm>input[type=month].form-control,.pixel-caffeine-wrapper .input-group-sm>input[type=month].input-group-addon,.pixel-caffeine-wrapper input[type=date].input-sm,.pixel-caffeine-wrapper input[type=time].input-sm,.pixel-caffeine-wrapper input[type=datetime-local].input-sm,.pixel-caffeine-wrapper input[type=month].input-sm{line-height:24px}.input-group-lg .pixel-caffeine-wrapper input[type=date],.input-group-lg .pixel-caffeine-wrapper input[type=time],.input-group-lg .pixel-caffeine-wrapper input[type=datetime-local],.input-group-lg .pixel-caffeine-wrapper input[type=month],.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>input[type=date].btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>input[type=time].btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>input[type=datetime-local].btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>input[type=month].btn,.pixel-caffeine-wrapper .input-group-lg>input[type=date].form-control,.pixel-caffeine-wrapper .input-group-lg>input[type=date].input-group-addon,.pixel-caffeine-wrapper .input-group-lg>input[type=time].form-control,.pixel-caffeine-wrapper .input-group-lg>input[type=time].input-group-addon,.pixel-caffeine-wrapper .input-group-lg>input[type=datetime-local].form-control,.pixel-caffeine-wrapper .input-group-lg>input[type=datetime-local].input-group-addon,.pixel-caffeine-wrapper .input-group-lg>input[type=month].form-control,.pixel-caffeine-wrapper .input-group-lg>input[type=month].input-group-addon,.pixel-caffeine-wrapper input[type=date].input-lg,.pixel-caffeine-wrapper input[type=time].input-lg,.pixel-caffeine-wrapper input[type=datetime-local].input-lg,.pixel-caffeine-wrapper input[type=month].input-lg{line-height:44px}}.pixel-caffeine-wrapper .checkbox label,.pixel-caffeine-wrapper .radio label{min-height:22px}.pixel-caffeine-wrapper .form-control-static{padding-top:8px;padding-bottom:8px;min-height:36px}.pixel-caffeine-wrapper .input-group-sm>.form-control .input-group-sm>.form-control,.pixel-caffeine-wrapper .input-group-sm>.form-control .input-group-sm>.input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.form-control .input-group-sm>.input-group-btn>.btn,.pixel-caffeine-wrapper .input-group-sm>.form-control .input-sm,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon .input-group-sm>.form-control,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon .input-group-sm>.input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon .input-group-sm>.input-group-btn>.btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon .input-sm,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn .input-group-sm>.form-control,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn .input-group-sm>.input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn .input-group-sm>.input-group-btn>.btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn .input-sm,.pixel-caffeine-wrapper .input-sm .input-group-sm>.form-control,.pixel-caffeine-wrapper .input-sm .input-group-sm>.input-group-addon,.pixel-caffeine-wrapper .input-sm .input-group-sm>.input-group-btn>.btn,.pixel-caffeine-wrapper .input-sm .input-sm{height:24px;padding:3px 0;font-size:11px;line-height:1.5;border-radius:0}.pixel-caffeine-wrapper .input-group-sm>.form-control .input-group-sm>.input-group-btn>select.btn,.pixel-caffeine-wrapper .input-group-sm>.form-control .input-group-sm>select.form-control,.pixel-caffeine-wrapper .input-group-sm>.form-control .input-group-sm>select.input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.form-control select.input-sm,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon .input-group-sm>.input-group-btn>select.btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon .input-group-sm>select.form-control,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon .input-group-sm>select.input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon select.input-sm,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn .input-group-sm>.input-group-btn>select.btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn .input-group-sm>select.form-control,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn .input-group-sm>select.input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn select.input-sm,.pixel-caffeine-wrapper .input-sm .input-group-sm>.input-group-btn>select.btn,.pixel-caffeine-wrapper .input-sm .input-group-sm>select.form-control,.pixel-caffeine-wrapper .input-sm .input-group-sm>select.input-group-addon,.pixel-caffeine-wrapper .input-sm select.input-sm{height:24px;line-height:24px}.pixel-caffeine-wrapper .input-group-sm>.form-control .input-group-sm>.input-group-btn>select[multiple].btn,.pixel-caffeine-wrapper .input-group-sm>.form-control .input-group-sm>.input-group-btn>textarea.btn,.pixel-caffeine-wrapper .input-group-sm>.form-control .input-group-sm>select[multiple].form-control,.pixel-caffeine-wrapper .input-group-sm>.form-control .input-group-sm>select[multiple].input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.form-control .input-group-sm>textarea.form-control,.pixel-caffeine-wrapper .input-group-sm>.form-control .input-group-sm>textarea.input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.form-control select[multiple].input-sm,.pixel-caffeine-wrapper .input-group-sm>.form-control textarea.input-sm,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon .input-group-sm>.input-group-btn>select[multiple].btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon .input-group-sm>.input-group-btn>textarea.btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon .input-group-sm>select[multiple].form-control,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon .input-group-sm>select[multiple].input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon .input-group-sm>textarea.form-control,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon .input-group-sm>textarea.input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon select[multiple].input-sm,.pixel-caffeine-wrapper .input-group-sm>.input-group-addon textarea.input-sm,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn .input-group-sm>.input-group-btn>select[multiple].btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn .input-group-sm>.input-group-btn>textarea.btn,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn .input-group-sm>select[multiple].form-control,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn .input-group-sm>select[multiple].input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn .input-group-sm>textarea.form-control,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn .input-group-sm>textarea.input-group-addon,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn select[multiple].input-sm,.pixel-caffeine-wrapper .input-group-sm>.input-group-btn>.btn textarea.input-sm,.pixel-caffeine-wrapper .input-sm .input-group-sm>.input-group-btn>select[multiple].btn,.pixel-caffeine-wrapper .input-sm .input-group-sm>.input-group-btn>textarea.btn,.pixel-caffeine-wrapper .input-sm .input-group-sm>select[multiple].form-control,.pixel-caffeine-wrapper .input-sm .input-group-sm>select[multiple].input-group-addon,.pixel-caffeine-wrapper .input-sm .input-group-sm>textarea.form-control,.pixel-caffeine-wrapper .input-sm .input-group-sm>textarea.input-group-addon,.pixel-caffeine-wrapper .input-sm select[multiple].input-sm,.pixel-caffeine-wrapper .input-sm textarea.input-sm{height:auto}.pixel-caffeine-wrapper .form-group-sm .form-control{height:24px;padding:3px 0;font-size:11px;line-height:1.5}.pixel-caffeine-wrapper .form-group-sm select.form-control{height:24px;line-height:24px}.pixel-caffeine-wrapper .form-group-sm select[multiple].form-control,.pixel-caffeine-wrapper .form-group-sm textarea.form-control{height:auto}.pixel-caffeine-wrapper .form-group-sm .form-control-static{height:24px;min-height:33px;padding:4px 0;font-size:11px;line-height:1.5}.pixel-caffeine-wrapper .input-group-lg>.form-control .input-group-lg>.form-control,.pixel-caffeine-wrapper .input-group-lg>.form-control .input-group-lg>.input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.form-control .input-group-lg>.input-group-btn>.btn,.pixel-caffeine-wrapper .input-group-lg>.form-control .input-lg,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon .input-group-lg>.form-control,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon .input-group-lg>.input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon .input-group-lg>.input-group-btn>.btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon .input-lg,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn .input-group-lg>.form-control,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn .input-group-lg>.input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn .input-group-lg>.input-group-btn>.btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn .input-lg,.pixel-caffeine-wrapper .input-lg .input-group-lg>.form-control,.pixel-caffeine-wrapper .input-lg .input-group-lg>.input-group-addon,.pixel-caffeine-wrapper .input-lg .input-group-lg>.input-group-btn>.btn,.pixel-caffeine-wrapper .input-lg .input-lg{height:44px;padding:9px 0;font-size:18px;line-height:1.33333;border-radius:0}.pixel-caffeine-wrapper .input-group-lg>.form-control .input-group-lg>.input-group-btn>select.btn,.pixel-caffeine-wrapper .input-group-lg>.form-control .input-group-lg>select.form-control,.pixel-caffeine-wrapper .input-group-lg>.form-control .input-group-lg>select.input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.form-control select.input-lg,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon .input-group-lg>.input-group-btn>select.btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon .input-group-lg>select.form-control,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon .input-group-lg>select.input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon select.input-lg,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn .input-group-lg>.input-group-btn>select.btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn .input-group-lg>select.form-control,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn .input-group-lg>select.input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn select.input-lg,.pixel-caffeine-wrapper .input-lg .input-group-lg>.input-group-btn>select.btn,.pixel-caffeine-wrapper .input-lg .input-group-lg>select.form-control,.pixel-caffeine-wrapper .input-lg .input-group-lg>select.input-group-addon,.pixel-caffeine-wrapper .input-lg select.input-lg{height:44px;line-height:44px}.pixel-caffeine-wrapper .input-group-lg>.form-control .input-group-lg>.input-group-btn>select[multiple].btn,.pixel-caffeine-wrapper .input-group-lg>.form-control .input-group-lg>.input-group-btn>textarea.btn,.pixel-caffeine-wrapper .input-group-lg>.form-control .input-group-lg>select[multiple].form-control,.pixel-caffeine-wrapper .input-group-lg>.form-control .input-group-lg>select[multiple].input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.form-control .input-group-lg>textarea.form-control,.pixel-caffeine-wrapper .input-group-lg>.form-control .input-group-lg>textarea.input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.form-control select[multiple].input-lg,.pixel-caffeine-wrapper .input-group-lg>.form-control textarea.input-lg,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon .input-group-lg>.input-group-btn>select[multiple].btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon .input-group-lg>.input-group-btn>textarea.btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon .input-group-lg>select[multiple].form-control,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon .input-group-lg>select[multiple].input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon .input-group-lg>textarea.form-control,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon .input-group-lg>textarea.input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon select[multiple].input-lg,.pixel-caffeine-wrapper .input-group-lg>.input-group-addon textarea.input-lg,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn .input-group-lg>.input-group-btn>select[multiple].btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn .input-group-lg>.input-group-btn>textarea.btn,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn .input-group-lg>select[multiple].form-control,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn .input-group-lg>select[multiple].input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn .input-group-lg>textarea.form-control,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn .input-group-lg>textarea.input-group-addon,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn select[multiple].input-lg,.pixel-caffeine-wrapper .input-group-lg>.input-group-btn>.btn textarea.input-lg,.pixel-caffeine-wrapper .input-lg .input-group-lg>.input-group-btn>select[multiple].btn,.pixel-caffeine-wrapper .input-lg .input-group-lg>.input-group-btn>textarea.btn,.pixel-caffeine-wrapper .input-lg .input-group-lg>select[multiple].form-control,.pixel-caffeine-wrapper .input-lg .input-group-lg>select[multiple].input-group-addon,.pixel-caffeine-wrapper .input-lg .input-group-lg>textarea.form-control,.pixel-caffeine-wrapper .input-lg .input-group-lg>textarea.input-group-addon,.pixel-caffeine-wrapper .input-lg select[multiple].input-lg,.pixel-caffeine-wrapper .input-lg textarea.input-lg{height:auto}.pixel-caffeine-wrapper .form-group-lg .form-control{height:44px;padding:9px 0;line-height:1.33333}.pixel-caffeine-wrapper .form-group-lg select.form-control{height:44px;line-height:44px}.pixel-caffeine-wrapper .form-group-lg select[multiple].form-control,.pixel-caffeine-wrapper .form-group-lg textarea.form-control{height:auto}.pixel-caffeine-wrapper .form-group-lg .form-control-static{height:44px;min-height:40px;padding:10px 0;font-size:18px;line-height:1.33333}.pixel-caffeine-wrapper .form-horizontal .checkbox,.pixel-caffeine-wrapper .form-horizontal .checkbox-inline,.pixel-caffeine-wrapper .form-horizontal .radio,.pixel-caffeine-wrapper .form-horizontal .radio-inline{padding-top:8px}.pixel-caffeine-wrapper .form-horizontal .checkbox,.pixel-caffeine-wrapper .form-horizontal .radio{min-height:30px}@media (min-width:768px){.pixel-caffeine-wrapper .form-horizontal .control-label{padding-top:8px}.pixel-caffeine-wrapper .form-horizontal .form-group-lg .control-label{padding-top:13px;font-size:18px}.pixel-caffeine-wrapper .form-horizontal .form-group-sm .control-label{padding-top:4px;font-size:11px}}.pixel-caffeine-wrapper .label{border-radius:3px;padding:.3em .6em}.pixel-caffeine-wrapper .label,.pixel-caffeine-wrapper .label.label-default{background-color:#9e9e9e}.pixel-caffeine-wrapper .label.label-inverse{background-color:#3f51b5}.pixel-caffeine-wrapper .label.label-primary{background-color:#4C70BA}.pixel-caffeine-wrapper .label.label-success{background-color:#68AA20}.pixel-caffeine-wrapper .label.label-info{background-color:#5bc0de}.pixel-caffeine-wrapper .label.label-warning{background-color:#FD9C00}.pixel-caffeine-wrapper .label.label-danger{background-color:#E15667}.pixel-caffeine-wrapper .form-control,.pixel-caffeine-wrapper .form-group .form-control{border:0;background-image:linear-gradient(#4C70BA,#4C70BA),linear-gradient(#D2D2D2,#D2D2D2);background-size:0 2px,100% 1px;background-repeat:no-repeat;background-position:center bottom,center calc(100% - 1px);transition:background 0s ease-out;float:none;box-shadow:none;border-radius:0}.pixel-caffeine-wrapper .form-control::-moz-placeholder,.pixel-caffeine-wrapper .form-group .form-control::-moz-placeholder{color:#BDBDBD}.pixel-caffeine-wrapper .form-control:-ms-input-placeholder,.pixel-caffeine-wrapper .form-group .form-control:-ms-input-placeholder{color:#BDBDBD}.pixel-caffeine-wrapper .form-control::-webkit-input-placeholder,.pixel-caffeine-wrapper .form-group .form-control::-webkit-input-placeholder{color:#BDBDBD}.pixel-caffeine-wrapper .form-control[disabled],.pixel-caffeine-wrapper .form-control[readonly],.pixel-caffeine-wrapper .form-group .form-control[disabled],.pixel-caffeine-wrapper .form-group .form-control[readonly],fieldset[disabled] .pixel-caffeine-wrapper .form-control,fieldset[disabled] .pixel-caffeine-wrapper .form-group .form-control{background-color:transparent}.pixel-caffeine-wrapper .form-control[disabled],.pixel-caffeine-wrapper .form-group .form-control[disabled],fieldset[disabled] .pixel-caffeine-wrapper .form-control,fieldset[disabled] .pixel-caffeine-wrapper .form-group .form-control{background-image:none;border-bottom:1px dotted #D2D2D2}.pixel-caffeine-wrapper .form-group{position:relative}.pixel-caffeine-wrapper .form-group.label-floating label.control-label,.pixel-caffeine-wrapper .form-group.label-placeholder label.control-label,.pixel-caffeine-wrapper .form-group.label-static label.control-label{position:absolute;pointer-events:none;transition:.3s ease all}.pixel-caffeine-wrapper .form-group.label-floating label.control-label{will-change:left,top,contents}.pixel-caffeine-wrapper .form-group.label-placeholder:not(.is-empty) label.control-label{display:none}.pixel-caffeine-wrapper .form-group.is-focused .form-control{outline:0;background-image:linear-gradient(#4C70BA,#4C70BA),linear-gradient(#D2D2D2,#D2D2D2);background-size:100% 2px,100% 1px;box-shadow:none;transition-duration:.3s}.pixel-caffeine-wrapper .form-group.is-focused .form-control .material-input:after{background-color:#4C70BA}.pixel-caffeine-wrapper .form-group.is-focused label,.pixel-caffeine-wrapper .form-group.is-focused label.control-label{color:#4C70BA}.pixel-caffeine-wrapper .form-group.is-focused.label-placeholder label,.pixel-caffeine-wrapper .form-group.is-focused.label-placeholder label.control-label{color:#BDBDBD}.pixel-caffeine-wrapper .form-group.is-focused .help-block{display:block}.pixel-caffeine-wrapper .form-group.has-warning .form-control{box-shadow:none}.pixel-caffeine-wrapper .form-group.has-warning.is-focused .form-control{background-image:linear-gradient(#FD9C00,#FD9C00),linear-gradient(#D2D2D2,#D2D2D2)}.pixel-caffeine-wrapper .form-group.has-warning .help-block,.pixel-caffeine-wrapper .form-group.has-warning label.control-label{color:#FD9C00}.pixel-caffeine-wrapper .form-group.has-error .form-control{box-shadow:none}.pixel-caffeine-wrapper .form-group.has-error.is-focused .form-control{background-image:linear-gradient(#E15667,#E15667),linear-gradient(#D2D2D2,#D2D2D2)}.pixel-caffeine-wrapper .form-group.has-error .help-block,.pixel-caffeine-wrapper .form-group.has-error label.control-label{color:#E15667}.pixel-caffeine-wrapper .form-group.has-success .form-control{box-shadow:none}.pixel-caffeine-wrapper .form-group.has-success.is-focused .form-control{background-image:linear-gradient(#68AA20,#68AA20),linear-gradient(#D2D2D2,#D2D2D2)}.pixel-caffeine-wrapper .form-group.has-success .help-block,.pixel-caffeine-wrapper .form-group.has-success label.control-label{color:#68AA20}.pixel-caffeine-wrapper .form-group.has-info .form-control{box-shadow:none}.pixel-caffeine-wrapper .form-group.has-info.is-focused .form-control{background-image:linear-gradient(#5bc0de,#5bc0de),linear-gradient(#D2D2D2,#D2D2D2)}.pixel-caffeine-wrapper .form-group.has-info .help-block,.pixel-caffeine-wrapper .form-group.has-info label.control-label{color:#5bc0de}.pixel-caffeine-wrapper .form-group textarea{resize:none}.pixel-caffeine-wrapper .form-group textarea~.form-control-highlight{margin-top:-11px}.pixel-caffeine-wrapper .form-group select{appearance:none}.pixel-caffeine-wrapper .form-group select~.material-input:after{display:none}.pixel-caffeine-wrapper .form-control::-moz-placeholder{font-size:14px;line-height:1.42857;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .form-control:-ms-input-placeholder{font-size:14px;line-height:1.42857;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .form-control::-webkit-input-placeholder{font-size:14px;line-height:1.42857;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .checkbox label,.pixel-caffeine-wrapper .radio label,.pixel-caffeine-wrapper label{font-size:14px;line-height:1.42857;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper label.control-label{font-size:11px;line-height:1.07143;font-weight:400;margin:16px 0 0}.pixel-caffeine-wrapper .help-block{margin-top:0;font-size:11px}.pixel-caffeine-wrapper .form-group{margin:27px 0 0}.pixel-caffeine-wrapper .form-group .form-control{margin-bottom:7px}.pixel-caffeine-wrapper .form-group .form-control::-moz-placeholder{font-size:14px;line-height:1.42857;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .form-group .form-control:-ms-input-placeholder{font-size:14px;line-height:1.42857;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .form-group .form-control::-webkit-input-placeholder{font-size:14px;line-height:1.42857;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .form-group .checkbox label,.pixel-caffeine-wrapper .form-group .radio label,.pixel-caffeine-wrapper .form-group label{font-size:14px;line-height:1.42857;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .form-group label.control-label{line-height:1.07143;font-weight:400;margin:16px 0 0}.pixel-caffeine-wrapper .form-group .help-block{margin-top:0;font-size:11px}.pixel-caffeine-wrapper .form-group.label-floating label.control-label,.pixel-caffeine-wrapper .form-group.label-placeholder label.control-label{top:-7px;font-size:14px;line-height:1.42857}.pixel-caffeine-wrapper .form-group.label-floating.is-focused label.control-label,.pixel-caffeine-wrapper .form-group.label-floating:not(.is-empty) label.control-label,.pixel-caffeine-wrapper .form-group.label-static label.control-label{top:-28px;left:0;font-size:11px;line-height:1.07143}.pixel-caffeine-wrapper .form-group.label-floating input.form-control:-webkit-autofill~label.control-label label.control-label{top:-28px;left:0;font-size:11px;line-height:1.07143}.pixel-caffeine-wrapper .form-group.form-group-sm{padding-bottom:3px;margin:21px 0 0}.pixel-caffeine-wrapper .form-group.form-group-sm .form-control{margin-bottom:3px}.pixel-caffeine-wrapper .form-group.form-group-sm .form-control::-moz-placeholder{font-size:11px;line-height:1.5;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .form-group.form-group-sm .form-control:-ms-input-placeholder{font-size:11px;line-height:1.5;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .form-group.form-group-sm .form-control::-webkit-input-placeholder{font-size:11px;line-height:1.5;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .form-group.form-group-sm .checkbox label,.pixel-caffeine-wrapper .form-group.form-group-sm .radio label,.pixel-caffeine-wrapper .form-group.form-group-sm label{font-size:11px;line-height:1.5;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .form-group.form-group-sm label.control-label{font-size:9px;line-height:1.125;font-weight:400;margin:16px 0 0}.pixel-caffeine-wrapper .form-group.form-group-sm .help-block{margin-top:0;font-size:9px}.pixel-caffeine-wrapper .form-group.form-group-sm.label-floating label.control-label,.pixel-caffeine-wrapper .form-group.form-group-sm.label-placeholder label.control-label{top:-11px;font-size:11px;line-height:1.5}.pixel-caffeine-wrapper .form-group.form-group-sm.label-floating.is-focused label.control-label,.pixel-caffeine-wrapper .form-group.form-group-sm.label-floating:not(.is-empty) label.control-label,.pixel-caffeine-wrapper .form-group.form-group-sm.label-static label.control-label{top:-25px;left:0;font-size:9px;line-height:1.125}.pixel-caffeine-wrapper .form-group.form-group-sm.label-floating input.form-control:-webkit-autofill~label.control-label label.control-label{top:-25px;left:0;font-size:9px;line-height:1.125}.pixel-caffeine-wrapper .form-group.form-group-lg{padding-bottom:9px;margin:30px 0 0}.pixel-caffeine-wrapper .form-group.form-group-lg .form-control{margin-bottom:9px}.pixel-caffeine-wrapper .form-group.form-group-lg .form-control::-moz-placeholder{font-size:18px;line-height:1.33333;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .form-group.form-group-lg .form-control:-ms-input-placeholder{font-size:18px;line-height:1.33333;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .form-group.form-group-lg .form-control::-webkit-input-placeholder{font-size:18px;line-height:1.33333;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .form-group.form-group-lg .checkbox label,.pixel-caffeine-wrapper .form-group.form-group-lg .radio label,.pixel-caffeine-wrapper .form-group.form-group-lg label{font-size:18px;line-height:1.33333;color:#BDBDBD;font-weight:400}.pixel-caffeine-wrapper .form-group.form-group-lg label.control-label{font-size:14px;line-height:1;font-weight:400;margin:16px 0 0}.pixel-caffeine-wrapper .form-group.form-group-lg .help-block{margin-top:0;font-size:14px}.pixel-caffeine-wrapper .form-group.form-group-lg.label-floating label.control-label,.pixel-caffeine-wrapper .form-group.form-group-lg.label-placeholder label.control-label{top:-5px;font-size:18px;line-height:1.33333}.pixel-caffeine-wrapper .form-group.form-group-lg.label-floating.is-focused label.control-label,.pixel-caffeine-wrapper .form-group.form-group-lg.label-floating:not(.is-empty) label.control-label,.pixel-caffeine-wrapper .form-group.form-group-lg.label-static label.control-label{top:-32px;left:0;font-size:14px;line-height:1}.pixel-caffeine-wrapper .form-group.form-group-lg.label-floating input.form-control:-webkit-autofill~label.control-label label.control-label{top:-32px;left:0;font-size:14px;line-height:1}.pixel-caffeine-wrapper select.form-control{border:0;box-shadow:none;border-radius:0}.form-group.is-focused .pixel-caffeine-wrapper select.form-control{box-shadow:none;border-color:#D2D2D2}.form-group.is-focused .pixel-caffeine-wrapper select.form-control[multiple],.pixel-caffeine-wrapper select.form-control[multiple]{height:85px}.pixel-caffeine-wrapper .input-group-btn .btn{margin:0 0 7px}.pixel-caffeine-wrapper .form-group.form-group-sm .input-group-btn .btn{margin:0 0 3px}.pixel-caffeine-wrapper .form-group.form-group-lg .input-group-btn .btn{margin:0 0 9px}.pixel-caffeine-wrapper .input-group .input-group-btn{padding:0 12px}.pixel-caffeine-wrapper .input-group .input-group-addon{border:0;background:0 0}.pixel-caffeine-wrapper .form-group input[type=file]{opacity:0;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}.pixel-caffeine-wrapper legend{border-bottom:0}.pixel-caffeine-wrapper .list-group{border-radius:0}.pixel-caffeine-wrapper .list-group .list-group-item{background-color:transparent;overflow:hidden;border:0;border-radius:0}.pixel-caffeine-wrapper .list-group .list-group-item.baseline{border-bottom:1px solid #cecece}.pixel-caffeine-wrapper .list-group .list-group-item.baseline:last-child{border-bottom:none}.pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary,.pixel-caffeine-wrapper .list-group .list-group-item .row-picture{display:inline-block;padding-right:16px}.pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary i,.pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary img,.pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary label,.pixel-caffeine-wrapper .list-group .list-group-item .row-picture i,.pixel-caffeine-wrapper .list-group .list-group-item .row-picture img,.pixel-caffeine-wrapper .list-group .list-group-item .row-picture label{display:block;width:56px;height:56px}.pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary img,.pixel-caffeine-wrapper .list-group .list-group-item .row-picture img{background:rgba(0,0,0,.1);padding:1px}.pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary img.circle,.pixel-caffeine-wrapper .list-group .list-group-item .row-picture img.circle{border-radius:100%}.pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary i,.pixel-caffeine-wrapper .list-group .list-group-item .row-picture i{background:rgba(0,0,0,.25);border-radius:100%;text-align:center;line-height:56px;font-size:20px;color:#fff}.pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary label,.pixel-caffeine-wrapper .list-group .list-group-item .row-picture label{margin:5px -7px -5px 7px}.pixel-caffeine-wrapper .list-group .list-group-item .row-action-primary label .checkbox-material,.pixel-caffeine-wrapper .list-group .list-group-item .row-picture label .checkbox-material{left:-10px}.pixel-caffeine-wrapper .list-group .list-group-item .row-content{display:inline-block}.pixel-caffeine-wrapper .list-group .list-group-item .row-content .action-secondary{position:absolute;right:16px;top:16px}.pixel-caffeine-wrapper .list-group .list-group-item .row-content .action-secondary i{font-size:20px;color:rgba(0,0,0,.25);cursor:pointer}.pixel-caffeine-wrapper .list-group .list-group-item .row-content .action-secondary~*{max-width:calc(100% - 30px)}.pixel-caffeine-wrapper .list-group .list-group-item .row-content .least-content{position:absolute;right:16px;top:0;color:rgba(0,0,0,.54);font-size:14px}.pixel-caffeine-wrapper .list-group .list-group-item .list-group-item-heading{color:rgba(0,0,0,.77)}.pixel-caffeine-wrapper .list-group .list-group-item.active:focus,.pixel-caffeine-wrapper .list-group .list-group-item.active:hover{background:rgba(0,0,0,.15);outline:rgba(0,0,0,.15) solid 10px}.pixel-caffeine-wrapper .list-group .list-group-item.active .list-group-item-heading,.pixel-caffeine-wrapper .list-group .list-group-item.active .list-group-item-text{color:rgba(0,0,0,.87)}.pixel-caffeine-wrapper .list-group .list-group-separator{overflow:hidden;margin-top:10px;margin-bottom:10px}.pixel-caffeine-wrapper .list-group .list-group-separator:before{content:"";width:calc(100% - 90px);border-bottom:1px solid rgba(0,0,0,.1);float:right}.pixel-caffeine-wrapper .navbar{border:0;border-radius:0}.pixel-caffeine-wrapper .navbar .navbar-brand{position:relative;height:60px;line-height:30px;color:inherit}.pixel-caffeine-wrapper .navbar .navbar-brand:focus,.pixel-caffeine-wrapper .navbar .navbar-brand:hover{color:inherit;background-color:transparent}.pixel-caffeine-wrapper .navbar .navbar-text{color:inherit;margin-top:20px;margin-bottom:20px}.pixel-caffeine-wrapper .navbar .navbar-nav>li>a{color:inherit;padding-top:20px;padding-bottom:20px}.pixel-caffeine-wrapper .navbar .navbar-nav>li>a:focus,.pixel-caffeine-wrapper .navbar .navbar-nav>li>a:hover{color:inherit;background-color:transparent}.pixel-caffeine-wrapper .navbar .navbar-nav>.active>a,.pixel-caffeine-wrapper .navbar .navbar-nav>.active>a:focus,.pixel-caffeine-wrapper .navbar .navbar-nav>.active>a:hover{color:inherit;background-color:rgba(255,255,255,.1)}.pixel-caffeine-wrapper .navbar .navbar-nav>.disabled>a,.pixel-caffeine-wrapper .navbar .navbar-nav>.disabled>a:focus,.pixel-caffeine-wrapper .navbar .navbar-nav>.disabled>a:hover{color:inherit;background-color:transparent;opacity:.9}.pixel-caffeine-wrapper .navbar .navbar-toggle{border:0}.pixel-caffeine-wrapper .navbar .navbar-toggle:focus,.pixel-caffeine-wrapper .navbar .navbar-toggle:hover{background-color:transparent}.pixel-caffeine-wrapper .navbar .navbar-toggle .icon-bar{background-color:inherit;border:1px solid}.pixel-caffeine-wrapper .navbar .navbar-default .navbar-toggle,.pixel-caffeine-wrapper .navbar .navbar-inverse .navbar-toggle{border-color:transparent}.pixel-caffeine-wrapper .navbar .navbar-collapse,.pixel-caffeine-wrapper .navbar .navbar-form{border-color:rgba(0,0,0,.1)}.pixel-caffeine-wrapper .navbar .navbar-nav>.open>a,.pixel-caffeine-wrapper .navbar .navbar-nav>.open>a:focus,.pixel-caffeine-wrapper .navbar .navbar-nav>.open>a:hover{background-color:transparent;color:inherit}@media (max-width:767px){.pixel-caffeine-wrapper .navbar .navbar-nav .navbar-text{color:inherit;margin-top:15px;margin-bottom:15px}.pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu>.dropdown-header{border:0;color:inherit}.pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu .divider{border-bottom:1px solid;opacity:.08}.pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu>li>a{color:inherit}.pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu>.active>a,.pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu>.active>a:hover,.pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu>.disabled>a,.pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu>.disabled>a:focus,.pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu>.disabled>a:hover,.pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu>li>a:focus,.pixel-caffeine-wrapper .navbar .navbar-nav .open .dropdown-menu>li>a:hover{color:inherit;background-color:transparent}}.pixel-caffeine-wrapper .navbar .dropdown-menu,.pixel-caffeine-wrapper .navbar.navbar-danger .dropdown-menu,.pixel-caffeine-wrapper .navbar.navbar-default .dropdown-menu,.pixel-caffeine-wrapper .navbar.navbar-info .dropdown-menu,.pixel-caffeine-wrapper .navbar.navbar-inverse .dropdown-menu,.pixel-caffeine-wrapper .navbar.navbar-primary .dropdown-menu,.pixel-caffeine-wrapper .navbar.navbar-success .dropdown-menu,.pixel-caffeine-wrapper .navbar.navbar-warning .dropdown-menu{border-radius:4px}.pixel-caffeine-wrapper .navbar .btn-link,.pixel-caffeine-wrapper .navbar .btn-link:focus,.pixel-caffeine-wrapper .navbar .btn-link:hover,.pixel-caffeine-wrapper .navbar .btn-link[disabled]:focus,.pixel-caffeine-wrapper .navbar .btn-link[disabled]:hover,.pixel-caffeine-wrapper .navbar .navbar-link,.pixel-caffeine-wrapper .navbar .navbar-link:hover,fieldset[disabled] .pixel-caffeine-wrapper .navbar .btn-link:focus,fieldset[disabled] .pixel-caffeine-wrapper .navbar .btn-link:hover{color:inherit}.pixel-caffeine-wrapper .navbar .navbar-form{margin-top:16px}.pixel-caffeine-wrapper .navbar .navbar-form .form-group{margin:0;padding:0}.pixel-caffeine-wrapper .navbar .navbar-form .form-group .material-input:before,.pixel-caffeine-wrapper .navbar .navbar-form .form-group.is-focused .material-input:after{background-color:inherit}.pixel-caffeine-wrapper .navbar .navbar-form .form-control,.pixel-caffeine-wrapper .navbar .navbar-form .form-group .form-control{border-color:inherit;color:inherit;padding:0;margin:0;height:28px;font-size:14px;line-height:1.42857}.pixel-caffeine-wrapper .navbar .dropdown-menu li>a,.pixel-caffeine-wrapper .navbar.navbar-danger .dropdown-menu li>a,.pixel-caffeine-wrapper .navbar.navbar-default .dropdown-menu li>a,.pixel-caffeine-wrapper .navbar.navbar-info .dropdown-menu li>a,.pixel-caffeine-wrapper .navbar.navbar-inverse .dropdown-menu li>a,.pixel-caffeine-wrapper .navbar.navbar-primary .dropdown-menu li>a,.pixel-caffeine-wrapper .navbar.navbar-success .dropdown-menu li>a,.pixel-caffeine-wrapper .navbar.navbar-warning .dropdown-menu li>a{font-size:16px;padding:13px 16px}.pixel-caffeine-wrapper .navbar,.pixel-caffeine-wrapper .navbar.navbar-default{background-color:#4C70BA;color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar .navbar-form .form-group input.form-control::-moz-placeholder,.pixel-caffeine-wrapper .navbar .navbar-form input.form-control::-moz-placeholder,.pixel-caffeine-wrapper .navbar.navbar-default .navbar-form .form-group input.form-control::-moz-placeholder,.pixel-caffeine-wrapper .navbar.navbar-default .navbar-form input.form-control::-moz-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar .navbar-form .form-group input.form-control:-ms-input-placeholder,.pixel-caffeine-wrapper .navbar .navbar-form input.form-control:-ms-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-default .navbar-form .form-group input.form-control:-ms-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-default .navbar-form input.form-control:-ms-input-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar .navbar-form .form-group input.form-control::-webkit-input-placeholder,.pixel-caffeine-wrapper .navbar .navbar-form input.form-control::-webkit-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-default .navbar-form .form-group input.form-control::-webkit-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-default .navbar-form input.form-control::-webkit-input-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar .dropdown-menu li>a:focus,.pixel-caffeine-wrapper .navbar .dropdown-menu li>a:hover,.pixel-caffeine-wrapper .navbar.navbar-default .dropdown-menu li>a:focus,.pixel-caffeine-wrapper .navbar.navbar-default .dropdown-menu li>a:hover{color:#4C70BA;background-color:#eee}.pixel-caffeine-wrapper .navbar .dropdown-menu .active>a,.pixel-caffeine-wrapper .navbar.navbar-default .dropdown-menu .active>a{background-color:#4C70BA;color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar .dropdown-menu .active>a:focus,.pixel-caffeine-wrapper .navbar .dropdown-menu .active>a:hover,.pixel-caffeine-wrapper .navbar.navbar-default .dropdown-menu .active>a:focus,.pixel-caffeine-wrapper .navbar.navbar-default .dropdown-menu .active>a:hover{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-inverse{background-color:#3f51b5;color:#fff}.pixel-caffeine-wrapper .navbar.navbar-inverse .navbar-form .form-group input.form-control::-moz-placeholder,.pixel-caffeine-wrapper .navbar.navbar-inverse .navbar-form input.form-control::-moz-placeholder{color:#fff}.pixel-caffeine-wrapper .navbar.navbar-inverse .navbar-form .form-group input.form-control:-ms-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-inverse .navbar-form input.form-control:-ms-input-placeholder{color:#fff}.pixel-caffeine-wrapper .navbar.navbar-inverse .navbar-form .form-group input.form-control::-webkit-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-inverse .navbar-form input.form-control::-webkit-input-placeholder{color:#fff}.pixel-caffeine-wrapper .navbar.navbar-inverse .dropdown-menu li>a:focus,.pixel-caffeine-wrapper .navbar.navbar-inverse .dropdown-menu li>a:hover{color:#3f51b5;background-color:#eee}.pixel-caffeine-wrapper .navbar.navbar-inverse .dropdown-menu .active>a{background-color:#3f51b5;color:#fff}.pixel-caffeine-wrapper .navbar.navbar-inverse .dropdown-menu .active>a:focus,.pixel-caffeine-wrapper .navbar.navbar-inverse .dropdown-menu .active>a:hover{color:#fff}.pixel-caffeine-wrapper .navbar.navbar-primary{background-color:#4C70BA;color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-primary .navbar-form .form-group input.form-control::-moz-placeholder,.pixel-caffeine-wrapper .navbar.navbar-primary .navbar-form input.form-control::-moz-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-primary .navbar-form .form-group input.form-control:-ms-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-primary .navbar-form input.form-control:-ms-input-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-primary .navbar-form .form-group input.form-control::-webkit-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-primary .navbar-form input.form-control::-webkit-input-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-primary .dropdown-menu li>a:focus,.pixel-caffeine-wrapper .navbar.navbar-primary .dropdown-menu li>a:hover{color:#4C70BA;background-color:#eee}.pixel-caffeine-wrapper .navbar.navbar-primary .dropdown-menu .active>a{background-color:#4C70BA;color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-primary .dropdown-menu .active>a:focus,.pixel-caffeine-wrapper .navbar.navbar-primary .dropdown-menu .active>a:hover{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-success{background-color:#68AA20;color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-success .navbar-form .form-group input.form-control::-moz-placeholder,.pixel-caffeine-wrapper .navbar.navbar-success .navbar-form input.form-control::-moz-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-success .navbar-form .form-group input.form-control:-ms-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-success .navbar-form input.form-control:-ms-input-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-success .navbar-form .form-group input.form-control::-webkit-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-success .navbar-form input.form-control::-webkit-input-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-success .dropdown-menu li>a:focus,.pixel-caffeine-wrapper .navbar.navbar-success .dropdown-menu li>a:hover{color:#68AA20;background-color:#eee}.pixel-caffeine-wrapper .navbar.navbar-success .dropdown-menu .active>a{background-color:#68AA20;color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-success .dropdown-menu .active>a:focus,.pixel-caffeine-wrapper .navbar.navbar-success .dropdown-menu .active>a:hover{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-info{background-color:#5bc0de;color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-info .navbar-form .form-group input.form-control::-moz-placeholder,.pixel-caffeine-wrapper .navbar.navbar-info .navbar-form input.form-control::-moz-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-info .navbar-form .form-group input.form-control:-ms-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-info .navbar-form input.form-control:-ms-input-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-info .navbar-form .form-group input.form-control::-webkit-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-info .navbar-form input.form-control::-webkit-input-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-info .dropdown-menu li>a:focus,.pixel-caffeine-wrapper .navbar.navbar-info .dropdown-menu li>a:hover{color:#5bc0de;background-color:#eee}.pixel-caffeine-wrapper .navbar.navbar-info .dropdown-menu .active>a{background-color:#5bc0de;color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-info .dropdown-menu .active>a:focus,.pixel-caffeine-wrapper .navbar.navbar-info .dropdown-menu .active>a:hover{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-warning{background-color:#FD9C00;color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-warning .navbar-form .form-group input.form-control::-moz-placeholder,.pixel-caffeine-wrapper .navbar.navbar-warning .navbar-form input.form-control::-moz-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-warning .navbar-form .form-group input.form-control:-ms-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-warning .navbar-form input.form-control:-ms-input-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-warning .navbar-form .form-group input.form-control::-webkit-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-warning .navbar-form input.form-control::-webkit-input-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-warning .dropdown-menu li>a:focus,.pixel-caffeine-wrapper .navbar.navbar-warning .dropdown-menu li>a:hover{color:#FD9C00;background-color:#eee}.pixel-caffeine-wrapper .navbar.navbar-warning .dropdown-menu .active>a{background-color:#FD9C00;color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-warning .dropdown-menu .active>a:focus,.pixel-caffeine-wrapper .navbar.navbar-warning .dropdown-menu .active>a:hover{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-danger{background-color:#E15667;color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-danger .navbar-form .form-group input.form-control::-moz-placeholder,.pixel-caffeine-wrapper .navbar.navbar-danger .navbar-form input.form-control::-moz-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-danger .navbar-form .form-group input.form-control:-ms-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-danger .navbar-form input.form-control:-ms-input-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-danger .navbar-form .form-group input.form-control::-webkit-input-placeholder,.pixel-caffeine-wrapper .navbar.navbar-danger .navbar-form input.form-control::-webkit-input-placeholder{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-danger .dropdown-menu li>a:focus,.pixel-caffeine-wrapper .navbar.navbar-danger .dropdown-menu li>a:hover{color:#E15667;background-color:#eee}.pixel-caffeine-wrapper .navbar.navbar-danger .dropdown-menu .active>a{background-color:#E15667;color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar.navbar-danger .dropdown-menu .active>a:focus,.pixel-caffeine-wrapper .navbar.navbar-danger .dropdown-menu .active>a:hover{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .navbar-inverse{background-color:#3f51b5}@media (max-width:1199px){.pixel-caffeine-wrapper .navbar .navbar-brand{height:50px;padding:10px 15px}.pixel-caffeine-wrapper .navbar .navbar-form{margin-top:10px}.pixel-caffeine-wrapper .navbar .navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.pixel-caffeine-wrapper .dropdown-menu{border:0;box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.pixel-caffeine-wrapper .dropdown-menu .divider{background-color:rgba(0,0,0,.12)}.pixel-caffeine-wrapper .dropdown-menu li{overflow:hidden;position:relative}.pixel-caffeine-wrapper .dropdown-menu li a:hover{background-color:transparent;color:#4C70BA}.pixel-caffeine-wrapper .alert{border:0;border-radius:0}.pixel-caffeine-wrapper .alert,.pixel-caffeine-wrapper .alert.alert-default{background-color:rgba(255,255,255,.84);color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .alert .alert-link,.pixel-caffeine-wrapper .alert a,.pixel-caffeine-wrapper .alert.alert-default .alert-link,.pixel-caffeine-wrapper .alert.alert-default a{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .alert.alert-inverse{background-color:#3f51b5;color:#fff}.pixel-caffeine-wrapper .alert.alert-inverse .alert-link,.pixel-caffeine-wrapper .alert.alert-inverse a{color:#fff}.pixel-caffeine-wrapper .alert-danger,.pixel-caffeine-wrapper .alert-info,.pixel-caffeine-wrapper .alert-success,.pixel-caffeine-wrapper .alert-warning,.pixel-caffeine-wrapper .alert.alert-danger,.pixel-caffeine-wrapper .alert.alert-danger .alert-link,.pixel-caffeine-wrapper .alert.alert-danger a,.pixel-caffeine-wrapper .alert.alert-info,.pixel-caffeine-wrapper .alert.alert-info .alert-link,.pixel-caffeine-wrapper .alert.alert-info a,.pixel-caffeine-wrapper .alert.alert-primary .alert-link,.pixel-caffeine-wrapper .alert.alert-primary a,.pixel-caffeine-wrapper .alert.alert-success,.pixel-caffeine-wrapper .alert.alert-success .alert-link,.pixel-caffeine-wrapper .alert.alert-success a{color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .alert.alert-primary{background-color:#4C70BA;color:rgba(255,255,255,.84)}.pixel-caffeine-wrapper .alert.alert-success{background-color:#68AA20}.pixel-caffeine-wrapper .alert.alert-info{background-color:#5bc0de}.pixel-caffeine-wrapper .alert.alert-warning{background-color:#FD9C00}.pixel-caffeine-wrapper .alert.alert-danger{background-color:#E15667}.pixel-caffeine-wrapper .alert-default .alert-link,.pixel-caffeine-wrapper .alert-default a{color:rgba(0,0,0,.87)}.pixel-caffeine-wrapper .progress{height:4px;border-radius:0;box-shadow:none;background:#c8c8c8}.pixel-caffeine-wrapper .progress .progress-bar{box-shadow:none}.pixel-caffeine-wrapper .progress .progress-bar,.pixel-caffeine-wrapper .progress .progress-bar.progress-bar-default{background-color:#4C70BA}.pixel-caffeine-wrapper .progress .progress-bar.progress-bar-inverse{background-color:#3f51b5}.pixel-caffeine-wrapper .progress .progress-bar.progress-bar-primary{background-color:#4C70BA}.pixel-caffeine-wrapper .progress .progress-bar.progress-bar-success{background-color:#68AA20}.pixel-caffeine-wrapper .progress .progress-bar.progress-bar-info{background-color:#5bc0de}.pixel-caffeine-wrapper .progress .progress-bar.progress-bar-warning{background-color:#FD9C00}.pixel-caffeine-wrapper .progress .progress-bar.progress-bar-danger{background-color:#E15667}.pixel-caffeine-wrapper .text-warning{color:#FD9C00}.pixel-caffeine-wrapper .text-primary{color:#4C70BA}.pixel-caffeine-wrapper .text-danger{color:#E15667}.pixel-caffeine-wrapper .text-success{color:#68AA20}.pixel-caffeine-wrapper .text-info{color:#5bc0de}.pixel-caffeine-wrapper .nav-tabs{background:#4C70BA}.pixel-caffeine-wrapper .nav-tabs>li>a{margin:0}.pixel-caffeine-wrapper .nav-tabs>li>a,.pixel-caffeine-wrapper .nav-tabs>li>a:focus,.pixel-caffeine-wrapper .nav-tabs>li>a:hover{background-color:transparent!important;border:0!important;color:#FFF!important;font-weight:500}.pixel-caffeine-wrapper .nav-tabs>li.disabled>a,.pixel-caffeine-wrapper .nav-tabs>li.disabled>a:hover{color:rgba(255,255,255,.5)}.pixel-caffeine-wrapper .popover,.pixel-caffeine-wrapper .tooltip-inner{color:#ececec;line-height:1em;background:rgba(101,101,101,.9);border:none;border-radius:4px;box-shadow:0 1px 6px 0 rgba(0,0,0,.12),0 1px 6px 0 rgba(0,0,0,.12)}.pixel-caffeine-wrapper .tooltip,.pixel-caffeine-wrapper .tooltip.in{opacity:1}.pixel-caffeine-wrapper .popover .arrow,.pixel-caffeine-wrapper .popover .tooltip-arrow,.pixel-caffeine-wrapper .tooltip .arrow,.pixel-caffeine-wrapper .tooltip .tooltip-arrow{display:none}.pixel-caffeine-wrapper .card{display:inline-block;position:relative;width:100%;border-radius:4px;color:rgba(0,0,0,.87);background:#fff;box-shadow:0 8px 17px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19)}.pixel-caffeine-wrapper .card .card-height-indicator{margin-top:100%}.pixel-caffeine-wrapper .card .card-content{position:absolute;top:0;bottom:0;left:0;right:0}.pixel-caffeine-wrapper .card .card-image{height:60%;position:relative;overflow:hidden}.pixel-caffeine-wrapper .card .card-image img{width:100%;height:100%;border-top-left-radius:2px;border-top-right-radius:2px;pointer-events:none}.pixel-caffeine-wrapper .card .card-image .card-image-headline{position:absolute;bottom:16px;left:18px;color:#fff;font-size:2em}.pixel-caffeine-wrapper .card .card-body{height:30%;padding:18px}.pixel-caffeine-wrapper .card .card-footer{height:10%;padding:18px}.pixel-caffeine-wrapper .card .card-footer a,.pixel-caffeine-wrapper .card .card-footer button{margin:0!important;position:relative;bottom:25px;width:auto}.pixel-caffeine-wrapper .card .card-footer a:first-child,.pixel-caffeine-wrapper .card .card-footer button:first-child{left:-15px}.pixel-caffeine-wrapper .modal-content{box-shadow:0 27px 24px 0 rgba(0,0,0,.2),0 40px 77px 0 rgba(0,0,0,.22);border-radius:4px;border:none}.pixel-caffeine-wrapper .panel,.pixel-caffeine-wrapper .snackbar{box-shadow:0 1px 6px 0 rgba(0,0,0,.12),0 1px 6px 0 rgba(0,0,0,.12)}.pixel-caffeine-wrapper .modal-content .modal-header{border-bottom:none;padding:24px 24px 0}.pixel-caffeine-wrapper .modal-content .modal-body{padding:24px 24px 16px}.pixel-caffeine-wrapper .modal-content .modal-footer{border-top:none;padding:7px}.pixel-caffeine-wrapper .modal-content .modal-footer button{margin:0;padding-left:16px;padding-right:16px;width:auto}.pixel-caffeine-wrapper .modal-content .modal-footer button.pull-left{padding-left:5px;padding-right:5px;position:relative;left:-5px}.pixel-caffeine-wrapper .modal-content .modal-footer button+button{margin-bottom:16px}.pixel-caffeine-wrapper .modal-content .modal-body+.modal-footer{padding-top:0}.pixel-caffeine-wrapper .modal-backdrop{background:rgba(0,0,0,.3)}.pixel-caffeine-wrapper .panel{border-radius:2px;border:0}.pixel-caffeine-wrapper .panel.panel-default>.panel-heading,.pixel-caffeine-wrapper .panel>.panel-heading{background-color:#eee}.pixel-caffeine-wrapper .panel.panel-inverse>.panel-heading{background-color:#3f51b5}.pixel-caffeine-wrapper .panel.panel-primary>.panel-heading{background-color:#4C70BA}.pixel-caffeine-wrapper .panel.panel-success>.panel-heading{background-color:#68AA20}.pixel-caffeine-wrapper .panel.panel-info>.panel-heading{background-color:#5bc0de}.pixel-caffeine-wrapper .panel.panel-warning>.panel-heading{background-color:#FD9C00}.pixel-caffeine-wrapper .panel.panel-danger>.panel-heading{background-color:#E15667}.pixel-caffeine-wrapper [class*=panel-]>.panel-heading{color:rgba(255,255,255,.84);border:0}.pixel-caffeine-wrapper .panel-default>.panel-heading,.pixel-caffeine-wrapper .panel:not([class*=panel-])>.panel-heading{color:rgba(0,0,0,.87)}.pixel-caffeine-wrapper .panel-footer{background-color:#eee}.pixel-caffeine-wrapper hr.on-dark{color:#5e5e5e}.pixel-caffeine-wrapper hr.on-light{color:#fff}@media (-webkit-min-device-pixel-ratio:0.75),(min--moz-device-pixel-ratio:0.75),(-o-device-pixel-ratio:3 / 4),(min-device-pixel-ratio:0.75),(min-resolution:0.75dppx),(min-resolution:120dpi){.pixel-caffeine-wrapper hr{height:.75px}}@media (-webkit-min-device-pixel-ratio:1),(min--moz-device-pixel-ratio:1),(-o-device-pixel-ratio:1),(min-device-pixel-ratio:1),(min-resolution:1dppx),(min-resolution:160dpi){.pixel-caffeine-wrapper hr{height:1px}}@media (-webkit-min-device-pixel-ratio:1.33),(min--moz-device-pixel-ratio:1.33),(-o-device-pixel-ratio:133 / 100),(min-device-pixel-ratio:1.33),(min-resolution:1.33dppx),(min-resolution:213dpi){.pixel-caffeine-wrapper hr{height:1.33px}}@media (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-device-pixel-ratio:3 / 2),(min-device-pixel-ratio:1.5),(min-resolution:1.5dppx),(min-resolution:240dpi){.pixel-caffeine-wrapper hr{height:1.5px}}@media (-webkit-min-device-pixel-ratio:2),(min--moz-device-pixel-ratio:2),(-o-device-pixel-ratio:2 / 1),(min-device-pixel-ratio:2),(min-resolution:2dppx),(min-resolution:380dpi){.pixel-caffeine-wrapper hr{height:2px}}@media (-webkit-min-device-pixel-ratio:3),(min--moz-device-pixel-ratio:3),(-o-device-pixel-ratio:3 / 1),(min-device-pixel-ratio:3),(min-resolution:3dppx),(min-resolution:480dpi){.pixel-caffeine-wrapper hr{height:3px}}@media (-webkit-min-device-pixel-ratio:4),(min--moz-device-pixel-ratio:4),(-o-device-pixel-ratio:4 / 1),(min-device-pixel-ratio:3),(min-resolution:4dppx),(min-resolution:640dpi){.pixel-caffeine-wrapper hr{height:4px}}.pixel-caffeine-wrapper *{-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-tap-highlight-color:transparent}.pixel-caffeine-wrapper :focus{outline:0}.pixel-caffeine-wrapper .snackbar{background-color:#323232;color:rgba(255,255,255,.84);font-size:14px;border-radius:4px;height:0;transition:transform .2s ease-in-out,opacity .2s ease-in,height 0s linear .2s,padding 0s linear .2s,height 0s linear .2s;transform:translateY(200%)}.pixel-caffeine-wrapper .snackbar.snackbar-opened{padding:14px 15px;margin-bottom:20px;height:auto;transition:transform .2s ease-in-out,opacity .2s ease-in,height 0s linear .2s,height 0s linear .2s;transform:none}.pixel-caffeine-wrapper .snackbar.toast{border-radius:200px}.pixel-caffeine-wrapper .noUi-target,.pixel-caffeine-wrapper .noUi-target *{-webkit-touch-callout:none;-ms-touch-action:none;user-select:none;box-sizing:border-box}.pixel-caffeine-wrapper .noUi-base{width:100%;height:100%;position:relative}.pixel-caffeine-wrapper .noUi-origin{position:absolute;right:0;top:0;left:0;bottom:0}.pixel-caffeine-wrapper .noUi-handle{position:relative;z-index:1;box-sizing:border-box}.pixel-caffeine-wrapper .noUi-stacking .noUi-handle{z-index:10}.pixel-caffeine-wrapper .noUi-state-tap .noUi-origin{transition:left .3s,top .3s}.pixel-caffeine-wrapper .noUi-state-drag *{cursor:inherit!important}.pixel-caffeine-wrapper .noUi-handle{width:12px;height:12px;left:-10px;top:-5px;cursor:ew-resize;border-radius:100%;transition:all .2s ease-out;border:1px solid}.pixel-caffeine-wrapper .noUi-vertical .noUi-handle{margin-left:5px;cursor:ns-resize}.pixel-caffeine-wrapper .noUi-horizontal.noUi-extended{padding:0 15px}.pixel-caffeine-wrapper .noUi-horizontal.noUi-extended .noUi-origin{right:-15px}.pixel-caffeine-wrapper .noUi-background{height:2px;margin:20px 0}.pixel-caffeine-wrapper .noUi-origin{margin:0;border-radius:0;height:2px;background:#c8c8c8}.pixel-caffeine-wrapper .noUi-origin[style^="left: 0"] .noUi-handle{background-color:#fff;border:2px solid #c8c8c8}.pixel-caffeine-wrapper .noUi-origin[style^="left: 0"] .noUi-handle.noUi-active{border-width:1px}.pixel-caffeine-wrapper .noUi-target{border-radius:4px}.pixel-caffeine-wrapper .noUi-horizontal{height:2px;margin:15px 0}.pixel-caffeine-wrapper .noUi-vertical{height:100%;width:2px;margin:0 15px;display:inline-block}.pixel-caffeine-wrapper .noUi-handle.noUi-active{transform:scale3d(2.5,2.5,1)}.pixel-caffeine-wrapper [disabled].noUi-slider{opacity:.5}.pixel-caffeine-wrapper [disabled] .noUi-handle{cursor:not-allowed}.pixel-caffeine-wrapper .slider{background:#c8c8c8}.pixel-caffeine-wrapper .slider.noUi-connect,.pixel-caffeine-wrapper .slider.slider-default.noUi-connect{background-color:#4C70BA}.pixel-caffeine-wrapper .slider.slider-inverse.noUi-connect{background-color:#3f51b5}.pixel-caffeine-wrapper .slider.slider-primary.noUi-connect{background-color:#4C70BA}.pixel-caffeine-wrapper .slider.slider-success.noUi-connect{background-color:#68AA20}.pixel-caffeine-wrapper .slider.slider-info.noUi-connect{background-color:#5bc0de}.pixel-caffeine-wrapper .slider.slider-warning.noUi-connect{background-color:#FD9C00}.pixel-caffeine-wrapper .slider.slider-danger.noUi-connect{background-color:#E15667}.pixel-caffeine-wrapper .slider .noUi-connect,.pixel-caffeine-wrapper .slider.slider-default .noUi-connect{background-color:#4C70BA}.pixel-caffeine-wrapper .slider.slider-inverse .noUi-connect{background-color:#3f51b5}.pixel-caffeine-wrapper .slider.slider-primary .noUi-connect{background-color:#4C70BA}.pixel-caffeine-wrapper .slider.slider-success .noUi-connect{background-color:#68AA20}.pixel-caffeine-wrapper .slider.slider-info .noUi-connect{background-color:#5bc0de}.pixel-caffeine-wrapper .slider.slider-warning .noUi-connect{background-color:#FD9C00}.pixel-caffeine-wrapper .slider.slider-danger .noUi-connect{background-color:#E15667}.pixel-caffeine-wrapper .slider .noUi-handle,.pixel-caffeine-wrapper .slider.slider-default .noUi-handle{background-color:#4C70BA;border-color:#4C70BA}.pixel-caffeine-wrapper .slider.slider-inverse .noUi-handle{background-color:#3f51b5;border-color:#3f51b5}.pixel-caffeine-wrapper .slider.slider-primary .noUi-handle{background-color:#4C70BA;border-color:#4C70BA}.pixel-caffeine-wrapper .slider.slider-success .noUi-handle{background-color:#68AA20;border-color:#68AA20}.pixel-caffeine-wrapper .slider.slider-info .noUi-handle{background-color:#5bc0de;border-color:#5bc0de}.pixel-caffeine-wrapper .slider.slider-warning .noUi-handle{background-color:#FD9C00;border-color:#FD9C00}.pixel-caffeine-wrapper .slider.slider-danger .noUi-handle{background-color:#E15667;border-color:#E15667}.pixel-caffeine-wrapper .selectize-control.multi,.pixel-caffeine-wrapper .selectize-control.single{padding:0}.pixel-caffeine-wrapper .selectize-control.multi .selectize-input,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active,.pixel-caffeine-wrapper .selectize-control.single .selectize-input,.pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active{cursor:text;background:0 0;box-shadow:none;border:0;padding:0;height:100%;font-size:14px;line-height:30px}.pixel-caffeine-wrapper .selectize-control.multi .selectize-input .has-items,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active .has-items,.pixel-caffeine-wrapper .selectize-control.single .selectize-input .has-items,.pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active .has-items{padding:0}.pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active:after,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input:after,.pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active:after,.pixel-caffeine-wrapper .selectize-control.single .selectize-input:after{right:5px;position:absolute;font-size:25px;content:"\e5c5";font-family:'Material Icons';speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pixel-caffeine-wrapper .selectize-control.multi .selectize-input input,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active input,.pixel-caffeine-wrapper .selectize-control.single .selectize-input input,.pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active input{font-size:14px;outline:0;border:0;background:0 0}.pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active.label-floating-fix input,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input.label-floating-fix input,.pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active.label-floating-fix input,.pixel-caffeine-wrapper .selectize-control.single .selectize-input.label-floating-fix input{opacity:0}.pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active>.item,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active>div,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input>.item,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input>div,.pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active>.item,.pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active>div,.pixel-caffeine-wrapper .selectize-control.single .selectize-input>.item,.pixel-caffeine-wrapper .selectize-control.single .selectize-input>div{display:inline-block;margin:0 8px 3px 0;padding:0;background:0 0;border:0}.pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active>.item:after,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active>div:after,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input>.item:after,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input>div:after,.pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active>.item:after,.pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active>div:after,.pixel-caffeine-wrapper .selectize-control.single .selectize-input>.item:after,.pixel-caffeine-wrapper .selectize-control.single .selectize-input>div:after{content:","}.pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active>.item:last-of-type:after,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active>div:last-of-type:after,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input>.item:last-of-type:after,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input>div:last-of-type:after,.pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active>.item:last-of-type:after,.pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active>div:last-of-type:after,.pixel-caffeine-wrapper .selectize-control.single .selectize-input>.item:last-of-type:after,.pixel-caffeine-wrapper .selectize-control.single .selectize-input>div:last-of-type:after{content:""}.pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active>.item.active,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input.input-active>div.active,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input>.item.active,.pixel-caffeine-wrapper .selectize-control.multi .selectize-input>div.active,.pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active>.item.active,.pixel-caffeine-wrapper .selectize-control.single .selectize-input.input-active>div.active,.pixel-caffeine-wrapper .selectize-control.single .selectize-input>.item.active,.pixel-caffeine-wrapper .selectize-control.single .selectize-input>div.active{font-weight:700;background:0 0;border:0}.pixel-caffeine-wrapper .selectize-control.multi .selectize-dropdown,.pixel-caffeine-wrapper .selectize-control.single .selectize-dropdown{position:absolute;z-index:1000;border:0;width:100%!important;left:0!important;height:auto;background-color:#FFF;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);border-radius:4px;padding:0;margin-top:3px}.pixel-caffeine-wrapper .selectize-control.multi .selectize-dropdown .active,.pixel-caffeine-wrapper .selectize-control.single .selectize-dropdown .active{background-color:inherit}.pixel-caffeine-wrapper .selectize-control.multi .selectize-dropdown .highlight,.pixel-caffeine-wrapper .selectize-control.single .selectize-dropdown .highlight{background-color:#d5d8ff}.pixel-caffeine-wrapper .selectize-control.multi .selectize-dropdown .selected,.pixel-caffeine-wrapper .selectize-control.multi .selectize-dropdown .selected.active,.pixel-caffeine-wrapper .selectize-control.single .selectize-dropdown .selected,.pixel-caffeine-wrapper .selectize-control.single .selectize-dropdown .selected.active{background-color:#EEE}.pixel-caffeine-wrapper .selectize-control.multi .selectize-dropdown .optgroup-header,.pixel-caffeine-wrapper .selectize-control.multi .selectize-dropdown [data-selectable],.pixel-caffeine-wrapper .selectize-control.single .selectize-dropdown .optgroup-header,.pixel-caffeine-wrapper .selectize-control.single .selectize-dropdown [data-selectable]{padding:10px 20px;cursor:pointer}.pixel-caffeine-wrapper .selectize-control.multi .dropdown-active~.selectize-dropdown,.pixel-caffeine-wrapper .selectize-control.single .dropdown-active~.selectize-dropdown{display:block}.pixel-caffeine-wrapper .dropdownjs::after{right:5px;top:3px;font-size:25px;position:absolute;font-family:'Material Icons';font-style:normal;font-weight:400;content:"\e5c5";pointer-events:none;color:#757575}.pixel-caffeine-wrapper .withripple{position:relative}.pixel-caffeine-wrapper .ripple-container{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;overflow:hidden;border-radius:inherit;pointer-events:none}.pixel-caffeine-wrapper .ripple{position:absolute;width:20px;height:20px;margin-left:-10px;margin-top:-10px;border-radius:100%;background-color:#000;background-color:rgba(0,0,0,.05);transform:scale(1);transform-origin:50%;opacity:0;pointer-events:none}.pixel-caffeine-wrapper .ripple.ripple-on{transition:opacity .15s ease-in 0s,transform .5s cubic-bezier(.4,0,.2,1) .1s;opacity:.1}.pixel-caffeine-wrapper .ripple.ripple-out{transition:opacity .1s linear 0s!important;opacity:0}.pixel-caffeine-wrapper table{border-collapse:collapse;border-spacing:0}.pixel-caffeine-wrapper .material-icons{font-family:'Material Icons';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased}.pixel-caffeine-wrapper .wrap{background:0 0}.pixel-caffeine-wrapper h1,.pixel-caffeine-wrapper h2,.pixel-caffeine-wrapper h3,.pixel-caffeine-wrapper h4,.pixel-caffeine-wrapper h5,.pixel-caffeine-wrapper h6{font-weight:700}.pixel-caffeine-wrapper strong{font-weight:600}.pixel-caffeine-wrapper .actions .btn-fab{margin:0 5px}.pixel-caffeine-wrapper .actions .btn-fab.btn-mini{margin:0 2px}.pixel-caffeine-wrapper .wrap .page-title{margin-bottom:10px;font-size:28px;font-weight:400}.pixel-caffeine-wrapper .nav-tab:focus,.pixel-caffeine-wrapper .nav-tab:hover{background-color:#fff;color:#555}.pixel-caffeine-wrapper .nav-tab,.pixel-caffeine-wrapper .nav-tab:focus,.pixel-caffeine-wrapper .nav-tab:hover{color:#555;text-decoration:none}.pixel-caffeine-wrapper .nav-tab-active,.pixel-caffeine-wrapper .nav-tab-active:focus,.pixel-caffeine-wrapper .nav-tab-active:hover{border-bottom-color:#fafafa;color:#000;background:#fafafa}.pixel-caffeine-wrapper .nav-tab-active,.pixel-caffeine-wrapper .plugin-sec{background:#fafafa}.pixel-caffeine-wrapper .plugin-sec{padding:30px;border:1px solid #CCC}.pixel-caffeine-wrapper .plugin-sec .plugin-sidebar{margin-top:30px}.pixel-caffeine-wrapper .plugin-sec .plugin-sidebar:after,.pixel-caffeine-wrapper .plugin-sec .plugin-sidebar:before{content:" ";display:table}.pixel-caffeine-wrapper .plugin-sec .plugin-sidebar-item{margin:15px 0}.pixel-caffeine-wrapper .plugin-sec .plugin-sidebar-item.fake-item .loading-msg{display:block;margin-bottom:5px}.pixel-caffeine-wrapper .plugin-sec .plugin-sidebar-item.fake-item .list-group .row-content{position:relative;min-height:60px;background:url(../img/placeholder-loading-news.png) no-repeat;background-size:100% 100%;opacity:.3}@media screen and (min-width:1200px){.pixel-caffeine-wrapper .plugin-sec .plugin-sidebar-item.fake-item .list-group .row-content::before{content:"";position:absolute;top:0;left:0;display:block;width:100%;height:100%;animation:placeholder-shimmer 1s linear forwards infinite;background:#fafafa;background:linear-gradient(to right,transparent 8%,#fafafa 18%,transparent 33%);background-size:800px 104px}}.pixel-caffeine-wrapper .plugin-sec .banner-wrap{float:left;width:250px;margin:0 30px 30px 0;box-shadow:0 1px 6px 0 rgba(0,0,0,.12),0 1px 6px 0 rgba(0,0,0,.12)}.pixel-caffeine-wrapper .plugin-sec .banner-wrap a{background:#fff}.pixel-caffeine-wrapper .plugin-sec .banner-wrap a:hover img{opacity:.9}.pixel-caffeine-wrapper .plugin-sec .banner-wrap a:active img{opacity:1}.pixel-caffeine-wrapper .plugin-sec .banner-wrap img{display:block;width:100%;height:auto;border:5px solid #fff;transition:opacity .3s ease-out}@media screen and (min-width:1200px){.pixel-caffeine-wrapper .plugin-sec{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.pixel-caffeine-wrapper .plugin-sec .plugin-content{width:calc(100% - 250px - 30px);margin-right:30px}.pixel-caffeine-wrapper .plugin-sec .plugin-sidebar{width:250px;margin-top:0}}.pixel-caffeine-wrapper .sec-overlay{position:relative}.pixel-caffeine-wrapper .sec-overlay::after{background:rgba(0,0,0,.3);content:"";width:100%;height:100%;position:absolute;top:0;left:0;z-index:1}.pixel-caffeine-wrapper .sec-overlay .bumping{z-index:2;box-shadow:0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36)}.pixel-caffeine-wrapper .data-group{position:relative}.pixel-caffeine-wrapper .data-group:after,.pixel-caffeine-wrapper .data-group:before{content:" ";display:table}.pixel-caffeine-wrapper .data-group .data{display:inline-block;margin-bottom:5px;text-align:right;font-size:14px;line-height:1.42857;color:#919191;font-weight:400}.pixel-caffeine-wrapper .form-group .multiple-fields .control-wrap .form-control,.pixel-caffeine-wrapper .togglebutton label{margin-bottom:0}.pixel-caffeine-wrapper .data-group .value{font-size:14px}.pixel-caffeine-wrapper .data-group .value-info{display:inline-block;vertical-align:middle}.pixel-caffeine-wrapper .data-group,.pixel-caffeine-wrapper .form-group{margin-left:0;margin-right:0;margin-top:0;padding-bottom:8px}.pixel-caffeine-wrapper .panel .data-group,.pixel-caffeine-wrapper .panel .form-group{margin-left:0;margin-right:0}.pixel-caffeine-wrapper .text-status{display:inline-block;vertical-align:middle;font-size:14px}.pixel-caffeine-wrapper .text-status-pending{color:#FD9C00}.pixel-caffeine-wrapper .control-wrap{font-size:14px}.pixel-caffeine-wrapper .form-group label.control-label{padding-top:7px;padding-bottom:7px;margin-top:0;font-size:14px;color:#919191;text-transform:none}.pixel-caffeine-wrapper .form-group .multiple-fields .form-group{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-align:center;-webkit-align-items:center;align-items:center;padding-bottom:20px}.pixel-caffeine-wrapper .form-group .multiple-fields .control-wrap{-webkit-box-flex:1 1 auto;-moz-box-flex:1 1 auto;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;padding-left:0}.pixel-caffeine-wrapper .form-group .multiple-fields .control-wrap+.control-wrap{padding-left:15px}.pixel-caffeine-wrapper .form-group .help-block{position:relative;display:inherit}.pixel-caffeine-wrapper .form-group.has-error .form-control,.pixel-caffeine-wrapper .form-group.has-error .select2-container .select2-choice,.pixel-caffeine-wrapper .form-group.has-error .select2-container .select2-choices{background-color:#fceeef}.pixel-caffeine-wrapper .form-group.has-error .select2-chosen,.pixel-caffeine-wrapper .form-group.has-error .text{color:#E15667}.pixel-caffeine-wrapper .form-group .form-control[disabled]{background-color:#f6f6f6;color:#BDBDBD}.pixel-caffeine-wrapper .form-group .checkbox label,.pixel-caffeine-wrapper .form-group .radio label,.pixel-caffeine-wrapper .form-group.is-focused .checkbox label,.pixel-caffeine-wrapper .form-group.is-focused .radio label{color:#444;font-weight:400}.pixel-caffeine-wrapper .form-group.is-focused .checkbox label:focus,.pixel-caffeine-wrapper .form-group.is-focused .checkbox label:hover,.pixel-caffeine-wrapper .form-group.is-focused label.checkbox-inline:focus,.pixel-caffeine-wrapper .form-group.is-focused label.checkbox-inline:hover{color:#444}.pixel-caffeine-wrapper .form-group .help-block-error,.pixel-caffeine-wrapper .form-group.is-focused .help-block-error{display:none}.pixel-caffeine-wrapper .checkbox .text,.pixel-caffeine-wrapper .form-group.has-error .help-block-error{display:block}.pixel-caffeine-wrapper .radio label,.pixel-caffeine-wrapper label.radio-inline{padding-left:32px}.pixel-caffeine-wrapper .checkbox{position:relative;padding-left:30px}.pixel-caffeine-wrapper .checkbox .checkbox-material{position:absolute;top:0;left:0;width:20px;height:20px}.pixel-caffeine-wrapper .checkbox .checkbox-material::before{top:0}.pixel-caffeine-wrapper .checkbox .checkbox-material .check{border-radius:0}.pixel-caffeine-wrapper .multi-form-group:after,.pixel-caffeine-wrapper .multi-form-group:before{content:" ";display:table}.pixel-caffeine-wrapper .form-horizontal-inline .form-control,.pixel-caffeine-wrapper .form-horizontal-inline .text,.pixel-caffeine-wrapper .form-inline .control-wrap,.pixel-caffeine-wrapper .form-toggle .control-wrap,.pixel-caffeine-wrapper .togglebutton{display:inline-block;vertical-align:middle}@media screen and (min-width:992px){.pixel-caffeine-wrapper .multi-form-group .sub-form-group{position:relative;min-height:1px;padding-left:15px;padding-right:15px;float:right!important}.pixel-caffeine-wrapper .modal .multi-form-group .sub-form-group{position:relative;min-height:1px;padding-left:0;padding-right:0}}@media screen and (min-width:992px) and (min-width:992px){.pixel-caffeine-wrapper .multi-form-group .sub-form-group{float:left;width:83.33333%}.pixel-caffeine-wrapper .modal .multi-form-group .sub-form-group{float:left;width:100%}}.pixel-caffeine-wrapper input{margin-top:0;margin-left:0;margin-right:0}.pixel-caffeine-wrapper .form-horizontal .togglebutton,.pixel-caffeine-wrapper .form-inline .togglebutton,.pixel-caffeine-wrapper .form-toggle .text-status{margin-top:.3em}.pixel-caffeine-wrapper .form-toggle{padding-top:12px;padding-bottom:20px}.pixel-caffeine-wrapper .togglebutton{padding-left:15px}.pixel-caffeine-wrapper .togglebutton label input{position:absolute}.pixel-caffeine-wrapper .form-horizontal .control-label,.pixel-caffeine-wrapper .form-horizontal .control-wrap{position:relative;min-height:1px}.pixel-caffeine-wrapper .togglebutton label input[type=checkbox]:checked+.toggle{background:rgba(104,170,32,.5)}.pixel-caffeine-wrapper .togglebutton label input[type=checkbox]:checked+.toggle::after{background:#68AA20}.pixel-caffeine-wrapper .togglebutton.pending label input[type=checkbox]+.toggle{background:rgba(253,156,0,.5)}.pixel-caffeine-wrapper .togglebutton.pending label input[type=checkbox]+.toggle::after{background:#FD9C00}@media screen and (min-width:992px){.pixel-caffeine-wrapper .form-horizontal .togglebutton,.pixel-caffeine-wrapper .form-inline .togglebutton{padding-left:0}}.pixel-caffeine-wrapper .form-control,.pixel-caffeine-wrapper .form-group .form-control{background-color:#f2f4fa;padding-left:10px;padding-right:10px}.pixel-caffeine-wrapper .form-control::-moz-placeholder,.pixel-caffeine-wrapper .form-group .form-control::-moz-placeholder{font-weight:300}.pixel-caffeine-wrapper .form-control:-ms-input-placeholder,.pixel-caffeine-wrapper .form-group .form-control:-ms-input-placeholder{font-weight:300}.pixel-caffeine-wrapper .form-control::-webkit-input-placeholder,.pixel-caffeine-wrapper .form-group .form-control::-webkit-input-placeholder{font-weight:300}.pixel-caffeine-wrapper .form-group-lg .form-control{font-size:2em}.pixel-caffeine-wrapper .form-group-lg.sub-panel{margin-top:0}.pixel-caffeine-wrapper .multiple-fields-actions .btn{margin-top:0;margin-bottom:0}.pixel-caffeine-wrapper .form-inline .control-wrap{width:auto;margin-right:10px}.pixel-caffeine-wrapper .form-inline label.control-label{margin-right:10px}.pixel-caffeine-wrapper .form-inline .text{font-size:14px}@media (min-width:992px){.pixel-caffeine-wrapper .form-horizontal .control-label{float:left;width:16.66667%}.pixel-caffeine-wrapper .form-horizontal .control-wrap{float:left;width:83.33333%}}.pixel-caffeine-wrapper .form-horizontal .control-label,.pixel-caffeine-wrapper .form-horizontal .control-wrap,.pixel-caffeine-wrapper .form-horizontal .data-group .data,.pixel-caffeine-wrapper .form-horizontal .data-group .value{padding-left:0;padding-right:0}.pixel-caffeine-wrapper .form-horizontal .checkbox .checkbx-material{top:10px}.pixel-caffeine-wrapper .form-horizontal .list-filter{padding-top:7px}.pixel-caffeine-wrapper .form-horizontal .form-inline .control-wrap{float:none;width:auto}.pixel-caffeine-wrapper .form-horizontal .form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}@media screen and (min-width:992px){.pixel-caffeine-wrapper .form-horizontal .data-group,.pixel-caffeine-wrapper .form-horizontal .form-group{padding-bottom:20px}.pixel-caffeine-wrapper .form-horizontal .control-label,.pixel-caffeine-wrapper .form-horizontal .data-group .data{padding-right:15px}.pixel-caffeine-wrapper .form-horizontal .form-group:not(.form-toggle) .control-label{margin-top:.3em}.pixel-caffeine-wrapper .form-horizontal .control-wrap,.pixel-caffeine-wrapper .form-horizontal .data-group .data+.value{padding-left:15px}.pixel-caffeine-wrapper .form-horizontal .form-toggle{padding-top:0}.pixel-caffeine-wrapper .form-horizontal .form-inline .control-label{margin-right:0}.pixel-caffeine-wrapper .form-horizontal .help-block{position:absolute;margin-top:-5px}.pixel-caffeine-wrapper .form-horizontal .has-error-long.has-error.data-group,.pixel-caffeine-wrapper .form-horizontal .has-error-long.has-error.form-group{padding-bottom:0}.pixel-caffeine-wrapper .form-horizontal .has-error-long.has-error .help-block{position:static}.pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .control-label,.pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .control-wrap,.pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .data-group .data,.pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .data-group .value{position:relative;min-height:1px;padding-left:15px;padding-right:15px}}.pixel-caffeine-wrapper .form-horizontal .data-group .data,.pixel-caffeine-wrapper .form-horizontal .data-group .value{position:relative;padding-left:15px;padding-right:15px;min-height:1px}@media screen and (min-width:992px) and (min-width:992px){.pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .control-label,.pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .data-group .data{float:left;width:16.66667%}.pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .control-wrap,.pixel-caffeine-wrapper .form-horizontal .form-horizontal-inline .data-group .value{float:left;width:83.33333%}}@media (min-width:768px){.pixel-caffeine-wrapper .form-horizontal .data-group .data{float:left;width:16.66667%}.pixel-caffeine-wrapper .form-horizontal .data-group .value{float:left;width:83.33333%}}.pixel-caffeine-wrapper .form-horizontal-inline .form-control{width:auto;margin-right:10px}.pixel-caffeine-wrapper .form-vertical .form-group{padding-bottom:8px}@media screen and (min-width:992px){.pixel-caffeine-wrapper .form-vertical .multiple-fields,.pixel-caffeine-wrapper .form-vertical>.form-group>.control-label,.pixel-caffeine-wrapper .form-vertical>.form-group>.control-wrap{float:none;padding-left:0;padding-right:0}.pixel-caffeine-wrapper .form-vertical .control-label{width:auto;text-align:left}.pixel-caffeine-wrapper .form-vertical .control-wrap{width:100%}.pixel-caffeine-wrapper .form-vertical .multiple-fields .control-wrap{width:auto}}.pixel-caffeine-wrapper .radio{margin-top:10px;margin-bottom:10px}.pixel-caffeine-wrapper p{font-size:14px;line-height:1.42857}.pixel-caffeine-wrapper .jumbotron{background:#fff;padding:35px;box-shadow:0 1px 6px 0 rgba(0,0,0,.12),0 1px 6px 0 rgba(0,0,0,.12)}.pixel-caffeine-wrapper .modal .panel-body,.pixel-caffeine-wrapper .panel .panel-heading .form-group{padding:0}.pixel-caffeine-wrapper .jumbotron .tit{margin-top:0;margin-bottom:20px}.pixel-caffeine-wrapper .panel>.panel-footer,.pixel-caffeine-wrapper .panel>.panel-heading{background:#fff}.pixel-caffeine-wrapper .panel .panel-footer:after,.pixel-caffeine-wrapper .panel .panel-footer:before{content:" ";display:table}.pixel-caffeine-wrapper .panel .panel-footer .form-control{margin-bottom:0}.pixel-caffeine-wrapper .panel>.panel-heading{display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-ms-flex-pack:space-between;-webkit-justify-content:space-between;justify-content:space-between;border-bottom:1px solid #ddd}.pixel-caffeine-wrapper .panel>.panel-heading .text-status{display:block;text-transform:none;margin-top:5px}.pixel-caffeine-wrapper .panel .panel-heading{color:#444;text-transform:uppercas