From a0c72b0caf98bf0737c46cf5a8fb9f56a0fa3d97 Mon Sep 17 00:00:00 2001 From: Senad Uka Date: Mon, 20 Sep 2021 08:22:39 +0200 Subject: [PATCH] Initial commit --- .browserslistrc | 1 + .gitattributes | 10 + .gitignore | 40 + .ruby-version | 1 + Gemfile | 63 + Gemfile.lock | 300 + README.md | 24 + Rakefile | 6 + app/assets/config/manifest.js | 2 + app/assets/images/.keep | 0 app/assets/images/concertiv-logo-std.png | Bin 0 -> 4265 bytes app/assets/images/symbols.svg | 83 + app/assets/javascripts/application.js | 2 + app/assets/stylesheets/application.css | 15 + app/assets/stylesheets/profiler.css | 1 + app/assets/stylesheets/vendor.css | 4 + app/channels/application_cable/channel.rb | 4 + app/channels/application_cable/connection.rb | 4 + app/controllers/application_controller.rb | 2 + app/controllers/concerns/.keep | 0 app/helpers/application_helper.rb | 2 + app/inputs/important_input.rb | 5 + app/javascript/channels/consumer.js | 6 + app/javascript/channels/index.js | 5 + app/javascript/packs/application.js | 13 + app/jobs/application_job.rb | 7 + app/mailers/application_mailer.rb | 4 + app/models/admin_user.rb | 6 + app/models/application_record.rb | 3 + app/models/concerns/.keep | 0 app/models/concerns/recentable.rb | 7 + app/models/employer.rb | 8 + app/models/product.rb | 3 + app/models/subscription.rb | 110 + app/models/supplier.rb | 3 + app/views/admin/employers/_form.html.erb | 14 + app/views/layouts/application.html.erb | 16 + app/views/layouts/mailer.html.erb | 13 + app/views/layouts/mailer.text.erb | 1 + .../layouts/rails_admin/application.html.erb | 227 + .../rails_admin/original_application.html.erb | 49 + .../rails_admin/employers/_form.html.erb | 13 + babel.config.js | 82 + bin/bundle | 114 + bin/rails | 5 + bin/rake | 5 + bin/setup | 36 + bin/spring | 14 + bin/webpack | 18 + bin/webpack-dev-server | 18 + bin/yarn | 17 + config.ru | 6 + config/application.rb | 22 + config/boot.rb | 4 + config/cable.yml | 10 + config/credentials.yml.enc | 1 + config/database.yml | 25 + config/environment.rb | 5 + config/environments/development.rb | 76 + config/environments/production.rb | 120 + config/environments/test.rb | 60 + .../application_controller_renderer.rb | 8 + config/initializers/assets.rb | 14 + config/initializers/backtrace_silencers.rb | 8 + .../initializers/client_side_validations.rb | 21 + .../initializers/content_security_policy.rb | 30 + config/initializers/cookies_serializer.rb | 5 + config/initializers/devise.rb | 311 + .../initializers/filter_parameter_logging.rb | 6 + config/initializers/inflections.rb | 16 + config/initializers/mime_types.rb | 4 + config/initializers/permissions_policy.rb | 11 + config/initializers/rails_admin.rb | 41 + config/initializers/wrap_parameters.rb | 14 + config/locales/devise.en.yml | 65 + config/locales/en.yml | 33 + config/puma.rb | 43 + config/routes.rb | 4 + config/spring.rb | 6 + config/storage.yml | 34 + config/webpack/development.js | 5 + config/webpack/environment.js | 3 + config/webpack/production.js | 5 + config/webpack/test.js | 5 + config/webpacker.yml | 92 + ...0210903155122_devise_create_admin_users.rb | 44 + ...0903155123_create_active_admin_comments.rb | 16 + .../20210903161117_create_subscriptions.rb | 32 + db/migrate/20210907143616_create_employers.rb | 24 + ...0907144514_add_employer_to_subscription.rb | 5 + ...dd_series_successor_id_to_subscriptions.rb | 5 + ...d_series_terminated_at_to_subscriptions.rb | 5 + db/migrate/20210917144712_create_suppliers.rb | 8 + db/migrate/20210917144722_create_products.rb | 11 + db/schema.rb | 114 + db/seeds.rb | 8 + lib/assets/.keep | 0 lib/tasks/.keep | 0 log/.keep | 0 package.json | 15 + postcss.config.js | 12 + public/404.html | 67 + public/422.html | 67 + public/500.html | 66 + public/apple-touch-icon-precomposed.png | 0 public/apple-touch-icon.png | 0 public/favicon.ico | 0 public/robots.txt | 1 + storage/.keep | 0 test/application_system_test_case.rb | 5 + .../application_cable/connection_test.rb | 11 + test/controllers/.keep | 0 test/fixtures/admin_users.yml | 11 + test/fixtures/employers.yml | 11 + test/fixtures/files/.keep | 0 test/fixtures/products.yml | 11 + test/fixtures/subscriptions.yml | 25 + test/fixtures/suppliers.yml | 11 + test/helpers/.keep | 0 test/integration/.keep | 0 test/mailers/.keep | 0 test/models/.keep | 0 test/models/admin_user_test.rb | 7 + test/models/employer_test.rb | 7 + test/models/product_test.rb | 7 + test/models/subscription_test.rb | 7 + test/models/supplier_test.rb | 7 + test/system/.keep | 0 test/test_helper.rb | 13 + tmp/.keep | 0 tmp/pids/.keep | 0 vendor/.keep | 0 yarn.lock | 5924 +++++++++++++++++ 133 files changed, 9056 insertions(+) create mode 100644 .browserslistrc create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .ruby-version create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 README.md create mode 100644 Rakefile create mode 100644 app/assets/config/manifest.js create mode 100644 app/assets/images/.keep create mode 100644 app/assets/images/concertiv-logo-std.png create mode 100644 app/assets/images/symbols.svg create mode 100644 app/assets/javascripts/application.js create mode 100644 app/assets/stylesheets/application.css create mode 100644 app/assets/stylesheets/profiler.css create mode 100644 app/assets/stylesheets/vendor.css create mode 100644 app/channels/application_cable/channel.rb create mode 100644 app/channels/application_cable/connection.rb create mode 100644 app/controllers/application_controller.rb create mode 100644 app/controllers/concerns/.keep create mode 100644 app/helpers/application_helper.rb create mode 100644 app/inputs/important_input.rb create mode 100644 app/javascript/channels/consumer.js create mode 100644 app/javascript/channels/index.js create mode 100644 app/javascript/packs/application.js create mode 100644 app/jobs/application_job.rb create mode 100644 app/mailers/application_mailer.rb create mode 100644 app/models/admin_user.rb create mode 100644 app/models/application_record.rb create mode 100644 app/models/concerns/.keep create mode 100644 app/models/concerns/recentable.rb create mode 100644 app/models/employer.rb create mode 100644 app/models/product.rb create mode 100644 app/models/subscription.rb create mode 100644 app/models/supplier.rb create mode 100644 app/views/admin/employers/_form.html.erb create mode 100644 app/views/layouts/application.html.erb create mode 100644 app/views/layouts/mailer.html.erb create mode 100644 app/views/layouts/mailer.text.erb create mode 100644 app/views/layouts/rails_admin/application.html.erb create mode 100644 app/views/layouts/rails_admin/original_application.html.erb create mode 100644 app/views/rails_admin/employers/_form.html.erb create mode 100644 babel.config.js create mode 100755 bin/bundle create mode 100755 bin/rails create mode 100755 bin/rake create mode 100755 bin/setup create mode 100755 bin/spring create mode 100755 bin/webpack create mode 100755 bin/webpack-dev-server create mode 100755 bin/yarn create mode 100644 config.ru create mode 100644 config/application.rb create mode 100644 config/boot.rb create mode 100644 config/cable.yml create mode 100644 config/credentials.yml.enc create mode 100644 config/database.yml create mode 100644 config/environment.rb create mode 100644 config/environments/development.rb create mode 100644 config/environments/production.rb create mode 100644 config/environments/test.rb create mode 100644 config/initializers/application_controller_renderer.rb create mode 100644 config/initializers/assets.rb create mode 100644 config/initializers/backtrace_silencers.rb create mode 100644 config/initializers/client_side_validations.rb create mode 100644 config/initializers/content_security_policy.rb create mode 100644 config/initializers/cookies_serializer.rb create mode 100644 config/initializers/devise.rb create mode 100644 config/initializers/filter_parameter_logging.rb create mode 100644 config/initializers/inflections.rb create mode 100644 config/initializers/mime_types.rb create mode 100644 config/initializers/permissions_policy.rb create mode 100644 config/initializers/rails_admin.rb create mode 100644 config/initializers/wrap_parameters.rb create mode 100644 config/locales/devise.en.yml create mode 100644 config/locales/en.yml create mode 100644 config/puma.rb create mode 100644 config/routes.rb create mode 100644 config/spring.rb create mode 100644 config/storage.yml create mode 100644 config/webpack/development.js create mode 100644 config/webpack/environment.js create mode 100644 config/webpack/production.js create mode 100644 config/webpack/test.js create mode 100644 config/webpacker.yml create mode 100644 db/migrate/20210903155122_devise_create_admin_users.rb create mode 100644 db/migrate/20210903155123_create_active_admin_comments.rb create mode 100644 db/migrate/20210903161117_create_subscriptions.rb create mode 100644 db/migrate/20210907143616_create_employers.rb create mode 100644 db/migrate/20210907144514_add_employer_to_subscription.rb create mode 100644 db/migrate/20210909152412_add_series_successor_id_to_subscriptions.rb create mode 100644 db/migrate/20210909160323_add_series_terminated_at_to_subscriptions.rb create mode 100644 db/migrate/20210917144712_create_suppliers.rb create mode 100644 db/migrate/20210917144722_create_products.rb create mode 100644 db/schema.rb create mode 100644 db/seeds.rb create mode 100644 lib/assets/.keep create mode 100644 lib/tasks/.keep create mode 100644 log/.keep create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 public/404.html create mode 100644 public/422.html create mode 100644 public/500.html create mode 100644 public/apple-touch-icon-precomposed.png create mode 100644 public/apple-touch-icon.png create mode 100644 public/favicon.ico create mode 100644 public/robots.txt create mode 100644 storage/.keep create mode 100644 test/application_system_test_case.rb create mode 100644 test/channels/application_cable/connection_test.rb create mode 100644 test/controllers/.keep create mode 100644 test/fixtures/admin_users.yml create mode 100644 test/fixtures/employers.yml create mode 100644 test/fixtures/files/.keep create mode 100644 test/fixtures/products.yml create mode 100644 test/fixtures/subscriptions.yml create mode 100644 test/fixtures/suppliers.yml create mode 100644 test/helpers/.keep create mode 100644 test/integration/.keep create mode 100644 test/mailers/.keep create mode 100644 test/models/.keep create mode 100644 test/models/admin_user_test.rb create mode 100644 test/models/employer_test.rb create mode 100644 test/models/product_test.rb create mode 100644 test/models/subscription_test.rb create mode 100644 test/models/supplier_test.rb create mode 100644 test/system/.keep create mode 100644 test/test_helper.rb create mode 100644 tmp/.keep create mode 100644 tmp/pids/.keep create mode 100644 vendor/.keep create mode 100644 yarn.lock diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 0000000..e94f814 --- /dev/null +++ b/.browserslistrc @@ -0,0 +1 @@ +defaults diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..5168571 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,10 @@ +# See https://git-scm.com/docs/gitattributes for more about git attribute files. + +# Mark the database schema as having been generated. +db/schema.rb linguist-generated + +# Mark the yarn lockfile as having been generated. +yarn.lock linguist-generated + +# Mark any vendored files as having been vendored. +vendor/* linguist-vendored diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..072bcce --- /dev/null +++ b/.gitignore @@ -0,0 +1,40 @@ +# See https://help.github.com/articles/ignoring-files for more about ignoring files. +# +# If you find yourself ignoring temporary files generated by your text editor +# or operating system, you probably want to add a global ignore instead: +# git config --global core.excludesfile '~/.gitignore_global' + +# Ignore bundler config. +/.bundle + +# Ignore the default SQLite database. +/db/*.sqlite3 +/db/*.sqlite3-* + +# Ignore all logfiles and tempfiles. +/log/* +/tmp/* +!/log/.keep +!/tmp/.keep + +# Ignore pidfiles, but keep the directory. +/tmp/pids/* +!/tmp/pids/ +!/tmp/pids/.keep + +# Ignore uploaded files in development. +/storage/* +!/storage/.keep + +/public/assets +.byebug_history + +# Ignore master key for decrypting credentials and more. +/config/master.key + +/public/packs +/public/packs-test +/node_modules +/yarn-error.log +yarn-debug.log* +.yarn-integrity diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..4efbd8f --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +ruby-3.0.2 diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..61e4225 --- /dev/null +++ b/Gemfile @@ -0,0 +1,63 @@ +source 'https://rubygems.org' +git_source(:github) { |repo| "https://github.com/#{repo}.git" } + +ruby '3.0.2' + +# Bundle edge Rails instead: gem 'rails', github: 'rails/rails', branch: 'main' +gem 'rails', '~> 6.1.4', '>= 6.1.4.1' +# Use sqlite3 as the database for Active Record +gem 'sqlite3', '~> 1.4' +# Use Puma as the app server +gem 'puma', '~> 5.0' +# Use SCSS for stylesheets +gem 'sass-rails', '>= 6' +# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker +gem 'webpacker', '~> 5.0' +# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks +gem 'turbolinks', '~> 5' +# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder +gem 'jbuilder', '~> 2.7' +# Use Redis adapter to run Action Cable in production +# gem 'redis', '~> 4.0' +# Use Active Model has_secure_password +# gem 'bcrypt', '~> 3.1.7' + +# Use Active Storage variant +# gem 'image_processing', '~> 1.2' + +# Reduces boot times through caching; required in config/boot.rb +gem 'bootsnap', '>= 1.4.4', require: false + +group :development, :test do + # Call 'byebug' anywhere in the code to stop execution and get a debugger console + gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] +end + +group :development do + # Access an interactive console on exception pages or by calling 'console' anywhere in the code. + gem 'web-console', '>= 4.1.0' + # Display performance information such as SQL time and flame graphs for each request in your browser. + # Can be configured to work on production as well see: https://github.com/MiniProfiler/rack-mini-profiler/blob/master/README.md + gem 'rack-mini-profiler', '~> 2.0' + gem 'listen', '~> 3.3' + # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring + gem 'spring' +end + +group :test do + # Adds support for Capybara system testing and selenium driver + gem 'capybara', '>= 3.26' + gem 'selenium-webdriver' + # Easy installation and use of web drivers to run system tests with browsers + gem 'webdrivers' +end + +# Windows does not include zoneinfo files, so bundle the tzinfo-data gem +gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] +gem "devise", "~> 4.8" + +gem 'rails_admin', '~> 2.0' + +gem 'client_side_validations' + +gem 'jquery-rails', '~> 4.3' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..df78dd3 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,300 @@ +GEM + remote: https://rubygems.org/ + specs: + actioncable (6.1.4.1) + actionpack (= 6.1.4.1) + activesupport (= 6.1.4.1) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + actionmailbox (6.1.4.1) + actionpack (= 6.1.4.1) + activejob (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) + mail (>= 2.7.1) + actionmailer (6.1.4.1) + actionpack (= 6.1.4.1) + actionview (= 6.1.4.1) + activejob (= 6.1.4.1) + activesupport (= 6.1.4.1) + mail (~> 2.5, >= 2.5.4) + rails-dom-testing (~> 2.0) + actionpack (6.1.4.1) + actionview (= 6.1.4.1) + activesupport (= 6.1.4.1) + rack (~> 2.0, >= 2.0.9) + rack-test (>= 0.6.3) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (6.1.4.1) + actionpack (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) + nokogiri (>= 1.8.5) + actionview (6.1.4.1) + activesupport (= 6.1.4.1) + builder (~> 3.1) + erubi (~> 1.4) + rails-dom-testing (~> 2.0) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (6.1.4.1) + activesupport (= 6.1.4.1) + globalid (>= 0.3.6) + activemodel (6.1.4.1) + activesupport (= 6.1.4.1) + activemodel-serializers-xml (1.0.2) + activemodel (> 5.x) + activesupport (> 5.x) + builder (~> 3.1) + activerecord (6.1.4.1) + activemodel (= 6.1.4.1) + activesupport (= 6.1.4.1) + activestorage (6.1.4.1) + actionpack (= 6.1.4.1) + activejob (= 6.1.4.1) + activerecord (= 6.1.4.1) + activesupport (= 6.1.4.1) + marcel (~> 1.0.0) + mini_mime (>= 1.1.0) + activesupport (6.1.4.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) + bcrypt (3.1.16) + bindex (0.8.1) + bootsnap (1.8.1) + msgpack (~> 1.0) + builder (3.2.4) + byebug (11.1.3) + capybara (3.35.3) + addressable + mini_mime (>= 0.1.3) + nokogiri (~> 1.8) + rack (>= 1.6.0) + rack-test (>= 0.6.3) + regexp_parser (>= 1.5, < 3.0) + xpath (~> 3.2) + character_set (1.4.1) + sorted_set (~> 1.0) + childprocess (3.0.0) + client_side_validations (18.1.0) + js_regex (~> 3.1) + rails (>= 5.0.0.1, < 7.0) + concurrent-ruby (1.1.9) + crass (1.0.6) + devise (4.8.0) + bcrypt (~> 3.0) + orm_adapter (~> 0.1) + railties (>= 4.1.0) + responders + warden (~> 1.2.3) + erubi (1.10.0) + ffi (1.15.4) + globalid (0.5.2) + activesupport (>= 5.0) + haml (5.2.2) + temple (>= 0.8.0) + tilt + i18n (1.8.10) + concurrent-ruby (~> 1.0) + jbuilder (2.11.2) + activesupport (>= 5.0.0) + jquery-rails (4.4.0) + rails-dom-testing (>= 1, < 3) + railties (>= 4.2.0) + thor (>= 0.14, < 2.0) + jquery-ui-rails (6.0.1) + railties (>= 3.2.16) + js_regex (3.7.0) + character_set (~> 1.4) + regexp_parser (~> 2.1) + regexp_property_values (~> 1.0) + kaminari (1.2.1) + activesupport (>= 4.1.0) + kaminari-actionview (= 1.2.1) + kaminari-activerecord (= 1.2.1) + kaminari-core (= 1.2.1) + kaminari-actionview (1.2.1) + actionview + kaminari-core (= 1.2.1) + kaminari-activerecord (1.2.1) + activerecord + kaminari-core (= 1.2.1) + kaminari-core (1.2.1) + listen (3.7.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + loofah (2.12.0) + crass (~> 1.0.2) + nokogiri (>= 1.5.9) + mail (2.7.1) + mini_mime (>= 0.1.1) + marcel (1.0.1) + method_source (1.0.0) + mini_mime (1.1.1) + minitest (5.14.4) + msgpack (1.4.2) + nested_form (0.3.2) + nio4r (2.5.8) + nokogiri (1.12.4-x86_64-linux) + racc (~> 1.4) + orm_adapter (0.5.0) + public_suffix (4.0.6) + puma (5.4.0) + nio4r (~> 2.0) + racc (1.5.2) + rack (2.2.3) + rack-mini-profiler (2.3.3) + rack (>= 1.2.0) + rack-pjax (1.1.0) + nokogiri (~> 1.5) + rack (>= 1.1) + rack-proxy (0.7.0) + rack + rack-test (1.1.0) + rack (>= 1.0, < 3) + rails (6.1.4.1) + actioncable (= 6.1.4.1) + actionmailbox (= 6.1.4.1) + actionmailer (= 6.1.4.1) + actionpack (= 6.1.4.1) + actiontext (= 6.1.4.1) + actionview (= 6.1.4.1) + activejob (= 6.1.4.1) + activemodel (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) + bundler (>= 1.15.0) + railties (= 6.1.4.1) + sprockets-rails (>= 2.0.0) + rails-dom-testing (2.0.3) + activesupport (>= 4.2.0) + nokogiri (>= 1.6) + rails-html-sanitizer (1.4.2) + loofah (~> 2.3) + rails_admin (2.2.1) + activemodel-serializers-xml (>= 1.0) + builder (~> 3.1) + haml (>= 4.0, < 6) + jquery-rails (>= 3.0, < 5) + jquery-ui-rails (>= 5.0, < 7) + kaminari (>= 0.14, < 2.0) + nested_form (~> 0.3) + rack-pjax (>= 0.7) + rails (>= 5.0, < 7) + remotipart (~> 1.3) + sassc-rails (>= 1.3, < 3) + railties (6.1.4.1) + actionpack (= 6.1.4.1) + activesupport (= 6.1.4.1) + method_source + rake (>= 0.13) + thor (~> 1.0) + rake (13.0.6) + rb-fsevent (0.11.0) + rb-inotify (0.10.1) + ffi (~> 1.0) + rbtree (0.4.4) + regexp_parser (2.1.1) + regexp_property_values (1.0.0) + remotipart (1.4.4) + responders (3.0.1) + actionpack (>= 5.0) + railties (>= 5.0) + rubyzip (2.3.2) + sass-rails (6.0.0) + sassc-rails (~> 2.1, >= 2.1.1) + sassc (2.4.0) + ffi (~> 1.9) + sassc-rails (2.1.2) + railties (>= 4.0.0) + sassc (>= 2.0) + sprockets (> 3.0) + sprockets-rails + tilt + selenium-webdriver (3.142.7) + childprocess (>= 0.5, < 4.0) + rubyzip (>= 1.2.2) + semantic_range (3.0.0) + set (1.0.1) + sorted_set (1.0.3) + rbtree + set (~> 1.0) + spring (2.1.1) + sprockets (4.0.2) + concurrent-ruby (~> 1.0) + rack (> 1, < 3) + sprockets-rails (3.2.2) + actionpack (>= 4.0) + activesupport (>= 4.0) + sprockets (>= 3.0.0) + sqlite3 (1.4.2) + temple (0.8.2) + thor (1.1.0) + tilt (2.0.10) + turbolinks (5.2.1) + turbolinks-source (~> 5.2) + turbolinks-source (5.2.0) + tzinfo (2.0.4) + concurrent-ruby (~> 1.0) + warden (1.2.9) + rack (>= 2.0.9) + web-console (4.1.0) + actionview (>= 6.0.0) + activemodel (>= 6.0.0) + bindex (>= 0.4.0) + railties (>= 6.0.0) + webdrivers (4.6.1) + nokogiri (~> 1.6) + rubyzip (>= 1.3.0) + selenium-webdriver (>= 3.0, < 4.0) + webpacker (5.4.2) + activesupport (>= 5.2) + rack-proxy (>= 0.6.1) + railties (>= 5.2) + semantic_range (>= 2.3.0) + websocket-driver (0.7.5) + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + xpath (3.2.0) + nokogiri (~> 1.8) + zeitwerk (2.4.2) + +PLATFORMS + x86_64-linux + +DEPENDENCIES + bootsnap (>= 1.4.4) + byebug + capybara (>= 3.26) + client_side_validations + devise (~> 4.8) + jbuilder (~> 2.7) + jquery-rails (~> 4.3) + listen (~> 3.3) + puma (~> 5.0) + rack-mini-profiler (~> 2.0) + rails (~> 6.1.4, >= 6.1.4.1) + rails_admin (~> 2.0) + sass-rails (>= 6) + selenium-webdriver + spring + sqlite3 (~> 1.4) + turbolinks (~> 5) + tzinfo-data + web-console (>= 4.1.0) + webdrivers + webpacker (~> 5.0) + +RUBY VERSION + ruby 3.0.2p107 + +BUNDLED WITH + 2.2.22 diff --git a/README.md b/README.md new file mode 100644 index 0000000..7db80e4 --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ +# README + +This README would normally document whatever steps are necessary to get the +application up and running. + +Things you may want to cover: + +* Ruby version + +* System dependencies + +* Configuration + +* Database creation + +* Database initialization + +* How to run the test suite + +* Services (job queues, cache servers, search engines, etc.) + +* Deployment instructions + +* ... diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..9a5ea73 --- /dev/null +++ b/Rakefile @@ -0,0 +1,6 @@ +# Add your own tasks in files placed in lib/tasks ending in .rake, +# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. + +require_relative "config/application" + +Rails.application.load_tasks diff --git a/app/assets/config/manifest.js b/app/assets/config/manifest.js new file mode 100644 index 0000000..5918193 --- /dev/null +++ b/app/assets/config/manifest.js @@ -0,0 +1,2 @@ +//= link_tree ../images +//= link_directory ../stylesheets .css diff --git a/app/assets/images/.keep b/app/assets/images/.keep new file mode 100644 index 0000000..e69de29 diff --git a/app/assets/images/concertiv-logo-std.png b/app/assets/images/concertiv-logo-std.png new file mode 100644 index 0000000000000000000000000000000000000000..a0411468e631019256715eb1c22b8733baadcb8c GIT binary patch literal 4265 zcmV;a5LWMrP)(D2L#IC<>y0fJWsI z1a>=r_0F5_*E2iw=Iye&OMhR@tE#T5zPqct-y0R=30iAKbUWbZ!12I=zz=~k;0xeG z;6K0&rPTX8t2~g0-7$I!&>c7&*dO=-upU?gya_xFyhI+h^GqB_>k^b(rVY%(-it|$ zVdn<)8l`p1u=Belc0wKO)dBAUoDLiVGy|j^wgJ)(?*Vgwr$}oh&%}YWnxK4rVgpw3 z9rALYC39n>*PfUQbH_%w8tN-x9WW1g8~ehG6-cKcf+J!H7bi5Ge7u@Zg|x3Feji6> zI6B`tbOc3y4;VK_m_aZSov%G!QRJIrdUoCsq|ObMQmL{pLplsK7EPLIKk2f;rq=-8tK=+Dy3@08G;A z^$O~M$xBbdj_*cho2&60eE>xe@AK3eUzBJ8Sb*JawU+JoMNyIXR9UGW8kN=$b{KT; z>WsTg18RooF( za^6q^OeB2k!Jx3|L>wt)tU^Og;OjF<` zPha+qUdit8!O>;bmc0-kvj|6;OVb|SE$i5CXt;L)pz%Qnn^BRz)qqw z0QBkuxU`XUzlGN)PRhs~1ib6%bB1Cjl{hBk+`&5o(DP#{CKMt)?+ieXi(?ACGXUx) zQdhE2B@Wo@=GiMrY|K%_Zqa7|qK@8fz&bBar#hx%q4US}9F^Jkn=^o3c=6@I3~mxR zkK~yBBB2kn&~1RMzk&AMS$K&RG>37rV#N(($-{0|SS<(dg6&ux5IJ0?0B=BT zv^I=;c$1|og^i+~x>d?TVdVkT!4XzW?Evpi*hCKl0Gpn7hW`hg307I^X-q zKkMmS;L*9rOFibK^kDYbg-P@trNU-fN#lvca-pqG2E*-l?`us(PNxB4T|H&2#6vj4 za0jVcf!ZDMRHIVV!7TE<*mBM3@v)Y!9T?>-r6dcz((LEaHJYT1;$2Vi3Nh59bCP=6 zv^qhVzRHbMK@hoJkO_d*Hxj0j=$8>ral~Kge9J5Zt@5cem>Lm(ij^@hcZ{-hBJ4I# z3(q7`coi*ga?(`PPIBZbgYIvYjcfa^rN2|G4dr~j$Q<;eUUq6fB2P`o(?7j@&GzWpM9RUP>m^=B z9o$SkZ_HK5`D1#Y!0kcjFixpplWLU8>Z>vV_$%YOP^p@p{si<{6{YLj@zaT&43$h> z>mE!3FEa_Wa}>wIUrPLJhgUR;jmFrm?2Ohp71$Rl zn3VOwHW4#v-el?8h0!0lW|xULyjqtDP|5a`?Ll_XLD`TfH+4_@J|$m8c|jl(z&2nv zCqj4;H^GV98K|W126rI1{9^`0eh2W{|P7PodWuA{$Q=oG1egJ;l%6MMHR z+s3y%;hR4yC{5K3?#u`{hzxddi^ZJ^gLLlYAyEy_)m|EjSLysZBh}IGgea>WIypvJShuMe07D8};0c&&V?EkYe`d~V5drK$6D1+H6hRSp4BwvO^WuMr3kUZZKwWH5~ z9vS5oMOAe>++f>4+M;^CWhkn|IfWJ8gW~)q3${kZ)e7hiyVBq{<*#4=L#=pyI?%s1 zpv#6Yn9!$dST|eBHuVS3Z0V_=Iqk13c_WPXpD7sAJ?8lgz*Ziw7;=Co{G3NeNHQod zbI5C*ZW!(o#o*+<4)Qm8I!}0XRgk}@lX|Dn`ZuI62UJOd-wu~!i|s}60X;cGxYW~} z@6q2^ax#6QnGa<4H0oRWN;>EkAh(6ouJYs>PqtSR-16$uQuAWa2hR*@fcrVnjSHOD zek1%ek)ooPQnCNGk!Aqhl^#fz9Row>bXJ{qR@CfaAF_0X*q!7-+gN=zw%o%G8&w!% z@^D}MHE%ZFQ&_Dy3F=Mq+mn1R@HFp+ZtU^mkh8G0#0u&?!SAqiQJ8pPa+Z@0#{2ni zNY%tA^*x7tMtKOeNjL)Q8adCHfFowezPE-rbe#xV%f%)tZse>=Sw*~ES7<^P`b{>dOGrLhudMi z=o&-*nY#8pCFv)vYfK5MAfs*jPh6+WAH|d#;P(f}oQEd*?gV76 zCr7y!Ybs9tNN4Uv9WA$IFrJcJ#qMr-wI9<#ikpw{o{t()x*ul(hleHSqo4JAH!A!= zpF6OaJ`8U}L`ekrnRLQbJ4 zvY%mBR@0ZUmu^h6mt_E}{=|tJFYe4o$jY^uxX6bA=*WK8|L)&RCg&jgE%7@wkj5M2 z2e(_{0l5=UqGWO7D5^2eO+S zX0fPTNnTW}67rvtE^S%00h{v29_Od)2yaV*c%SBt%!|wE+W*^WP|17q$Mj-6$Qb2U zyZ|>SJ-%h1DFwa0%mhHi?x12>LF9y6cel38U>poBAb(P@kq1{ykyCbwN(VFe`(jTf zjG_WM3$f1xq#ncm{#Mx>O5O@BAbDU=i>qBxP;V0>S8|_KBvI9T(t3n^$%Hh#GPbcJ zFC3jl9Z-Mz7;DRT0M|ncNF995V-K)8LT3jv_+wr6`2--g zDboVVe--G&^0egF{CVmt#5p`0TN^Qz3U1eBftdij@@>)e8;`FoPNYAxV(E$ozqp9T?U9#qKB`!Mr^Wn%^ruzU zI(e6gt1GrR?XBp&0@-d=IQW;Me*$)%t88Arulkg25_NOGm%lri80b5@M(8kb${bw% ztSdg1N=@aq;PW`O5Sai(fr^#?v6ofsP^ig3jJ>UVv#jX+!I9|t_t|2$sDO=CfOrD3 z621a3u=54EZBS1k(Gk5~z@~iCJ1dTKC7->?%e=~_fvs)8mDs_(m+QtjZw1PMs~U<< zdvvopMrHH#J=DK~^1fs9Wfq2iFbV8!d9@tF3vf#)=K^(tdZS%lK0LZ_$RSB(%09CV z&>GkaVC4zQ0NDzx17x*XMu*$MbEgFI&=|vQfo6c@LCy#yeQ|?72IQ-}7!wtec>?Ji zOmrhh^bdqBeZvh)u(8}_#KE!E6uF}vSy_k{ zIdmcvyIoOq`_=Q!JZ3AH(!sh8gQrZ5o6-LRO3MX0GQ>9K00000 LNkvXXu0mjfXNU`n literal 0 HcmV?d00001 diff --git a/app/assets/images/symbols.svg b/app/assets/images/symbols.svg new file mode 100644 index 0000000..0160066 --- /dev/null +++ b/app/assets/images/symbols.svg @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js new file mode 100644 index 0000000..aff49c7 --- /dev/null +++ b/app/assets/javascripts/application.js @@ -0,0 +1,2 @@ +//= require jquery +//= require rails.validations diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css new file mode 100644 index 0000000..d05ea0f --- /dev/null +++ b/app/assets/stylesheets/application.css @@ -0,0 +1,15 @@ +/* + * This is a manifest file that'll be compiled into application.css, which will include all the files + * listed below. + * + * Any CSS and SCSS file within this directory, lib/assets/stylesheets, or any plugin's + * vendor/assets/stylesheets directory can be referenced here using a relative path. + * + * You're free to add application-wide styles to this file and they'll appear at the bottom of the + * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS + * files in this directory. Styles in this file should be added after the last require_* statement. + * It is generally better to create a new file per style scope. + * + *= require_tree . + *= require_self + */ diff --git a/app/assets/stylesheets/profiler.css b/app/assets/stylesheets/profiler.css new file mode 100644 index 0000000..81f3901 --- /dev/null +++ b/app/assets/stylesheets/profiler.css @@ -0,0 +1 @@ +/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */button,hr,input{overflow:visible}audio,canvas,progress,video{display:inline-block}.fill-transparent-white *,.hover-fill-transparent-white:not(.no-hover):hover *{fill:rgba(255,255,255,.9)}.dim,.dim:focus,.dim:hover{transition:opacity .15s ease-in}.grow,.grow-large{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden}.bg-bottom,.bg-center,.bg-left,.bg-right,.bg-top{background-repeat:no-repeat}.v-base,progress,sub,sup{vertical-align:baseline}.collapse,table{border-collapse:collapse}.pointer:hover,.shadow-hover,form label{cursor:pointer}.dt--fixed,table.ui-table{table-layout:fixed}.flash-message,.hidden{visibility:hidden}html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}.border-box,.ember-basic-dropdown,.ember-basic-dropdown-content,.ember-basic-dropdown-content *,.ember-power-select-dropdown *,a,article,body,code,dd,div,dl,dt,fieldset,footer,form,h1,h2,h3,h4,h5,h6,header,html,input[type=tel],input[type=text],input[type=url],input[type=number],input[type=email],input[type=password],legend,li,main,ol,p,pre,section,table,td,textarea,th,tr,ul{box-sizing:border-box}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}.bg-transparent-white,.hover-bg-transparent-white:not(.no-hover):hover{background-color:rgba(255,255,255,.9)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}.mti,.mvi{margin-top:1px}.mbi,.mvi{margin-bottom:1px}.mhi,.mli{margin-left:1px}.mhi,.mri{margin-right:1px}button,select{text-transform:none}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{padding:.35em .75em .625em}legend{color:inherit;display:table;max-width:100%;padding:0;white-space:normal}.hover-transparent-white:not(.no-hover):hover,.transparent-white{color:rgba(255,255,255,.9)}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}.pti,.pvi{padding-top:1px}.pbi,.pvi{padding-bottom:1px}.phi,.pli{padding-left:1px}.phi,.pri{padding-right:1px}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.input-reset,[type=reset],[type=submit],button,html [type=button],input[type=range]{-webkit-appearance:none}summary{display:list-item}[hidden],template{display:none}.ba{border-style:solid}.bt{border-top-style:solid}.br{border-right-style:solid}.bb{border-bottom-style:solid}.bl{border-left-style:solid}.bn{border-style:none}.btn{border-top-width:0!important}.brn{border-right-width:0!important}.bbn{border-bottom-width:0!important}.bln{border-left-width:0!important}.ba--dotted{border-style:dotted}.bt--dotted{border-top-style:dotted}.br--dotted{border-right-style:dotted}.bb--dotted{border-bottom-style:dotted}.bl--dotted{border-left-style:dotted}@media screen and (min-width:480px){.ba-s\+{border-style:solid}.bt-s\+{border-top-style:solid}.br-s\+{border-right-style:solid}.bb-s\+{border-bottom-style:solid}.bl-s\+{border-left-style:solid}.bn-s\+{border-style:none}.btn-s\+{border-top-width:0!important}.brn-s\+{border-right-width:0!important}.bbn-s\+{border-bottom-width:0!important}.bln-s\+{border-left-width:0!important}.ba--dotted-s\+{border-style:dotted}.bt--dotted-s\+{border-top-style:dotted}.br--dotted-s\+{border-right-style:dotted}.bb--dotted-s\+{border-bottom-style:dotted}.bl--dotted-s\+{border-left-style:dotted}}@media screen and (min-width:768px){.ba-m\+{border-style:solid}.bt-m\+{border-top-style:solid}.br-m\+{border-right-style:solid}.bb-m\+{border-bottom-style:solid}.bl-m\+{border-left-style:solid}.bn-m\+{border-style:none}.btn-m\+{border-top-width:0!important}.brn-m\+{border-right-width:0!important}.bbn-m\+{border-bottom-width:0!important}.bln-m\+{border-left-width:0!important}.ba--dotted-m\+{border-style:dotted}.bt--dotted-m\+{border-top-style:dotted}.br--dotted-m\+{border-right-style:dotted}.bb--dotted-m\+{border-bottom-style:dotted}.bl--dotted-m\+{border-left-style:dotted}}@media screen and (min-width:960px){.ba-l\+{border-style:solid}.bt-l\+{border-top-style:solid}.br-l\+{border-right-style:solid}.bb-l\+{border-bottom-style:solid}.bl-l\+{border-left-style:solid}.bn-l\+{border-style:none}.btn-l\+{border-top-width:0!important}.brn-l\+{border-right-width:0!important}.bbn-l\+{border-bottom-width:0!important}.bln-l\+{border-left-width:0!important}.ba--dotted-l\+{border-style:dotted}.bt--dotted-l\+{border-top-style:dotted}.br--dotted-l\+{border-right-style:dotted}.bb--dotted-l\+{border-bottom-style:dotted}.bl--dotted-l\+{border-left-style:dotted}.bw1-l\+{border-width:1px}.btw1-l\+{border-top-width:1px}.bbw1-l\+{border-bottom-width:1px}.blw1-l\+{border-left-width:1px}.brw1-l\+{border-right-width:1px}}.bw1{border-width:1px}.btw1{border-top-width:1px}.bbw1{border-bottom-width:1px}.blw1{border-left-width:1px}.brw1{border-right-width:1px}@media screen and (min-width:480px){.bw1-s\+{border-width:1px}.btw1-s\+{border-top-width:1px}.bbw1-s\+{border-bottom-width:1px}.blw1-s\+{border-left-width:1px}.brw1-s\+{border-right-width:1px}}@media screen and (min-width:768px){.bw1-m\+{border-width:1px}.btw1-m\+{border-top-width:1px}.bbw1-m\+{border-bottom-width:1px}.blw1-m\+{border-left-width:1px}.brw1-m\+{border-right-width:1px}}.bw2{border-width:2px}.btw2{border-top-width:2px}.bbw2{border-bottom-width:2px}.blw2{border-left-width:2px}.brw2{border-right-width:2px}@media screen and (min-width:480px){.bw2-s\+{border-width:2px}.btw2-s\+{border-top-width:2px}.bbw2-s\+{border-bottom-width:2px}.blw2-s\+{border-left-width:2px}.brw2-s\+{border-right-width:2px}}@media screen and (min-width:768px){.bw2-m\+{border-width:2px}.btw2-m\+{border-top-width:2px}.bbw2-m\+{border-bottom-width:2px}.blw2-m\+{border-left-width:2px}.brw2-m\+{border-right-width:2px}}@media screen and (min-width:960px){.bw2-l\+{border-width:2px}.btw2-l\+{border-top-width:2px}.bbw2-l\+{border-bottom-width:2px}.blw2-l\+{border-left-width:2px}.brw2-l\+{border-right-width:2px}.bw3-l\+{border-width:5px}.btw3-l\+{border-top-width:5px}.bbw3-l\+{border-bottom-width:5px}.blw3-l\+{border-left-width:5px}.brw3-l\+{border-right-width:5px}}.bw3{border-width:5px}.btw3{border-top-width:5px}.bbw3{border-bottom-width:5px}.blw3{border-left-width:5px}.brw3{border-right-width:5px}@media screen and (min-width:480px){.bw3-s\+{border-width:5px}.btw3-s\+{border-top-width:5px}.bbw3-s\+{border-bottom-width:5px}.blw3-s\+{border-left-width:5px}.brw3-s\+{border-right-width:5px}}@media screen and (min-width:768px){.bw3-m\+{border-width:5px}.btw3-m\+{border-top-width:5px}.bbw3-m\+{border-bottom-width:5px}.blw3-m\+{border-left-width:5px}.brw3-m\+{border-right-width:5px}}.bw4{border-width:18px}.btw4{border-top-width:18px}.bbw4{border-bottom-width:18px}.blw4{border-left-width:18px}.brw4{border-right-width:18px}@media screen and (min-width:480px){.bw4-s\+{border-width:18px}.btw4-s\+{border-top-width:18px}.bbw4-s\+{border-bottom-width:18px}.blw4-s\+{border-left-width:18px}.brw4-s\+{border-right-width:18px}}@media screen and (min-width:768px){.bw4-m\+{border-width:18px}.btw4-m\+{border-top-width:18px}.bbw4-m\+{border-bottom-width:18px}.blw4-m\+{border-left-width:18px}.brw4-m\+{border-right-width:18px}}@media screen and (min-width:960px){.bw4-l\+{border-width:18px}.btw4-l\+{border-top-width:18px}.bbw4-l\+{border-bottom-width:18px}.blw4-l\+{border-left-width:18px}.brw4-l\+{border-right-width:18px}.bw5-l\+{border-width:42px}.btw5-l\+{border-top-width:42px}.bbw5-l\+{border-bottom-width:42px}.blw5-l\+{border-left-width:42px}.brw5-l\+{border-right-width:42px}}.bw5{border-width:42px}.btw5{border-top-width:42px}.bbw5{border-bottom-width:42px}.blw5{border-left-width:42px}.brw5{border-right-width:42px}@media screen and (min-width:480px){.bw5-s\+{border-width:42px}.btw5-s\+{border-top-width:42px}.bbw5-s\+{border-bottom-width:42px}.blw5-s\+{border-left-width:42px}.brw5-s\+{border-right-width:42px}}@media screen and (min-width:768px){.bw5-m\+{border-width:42px}.btw5-m\+{border-top-width:42px}.bbw5-m\+{border-bottom-width:42px}.blw5-m\+{border-left-width:42px}.brw5-m\+{border-right-width:42px}}.bw0{border-width:0}.btw0{border-top-width:0}.bbw0{border-bottom-width:0}.blw0{border-left-width:0}.brw0{border-right-width:0}.b--transparent-white{border-color:rgba(255,255,255,.9)}.bleed-through-white,.hover-bleed-through-white:not(.no-hover):hover{color:rgba(255,255,255,.7)}.bg-bleed-through-white,.hover-bg-bleed-through-white:not(.no-hover):hover{background-color:rgba(255,255,255,.7)}.fill-bleed-through-white *,.hover-fill-bleed-through-white:not(.no-hover):hover *{fill:rgba(255,255,255,.7)}.b--bleed-through-white{border-color:rgba(255,255,255,.7)}.hover-white:not(.no-hover):hover,.white{color:#fff}.bg-white,.hover-bg-white:not(.no-hover):hover{background-color:#fff}.fill-white *,.hover-fill-white:not(.no-hover):hover *{fill:#fff}.b--white{border-color:#fff}.gray-4,.hover-gray-4:not(.no-hover):hover{color:#f5f5f5}.bg-gray-4,.hover-bg-gray-4:not(.no-hover):hover{background-color:#f5f5f5}.fill-gray-4 *,.hover-fill-gray-4:not(.no-hover):hover *{fill:#f5f5f5}.b--gray-4{border-color:#f5f5f5}.gray-3,.hover-gray-3:not(.no-hover):hover{color:#e6e6e6}.bg-gray-3,.hover-bg-gray-3:not(.no-hover):hover{background-color:#e6e6e6}.fill-gray-3 *,.hover-fill-gray-3:not(.no-hover):hover *{fill:#e6e6e6}.b--gray-3{border-color:#e6e6e6}.gray-2,.hover-gray-2:not(.no-hover):hover{color:#c4c4c4}.bg-gray-2,.hover-bg-gray-2:not(.no-hover):hover{background-color:#c4c4c4}.fill-gray-2 *,.hover-fill-gray-2:not(.no-hover):hover *{fill:#c4c4c4}.b--gray-2{border-color:#c4c4c4}.gray-1,.hover-gray-1:not(.no-hover):hover{color:#848484}.bg-gray-1,.hover-bg-gray-1:not(.no-hover):hover{background-color:#848484}.fill-gray-1 *,.hover-fill-gray-1:not(.no-hover):hover *{fill:#848484}.b--gray-1{border-color:#848484}.gray-0,.hover-gray-0:not(.no-hover):hover{color:#3a3a3a}.bg-gray-0,.hover-bg-gray-0:not(.no-hover):hover{background-color:#3a3a3a}.fill-gray-0 *,.hover-fill-gray-0:not(.no-hover):hover *{fill:#3a3a3a}.b--gray-0{border-color:#3a3a3a}.green-4,.hover-green-4:not(.no-hover):hover{color:#ECFFF8}.bg-green-4,.hover-bg-green-4:not(.no-hover):hover{background-color:#ECFFF8}.fill-green-4 *,.hover-fill-green-4:not(.no-hover):hover *{fill:#ECFFF8}.b--green-4{border-color:#ECFFF8}.green-3,.hover-green-3:not(.no-hover):hover{color:#E5F6EF}.bg-green-3,.hover-bg-green-3:not(.no-hover):hover{background-color:#E5F6EF}.fill-green-3 *,.hover-fill-green-3:not(.no-hover):hover *{fill:#E5F6EF}.b--green-3{border-color:#E5F6EF}.green-2,.hover-green-2:not(.no-hover):hover{color:#3FDAA1}.bg-green-2,.hover-bg-green-2:not(.no-hover):hover{background-color:#3FDAA1}.fill-green-2 *,.hover-fill-green-2:not(.no-hover):hover *{fill:#3FDAA1}.b--green-2{border-color:#3FDAA1}.green-1,.hover-green-1:not(.no-hover):hover{color:#19A974}.bg-green-1,.hover-bg-green-1:not(.no-hover):hover{background-color:#19A974}.fill-green-1 *,.hover-fill-green-1:not(.no-hover):hover *{fill:#19A974}.b--green-1{border-color:#19A974}.green-0,.hover-green-0:not(.no-hover):hover{color:#147546}.bg-green-0,.hover-bg-green-0:not(.no-hover):hover{background-color:#147546}.fill-green-0 *,.hover-fill-green-0:not(.no-hover):hover *{fill:#147546}.b--green-0{border-color:#147546}.hover-red-4:not(.no-hover):hover,.red-4{color:#FFF6F5}.bg-red-4,.hover-bg-red-4:not(.no-hover):hover{background-color:#FFF6F5}.fill-red-4 *,.hover-fill-red-4:not(.no-hover):hover *{fill:#FFF6F5}.b--red-4{border-color:#FFF6F5}.hover-red-3:not(.no-hover):hover,.red-3{color:#FCEBEA}.bg-red-3,.hover-bg-red-3:not(.no-hover):hover{background-color:#FCEBEA}.fill-red-3 *,.hover-fill-red-3:not(.no-hover):hover *{fill:#FCEBEA}.b--red-3{border-color:#FCEBEA}.hover-red-2:not(.no-hover):hover,.red-2{color:#FFC0BE}.bg-red-2,.hover-bg-red-2:not(.no-hover):hover{background-color:#FFC0BE}.fill-red-2 *,.hover-fill-red-2:not(.no-hover):hover *{fill:#FFC0BE}.b--red-2{border-color:#FFC0BE}.hover-red-1:not(.no-hover):hover,.red-1{color:#DF5047}.bg-red-1,.hover-bg-red-1:not(.no-hover):hover{background-color:#DF5047}.fill-red-1 *,.hover-fill-red-1:not(.no-hover):hover *{fill:#DF5047}.b--red-1{border-color:#DF5047}.hover-red-0:not(.no-hover):hover,.red-0{color:#B23B41}.bg-red-0,.hover-bg-red-0:not(.no-hover):hover{background-color:#B23B41}.fill-red-0 *,.hover-fill-red-0:not(.no-hover):hover *{fill:#B23B41}.b--red-0{border-color:#B23B41}.gold-4,.hover-gold-4:not(.no-hover):hover{color:#FFFCEB}.bg-gold-4,.hover-bg-gold-4:not(.no-hover):hover{background-color:#FFFCEB}.fill-gold-4 *,.hover-fill-gold-4:not(.no-hover):hover *{fill:#FFFCEB}.b--gold-4{border-color:#FFFCEB}.gold-3,.hover-gold-3:not(.no-hover):hover{color:#FFF5B1}.bg-gold-3,.hover-bg-gold-3:not(.no-hover):hover{background-color:#FFF5B1}.fill-gold-3 *,.hover-fill-gold-3:not(.no-hover):hover *{fill:#FFF5B1}.b--gold-3{border-color:#FFF5B1}.gold-2,.hover-gold-2:not(.no-hover):hover{color:#FFD33D}.bg-gold-2,.hover-bg-gold-2:not(.no-hover):hover{background-color:#FFD33D}.fill-gold-2 *,.hover-fill-gold-2:not(.no-hover):hover *{fill:#FFD33D}.b--gold-2{border-color:#FFD33D}.gold-1,.hover-gold-1:not(.no-hover):hover{color:#DBAB09}.bg-gold-1,.hover-bg-gold-1:not(.no-hover):hover{background-color:#DBAB09}.fill-gold-1 *,.hover-fill-gold-1:not(.no-hover):hover *{fill:#DBAB09}.b--gold-1{border-color:#DBAB09}.gold-0,.hover-gold-0:not(.no-hover):hover{color:#997600}.bg-gold-0,.hover-bg-gold-0:not(.no-hover):hover{background-color:#997600}.fill-gold-0 *,.hover-fill-gold-0:not(.no-hover):hover *{fill:#997600}.b--gold-0{border-color:#997600}.blue-4,.hover-blue-4:not(.no-hover):hover{color:#F3F9FF}.bg-blue-4,.hover-bg-blue-4:not(.no-hover):hover{background-color:#F3F9FF}.fill-blue-4 *,.hover-fill-blue-4:not(.no-hover):hover *{fill:#F3F9FF}.b--blue-4{border-color:#F3F9FF}.blue-3,.hover-blue-3:not(.no-hover):hover{color:#DDEFFF}.bg-blue-3,.hover-bg-blue-3:not(.no-hover):hover{background-color:#DDEFFF}.fill-blue-3 *,.hover-fill-blue-3:not(.no-hover):hover *{fill:#DDEFFF}.b--blue-3{border-color:#DDEFFF}.blue-2,.hover-blue-2:not(.no-hover):hover{color:#82C1FD}.bg-blue-2,.hover-bg-blue-2:not(.no-hover):hover{background-color:#82C1FD}.fill-blue-2 *,.hover-fill-blue-2:not(.no-hover):hover *{fill:#82C1FD}.b--blue-2{border-color:#82C1FD}.blue-1,.hover-blue-1:not(.no-hover):hover{color:#2194FF}.bg-blue-1,.hover-bg-blue-1:not(.no-hover):hover{background-color:#2194FF}.fill-blue-1 *,.hover-fill-blue-1:not(.no-hover):hover *{fill:#2194FF}.b--blue-1{border-color:#2194FF}.blue-0,.hover-blue-0:not(.no-hover):hover{color:#19456F}.bg-blue-0,.hover-bg-blue-0:not(.no-hover):hover{background-color:#19456F}.fill-blue-0 *,.hover-fill-blue-0:not(.no-hover):hover *{fill:#19456F}.b--blue-0{border-color:#19456F}.hover-purple-4:not(.no-hover):hover,.purple-4{color:#F8F4FF}.bg-purple-4,.hover-bg-purple-4:not(.no-hover):hover{background-color:#F8F4FF}.fill-purple-4 *,.hover-fill-purple-4:not(.no-hover):hover *{fill:#F8F4FF}.b--purple-4{border-color:#F8F4FF}.hover-purple-3:not(.no-hover):hover,.purple-3{color:#DFD0F9}.bg-purple-3,.hover-bg-purple-3:not(.no-hover):hover{background-color:#DFD0F9}.fill-purple-3 *,.hover-fill-purple-3:not(.no-hover):hover *{fill:#DFD0F9}.b--purple-3{border-color:#DFD0F9}.hover-purple-2:not(.no-hover):hover,.purple-2{color:#A480E6}.bg-purple-2,.hover-bg-purple-2:not(.no-hover):hover{background-color:#A480E6}.fill-purple-2 *,.hover-fill-purple-2:not(.no-hover):hover *{fill:#A480E6}.b--purple-2{border-color:#A480E6}.hover-purple-1:not(.no-hover):hover,.purple-1{color:#6F42C1}.bg-purple-1,.hover-bg-purple-1:not(.no-hover):hover{background-color:#6F42C1}.fill-purple-1 *,.hover-fill-purple-1:not(.no-hover):hover *{fill:#6F42C1}.b--purple-1{border-color:#6F42C1}.hover-purple-0:not(.no-hover):hover,.purple-0{color:#312A57}.bg-purple-0,.hover-bg-purple-0:not(.no-hover):hover{background-color:#312A57}.fill-purple-0 *,.hover-fill-purple-0:not(.no-hover):hover *{fill:#312A57}.b--purple-0{border-color:#312A57}.black,.hover-black:not(.no-hover):hover{color:#333}.bg-black,.hover-bg-black:not(.no-hover):hover{background-color:#333}.fill-black *,.hover-fill-black:not(.no-hover):hover *{fill:#333}.b--black{border-color:#333}.hover-true-black:not(.no-hover):hover,.true-black{color:#000}.bg-true-black,.hover-bg-true-black:not(.no-hover):hover{background-color:#000}.fill-true-black *,.hover-fill-true-black:not(.no-hover):hover *{fill:#000}.b--true-black{border-color:#000}.concertiv-navy,.hover-concertiv-navy:not(.no-hover):hover{color:#17293F}.bg-concertiv-navy,.hover-bg-concertiv-navy:not(.no-hover):hover{background-color:#17293F}.fill-concertiv-navy *,.hover-fill-concertiv-navy:not(.no-hover):hover *{fill:#17293F}.b--concertiv-navy{border-color:#17293F}.concertiv-blue,.hover-concertiv-blue:not(.no-hover):hover{color:#0D3A62}.bg-concertiv-blue,.hover-bg-concertiv-blue:not(.no-hover):hover{background-color:#0D3A62}.fill-concertiv-blue *,.hover-fill-concertiv-blue:not(.no-hover):hover *{fill:#0D3A62}.b--concertiv-blue{border-color:#0D3A62}.concertiv-red,.hover-concertiv-red:not(.no-hover):hover{color:#DD2900}.bg-concertiv-red,.hover-bg-concertiv-red:not(.no-hover):hover{background-color:#DD2900}.fill-concertiv-red *,.hover-fill-concertiv-red:not(.no-hover):hover *{fill:#DD2900}.b--concertiv-red{border-color:#DD2900}.concertiv-gold,.hover-concertiv-gold:not(.no-hover):hover{color:#FDA75D}.bg-concertiv-gold,.hover-bg-concertiv-gold:not(.no-hover):hover{background-color:#FDA75D}.fill-concertiv-gold *,.hover-fill-concertiv-gold:not(.no-hover):hover *{fill:#FDA75D}.b--concertiv-gold{border-color:#FDA75D}.concertiv-gray,.hover-concertiv-gray:not(.no-hover):hover{color:#CCCBCB}.bg-concertiv-gray,.hover-bg-concertiv-gray:not(.no-hover):hover{background-color:#CCCBCB}.fill-concertiv-gray *,.hover-fill-concertiv-gray:not(.no-hover):hover *{fill:#CCCBCB}.b--concertiv-gray{border-color:#CCCBCB}.bg-transparent{background-color:transparent}.b--transparent{border-color:transparent}.bt--transparent{border-top-color:transparent}.bl--transparent{border-left-color:transparent}.br--transparent{border-right-color:transparent}.bb--transparent{border-bottom-color:transparent}.b--inherit{border-color:inherit}.pai{padding:1px}.mai{margin:1px}@media screen and (min-width:480px){.bw0-s\+{border-width:0}.btw0-s\+{border-top-width:0}.bbw0-s\+{border-bottom-width:0}.blw0-s\+{border-left-width:0}.brw0-s\+{border-right-width:0}.pti-s\+,.pvi-s\+{padding-top:1px}.pbi-s\+,.pvi-s\+{padding-bottom:1px}.phi-s\+,.pli-s\+{padding-left:1px}.phi-s\+,.pri-s\+{padding-right:1px}.mti-s\+,.mvi-s\+{margin-top:1px}.mbi-s\+,.mvi-s\+{margin-bottom:1px}.mhi-s\+,.mli-s\+{margin-left:1px}.mhi-s\+,.mri-s\+{margin-right:1px}.pai-s\+{padding:1px}.mai-s\+{margin:1px}.mla-s\+{margin-left:auto}.mra-s\+{margin-right:auto}}@media screen and (min-width:768px){.bw0-m\+{border-width:0}.btw0-m\+{border-top-width:0}.bbw0-m\+{border-bottom-width:0}.blw0-m\+{border-left-width:0}.brw0-m\+{border-right-width:0}.pti-m\+,.pvi-m\+{padding-top:1px}.pbi-m\+,.pvi-m\+{padding-bottom:1px}.phi-m\+,.pli-m\+{padding-left:1px}.phi-m\+,.pri-m\+{padding-right:1px}.mti-m\+,.mvi-m\+{margin-top:1px}.mbi-m\+,.mvi-m\+{margin-bottom:1px}.mhi-m\+,.mli-m\+{margin-left:1px}.mhi-m\+,.mri-m\+{margin-right:1px}.pai-m\+{padding:1px}.mai-m\+{margin:1px}.mla-m\+{margin-left:auto}.mra-m\+{margin-right:auto}}@media screen and (min-width:960px){.bw0-l\+{border-width:0}.btw0-l\+{border-top-width:0}.bbw0-l\+{border-bottom-width:0}.blw0-l\+{border-left-width:0}.brw0-l\+{border-right-width:0}.pti-l\+,.pvi-l\+{padding-top:1px}.pbi-l\+,.pvi-l\+{padding-bottom:1px}.phi-l\+,.pli-l\+{padding-left:1px}.phi-l\+,.pri-l\+{padding-right:1px}.mti-l\+,.mvi-l\+{margin-top:1px}.mbi-l\+,.mvi-l\+{margin-bottom:1px}.mhi-l\+,.mli-l\+{margin-left:1px}.mhi-l\+,.mri-l\+{margin-right:1px}.pai-l\+{padding:1px}.mai-l\+{margin:1px}.mla-l\+{margin-left:auto}.mra-l\+{margin-right:auto}}.pt1,.pv1{padding-top:4px}.pb1,.pv1{padding-bottom:4px}.ph1,.pl1{padding-left:4px}.ph1,.pr1{padding-right:4px}.mt1,.mv1{margin-top:4px}.mb1,.mv1{margin-bottom:4px}.mh1,.ml1{margin-left:4px}.mh1,.mr1{margin-right:4px}.pa1{padding:4px}.ma1{margin:4px}@media screen and (min-width:480px){.pt1-s\+,.pv1-s\+{padding-top:4px}.pb1-s\+,.pv1-s\+{padding-bottom:4px}.ph1-s\+,.pl1-s\+{padding-left:4px}.ph1-s\+,.pr1-s\+{padding-right:4px}.mt1-s\+,.mv1-s\+{margin-top:4px}.mb1-s\+,.mv1-s\+{margin-bottom:4px}.mh1-s\+,.ml1-s\+{margin-left:4px}.mh1-s\+,.mr1-s\+{margin-right:4px}.pa1-s\+{padding:4px}.ma1-s\+{margin:4px}.mla-s\+{margin-left:auto}.mra-s\+{margin-right:auto}}@media screen and (min-width:768px){.pt1-m\+,.pv1-m\+{padding-top:4px}.pb1-m\+,.pv1-m\+{padding-bottom:4px}.ph1-m\+,.pl1-m\+{padding-left:4px}.ph1-m\+,.pr1-m\+{padding-right:4px}.mt1-m\+,.mv1-m\+{margin-top:4px}.mb1-m\+,.mv1-m\+{margin-bottom:4px}.mh1-m\+,.ml1-m\+{margin-left:4px}.mh1-m\+,.mr1-m\+{margin-right:4px}.pa1-m\+{padding:4px}.ma1-m\+{margin:4px}.mla-m\+{margin-left:auto}.mra-m\+{margin-right:auto}}@media screen and (min-width:960px){.pt1-l\+,.pv1-l\+{padding-top:4px}.pb1-l\+,.pv1-l\+{padding-bottom:4px}.ph1-l\+,.pl1-l\+{padding-left:4px}.ph1-l\+,.pr1-l\+{padding-right:4px}.mt1-l\+,.mv1-l\+{margin-top:4px}.mb1-l\+,.mv1-l\+{margin-bottom:4px}.mh1-l\+,.ml1-l\+{margin-left:4px}.mh1-l\+,.mr1-l\+{margin-right:4px}.pa1-l\+{padding:4px}.ma1-l\+{margin:4px}.mla-l\+{margin-left:auto}.mra-l\+{margin-right:auto}}.pt2,.pv2{padding-top:8px}.pb2,.pv2{padding-bottom:8px}.ph2,.pl2{padding-left:8px}.ph2,.pr2{padding-right:8px}.mt2,.mv2{margin-top:8px}.mb2,.mv2{margin-bottom:8px}.mh2,.ml2{margin-left:8px}.mh2,.mr2{margin-right:8px}.pa2{padding:8px}.ma2{margin:8px}@media screen and (min-width:480px){.pt2-s\+,.pv2-s\+{padding-top:8px}.pb2-s\+,.pv2-s\+{padding-bottom:8px}.ph2-s\+,.pl2-s\+{padding-left:8px}.ph2-s\+,.pr2-s\+{padding-right:8px}.mt2-s\+,.mv2-s\+{margin-top:8px}.mb2-s\+,.mv2-s\+{margin-bottom:8px}.mh2-s\+,.ml2-s\+{margin-left:8px}.mh2-s\+,.mr2-s\+{margin-right:8px}.pa2-s\+{padding:8px}.ma2-s\+{margin:8px}.mla-s\+{margin-left:auto}.mra-s\+{margin-right:auto}}@media screen and (min-width:768px){.pt2-m\+,.pv2-m\+{padding-top:8px}.pb2-m\+,.pv2-m\+{padding-bottom:8px}.ph2-m\+,.pl2-m\+{padding-left:8px}.ph2-m\+,.pr2-m\+{padding-right:8px}.mt2-m\+,.mv2-m\+{margin-top:8px}.mb2-m\+,.mv2-m\+{margin-bottom:8px}.mh2-m\+,.ml2-m\+{margin-left:8px}.mh2-m\+,.mr2-m\+{margin-right:8px}.pa2-m\+{padding:8px}.ma2-m\+{margin:8px}.mla-m\+{margin-left:auto}.mra-m\+{margin-right:auto}}@media screen and (min-width:960px){.pt2-l\+,.pv2-l\+{padding-top:8px}.pb2-l\+,.pv2-l\+{padding-bottom:8px}.ph2-l\+,.pl2-l\+{padding-left:8px}.ph2-l\+,.pr2-l\+{padding-right:8px}.mt2-l\+,.mv2-l\+{margin-top:8px}.mb2-l\+,.mv2-l\+{margin-bottom:8px}.mh2-l\+,.ml2-l\+{margin-left:8px}.mh2-l\+,.mr2-l\+{margin-right:8px}.pa2-l\+{padding:8px}.ma2-l\+{margin:8px}.mla-l\+{margin-left:auto}.mra-l\+{margin-right:auto}}.pt3,.pv3{padding-top:12px}.pb3,.pv3{padding-bottom:12px}.ph3,.pl3{padding-left:12px}.ph3,.pr3{padding-right:12px}.mt3,.mv3{margin-top:12px}.mb3,.mv3{margin-bottom:12px}.mh3,.ml3{margin-left:12px}.mh3,.mr3{margin-right:12px}.pa3{padding:12px}.ma3{margin:12px}@media screen and (min-width:480px){.pt3-s\+,.pv3-s\+{padding-top:12px}.pb3-s\+,.pv3-s\+{padding-bottom:12px}.ph3-s\+,.pl3-s\+{padding-left:12px}.ph3-s\+,.pr3-s\+{padding-right:12px}.mt3-s\+,.mv3-s\+{margin-top:12px}.mb3-s\+,.mv3-s\+{margin-bottom:12px}.mh3-s\+,.ml3-s\+{margin-left:12px}.mh3-s\+,.mr3-s\+{margin-right:12px}.pa3-s\+{padding:12px}.ma3-s\+{margin:12px}.mla-s\+{margin-left:auto}.mra-s\+{margin-right:auto}}@media screen and (min-width:768px){.pt3-m\+,.pv3-m\+{padding-top:12px}.pb3-m\+,.pv3-m\+{padding-bottom:12px}.ph3-m\+,.pl3-m\+{padding-left:12px}.ph3-m\+,.pr3-m\+{padding-right:12px}.mt3-m\+,.mv3-m\+{margin-top:12px}.mb3-m\+,.mv3-m\+{margin-bottom:12px}.mh3-m\+,.ml3-m\+{margin-left:12px}.mh3-m\+,.mr3-m\+{margin-right:12px}.pa3-m\+{padding:12px}.ma3-m\+{margin:12px}.mla-m\+{margin-left:auto}.mra-m\+{margin-right:auto}}@media screen and (min-width:960px){.pt3-l\+,.pv3-l\+{padding-top:12px}.pb3-l\+,.pv3-l\+{padding-bottom:12px}.ph3-l\+,.pl3-l\+{padding-left:12px}.ph3-l\+,.pr3-l\+{padding-right:12px}.mt3-l\+,.mv3-l\+{margin-top:12px}.mb3-l\+,.mv3-l\+{margin-bottom:12px}.mh3-l\+,.ml3-l\+{margin-left:12px}.mh3-l\+,.mr3-l\+{margin-right:12px}.pa3-l\+{padding:12px}.ma3-l\+{margin:12px}.mla-l\+{margin-left:auto}.mra-l\+{margin-right:auto}}.pt4,.pv4{padding-top:20px}.pb4,.pv4{padding-bottom:20px}.ph4,.pl4{padding-left:20px}.ph4,.pr4{padding-right:20px}.mt4,.mv4{margin-top:20px}.mb4,.mv4{margin-bottom:20px}.mh4,.ml4{margin-left:20px}.mh4,.mr4{margin-right:20px}.pa4{padding:20px}.ma4{margin:20px}@media screen and (min-width:480px){.pt4-s\+,.pv4-s\+{padding-top:20px}.pb4-s\+,.pv4-s\+{padding-bottom:20px}.ph4-s\+,.pl4-s\+{padding-left:20px}.ph4-s\+,.pr4-s\+{padding-right:20px}.mt4-s\+,.mv4-s\+{margin-top:20px}.mb4-s\+,.mv4-s\+{margin-bottom:20px}.mh4-s\+,.ml4-s\+{margin-left:20px}.mh4-s\+,.mr4-s\+{margin-right:20px}.pa4-s\+{padding:20px}.ma4-s\+{margin:20px}.mla-s\+{margin-left:auto}.mra-s\+{margin-right:auto}}@media screen and (min-width:768px){.pt4-m\+,.pv4-m\+{padding-top:20px}.pb4-m\+,.pv4-m\+{padding-bottom:20px}.ph4-m\+,.pl4-m\+{padding-left:20px}.ph4-m\+,.pr4-m\+{padding-right:20px}.mt4-m\+,.mv4-m\+{margin-top:20px}.mb4-m\+,.mv4-m\+{margin-bottom:20px}.mh4-m\+,.ml4-m\+{margin-left:20px}.mh4-m\+,.mr4-m\+{margin-right:20px}.pa4-m\+{padding:20px}.ma4-m\+{margin:20px}.mla-m\+{margin-left:auto}.mra-m\+{margin-right:auto}}@media screen and (min-width:960px){.pt4-l\+,.pv4-l\+{padding-top:20px}.pb4-l\+,.pv4-l\+{padding-bottom:20px}.ph4-l\+,.pl4-l\+{padding-left:20px}.ph4-l\+,.pr4-l\+{padding-right:20px}.mt4-l\+,.mv4-l\+{margin-top:20px}.mb4-l\+,.mv4-l\+{margin-bottom:20px}.mh4-l\+,.ml4-l\+{margin-left:20px}.mh4-l\+,.mr4-l\+{margin-right:20px}.pa4-l\+{padding:20px}.ma4-l\+{margin:20px}.mla-l\+{margin-left:auto}.mra-l\+{margin-right:auto}}.pt5,.pv5{padding-top:32px}.pb5,.pv5{padding-bottom:32px}.ph5,.pl5{padding-left:32px}.ph5,.pr5{padding-right:32px}.mt5,.mv5{margin-top:32px}.mb5,.mv5{margin-bottom:32px}.mh5,.ml5{margin-left:32px}.mh5,.mr5{margin-right:32px}.pa5{padding:32px}.ma5{margin:32px}@media screen and (min-width:480px){.pt5-s\+,.pv5-s\+{padding-top:32px}.pb5-s\+,.pv5-s\+{padding-bottom:32px}.ph5-s\+,.pl5-s\+{padding-left:32px}.ph5-s\+,.pr5-s\+{padding-right:32px}.mt5-s\+,.mv5-s\+{margin-top:32px}.mb5-s\+,.mv5-s\+{margin-bottom:32px}.mh5-s\+,.ml5-s\+{margin-left:32px}.mh5-s\+,.mr5-s\+{margin-right:32px}.pa5-s\+{padding:32px}.ma5-s\+{margin:32px}.mla-s\+{margin-left:auto}.mra-s\+{margin-right:auto}}@media screen and (min-width:768px){.pt5-m\+,.pv5-m\+{padding-top:32px}.pb5-m\+,.pv5-m\+{padding-bottom:32px}.ph5-m\+,.pl5-m\+{padding-left:32px}.ph5-m\+,.pr5-m\+{padding-right:32px}.mt5-m\+,.mv5-m\+{margin-top:32px}.mb5-m\+,.mv5-m\+{margin-bottom:32px}.mh5-m\+,.ml5-m\+{margin-left:32px}.mh5-m\+,.mr5-m\+{margin-right:32px}.pa5-m\+{padding:32px}.ma5-m\+{margin:32px}.mla-m\+{margin-left:auto}.mra-m\+{margin-right:auto}}@media screen and (min-width:960px){.pt5-l\+,.pv5-l\+{padding-top:32px}.pb5-l\+,.pv5-l\+{padding-bottom:32px}.ph5-l\+,.pl5-l\+{padding-left:32px}.ph5-l\+,.pr5-l\+{padding-right:32px}.mt5-l\+,.mv5-l\+{margin-top:32px}.mb5-l\+,.mv5-l\+{margin-bottom:32px}.mh5-l\+,.ml5-l\+{margin-left:32px}.mh5-l\+,.mr5-l\+{margin-right:32px}.pa5-l\+{padding:32px}.ma5-l\+{margin:32px}.mla-l\+{margin-left:auto}.mra-l\+{margin-right:auto}}.pt6,.pv6{padding-top:64px}.pb6,.pv6{padding-bottom:64px}.ph6,.pl6{padding-left:64px}.ph6,.pr6{padding-right:64px}.mt6,.mv6{margin-top:64px}.mb6,.mv6{margin-bottom:64px}.mh6,.ml6{margin-left:64px}.mh6,.mr6{margin-right:64px}.pa6{padding:64px}.ma6{margin:64px}@media screen and (min-width:480px){.pt6-s\+,.pv6-s\+{padding-top:64px}.pb6-s\+,.pv6-s\+{padding-bottom:64px}.ph6-s\+,.pl6-s\+{padding-left:64px}.ph6-s\+,.pr6-s\+{padding-right:64px}.mt6-s\+,.mv6-s\+{margin-top:64px}.mb6-s\+,.mv6-s\+{margin-bottom:64px}.mh6-s\+,.ml6-s\+{margin-left:64px}.mh6-s\+,.mr6-s\+{margin-right:64px}.pa6-s\+{padding:64px}.ma6-s\+{margin:64px}.mla-s\+{margin-left:auto}.mra-s\+{margin-right:auto}}@media screen and (min-width:768px){.pt6-m\+,.pv6-m\+{padding-top:64px}.pb6-m\+,.pv6-m\+{padding-bottom:64px}.ph6-m\+,.pl6-m\+{padding-left:64px}.ph6-m\+,.pr6-m\+{padding-right:64px}.mt6-m\+,.mv6-m\+{margin-top:64px}.mb6-m\+,.mv6-m\+{margin-bottom:64px}.mh6-m\+,.ml6-m\+{margin-left:64px}.mh6-m\+,.mr6-m\+{margin-right:64px}.pa6-m\+{padding:64px}.ma6-m\+{margin:64px}.mla-m\+{margin-left:auto}.mra-m\+{margin-right:auto}}@media screen and (min-width:960px){.pt6-l\+,.pv6-l\+{padding-top:64px}.pb6-l\+,.pv6-l\+{padding-bottom:64px}.ph6-l\+,.pl6-l\+{padding-left:64px}.ph6-l\+,.pr6-l\+{padding-right:64px}.mt6-l\+,.mv6-l\+{margin-top:64px}.mb6-l\+,.mv6-l\+{margin-bottom:64px}.mh6-l\+,.ml6-l\+{margin-left:64px}.mh6-l\+,.mr6-l\+{margin-right:64px}.pa6-l\+{padding:64px}.ma6-l\+{margin:64px}.mla-l\+{margin-left:auto}.mra-l\+{margin-right:auto}}.pt7,.pv7{padding-top:128px}.pb7,.pv7{padding-bottom:128px}.ph7,.pl7{padding-left:128px}.ph7,.pr7{padding-right:128px}.mt7,.mv7{margin-top:128px}.mb7,.mv7{margin-bottom:128px}.mh7,.ml7{margin-left:128px}.mh7,.mr7{margin-right:128px}.pa7{padding:128px}.ma7{margin:128px}@media screen and (min-width:480px){.pt7-s\+,.pv7-s\+{padding-top:128px}.pb7-s\+,.pv7-s\+{padding-bottom:128px}.ph7-s\+,.pl7-s\+{padding-left:128px}.ph7-s\+,.pr7-s\+{padding-right:128px}.mt7-s\+,.mv7-s\+{margin-top:128px}.mb7-s\+,.mv7-s\+{margin-bottom:128px}.mh7-s\+,.ml7-s\+{margin-left:128px}.mh7-s\+,.mr7-s\+{margin-right:128px}.pa7-s\+{padding:128px}.ma7-s\+{margin:128px}.mla-s\+{margin-left:auto}.mra-s\+{margin-right:auto}}@media screen and (min-width:768px){.pt7-m\+,.pv7-m\+{padding-top:128px}.pb7-m\+,.pv7-m\+{padding-bottom:128px}.ph7-m\+,.pl7-m\+{padding-left:128px}.ph7-m\+,.pr7-m\+{padding-right:128px}.mt7-m\+,.mv7-m\+{margin-top:128px}.mb7-m\+,.mv7-m\+{margin-bottom:128px}.mh7-m\+,.ml7-m\+{margin-left:128px}.mh7-m\+,.mr7-m\+{margin-right:128px}.pa7-m\+{padding:128px}.ma7-m\+{margin:128px}.mla-m\+{margin-left:auto}.mra-m\+{margin-right:auto}}@media screen and (min-width:960px){.pt7-l\+,.pv7-l\+{padding-top:128px}.pb7-l\+,.pv7-l\+{padding-bottom:128px}.ph7-l\+,.pl7-l\+{padding-left:128px}.ph7-l\+,.pr7-l\+{padding-right:128px}.mt7-l\+,.mv7-l\+{margin-top:128px}.mb7-l\+,.mv7-l\+{margin-bottom:128px}.mh7-l\+,.ml7-l\+{margin-left:128px}.mh7-l\+,.mr7-l\+{margin-right:128px}.pa7-l\+{padding:128px}.ma7-l\+{margin:128px}.mla-l\+{margin-left:auto}.mra-l\+{margin-right:auto}}.pt8,.pv8{padding-top:256px}.pb8,.pv8{padding-bottom:256px}.ph8,.pl8{padding-left:256px}.ph8,.pr8{padding-right:256px}.mt8,.mv8{margin-top:256px}.mb8,.mv8{margin-bottom:256px}.mh8,.ml8{margin-left:256px}.mh8,.mr8{margin-right:256px}.pa8{padding:256px}.ma8{margin:256px}@media screen and (min-width:480px){.pt8-s\+,.pv8-s\+{padding-top:256px}.pb8-s\+,.pv8-s\+{padding-bottom:256px}.ph8-s\+,.pl8-s\+{padding-left:256px}.ph8-s\+,.pr8-s\+{padding-right:256px}.mt8-s\+,.mv8-s\+{margin-top:256px}.mb8-s\+,.mv8-s\+{margin-bottom:256px}.mh8-s\+,.ml8-s\+{margin-left:256px}.mh8-s\+,.mr8-s\+{margin-right:256px}.pa8-s\+{padding:256px}.ma8-s\+{margin:256px}.mla-s\+{margin-left:auto}.mra-s\+{margin-right:auto}}@media screen and (min-width:768px){.pt8-m\+,.pv8-m\+{padding-top:256px}.pb8-m\+,.pv8-m\+{padding-bottom:256px}.ph8-m\+,.pl8-m\+{padding-left:256px}.ph8-m\+,.pr8-m\+{padding-right:256px}.mt8-m\+,.mv8-m\+{margin-top:256px}.mb8-m\+,.mv8-m\+{margin-bottom:256px}.mh8-m\+,.ml8-m\+{margin-left:256px}.mh8-m\+,.mr8-m\+{margin-right:256px}.pa8-m\+{padding:256px}.ma8-m\+{margin:256px}.mla-m\+{margin-left:auto}.mra-m\+{margin-right:auto}}@media screen and (min-width:960px){.pt8-l\+,.pv8-l\+{padding-top:256px}.pb8-l\+,.pv8-l\+{padding-bottom:256px}.ph8-l\+,.pl8-l\+{padding-left:256px}.ph8-l\+,.pr8-l\+{padding-right:256px}.mt8-l\+,.mv8-l\+{margin-top:256px}.mb8-l\+,.mv8-l\+{margin-bottom:256px}.mh8-l\+,.ml8-l\+{margin-left:256px}.mh8-l\+,.mr8-l\+{margin-right:256px}.pa8-l\+{padding:256px}.ma8-l\+{margin:256px}.mla-l\+{margin-left:auto}.mra-l\+{margin-right:auto}}.pt0,.pv0{padding-top:0}.pb0,.pv0{padding-bottom:0}.ph0,.pl0{padding-left:0}.ph0,.pr0{padding-right:0}.indent,.mt0,.mv0{margin-top:0}.indent,.mb0,.mv0{margin-bottom:0}.mh0,.ml0{margin-left:0}.mh0,.mr0{margin-right:0}.pa0{padding:0}.ma0{margin:0}.mla{margin-left:auto}.mra{margin-right:auto}@media screen and (min-width:480px){.pt0-s\+,.pv0-s\+{padding-top:0}.pb0-s\+,.pv0-s\+{padding-bottom:0}.ph0-s\+,.pl0-s\+{padding-left:0}.ph0-s\+,.pr0-s\+{padding-right:0}.mt0-s\+,.mv0-s\+{margin-top:0}.mb0-s\+,.mv0-s\+{margin-bottom:0}.mh0-s\+,.ml0-s\+{margin-left:0}.mh0-s\+,.mr0-s\+{margin-right:0}.pa0-s\+{padding:0}.ma0-s\+{margin:0}.mla-s\+{margin-left:auto}.mra-s\+{margin-right:auto}}@media screen and (min-width:768px){.pt0-m\+,.pv0-m\+{padding-top:0}.pb0-m\+,.pv0-m\+{padding-bottom:0}.ph0-m\+,.pl0-m\+{padding-left:0}.ph0-m\+,.pr0-m\+{padding-right:0}.mt0-m\+,.mv0-m\+{margin-top:0}.mb0-m\+,.mv0-m\+{margin-bottom:0}.mh0-m\+,.ml0-m\+{margin-left:0}.mh0-m\+,.mr0-m\+{margin-right:0}.pa0-m\+{padding:0}.ma0-m\+{margin:0}.mla-m\+{margin-left:auto}.mra-m\+{margin-right:auto}}.w1{width:20px}.mw1{max-width:20px}.minw1{min-width:20px}.w2{width:32px}.mw2{max-width:32px}.minw2{min-width:32px}.w3{width:64px}.mw3{max-width:64px}.minw3{min-width:64px}.w4{width:128px}.mw4{max-width:128px}.minw4{min-width:128px}.w5{width:256px}.mw5{max-width:256px}.minw5{min-width:256px}.w6{width:400px}.mw6{max-width:400px}.minw6{min-width:400px}.w7{width:512px}.mw7{max-width:512px}.minw7{min-width:512px}.w8{width:768px}.mw8{max-width:768px}.minw8{min-width:768px}.w9{width:1200px}.mw9{max-width:1200px}.minw9{min-width:1200px}.w10{width:1920px}.mw10{max-width:1920px}.minw10{min-width:1920px}.w-100{width:100%}.mw-100{max-width:100%}.minw-100{min-width:100%}.w-90{width:90%}.mw-90{max-width:90%}.minw-90{min-width:90%}.w-80{width:80%}.mw-80{max-width:80%}.minw-80{min-width:80%}.w-70{width:70%}.mw-70{max-width:70%}.minw-70{min-width:70%}.w-60{width:60%}.mw-60{max-width:60%}.minw-60{min-width:60%}.w-50{width:50%}.mw-50{max-width:50%}.minw-50{min-width:50%}.w-40{width:40%}.mw-40{max-width:40%}.minw-40{min-width:40%}.w-30{width:30%}.mw-30{max-width:30%}.minw-30{min-width:30%}.w-20{width:20%}.mw-20{max-width:20%}.minw-20{min-width:20%}.w-10{width:10%}.mw-10{max-width:10%}.minw-10{min-width:10%}.w-one-half{width:50%}.mw-one-half{max-width:50%}.minw-one-half{min-width:50%}.w-one-third{width:33.33333%}.mw-one-third{max-width:33.33333%}.minw-one-third{min-width:33.33333%}.w-one-fourth{width:25%}.mw-one-fourth{max-width:25%}.minw-one-fourth{min-width:25%}.w-two-thirds{width:66.66667%}.mw-two-thirds{max-width:66.66667%}.minw-two-thirds{min-width:66.66667%}.w-three-fourths{width:75%}.mw-three-fourths{max-width:75%}.minw-three-fourths{min-width:75%}.w-four-fifths{width:80%}.mw-four-fifths{max-width:80%}.minw-four-fifths{min-width:80%}@media screen and (min-width:480px){.w1-s\+{width:20px}.mw1-s\+{max-width:20px}.minw1-s\+{min-width:20px}.w2-s\+{width:32px}.mw2-s\+{max-width:32px}.minw2-s\+{min-width:32px}.w3-s\+{width:64px}.mw3-s\+{max-width:64px}.minw3-s\+{min-width:64px}.w4-s\+{width:128px}.mw4-s\+{max-width:128px}.minw4-s\+{min-width:128px}.w5-s\+{width:256px}.mw5-s\+{max-width:256px}.minw5-s\+{min-width:256px}.w6-s\+{width:400px}.mw6-s\+{max-width:400px}.minw6-s\+{min-width:400px}.w7-s\+{width:512px}.mw7-s\+{max-width:512px}.minw7-s\+{min-width:512px}.w8-s\+{width:768px}.mw8-s\+{max-width:768px}.minw8-s\+{min-width:768px}.w9-s\+{width:1200px}.mw9-s\+{max-width:1200px}.minw9-s\+{min-width:1200px}.w10-s\+{width:1920px}.mw10-s\+{max-width:1920px}.minw10-s\+{min-width:1920px}.w-100-s\+{width:100%}.mw-100-s\+{max-width:100%}.minw-100-s\+{min-width:100%}.w-90-s\+{width:90%}.mw-90-s\+{max-width:90%}.minw-90-s\+{min-width:90%}.w-80-s\+{width:80%}.mw-80-s\+{max-width:80%}.minw-80-s\+{min-width:80%}.w-70-s\+{width:70%}.mw-70-s\+{max-width:70%}.minw-70-s\+{min-width:70%}.w-60-s\+{width:60%}.mw-60-s\+{max-width:60%}.minw-60-s\+{min-width:60%}.w-50-s\+{width:50%}.mw-50-s\+{max-width:50%}.minw-50-s\+{min-width:50%}.w-40-s\+{width:40%}.mw-40-s\+{max-width:40%}.minw-40-s\+{min-width:40%}.w-30-s\+{width:30%}.mw-30-s\+{max-width:30%}.minw-30-s\+{min-width:30%}.w-20-s\+{width:20%}.mw-20-s\+{max-width:20%}.minw-20-s\+{min-width:20%}.w-10-s\+{width:10%}.mw-10-s\+{max-width:10%}.minw-10-s\+{min-width:10%}.w-one-half-s\+{width:50%}.mw-one-half-s\+{max-width:50%}.minw-one-half-s\+{min-width:50%}.w-one-third-s\+{width:33.33333%}.mw-one-third-s\+{max-width:33.33333%}.minw-one-third-s\+{min-width:33.33333%}.w-one-fourth-s\+{width:25%}.mw-one-fourth-s\+{max-width:25%}.minw-one-fourth-s\+{min-width:25%}.w-two-thirds-s\+{width:66.66667%}.mw-two-thirds-s\+{max-width:66.66667%}.minw-two-thirds-s\+{min-width:66.66667%}.w-three-fourths-s\+{width:75%}.mw-three-fourths-s\+{max-width:75%}.minw-three-fourths-s\+{min-width:75%}.w-four-fifths-s\+{width:80%}.mw-four-fifths-s\+{max-width:80%}.minw-four-fifths-s\+{min-width:80%}.h1-s\+{height:20px}.maxh1-s\+{max-height:20px}.minh1-s\+{min-height:20px}}@media screen and (min-width:768px){.w1-m\+{width:20px}.mw1-m\+{max-width:20px}.minw1-m\+{min-width:20px}.w2-m\+{width:32px}.mw2-m\+{max-width:32px}.minw2-m\+{min-width:32px}.w3-m\+{width:64px}.mw3-m\+{max-width:64px}.minw3-m\+{min-width:64px}.w4-m\+{width:128px}.mw4-m\+{max-width:128px}.minw4-m\+{min-width:128px}.w5-m\+{width:256px}.mw5-m\+{max-width:256px}.minw5-m\+{min-width:256px}.w6-m\+{width:400px}.mw6-m\+{max-width:400px}.minw6-m\+{min-width:400px}.w7-m\+{width:512px}.mw7-m\+{max-width:512px}.minw7-m\+{min-width:512px}.w8-m\+{width:768px}.mw8-m\+{max-width:768px}.minw8-m\+{min-width:768px}.w9-m\+{width:1200px}.mw9-m\+{max-width:1200px}.minw9-m\+{min-width:1200px}.w10-m\+{width:1920px}.mw10-m\+{max-width:1920px}.minw10-m\+{min-width:1920px}.w-100-m\+{width:100%}.mw-100-m\+{max-width:100%}.minw-100-m\+{min-width:100%}.w-90-m\+{width:90%}.mw-90-m\+{max-width:90%}.minw-90-m\+{min-width:90%}.w-80-m\+{width:80%}.mw-80-m\+{max-width:80%}.minw-80-m\+{min-width:80%}.w-70-m\+{width:70%}.mw-70-m\+{max-width:70%}.minw-70-m\+{min-width:70%}.w-60-m\+{width:60%}.mw-60-m\+{max-width:60%}.minw-60-m\+{min-width:60%}.w-50-m\+{width:50%}.mw-50-m\+{max-width:50%}.minw-50-m\+{min-width:50%}.w-40-m\+{width:40%}.mw-40-m\+{max-width:40%}.minw-40-m\+{min-width:40%}.w-30-m\+{width:30%}.mw-30-m\+{max-width:30%}.minw-30-m\+{min-width:30%}.w-20-m\+{width:20%}.mw-20-m\+{max-width:20%}.minw-20-m\+{min-width:20%}.w-10-m\+{width:10%}.mw-10-m\+{max-width:10%}.minw-10-m\+{min-width:10%}.w-one-half-m\+{width:50%}.mw-one-half-m\+{max-width:50%}.minw-one-half-m\+{min-width:50%}.w-one-third-m\+{width:33.33333%}.mw-one-third-m\+{max-width:33.33333%}.minw-one-third-m\+{min-width:33.33333%}.w-one-fourth-m\+{width:25%}.mw-one-fourth-m\+{max-width:25%}.minw-one-fourth-m\+{min-width:25%}.w-two-thirds-m\+{width:66.66667%}.mw-two-thirds-m\+{max-width:66.66667%}.minw-two-thirds-m\+{min-width:66.66667%}.w-three-fourths-m\+{width:75%}.mw-three-fourths-m\+{max-width:75%}.minw-three-fourths-m\+{min-width:75%}.w-four-fifths-m\+{width:80%}.mw-four-fifths-m\+{max-width:80%}.minw-four-fifths-m\+{min-width:80%}.h1-m\+{height:20px}.maxh1-m\+{max-height:20px}.minh1-m\+{min-height:20px}}.h1{height:20px}.maxh1{max-height:20px}.minh1{min-height:20px}@media screen and (min-width:960px){.pt0-l\+,.pv0-l\+{padding-top:0}.pb0-l\+,.pv0-l\+{padding-bottom:0}.ph0-l\+,.pl0-l\+{padding-left:0}.ph0-l\+,.pr0-l\+{padding-right:0}.mt0-l\+,.mv0-l\+{margin-top:0}.mb0-l\+,.mv0-l\+{margin-bottom:0}.mh0-l\+,.ml0-l\+{margin-left:0}.mh0-l\+,.mr0-l\+{margin-right:0}.pa0-l\+{padding:0}.ma0-l\+{margin:0}.mla-l\+{margin-left:auto}.mra-l\+{margin-right:auto}.w1-l\+{width:20px}.mw1-l\+{max-width:20px}.minw1-l\+{min-width:20px}.w2-l\+{width:32px}.mw2-l\+{max-width:32px}.minw2-l\+{min-width:32px}.w3-l\+{width:64px}.mw3-l\+{max-width:64px}.minw3-l\+{min-width:64px}.w4-l\+{width:128px}.mw4-l\+{max-width:128px}.minw4-l\+{min-width:128px}.w5-l\+{width:256px}.mw5-l\+{max-width:256px}.minw5-l\+{min-width:256px}.w6-l\+{width:400px}.mw6-l\+{max-width:400px}.minw6-l\+{min-width:400px}.w7-l\+{width:512px}.mw7-l\+{max-width:512px}.minw7-l\+{min-width:512px}.w8-l\+{width:768px}.mw8-l\+{max-width:768px}.minw8-l\+{min-width:768px}.w9-l\+{width:1200px}.mw9-l\+{max-width:1200px}.minw9-l\+{min-width:1200px}.w10-l\+{width:1920px}.mw10-l\+{max-width:1920px}.minw10-l\+{min-width:1920px}.w-100-l\+{width:100%}.mw-100-l\+{max-width:100%}.minw-100-l\+{min-width:100%}.w-90-l\+{width:90%}.mw-90-l\+{max-width:90%}.minw-90-l\+{min-width:90%}.w-80-l\+{width:80%}.mw-80-l\+{max-width:80%}.minw-80-l\+{min-width:80%}.w-70-l\+{width:70%}.mw-70-l\+{max-width:70%}.minw-70-l\+{min-width:70%}.w-60-l\+{width:60%}.mw-60-l\+{max-width:60%}.minw-60-l\+{min-width:60%}.w-50-l\+{width:50%}.mw-50-l\+{max-width:50%}.minw-50-l\+{min-width:50%}.w-40-l\+{width:40%}.mw-40-l\+{max-width:40%}.minw-40-l\+{min-width:40%}.w-30-l\+{width:30%}.mw-30-l\+{max-width:30%}.minw-30-l\+{min-width:30%}.w-20-l\+{width:20%}.mw-20-l\+{max-width:20%}.minw-20-l\+{min-width:20%}.w-10-l\+{width:10%}.mw-10-l\+{max-width:10%}.minw-10-l\+{min-width:10%}.w-one-half-l\+{width:50%}.mw-one-half-l\+{max-width:50%}.minw-one-half-l\+{min-width:50%}.w-one-third-l\+{width:33.33333%}.mw-one-third-l\+{max-width:33.33333%}.minw-one-third-l\+{min-width:33.33333%}.w-one-fourth-l\+{width:25%}.mw-one-fourth-l\+{max-width:25%}.minw-one-fourth-l\+{min-width:25%}.w-two-thirds-l\+{width:66.66667%}.mw-two-thirds-l\+{max-width:66.66667%}.minw-two-thirds-l\+{min-width:66.66667%}.w-three-fourths-l\+{width:75%}.mw-three-fourths-l\+{max-width:75%}.minw-three-fourths-l\+{min-width:75%}.w-four-fifths-l\+{width:80%}.mw-four-fifths-l\+{max-width:80%}.minw-four-fifths-l\+{min-width:80%}.h1-l\+{height:20px}.maxh1-l\+{max-height:20px}.minh1-l\+{min-height:20px}.h2-l\+{height:32px}.maxh2-l\+{max-height:32px}.minh2-l\+{min-height:32px}}.h2{height:32px}.maxh2{max-height:32px}.minh2{min-height:32px}@media screen and (min-width:480px){.h2-s\+{height:32px}.maxh2-s\+{max-height:32px}.minh2-s\+{min-height:32px}}@media screen and (min-width:768px){.h2-m\+{height:32px}.maxh2-m\+{max-height:32px}.minh2-m\+{min-height:32px}}.h3{height:64px}.maxh3{max-height:64px}.minh3{min-height:64px}@media screen and (min-width:480px){.h3-s\+{height:64px}.maxh3-s\+{max-height:64px}.minh3-s\+{min-height:64px}}@media screen and (min-width:768px){.h3-m\+{height:64px}.maxh3-m\+{max-height:64px}.minh3-m\+{min-height:64px}}@media screen and (min-width:960px){.h3-l\+{height:64px}.maxh3-l\+{max-height:64px}.minh3-l\+{min-height:64px}.h4-l\+{height:128px}.maxh4-l\+{max-height:128px}.minh4-l\+{min-height:128px}}.h4{height:128px}.maxh4{max-height:128px}.minh4{min-height:128px}@media screen and (min-width:480px){.h4-s\+{height:128px}.maxh4-s\+{max-height:128px}.minh4-s\+{min-height:128px}}@media screen and (min-width:768px){.h4-m\+{height:128px}.maxh4-m\+{max-height:128px}.minh4-m\+{min-height:128px}}.h5{height:256px}.maxh5{max-height:256px}.minh5{min-height:256px}@media screen and (min-width:480px){.h5-s\+{height:256px}.maxh5-s\+{max-height:256px}.minh5-s\+{min-height:256px}}@media screen and (min-width:768px){.h5-m\+{height:256px}.maxh5-m\+{max-height:256px}.minh5-m\+{min-height:256px}}@media screen and (min-width:960px){.h5-l\+{height:256px}.maxh5-l\+{max-height:256px}.minh5-l\+{min-height:256px}.h6-l\+{height:400px}.maxh6-l\+{max-height:400px}.minh6-l\+{min-height:400px}}.h6{height:400px}.maxh6{max-height:400px}.minh6{min-height:400px}@media screen and (min-width:480px){.h6-s\+{height:400px}.maxh6-s\+{max-height:400px}.minh6-s\+{min-height:400px}}@media screen and (min-width:768px){.h6-m\+{height:400px}.maxh6-m\+{max-height:400px}.minh6-m\+{min-height:400px}}.h7{height:512px}.maxh7{max-height:512px}.minh7{min-height:512px}@media screen and (min-width:480px){.h7-s\+{height:512px}.maxh7-s\+{max-height:512px}.minh7-s\+{min-height:512px}}@media screen and (min-width:768px){.h7-m\+{height:512px}.maxh7-m\+{max-height:512px}.minh7-m\+{min-height:512px}}@media screen and (min-width:960px){.h7-l\+{height:512px}.maxh7-l\+{max-height:512px}.minh7-l\+{min-height:512px}.h8-l\+{height:768px}.maxh8-l\+{max-height:768px}.minh8-l\+{min-height:768px}}.h8{height:768px}.maxh8{max-height:768px}.minh8{min-height:768px}@media screen and (min-width:480px){.h8-s\+{height:768px}.maxh8-s\+{max-height:768px}.minh8-s\+{min-height:768px}}@media screen and (min-width:768px){.h8-m\+{height:768px}.maxh8-m\+{max-height:768px}.minh8-m\+{min-height:768px}}.h9{height:1200px}.maxh9{max-height:1200px}.minh9{min-height:1200px}@media screen and (min-width:480px){.h9-s\+{height:1200px}.maxh9-s\+{max-height:1200px}.minh9-s\+{min-height:1200px}}@media screen and (min-width:768px){.h9-m\+{height:1200px}.maxh9-m\+{max-height:1200px}.minh9-m\+{min-height:1200px}}@media screen and (min-width:960px){.h9-l\+{height:1200px}.maxh9-l\+{max-height:1200px}.minh9-l\+{min-height:1200px}.h10-l\+{height:1920px}.maxh10-l\+{max-height:1920px}.minh10-l\+{min-height:1920px}}.h10{height:1920px}.maxh10{max-height:1920px}.minh10{min-height:1920px}@media screen and (min-width:480px){.h10-s\+{height:1920px}.maxh10-s\+{max-height:1920px}.minh10-s\+{min-height:1920px}}@media screen and (min-width:768px){.h10-m\+{height:1920px}.maxh10-m\+{max-height:1920px}.minh10-m\+{min-height:1920px}}.h-100{height:100%}.maxh-100{max-height:100%}.minh-100{min-height:100%}@media screen and (min-width:480px){.h-100-s\+{height:100%}.maxh-100-s\+{max-height:100%}.minh-100-s\+{min-height:100%}}@media screen and (min-width:768px){.h-100-m\+{height:100%}.maxh-100-m\+{max-height:100%}.minh-100-m\+{min-height:100%}}@media screen and (min-width:960px){.h-100-l\+{height:100%}.maxh-100-l\+{max-height:100%}.minh-100-l\+{min-height:100%}.h-90-l\+{height:90%}.maxh-90-l\+{max-height:90%}.minh-90-l\+{min-height:90%}}.h-90{height:90%}.maxh-90{max-height:90%}.minh-90{min-height:90%}@media screen and (min-width:480px){.h-90-s\+{height:90%}.maxh-90-s\+{max-height:90%}.minh-90-s\+{min-height:90%}}@media screen and (min-width:768px){.h-90-m\+{height:90%}.maxh-90-m\+{max-height:90%}.minh-90-m\+{min-height:90%}}.h-80{height:80%}.maxh-80{max-height:80%}.minh-80{min-height:80%}@media screen and (min-width:480px){.h-80-s\+{height:80%}.maxh-80-s\+{max-height:80%}.minh-80-s\+{min-height:80%}}@media screen and (min-width:768px){.h-80-m\+{height:80%}.maxh-80-m\+{max-height:80%}.minh-80-m\+{min-height:80%}}@media screen and (min-width:960px){.h-80-l\+{height:80%}.maxh-80-l\+{max-height:80%}.minh-80-l\+{min-height:80%}.h-70-l\+{height:70%}.maxh-70-l\+{max-height:70%}.minh-70-l\+{min-height:70%}}.h-70{height:70%}.maxh-70{max-height:70%}.minh-70{min-height:70%}@media screen and (min-width:480px){.h-70-s\+{height:70%}.maxh-70-s\+{max-height:70%}.minh-70-s\+{min-height:70%}}@media screen and (min-width:768px){.h-70-m\+{height:70%}.maxh-70-m\+{max-height:70%}.minh-70-m\+{min-height:70%}}.h-60{height:60%}.maxh-60{max-height:60%}.minh-60{min-height:60%}@media screen and (min-width:480px){.h-60-s\+{height:60%}.maxh-60-s\+{max-height:60%}.minh-60-s\+{min-height:60%}}@media screen and (min-width:768px){.h-60-m\+{height:60%}.maxh-60-m\+{max-height:60%}.minh-60-m\+{min-height:60%}}@media screen and (min-width:960px){.h-60-l\+{height:60%}.maxh-60-l\+{max-height:60%}.minh-60-l\+{min-height:60%}.h-50-l\+{height:50%}.maxh-50-l\+{max-height:50%}.minh-50-l\+{min-height:50%}}.h-50{height:50%}.maxh-50{max-height:50%}.minh-50{min-height:50%}@media screen and (min-width:480px){.h-50-s\+{height:50%}.maxh-50-s\+{max-height:50%}.minh-50-s\+{min-height:50%}}@media screen and (min-width:768px){.h-50-m\+{height:50%}.maxh-50-m\+{max-height:50%}.minh-50-m\+{min-height:50%}}.h-40{height:40%}.maxh-40{max-height:40%}.minh-40{min-height:40%}@media screen and (min-width:480px){.h-40-s\+{height:40%}.maxh-40-s\+{max-height:40%}.minh-40-s\+{min-height:40%}}@media screen and (min-width:768px){.h-40-m\+{height:40%}.maxh-40-m\+{max-height:40%}.minh-40-m\+{min-height:40%}}@media screen and (min-width:960px){.h-40-l\+{height:40%}.maxh-40-l\+{max-height:40%}.minh-40-l\+{min-height:40%}.h-30-l\+{height:30%}.maxh-30-l\+{max-height:30%}.minh-30-l\+{min-height:30%}}.h-30{height:30%}.maxh-30{max-height:30%}.minh-30{min-height:30%}@media screen and (min-width:480px){.h-30-s\+{height:30%}.maxh-30-s\+{max-height:30%}.minh-30-s\+{min-height:30%}}@media screen and (min-width:768px){.h-30-m\+{height:30%}.maxh-30-m\+{max-height:30%}.minh-30-m\+{min-height:30%}}.h-20{height:20%}.maxh-20{max-height:20%}.minh-20{min-height:20%}@media screen and (min-width:480px){.h-20-s\+{height:20%}.maxh-20-s\+{max-height:20%}.minh-20-s\+{min-height:20%}}@media screen and (min-width:768px){.h-20-m\+{height:20%}.maxh-20-m\+{max-height:20%}.minh-20-m\+{min-height:20%}}@media screen and (min-width:960px){.h-20-l\+{height:20%}.maxh-20-l\+{max-height:20%}.minh-20-l\+{min-height:20%}.h-10-l\+{height:10%}.maxh-10-l\+{max-height:10%}.minh-10-l\+{min-height:10%}}.h-10{height:10%}.maxh-10{max-height:10%}.minh-10{min-height:10%}@media screen and (min-width:480px){.h-10-s\+{height:10%}.maxh-10-s\+{max-height:10%}.minh-10-s\+{min-height:10%}}@media screen and (min-width:768px){.h-10-m\+{height:10%}.maxh-10-m\+{max-height:10%}.minh-10-m\+{min-height:10%}}.h-one-half{height:50%}.maxh-one-half{max-height:50%}.minh-one-half{min-height:50%}@media screen and (min-width:480px){.h-one-half-s\+{height:50%}.maxh-one-half-s\+{max-height:50%}.minh-one-half-s\+{min-height:50%}}@media screen and (min-width:768px){.h-one-half-m\+{height:50%}.maxh-one-half-m\+{max-height:50%}.minh-one-half-m\+{min-height:50%}}@media screen and (min-width:960px){.h-one-half-l\+{height:50%}.maxh-one-half-l\+{max-height:50%}.minh-one-half-l\+{min-height:50%}.h-one-third-l\+{height:33.33333%}.maxh-one-third-l\+{max-height:33.33333%}.minh-one-third-l\+{min-height:33.33333%}}.h-one-third{height:33.33333%}.maxh-one-third{max-height:33.33333%}.minh-one-third{min-height:33.33333%}@media screen and (min-width:480px){.h-one-third-s\+{height:33.33333%}.maxh-one-third-s\+{max-height:33.33333%}.minh-one-third-s\+{min-height:33.33333%}}@media screen and (min-width:768px){.h-one-third-m\+{height:33.33333%}.maxh-one-third-m\+{max-height:33.33333%}.minh-one-third-m\+{min-height:33.33333%}}.h-one-fourth{height:25%}.maxh-one-fourth{max-height:25%}.minh-one-fourth{min-height:25%}@media screen and (min-width:480px){.h-one-fourth-s\+{height:25%}.maxh-one-fourth-s\+{max-height:25%}.minh-one-fourth-s\+{min-height:25%}}@media screen and (min-width:768px){.h-one-fourth-m\+{height:25%}.maxh-one-fourth-m\+{max-height:25%}.minh-one-fourth-m\+{min-height:25%}}@media screen and (min-width:960px){.h-one-fourth-l\+{height:25%}.maxh-one-fourth-l\+{max-height:25%}.minh-one-fourth-l\+{min-height:25%}.h-two-thirds-l\+{height:66.66667%}.maxh-two-thirds-l\+{max-height:66.66667%}.minh-two-thirds-l\+{min-height:66.66667%}}.h-two-thirds{height:66.66667%}.maxh-two-thirds{max-height:66.66667%}.minh-two-thirds{min-height:66.66667%}@media screen and (min-width:480px){.h-two-thirds-s\+{height:66.66667%}.maxh-two-thirds-s\+{max-height:66.66667%}.minh-two-thirds-s\+{min-height:66.66667%}}@media screen and (min-width:768px){.h-two-thirds-m\+{height:66.66667%}.maxh-two-thirds-m\+{max-height:66.66667%}.minh-two-thirds-m\+{min-height:66.66667%}}.h-three-fourths{height:75%}.maxh-three-fourths{max-height:75%}.minh-three-fourths{min-height:75%}@media screen and (min-width:480px){.h-three-fourths-s\+{height:75%}.maxh-three-fourths-s\+{max-height:75%}.minh-three-fourths-s\+{min-height:75%}}@media screen and (min-width:768px){.h-three-fourths-m\+{height:75%}.maxh-three-fourths-m\+{max-height:75%}.minh-three-fourths-m\+{min-height:75%}}@media screen and (min-width:960px){.h-three-fourths-l\+{height:75%}.maxh-three-fourths-l\+{max-height:75%}.minh-three-fourths-l\+{min-height:75%}.h-four-fifths-l\+{height:80%}.maxh-four-fifths-l\+{max-height:80%}.minh-four-fifths-l\+{min-height:80%}}.h-four-fifths{height:80%}.maxh-four-fifths{max-height:80%}.minh-four-fifths{min-height:80%}@media screen and (min-width:480px){.h-four-fifths-s\+{height:80%}.maxh-four-fifths-s\+{max-height:80%}.minh-four-fifths-s\+{min-height:80%}}@media screen and (min-width:768px){.h-four-fifths-m\+{height:80%}.maxh-four-fifths-m\+{max-height:80%}.minh-four-fifths-m\+{min-height:80%}}.min-vh-100{min-height:100vh}.hover-shadow-1:hover,.shadow-1{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}@media screen and (min-width:480px){.min-vh-100-s\+{min-height:100vh}.hover-shadow-1:hover-s\+,.shadow-1-s\+{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}}@media screen and (min-width:768px){.min-vh-100-m\+{min-height:100vh}.hover-shadow-1:hover-m\+,.shadow-1-m\+{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}}@media screen and (min-width:960px){.min-vh-100-l\+{min-height:100vh}.hover-shadow-1:hover-l\+,.shadow-1-l\+{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.hover-shadow-2:hover-l\+,.shadow-2-l\+{box-shadow:0 0 6px rgba(0,0,0,.1),0 6px 12px rgba(0,0,0,.2)}}.hover-shadow-2:hover,.shadow-2{box-shadow:0 0 6px rgba(0,0,0,.1),0 6px 12px rgba(0,0,0,.2)}@media screen and (min-width:480px){.hover-shadow-2:hover-s\+,.shadow-2-s\+{box-shadow:0 0 6px rgba(0,0,0,.1),0 6px 12px rgba(0,0,0,.2)}}@media screen and (min-width:768px){.hover-shadow-2:hover-m\+,.shadow-2-m\+{box-shadow:0 0 6px rgba(0,0,0,.1),0 6px 12px rgba(0,0,0,.2)}}.hover-shadow-3:hover,.shadow-3{box-shadow:rgba(0,0,0,.1) 0 4px 3px 1px}@media screen and (min-width:480px){.hover-shadow-3:hover-s\+,.shadow-3-s\+{box-shadow:rgba(0,0,0,.1) 0 4px 3px 1px}}@media screen and (min-width:768px){.hover-shadow-3:hover-m\+,.shadow-3-m\+{box-shadow:rgba(0,0,0,.1) 0 4px 3px 1px}}@media screen and (min-width:960px){.hover-shadow-3:hover-l\+,.shadow-3-l\+{box-shadow:rgba(0,0,0,.1) 0 4px 3px 1px}.hover-shadow-sm:hover-l\+,.shadow-sm-l\+{box-shadow:0 4px 8px 0 rgba(0,0,0,.12),0 2px 4px 0 rgba(0,0,0,.08)}}.hover-shadow-sm:hover,.shadow-sm{box-shadow:0 4px 8px 0 rgba(0,0,0,.12),0 2px 4px 0 rgba(0,0,0,.08)}@media screen and (min-width:480px){.hover-shadow-sm:hover-s\+,.shadow-sm-s\+{box-shadow:0 4px 8px 0 rgba(0,0,0,.12),0 2px 4px 0 rgba(0,0,0,.08)}}@media screen and (min-width:768px){.hover-shadow-sm:hover-m\+,.shadow-sm-m\+{box-shadow:0 4px 8px 0 rgba(0,0,0,.12),0 2px 4px 0 rgba(0,0,0,.08)}}.hover-shadow-card:hover{box-shadow:0 15px 35px rgba(50,50,93,.1),0 5px 15px rgba(0,0,0,.07)}@media screen and (min-width:480px){.hover-shadow-card:hover-s\+,.shadow-card-s\+{box-shadow:0 15px 35px rgba(50,50,93,.1),0 5px 15px rgba(0,0,0,.07)}}@media screen and (min-width:768px){.hover-shadow-card:hover-m\+,.shadow-card-m\+{box-shadow:0 15px 35px rgba(50,50,93,.1),0 5px 15px rgba(0,0,0,.07)}}@media screen and (min-width:960px){.hover-shadow-card:hover-l\+,.shadow-card-l\+{box-shadow:0 15px 35px rgba(50,50,93,.1),0 5px 15px rgba(0,0,0,.07)}.hover-shadow-card-active:hover-l\+,.shadow-card-active-l\+{box-shadow:0 18px 35px rgba(50,50,93,.1),0 8px 15px rgba(0,0,0,.07)}}.hover-shadow-card-active:hover,.shadow-card-active{box-shadow:0 18px 35px rgba(50,50,93,.1),0 8px 15px rgba(0,0,0,.07)}.flex{display:flex}.inline-flex{display:inline-flex}.flex-auto{flex:1 1 auto;min-width:0;min-height:0}.flex-none{flex:none}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-column-reverse{flex-direction:column-reverse}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap-reverse{flex-wrap:wrap-reverse}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-baseline{align-self:baseline}.self-stretch{align-self:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-stretch{align-content:stretch}.content-grow{flex-grow:1}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-last{order:99999}@media screen and (min-width:480px){.hover-shadow-card-active:hover-s\+,.shadow-card-active-s\+{box-shadow:0 18px 35px rgba(50,50,93,.1),0 8px 15px rgba(0,0,0,.07)}.flex-s\+{display:flex}.inline-flex-s\+{display:inline-flex}.flex-auto-s\+{flex:1 1 auto;min-width:0;min-height:0}.flex-none-s\+{flex:none}.flex-column-s\+{flex-direction:column}.flex-row-s\+{flex-direction:row}.flex-wrap-s\+{flex-wrap:wrap}.flex-column-reverse-s\+{flex-direction:column-reverse}.flex-row-reverse-s\+{flex-direction:row-reverse}.flex-wrap-reverse-s\+{flex-wrap:wrap-reverse}.items-start-s\+{align-items:flex-start}.items-end-s\+{align-items:flex-end}.items-center-s\+{align-items:center}.items-baseline-s\+{align-items:baseline}.items-stretch-s\+{align-items:stretch}.self-start-s\+{align-self:flex-start}.self-end-s\+{align-self:flex-end}.self-center-s\+{align-self:center}.self-baseline-s\+{align-self:baseline}.self-stretch-s\+{align-self:stretch}.justify-start-s\+{justify-content:flex-start}.justify-end-s\+{justify-content:flex-end}.justify-center-s\+{justify-content:center}.justify-between-s\+{justify-content:space-between}.justify-around-s\+{justify-content:space-around}.content-start-s\+{align-content:flex-start}.content-end-s\+{align-content:flex-end}.content-center-s\+{align-content:center}.content-between-s\+{align-content:space-between}.content-around-s\+{align-content:space-around}.content-stretch-s\+{align-content:stretch}.content-grow-s\+{flex-grow:1}.order-0-s\+{order:0}.order-1-s\+{order:1}.order-2-s\+{order:2}.order-3-s\+{order:3}.order-4-s\+{order:4}.order-5-s\+{order:5}.order-6-s\+{order:6}.order-7-s\+{order:7}.order-8-s\+{order:8}.order-last-s\+{order:99999}}@media screen and (min-width:768px){.hover-shadow-card-active:hover-m\+,.shadow-card-active-m\+{box-shadow:0 18px 35px rgba(50,50,93,.1),0 8px 15px rgba(0,0,0,.07)}.flex-m\+{display:flex}.inline-flex-m\+{display:inline-flex}.flex-auto-m\+{flex:1 1 auto;min-width:0;min-height:0}.flex-none-m\+{flex:none}.flex-column-m\+{flex-direction:column}.flex-row-m\+{flex-direction:row}.flex-wrap-m\+{flex-wrap:wrap}.flex-column-reverse-m\+{flex-direction:column-reverse}.flex-row-reverse-m\+{flex-direction:row-reverse}.flex-wrap-reverse-m\+{flex-wrap:wrap-reverse}.items-start-m\+{align-items:flex-start}.items-end-m\+{align-items:flex-end}.items-center-m\+{align-items:center}.items-baseline-m\+{align-items:baseline}.items-stretch-m\+{align-items:stretch}.self-start-m\+{align-self:flex-start}.self-end-m\+{align-self:flex-end}.self-center-m\+{align-self:center}.self-baseline-m\+{align-self:baseline}.self-stretch-m\+{align-self:stretch}.justify-start-m\+{justify-content:flex-start}.justify-end-m\+{justify-content:flex-end}.justify-center-m\+{justify-content:center}.justify-between-m\+{justify-content:space-between}.justify-around-m\+{justify-content:space-around}.content-start-m\+{align-content:flex-start}.content-end-m\+{align-content:flex-end}.content-center-m\+{align-content:center}.content-between-m\+{align-content:space-between}.content-around-m\+{align-content:space-around}.content-stretch-m\+{align-content:stretch}.content-grow-m\+{flex-grow:1}.order-0-m\+{order:0}.order-1-m\+{order:1}.order-2-m\+{order:2}.order-3-m\+{order:3}.order-4-m\+{order:4}.order-5-m\+{order:5}.order-6-m\+{order:6}.order-7-m\+{order:7}.order-8-m\+{order:8}.order-last-m\+{order:99999}}.tl{text-align:left}.tr{text-align:right}.flash-message,.flash-message.alert,.tc{text-align:center}@media screen and (min-width:480px){.tl-s\+{text-align:left}.tr-s\+{text-align:right}.tc-s\+{text-align:center}}@media screen and (min-width:768px){.tl-m\+{text-align:left}.tr-m\+{text-align:right}.tc-m\+{text-align:center}}@media screen and (min-width:960px){.flex-l\+{display:flex}.inline-flex-l\+{display:inline-flex}.flex-auto-l\+{flex:1 1 auto;min-width:0;min-height:0}.flex-none-l\+{flex:none}.flex-column-l\+{flex-direction:column}.flex-row-l\+{flex-direction:row}.flex-wrap-l\+{flex-wrap:wrap}.flex-column-reverse-l\+{flex-direction:column-reverse}.flex-row-reverse-l\+{flex-direction:row-reverse}.flex-wrap-reverse-l\+{flex-wrap:wrap-reverse}.items-start-l\+{align-items:flex-start}.items-end-l\+{align-items:flex-end}.items-center-l\+{align-items:center}.items-baseline-l\+{align-items:baseline}.items-stretch-l\+{align-items:stretch}.self-start-l\+{align-self:flex-start}.self-end-l\+{align-self:flex-end}.self-center-l\+{align-self:center}.self-baseline-l\+{align-self:baseline}.self-stretch-l\+{align-self:stretch}.justify-start-l\+{justify-content:flex-start}.justify-end-l\+{justify-content:flex-end}.justify-center-l\+{justify-content:center}.justify-between-l\+{justify-content:space-between}.justify-around-l\+{justify-content:space-around}.content-start-l\+{align-content:flex-start}.content-end-l\+{align-content:flex-end}.content-center-l\+{align-content:center}.content-between-l\+{align-content:space-between}.content-around-l\+{align-content:space-around}.content-stretch-l\+{align-content:stretch}.content-grow-l\+{flex-grow:1}.order-0-l\+{order:0}.order-1-l\+{order:1}.order-2-l\+{order:2}.order-3-l\+{order:3}.order-4-l\+{order:4}.order-5-l\+{order:5}.order-6-l\+{order:6}.order-7-l\+{order:7}.order-8-l\+{order:8}.order-last-l\+{order:99999}.tl-l\+{text-align:left}.tr-l\+{text-align:right}.tc-l\+{text-align:center}}.mxhi1{max-height:1rem}.mxhi2{max-height:2rem}.mxhi3{max-height:4rem}.mxhi4{max-height:8rem}.mxhi5{max-height:16rem}.mxhi6{max-height:32rem}.mxhi7{max-height:48rem}.mxhi8{max-height:64rem}.mxhi9{max-height:96rem}.mxhi10{max-height:128rem}@media screen and (min-width:48em){.mxhi1-ns{max-height:1rem}.mxhi2-ns{max-height:2rem}.mxhi3-ns{max-height:4rem}.mxhi4-ns{max-height:8rem}.mxhi5-ns{max-height:16rem}.mxhi6-ns{max-height:32rem}.mxhi7-ns{max-height:48rem}.mxhi8-ns{max-height:64rem}.mxhi9-ns{max-height:96rem}.mxhi10-ns{max-height:128rem}}@media screen and (min-width:48em) and (max-width:64em){.mxhi1-m{max-height:1rem}.mxhi2-m{max-height:2rem}.mxhi3-m{max-height:4rem}.mxhi4-m{max-height:8rem}.mxhi5-m{max-height:16rem}.mxhi6-m{max-height:32rem}.mxhi7-m{max-height:48rem}.mxhi8-m{max-height:64rem}.mxhi9-m{max-height:96rem}.mxhi10-m{max-height:128rem}}@media screen and (min-width:64em){.mxhi1-l{max-height:1rem}.mxhi2-l{max-height:2rem}.mxhi3-l{max-height:4rem}.mxhi4-l{max-height:8rem}.mxhi5-l{max-height:16rem}.mxhi6-l{max-height:32rem}.mxhi7-l{max-height:48rem}.mxhi8-l{max-height:64rem}.mxhi9-l{max-height:96rem}.mxhi10-l{max-height:128rem}}.collapse{border-spacing:0}.striped--moon-gray:nth-child(odd){background-color:#ccc}.striped--gray-2:nth-child(odd){background-color:#eee}.striped--gray-4:nth-child(odd){background-color:#f4f4f4}.bs-solid{border-style:solid}.flex-no-shrink{flex-shrink:0}.lh-solid{line-height:1}.lh-title{line-height:1.25}.lh-copy{line-height:1.5}.br0{border-radius:0}.br1{border-radius:.125rem}.br2{border-radius:.25rem}.br3{border-radius:.5rem}.br4{border-radius:1rem}.br-100{border-radius:100%}.br-pill{border-radius:9999px}.br--bottom,.br--right{border-top-left-radius:0}.br--right,.br--top{border-bottom-left-radius:0}.br--bottom,.br--left{border-top-right-radius:0}.br--left,.br--top{border-bottom-right-radius:0}.tracked{letter-spacing:.1em}.tracked-tight{letter-spacing:-.05em}.tracked-mega{letter-spacing:.25em}.measure{max-width:30em}.measure-wide{max-width:34em}.measure-narrow{max-width:20em}.indent{text-indent:1em}.small-caps{font-variant:small-caps}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.link{text-decoration:none}.link:focus{outline:currentColor dotted 1px}.dim{opacity:1}.dim:focus,.dim:hover{opacity:.5}.dim:active{opacity:.8;transition:opacity .15s ease-out}.glow,.glow:focus,.glow:hover,.hide-child .child{transition:opacity .15s ease-in}.glow:focus,.glow:hover{opacity:1}.hide-child .child{opacity:0}.hide-child:active .child,.hide-child:focus .child,.hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.underline-hover:focus,.underline-hover:hover{text-decoration:underline}.grow{transform:translateZ(0);transition:transform .25s ease-out}.grow:focus,.grow:hover{transform:scale(1.05)}.grow:active{transform:scale(.9)}.grow-large{transform:translateZ(0);transition:transform .25s ease-in-out}.grow-large:focus,.grow-large:hover{transform:scale(1.2)}.grow-large:active{transform:scale(.95)}.shadow-hover{position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.shadow-hover::after{content:'';box-shadow:0 0 16px 2px rgba(0,0,0,.2);opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;transition:opacity .5s cubic-bezier(.165,.84,.44,1)}.o-100,.shadow-hover:focus::after,.shadow-hover:hover::after{opacity:1}.bg-animate,.bg-animate:focus,.bg-animate:hover{transition:background-color .15s ease-in-out}.f-6,.f-headline{font-size:6rem}.f-5,.f-subheadline{font-size:5rem}.f1{font-size:3rem}.f2{font-size:2.25rem}.f3{font-size:1.5rem}.f4{font-size:1.25rem}.f5{font-size:1rem}.f6{font-size:.875rem}.f7{font-size:.75rem}.normal{font-weight:400}.b{font-weight:700}.fw1{font-weight:100}.fw2{font-weight:200}.fw3{font-weight:300}.fw4{font-weight:400}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fw9{font-weight:900}.bg-center{background-position:center center}.bg-top{background-position:top center}.bg-right{background-position:center right}.bg-bottom{background-position:bottom center}.bg-left{background-position:center left}.cover{background-size:cover!important}.contain{background-size:contain!important}.b--dotted{border-style:dotted}.b--dashed{border-style:dashed}.b--solid{border-style:solid}.b--none{border-style:none}.cf:after,.cf:before{content:" ";display:table}.cf:after{clear:both}.cl{clear:left}.cr{clear:right}.cb{clear:both}.cn{clear:none}@media screen and (min-width:30em){.lh-solid-ns{line-height:1}.lh-title-ns{line-height:1.25}.lh-copy-ns{line-height:1.5}.br0-ns{border-radius:0}.br1-ns{border-radius:.125rem}.br2-ns{border-radius:.25rem}.br3-ns{border-radius:.5rem}.br4-ns{border-radius:1rem}.br-100-ns{border-radius:100%}.br-pill-ns{border-radius:9999px}.br--bottom-ns,.br--right-ns{border-top-left-radius:0}.br--right-ns,.br--top-ns{border-bottom-left-radius:0}.br--bottom-ns,.br--left-ns{border-top-right-radius:0}.br--left-ns,.br--top-ns{border-bottom-right-radius:0}.tracked-ns{letter-spacing:.1em}.tracked-tight-ns{letter-spacing:-.05em}.tracked-mega-ns{letter-spacing:.25em}.measure-ns{max-width:30em}.measure-wide-ns{max-width:34em}.measure-narrow-ns{max-width:20em}.indent-ns{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-ns{font-variant:small-caps}.truncate-ns{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.f-6-ns,.f-headline-ns{font-size:6rem}.f-5-ns,.f-subheadline-ns{font-size:5rem}.f1-ns{font-size:3rem}.f2-ns{font-size:2.25rem}.f3-ns{font-size:1.5rem}.f4-ns{font-size:1.25rem}.f5-ns{font-size:1rem}.f6-ns{font-size:.875rem}.f7-ns{font-size:.75rem}.normal-ns{font-weight:400}.b-ns{font-weight:700}.fw1-ns{font-weight:100}.fw2-ns{font-weight:200}.fw3-ns{font-weight:300}.fw4-ns{font-weight:400}.fw5-ns{font-weight:500}.fw6-ns{font-weight:600}.fw7-ns{font-weight:700}.fw8-ns{font-weight:800}.fw9-ns{font-weight:900}.bg-bottom-ns,.bg-center-ns,.bg-left-ns,.bg-right-ns,.bg-top-ns{background-repeat:no-repeat}.bg-center-ns{background-position:center center}.bg-top-ns{background-position:top center}.bg-right-ns{background-position:center right}.bg-bottom-ns{background-position:bottom center}.bg-left-ns{background-position:center left}.cover-ns{background-size:cover!important}.contain-ns{background-size:contain!important}.b--dotted-ns{border-style:dotted}.b--dashed-ns{border-style:dashed}.b--solid-ns{border-style:solid}.b--none-ns{border-style:none}.cl-ns{clear:left}.cr-ns{clear:right}.cb-ns{clear:both}.cn-ns{clear:none}}@media screen and (min-width:30em) and (max-width:60em){.lh-solid-m{line-height:1}.lh-title-m{line-height:1.25}.lh-copy-m{line-height:1.5}.br0-m{border-radius:0}.br1-m{border-radius:.125rem}.br2-m{border-radius:.25rem}.br3-m{border-radius:.5rem}.br4-m{border-radius:1rem}.br-100-m{border-radius:100%}.br-pill-m{border-radius:9999px}.br--bottom-m,.br--right-m{border-top-left-radius:0}.br--right-m,.br--top-m{border-bottom-left-radius:0}.br--bottom-m,.br--left-m{border-top-right-radius:0}.br--left-m,.br--top-m{border-bottom-right-radius:0}.tracked-m{letter-spacing:.1em}.tracked-tight-m{letter-spacing:-.05em}.tracked-mega-m{letter-spacing:.25em}.measure-m{max-width:30em}.measure-wide-m{max-width:34em}.measure-narrow-m{max-width:20em}.indent-m{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-m{font-variant:small-caps}.truncate-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.f-6-m,.f-headline-m{font-size:6rem}.f-5-m,.f-subheadline-m{font-size:5rem}.f1-m{font-size:3rem}.f2-m{font-size:2.25rem}.f3-m{font-size:1.5rem}.f4-m{font-size:1.25rem}.f5-m{font-size:1rem}.f6-m{font-size:.875rem}.f7-m{font-size:.75rem}.normal-m{font-weight:400}.b-m{font-weight:700}.fw1-m{font-weight:100}.fw2-m{font-weight:200}.fw3-m{font-weight:300}.fw4-m{font-weight:400}.fw5-m{font-weight:500}.fw6-m{font-weight:600}.fw7-m{font-weight:700}.fw8-m{font-weight:800}.fw9-m{font-weight:900}.bg-bottom-m,.bg-center-m,.bg-left-m,.bg-right-m,.bg-top-m{background-repeat:no-repeat}.bg-center-m{background-position:center center}.bg-top-m{background-position:top center}.bg-right-m{background-position:center right}.bg-bottom-m{background-position:bottom center}.bg-left-m{background-position:center left}.cover-m{background-size:cover!important}.contain-m{background-size:contain!important}.b--dotted-m{border-style:dotted}.b--dashed-m{border-style:dashed}.b--solid-m{border-style:solid}.b--none-m{border-style:none}.cl-m{clear:left}.cr-m{clear:right}.cb-m{clear:both}.cn-m{clear:none}}@media screen and (min-width:60em){.lh-solid-l{line-height:1}.lh-title-l{line-height:1.25}.lh-copy-l{line-height:1.5}.br0-l{border-radius:0}.br1-l{border-radius:.125rem}.br2-l{border-radius:.25rem}.br3-l{border-radius:.5rem}.br4-l{border-radius:1rem}.br-100-l{border-radius:100%}.br-pill-l{border-radius:9999px}.br--bottom-l,.br--right-l{border-top-left-radius:0}.br--right-l,.br--top-l{border-bottom-left-radius:0}.br--bottom-l,.br--left-l{border-top-right-radius:0}.br--left-l,.br--top-l{border-bottom-right-radius:0}.tracked-l{letter-spacing:.1em}.tracked-tight-l{letter-spacing:-.05em}.tracked-mega-l{letter-spacing:.25em}.measure-l{max-width:30em}.measure-wide-l{max-width:34em}.measure-narrow-l{max-width:20em}.indent-l{text-indent:1em;margin-top:0;margin-bottom:0}.small-caps-l{font-variant:small-caps}.truncate-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.f-6-l,.f-headline-l{font-size:6rem}.f-5-l,.f-subheadline-l{font-size:5rem}.f1-l{font-size:3rem}.f2-l{font-size:2.25rem}.f3-l{font-size:1.5rem}.f4-l{font-size:1.25rem}.f5-l{font-size:1rem}.f6-l{font-size:.875rem}.f7-l{font-size:.75rem}.normal-l{font-weight:400}.b-l{font-weight:700}.fw1-l{font-weight:100}.fw2-l{font-weight:200}.fw3-l{font-weight:300}.fw4-l{font-weight:400}.fw5-l{font-weight:500}.fw6-l{font-weight:600}.fw7-l{font-weight:700}.fw8-l{font-weight:800}.fw9-l{font-weight:900}.bg-bottom-l,.bg-center-l,.bg-left-l,.bg-right-l,.bg-top-l{background-repeat:no-repeat}.bg-center-l{background-position:center center}.bg-top-l{background-position:top center}.bg-right-l{background-position:center right}.bg-bottom-l{background-position:bottom center}.bg-left-l{background-position:center left}.cover-l{background-size:cover!important}.contain-l{background-size:contain!important}.b--dotted-l{border-style:dotted}.b--dashed-l{border-style:dashed}.b--solid-l{border-style:solid}.b--none-l{border-style:none}.cl-l{clear:left}.cr-l{clear:right}.cb-l{clear:both}.cn-l{clear:none}}.pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.top-1{top:1rem}.right-1{right:1rem}.bottom-1{bottom:1rem}.left-1{left:1rem}.top-2{top:2rem}.right-2{right:2rem}.bottom-2{bottom:2rem}.left-2{left:2rem}.top--1{top:-1rem}.right--1{right:-1rem}.bottom--1{bottom:-1rem}.left--1{left:-1rem}.top--2{top:-2rem}.right--2{right:-2rem}.bottom--2{bottom:-2rem}.left--2{left:-2rem}.absolute--fill{top:0;right:0;bottom:0;left:0}.dn{display:none}.di{display:inline}.db{display:block}.dib{display:inline-block}.dit{display:inline-table}.dt{display:table}.dtc{display:table-cell}.dt-row{display:table-row}.dt-row-group{display:table-row-group}.dt-column{display:table-column}.dt-column-group{display:table-column-group}.dt--fixed{width:100%}.fl{float:left}.fr{float:right}.fn{float:none}.sans-serif{font-family:-apple-system,BlinkMacSystemFont,'avenir next',avenir,'helvetica neue',helvetica,ubuntu,roboto,noto,'segoe ui',arial,sans-serif}.serif{font-family:georgia,times,serif}.system-sans-serif{font-family:sans-serif}.system-serif{font-family:serif}.code,code{font-family:Consolas,monaco,monospace}.courier{font-family:'Courier Next',courier,monospace}.helvetica{font-family:'helvetica neue',helvetica,sans-serif}.avenir{font-family:'avenir next',avenir,sans-serif}.athelas{font-family:athelas,georgia,serif}.georgia{font-family:georgia,serif}.times{font-family:times,serif}.bodoni{font-family:"Bodoni MT",serif}.calisto{font-family:"Calisto MT",serif}.garamond{font-family:garamond,serif}.baskerville{font-family:baskerville,serif}.i{font-style:italic}.fs-normal{font-style:normal}.input-reset{-moz-appearance:none}.button-reset::-moz-focus-inner,.input-reset::-moz-focus-inner{border:0;padding:0}img{max-width:100%}.list{list-style-type:none}.na1{margin:-4px}.na2{margin:-8px}.na3{margin:-12px}.na4{margin:-20px}.na5{margin:-32px}.na6{margin:-64px}.na7{margin:-128px}.nl1{margin-left:-4px}.nl2{margin-left:-8px}.nl3{margin-left:-12px}.nl4{margin-left:-20px}.nl5{margin-left:-32px}.nl6{margin-left:-64px}.nl7{margin-left:-128px}.nr1{margin-right:-4px}.nr2{margin-right:-8px}.nr3{margin-right:-12px}.nr4{margin-right:-20px}.nr5{margin-right:-32px}.nr6{margin-right:-64px}.nr7{margin-right:-128px}.nb1{margin-bottom:-4px}.nb2{margin-bottom:-8px}.nb3{margin-bottom:-12px}.nb4{margin-bottom:-20px}.nb5{margin-bottom:-32px}.nb6{margin-bottom:-64px}.nb7{margin-bottom:-128px}.nt1{margin-top:-4px}.nt2{margin-top:-8px}.nt3{margin-top:-12px}.nt4{margin-top:-20px}.nt5{margin-top:-32px}.nt6{margin-top:-64px}.nt7{margin-top:-128px}.o-90{opacity:.9}.o-80{opacity:.8}.o-70{opacity:.7}.o-60{opacity:.6}.o-50{opacity:.5}.o-40{opacity:.4}.o-30{opacity:.3}.o-20{opacity:.2}.o-10{opacity:.1}.o-05{opacity:.05}.o-025{opacity:.025}.o-0{opacity:0}.outline{outline:solid 1px}.outline-transparent{outline:transparent solid 1px}.outline-0{outline:0}.overflow-visible{overflow:visible}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-auto{overflow:auto}.overflow-x-visible{overflow-x:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-visible{overflow-y:visible}.overflow-y-hidden{overflow-y:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-y-auto{overflow-y:auto}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.rotate-45{transform:rotate(45deg)}.rotate-90{transform:rotate(90deg)}.rotate-135{transform:rotate(135deg)}.rotate-180{transform:rotate(180deg)}.rotate-225{transform:rotate(225deg)}.rotate-270{transform:rotate(270deg)}.rotate-315{transform:rotate(315deg)}.strike{text-decoration:line-through}.underline{text-decoration:underline}.no-underline{text-decoration:none}.ttc{text-transform:capitalize}.ttl{text-transform:lowercase}.ttu{text-transform:uppercase}.ttn{text-transform:none}@media screen and (min-width:30em){.top-0-ns{top:0}.left-0-ns{left:0}.right-0-ns{right:0}.bottom-0-ns{bottom:0}.top-1-ns{top:1rem}.left-1-ns{left:1rem}.right-1-ns{right:1rem}.bottom-1-ns{bottom:1rem}.top-2-ns{top:2rem}.left-2-ns{left:2rem}.right-2-ns{right:2rem}.bottom-2-ns{bottom:2rem}.top--1-ns{top:-1rem}.right--1-ns{right:-1rem}.bottom--1-ns{bottom:-1rem}.left--1-ns{left:-1rem}.top--2-ns{top:-2rem}.right--2-ns{right:-2rem}.bottom--2-ns{bottom:-2rem}.left--2-ns{left:-2rem}.absolute--fill-ns{top:0;right:0;bottom:0;left:0}.dn-ns{display:none}.di-ns{display:inline}.db-ns{display:block}.dib-ns{display:inline-block}.dit-ns{display:inline-table}.dt-ns{display:table}.dtc-ns{display:table-cell}.dt-row-ns{display:table-row}.dt-row-group-ns{display:table-row-group}.dt-column-ns{display:table-column}.dt-column-group-ns{display:table-column-group}.dt--fixed-ns{table-layout:fixed;width:100%}.fl-ns{float:left}.fr-ns{float:right}.fn-ns{float:none}.i-ns{font-style:italic}.fs-normal-ns{font-style:normal}.na1-ns{margin:-4px}.na2-ns{margin:-8px}.na3-ns{margin:-12px}.na4-ns{margin:-20px}.na5-ns{margin:-32px}.na6-ns{margin:-64px}.na7-ns{margin:-128px}.nl1-ns{margin-left:-4px}.nl2-ns{margin-left:-8px}.nl3-ns{margin-left:-12px}.nl4-ns{margin-left:-20px}.nl5-ns{margin-left:-32px}.nl6-ns{margin-left:-64px}.nl7-ns{margin-left:-128px}.nr1-ns{margin-right:-4px}.nr2-ns{margin-right:-8px}.nr3-ns{margin-right:-12px}.nr4-ns{margin-right:-20px}.nr5-ns{margin-right:-32px}.nr6-ns{margin-right:-64px}.nr7-ns{margin-right:-128px}.nb1-ns{margin-bottom:-4px}.nb2-ns{margin-bottom:-8px}.nb3-ns{margin-bottom:-12px}.nb4-ns{margin-bottom:-20px}.nb5-ns{margin-bottom:-32px}.nb6-ns{margin-bottom:-64px}.nb7-ns{margin-bottom:-128px}.nt1-ns{margin-top:-4px}.nt2-ns{margin-top:-8px}.nt3-ns{margin-top:-12px}.nt4-ns{margin-top:-20px}.nt5-ns{margin-top:-32px}.nt6-ns{margin-top:-64px}.nt7-ns{margin-top:-128px}.outline-ns{outline:solid 1px}.outline-transparent-ns{outline:transparent solid 1px}.outline-0-ns{outline:0}.overflow-visible-ns{overflow:visible}.overflow-hidden-ns{overflow:hidden}.overflow-scroll-ns{overflow:scroll}.overflow-auto-ns{overflow:auto}.overflow-x-visible-ns{overflow-x:visible}.overflow-x-hidden-ns{overflow-x:hidden}.overflow-x-scroll-ns{overflow-x:scroll}.overflow-x-auto-ns{overflow-x:auto}.overflow-y-visible-ns{overflow-y:visible}.overflow-y-hidden-ns{overflow-y:hidden}.overflow-y-scroll-ns{overflow-y:scroll}.overflow-y-auto-ns{overflow-y:auto}.static-ns{position:static}.relative-ns{position:relative}.absolute-ns{position:absolute}.fixed-ns{position:fixed}.rotate-45-ns{transform:rotate(45deg)}.rotate-90-ns{transform:rotate(90deg)}.rotate-135-ns{transform:rotate(135deg)}.rotate-180-ns{transform:rotate(180deg)}.rotate-225-ns{transform:rotate(225deg)}.rotate-270-ns{transform:rotate(270deg)}.rotate-315-ns{transform:rotate(315deg)}.strike-ns{text-decoration:line-through}.underline-ns{text-decoration:underline}.no-underline-ns{text-decoration:none}.ttc-ns{text-transform:capitalize}.ttl-ns{text-transform:lowercase}.ttu-ns{text-transform:uppercase}.ttn-ns{text-transform:none}}@media screen and (min-width:30em) and (max-width:60em){.top-0-m{top:0}.left-0-m{left:0}.right-0-m{right:0}.bottom-0-m{bottom:0}.top-1-m{top:1rem}.left-1-m{left:1rem}.right-1-m{right:1rem}.bottom-1-m{bottom:1rem}.top-2-m{top:2rem}.left-2-m{left:2rem}.right-2-m{right:2rem}.bottom-2-m{bottom:2rem}.top--1-m{top:-1rem}.right--1-m{right:-1rem}.bottom--1-m{bottom:-1rem}.left--1-m{left:-1rem}.top--2-m{top:-2rem}.right--2-m{right:-2rem}.bottom--2-m{bottom:-2rem}.left--2-m{left:-2rem}.absolute--fill-m{top:0;right:0;bottom:0;left:0}.dn-m{display:none}.di-m{display:inline}.db-m{display:block}.dib-m{display:inline-block}.dit-m{display:inline-table}.dt-m{display:table}.dtc-m{display:table-cell}.dt-row-m{display:table-row}.dt-row-group-m{display:table-row-group}.dt-column-m{display:table-column}.dt-column-group-m{display:table-column-group}.dt--fixed-m{table-layout:fixed;width:100%}.fl-m{float:left}.fr-m{float:right}.fn-m{float:none}.i-m{font-style:italic}.fs-normal-m{font-style:normal}.na1-m{margin:-4px}.na2-m{margin:-8px}.na3-m{margin:-12px}.na4-m{margin:-20px}.na5-m{margin:-32px}.na6-m{margin:-64px}.na7-m{margin:-128px}.nl1-m{margin-left:-4px}.nl2-m{margin-left:-8px}.nl3-m{margin-left:-12px}.nl4-m{margin-left:-20px}.nl5-m{margin-left:-32px}.nl6-m{margin-left:-64px}.nl7-m{margin-left:-128px}.nr1-m{margin-right:-4px}.nr2-m{margin-right:-8px}.nr3-m{margin-right:-12px}.nr4-m{margin-right:-20px}.nr5-m{margin-right:-32px}.nr6-m{margin-right:-64px}.nr7-m{margin-right:-128px}.nb1-m{margin-bottom:-4px}.nb2-m{margin-bottom:-8px}.nb3-m{margin-bottom:-12px}.nb4-m{margin-bottom:-20px}.nb5-m{margin-bottom:-32px}.nb6-m{margin-bottom:-64px}.nb7-m{margin-bottom:-128px}.nt1-m{margin-top:-4px}.nt2-m{margin-top:-8px}.nt3-m{margin-top:-12px}.nt4-m{margin-top:-20px}.nt5-m{margin-top:-32px}.nt6-m{margin-top:-64px}.nt7-m{margin-top:-128px}.outline-m{outline:solid 1px}.outline-transparent-m{outline:transparent solid 1px}.outline-0-m{outline:0}.overflow-visible-m{overflow:visible}.overflow-hidden-m{overflow:hidden}.overflow-scroll-m{overflow:scroll}.overflow-auto-m{overflow:auto}.overflow-x-visible-m{overflow-x:visible}.overflow-x-hidden-m{overflow-x:hidden}.overflow-x-scroll-m{overflow-x:scroll}.overflow-x-auto-m{overflow-x:auto}.overflow-y-visible-m{overflow-y:visible}.overflow-y-hidden-m{overflow-y:hidden}.overflow-y-scroll-m{overflow-y:scroll}.overflow-y-auto-m{overflow-y:auto}.static-m{position:static}.relative-m{position:relative}.absolute-m{position:absolute}.fixed-m{position:fixed}.rotate-45-m{transform:rotate(45deg)}.rotate-90-m{transform:rotate(90deg)}.rotate-135-m{transform:rotate(135deg)}.rotate-180-m{transform:rotate(180deg)}.rotate-225-m{transform:rotate(225deg)}.rotate-270-m{transform:rotate(270deg)}.rotate-315-m{transform:rotate(315deg)}.strike-m{text-decoration:line-through}.underline-m{text-decoration:underline}.no-underline-m{text-decoration:none}.ttc-m{text-transform:capitalize}.ttl-m{text-transform:lowercase}.ttu-m{text-transform:uppercase}.ttn-m{text-transform:none}}@media screen and (min-width:60em){.top-0-l{top:0}.left-0-l{left:0}.right-0-l{right:0}.bottom-0-l{bottom:0}.top-1-l{top:1rem}.left-1-l{left:1rem}.right-1-l{right:1rem}.bottom-1-l{bottom:1rem}.top-2-l{top:2rem}.left-2-l{left:2rem}.right-2-l{right:2rem}.bottom-2-l{bottom:2rem}.top--1-l{top:-1rem}.right--1-l{right:-1rem}.bottom--1-l{bottom:-1rem}.left--1-l{left:-1rem}.top--2-l{top:-2rem}.right--2-l{right:-2rem}.bottom--2-l{bottom:-2rem}.left--2-l{left:-2rem}.absolute--fill-l{top:0;right:0;bottom:0;left:0}.dn-l{display:none}.di-l{display:inline}.db-l{display:block}.dib-l{display:inline-block}.dit-l{display:inline-table}.dt-l{display:table}.dtc-l{display:table-cell}.dt-row-l{display:table-row}.dt-row-group-l{display:table-row-group}.dt-column-l{display:table-column}.dt-column-group-l{display:table-column-group}.dt--fixed-l{table-layout:fixed;width:100%}.fl-l{float:left}.fr-l{float:right}.fn-l{float:none}.i-l{font-style:italic}.fs-normal-l{font-style:normal}.na1-l{margin:-4px}.na2-l{margin:-8px}.na3-l{margin:-12px}.na4-l{margin:-20px}.na5-l{margin:-32px}.na6-l{margin:-64px}.na7-l{margin:-128px}.nl1-l{margin-left:-4px}.nl2-l{margin-left:-8px}.nl3-l{margin-left:-12px}.nl4-l{margin-left:-20px}.nl5-l{margin-left:-32px}.nl6-l{margin-left:-64px}.nl7-l{margin-left:-128px}.nr1-l{margin-right:-4px}.nr2-l{margin-right:-8px}.nr3-l{margin-right:-12px}.nr4-l{margin-right:-20px}.nr5-l{margin-right:-32px}.nr6-l{margin-right:-64px}.nr7-l{margin-right:-128px}.nb1-l{margin-bottom:-4px}.nb2-l{margin-bottom:-8px}.nb3-l{margin-bottom:-12px}.nb4-l{margin-bottom:-20px}.nb5-l{margin-bottom:-32px}.nb6-l{margin-bottom:-64px}.nb7-l{margin-bottom:-128px}.nt1-l{margin-top:-4px}.nt2-l{margin-top:-8px}.nt3-l{margin-top:-12px}.nt4-l{margin-top:-20px}.nt5-l{margin-top:-32px}.nt6-l{margin-top:-64px}.nt7-l{margin-top:-128px}.outline-l{outline:solid 1px}.outline-transparent-l{outline:transparent solid 1px}.outline-0-l{outline:0}.overflow-visible-l{overflow:visible}.overflow-hidden-l{overflow:hidden}.overflow-scroll-l{overflow:scroll}.overflow-auto-l{overflow:auto}.overflow-x-visible-l{overflow-x:visible}.overflow-x-hidden-l{overflow-x:hidden}.overflow-x-scroll-l{overflow-x:scroll}.overflow-x-auto-l{overflow-x:auto}.overflow-y-visible-l{overflow-y:visible}.overflow-y-hidden-l{overflow-y:hidden}.overflow-y-scroll-l{overflow-y:scroll}.overflow-y-auto-l{overflow-y:auto}.static-l{position:static}.relative-l{position:relative}.absolute-l{position:absolute}.fixed-l{position:fixed}.rotate-45-l{transform:rotate(45deg)}.rotate-90-l{transform:rotate(90deg)}.rotate-135-l{transform:rotate(135deg)}.rotate-180-l{transform:rotate(180deg)}.rotate-225-l{transform:rotate(225deg)}.rotate-270-l{transform:rotate(270deg)}.rotate-315-l{transform:rotate(315deg)}.strike-l{text-decoration:line-through}.underline-l{text-decoration:underline}.no-underline-l{text-decoration:none}.ttc-l{text-transform:capitalize}.ttl-l{text-transform:lowercase}.ttu-l{text-transform:uppercase}.ttn-l{text-transform:none}.center-l{margin-right:auto;margin-left:auto}}.overflow-container{overflow-y:scroll}.center{margin-right:auto;margin-left:auto}.v-mid{vertical-align:middle}.v-top{vertical-align:top}.v-btm{vertical-align:bottom}.clip{position:fixed!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal{white-space:normal}.nowrap{white-space:nowrap}.pre{white-space:pre}.word-normal{word-break:normal}.word-wrap{word-break:break-all}.word-nowrap{word-break:keep-all}@media screen and (min-width:30em){.center-ns{margin-right:auto;margin-left:auto}.v-base-ns{vertical-align:baseline}.v-mid-ns{vertical-align:middle}.v-top-ns{vertical-align:top}.v-btm-ns{vertical-align:bottom}.clip-ns{position:fixed!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-ns{white-space:normal}.nowrap-ns{white-space:nowrap}.pre-ns{white-space:pre}.word-normal-ns{word-break:normal}.word-wrap-ns{word-break:break-all}.word-nowrap-ns{word-break:keep-all}}@media screen and (min-width:30em) and (max-width:60em){.center-m{margin-right:auto;margin-left:auto}.v-base-m{vertical-align:baseline}.v-mid-m{vertical-align:middle}.v-top-m{vertical-align:top}.v-btm-m{vertical-align:bottom}.clip-m{position:fixed!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-m{white-space:normal}.nowrap-m{white-space:nowrap}.pre-m{white-space:pre}.word-normal-m{word-break:normal}.word-wrap-m{word-break:break-all}.word-nowrap-m{word-break:keep-all}}@media screen and (min-width:60em){.v-base-l{vertical-align:baseline}.v-mid-l{vertical-align:middle}.v-top-l{vertical-align:top}.v-btm-l{vertical-align:bottom}.clip-l{position:fixed!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}.ws-normal-l{white-space:normal}.nowrap-l{white-space:nowrap}.pre-l{white-space:pre}.word-normal-l{word-break:normal}.word-wrap-l{word-break:break-all}.word-nowrap-l{word-break:keep-all}}.z-0{z-index:0}.z-1{z-index:1}.z-2{z-index:2}.ui-modal-overlay,.z-3{z-index:3}.z-4{z-index:4}.z-5{z-index:5}.z-999{z-index:999}.z-9999{z-index:9999}.z-max{z-index:2147483647}.z-inherit{z-index:inherit}.z-initial{z-index:initial}.z-unset{z-index:unset}*{font-smoothing:antialiased;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body,html{background:#333}.hotel-detail-table .table .table,.hotel-detail-table table{background-color:#fff}body{font-family:'helvetica neue',helvetica,sans-serif;color:#333}.hk-grotesk,button{font-family:"HK Grotesk",'helvetica neue',helvetica,sans-serif}.sticky-wrapper.is-sticky .sticky{z-index:9999!important}.ember-modal-dialog{z-index:5}[disabled]{cursor:default!important}.mvh-100{min-height:100vh}table tbody.no-border-on-bottom-row tr:last-child,table tbody.no-border-on-bottom-row tr:last-child td,table tbody.no-border-on-bottom-row tr:only-child,table tbody.no-border-on-bottom-row tr:only-child td{border:none!important}.default-liquid-destination{z-index:100001}.table-header{padding:0!important}.table-header-action{display:block;padding:8px 4px}@font-face{font-family:'HK Grotesk';src:url(fonts/HKGrotesk-Regular.otf) format("opentype");font-weight:400;font-style:normal}@font-face{font-family:'HK Grotesk';src:url(fonts/HKGrotesk-Bold.otf) format("opentype");font-weight:700;font-style:normal}@font-face{font-family:'HK Grotesk';src:url(fonts/HKGrotesk-Italic.otf) format("opentype");font-weight:400;font-style:italic}@font-face{font-family:'HK Grotesk';src:url(fonts/HKGrotesk-BoldItalic.otf) format("opentype");font-weight:700;font-style:italic}.min-h8{min-height:640px}.overflow-scroll-container{height:50vh;min-height:300px;overflow:scroll}html.filled-layout,html.filled-layout body,html.filled-layout body>.ember-view{height:100%}html.filled-layout body>.ember-view~.ember-view{height:auto}html.filled-layout body{overflow:hidden}.ember-google-map{width:100%;height:500px}.crop-top::before{content:'';display:block;height:0;width:0;margin-top:calc((1 - 1.5) * 1em)}.hotel-detail-table table col[class*=col-]{position:static;display:table-column;float:none}.hotel-detail-table table td[class*=col-],.hotel-detail-table table th[class*=col-]{position:static;display:table-cell;float:none}.hotel-detail-table caption{padding-top:1rem;padding-bottom:1rem;color:#ddd;text-align:left}.hotel-detail-table th{text-align:left}.hotel-detail-table .table{width:100%;max-width:100%;margin-bottom:1.2rem}.hotel-detail-table .table>tbody>tr>td,.hotel-detail-table .table>tbody>tr>th,.hotel-detail-table .table>tfoot>tr>td,.hotel-detail-table .table>tfoot>tr>th,.hotel-detail-table .table>thead>tr>td,.hotel-detail-table .table>thead>tr>th{padding-top:1rem;padding-bottom:1rem;line-height:1rem;vertical-align:top;border-top:1px solid #dadada}.hotel-detail-table .table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dadada}.hotel-detail-table .table>caption+thead>tr:first-child>td,.hotel-detail-table .table>caption+thead>tr:first-child>th,.hotel-detail-table .table>colgroup+thead>tr:first-child>td,.hotel-detail-table .table>colgroup+thead>tr:first-child>th,.hotel-detail-table .table>thead:first-child>tr:first-child>td,.hotel-detail-table .table>thead:first-child>tr:first-child>th{border-top:0}.hotel-detail-table .table>tbody+tbody{border-top:2px solid #dadada}.hotel-detail-table .table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:420){.hotel-detail-table .table-responsive{width:100%;margin-bottom:.9rem;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dadada}.hotel-detail-table .table-responsive>.table{margin-bottom:0}.hotel-detail-table .table-responsive>.table>tbody>tr>td,.hotel-detail-table .table-responsive>.table>tbody>tr>th,.hotel-detail-table .table-responsive>.table>tfoot>tr>td,.hotel-detail-table .table-responsive>.table>tfoot>tr>th,.hotel-detail-table .table-responsive>.table>thead>tr>td,.hotel-detail-table .table-responsive>.table>thead>tr>th{white-space:nowrap}.hotel-detail-table .table-responsive>.table-bordered{border:0}.hotel-detail-table .table-responsive>.table-bordered>tbody>tr>td:first-child,.hotel-detail-table .table-responsive>.table-bordered>tbody>tr>th:first-child,.hotel-detail-table .table-responsive>.table-bordered>tfoot>tr>td:first-child,.hotel-detail-table .table-responsive>.table-bordered>tfoot>tr>th:first-child,.hotel-detail-table .table-responsive>.table-bordered>thead>tr>td:first-child,.hotel-detail-table .table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.hotel-detail-table .table-responsive>.table-bordered>tbody>tr>td:last-child,.hotel-detail-table .table-responsive>.table-bordered>tbody>tr>th:last-child,.hotel-detail-table .table-responsive>.table-bordered>tfoot>tr>td:last-child,.hotel-detail-table .table-responsive>.table-bordered>tfoot>tr>th:last-child,.hotel-detail-table .table-responsive>.table-bordered>thead>tr>td:last-child,.hotel-detail-table .table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.hotel-detail-table .table-responsive>.table-bordered>tbody>tr:last-child>td,.hotel-detail-table .table-responsive>.table-bordered>tbody>tr:last-child>th,.hotel-detail-table .table-responsive>.table-bordered>tfoot>tr:last-child>td,.hotel-detail-table .table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}ul.wrap-tag-list.list-unstyled{padding-left:0;padding-top:0;margin-top:0}ul.wrap-tag-list li.tag-token{display:inline-block;padding:3px 12px 2px;border-radius:15px;background-color:#5a5a5a;color:#fafafa;font-size:.8em;font-weight:700;text-transform:uppercase;margin-bottom:2px}.login-bg{background-color:#17293F;background-image:url("data:image/svg+xml,%3Csvg width='100' height='20' viewBox='0 0 100 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.184 20c.357-.13.72-.264 1.088-.402l1.768-.661C33.64 15.347 39.647 14 50 14c10.271 0 15.362 1.222 24.629 4.928.955.383 1.869.74 2.75 1.072h6.225c-2.51-.73-5.139-1.691-8.233-2.928C65.888 13.278 60.562 12 50 12c-10.626 0-16.855 1.397-26.66 5.063l-1.767.662c-2.475.923-4.66 1.674-6.724 2.275h6.335zm0-20C13.258 2.892 8.077 4 0 4V2c5.744 0 9.951-.574 14.85-2h6.334zM77.38 0C85.239 2.966 90.502 4 100 4V2c-6.842 0-11.386-.542-16.396-2h-6.225zM0 14c8.44 0 13.718-1.21 22.272-4.402l1.768-.661C33.64 5.347 39.647 4 50 4c10.271 0 15.362 1.222 24.629 4.928C84.112 12.722 89.438 14 100 14v-2c-10.271 0-15.362-1.222-24.629-4.928C65.888 3.278 60.562 2 50 2 39.374 2 33.145 3.397 23.34 7.063l-1.767.662C13.223 10.84 8.163 12 0 12v2z' fill='%23bdbdbd' fill-opacity='0.04' fill-rule='evenodd'/%3E%3C/svg%3E")}.admin-bg,.external-bg{background-image:url("data:image/svg+xml,%3Csvg width='6' height='6' viewBox='0 0 6 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.09' fill-rule='evenodd'%3E%3Cpath d='M5 0h1L0 6V5zM6 5v1H5z'/%3E%3C/g%3E%3C/svg%3E")}.external-bg{background-color:#0D3A62}.admin-bg{background-color:#333}.bg-disabled{background-color:#eaeaea;background-image:url("data:image/svg+xml,%3Csvg width='6' height='6' viewBox='0 0 6 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23bdbbbb' fill-opacity='0.51' fill-rule='evenodd'%3E%3Cpath d='M5 0h1L0 6V5zM6 5v1H5z'/%3E%3C/g%3E%3C/svg%3E")}.ui-card{transition:all .15s}.ui-card:hover{transform:translateY(-2px)}input{caret-color:#19A974}input.dark{color:#fff}input.dark::-webkit-input-placeholder{color:#fff}input.dark::-moz-placeholder{color:#fff}input.dark:-moz-placeholder{color:#fff}input[type=range]{width:100%;margin:0}input[type=range]::-webkit-slider-runnable-track{width:100%;height:10px;cursor:pointer;box-shadow:0 1px 1px #3a3a3a,0 0 1px;background:#f5f5f5;border-radius:5px;border:.7px solid #c4c4c4}input[type=range]::-webkit-slider-thumb{box-shadow:0 1px 1px #3a3a3a,0 0 1px;border:.7px solid #c4c4c4;height:20px;width:20px;border-radius:10px;background:#c4c4c4;background:linear-gradient(0deg,#c4c4c4 0,#c4c4c4 20%,#f5f5f5 100%);cursor:pointer;-webkit-appearance:none;margin-top:-5px}input[type=range]:focus::-webkit-slider-runnable-track{background:#E5F6EF}input[type=range]::-moz-range-track{width:100%;height:10px;cursor:pointer;box-shadow:0 1px 1px #3a3a3a,0 0 1px;background:#f5f5f5;border-radius:5px;border:.7px solid #c4c4c4}input[type=range]::-moz-range-thumb{box-shadow:0 1px 1px #3a3a3a,0 0 1px;border:.7px solid #c4c4c4;height:20px;width:20px;border-radius:10px;background:#c4c4c4;background:linear-gradient(0deg,#c4c4c4 0,#c4c4c4 20%,#f5f5f5 100%);cursor:pointer}.ticked-range .ticked-range__ticks .ticked-range__tick{top:2px;transform:translate(-50%,0)}.ticked-range .ticked-range__ticks .ticked-range__tick::after{content:".";color:transparent;position:absolute;top:-18px;left:50%;height:13px;border-left:.7px solid #e6e6e6}.ticked-range input[type=range]{position:relative;z-index:10;background:0 0}.dot-loader{background:0 0}.dot-loader .loading-dot{width:8px;height:8px;margin:0 4px;background:#3a3a3a;border-radius:50%;opacity:0;animation:loadingFade 1s infinite}.dot-loader .loading-dot:nth-child(1){animation-delay:0s}.dot-loader .loading-dot:nth-child(2){animation-delay:.1s}.dot-loader .loading-dot:nth-child(3){animation-delay:.2s}.dot-loader .loading-dot:nth-child(4){animation-delay:.3s}@keyframes loadingFade{0%,100%{opacity:0}50%{opacity:.8}}.ui-logo{width:256px;height:35px}.ui-logo.logo-small{width:128px;height:18px}.ui-logo.logo-mid{width:206px;height:35px}.ui-logo.logo-large{width:512px;height:70px}.ui-modal{transition:all 3s}@media screen and (max-width:767px){.ui-modal{min-height:100%}}@media screen and (min-width:768px){.ui-modal{box-shadow:0 22px 77px rgba(0,0,0,.34),0 11px 22px rgba(0,0,0,.38);margin:40px!important;left:initial!important;top:initial!important;position:relative;flex:0 1 auto;border-radius:15px}}@media screen and (min-width:960px){.ui-modal{margin:60px 0 100px!important}}input[disabled]{border-color:#ccc;background-color:#eee;color:#aaa}.ember-power-select-trigger,.ember-power-select-trigger--active,.ember-power-select-trigger:focus{border-top:1px solid #ccc;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc}.progress-shaded{background-color:#dadada;background-image:url("data:image/svg+xml,%3Csvg width='6' height='6' viewBox='0 0 6 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23f3f3f3' fill-opacity='1' fill-rule='evenodd'%3E%3Cpath d='M5 0h1L0 6V5zM6 5v1H5z'/%3E%3C/g%3E%3C/svg%3E")}.ember-basic-dropdown{position:relative}.ember-basic-dropdown-content{position:absolute;width:auto;z-index:100001;background-color:#fff}.ember-basic-dropdown-content--left{left:0}.ember-basic-dropdown-content--right{right:0}.ember-basic-dropdown-overlay{position:fixed;background:rgba(0,0,0,.5);width:100%;height:100%;z-index:10;top:0;left:0;pointer-events:none}.ember-basic-dropdown-content-wormhole-origin{display:inline}.ember-power-select-trigger{position:relative;border-radius:.25em;background-color:#fff;line-height:1.75;overflow-x:hidden;text-overflow:ellipsis;min-height:1.75em;-ms-user-select:none;user-select:none;-webkit-user-select:none;color:#333}.ember-power-select-trigger:after{content:"";display:table;clear:both}.ember-power-select-trigger--active,.ember-power-select-trigger:focus{box-shadow:none}.ember-basic-dropdown-trigger--below.ember-power-select-trigger[aria-expanded=true],.ember-basic-dropdown-trigger--in-place.ember-power-select-trigger[aria-expanded=true]{border-bottom-left-radius:0;border-bottom-right-radius:0}.ember-basic-dropdown-trigger--above.ember-power-select-trigger[aria-expanded=true]{border-top-left-radius:0;border-top-right-radius:0}.ember-power-select-placeholder{color:rgba(0,0,0,.4);display:block;overflow-x:hidden;white-space:nowrap;text-overflow:ellipsis}.ember-power-select-status-icon{position:absolute;display:inline-block;width:0;height:0;top:0;bottom:0;margin:auto;border-style:solid;border-width:7px 4px 0;border-color:#ccc transparent transparent}.ember-basic-dropdown-trigger[aria-expanded=true] .ember-power-select-status-icon{transform:rotate(180deg)}.ember-power-select-clear-btn{position:absolute;cursor:pointer}.ember-power-select-trigger-multiple-input{font-family:inherit;font-size:inherit;border:none;display:inline-block;line-height:inherit;-webkit-appearance:none;outline:0;padding:0;float:left;background-color:transparent;text-indent:2px}.ember-power-select-trigger-multiple-input:disabled{background-color:#eee}.ember-power-select-trigger-multiple-input::placeholder{opacity:1;color:rgba(0,0,0,.4)}.ember-power-select-trigger-multiple-input::-webkit-input-placeholder{opacity:1;color:rgba(0,0,0,.4)}.ember-power-select-trigger-multiple-input::-moz-placeholder{opacity:1;color:rgba(0,0,0,.4)}.ember-power-select-trigger-multiple-input::-ms-input-placeholder{opacity:1;color:rgba(0,0,0,.4)}.ember-power-select-multiple-options{padding:0;margin:0}.ember-power-select-multiple-option{border:1px solid gray;border-radius:.25em;color:#333;background-color:#e4e4e4;padding:0 4px;display:inline-block;line-height:1.45;float:left;margin:2px 0 2px 3px}.ember-power-select-multiple-remove-btn{cursor:pointer}.ember-power-select-multiple-remove-btn:not(:hover){opacity:.5}.hamburglar:hover,.toolbar{opacity:1}.ember-power-select-search{padding:4px}.ember-power-select-search-input{border:1px solid #ccc;border-radius:0;width:100%;font-size:inherit;line-height:inherit;padding:0 5px}.ember-power-select-search-input:focus{border:1px solid #ccc;box-shadow:none}.ember-power-select-dropdown{border-left:1px solid #ccc;border-right:1px solid #ccc;line-height:1.75;border-radius:.25em;box-shadow:none;overflow:hidden;color:#333}.ember-power-select-dropdown.ember-basic-dropdown-content--above{border-top:1px solid #ccc;border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.ember-power-select-dropdown.ember-basic-dropdown-content--below,.ember-power-select-dropdown.ember-basic-dropdown-content--in-place{border-top:none;border-bottom:1px solid #ccc;border-top-left-radius:0;border-top-right-radius:0}.ember-power-select-dropdown.ember-basic-dropdown-content--in-place{width:100%}.ember-power-select-options{list-style:none;margin:0;padding:0;-ms-user-select:none;user-select:none;-webkit-user-select:none}.hamburglar,.user-select-none{-webkit-user-select:none;-ms-user-select:none;user-select:none}.ember-power-select-options[role=listbox]{overflow-y:auto;-webkit-overflow-scrolling:touch;max-height:12.25em}.ember-power-select-option{cursor:pointer;padding:0 8px}.ember-power-select-group[aria-disabled=true]{color:#999;cursor:not-allowed}.ember-power-select-group[aria-disabled=true] .ember-power-select-option,.ember-power-select-option[aria-disabled=true]{color:#999;pointer-events:none;cursor:not-allowed}.ember-power-select-option[aria-selected=true]{background-color:#ddd}.ember-power-select-option[aria-current=true]{background-color:#5897fb;color:#fff}.ember-power-select-group-name{cursor:default;font-weight:700}.ember-power-select-trigger[aria-disabled=true]{background-color:#eee;color:#aaa}.ember-power-select-placeholder,.ember-power-select-selected-item{margin-left:8px}.ember-power-select-status-icon{right:5px;border-top-color:#999}.ember-power-select-clear-btn{right:25px;font-weight:500;color:#999;margin-top:-1px}.ember-power-select-group .ember-power-select-group .ember-power-select-group-name{padding-left:24px}.ember-power-select-group .ember-power-select-group .ember-power-select-option{padding-left:40px}.ember-power-select-group .ember-power-select-option{padding-left:24px}.ember-power-select-group .ember-power-select-group-name{padding-left:8px}.ember-power-select-trigger[dir=rtl]{padding:0 0 0 16px}.ember-power-select-trigger[dir=rtl] .ember-power-select-placeholder,.ember-power-select-trigger[dir=rtl] .ember-power-select-selected-item{margin-right:8px}.ember-power-select-trigger[dir=rtl] .ember-power-select-multiple-option,.ember-power-select-trigger[dir=rtl] .ember-power-select-trigger-multiple-input{float:right}.ember-power-select-trigger[dir=rtl] .ember-power-select-status-icon{left:5px;right:initial}.ember-power-select-trigger[dir=rtl] .ember-power-select-clear-btn{left:25px;right:initial}.ember-power-select-dropdown[dir=rtl] .ember-power-select-group .ember-power-select-group .ember-power-select-group-name{padding-right:24px}.ember-power-select-dropdown[dir=rtl] .ember-power-select-group .ember-power-select-group .ember-power-select-option{padding-right:40px}.ember-power-select-dropdown[dir=rtl] .ember-power-select-group .ember-power-select-option{padding-right:24px}.ember-power-select-dropdown[dir=rtl] .ember-power-select-group .ember-power-select-group-name{padding-right:8px}.ember-power-select-trigger{cursor:pointer;padding:1px 7px;height:41px;transition:border-color .25s;display:flex;align-items:center}.ember-power-select-option[aria-current=true] .link.gray{color:#fff}.ember-power-select-option .link.gray{transition:none}.ember-power-select-multiple-trigger{cursor:pointer;padding:1px 7px;height:auto;min-height:41px;transition:border-color .25s;display:flex;align-items:center}.shadow-card{box-shadow:0 15px 35px rgba(50,50,93,.1),0 5px 15px rgba(0,0,0,.07)}.thanks-bg{background-color:#323232;background-image:url("data:image/svg+xml,%3Csvg width='100' height='20' viewBox='0 0 100 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.184 20c.357-.13.72-.264 1.088-.402l1.768-.661C33.64 15.347 39.647 14 50 14c10.271 0 15.362 1.222 24.629 4.928.955.383 1.869.74 2.75 1.072h6.225c-2.51-.73-5.139-1.691-8.233-2.928C65.888 13.278 60.562 12 50 12c-10.626 0-16.855 1.397-26.66 5.063l-1.767.662c-2.475.923-4.66 1.674-6.724 2.275h6.335zm0-20C13.258 2.892 8.077 4 0 4V2c5.744 0 9.951-.574 14.85-2h6.334zM77.38 0C85.239 2.966 90.502 4 100 4V2c-6.842 0-11.386-.542-16.396-2h-6.225zM0 14c8.44 0 13.718-1.21 22.272-4.402l1.768-.661C33.64 5.347 39.647 4 50 4c10.271 0 15.362 1.222 24.629 4.928C84.112 12.722 89.438 14 100 14v-2c-10.271 0-15.362-1.222-24.629-4.928C65.888 3.278 60.562 2 50 2 39.374 2 33.145 3.397 23.34 7.063l-1.767.662C13.223 10.84 8.163 12 0 12v2z' fill='%23bdbdbd' fill-opacity='0.04' fill-rule='evenodd'/%3E%3C/svg%3E")}.arrow-box-right{position:relative;background:#2194ff;border:4px solid #2194ff;color:#fff}.arrow-box-right:after,.arrow-box-right:before{left:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.animate-path,.path-burger{left:0;top:0;position:absolute}.arrow-box-right:after{border-color:rgba(255,255,255,0);border-left-color:#2194ff;border-width:10px;margin-top:-10px}.arrow-box-right:before{border-color:rgba(255,255,255,0);border-left-color:#2194ff;border-width:13px;margin-top:-13px}.arrow-terms-box-top{position:relative;border:2px solid #555;background:#555;color:#fff}.arrow-terms-box-top a,.arrow-terms-box-top a:visited{border-bottom:1px solid #aaa;padding-bottom:1px}.arrow-terms-box-top a:hover,.arrow-terms-box-top a:visited:hover{border-bottom:1px solid #fafafa}.arrow-terms-box-top:after,.arrow-terms-box-top:before{bottom:100%;right:20px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.animate-path,.hamburglar,.path-burger{width:68px;height:68px}.arrow-terms-box-top:after{border-color:rgba(255,255,255,0);border-bottom-color:#555;border-width:10px;margin-left:-10px}.arrow-terms-box-top:before{border-color:rgba(255,255,255,0);border-bottom-color:#555;border-width:13px;margin-left:-13px}.hamburglar{transform:scale(.5);margin:0;position:relative;display:block;background:0 0;-webkit-touch-callout:none;cursor:pointer}.path-burger{-webkit-mask:url(#mask);mask:url(#mask);-webkit-mask-box-image:url(#mask)}.path-rotation{height:34px;width:34px;margin:34px 34px 0 0;transform:rotate(0);transform-origin:100% 0}.path-rotation:before{content:'';display:block;width:30px;height:34px;margin:0 4px 0 0;background:#fff}@keyframes rotate-out{0%{transform:rotate(0)}40%{transform:rotate(180deg)}100%{transform:rotate(360deg)}}@keyframes rotate-in{0%{transform:rotate(360deg)}40%{transform:rotate(180deg)}100%{transform:rotate(0)}}.hamburglar.is-open .path{animation:dash-in .3s linear normal;animation-fill-mode:forwards}.hamburglar.is-open .animate-path{animation:rotate-in .3s linear normal;animation-fill-mode:forwards}.hamburglar.is-closed .path{animation:dash-out .3s linear normal;animation-fill-mode:forwards}.hamburglar.is-closed .animate-path{animation:rotate-out .3s linear normal;animation-fill-mode:forwards}.path{stroke-dasharray:240;stroke-dashoffset:240;stroke-linejoin:round}@keyframes dash-in{0%,40%{stroke-dashoffset:240}100%{stroke-dashoffset:0}}@keyframes dash-out{0%{stroke-dashoffset:0}100%,40%{stroke-dashoffset:240}}.burger-icon{position:absolute;padding:20px 16px;height:68px;width:68px}.burger-container{position:relative;height:28px;width:36px}.burger-bun-bot,.burger-bun-top,.burger-filling{position:absolute;display:block;height:4px;width:36px;border-radius:2px;background:#fff}.burger-ring,.svg-ring{width:68px;height:68px}.burger-bun-top{top:0;transform-origin:34px 2px}.burger-bun-bot{bottom:0;transform-origin:34px 2px}.burger-filling{top:12px}.burger-ring{position:absolute;top:0;left:0}.hamburglar.is-open .burger-bun-top{animation:bun-top-out .3s linear normal;animation-fill-mode:forwards}.hamburglar.is-open .burger-bun-bot{animation:bun-bot-out .3s linear normal;animation-fill-mode:forwards}.hamburglar.is-closed .burger-bun-top{animation:bun-top-in .3s linear normal;animation-fill-mode:forwards}.hamburglar.is-closed .burger-bun-bot{animation:bun-bot-in .3s linear normal;animation-fill-mode:forwards}@keyframes bun-top-out{0%{left:0;top:0;transform:rotate(0)}20%{left:0;top:0;transform:rotate(15deg)}80%{left:-5px;top:0;transform:rotate(-60deg)}100%{left:-5px;top:1px;transform:rotate(-45deg)}}@keyframes bun-bot-out{0%{left:0;transform:rotate(0)}20%{left:0;transform:rotate(-15deg)}80%{left:-5px;transform:rotate(60deg)}100%{left:-5px;transform:rotate(45deg)}}@keyframes bun-top-in{0%{left:-5px;bot:0;transform:rotate(-45deg)}20%{left:-5px;bot:0;transform:rotate(-60deg)}80%{left:0;bot:0;transform:rotate(15deg)}100%{left:0;bot:1px;transform:rotate(0)}}@keyframes bun-bot-in{0%{left:-5px;transform:rotate(45deg)}20%{left:-5px;bot:0;transform:rotate(60deg)}80%{left:0;bot:0;transform:rotate(-15deg)}100%{left:0;transform:rotate(0)}}.hamburglar.is-open .burger-filling{animation:burger-fill-out .3s linear normal;animation-fill-mode:forwards}.hamburglar.is-closed .burger-filling{animation:burger-fill-in .3s linear normal;animation-fill-mode:forwards}@keyframes burger-fill-in{0%{width:0;left:36px}40%{width:0;left:40px}80%{width:36px;left:-6px}100%{width:36px;left:0}}@keyframes burger-fill-out{0%{width:36px;left:0}20%{width:42px;left:-6px}40%{width:0;left:40px}100%{width:0;left:36px}}.br-three-corners{border-radius:10px 0 10px 10px}.table__column-controls__text-content{padding:0 9px;cursor:pointer;display:inline-block;font-family:"HK Grotesk","helvetica neue",helvetica,sans-serif;font-size:12px;font-weight:400;height:13px;line-height:13.8px;text-align:left;text-rendering:optimizelegibility;text-size-adjust:100%;text-transform:uppercase;-webkit-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.toolbar{background-color:transparent}.toolbar ul.mobiledoc-toolbar{list-style:none;padding-left:0;width:100%;background-color:transparent;margin:0}.toolbar ul.mobiledoc-toolbar li.mobiledoc-toolbar__control{display:inline}.toolbar ul.mobiledoc-toolbar li.mobiledoc-toolbar__control button.mobiledoc-toolbar__button{padding:8px;border-radius:5px;min-width:40px;border-right:2px solid #dadada;border-bottom:2px solid #aaa;font-weight:500;background-color:#fff}.toolbar ul.mobiledoc-toolbar li.mobiledoc-toolbar__control button.mobiledoc-toolbar__button:hover{background-color:#3a3a3a;border-right:2px solid #fff;border-bottom:2px solid #fff;color:#fff}.sticky-wrapper.is-sticky .sticky .toolbar #sticky-styled-editbar,.sticky-wrapper.is-sticky .sticky .toolbar .mobiledoc-toolbar{padding:8px 0;background-color:#fff;opacity:1;border-bottom:1px solid #dadada}.mobiledoc-editor{min-height:400px;padding:20px;border:1px solid #dadada;border-radius:9px;background-color:#fff}.mobiledoc-editor .mobiledoc-editor__editor-wrapper .mobiledoc-editor__editor{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;font-weight:400;font-size:1rem;cursor:text;min-height:400px}input[type=submit],th{font-family:"HK Grotesk",'helvetica neue',helvetica,sans-serif}.mobiledoc-editor .mobiledoc-editor__editor-wrapper .mobiledoc-editor__editor h2{font-size:1.3rem}input[type=submit]{line-height:1.1rem}.liquid-tether-element{z-index:3}.ui-modal-header--close{padding:0}.ui-modal-header__close-icon{opacity:.9;cursor:pointer;float:right;font-size:30px;line-height:22px;color:#999;z-index:400}.ui-modal-header__close-icon:focus,.ui-modal-header__close-icon:hover{opacity:1;text-decoration:none}.ui-modal-header--close .ui-modal-header__close-icon{opacity:1;position:absolute;background:#fff;border-radius:50%;width:30px;height:30px;text-align:center;vertical-align:middle;top:-15px;right:-15px;line-height:27px;color:#999;font-size:23px;font-weight:200;box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.ui-modal-header--close .ui-modal-header__close-icon:focus,.ui-modal-header--close .ui-modal-header__close-icon:hover{color:#333}.ui-modal-header__title{margin:0}.ui-modal-overlay{z-index:100000;top:0;right:0;left:0;bottom:0;background-color:rgba(0,0,0,.75)}.list-body-shaded,.ui-modal-overlay--white-background{background-color:#fff}@media screen and (max-width:767px){body.modal-showing>.ember-app-root{display:none}.ui-modal-wrapper{min-height:100%}.ui-modal-overlay{position:fixed;overflow-y:scroll;-webkit-overflow-scrolling:touch}}@media screen and (min-width:768px){.ui-modal-overlay{display:flex;justify-content:center;align-items:flex-start;overflow:scroll;position:fixed}}.ui-modal-overlay--no-animation{animation:none}body.modal-showing{height:100%;overflow:hidden}.list-body-shaded{background-image:url("data:image/svg+xml,%3Csvg width='6' height='6' viewBox='0 0 6 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23f3f3f3' fill-opacity='1' fill-rule='evenodd'%3E%3Cpath d='M5 0h1L0 6V5zM6 5v1H5z'/%3E%3C/g%3E%3C/svg%3E")}.ember-modal-dialog.ember-modal-menu{border-radius:3px;background-color:#fff;box-shadow:0 5px 10px rgba(0,0,0,.1);border:1px solid #dadada;padding:0}.kb-flex-scrollable-container{-webkit-overflow-scrolling:touch}.ui-confetti{z-index:100001!important}.arrow-box-top{position:relative;border:2px solid #2194ff;background:#2194ff;color:#fff}.arrow-box-top:after,.arrow-box-top:before{bottom:100%;left:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.arrow-box-top:after{border-color:rgba(255,255,255,0);border-bottom-color:#2194ff;border-width:10px;margin-left:-10px}.arrow-box-top:before{border-color:rgba(255,255,255,0);border-bottom-color:#2194ff;border-width:13px;margin-left:-13px}.arrow-box-bottom{position:relative;border:2px solid #2194ff;background:#2194ff;color:#fff}.arrow-box-bottom:after,.arrow-box-bottom:before{top:100%;left:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.arrow-box-bottom:after{border-color:rgba(255,255,255,0);border-top-color:#2194ff;border-width:20px;margin-left:-20px}.arrow-box-bottom:before{border-color:rgba(255,255,255,0);border-top-color:#2194ff;border-width:23px;margin-left:-23px}.sortable-item{transition:all .15s;box-shadow:none}.sortable-item.is-dragging,.sortable-item.is-dropping{background:0 0;position:relative;z-index:10000;margin-left:-15px;margin-right:-15px;padding-left:15px;padding-right:15px}.sortable-item.is-dragging{transition-duration:0s}.wrap-box{height:650px;display:flex;flex-direction:column;flex-wrap:wrap;overflow:scroll}.wrap-box>*{flex:1 1 30px;margin-left:2px;max-height:30px}.button-group{overflow:hidden}.button-group button{margin-left:-1px;border-radius:0;border-top-color:transparent;border-bottom-color:transparent}.ember-table table tbody td,.ember-table table th{border-bottom:1px solid #cacaca}.button-group button.selected{position:relative;z-index:1}.button-group button:first-child{border-left-width:0}.ember-table table tbody td.is-fixed-right,.ember-table table th.is-fixed-right{border-left:1px dotted #eaeaea}.button-group button:last-of-type{border-right-width:0}.ember-table table tbody td.is-fixed-left,.ember-table table th.is-fixed-left{border-right:1px dotted #eaeaea}@keyframes slideUp{0%{transform:translateY(100vh)}100%{transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(15px)}50%{opacity:1}100%{transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes highlight{0%,100%{background-color:transparent}}.flash-message,.flash-message.alert-success{background-color:#19a974}@keyframes rotate{to{transform:rotate(360deg)}}.transition{transition:all .15s}.pointer{cursor:pointer}.cursor-default{cursor:default}:focus[data-focus-method=mouse]{outline:0}.brighten{opacity:.5}.brighten:hover{opacity:1}.events-none{pointer-events:none}.f8{font-size:8px}.f4\.5{font-size:18px}.no-wrap{white-space:nowrap}.lh-none{line-height:0}.nmb-2px{margin-bottom:-2px}.link,.link:active,.link:focus,.link:hover,.link:link,.link:visited{transition:none}::-webkit-input-placeholder{font-weight:400;color:#000;opacity:.3}::-moz-placeholder{font-weight:400;color:#000;opacity:.3}:-ms-input-placeholder{font-weight:400;color:#000;opacity:.3}:-moz-placeholder{font-weight:400;color:#000;opacity:.3}.strike a{text-decoration:line-through}.flash-message{opacity:0;min-width:250px;font-weight:500;color:#fff;border-radius:5px;padding:4px 16px;position:fixed;z-index:100001;left:50%;transform:translateX(-50%);bottom:-90px;cursor:pointer;transition:all .7s cubic-bezier(.68,-.55,.265,1.55)}.flash-message.alert-error{background-color:#e7040f}.flash-message.alert-info{background-color:#2194ff}.flash-message.alert-warning{background-color:#FFEB3B;color:#3a3a3a}.flash-message.active{visibility:visible;bottom:30px;opacity:1}.flash-message.active.exiting{opacity:0}@media only screen and (max-width:480px){.flash-message{min-width:80%;left:50%;transform:translateX(-50%);bottom:-30px}}.table-wrap{height:100vh;overflow:scroll}.ember-table{scrollbar-width:none;-ms-overflow-style:none}.ember-table::-webkit-scrollbar{width:0;height:0}.ember-table table{width:100%;color:#3a3a3a;font-size:.85rem;border-collapse:separate}.ember-table table td,.ember-table table th{overflow:hidden}.ember-table table th{height:1rem;font-size:.75rem;font-weight:400;text-transform:uppercase;vertical-align:bottom;text-align:left;padding:8px 4px;background:#fff}.ember-table table th.et-right{text-align:right}.ember-table table td{padding:4px;background:#fff}.ember-table table td.bg--inherit{background:inherit}.ember-table table tfoot td{border-top:1px solid #cacaca;background:#fff}.ember-table tr td.empty-cell{color:#aaa;text-align:center;background-image:url("data:image/svg+xml,%3Csvg width='6' height='6' viewBox='0 0 6 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23aaaaaa' fill-opacity='0.09' fill-rule='evenodd'%3E%3Cpath d='M5 0h1L0 6V5zM6 5v1H5z'/%3E%3C/g%3E%3C/svg%3E")!important;background-color:#fafafa}.ember-table tr.is-selected td{background:#dcffe4}.ember-table .et-toggle-select{margin:0;display:inline-block;-webkit-appearance:none;appearance:none;position:relative;cursor:pointer;padding:4px}.ember-table .et-cell-container{display:flex}.ember-table .et-cell-container .et-cell-content{flex:1;padding:4px;cursor:pointer}.et-toggle-collapse{-webkit-appearance:none;appearance:none;display:inline-block;padding:4px;color:#aaa;cursor:pointer;position:relative}.et-toggle-collapse input{cursor:pointer}.et-toggle-collapse input[type=checkbox]{opacity:.001;position:absolute;height:100%;width:100%;top:0;left:0;z-index:10}.et-toggle-collapse input[type=checkbox]+*{display:block;width:100%}.et-toggle-collapse input[type=checkbox]+:before,.et-toggle-collapse:empty:before{display:inline-block;width:100%;text-align:center;content:'\25be'}.et-toggle-collapse input[type=checkbox]:checked+:before,.et-toggle-collapse:checked:before{color:#3a3a3a;transform:rotate(-90deg)}.et-toggle-collapse input[type=checkbox]:focus+:before,.et-toggle-collapse:focus{outline:0;color:#3a3a3a} \ No newline at end of file diff --git a/app/assets/stylesheets/vendor.css b/app/assets/stylesheets/vendor.css new file mode 100644 index 0000000..c4c6a3a --- /dev/null +++ b/app/assets/stylesheets/vendor.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */.fa.fa-pull-left,.fa.pull-left{margin-right:.3em}.fa,.fa-stack{display:inline-block}.__mobiledoc-editor div,.__mobiledoc-editor iframe,.ember-table{max-width:100%}@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.7.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff2?v=4.7.0) format('woff2'),url(../fonts/fontawesome-webfont.woff?v=4.7.0) format('woff'),url(../fonts/fontawesome-webfont.ttf?v=4.7.0) format('truetype'),url(../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa.fa-pull-right,.fa.pull-right{margin-left:.3em}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right,.pull-right{float:right}.pull-left{float:left}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-address-card:before,.fa-vcard:before{content:"\f2bb"}.fa-address-card-o:before,.fa-vcard-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.liquid-child,.lt-line-clamp{overflow:hidden}.lt-line-clamp{position:relative}.lt-line-clamp__ellipsis--dummy{position:fixed;visibility:hidden;top:0;left:0}.lt-line-clamp--single-line{display:block;white-space:nowrap;text-overflow:ellipsis}.lt-line-clamp--multi-line{/*! autoprefixer: off */display:-webkit-box;-webkit-box-orient:vertical;text-overflow:ellipsis}.lt-line-clamp__raw-line{white-space:pre-line}.lt-line-clamp__dummy-element{display:inline}.__mobiledoc-editor{font-family:Lora,Georgia,serif;margin:1em 0;color:#454545;font-size:1.2em;line-height:1.6em;position:relative;min-height:1em}.__mobiledoc-editor:focus{outline:0}.__mobiledoc-editor>*{position:relative}.__mobiledoc-editor.__has-no-content:after{content:attr(data-placeholder);color:#bbb;cursor:text;position:absolute;top:0}.__mobiledoc-tooltip:after,.__mobiledoc-tooltip:before{content:'';position:absolute;top:-.4em}.__mobiledoc-editor a{color:#0b8bff;white-space:nowrap}.__mobiledoc-editor h1,.__mobiledoc-editor h2,.__mobiledoc-editor h3,.__mobiledoc-editor h4,.__mobiledoc-editor h5,.__mobiledoc-editor h6{font-family:'Merriweather Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:800;letter-spacing:-.02em}.__mobiledoc-editor blockquote{border-left:4px solid #0b8bff;margin:1em 0 1em -1.2em;padding-left:1.05em;color:#a0a0a0}.__mobiledoc-editor img{display:block;max-width:100%;margin:0 auto}.__mobiledoc-card{display:inline-block}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}.__mobiledoc-tooltip{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.7em;white-space:nowrap;position:absolute;background-color:rgba(43,43,43,.9);border-radius:3px;line-height:1em;padding:.7em .9em;color:#FFF;animation:fade-in .2s}.__mobiledoc-tooltip:before{left:50%;width:0;height:0;border-left:.4em solid transparent;border-right:.4em solid transparent;border-bottom:.4em solid rgba(43,43,43,.9);margin-left:-.4em}.__mobiledoc-tooltip:after{left:0;right:0;height:.4em}.__mobiledoc-tooltip a{color:#FFF;text-decoration:none}.__mobiledoc-tooltip a:hover{text-decoration:underline}.vertical-collection-visual-debugger{height:100%;position:fixed;z-index:1000;top:0;left:0;display:flex;align-items:center;justify-content:left;background:rgba(50,50,50,1);width:125px}.vertical-collection-visual-debugger .vc_visualization-container{transform:scale(.25);left:0;position:relative}.vertical-collection-visual-debugger .vc_visualization-screen{position:absolute;background:0 0;box-sizing:content-box;border-top:2px dashed #ff0;border-bottom:2px dashed #ff0;width:500px}.ember-table,.ember-table table,.ember-table tbody,.ember-table td,.ember-table tfoot,.ember-table th,.ember-table thead{box-sizing:border-box}.vertical-collection-visual-debugger .vc_visualization-scroll-container{position:absolute;width:500px;background:rgba(100,230,100,.65)}.vertical-collection-visual-debugger .vc_visualization-item-container{position:absolute;width:500px;background:rgba(255,255,255,.15)}.vertical-collection-visual-debugger .vc_visualization-virtual-component{box-sizing:border-box;background:rgba(230,100,230,.6);border:1px dotted #bbb;border-top:0;color:#fff;text-align:center;font-size:2.5em;width:250px}.vertical-collection-visual-debugger .vc_visualization-virtual-component:first-of-type{border-top:1px dotted #bbb}.vertical-collection-visual-debugger .vc_visualization-virtual-component.culled{background:0 0}.liquid-container{position:relative;overflow:hidden;transform:translateY(0)}.occluded-content{display:block;position:relative;width:100%;min-height:.01px;color:transparent},table .occluded-content,tbody .occluded-content,tfoot .occluded-content,thead .occluded-content{display:table-row;position:relative;width:100%}ol .occluded-content,ul .occluded-content{display:list-item;position:relative;width:100%;list-style-type:none;height:0}.ember-table .et-speech-only,.file-upload input[hidden]{display:none!important}.rating-star{color:inherit}.ember-table{position:relative;overflow:auto;max-height:100%}.ember-table table{border-spacing:0;table-layout:fixed}.ember-table td.is-fixed-left,.ember-table td.is-fixed-right,.ember-table th.is-fixed-left,.ember-table th.is-fixed-right{position:sticky;left:0}.ember-table td.ember-table__text-align-left,.ember-table th.ember-table__text-align-left{text-align:left}.ember-table td.ember-table__text-align-center,.ember-table th.ember-table__text-align-center{text-align:center}.ember-table td.ember-table__text-align-right,.ember-table th.ember-table__text-align-right{text-align:right}.ember-table th{z-index:2}.ember-table th:not(.is-fixed-right) .et-header-resize-area{right:0}.ember-table th.is-fixed-right .et-header-resize-area{left:0}.ember-table td.is-fixed-left,.ember-table td.is-fixed-right{z-index:3}.ember-table th.is-fixed-left,.ember-table th.is-fixed-right{z-index:4}.ember-table th.is-sortable{cursor:pointer}.ember-table thead{position:sticky;top:0;z-index:2}.ember-table tfoot{position:sticky;bottom:0;z-index:2}.ember-table.et-unselectable{-webkit-user-select:none;-ms-user-select:none;user-select:none}.ember-table .et-header-resize-area{cursor:col-resize;width:10px;height:100%;position:absolute;top:0}@media speech{.ember-table .et-speech-only{display:block!important}}.ember-tooltip-base{display:none;height:0;width:0;position:absolute}.ember-popover,.ember-tooltip{margin-bottom:10px;-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;position:absolute;z-index:2;font-size:14px;font-family:inherit;border-radius:3px;opacity:0;transition:opacity ease-out,margin ease-out;transition-duration:.2s}.ember-tooltip{max-width:200px;padding:6px 10px;color:#fff;background:#3a3c47;text-shadow:-1px -1px 0 rgba(0,0,0,.2);white-space:normal;white-space:initial}.ember-popover{color:#000;background-color:#fff;padding:10px 20px;border:1px solid #ccc}.ember-popover[aria-hidden=false]{pointer-events:auto;cursor:initial;-webkit-touch-callout:auto;-webkit-user-select:auto;-ms-user-select:auto;user-select:auto}.ember-popover-arrow,.ember-tooltip-arrow{width:0;height:0;position:absolute;margin:5px;border:5px solid transparent}.ember-popover.ember-tooltip-effect-none,.ember-popover.ember-tooltip-show,.ember-tooltip.ember-tooltip-effect-none,.ember-tooltip.ember-tooltip-show{opacity:1}.ember-popover[x-placement^=top] .ember-popover-arrow,.ember-tooltip[x-placement^=top] .ember-tooltip-arrow{border-bottom-width:0;bottom:-5px;left:calc(50% - 5px);margin-top:0;margin-bottom:0}.ember-tooltip[x-placement^=top] .ember-tooltip-arrow{border-top-color:#3a3c47}.ember-popover[x-placement^=top] .ember-popover-arrow{border-top-color:#ccc}.ember-popover[x-placement^=right] .ember-popover-arrow,.ember-tooltip[x-placement^=right] .ember-tooltip-arrow{border-left-width:0;left:-5px;top:calc(50% - 5px);margin-right:0;margin-left:0}.ember-tooltip[x-placement^=right] .ember-tooltip-arrow{border-right-color:#3a3c47}.ember-popover[x-placement^=right] .ember-popover-arrow{border-right-color:#ccc}.ember-popover[x-placement^=bottom] .ember-popover-arrow,.ember-tooltip[x-placement^=bottom] .ember-tooltip-arrow{border-top-width:0;top:-5px;left:calc(50% - 5px);margin-bottom:0;margin-top:0}.ember-tooltip[x-placement^=bottom] .ember-tooltip-arrow{border-bottom-color:#3a3c47}.ember-popover[x-placement^=bottom] .ember-popover-arrow{border-bottom-color:#ccc}.ember-popover[x-placement^=left] .ember-popover-arrow,.ember-tooltip[x-placement^=left] .ember-tooltip-arrow{border-right-width:0;right:-5px;top:calc(50% - 5px);margin-left:0;margin-right:0}.ember-tooltip[x-placement^=left] .ember-tooltip-arrow{border-left-color:#3a3c47}.ember-popover[x-placement^=left] .ember-popover-arrow{border-left-color:#ccc}.default-liquid-destination{position:absolute;top:0;left:0;height:0;width:100%;z-index:9999}.default-liquid-destination .liquid-destination-stack{position:absolute;width:100%}.default-liquid-destination>.liquid-destination-stack>.liquid-child{position:absolute;top:0;left:0;width:100%;overflow:visible;visibility:hidden}.default-liquid-destination>.liquid-destination-stack>.liquid-child>div{position:absolute;top:0;left:0;width:100%;height:100vh;visibility:hidden}.default-liquid-destination>.liquid-destination-stack>.liquid-child>div>*{visibility:visible}.liquid-wormhole-container{display:none} \ No newline at end of file diff --git a/app/channels/application_cable/channel.rb b/app/channels/application_cable/channel.rb new file mode 100644 index 0000000..d672697 --- /dev/null +++ b/app/channels/application_cable/channel.rb @@ -0,0 +1,4 @@ +module ApplicationCable + class Channel < ActionCable::Channel::Base + end +end diff --git a/app/channels/application_cable/connection.rb b/app/channels/application_cable/connection.rb new file mode 100644 index 0000000..0ff5442 --- /dev/null +++ b/app/channels/application_cable/connection.rb @@ -0,0 +1,4 @@ +module ApplicationCable + class Connection < ActionCable::Connection::Base + end +end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb new file mode 100644 index 0000000..09705d1 --- /dev/null +++ b/app/controllers/application_controller.rb @@ -0,0 +1,2 @@ +class ApplicationController < ActionController::Base +end diff --git a/app/controllers/concerns/.keep b/app/controllers/concerns/.keep new file mode 100644 index 0000000..e69de29 diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb new file mode 100644 index 0000000..de6be79 --- /dev/null +++ b/app/helpers/application_helper.rb @@ -0,0 +1,2 @@ +module ApplicationHelper +end diff --git a/app/inputs/important_input.rb b/app/inputs/important_input.rb new file mode 100644 index 0000000..61cff3c --- /dev/null +++ b/app/inputs/important_input.rb @@ -0,0 +1,5 @@ +class ImportantInput < Formtastic::Inputs::StringInput + def to_html + (" IMPORTANT " + super + " IMPORTANT ").html_safe + end +end diff --git a/app/javascript/channels/consumer.js b/app/javascript/channels/consumer.js new file mode 100644 index 0000000..8ec3aad --- /dev/null +++ b/app/javascript/channels/consumer.js @@ -0,0 +1,6 @@ +// Action Cable provides the framework to deal with WebSockets in Rails. +// You can generate new channels where WebSocket features live using the `bin/rails generate channel` command. + +import { createConsumer } from "@rails/actioncable" + +export default createConsumer() diff --git a/app/javascript/channels/index.js b/app/javascript/channels/index.js new file mode 100644 index 0000000..0cfcf74 --- /dev/null +++ b/app/javascript/channels/index.js @@ -0,0 +1,5 @@ +// Load all the channels within this directory and all subdirectories. +// Channel files must be named *_channel.js. + +const channels = require.context('.', true, /_channel\.js$/) +channels.keys().forEach(channels) diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js new file mode 100644 index 0000000..e1f98b6 --- /dev/null +++ b/app/javascript/packs/application.js @@ -0,0 +1,13 @@ +// This file is automatically compiled by Webpack, along with any other files +// present in this directory. You're encouraged to place your actual application logic in +// a relevant structure within app/javascript and only use these pack files to reference +// that code so it'll be compiled. +// +import Rails from "@rails/ujs" +import Turbolinks from "turbolinks" +import * as ActiveStorage from "@rails/activestorage" +import "channels" + +Rails.start() +Turbolinks.start() +ActiveStorage.start() diff --git a/app/jobs/application_job.rb b/app/jobs/application_job.rb new file mode 100644 index 0000000..d394c3d --- /dev/null +++ b/app/jobs/application_job.rb @@ -0,0 +1,7 @@ +class ApplicationJob < ActiveJob::Base + # Automatically retry jobs that encountered a deadlock + # retry_on ActiveRecord::Deadlocked + + # Most jobs are safe to ignore if the underlying records are no longer available + # discard_on ActiveJob::DeserializationError +end diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb new file mode 100644 index 0000000..286b223 --- /dev/null +++ b/app/mailers/application_mailer.rb @@ -0,0 +1,4 @@ +class ApplicationMailer < ActionMailer::Base + default from: 'from@example.com' + layout 'mailer' +end diff --git a/app/models/admin_user.rb b/app/models/admin_user.rb new file mode 100644 index 0000000..3c851a1 --- /dev/null +++ b/app/models/admin_user.rb @@ -0,0 +1,6 @@ +class AdminUser < ApplicationRecord + # Include default devise modules. Others available are: + # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable + devise :database_authenticatable, + :recoverable, :rememberable, :validatable +end diff --git a/app/models/application_record.rb b/app/models/application_record.rb new file mode 100644 index 0000000..10a4cba --- /dev/null +++ b/app/models/application_record.rb @@ -0,0 +1,3 @@ +class ApplicationRecord < ActiveRecord::Base + self.abstract_class = true +end diff --git a/app/models/concerns/.keep b/app/models/concerns/.keep new file mode 100644 index 0000000..e69de29 diff --git a/app/models/concerns/recentable.rb b/app/models/concerns/recentable.rb new file mode 100644 index 0000000..230a924 --- /dev/null +++ b/app/models/concerns/recentable.rb @@ -0,0 +1,7 @@ +module Recentable + extend ActiveSupport::Concern + + included do + scope :recent, ->(number) { order("created_at DESC").limit(number) } + end +end diff --git a/app/models/employer.rb b/app/models/employer.rb new file mode 100644 index 0000000..2105f2d --- /dev/null +++ b/app/models/employer.rb @@ -0,0 +1,8 @@ +class Employer < ApplicationRecord + include Recentable + + has_many :subscriptions + + + +end diff --git a/app/models/product.rb b/app/models/product.rb new file mode 100644 index 0000000..acf6710 --- /dev/null +++ b/app/models/product.rb @@ -0,0 +1,3 @@ +class Product < ApplicationRecord + belongs_to :supplier +end diff --git a/app/models/subscription.rb b/app/models/subscription.rb new file mode 100644 index 0000000..cd5e6d9 --- /dev/null +++ b/app/models/subscription.rb @@ -0,0 +1,110 @@ +class Subscription < ApplicationRecord + include Recentable + belongs_to :employer + + belongs_to :series_successor, class_name: "Subscription", foreign_key: :series_successor_id, optional: true, inverse_of: :series_predecessor + has_one :series_predecessor, -> { readonly }, class_name: "Subscription", foreign_key: :series_successor_id, inverse_of: :series_successor, dependent: :nullify + + validates :name, length: { in: 2..255, allow_nil: true } + validates :autorenew_duration, numericality: { greater_than: 0 } + validates :starts_at, presence: true + validate :ends_at_after_starts_at + validate :ends_at_before_successor_starts + validate :starts_at_after_predecessor_ends + validate :autorenew_voided_at_after_starts_at + validate :terminated_at_after_starts_at + validate :autorenew_deadline_after_starts_at_and_before_ends_at + validates :billing_frequency, presence: true + + def ends_at_after_starts_at + return if ends_at.blank? || starts_at.blank? + + if ends_at < starts_at + errors.add(:ends_at, "must be after the start date") + end + end + + def ends_at_before_successor_starts + return if series_successor.blank? + + if ends_at.blank? + errors.add(:ends_at, "is required for renewed records") + return + end + + if ends_at >= series_successor.starts_at + errors.add(:ends_at, "must be before its renewal's start date") + end + end + + def starts_at_after_predecessor_ends + return if series_predecessor.blank? + + if starts_at.blank? + errors.add(:starts_at, "is required for records with predecessors") + return + end + + if starts_at <= series_predecessor.ends_at + errors.add(:starts_at, "must be after its predecessor's end date") + end + end + + # Either percentage or flat fare discount type must be set if product is in travel vertical + def discount_type_set + # If product not yet set, can't assume discount type not being set is an error + return if !product + + if has_percentage_discount_type.blank? && has_flat_fare_discount_type.blank? + errors.add(:has_percentage_discount_type, "- At least one of has_percentage_discount_type and has_flat_fare_discount_type must be true") + end + end + + # HACK: this is a temporary fix to work around the lack of atomic updates + # for subscriptions and cycles. + # TODO: https://concertiv.atlassian.net/browse/ENG-266 - fix by using Form Objects + def sync_effective_at + return if self.cycles.empty? + + if self.cycles.length == 1 + self.cycles.first.effective_at = self.starts_at + end + end + + def terminated_at_after_starts_at + return if terminated_at.blank? || starts_at.blank? + + if terminated_at < starts_at + errors.add(:terminated_at, "must be after the start date") + end + end + + def autorenew_voided_at_after_starts_at + return if !is_autorenew + return if autorenew_voided_at.blank? || starts_at.blank? + + if autorenew_voided_at < starts_at + errors.add(:autorenew_voided_at, "must be after the start date") + end + end + + def autorenew_deadline_after_starts_at_and_before_ends_at + return if !is_autorenew + + if autorenew_deadline.blank? + errors.add(:autorenew_deadline, "must be a valid date") + + return + end + + if !starts_at.blank? && autorenew_deadline < starts_at + errors.add(:autorenew_deadline, "must be after the start date") + end + + if !ends_at.blank? && autorenew_deadline > ends_at + errors.add(:autorenew_deadline, "must be before the end date") + end + end + + +end diff --git a/app/models/supplier.rb b/app/models/supplier.rb new file mode 100644 index 0000000..d4d7f2b --- /dev/null +++ b/app/models/supplier.rb @@ -0,0 +1,3 @@ +class Supplier < ApplicationRecord + has_many :products +end diff --git a/app/views/admin/employers/_form.html.erb b/app/views/admin/employers/_form.html.erb new file mode 100644 index 0000000..1bc1a27 --- /dev/null +++ b/app/views/admin/employers/_form.html.erb @@ -0,0 +1,14 @@ +

Completely custom form

+ +<%= semantic_form_for [:admin, @employer] do |f| %> + <%= f.inputs do %> + <%= f.input :name, as: :important %> + <%= f.input :logo_url %> + <%= f.input :short_name %> + <%= f.input :short_code %> + <%= f.input :status, as: :select, collection: ["active","inactive"], include_blank: false %> + <% end %> + <%= f.actions %> +<% end %> + + diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb new file mode 100644 index 0000000..55aa03b --- /dev/null +++ b/app/views/layouts/application.html.erb @@ -0,0 +1,16 @@ + + + + Ssrconcept + + <%= csrf_meta_tags %> + <%= csp_meta_tag %> + + <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> + <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> + + + + <%= yield %> + + diff --git a/app/views/layouts/mailer.html.erb b/app/views/layouts/mailer.html.erb new file mode 100644 index 0000000..cbd34d2 --- /dev/null +++ b/app/views/layouts/mailer.html.erb @@ -0,0 +1,13 @@ + + + + + + + + + <%= yield %> + + diff --git a/app/views/layouts/mailer.text.erb b/app/views/layouts/mailer.text.erb new file mode 100644 index 0000000..37f0bdd --- /dev/null +++ b/app/views/layouts/mailer.text.erb @@ -0,0 +1 @@ +<%= yield %> diff --git a/app/views/layouts/rails_admin/application.html.erb b/app/views/layouts/rails_admin/application.html.erb new file mode 100644 index 0000000..e6ee026 --- /dev/null +++ b/app/views/layouts/rails_admin/application.html.erb @@ -0,0 +1,227 @@ + + + + + + + + + + + + + <%= stylesheet_link_tag "vendor.css", :media => :all %> + <%= stylesheet_link_tag "profiler.css", :media => :all %> + <%= csrf_meta_tag %> + <%= stylesheet_link_tag "rails_admin/rails_admin.css", :media => :all %> + <%= javascript_include_tag "rails_admin/rails_admin.js" %> + + + Concertiv | Profiler + + + +
+ +
+ +
+ + +
+
+
+
+
+
+
+
+
+ +
+
+ + +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+ +
+
+
+
+
+
+ +
+
+ <%= render :template => 'layouts/rails_admin/pjax' %> + + +
+
+
+
+
+
+ +
+
+ + + + diff --git a/app/views/layouts/rails_admin/original_application.html.erb b/app/views/layouts/rails_admin/original_application.html.erb new file mode 100644 index 0000000..38d6c2d --- /dev/null +++ b/app/views/layouts/rails_admin/original_application.html.erb @@ -0,0 +1,49 @@ + + + + + + <%= csrf_meta_tag %> + <%= stylesheet_link_tag "rails_admin/rails_admin.css", :media => :all %> + <%= javascript_include_tag "rails_admin/rails_admin.js" %> + + + + +
+
+
+ +
+
+
+
+ <%= render :template => 'layouts/rails_admin/pjax' %> +
+
+
+
+
+ + diff --git a/app/views/rails_admin/employers/_form.html.erb b/app/views/rails_admin/employers/_form.html.erb new file mode 100644 index 0000000..27fe379 --- /dev/null +++ b/app/views/rails_admin/employers/_form.html.erb @@ -0,0 +1,13 @@ +<%= errors_summary_for broadcast %> + + +<%= bootstrap_form_with model: model, local: true do |form| %> +V <%= form.text_field :name %> + <%= form.time_zone_select(:shoot_location_time_zone, nil, label: "Time zone of shoot location") %>
+ <%= link_to t("shared.cancel"), [project, :broadcasts], class: "col-3 text-reset" %> +
+ <%= form.submit class: class_string("btn btn-block", ["btn-success", "btn-primary"] => broadcast.new_record?), data: { disable_with: t("shared.disable_with") } %> +
+
+<% end %> + diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..19a07f3 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,82 @@ +module.exports = function(api) { + var validEnv = ['development', 'test', 'production'] + var currentEnv = api.env() + var isDevelopmentEnv = api.env('development') + var isProductionEnv = api.env('production') + var isTestEnv = api.env('test') + + if (!validEnv.includes(currentEnv)) { + throw new Error( + 'Please specify a valid `NODE_ENV` or ' + + '`BABEL_ENV` environment variables. Valid values are "development", ' + + '"test", and "production". Instead, received: ' + + JSON.stringify(currentEnv) + + '.' + ) + } + + return { + presets: [ + isTestEnv && [ + '@babel/preset-env', + { + targets: { + node: 'current' + } + } + ], + (isProductionEnv || isDevelopmentEnv) && [ + '@babel/preset-env', + { + forceAllTransforms: true, + useBuiltIns: 'entry', + corejs: 3, + modules: false, + exclude: ['transform-typeof-symbol'] + } + ] + ].filter(Boolean), + plugins: [ + 'babel-plugin-macros', + '@babel/plugin-syntax-dynamic-import', + isTestEnv && 'babel-plugin-dynamic-import-node', + '@babel/plugin-transform-destructuring', + [ + '@babel/plugin-proposal-class-properties', + { + loose: true + } + ], + [ + '@babel/plugin-proposal-object-rest-spread', + { + useBuiltIns: true + } + ], + [ + '@babel/plugin-proposal-private-methods', + { + loose: true + } + ], + [ + '@babel/plugin-proposal-private-property-in-object', + { + loose: true + } + ], + [ + '@babel/plugin-transform-runtime', + { + helpers: false + } + ], + [ + '@babel/plugin-transform-regenerator', + { + async: false + } + ] + ].filter(Boolean) + } +} diff --git a/bin/bundle b/bin/bundle new file mode 100755 index 0000000..a71368e --- /dev/null +++ b/bin/bundle @@ -0,0 +1,114 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +# +# This file was generated by Bundler. +# +# The application 'bundle' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +require "rubygems" + +m = Module.new do + module_function + + def invoked_as_script? + File.expand_path($0) == File.expand_path(__FILE__) + end + + def env_var_version + ENV["BUNDLER_VERSION"] + end + + def cli_arg_version + return unless invoked_as_script? # don't want to hijack other binstubs + return unless "update".start_with?(ARGV.first || " ") # must be running `bundle update` + bundler_version = nil + update_index = nil + ARGV.each_with_index do |a, i| + if update_index && update_index.succ == i && a =~ Gem::Version::ANCHORED_VERSION_PATTERN + bundler_version = a + end + next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/ + bundler_version = $1 + update_index = i + end + bundler_version + end + + def gemfile + gemfile = ENV["BUNDLE_GEMFILE"] + return gemfile if gemfile && !gemfile.empty? + + File.expand_path("../../Gemfile", __FILE__) + end + + def lockfile + lockfile = + case File.basename(gemfile) + when "gems.rb" then gemfile.sub(/\.rb$/, gemfile) + else "#{gemfile}.lock" + end + File.expand_path(lockfile) + end + + def lockfile_version + return unless File.file?(lockfile) + lockfile_contents = File.read(lockfile) + return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/ + Regexp.last_match(1) + end + + def bundler_version + @bundler_version ||= + env_var_version || cli_arg_version || + lockfile_version + end + + def bundler_requirement + return "#{Gem::Requirement.default}.a" unless bundler_version + + bundler_gem_version = Gem::Version.new(bundler_version) + + requirement = bundler_gem_version.approximate_recommendation + + return requirement unless Gem::Version.new(Gem::VERSION) < Gem::Version.new("2.7.0") + + requirement += ".a" if bundler_gem_version.prerelease? + + requirement + end + + def load_bundler! + ENV["BUNDLE_GEMFILE"] ||= gemfile + + activate_bundler + end + + def activate_bundler + gem_error = activation_error_handling do + gem "bundler", bundler_requirement + end + return if gem_error.nil? + require_error = activation_error_handling do + require "bundler/version" + end + return if require_error.nil? && Gem::Requirement.new(bundler_requirement).satisfied_by?(Gem::Version.new(Bundler::VERSION)) + warn "Activating bundler (#{bundler_requirement}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_requirement}'`" + exit 42 + end + + def activation_error_handling + yield + nil + rescue StandardError, LoadError => e + e + end +end + +m.load_bundler! + +if m.invoked_as_script? + load Gem.bin_path("bundler", "bundle") +end diff --git a/bin/rails b/bin/rails new file mode 100755 index 0000000..21d3e02 --- /dev/null +++ b/bin/rails @@ -0,0 +1,5 @@ +#!/usr/bin/env ruby +load File.expand_path("spring", __dir__) +APP_PATH = File.expand_path('../config/application', __dir__) +require_relative "../config/boot" +require "rails/commands" diff --git a/bin/rake b/bin/rake new file mode 100755 index 0000000..7327f47 --- /dev/null +++ b/bin/rake @@ -0,0 +1,5 @@ +#!/usr/bin/env ruby +load File.expand_path("spring", __dir__) +require_relative "../config/boot" +require "rake" +Rake.application.run diff --git a/bin/setup b/bin/setup new file mode 100755 index 0000000..90700ac --- /dev/null +++ b/bin/setup @@ -0,0 +1,36 @@ +#!/usr/bin/env ruby +require "fileutils" + +# path to your application root. +APP_ROOT = File.expand_path('..', __dir__) + +def system!(*args) + system(*args) || abort("\n== Command #{args} failed ==") +end + +FileUtils.chdir APP_ROOT do + # This script is a way to set up or update your development environment automatically. + # This script is idempotent, so that you can run it at any time and get an expectable outcome. + # Add necessary setup steps to this file. + + puts '== Installing dependencies ==' + system! 'gem install bundler --conservative' + system('bundle check') || system!('bundle install') + + # Install JavaScript dependencies + system! 'bin/yarn' + + # puts "\n== Copying sample files ==" + # unless File.exist?('config/database.yml') + # FileUtils.cp 'config/database.yml.sample', 'config/database.yml' + # end + + puts "\n== Preparing database ==" + system! 'bin/rails db:prepare' + + puts "\n== Removing old logs and tempfiles ==" + system! 'bin/rails log:clear tmp:clear' + + puts "\n== Restarting application server ==" + system! 'bin/rails restart' +end diff --git a/bin/spring b/bin/spring new file mode 100755 index 0000000..b4147e8 --- /dev/null +++ b/bin/spring @@ -0,0 +1,14 @@ +#!/usr/bin/env ruby +if !defined?(Spring) && [nil, "development", "test"].include?(ENV["RAILS_ENV"]) + gem "bundler" + require "bundler" + + # Load Spring without loading other gems in the Gemfile, for speed. + Bundler.locked_gems&.specs&.find { |spec| spec.name == "spring" }&.tap do |spring| + Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path + gem "spring", spring.version + require "spring/binstub" + rescue Gem::LoadError + # Ignore when Spring is not installed. + end +end diff --git a/bin/webpack b/bin/webpack new file mode 100755 index 0000000..1031168 --- /dev/null +++ b/bin/webpack @@ -0,0 +1,18 @@ +#!/usr/bin/env ruby + +ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development" +ENV["NODE_ENV"] ||= "development" + +require "pathname" +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", + Pathname.new(__FILE__).realpath) + +require "bundler/setup" + +require "webpacker" +require "webpacker/webpack_runner" + +APP_ROOT = File.expand_path("..", __dir__) +Dir.chdir(APP_ROOT) do + Webpacker::WebpackRunner.run(ARGV) +end diff --git a/bin/webpack-dev-server b/bin/webpack-dev-server new file mode 100755 index 0000000..dd96627 --- /dev/null +++ b/bin/webpack-dev-server @@ -0,0 +1,18 @@ +#!/usr/bin/env ruby + +ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development" +ENV["NODE_ENV"] ||= "development" + +require "pathname" +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", + Pathname.new(__FILE__).realpath) + +require "bundler/setup" + +require "webpacker" +require "webpacker/dev_server_runner" + +APP_ROOT = File.expand_path("..", __dir__) +Dir.chdir(APP_ROOT) do + Webpacker::DevServerRunner.run(ARGV) +end diff --git a/bin/yarn b/bin/yarn new file mode 100755 index 0000000..9fab2c3 --- /dev/null +++ b/bin/yarn @@ -0,0 +1,17 @@ +#!/usr/bin/env ruby +APP_ROOT = File.expand_path('..', __dir__) +Dir.chdir(APP_ROOT) do + yarn = ENV["PATH"].split(File::PATH_SEPARATOR). + select { |dir| File.expand_path(dir) != __dir__ }. + product(["yarn", "yarn.cmd", "yarn.ps1"]). + map { |dir, file| File.expand_path(file, dir) }. + find { |file| File.executable?(file) } + + if yarn + exec yarn, *ARGV + else + $stderr.puts "Yarn executable was not detected in the system." + $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" + exit 1 + end +end diff --git a/config.ru b/config.ru new file mode 100644 index 0000000..4a3c09a --- /dev/null +++ b/config.ru @@ -0,0 +1,6 @@ +# This file is used by Rack-based servers to start the application. + +require_relative "config/environment" + +run Rails.application +Rails.application.load_server diff --git a/config/application.rb b/config/application.rb new file mode 100644 index 0000000..a55c837 --- /dev/null +++ b/config/application.rb @@ -0,0 +1,22 @@ +require_relative "boot" + +require "rails/all" + +# Require the gems listed in Gemfile, including any gems +# you've limited to :test, :development, or :production. +Bundler.require(*Rails.groups) + +module Ssrconcept + class Application < Rails::Application + # Initialize configuration defaults for originally generated Rails version. + config.load_defaults 6.1 + + # Configuration for the application, engines, and railties goes here. + # + # These settings can be overridden in specific environments using the files + # in config/environments, which are processed later. + # + # config.time_zone = "Central Time (US & Canada)" + # config.eager_load_paths << Rails.root.join("extras") + end +end diff --git a/config/boot.rb b/config/boot.rb new file mode 100644 index 0000000..3cda23b --- /dev/null +++ b/config/boot.rb @@ -0,0 +1,4 @@ +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) + +require "bundler/setup" # Set up gems listed in the Gemfile. +require "bootsnap/setup" # Speed up boot time by caching expensive operations. diff --git a/config/cable.yml b/config/cable.yml new file mode 100644 index 0000000..6572e7a --- /dev/null +++ b/config/cable.yml @@ -0,0 +1,10 @@ +development: + adapter: async + +test: + adapter: test + +production: + adapter: redis + url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %> + channel_prefix: ssrconcept_production diff --git a/config/credentials.yml.enc b/config/credentials.yml.enc new file mode 100644 index 0000000..d659daf --- /dev/null +++ b/config/credentials.yml.enc @@ -0,0 +1 @@ +bAOWEuglIf1lQBkQFxjoqp2PskH30WzsDr6NHqQmaRl0HIhOcZTVqxjTQY0zE7qjNLGVlxgRx6rCBUzPVb6N/LbABJ5ZXyBT/TfolDe2j77lXBTBlTOzOCWPjKIqMSjj7u7CmXgLp4UzdyX5MNyft2tl1UFVk005MXWnxgwPlUtE9M0OEDmhgK/GtfvRit7JT8u37nHc9iax5UEYReJ9vfDiVyQaXy1SBocaKtTHmfxr3wBWfLtmqvgGzKbOIym/7EiClmLFnpgtlLsCdUiYxlfq2IOgr7dRKGPwnQCquxJwrDXwTht9m3cLItbxqnpk8S8bVTdRgrTkgC97HScNjrMnSs33DuSmmviVx6VtSJ4hC/rh+HGCbNoFtebK+EPmm9yg+9NtrlFkWRfBFrsGFmgRQlEViJGTQIbM--lQlUgKyrdXRPd016--Wvz4wVQ4y/iWe45IJ2ABfg== \ No newline at end of file diff --git a/config/database.yml b/config/database.yml new file mode 100644 index 0000000..4a8a1b2 --- /dev/null +++ b/config/database.yml @@ -0,0 +1,25 @@ +# SQLite. Versions 3.8.0 and up are supported. +# gem install sqlite3 +# +# Ensure the SQLite 3 gem is defined in your Gemfile +# gem 'sqlite3' +# +default: &default + adapter: sqlite3 + pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> + timeout: 5000 + +development: + <<: *default + database: db/development.sqlite3 + +# Warning: The database defined as "test" will be erased and +# re-generated from your development database when you run "rake". +# Do not set this db to the same as development or production. +test: + <<: *default + database: db/test.sqlite3 + +production: + <<: *default + database: db/production.sqlite3 diff --git a/config/environment.rb b/config/environment.rb new file mode 100644 index 0000000..cac5315 --- /dev/null +++ b/config/environment.rb @@ -0,0 +1,5 @@ +# Load the Rails application. +require_relative "application" + +# Initialize the Rails application. +Rails.application.initialize! diff --git a/config/environments/development.rb b/config/environments/development.rb new file mode 100644 index 0000000..7a9f6c3 --- /dev/null +++ b/config/environments/development.rb @@ -0,0 +1,76 @@ +require "active_support/core_ext/integer/time" + +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # In the development environment your application's code is reloaded any time + # it changes. This slows down response time but is perfect for development + # since you don't have to restart the web server when you make code changes. + config.cache_classes = false + + # Do not eager load code on boot. + config.eager_load = false + + # Show full error reports. + config.consider_all_requests_local = true + + # Enable/disable caching. By default caching is disabled. + # Run rails dev:cache to toggle caching. + if Rails.root.join('tmp', 'caching-dev.txt').exist? + config.action_controller.perform_caching = true + config.action_controller.enable_fragment_cache_logging = true + + config.cache_store = :memory_store + config.public_file_server.headers = { + 'Cache-Control' => "public, max-age=#{2.days.to_i}" + } + else + config.action_controller.perform_caching = false + + config.cache_store = :null_store + end + + # Store uploaded files on the local file system (see config/storage.yml for options). + config.active_storage.service = :local + + # Don't care if the mailer can't send. + config.action_mailer.raise_delivery_errors = false + + config.action_mailer.perform_caching = false + + # Print deprecation notices to the Rails logger. + config.active_support.deprecation = :log + + # Raise exceptions for disallowed deprecations. + config.active_support.disallowed_deprecation = :raise + + # Tell Active Support which deprecation messages to disallow. + config.active_support.disallowed_deprecation_warnings = [] + + # Raise an error on page load if there are pending migrations. + config.active_record.migration_error = :page_load + + # Highlight code that triggered database queries in logs. + config.active_record.verbose_query_logs = true + + # Debug mode disables concatenation and preprocessing of assets. + # This option may cause significant delays in view rendering with a large + # number of complex assets. + config.assets.debug = true + + # Suppress logger output for asset requests. + config.assets.quiet = true + + # Raises error for missing translations. + # config.i18n.raise_on_missing_translations = true + + # Annotate rendered view with file names. + # config.action_view.annotate_rendered_view_with_filenames = true + + # Use an evented file watcher to asynchronously detect changes in source code, + # routes, locales, etc. This feature depends on the listen gem. + config.file_watcher = ActiveSupport::EventedFileUpdateChecker + + # Uncomment if you wish to allow Action Cable access from any origin. + # config.action_cable.disable_request_forgery_protection = true +end diff --git a/config/environments/production.rb b/config/environments/production.rb new file mode 100644 index 0000000..ae0ce7c --- /dev/null +++ b/config/environments/production.rb @@ -0,0 +1,120 @@ +require "active_support/core_ext/integer/time" + +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # Code is not reloaded between requests. + config.cache_classes = true + + # Eager load code on boot. This eager loads most of Rails and + # your application in memory, allowing both threaded web servers + # and those relying on copy on write to perform better. + # Rake tasks automatically ignore this option for performance. + config.eager_load = true + + # Full error reports are disabled and caching is turned on. + config.consider_all_requests_local = false + config.action_controller.perform_caching = true + + # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] + # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). + # config.require_master_key = true + + # Disable serving static files from the `/public` folder by default since + # Apache or NGINX already handles this. + config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? + + # Compress CSS using a preprocessor. + # config.assets.css_compressor = :sass + + # Do not fallback to assets pipeline if a precompiled asset is missed. + config.assets.compile = false + + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + # config.asset_host = 'http://assets.example.com' + + # Specifies the header that your server uses for sending files. + # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX + + # Store uploaded files on the local file system (see config/storage.yml for options). + config.active_storage.service = :local + + # Mount Action Cable outside main process or domain. + # config.action_cable.mount_path = nil + # config.action_cable.url = 'wss://example.com/cable' + # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] + + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. + # config.force_ssl = true + + # Include generic and useful information about system operation, but avoid logging too much + # information to avoid inadvertent exposure of personally identifiable information (PII). + config.log_level = :info + + # Prepend all log lines with the following tags. + config.log_tags = [ :request_id ] + + # Use a different cache store in production. + # config.cache_store = :mem_cache_store + + # Use a real queuing backend for Active Job (and separate queues per environment). + # config.active_job.queue_adapter = :resque + # config.active_job.queue_name_prefix = "ssrconcept_production" + + config.action_mailer.perform_caching = false + + # Ignore bad email addresses and do not raise email delivery errors. + # Set this to true and configure the email server for immediate delivery to raise delivery errors. + # config.action_mailer.raise_delivery_errors = false + + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to + # the I18n.default_locale when a translation cannot be found). + config.i18n.fallbacks = true + + # Send deprecation notices to registered listeners. + config.active_support.deprecation = :notify + + # Log disallowed deprecations. + config.active_support.disallowed_deprecation = :log + + # Tell Active Support which deprecation messages to disallow. + config.active_support.disallowed_deprecation_warnings = [] + + # Use default logging formatter so that PID and timestamp are not suppressed. + config.log_formatter = ::Logger::Formatter.new + + # Use a different logger for distributed setups. + # require "syslog/logger" + # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name') + + if ENV["RAILS_LOG_TO_STDOUT"].present? + logger = ActiveSupport::Logger.new(STDOUT) + logger.formatter = config.log_formatter + config.logger = ActiveSupport::TaggedLogging.new(logger) + end + + # Do not dump schema after migrations. + config.active_record.dump_schema_after_migration = false + + # Inserts middleware to perform automatic connection switching. + # The `database_selector` hash is used to pass options to the DatabaseSelector + # middleware. The `delay` is used to determine how long to wait after a write + # to send a subsequent read to the primary. + # + # The `database_resolver` class is used by the middleware to determine which + # database is appropriate to use based on the time delay. + # + # The `database_resolver_context` class is used by the middleware to set + # timestamps for the last write to the primary. The resolver uses the context + # class timestamps to determine how long to wait before reading from the + # replica. + # + # By default Rails will store a last write timestamp in the session. The + # DatabaseSelector middleware is designed as such you can define your own + # strategy for connection switching and pass that into the middleware through + # these configuration options. + # config.active_record.database_selector = { delay: 2.seconds } + # config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver + # config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session +end diff --git a/config/environments/test.rb b/config/environments/test.rb new file mode 100644 index 0000000..93ed4f1 --- /dev/null +++ b/config/environments/test.rb @@ -0,0 +1,60 @@ +require "active_support/core_ext/integer/time" + +# The test environment is used exclusively to run your application's +# test suite. You never need to work with it otherwise. Remember that +# your test database is "scratch space" for the test suite and is wiped +# and recreated between test runs. Don't rely on the data there! + +Rails.application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + config.cache_classes = false + config.action_view.cache_template_loading = true + + # Do not eager load code on boot. This avoids loading your whole application + # just for the purpose of running a single test. If you are using a tool that + # preloads Rails for running tests, you may have to set it to true. + config.eager_load = false + + # Configure public file server for tests with Cache-Control for performance. + config.public_file_server.enabled = true + config.public_file_server.headers = { + 'Cache-Control' => "public, max-age=#{1.hour.to_i}" + } + + # Show full error reports and disable caching. + config.consider_all_requests_local = true + config.action_controller.perform_caching = false + config.cache_store = :null_store + + # Raise exceptions instead of rendering exception templates. + config.action_dispatch.show_exceptions = false + + # Disable request forgery protection in test environment. + config.action_controller.allow_forgery_protection = false + + # Store uploaded files on the local file system in a temporary directory. + config.active_storage.service = :test + + config.action_mailer.perform_caching = false + + # Tell Action Mailer not to deliver emails to the real world. + # The :test delivery method accumulates sent emails in the + # ActionMailer::Base.deliveries array. + config.action_mailer.delivery_method = :test + + # Print deprecation notices to the stderr. + config.active_support.deprecation = :stderr + + # Raise exceptions for disallowed deprecations. + config.active_support.disallowed_deprecation = :raise + + # Tell Active Support which deprecation messages to disallow. + config.active_support.disallowed_deprecation_warnings = [] + + # Raises error for missing translations. + # config.i18n.raise_on_missing_translations = true + + # Annotate rendered view with file names. + # config.action_view.annotate_rendered_view_with_filenames = true +end diff --git a/config/initializers/application_controller_renderer.rb b/config/initializers/application_controller_renderer.rb new file mode 100644 index 0000000..89d2efa --- /dev/null +++ b/config/initializers/application_controller_renderer.rb @@ -0,0 +1,8 @@ +# Be sure to restart your server when you modify this file. + +# ActiveSupport::Reloader.to_prepare do +# ApplicationController.renderer.defaults.merge!( +# http_host: 'example.org', +# https: false +# ) +# end diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb new file mode 100644 index 0000000..4b828e8 --- /dev/null +++ b/config/initializers/assets.rb @@ -0,0 +1,14 @@ +# Be sure to restart your server when you modify this file. + +# Version of your assets, change this if you want to expire all your assets. +Rails.application.config.assets.version = '1.0' + +# Add additional assets to the asset load path. +# Rails.application.config.assets.paths << Emoji.images_path +# Add Yarn node_modules folder to the asset load path. +Rails.application.config.assets.paths << Rails.root.join('node_modules') + +# Precompile additional assets. +# application.js, application.css, and all non-JS/CSS in the app/assets +# folder are already added. +# Rails.application.config.assets.precompile += %w( admin.js admin.css ) diff --git a/config/initializers/backtrace_silencers.rb b/config/initializers/backtrace_silencers.rb new file mode 100644 index 0000000..33699c3 --- /dev/null +++ b/config/initializers/backtrace_silencers.rb @@ -0,0 +1,8 @@ +# Be sure to restart your server when you modify this file. + +# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. +# Rails.backtrace_cleaner.add_silencer { |line| /my_noisy_library/.match?(line) } + +# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code +# by setting BACKTRACE=1 before calling your invocation, like "BACKTRACE=1 ./bin/rails runner 'MyClass.perform'". +Rails.backtrace_cleaner.remove_silencers! if ENV["BACKTRACE"] diff --git a/config/initializers/client_side_validations.rb b/config/initializers/client_side_validations.rb new file mode 100644 index 0000000..dbcad9a --- /dev/null +++ b/config/initializers/client_side_validations.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true +# ClientSideValidations Initializer + +# Disabled validators +# ClientSideValidations::Config.disabled_validators = [] + +# Uncomment to validate number format with current I18n locale +# ClientSideValidations::Config.number_format_with_locale = true + +# Uncomment the following block if you want each input field to have the validation messages attached. +# +# Note: client_side_validation requires the error to be encapsulated within +# +# +# ActionView::Base.field_error_proc = proc do |html_tag, instance| +# if html_tag =~ /^