diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0a77410f5..0e30dfa9b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -67,6 +67,9 @@ jobs: with: bundler-cache: true + - name: Install packages + run: yarn install --pure-lockfile + - name: Precompile assets run: bin/rails assets:precompile @@ -110,7 +113,7 @@ jobs: uses: joshmfrankel/simplecov-check-action@main with: github_token: ${{ secrets.GITHUB_TOKEN }} - minimum_suite_coverage: 73 + minimum_suite_coverage: 84 minimum_file_coverage: 100 build-and-deploy: diff --git a/.gitignore b/.gitignore index b6fc7057b..548760b12 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,9 @@ vendor # Allow one tmp file /tmp/* !tmp/parallel_runtime_rspec.log + +/public/assets +/node_modules + +/app/assets/builds/* +!/app/assets/builds/.keep diff --git a/.ruby-version b/.ruby-version index 0aec50e6e..fa7adc7ac 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.1.4 +3.3.5 diff --git a/Dockerfile b/Dockerfile index ff93ec390..5ab004988 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby:3.1.4-alpine as base +FROM ruby:3.3.5-alpine as base WORKDIR /app @@ -15,17 +15,23 @@ FROM base as builder RUN apk add --no-cache \ build-base \ ruby-dev \ - postgresql-dev + postgresql-dev \ + yarn -COPY Gemfile* .ruby-version ./ +COPY Gemfile* .ruby-version package.json yarn.lock ./ RUN bundle config deployment true && \ bundle config without development test && \ - bundle install --jobs 4 --retry 3 + bundle install --jobs 4 --retry 3 && \ + yarn install --frozen-lockfile --production COPY . . -RUN RAILS_ENV=production PQ_REST_API_HOST=localhost PQ_REST_API_USERNAME=user PQ_REST_API_PASSWORD=pass DEVISE_SECRET=secret bundle exec rake assets:precompile +RUN RAILS_ENV=production PQ_REST_API_HOST=localhost PQ_REST_API_USERNAME=user PQ_REST_API_PASSWORD=pass \ + SECRET_KEY_BASE_DUMMY=1 bundle exec rake assets:precompile + +# Copy govuk assets +RUN cp -r node_modules/govuk-frontend/dist/govuk/assets/. public/assets/ # Cleanup to save space in the production image RUN rm -rf node_modules log/* tmp/* /tmp && \ diff --git a/Gemfile b/Gemfile index 904ad0110..f1813848a 100644 --- a/Gemfile +++ b/Gemfile @@ -2,37 +2,32 @@ source "https://rubygems.org" ruby file: ".ruby-version" -gem "bootstrap-will_paginate", "~> 1.0" gem "business_time", "~> 0.13.0" gem "devise", "~> 4.8" gem "devise_invitable", "~> 2.0" -gem "font-awesome-rails", "~> 4.7" -gem "govuk_elements_rails", "~> 3.1", ">= 3.1.3" -gem "govuk_frontend_toolkit", "~> 9.0" +gem "govuk-components" gem "govuk_notify_rails", "~> 3.0" -gem "govuk_template", "~> 0.26.0" -gem "jquery-rails", "~> 4.6" gem "logstasher", "~> 2.1", ">= 2.1.5" gem "mail", ">= 2.8" gem "mechanize", "~> 2.12" -gem "momentjs-rails", "~> 2.29" gem "paper_trail" gem "pg", "~> 1.5" gem "puma", "~> 6.4" gem "rails", "~> 7.1" gem "responders", "~> 3.0", ">= 3.0.1" gem "rspec_junit_formatter", "~> 0.6.0" -gem "sass-rails", "~> 6.0" -gem "select2-rails", "~> 4.0", ">= 4.0.13" gem "sentry-rails", "~> 5.21" gem "sentry-ruby", "~> 5.19" gem "sidekiq" -gem "sinatra", "~> 3.1", require: false +gem "sinatra", "~> 4", require: false gem "slim", "~> 5.2" -gem "statsd-ruby", "~> 1.5" -gem "terser" gem "will_paginate", "~> 4.0" +gem "cssbundling-rails", "~> 1.4" +gem "jsbundling-rails", "~> 1.3" +gem "sprockets", "~> 4.2" +gem "sprockets-rails", "~> 3.5" + group :development do gem "annotate" end diff --git a/Gemfile.lock b/Gemfile.lock index d680561ea..667e5c110 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,80 +1,76 @@ GEM remote: https://rubygems.org/ specs: - actioncable (7.1.3.4) - actionpack (= 7.1.3.4) - activesupport (= 7.1.3.4) + actioncable (7.2.1.2) + actionpack (= 7.2.1.2) + activesupport (= 7.2.1.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.3.4) - actionpack (= 7.1.3.4) - activejob (= 7.1.3.4) - activerecord (= 7.1.3.4) - activestorage (= 7.1.3.4) - activesupport (= 7.1.3.4) - mail (>= 2.7.1) - net-imap - net-pop - net-smtp - actionmailer (7.1.3.4) - actionpack (= 7.1.3.4) - actionview (= 7.1.3.4) - activejob (= 7.1.3.4) - activesupport (= 7.1.3.4) - mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp + actionmailbox (7.2.1.2) + actionpack (= 7.2.1.2) + activejob (= 7.2.1.2) + activerecord (= 7.2.1.2) + activestorage (= 7.2.1.2) + activesupport (= 7.2.1.2) + mail (>= 2.8.0) + actionmailer (7.2.1.2) + actionpack (= 7.2.1.2) + actionview (= 7.2.1.2) + activejob (= 7.2.1.2) + activesupport (= 7.2.1.2) + mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.1.3.4) - actionview (= 7.1.3.4) - activesupport (= 7.1.3.4) + actionpack (7.2.1.2) + actionview (= 7.2.1.2) + activesupport (= 7.2.1.2) nokogiri (>= 1.8.5) racc - rack (>= 2.2.4) + rack (>= 2.2.4, < 3.2) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.3.4) - actionpack (= 7.1.3.4) - activerecord (= 7.1.3.4) - activestorage (= 7.1.3.4) - activesupport (= 7.1.3.4) + useragent (~> 0.16) + actiontext (7.2.1.2) + actionpack (= 7.2.1.2) + activerecord (= 7.2.1.2) + activestorage (= 7.2.1.2) + activesupport (= 7.2.1.2) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.3.4) - activesupport (= 7.1.3.4) + actionview (7.2.1.2) + activesupport (= 7.2.1.2) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.1.3.4) - activesupport (= 7.1.3.4) + activejob (7.2.1.2) + activesupport (= 7.2.1.2) globalid (>= 0.3.6) - activemodel (7.1.3.4) - activesupport (= 7.1.3.4) - activerecord (7.1.3.4) - activemodel (= 7.1.3.4) - activesupport (= 7.1.3.4) + activemodel (7.2.1.2) + activesupport (= 7.2.1.2) + activerecord (7.2.1.2) + activemodel (= 7.2.1.2) + activesupport (= 7.2.1.2) timeout (>= 0.4.0) - activestorage (7.1.3.4) - actionpack (= 7.1.3.4) - activejob (= 7.1.3.4) - activerecord (= 7.1.3.4) - activesupport (= 7.1.3.4) + activestorage (7.2.1.2) + actionpack (= 7.2.1.2) + activejob (= 7.2.1.2) + activerecord (= 7.2.1.2) + activesupport (= 7.2.1.2) marcel (~> 1.0) - activesupport (7.1.3.4) + activesupport (7.2.1.2) base64 bigdecimal - concurrent-ruby (~> 1.0, >= 1.0.2) + concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) + logger (>= 1.4.2) minitest (>= 5.1) - mutex_m - tzinfo (~> 2.0) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) annotate (3.2.0) @@ -90,8 +86,6 @@ GEM bigdecimal (3.1.8) binding_of_caller (1.0.1) debug_inspector (>= 1.2.0) - bootstrap-will_paginate (1.0.0) - will_paginate brakeman (6.2.2) racc builder (3.3.0) @@ -110,9 +104,11 @@ GEM concurrent-ruby (1.3.4) connection_pool (2.4.1) crass (1.0.6) - database_cleaner (2.0.2) + cssbundling-rails (1.4.1) + railties (>= 6.0.0) + database_cleaner (2.1.0) database_cleaner-active_record (>= 2, < 3) - database_cleaner-active_record (2.1.0) + database_cleaner-active_record (2.2.0) activerecord (>= 5.a) database_cleaner-core (~> 2.0.0) database_cleaner-core (2.0.1) @@ -135,7 +131,6 @@ GEM domain_name (0.6.20240107) drb (2.2.1) erubi (1.13.0) - execjs (2.9.1) factory_bot (6.4.6) activesupport (>= 5.0.0) factory_bot_rails (6.4.3) @@ -143,22 +138,17 @@ GEM railties (>= 5.0.0) faker (3.4.2) i18n (>= 1.8.11, < 2) - ffi (1.15.5) - font-awesome-rails (4.7.0.8) - railties (>= 3.2, < 8.0) globalid (1.2.1) activesupport (>= 6.1) - govuk_elements_rails (3.1.3) - govuk_frontend_toolkit (>= 6.0.2) - rails (>= 4.1.0) - sass (>= 3.2.0) - govuk_frontend_toolkit (9.0.1) - railties (>= 3.1.0) + govuk-components (5.7.0) + html-attributes-utils (~> 1.0.0, >= 1.0.0) + pagy (>= 6, < 10) + view_component (>= 3.9, < 3.17) govuk_notify_rails (3.0.0) notifications-ruby-client (~> 6.2) rails (>= 4.1.0) - govuk_template (0.26.0) - rails (>= 3.1) + html-attributes-utils (1.0.2) + activesupport (>= 6.1.4.4) http-cookie (1.0.7) domain_name (~> 0.5) i18n (1.14.6) @@ -167,10 +157,8 @@ GEM irb (1.14.1) rdoc (>= 4.0.0) reline (>= 0.4.2) - jquery-rails (4.6.0) - rails-dom-testing (>= 1, < 3) - railties (>= 4.2.0) - thor (>= 0.14, < 2.0) + jsbundling-rails (1.3.1) + railties (>= 6.0.0) json (2.7.2) jwt (2.9.1) base64 @@ -180,7 +168,7 @@ GEM logstasher (2.1.5) activesupport (>= 5.2) request_store - loofah (2.22.0) + loofah (2.23.1) crass (~> 1.0.2) nokogiri (>= 1.12.0) mail (2.8.1) @@ -203,21 +191,19 @@ GEM rubyntlm (~> 0.6, >= 0.6.3) webrick (~> 1.7) webrobots (~> 0.1.2) + method_source (1.1.0) mime-types (3.5.2) mime-types-data (~> 3.2015) mime-types-data (3.2024.0903) mini_mime (1.1.5) mini_portile2 (2.8.7) minitest (5.25.1) - momentjs-rails (2.29.4.1) - railties (>= 3.1) - mustermann (3.0.0) + mustermann (3.0.3) ruby2_keywords (~> 0.0.1) - mutex_m (0.2.0) net-http-digest_auth (1.4.1) net-http-persistent (4.0.4) connection_pool (~> 2.2) - net-imap (0.4.16) + net-imap (0.5.0) date net-protocol net-pop (0.1.2) @@ -234,6 +220,7 @@ GEM notifications-ruby-client (6.2.0) jwt (>= 1.5, < 3) orm_adapter (0.5.0) + pagy (9.1.0) paper_trail (15.2.0) activerecord (>= 6.1) request_store (~> 1.4) @@ -250,30 +237,31 @@ GEM puma (6.4.3) nio4r (~> 2.0) racc (1.8.1) - rack (2.2.10) - rack-protection (3.1.0) - rack (~> 2.2, >= 2.2.4) - rack-session (1.0.2) - rack (< 3) + rack (3.1.8) + rack-protection (4.0.0) + base64 (>= 0.1.0) + rack (>= 3.0.0, < 4) + rack-session (2.0.0) + rack (>= 3.0.0) rack-test (2.1.0) rack (>= 1.3) - rackup (1.0.0) - rack (< 3) - webrick - rails (7.1.3.4) - actioncable (= 7.1.3.4) - actionmailbox (= 7.1.3.4) - actionmailer (= 7.1.3.4) - actionpack (= 7.1.3.4) - actiontext (= 7.1.3.4) - actionview (= 7.1.3.4) - activejob (= 7.1.3.4) - activemodel (= 7.1.3.4) - activerecord (= 7.1.3.4) - activestorage (= 7.1.3.4) - activesupport (= 7.1.3.4) + rackup (2.1.0) + rack (>= 3) + webrick (~> 1.8) + rails (7.2.1.2) + actioncable (= 7.2.1.2) + actionmailbox (= 7.2.1.2) + actionmailer (= 7.2.1.2) + actionpack (= 7.2.1.2) + actiontext (= 7.2.1.2) + actionview (= 7.2.1.2) + activejob (= 7.2.1.2) + activemodel (= 7.2.1.2) + activerecord (= 7.2.1.2) + activestorage (= 7.2.1.2) + activesupport (= 7.2.1.2) bundler (>= 1.15.0) - railties (= 7.1.3.4) + railties (= 7.2.1.2) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -285,10 +273,10 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - railties (7.1.3.4) - actionpack (= 7.1.3.4) - activesupport (= 7.1.3.4) - irb + railties (7.2.1.2) + actionpack (= 7.2.1.2) + activesupport (= 7.2.1.2) + irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) thor (~> 1.0, >= 1.2.2) @@ -296,9 +284,6 @@ GEM rainbow (3.1.1) raindrops (0.20.1) rake (13.2.1) - rb-fsevent (0.11.2) - rb-inotify (0.10.1) - ffi (~> 1.0) rdoc (6.7.0) psych (>= 4.0.0) redis-client (0.22.2) @@ -368,23 +353,8 @@ GEM rubyntlm (0.6.5) base64 rubyzip (2.3.2) - sass (3.7.4) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - 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 - select2-rails (4.0.13) - selenium-webdriver (4.26.0) + securerandom (0.3.1) + selenium-webdriver (4.23.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) @@ -410,10 +380,11 @@ GEM simplecov_json_formatter (~> 0.1) simplecov-html (0.12.3) simplecov_json_formatter (0.1.4) - sinatra (3.1.0) + sinatra (4.0.0) mustermann (~> 3.0) - rack (~> 2.2, >= 2.2.4) - rack-protection (= 3.1.0) + rack (>= 3.0.0, < 4) + rack-protection (= 4.0.0) + rack-session (>= 2.0.0, < 3) tilt (~> 2.0) slim (5.2.1) temple (~> 0.10.0) @@ -421,17 +392,14 @@ GEM sprockets (4.2.1) concurrent-ruby (~> 1.0) rack (>= 2.2.4, < 4) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) + sprockets-rails (3.5.2) + actionpack (>= 6.1) + activesupport (>= 6.1) sprockets (>= 3.0.0) - statsd-ruby (1.5.0) stringio (3.1.1) temple (0.10.3) - terser (1.2.3) - execjs (>= 0.3.0, < 3) thor (1.3.2) - tilt (2.3.0) + tilt (2.4.0) timecop (0.9.10) timeout (0.4.1) tzinfo (2.0.6) @@ -440,6 +408,11 @@ GEM unicorn (6.1.0) kgio (~> 2.6) raindrops (~> 0.7) + useragent (0.16.10) + view_component (3.16.0) + activesupport (>= 5.2.0, < 8.0) + concurrent-ruby (~> 1.0) + method_source (~> 1.0) warden (1.2.9) rack (>= 2.0.9) webrick (1.8.2) @@ -451,7 +424,7 @@ GEM will_paginate (4.0.1) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.18) + zeitwerk (2.7.1) PLATFORMS ruby @@ -460,26 +433,22 @@ DEPENDENCIES annotate better_errors binding_of_caller - bootstrap-will_paginate (~> 1.0) brakeman business_time (~> 0.13.0) capybara + cssbundling-rails (~> 1.4) database_cleaner debug devise (~> 4.8) devise_invitable (~> 2.0) factory_bot_rails faker - font-awesome-rails (~> 4.7) - govuk_elements_rails (~> 3.1, >= 3.1.3) - govuk_frontend_toolkit (~> 9.0) + govuk-components govuk_notify_rails (~> 3.0) - govuk_template (~> 0.26.0) - jquery-rails (~> 4.6) + jsbundling-rails (~> 1.3) logstasher (~> 2.1, >= 2.1.5) mail (>= 2.8) mechanize (~> 2.12) - momentjs-rails (~> 2.29) paper_trail parallel_tests pg (~> 1.5) @@ -490,24 +459,22 @@ DEPENDENCIES rspec-rails rspec_junit_formatter (~> 0.6.0) rubocop-govuk - sass-rails (~> 6.0) - select2-rails (~> 4.0, >= 4.0.13) selenium-webdriver sentry-rails (~> 5.21) sentry-ruby (~> 5.19) shoulda-matchers sidekiq simplecov - sinatra (~> 3.1) + sinatra (~> 4) slim (~> 5.2) - statsd-ruby (~> 1.5) - terser + sprockets (~> 4.2) + sprockets-rails (~> 3.5) timecop unicorn will_paginate (~> 4.0) RUBY VERSION - ruby 3.1.4p223 + ruby 3.3.5p100 BUNDLED WITH 2.4.19 diff --git a/Procfile.dev b/Procfile.dev new file mode 100644 index 000000000..3dc6eac01 --- /dev/null +++ b/Procfile.dev @@ -0,0 +1,3 @@ +web: bin/rails server +css: yarn build:css --watch +js: yarn build --watch diff --git a/README.md b/README.md index c553fc619..77b8cb054 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,12 @@ $ rbenv install #### Dependencies +Yarn + +``` +$ brew install yarn +``` + Postgresql ``` @@ -67,6 +73,7 @@ Use the following commands to install gems and javascript packages then create t ``` $ bin/setup +$ yarn install ``` #### Seeds @@ -85,11 +92,9 @@ $ bundle exec rake pqa:import_from_xml[path/to/question_file.xml] #### Running locally: -To just run the web server without any background jobs (usually sufficient): +Use the dev command to run the application. This will use Foreman to start the rails server as well as compiling the css and js. Any changes to the css and js will be live updated. -``` -$ bin/rails server -``` +$ bin/dev The site will be accessible at http://localhost:3000. diff --git a/app/assets/builds/.keep b/app/assets/builds/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/app/assets/config/manifest.js b/app/assets/config/manifest.js index c2582f3bf..c6381c790 100644 --- a/app/assets/config/manifest.js +++ b/app/assets/config/manifest.js @@ -1,9 +1,8 @@ //= link_tree ../images -//= link_directory ../javascripts .js -//= link_directory ../stylesheets .css -//= link govuk-template.css -//= link govuk-template-ie6.css -//= link govuk-template-ie7.css -//= link govuk-template-ie8.css -//= link govuk-template-print.css -//= link fonts.css +//= link_tree ../builds +//= link_tree ../../../node_modules/govuk-frontend/dist/govuk/assets/images +//= link jquery/dist/jquery.js +//= link moment/moment.js +//= link select2/dist/js/select2.js +//= link select2/dist/css/select2.css +//= link font-awesome/css/font-awesome.css diff --git a/app/assets/images/moj_logo.png b/app/assets/images/moj_logo.png deleted file mode 100644 index ee00a0dff..000000000 Binary files a/app/assets/images/moj_logo.png and /dev/null differ diff --git a/app/assets/images/open-government-licence.png b/app/assets/images/open-government-licence.png deleted file mode 100644 index 3faae2d9a..000000000 Binary files a/app/assets/images/open-government-licence.png and /dev/null differ diff --git a/app/assets/images/progress-tab-bg.png b/app/assets/images/progress-tab-bg.png deleted file mode 100644 index c7bc69117..000000000 Binary files a/app/assets/images/progress-tab-bg.png and /dev/null differ diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js deleted file mode 100644 index d0469785c..000000000 --- a/app/assets/javascripts/application.js +++ /dev/null @@ -1,16 +0,0 @@ -// This is a manifest file that'll be compiled into application.js, which will include all the files -// listed below. -// -// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, -// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path. -// -// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the -// compiled file. -// -// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details -// about supported directives. -// -//= require jquery -//= require jquery_ujs -//= require select2 -//= require_tree . diff --git a/app/assets/javascripts/moment.js b/app/assets/javascripts/moment.js deleted file mode 100644 index 23cd3ede1..000000000 --- a/app/assets/javascripts/moment.js +++ /dev/null @@ -1,3195 +0,0 @@ -//! moment.js -//! version : 2.10.6 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - global.moment = factory() -}(this, function () { 'use strict'; - - var hookCallback; - - function utils_hooks__hooks () { - return hookCallback.apply(null, arguments); - } - - // This is done to register the method called with moment() - // without creating circular dependencies. - function setHookCallback (callback) { - hookCallback = callback; - } - - function isArray(input) { - return Object.prototype.toString.call(input) === '[object Array]'; - } - - function isDate(input) { - return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; - } - - function map(arr, fn) { - var res = [], i; - for (i = 0; i < arr.length; ++i) { - res.push(fn(arr[i], i)); - } - return res; - } - - function hasOwnProp(a, b) { - return Object.prototype.hasOwnProperty.call(a, b); - } - - function extend(a, b) { - for (var i in b) { - if (hasOwnProp(b, i)) { - a[i] = b[i]; - } - } - - if (hasOwnProp(b, 'toString')) { - a.toString = b.toString; - } - - if (hasOwnProp(b, 'valueOf')) { - a.valueOf = b.valueOf; - } - - return a; - } - - function create_utc__createUTC (input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, true).utc(); - } - - function defaultParsingFlags() { - // We need to deep clone this object. - return { - empty : false, - unusedTokens : [], - unusedInput : [], - overflow : -2, - charsLeftOver : 0, - nullInput : false, - invalidMonth : null, - invalidFormat : false, - userInvalidated : false, - iso : false - }; - } - - function getParsingFlags(m) { - if (m._pf == null) { - m._pf = defaultParsingFlags(); - } - return m._pf; - } - - function valid__isValid(m) { - if (m._isValid == null) { - var flags = getParsingFlags(m); - m._isValid = !isNaN(m._d.getTime()) && - flags.overflow < 0 && - !flags.empty && - !flags.invalidMonth && - !flags.invalidWeekday && - !flags.nullInput && - !flags.invalidFormat && - !flags.userInvalidated; - - if (m._strict) { - m._isValid = m._isValid && - flags.charsLeftOver === 0 && - flags.unusedTokens.length === 0 && - flags.bigHour === undefined; - } - } - return m._isValid; - } - - function valid__createInvalid (flags) { - var m = create_utc__createUTC(NaN); - if (flags != null) { - extend(getParsingFlags(m), flags); - } - else { - getParsingFlags(m).userInvalidated = true; - } - - return m; - } - - var momentProperties = utils_hooks__hooks.momentProperties = []; - - function copyConfig(to, from) { - var i, prop, val; - - if (typeof from._isAMomentObject !== 'undefined') { - to._isAMomentObject = from._isAMomentObject; - } - if (typeof from._i !== 'undefined') { - to._i = from._i; - } - if (typeof from._f !== 'undefined') { - to._f = from._f; - } - if (typeof from._l !== 'undefined') { - to._l = from._l; - } - if (typeof from._strict !== 'undefined') { - to._strict = from._strict; - } - if (typeof from._tzm !== 'undefined') { - to._tzm = from._tzm; - } - if (typeof from._isUTC !== 'undefined') { - to._isUTC = from._isUTC; - } - if (typeof from._offset !== 'undefined') { - to._offset = from._offset; - } - if (typeof from._pf !== 'undefined') { - to._pf = getParsingFlags(from); - } - if (typeof from._locale !== 'undefined') { - to._locale = from._locale; - } - - if (momentProperties.length > 0) { - for (i in momentProperties) { - prop = momentProperties[i]; - val = from[prop]; - if (typeof val !== 'undefined') { - to[prop] = val; - } - } - } - - return to; - } - - var updateInProgress = false; - - // Moment prototype object - function Moment(config) { - copyConfig(this, config); - this._d = new Date(config._d != null ? config._d.getTime() : NaN); - // Prevent infinite loop in case updateOffset creates new moment - // objects. - if (updateInProgress === false) { - updateInProgress = true; - utils_hooks__hooks.updateOffset(this); - updateInProgress = false; - } - } - - function isMoment (obj) { - return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); - } - - function absFloor (number) { - if (number < 0) { - return Math.ceil(number); - } else { - return Math.floor(number); - } - } - - function toInt(argumentForCoercion) { - var coercedNumber = +argumentForCoercion, - value = 0; - - if (coercedNumber !== 0 && isFinite(coercedNumber)) { - value = absFloor(coercedNumber); - } - - return value; - } - - function compareArrays(array1, array2, dontConvert) { - var len = Math.min(array1.length, array2.length), - lengthDiff = Math.abs(array1.length - array2.length), - diffs = 0, - i; - for (i = 0; i < len; i++) { - if ((dontConvert && array1[i] !== array2[i]) || - (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { - diffs++; - } - } - return diffs + lengthDiff; - } - - function Locale() { - } - - var locales = {}; - var globalLocale; - - function normalizeLocale(key) { - return key ? key.toLowerCase().replace('_', '-') : key; - } - - // pick the locale from the array - // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each - // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root - function chooseLocale(names) { - var i = 0, j, next, locale, split; - - while (i < names.length) { - split = normalizeLocale(names[i]).split('-'); - j = split.length; - next = normalizeLocale(names[i + 1]); - next = next ? next.split('-') : null; - while (j > 0) { - locale = loadLocale(split.slice(0, j).join('-')); - if (locale) { - return locale; - } - if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { - //the next array item is better than a shallower substring of this one - break; - } - j--; - } - i++; - } - return null; - } - - function loadLocale(name) { - var oldLocale = null; - // TODO: Find a better way to register and load all the locales in Node - if (!locales[name] && typeof module !== 'undefined' && - module && module.exports) { - try { - oldLocale = globalLocale._abbr; - require('./locale/' + name); - // because defineLocale currently also sets the global locale, we - // want to undo that for lazy loaded locales - locale_locales__getSetGlobalLocale(oldLocale); - } catch (e) { } - } - return locales[name]; - } - - // This function will load locale and then set the global locale. If - // no arguments are passed in, it will simply return the current global - // locale key. - function locale_locales__getSetGlobalLocale (key, values) { - var data; - if (key) { - if (typeof values === 'undefined') { - data = locale_locales__getLocale(key); - } - else { - data = defineLocale(key, values); - } - - if (data) { - // moment.duration._locale = moment._locale = data; - globalLocale = data; - } - } - - return globalLocale._abbr; - } - - function defineLocale (name, values) { - if (values !== null) { - values.abbr = name; - locales[name] = locales[name] || new Locale(); - locales[name].set(values); - - // backwards compat for now: also set the locale - locale_locales__getSetGlobalLocale(name); - - return locales[name]; - } else { - // useful for testing - delete locales[name]; - return null; - } - } - - // returns locale data - function locale_locales__getLocale (key) { - var locale; - - if (key && key._locale && key._locale._abbr) { - key = key._locale._abbr; - } - - if (!key) { - return globalLocale; - } - - if (!isArray(key)) { - //short-circuit everything else - locale = loadLocale(key); - if (locale) { - return locale; - } - key = [key]; - } - - return chooseLocale(key); - } - - var aliases = {}; - - function addUnitAlias (unit, shorthand) { - var lowerCase = unit.toLowerCase(); - aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; - } - - function normalizeUnits(units) { - return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; - } - - function normalizeObjectUnits(inputObject) { - var normalizedInput = {}, - normalizedProp, - prop; - - for (prop in inputObject) { - if (hasOwnProp(inputObject, prop)) { - normalizedProp = normalizeUnits(prop); - if (normalizedProp) { - normalizedInput[normalizedProp] = inputObject[prop]; - } - } - } - - return normalizedInput; - } - - function makeGetSet (unit, keepTime) { - return function (value) { - if (value != null) { - get_set__set(this, unit, value); - utils_hooks__hooks.updateOffset(this, keepTime); - return this; - } else { - return get_set__get(this, unit); - } - }; - } - - function get_set__get (mom, unit) { - return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit](); - } - - function get_set__set (mom, unit, value) { - return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); - } - - // MOMENTS - - function getSet (units, value) { - var unit; - if (typeof units === 'object') { - for (unit in units) { - this.set(unit, units[unit]); - } - } else { - units = normalizeUnits(units); - if (typeof this[units] === 'function') { - return this[units](value); - } - } - return this; - } - - function zeroFill(number, targetLength, forceSign) { - var absNumber = '' + Math.abs(number), - zerosToFill = targetLength - absNumber.length, - sign = number >= 0; - return (sign ? (forceSign ? '+' : '') : '-') + - Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; - } - - var formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; - - var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; - - var formatFunctions = {}; - - var formatTokenFunctions = {}; - - // token: 'M' - // padded: ['MM', 2] - // ordinal: 'Mo' - // callback: function () { this.month() + 1 } - function addFormatToken (token, padded, ordinal, callback) { - var func = callback; - if (typeof callback === 'string') { - func = function () { - return this[callback](); - }; - } - if (token) { - formatTokenFunctions[token] = func; - } - if (padded) { - formatTokenFunctions[padded[0]] = function () { - return zeroFill(func.apply(this, arguments), padded[1], padded[2]); - }; - } - if (ordinal) { - formatTokenFunctions[ordinal] = function () { - return this.localeData().ordinal(func.apply(this, arguments), token); - }; - } - } - - function removeFormattingTokens(input) { - if (input.match(/\[[\s\S]/)) { - return input.replace(/^\[|\]$/g, ''); - } - return input.replace(/\\/g, ''); - } - - function makeFormatFunction(format) { - var array = format.match(formattingTokens), i, length; - - for (i = 0, length = array.length; i < length; i++) { - if (formatTokenFunctions[array[i]]) { - array[i] = formatTokenFunctions[array[i]]; - } else { - array[i] = removeFormattingTokens(array[i]); - } - } - - return function (mom) { - var output = ''; - for (i = 0; i < length; i++) { - output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; - } - return output; - }; - } - - // format date using native date object - function formatMoment(m, format) { - if (!m.isValid()) { - return m.localeData().invalidDate(); - } - - format = expandFormat(format, m.localeData()); - formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); - - return formatFunctions[format](m); - } - - function expandFormat(format, locale) { - var i = 5; - - function replaceLongDateFormatTokens(input) { - return locale.longDateFormat(input) || input; - } - - localFormattingTokens.lastIndex = 0; - while (i >= 0 && localFormattingTokens.test(format)) { - format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); - localFormattingTokens.lastIndex = 0; - i -= 1; - } - - return format; - } - - var match1 = /\d/; // 0 - 9 - var match2 = /\d\d/; // 00 - 99 - var match3 = /\d{3}/; // 000 - 999 - var match4 = /\d{4}/; // 0000 - 9999 - var match6 = /[+-]?\d{6}/; // -999999 - 999999 - var match1to2 = /\d\d?/; // 0 - 99 - var match1to3 = /\d{1,3}/; // 0 - 999 - var match1to4 = /\d{1,4}/; // 0 - 9999 - var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 - - var matchUnsigned = /\d+/; // 0 - inf - var matchSigned = /[+-]?\d+/; // -inf - inf - - var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z - - var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 - - // any word (or two) characters or numbers including two/three word month in arabic. - var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; - - var regexes = {}; - - function isFunction (sth) { - // https://github.com/moment/moment/issues/2325 - return typeof sth === 'function' && - Object.prototype.toString.call(sth) === '[object Function]'; - } - - - function addRegexToken (token, regex, strictRegex) { - regexes[token] = isFunction(regex) ? regex : function (isStrict) { - return (isStrict && strictRegex) ? strictRegex : regex; - }; - } - - function getParseRegexForToken (token, config) { - if (!hasOwnProp(regexes, token)) { - return new RegExp(unescapeFormat(token)); - } - - return regexes[token](config._strict, config._locale); - } - - // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript - function unescapeFormat(s) { - return s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { - return p1 || p2 || p3 || p4; - }).replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); - } - - var tokens = {}; - - function addParseToken (token, callback) { - var i, func = callback; - if (typeof token === 'string') { - token = [token]; - } - if (typeof callback === 'number') { - func = function (input, array) { - array[callback] = toInt(input); - }; - } - for (i = 0; i < token.length; i++) { - tokens[token[i]] = func; - } - } - - function addWeekParseToken (token, callback) { - addParseToken(token, function (input, array, config, token) { - config._w = config._w || {}; - callback(input, config._w, config, token); - }); - } - - function addTimeToArrayFromToken(token, input, config) { - if (input != null && hasOwnProp(tokens, token)) { - tokens[token](input, config._a, config, token); - } - } - - var YEAR = 0; - var MONTH = 1; - var DATE = 2; - var HOUR = 3; - var MINUTE = 4; - var SECOND = 5; - var MILLISECOND = 6; - - function daysInMonth(year, month) { - return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); - } - - // FORMATTING - - addFormatToken('M', ['MM', 2], 'Mo', function () { - return this.month() + 1; - }); - - addFormatToken('MMM', 0, 0, function (format) { - return this.localeData().monthsShort(this, format); - }); - - addFormatToken('MMMM', 0, 0, function (format) { - return this.localeData().months(this, format); - }); - - // ALIASES - - addUnitAlias('month', 'M'); - - // PARSING - - addRegexToken('M', match1to2); - addRegexToken('MM', match1to2, match2); - addRegexToken('MMM', matchWord); - addRegexToken('MMMM', matchWord); - - addParseToken(['M', 'MM'], function (input, array) { - array[MONTH] = toInt(input) - 1; - }); - - addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { - var month = config._locale.monthsParse(input, token, config._strict); - // if we didn't find a month name, mark the date as invalid. - if (month != null) { - array[MONTH] = month; - } else { - getParsingFlags(config).invalidMonth = input; - } - }); - - // LOCALES - - var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); - function localeMonths (m) { - return this._months[m.month()]; - } - - var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); - function localeMonthsShort (m) { - return this._monthsShort[m.month()]; - } - - function localeMonthsParse (monthName, format, strict) { - var i, mom, regex; - - if (!this._monthsParse) { - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - } - - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = create_utc__createUTC([2000, i]); - if (strict && !this._longMonthsParse[i]) { - this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); - this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); - } - if (!strict && !this._monthsParse[i]) { - regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); - this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { - return i; - } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { - return i; - } else if (!strict && this._monthsParse[i].test(monthName)) { - return i; - } - } - } - - // MOMENTS - - function setMonth (mom, value) { - var dayOfMonth; - - // TODO: Move this out of here! - if (typeof value === 'string') { - value = mom.localeData().monthsParse(value); - // TODO: Another silent failure? - if (typeof value !== 'number') { - return mom; - } - } - - dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); - return mom; - } - - function getSetMonth (value) { - if (value != null) { - setMonth(this, value); - utils_hooks__hooks.updateOffset(this, true); - return this; - } else { - return get_set__get(this, 'Month'); - } - } - - function getDaysInMonth () { - return daysInMonth(this.year(), this.month()); - } - - function checkOverflow (m) { - var overflow; - var a = m._a; - - if (a && getParsingFlags(m).overflow === -2) { - overflow = - a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : - a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : - a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : - a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : - a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : - a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : - -1; - - if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { - overflow = DATE; - } - - getParsingFlags(m).overflow = overflow; - } - - return m; - } - - function warn(msg) { - if (utils_hooks__hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) { - console.warn('Deprecation warning: ' + msg); - } - } - - function deprecate(msg, fn) { - var firstTime = true; - - return extend(function () { - if (firstTime) { - warn(msg + '\n' + (new Error()).stack); - firstTime = false; - } - return fn.apply(this, arguments); - }, fn); - } - - var deprecations = {}; - - function deprecateSimple(name, msg) { - if (!deprecations[name]) { - warn(msg); - deprecations[name] = true; - } - } - - utils_hooks__hooks.suppressDeprecationWarnings = false; - - var from_string__isoRegex = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; - - var isoDates = [ - ['YYYYYY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/], - ['YYYY-MM-DD', /\d{4}-\d{2}-\d{2}/], - ['GGGG-[W]WW-E', /\d{4}-W\d{2}-\d/], - ['GGGG-[W]WW', /\d{4}-W\d{2}/], - ['YYYY-DDD', /\d{4}-\d{3}/] - ]; - - // iso time formats and regexes - var isoTimes = [ - ['HH:mm:ss.SSSS', /(T| )\d\d:\d\d:\d\d\.\d+/], - ['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/], - ['HH:mm', /(T| )\d\d:\d\d/], - ['HH', /(T| )\d\d/] - ]; - - var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; - - // date from iso format - function configFromISO(config) { - var i, l, - string = config._i, - match = from_string__isoRegex.exec(string); - - if (match) { - getParsingFlags(config).iso = true; - for (i = 0, l = isoDates.length; i < l; i++) { - if (isoDates[i][1].exec(string)) { - config._f = isoDates[i][0]; - break; - } - } - for (i = 0, l = isoTimes.length; i < l; i++) { - if (isoTimes[i][1].exec(string)) { - // match[6] should be 'T' or space - config._f += (match[6] || ' ') + isoTimes[i][0]; - break; - } - } - if (string.match(matchOffset)) { - config._f += 'Z'; - } - configFromStringAndFormat(config); - } else { - config._isValid = false; - } - } - - // date from iso format or fallback - function configFromString(config) { - var matched = aspNetJsonRegex.exec(config._i); - - if (matched !== null) { - config._d = new Date(+matched[1]); - return; - } - - configFromISO(config); - if (config._isValid === false) { - delete config._isValid; - utils_hooks__hooks.createFromInputFallback(config); - } - } - - utils_hooks__hooks.createFromInputFallback = deprecate( - 'moment construction falls back to js Date. This is ' + - 'discouraged and will be removed in upcoming major ' + - 'release. Please refer to ' + - 'https://github.com/moment/moment/issues/1407 for more info.', - function (config) { - config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); - } - ); - - function createDate (y, m, d, h, M, s, ms) { - //can't just apply() to create a date: - //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply - var date = new Date(y, m, d, h, M, s, ms); - - //the date constructor doesn't accept years < 1970 - if (y < 1970) { - date.setFullYear(y); - } - return date; - } - - function createUTCDate (y) { - var date = new Date(Date.UTC.apply(null, arguments)); - if (y < 1970) { - date.setUTCFullYear(y); - } - return date; - } - - addFormatToken(0, ['YY', 2], 0, function () { - return this.year() % 100; - }); - - addFormatToken(0, ['YYYY', 4], 0, 'year'); - addFormatToken(0, ['YYYYY', 5], 0, 'year'); - addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); - - // ALIASES - - addUnitAlias('year', 'y'); - - // PARSING - - addRegexToken('Y', matchSigned); - addRegexToken('YY', match1to2, match2); - addRegexToken('YYYY', match1to4, match4); - addRegexToken('YYYYY', match1to6, match6); - addRegexToken('YYYYYY', match1to6, match6); - - addParseToken(['YYYYY', 'YYYYYY'], YEAR); - addParseToken('YYYY', function (input, array) { - array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input); - }); - addParseToken('YY', function (input, array) { - array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input); - }); - - // HELPERS - - function daysInYear(year) { - return isLeapYear(year) ? 366 : 365; - } - - function isLeapYear(year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; - } - - // HOOKS - - utils_hooks__hooks.parseTwoDigitYear = function (input) { - return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); - }; - - // MOMENTS - - var getSetYear = makeGetSet('FullYear', false); - - function getIsLeapYear () { - return isLeapYear(this.year()); - } - - addFormatToken('w', ['ww', 2], 'wo', 'week'); - addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); - - // ALIASES - - addUnitAlias('week', 'w'); - addUnitAlias('isoWeek', 'W'); - - // PARSING - - addRegexToken('w', match1to2); - addRegexToken('ww', match1to2, match2); - addRegexToken('W', match1to2); - addRegexToken('WW', match1to2, match2); - - addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { - week[token.substr(0, 1)] = toInt(input); - }); - - // HELPERS - - // firstDayOfWeek 0 = sun, 6 = sat - // the day of the week that starts the week - // (usually sunday or monday) - // firstDayOfWeekOfYear 0 = sun, 6 = sat - // the first week is the week that contains the first - // of this day of the week - // (eg. ISO weeks use thursday (4)) - function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) { - var end = firstDayOfWeekOfYear - firstDayOfWeek, - daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(), - adjustedMoment; - - - if (daysToDayOfWeek > end) { - daysToDayOfWeek -= 7; - } - - if (daysToDayOfWeek < end - 7) { - daysToDayOfWeek += 7; - } - - adjustedMoment = local__createLocal(mom).add(daysToDayOfWeek, 'd'); - return { - week: Math.ceil(adjustedMoment.dayOfYear() / 7), - year: adjustedMoment.year() - }; - } - - // LOCALES - - function localeWeek (mom) { - return weekOfYear(mom, this._week.dow, this._week.doy).week; - } - - var defaultLocaleWeek = { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - }; - - function localeFirstDayOfWeek () { - return this._week.dow; - } - - function localeFirstDayOfYear () { - return this._week.doy; - } - - // MOMENTS - - function getSetWeek (input) { - var week = this.localeData().week(this); - return input == null ? week : this.add((input - week) * 7, 'd'); - } - - function getSetISOWeek (input) { - var week = weekOfYear(this, 1, 4).week; - return input == null ? week : this.add((input - week) * 7, 'd'); - } - - addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); - - // ALIASES - - addUnitAlias('dayOfYear', 'DDD'); - - // PARSING - - addRegexToken('DDD', match1to3); - addRegexToken('DDDD', match3); - addParseToken(['DDD', 'DDDD'], function (input, array, config) { - config._dayOfYear = toInt(input); - }); - - // HELPERS - - //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday - function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) { - var week1Jan = 6 + firstDayOfWeek - firstDayOfWeekOfYear, janX = createUTCDate(year, 0, 1 + week1Jan), d = janX.getUTCDay(), dayOfYear; - if (d < firstDayOfWeek) { - d += 7; - } - - weekday = weekday != null ? 1 * weekday : firstDayOfWeek; - - dayOfYear = 1 + week1Jan + 7 * (week - 1) - d + weekday; - - return { - year: dayOfYear > 0 ? year : year - 1, - dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear - }; - } - - // MOMENTS - - function getSetDayOfYear (input) { - var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; - return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); - } - - // Pick the first defined of two or three arguments. - function defaults(a, b, c) { - if (a != null) { - return a; - } - if (b != null) { - return b; - } - return c; - } - - function currentDateArray(config) { - var now = new Date(); - if (config._useUTC) { - return [now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()]; - } - return [now.getFullYear(), now.getMonth(), now.getDate()]; - } - - // convert an array to a date. - // the array should mirror the parameters below - // note: all values past the year are optional and will default to the lowest possible value. - // [year, month, day , hour, minute, second, millisecond] - function configFromArray (config) { - var i, date, input = [], currentDate, yearToUse; - - if (config._d) { - return; - } - - currentDate = currentDateArray(config); - - //compute day of the year from weeks and weekdays - if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { - dayOfYearFromWeekInfo(config); - } - - //if the day of the year is set, figure out what it is - if (config._dayOfYear) { - yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); - - if (config._dayOfYear > daysInYear(yearToUse)) { - getParsingFlags(config)._overflowDayOfYear = true; - } - - date = createUTCDate(yearToUse, 0, config._dayOfYear); - config._a[MONTH] = date.getUTCMonth(); - config._a[DATE] = date.getUTCDate(); - } - - // Default to current date. - // * if no year, month, day of month are given, default to today - // * if day of month is given, default month and year - // * if month is given, default only year - // * if year is given, don't default anything - for (i = 0; i < 3 && config._a[i] == null; ++i) { - config._a[i] = input[i] = currentDate[i]; - } - - // Zero out whatever was not defaulted, including time - for (; i < 7; i++) { - config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; - } - - // Check for 24:00:00.000 - if (config._a[HOUR] === 24 && - config._a[MINUTE] === 0 && - config._a[SECOND] === 0 && - config._a[MILLISECOND] === 0) { - config._nextDay = true; - config._a[HOUR] = 0; - } - - config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); - // Apply timezone offset from input. The actual utcOffset can be changed - // with parseZone. - if (config._tzm != null) { - config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); - } - - if (config._nextDay) { - config._a[HOUR] = 24; - } - } - - function dayOfYearFromWeekInfo(config) { - var w, weekYear, week, weekday, dow, doy, temp; - - w = config._w; - if (w.GG != null || w.W != null || w.E != null) { - dow = 1; - doy = 4; - - // TODO: We need to take the current isoWeekYear, but that depends on - // how we interpret now (local, utc, fixed offset). So create - // a now version of current config (take local/utc/offset flags, and - // create now). - weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year); - week = defaults(w.W, 1); - weekday = defaults(w.E, 1); - } else { - dow = config._locale._week.dow; - doy = config._locale._week.doy; - - weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year); - week = defaults(w.w, 1); - - if (w.d != null) { - // weekday -- low day numbers are considered next week - weekday = w.d; - if (weekday < dow) { - ++week; - } - } else if (w.e != null) { - // local weekday -- counting starts from begining of week - weekday = w.e + dow; - } else { - // default to begining of week - weekday = dow; - } - } - temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow); - - config._a[YEAR] = temp.year; - config._dayOfYear = temp.dayOfYear; - } - - utils_hooks__hooks.ISO_8601 = function () {}; - - // date from string and format string - function configFromStringAndFormat(config) { - // TODO: Move this to another part of the creation flow to prevent circular deps - if (config._f === utils_hooks__hooks.ISO_8601) { - configFromISO(config); - return; - } - - config._a = []; - getParsingFlags(config).empty = true; - - // This array is used to make a Date, either with `new Date` or `Date.UTC` - var string = '' + config._i, - i, parsedInput, tokens, token, skipped, - stringLength = string.length, - totalParsedInputLength = 0; - - tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; - - for (i = 0; i < tokens.length; i++) { - token = tokens[i]; - parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; - if (parsedInput) { - skipped = string.substr(0, string.indexOf(parsedInput)); - if (skipped.length > 0) { - getParsingFlags(config).unusedInput.push(skipped); - } - string = string.slice(string.indexOf(parsedInput) + parsedInput.length); - totalParsedInputLength += parsedInput.length; - } - // don't parse if it's not a known token - if (formatTokenFunctions[token]) { - if (parsedInput) { - getParsingFlags(config).empty = false; - } - else { - getParsingFlags(config).unusedTokens.push(token); - } - addTimeToArrayFromToken(token, parsedInput, config); - } - else if (config._strict && !parsedInput) { - getParsingFlags(config).unusedTokens.push(token); - } - } - - // add remaining unparsed input length to the string - getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; - if (string.length > 0) { - getParsingFlags(config).unusedInput.push(string); - } - - // clear _12h flag if hour is <= 12 - if (getParsingFlags(config).bigHour === true && - config._a[HOUR] <= 12 && - config._a[HOUR] > 0) { - getParsingFlags(config).bigHour = undefined; - } - // handle meridiem - config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); - - configFromArray(config); - checkOverflow(config); - } - - - function meridiemFixWrap (locale, hour, meridiem) { - var isPm; - - if (meridiem == null) { - // nothing to do - return hour; - } - if (locale.meridiemHour != null) { - return locale.meridiemHour(hour, meridiem); - } else if (locale.isPM != null) { - // Fallback - isPm = locale.isPM(meridiem); - if (isPm && hour < 12) { - hour += 12; - } - if (!isPm && hour === 12) { - hour = 0; - } - return hour; - } else { - // this is not supposed to happen - return hour; - } - } - - function configFromStringAndArray(config) { - var tempConfig, - bestMoment, - - scoreToBeat, - i, - currentScore; - - if (config._f.length === 0) { - getParsingFlags(config).invalidFormat = true; - config._d = new Date(NaN); - return; - } - - for (i = 0; i < config._f.length; i++) { - currentScore = 0; - tempConfig = copyConfig({}, config); - if (config._useUTC != null) { - tempConfig._useUTC = config._useUTC; - } - tempConfig._f = config._f[i]; - configFromStringAndFormat(tempConfig); - - if (!valid__isValid(tempConfig)) { - continue; - } - - // if there is any input that was not parsed add a penalty for that format - currentScore += getParsingFlags(tempConfig).charsLeftOver; - - //or tokens - currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; - - getParsingFlags(tempConfig).score = currentScore; - - if (scoreToBeat == null || currentScore < scoreToBeat) { - scoreToBeat = currentScore; - bestMoment = tempConfig; - } - } - - extend(config, bestMoment || tempConfig); - } - - function configFromObject(config) { - if (config._d) { - return; - } - - var i = normalizeObjectUnits(config._i); - config._a = [i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond]; - - configFromArray(config); - } - - function createFromConfig (config) { - var res = new Moment(checkOverflow(prepareConfig(config))); - if (res._nextDay) { - // Adding is smart enough around DST - res.add(1, 'd'); - res._nextDay = undefined; - } - - return res; - } - - function prepareConfig (config) { - var input = config._i, - format = config._f; - - config._locale = config._locale || locale_locales__getLocale(config._l); - - if (input === null || (format === undefined && input === '')) { - return valid__createInvalid({nullInput: true}); - } - - if (typeof input === 'string') { - config._i = input = config._locale.preparse(input); - } - - if (isMoment(input)) { - return new Moment(checkOverflow(input)); - } else if (isArray(format)) { - configFromStringAndArray(config); - } else if (format) { - configFromStringAndFormat(config); - } else if (isDate(input)) { - config._d = input; - } else { - configFromInput(config); - } - - return config; - } - - function configFromInput(config) { - var input = config._i; - if (input === undefined) { - config._d = new Date(); - } else if (isDate(input)) { - config._d = new Date(+input); - } else if (typeof input === 'string') { - configFromString(config); - } else if (isArray(input)) { - config._a = map(input.slice(0), function (obj) { - return parseInt(obj, 10); - }); - configFromArray(config); - } else if (typeof(input) === 'object') { - configFromObject(config); - } else if (typeof(input) === 'number') { - // from milliseconds - config._d = new Date(input); - } else { - utils_hooks__hooks.createFromInputFallback(config); - } - } - - function createLocalOrUTC (input, format, locale, strict, isUTC) { - var c = {}; - - if (typeof(locale) === 'boolean') { - strict = locale; - locale = undefined; - } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c._isAMomentObject = true; - c._useUTC = c._isUTC = isUTC; - c._l = locale; - c._i = input; - c._f = format; - c._strict = strict; - - return createFromConfig(c); - } - - function local__createLocal (input, format, locale, strict) { - return createLocalOrUTC(input, format, locale, strict, false); - } - - var prototypeMin = deprecate( - 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', - function () { - var other = local__createLocal.apply(null, arguments); - return other < this ? this : other; - } - ); - - var prototypeMax = deprecate( - 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', - function () { - var other = local__createLocal.apply(null, arguments); - return other > this ? this : other; - } - ); - - // Pick a moment m from moments so that m[fn](other) is true for all - // other. This relies on the function fn to be transitive. - // - // moments should either be an array of moment objects or an array, whose - // first element is an array of moment objects. - function pickBy(fn, moments) { - var res, i; - if (moments.length === 1 && isArray(moments[0])) { - moments = moments[0]; - } - if (!moments.length) { - return local__createLocal(); - } - res = moments[0]; - for (i = 1; i < moments.length; ++i) { - if (!moments[i].isValid() || moments[i][fn](res)) { - res = moments[i]; - } - } - return res; - } - - // TODO: Use [].sort instead? - function min () { - var args = [].slice.call(arguments, 0); - - return pickBy('isBefore', args); - } - - function max () { - var args = [].slice.call(arguments, 0); - - return pickBy('isAfter', args); - } - - function Duration (duration) { - var normalizedInput = normalizeObjectUnits(duration), - years = normalizedInput.year || 0, - quarters = normalizedInput.quarter || 0, - months = normalizedInput.month || 0, - weeks = normalizedInput.week || 0, - days = normalizedInput.day || 0, - hours = normalizedInput.hour || 0, - minutes = normalizedInput.minute || 0, - seconds = normalizedInput.second || 0, - milliseconds = normalizedInput.millisecond || 0; - - // representation for dateAddRemove - this._milliseconds = +milliseconds + - seconds * 1e3 + // 1000 - minutes * 6e4 + // 1000 * 60 - hours * 36e5; // 1000 * 60 * 60 - // Because of dateAddRemove treats 24 hours as different from a - // day when working around DST, we need to store them separately - this._days = +days + - weeks * 7; - // It is impossible translate months into days without knowing - // which months you are are talking about, so we have to store - // it separately. - this._months = +months + - quarters * 3 + - years * 12; - - this._data = {}; - - this._locale = locale_locales__getLocale(); - - this._bubble(); - } - - function isDuration (obj) { - return obj instanceof Duration; - } - - function offset (token, separator) { - addFormatToken(token, 0, 0, function () { - var offset = this.utcOffset(); - var sign = '+'; - if (offset < 0) { - offset = -offset; - sign = '-'; - } - return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); - }); - } - - offset('Z', ':'); - offset('ZZ', ''); - - // PARSING - - addRegexToken('Z', matchOffset); - addRegexToken('ZZ', matchOffset); - addParseToken(['Z', 'ZZ'], function (input, array, config) { - config._useUTC = true; - config._tzm = offsetFromString(input); - }); - - // HELPERS - - // timezone chunker - // '+10:00' > ['10', '00'] - // '-1530' > ['-15', '30'] - var chunkOffset = /([\+\-]|\d\d)/gi; - - function offsetFromString(string) { - var matches = ((string || '').match(matchOffset) || []); - var chunk = matches[matches.length - 1] || []; - var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; - var minutes = +(parts[1] * 60) + toInt(parts[2]); - - return parts[0] === '+' ? minutes : -minutes; - } - - // Return a moment from input, that is local/utc/zone equivalent to model. - function cloneWithOffset(input, model) { - var res, diff; - if (model._isUTC) { - res = model.clone(); - diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res); - // Use low-level api, because this fn is low-level api. - res._d.setTime(+res._d + diff); - utils_hooks__hooks.updateOffset(res, false); - return res; - } else { - return local__createLocal(input).local(); - } - } - - function getDateOffset (m) { - // On Firefox.24 Date#getTimezoneOffset returns a floating point. - // https://github.com/moment/moment/pull/1871 - return -Math.round(m._d.getTimezoneOffset() / 15) * 15; - } - - // HOOKS - - // This function will be called whenever a moment is mutated. - // It is intended to keep the offset in sync with the timezone. - utils_hooks__hooks.updateOffset = function () {}; - - // MOMENTS - - // keepLocalTime = true means only change the timezone, without - // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> - // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset - // +0200, so we adjust the time as needed, to be valid. - // - // Keeping the time actually adds/subtracts (one hour) - // from the actual represented time. That is why we call updateOffset - // a second time. In case it wants us to change the offset again - // _changeInProgress == true case, then we have to adjust, because - // there is no such time in the given timezone. - function getSetOffset (input, keepLocalTime) { - var offset = this._offset || 0, - localAdjust; - if (input != null) { - if (typeof input === 'string') { - input = offsetFromString(input); - } - if (Math.abs(input) < 16) { - input = input * 60; - } - if (!this._isUTC && keepLocalTime) { - localAdjust = getDateOffset(this); - } - this._offset = input; - this._isUTC = true; - if (localAdjust != null) { - this.add(localAdjust, 'm'); - } - if (offset !== input) { - if (!keepLocalTime || this._changeInProgress) { - add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false); - } else if (!this._changeInProgress) { - this._changeInProgress = true; - utils_hooks__hooks.updateOffset(this, true); - this._changeInProgress = null; - } - } - return this; - } else { - return this._isUTC ? offset : getDateOffset(this); - } - } - - function getSetZone (input, keepLocalTime) { - if (input != null) { - if (typeof input !== 'string') { - input = -input; - } - - this.utcOffset(input, keepLocalTime); - - return this; - } else { - return -this.utcOffset(); - } - } - - function setOffsetToUTC (keepLocalTime) { - return this.utcOffset(0, keepLocalTime); - } - - function setOffsetToLocal (keepLocalTime) { - if (this._isUTC) { - this.utcOffset(0, keepLocalTime); - this._isUTC = false; - - if (keepLocalTime) { - this.subtract(getDateOffset(this), 'm'); - } - } - return this; - } - - function setOffsetToParsedOffset () { - if (this._tzm) { - this.utcOffset(this._tzm); - } else if (typeof this._i === 'string') { - this.utcOffset(offsetFromString(this._i)); - } - return this; - } - - function hasAlignedHourOffset (input) { - input = input ? local__createLocal(input).utcOffset() : 0; - - return (this.utcOffset() - input) % 60 === 0; - } - - function isDaylightSavingTime () { - return ( - this.utcOffset() > this.clone().month(0).utcOffset() || - this.utcOffset() > this.clone().month(5).utcOffset() - ); - } - - function isDaylightSavingTimeShifted () { - if (typeof this._isDSTShifted !== 'undefined') { - return this._isDSTShifted; - } - - var c = {}; - - copyConfig(c, this); - c = prepareConfig(c); - - if (c._a) { - var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a); - this._isDSTShifted = this.isValid() && - compareArrays(c._a, other.toArray()) > 0; - } else { - this._isDSTShifted = false; - } - - return this._isDSTShifted; - } - - function isLocal () { - return !this._isUTC; - } - - function isUtcOffset () { - return this._isUTC; - } - - function isUtc () { - return this._isUTC && this._offset === 0; - } - - var aspNetRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/; - - // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html - // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere - var create__isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/; - - function create__createDuration (input, key) { - var duration = input, - // matching against regexp is expensive, do it on demand - match = null, - sign, - ret, - diffRes; - - if (isDuration(input)) { - duration = { - ms : input._milliseconds, - d : input._days, - M : input._months - }; - } else if (typeof input === 'number') { - duration = {}; - if (key) { - duration[key] = input; - } else { - duration.milliseconds = input; - } - } else if (!!(match = aspNetRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - duration = { - y : 0, - d : toInt(match[DATE]) * sign, - h : toInt(match[HOUR]) * sign, - m : toInt(match[MINUTE]) * sign, - s : toInt(match[SECOND]) * sign, - ms : toInt(match[MILLISECOND]) * sign - }; - } else if (!!(match = create__isoRegex.exec(input))) { - sign = (match[1] === '-') ? -1 : 1; - duration = { - y : parseIso(match[2], sign), - M : parseIso(match[3], sign), - d : parseIso(match[4], sign), - h : parseIso(match[5], sign), - m : parseIso(match[6], sign), - s : parseIso(match[7], sign), - w : parseIso(match[8], sign) - }; - } else if (duration == null) {// checks for null or undefined - duration = {}; - } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { - diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to)); - - duration = {}; - duration.ms = diffRes.milliseconds; - duration.M = diffRes.months; - } - - ret = new Duration(duration); - - if (isDuration(input) && hasOwnProp(input, '_locale')) { - ret._locale = input._locale; - } - - return ret; - } - - create__createDuration.fn = Duration.prototype; - - function parseIso (inp, sign) { - // We'd normally use ~~inp for this, but unfortunately it also - // converts floats to ints. - // inp may be undefined, so careful calling replace on it. - var res = inp && parseFloat(inp.replace(',', '.')); - // apply sign while we're at it - return (isNaN(res) ? 0 : res) * sign; - } - - function positiveMomentsDifference(base, other) { - var res = {milliseconds: 0, months: 0}; - - res.months = other.month() - base.month() + - (other.year() - base.year()) * 12; - if (base.clone().add(res.months, 'M').isAfter(other)) { - --res.months; - } - - res.milliseconds = +other - +(base.clone().add(res.months, 'M')); - - return res; - } - - function momentsDifference(base, other) { - var res; - other = cloneWithOffset(other, base); - if (base.isBefore(other)) { - res = positiveMomentsDifference(base, other); - } else { - res = positiveMomentsDifference(other, base); - res.milliseconds = -res.milliseconds; - res.months = -res.months; - } - - return res; - } - - function createAdder(direction, name) { - return function (val, period) { - var dur, tmp; - //invert the arguments, but complain about it - if (period !== null && !isNaN(+period)) { - deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).'); - tmp = val; val = period; period = tmp; - } - - val = typeof val === 'string' ? +val : val; - dur = create__createDuration(val, period); - add_subtract__addSubtract(this, dur, direction); - return this; - }; - } - - function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) { - var milliseconds = duration._milliseconds, - days = duration._days, - months = duration._months; - updateOffset = updateOffset == null ? true : updateOffset; - - if (milliseconds) { - mom._d.setTime(+mom._d + milliseconds * isAdding); - } - if (days) { - get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding); - } - if (months) { - setMonth(mom, get_set__get(mom, 'Month') + months * isAdding); - } - if (updateOffset) { - utils_hooks__hooks.updateOffset(mom, days || months); - } - } - - var add_subtract__add = createAdder(1, 'add'); - var add_subtract__subtract = createAdder(-1, 'subtract'); - - function moment_calendar__calendar (time, formats) { - // We want to compare the start of today, vs this. - // Getting start-of-today depends on whether we're local/utc/offset or not. - var now = time || local__createLocal(), - sod = cloneWithOffset(now, this).startOf('day'), - diff = this.diff(sod, 'days', true), - format = diff < -6 ? 'sameElse' : - diff < -1 ? 'lastWeek' : - diff < 0 ? 'lastDay' : - diff < 1 ? 'sameDay' : - diff < 2 ? 'nextDay' : - diff < 7 ? 'nextWeek' : 'sameElse'; - return this.format(formats && formats[format] || this.localeData().calendar(format, this, local__createLocal(now))); - } - - function clone () { - return new Moment(this); - } - - function isAfter (input, units) { - var inputMs; - units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); - if (units === 'millisecond') { - input = isMoment(input) ? input : local__createLocal(input); - return +this > +input; - } else { - inputMs = isMoment(input) ? +input : +local__createLocal(input); - return inputMs < +this.clone().startOf(units); - } - } - - function isBefore (input, units) { - var inputMs; - units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); - if (units === 'millisecond') { - input = isMoment(input) ? input : local__createLocal(input); - return +this < +input; - } else { - inputMs = isMoment(input) ? +input : +local__createLocal(input); - return +this.clone().endOf(units) < inputMs; - } - } - - function isBetween (from, to, units) { - return this.isAfter(from, units) && this.isBefore(to, units); - } - - function isSame (input, units) { - var inputMs; - units = normalizeUnits(units || 'millisecond'); - if (units === 'millisecond') { - input = isMoment(input) ? input : local__createLocal(input); - return +this === +input; - } else { - inputMs = +local__createLocal(input); - return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units)); - } - } - - function diff (input, units, asFloat) { - var that = cloneWithOffset(input, this), - zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4, - delta, output; - - units = normalizeUnits(units); - - if (units === 'year' || units === 'month' || units === 'quarter') { - output = monthDiff(this, that); - if (units === 'quarter') { - output = output / 3; - } else if (units === 'year') { - output = output / 12; - } - } else { - delta = this - that; - output = units === 'second' ? delta / 1e3 : // 1000 - units === 'minute' ? delta / 6e4 : // 1000 * 60 - units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 - units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst - units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst - delta; - } - return asFloat ? output : absFloor(output); - } - - function monthDiff (a, b) { - // difference in months - var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), - // b is in (anchor - 1 month, anchor + 1 month) - anchor = a.clone().add(wholeMonthDiff, 'months'), - anchor2, adjust; - - if (b - anchor < 0) { - anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor - anchor2); - } else { - anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor2 - anchor); - } - - return -(wholeMonthDiff + adjust); - } - - utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; - - function toString () { - return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); - } - - function moment_format__toISOString () { - var m = this.clone().utc(); - if (0 < m.year() && m.year() <= 9999) { - if ('function' === typeof Date.prototype.toISOString) { - // native implementation is ~50x faster, use it when we can - return this.toDate().toISOString(); - } else { - return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); - } - } else { - return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); - } - } - - function format (inputString) { - var output = formatMoment(this, inputString || utils_hooks__hooks.defaultFormat); - return this.localeData().postformat(output); - } - - function from (time, withoutSuffix) { - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); - } - - function fromNow (withoutSuffix) { - return this.from(local__createLocal(), withoutSuffix); - } - - function to (time, withoutSuffix) { - if (!this.isValid()) { - return this.localeData().invalidDate(); - } - return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); - } - - function toNow (withoutSuffix) { - return this.to(local__createLocal(), withoutSuffix); - } - - function locale (key) { - var newLocaleData; - - if (key === undefined) { - return this._locale._abbr; - } else { - newLocaleData = locale_locales__getLocale(key); - if (newLocaleData != null) { - this._locale = newLocaleData; - } - return this; - } - } - - var lang = deprecate( - 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', - function (key) { - if (key === undefined) { - return this.localeData(); - } else { - return this.locale(key); - } - } - ); - - function localeData () { - return this._locale; - } - - function startOf (units) { - units = normalizeUnits(units); - // the following switch intentionally omits break keywords - // to utilize falling through the cases. - switch (units) { - case 'year': - this.month(0); - /* falls through */ - case 'quarter': - case 'month': - this.date(1); - /* falls through */ - case 'week': - case 'isoWeek': - case 'day': - this.hours(0); - /* falls through */ - case 'hour': - this.minutes(0); - /* falls through */ - case 'minute': - this.seconds(0); - /* falls through */ - case 'second': - this.milliseconds(0); - } - - // weeks are a special case - if (units === 'week') { - this.weekday(0); - } - if (units === 'isoWeek') { - this.isoWeekday(1); - } - - // quarters are also special - if (units === 'quarter') { - this.month(Math.floor(this.month() / 3) * 3); - } - - return this; - } - - function endOf (units) { - units = normalizeUnits(units); - if (units === undefined || units === 'millisecond') { - return this; - } - return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); - } - - function to_type__valueOf () { - return +this._d - ((this._offset || 0) * 60000); - } - - function unix () { - return Math.floor(+this / 1000); - } - - function toDate () { - return this._offset ? new Date(+this) : this._d; - } - - function toArray () { - var m = this; - return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; - } - - function toObject () { - var m = this; - return { - years: m.year(), - months: m.month(), - date: m.date(), - hours: m.hours(), - minutes: m.minutes(), - seconds: m.seconds(), - milliseconds: m.milliseconds() - }; - } - - function moment_valid__isValid () { - return valid__isValid(this); - } - - function parsingFlags () { - return extend({}, getParsingFlags(this)); - } - - function invalidAt () { - return getParsingFlags(this).overflow; - } - - addFormatToken(0, ['gg', 2], 0, function () { - return this.weekYear() % 100; - }); - - addFormatToken(0, ['GG', 2], 0, function () { - return this.isoWeekYear() % 100; - }); - - function addWeekYearFormatToken (token, getter) { - addFormatToken(0, [token, token.length], 0, getter); - } - - addWeekYearFormatToken('gggg', 'weekYear'); - addWeekYearFormatToken('ggggg', 'weekYear'); - addWeekYearFormatToken('GGGG', 'isoWeekYear'); - addWeekYearFormatToken('GGGGG', 'isoWeekYear'); - - // ALIASES - - addUnitAlias('weekYear', 'gg'); - addUnitAlias('isoWeekYear', 'GG'); - - // PARSING - - addRegexToken('G', matchSigned); - addRegexToken('g', matchSigned); - addRegexToken('GG', match1to2, match2); - addRegexToken('gg', match1to2, match2); - addRegexToken('GGGG', match1to4, match4); - addRegexToken('gggg', match1to4, match4); - addRegexToken('GGGGG', match1to6, match6); - addRegexToken('ggggg', match1to6, match6); - - addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { - week[token.substr(0, 2)] = toInt(input); - }); - - addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { - week[token] = utils_hooks__hooks.parseTwoDigitYear(input); - }); - - // HELPERS - - function weeksInYear(year, dow, doy) { - return weekOfYear(local__createLocal([year, 11, 31 + dow - doy]), dow, doy).week; - } - - // MOMENTS - - function getSetWeekYear (input) { - var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year; - return input == null ? year : this.add((input - year), 'y'); - } - - function getSetISOWeekYear (input) { - var year = weekOfYear(this, 1, 4).year; - return input == null ? year : this.add((input - year), 'y'); - } - - function getISOWeeksInYear () { - return weeksInYear(this.year(), 1, 4); - } - - function getWeeksInYear () { - var weekInfo = this.localeData()._week; - return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); - } - - addFormatToken('Q', 0, 0, 'quarter'); - - // ALIASES - - addUnitAlias('quarter', 'Q'); - - // PARSING - - addRegexToken('Q', match1); - addParseToken('Q', function (input, array) { - array[MONTH] = (toInt(input) - 1) * 3; - }); - - // MOMENTS - - function getSetQuarter (input) { - return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); - } - - addFormatToken('D', ['DD', 2], 'Do', 'date'); - - // ALIASES - - addUnitAlias('date', 'D'); - - // PARSING - - addRegexToken('D', match1to2); - addRegexToken('DD', match1to2, match2); - addRegexToken('Do', function (isStrict, locale) { - return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; - }); - - addParseToken(['D', 'DD'], DATE); - addParseToken('Do', function (input, array) { - array[DATE] = toInt(input.match(match1to2)[0], 10); - }); - - // MOMENTS - - var getSetDayOfMonth = makeGetSet('Date', true); - - addFormatToken('d', 0, 'do', 'day'); - - addFormatToken('dd', 0, 0, function (format) { - return this.localeData().weekdaysMin(this, format); - }); - - addFormatToken('ddd', 0, 0, function (format) { - return this.localeData().weekdaysShort(this, format); - }); - - addFormatToken('dddd', 0, 0, function (format) { - return this.localeData().weekdays(this, format); - }); - - addFormatToken('e', 0, 0, 'weekday'); - addFormatToken('E', 0, 0, 'isoWeekday'); - - // ALIASES - - addUnitAlias('day', 'd'); - addUnitAlias('weekday', 'e'); - addUnitAlias('isoWeekday', 'E'); - - // PARSING - - addRegexToken('d', match1to2); - addRegexToken('e', match1to2); - addRegexToken('E', match1to2); - addRegexToken('dd', matchWord); - addRegexToken('ddd', matchWord); - addRegexToken('dddd', matchWord); - - addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config) { - var weekday = config._locale.weekdaysParse(input); - // if we didn't get a weekday name, mark the date as invalid - if (weekday != null) { - week.d = weekday; - } else { - getParsingFlags(config).invalidWeekday = input; - } - }); - - addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { - week[token] = toInt(input); - }); - - // HELPERS - - function parseWeekday(input, locale) { - if (typeof input !== 'string') { - return input; - } - - if (!isNaN(input)) { - return parseInt(input, 10); - } - - input = locale.weekdaysParse(input); - if (typeof input === 'number') { - return input; - } - - return null; - } - - // LOCALES - - var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); - function localeWeekdays (m) { - return this._weekdays[m.day()]; - } - - var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); - function localeWeekdaysShort (m) { - return this._weekdaysShort[m.day()]; - } - - var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); - function localeWeekdaysMin (m) { - return this._weekdaysMin[m.day()]; - } - - function localeWeekdaysParse (weekdayName) { - var i, mom, regex; - - this._weekdaysParse = this._weekdaysParse || []; - - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - if (!this._weekdaysParse[i]) { - mom = local__createLocal([2000, 1]).day(i); - regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); - this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (this._weekdaysParse[i].test(weekdayName)) { - return i; - } - } - } - - // MOMENTS - - function getSetDayOfWeek (input) { - var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - if (input != null) { - input = parseWeekday(input, this.localeData()); - return this.add(input - day, 'd'); - } else { - return day; - } - } - - function getSetLocaleDayOfWeek (input) { - var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; - return input == null ? weekday : this.add(input - weekday, 'd'); - } - - function getSetISODayOfWeek (input) { - // behaves the same as moment#day except - // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) - // as a setter, sunday should belong to the previous week. - return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); - } - - addFormatToken('H', ['HH', 2], 0, 'hour'); - addFormatToken('h', ['hh', 2], 0, function () { - return this.hours() % 12 || 12; - }); - - function meridiem (token, lowercase) { - addFormatToken(token, 0, 0, function () { - return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); - }); - } - - meridiem('a', true); - meridiem('A', false); - - // ALIASES - - addUnitAlias('hour', 'h'); - - // PARSING - - function matchMeridiem (isStrict, locale) { - return locale._meridiemParse; - } - - addRegexToken('a', matchMeridiem); - addRegexToken('A', matchMeridiem); - addRegexToken('H', match1to2); - addRegexToken('h', match1to2); - addRegexToken('HH', match1to2, match2); - addRegexToken('hh', match1to2, match2); - - addParseToken(['H', 'HH'], HOUR); - addParseToken(['a', 'A'], function (input, array, config) { - config._isPm = config._locale.isPM(input); - config._meridiem = input; - }); - addParseToken(['h', 'hh'], function (input, array, config) { - array[HOUR] = toInt(input); - getParsingFlags(config).bigHour = true; - }); - - // LOCALES - - function localeIsPM (input) { - // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays - // Using charAt should be more compatible. - return ((input + '').toLowerCase().charAt(0) === 'p'); - } - - var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; - function localeMeridiem (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'pm' : 'PM'; - } else { - return isLower ? 'am' : 'AM'; - } - } - - - // MOMENTS - - // Setting the hour should keep the time, because the user explicitly - // specified which hour he wants. So trying to maintain the same hour (in - // a new timezone) makes sense. Adding/subtracting hours does not follow - // this rule. - var getSetHour = makeGetSet('Hours', true); - - addFormatToken('m', ['mm', 2], 0, 'minute'); - - // ALIASES - - addUnitAlias('minute', 'm'); - - // PARSING - - addRegexToken('m', match1to2); - addRegexToken('mm', match1to2, match2); - addParseToken(['m', 'mm'], MINUTE); - - // MOMENTS - - var getSetMinute = makeGetSet('Minutes', false); - - addFormatToken('s', ['ss', 2], 0, 'second'); - - // ALIASES - - addUnitAlias('second', 's'); - - // PARSING - - addRegexToken('s', match1to2); - addRegexToken('ss', match1to2, match2); - addParseToken(['s', 'ss'], SECOND); - - // MOMENTS - - var getSetSecond = makeGetSet('Seconds', false); - - addFormatToken('S', 0, 0, function () { - return ~~(this.millisecond() / 100); - }); - - addFormatToken(0, ['SS', 2], 0, function () { - return ~~(this.millisecond() / 10); - }); - - addFormatToken(0, ['SSS', 3], 0, 'millisecond'); - addFormatToken(0, ['SSSS', 4], 0, function () { - return this.millisecond() * 10; - }); - addFormatToken(0, ['SSSSS', 5], 0, function () { - return this.millisecond() * 100; - }); - addFormatToken(0, ['SSSSSS', 6], 0, function () { - return this.millisecond() * 1000; - }); - addFormatToken(0, ['SSSSSSS', 7], 0, function () { - return this.millisecond() * 10000; - }); - addFormatToken(0, ['SSSSSSSS', 8], 0, function () { - return this.millisecond() * 100000; - }); - addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { - return this.millisecond() * 1000000; - }); - - - // ALIASES - - addUnitAlias('millisecond', 'ms'); - - // PARSING - - addRegexToken('S', match1to3, match1); - addRegexToken('SS', match1to3, match2); - addRegexToken('SSS', match1to3, match3); - - var token; - for (token = 'SSSS'; token.length <= 9; token += 'S') { - addRegexToken(token, matchUnsigned); - } - - function parseMs(input, array) { - array[MILLISECOND] = toInt(('0.' + input) * 1000); - } - - for (token = 'S'; token.length <= 9; token += 'S') { - addParseToken(token, parseMs); - } - // MOMENTS - - var getSetMillisecond = makeGetSet('Milliseconds', false); - - addFormatToken('z', 0, 0, 'zoneAbbr'); - addFormatToken('zz', 0, 0, 'zoneName'); - - // MOMENTS - - function getZoneAbbr () { - return this._isUTC ? 'UTC' : ''; - } - - function getZoneName () { - return this._isUTC ? 'Coordinated Universal Time' : ''; - } - - var momentPrototype__proto = Moment.prototype; - - momentPrototype__proto.add = add_subtract__add; - momentPrototype__proto.calendar = moment_calendar__calendar; - momentPrototype__proto.clone = clone; - momentPrototype__proto.diff = diff; - momentPrototype__proto.endOf = endOf; - momentPrototype__proto.format = format; - momentPrototype__proto.from = from; - momentPrototype__proto.fromNow = fromNow; - momentPrototype__proto.to = to; - momentPrototype__proto.toNow = toNow; - momentPrototype__proto.get = getSet; - momentPrototype__proto.invalidAt = invalidAt; - momentPrototype__proto.isAfter = isAfter; - momentPrototype__proto.isBefore = isBefore; - momentPrototype__proto.isBetween = isBetween; - momentPrototype__proto.isSame = isSame; - momentPrototype__proto.isValid = moment_valid__isValid; - momentPrototype__proto.lang = lang; - momentPrototype__proto.locale = locale; - momentPrototype__proto.localeData = localeData; - momentPrototype__proto.max = prototypeMax; - momentPrototype__proto.min = prototypeMin; - momentPrototype__proto.parsingFlags = parsingFlags; - momentPrototype__proto.set = getSet; - momentPrototype__proto.startOf = startOf; - momentPrototype__proto.subtract = add_subtract__subtract; - momentPrototype__proto.toArray = toArray; - momentPrototype__proto.toObject = toObject; - momentPrototype__proto.toDate = toDate; - momentPrototype__proto.toISOString = moment_format__toISOString; - momentPrototype__proto.toJSON = moment_format__toISOString; - momentPrototype__proto.toString = toString; - momentPrototype__proto.unix = unix; - momentPrototype__proto.valueOf = to_type__valueOf; - - // Year - momentPrototype__proto.year = getSetYear; - momentPrototype__proto.isLeapYear = getIsLeapYear; - - // Week Year - momentPrototype__proto.weekYear = getSetWeekYear; - momentPrototype__proto.isoWeekYear = getSetISOWeekYear; - - // Quarter - momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter; - - // Month - momentPrototype__proto.month = getSetMonth; - momentPrototype__proto.daysInMonth = getDaysInMonth; - - // Week - momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek; - momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek; - momentPrototype__proto.weeksInYear = getWeeksInYear; - momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear; - - // Day - momentPrototype__proto.date = getSetDayOfMonth; - momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek; - momentPrototype__proto.weekday = getSetLocaleDayOfWeek; - momentPrototype__proto.isoWeekday = getSetISODayOfWeek; - momentPrototype__proto.dayOfYear = getSetDayOfYear; - - // Hour - momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour; - - // Minute - momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute; - - // Second - momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond; - - // Millisecond - momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond; - - // Offset - momentPrototype__proto.utcOffset = getSetOffset; - momentPrototype__proto.utc = setOffsetToUTC; - momentPrototype__proto.local = setOffsetToLocal; - momentPrototype__proto.parseZone = setOffsetToParsedOffset; - momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset; - momentPrototype__proto.isDST = isDaylightSavingTime; - momentPrototype__proto.isDSTShifted = isDaylightSavingTimeShifted; - momentPrototype__proto.isLocal = isLocal; - momentPrototype__proto.isUtcOffset = isUtcOffset; - momentPrototype__proto.isUtc = isUtc; - momentPrototype__proto.isUTC = isUtc; - - // Timezone - momentPrototype__proto.zoneAbbr = getZoneAbbr; - momentPrototype__proto.zoneName = getZoneName; - - // Deprecations - momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); - momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); - momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); - momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', getSetZone); - - var momentPrototype = momentPrototype__proto; - - function moment__createUnix (input) { - return local__createLocal(input * 1000); - } - - function moment__createInZone () { - return local__createLocal.apply(null, arguments).parseZone(); - } - - var defaultCalendar = { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' - }; - - function locale_calendar__calendar (key, mom, now) { - var output = this._calendar[key]; - return typeof output === 'function' ? output.call(mom, now) : output; - } - - var defaultLongDateFormat = { - LTS : 'h:mm:ss A', - LT : 'h:mm A', - L : 'MM/DD/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY h:mm A', - LLLL : 'dddd, MMMM D, YYYY h:mm A' - }; - - function longDateFormat (key) { - var format = this._longDateFormat[key], - formatUpper = this._longDateFormat[key.toUpperCase()]; - - if (format || !formatUpper) { - return format; - } - - this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { - return val.slice(1); - }); - - return this._longDateFormat[key]; - } - - var defaultInvalidDate = 'Invalid date'; - - function invalidDate () { - return this._invalidDate; - } - - var defaultOrdinal = '%d'; - var defaultOrdinalParse = /\d{1,2}/; - - function ordinal (number) { - return this._ordinal.replace('%d', number); - } - - function preParsePostFormat (string) { - return string; - } - - var defaultRelativeTime = { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - m : 'a minute', - mm : '%d minutes', - h : 'an hour', - hh : '%d hours', - d : 'a day', - dd : '%d days', - M : 'a month', - MM : '%d months', - y : 'a year', - yy : '%d years' - }; - - function relative__relativeTime (number, withoutSuffix, string, isFuture) { - var output = this._relativeTime[string]; - return (typeof output === 'function') ? - output(number, withoutSuffix, string, isFuture) : - output.replace(/%d/i, number); - } - - function pastFuture (diff, output) { - var format = this._relativeTime[diff > 0 ? 'future' : 'past']; - return typeof format === 'function' ? format(output) : format.replace(/%s/i, output); - } - - function locale_set__set (config) { - var prop, i; - for (i in config) { - prop = config[i]; - if (typeof prop === 'function') { - this[i] = prop; - } else { - this['_' + i] = prop; - } - } - // Lenient ordinal parsing accepts just a number in addition to - // number + (possibly) stuff coming from _ordinalParseLenient. - this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); - } - - var prototype__proto = Locale.prototype; - - prototype__proto._calendar = defaultCalendar; - prototype__proto.calendar = locale_calendar__calendar; - prototype__proto._longDateFormat = defaultLongDateFormat; - prototype__proto.longDateFormat = longDateFormat; - prototype__proto._invalidDate = defaultInvalidDate; - prototype__proto.invalidDate = invalidDate; - prototype__proto._ordinal = defaultOrdinal; - prototype__proto.ordinal = ordinal; - prototype__proto._ordinalParse = defaultOrdinalParse; - prototype__proto.preparse = preParsePostFormat; - prototype__proto.postformat = preParsePostFormat; - prototype__proto._relativeTime = defaultRelativeTime; - prototype__proto.relativeTime = relative__relativeTime; - prototype__proto.pastFuture = pastFuture; - prototype__proto.set = locale_set__set; - - // Month - prototype__proto.months = localeMonths; - prototype__proto._months = defaultLocaleMonths; - prototype__proto.monthsShort = localeMonthsShort; - prototype__proto._monthsShort = defaultLocaleMonthsShort; - prototype__proto.monthsParse = localeMonthsParse; - - // Week - prototype__proto.week = localeWeek; - prototype__proto._week = defaultLocaleWeek; - prototype__proto.firstDayOfYear = localeFirstDayOfYear; - prototype__proto.firstDayOfWeek = localeFirstDayOfWeek; - - // Day of Week - prototype__proto.weekdays = localeWeekdays; - prototype__proto._weekdays = defaultLocaleWeekdays; - prototype__proto.weekdaysMin = localeWeekdaysMin; - prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin; - prototype__proto.weekdaysShort = localeWeekdaysShort; - prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort; - prototype__proto.weekdaysParse = localeWeekdaysParse; - - // Hours - prototype__proto.isPM = localeIsPM; - prototype__proto._meridiemParse = defaultLocaleMeridiemParse; - prototype__proto.meridiem = localeMeridiem; - - function lists__get (format, index, field, setter) { - var locale = locale_locales__getLocale(); - var utc = create_utc__createUTC().set(setter, index); - return locale[field](utc, format); - } - - function list (format, index, field, count, setter) { - if (typeof format === 'number') { - index = format; - format = undefined; - } - - format = format || ''; - - if (index != null) { - return lists__get(format, index, field, setter); - } - - var i; - var out = []; - for (i = 0; i < count; i++) { - out[i] = lists__get(format, i, field, setter); - } - return out; - } - - function lists__listMonths (format, index) { - return list(format, index, 'months', 12, 'month'); - } - - function lists__listMonthsShort (format, index) { - return list(format, index, 'monthsShort', 12, 'month'); - } - - function lists__listWeekdays (format, index) { - return list(format, index, 'weekdays', 7, 'day'); - } - - function lists__listWeekdaysShort (format, index) { - return list(format, index, 'weekdaysShort', 7, 'day'); - } - - function lists__listWeekdaysMin (format, index) { - return list(format, index, 'weekdaysMin', 7, 'day'); - } - - locale_locales__getSetGlobalLocale('en', { - ordinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal : function (number) { - var b = number % 10, - output = (toInt(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; - } - }); - - // Side effect imports - utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale); - utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale); - - var mathAbs = Math.abs; - - function duration_abs__abs () { - var data = this._data; - - this._milliseconds = mathAbs(this._milliseconds); - this._days = mathAbs(this._days); - this._months = mathAbs(this._months); - - data.milliseconds = mathAbs(data.milliseconds); - data.seconds = mathAbs(data.seconds); - data.minutes = mathAbs(data.minutes); - data.hours = mathAbs(data.hours); - data.months = mathAbs(data.months); - data.years = mathAbs(data.years); - - return this; - } - - function duration_add_subtract__addSubtract (duration, input, value, direction) { - var other = create__createDuration(input, value); - - duration._milliseconds += direction * other._milliseconds; - duration._days += direction * other._days; - duration._months += direction * other._months; - - return duration._bubble(); - } - - // supports only 2.0-style add(1, 's') or add(duration) - function duration_add_subtract__add (input, value) { - return duration_add_subtract__addSubtract(this, input, value, 1); - } - - // supports only 2.0-style subtract(1, 's') or subtract(duration) - function duration_add_subtract__subtract (input, value) { - return duration_add_subtract__addSubtract(this, input, value, -1); - } - - function absCeil (number) { - if (number < 0) { - return Math.floor(number); - } else { - return Math.ceil(number); - } - } - - function bubble () { - var milliseconds = this._milliseconds; - var days = this._days; - var months = this._months; - var data = this._data; - var seconds, minutes, hours, years, monthsFromDays; - - // if we have a mix of positive and negative values, bubble down first - // check: https://github.com/moment/moment/issues/2166 - if (!((milliseconds >= 0 && days >= 0 && months >= 0) || - (milliseconds <= 0 && days <= 0 && months <= 0))) { - milliseconds += absCeil(monthsToDays(months) + days) * 864e5; - days = 0; - months = 0; - } - - // The following code bubbles up values, see the tests for - // examples of what that means. - data.milliseconds = milliseconds % 1000; - - seconds = absFloor(milliseconds / 1000); - data.seconds = seconds % 60; - - minutes = absFloor(seconds / 60); - data.minutes = minutes % 60; - - hours = absFloor(minutes / 60); - data.hours = hours % 24; - - days += absFloor(hours / 24); - - // convert days to months - monthsFromDays = absFloor(daysToMonths(days)); - months += monthsFromDays; - days -= absCeil(monthsToDays(monthsFromDays)); - - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - - data.days = days; - data.months = months; - data.years = years; - - return this; - } - - function daysToMonths (days) { - // 400 years have 146097 days (taking into account leap year rules) - // 400 years have 12 months === 4800 - return days * 4800 / 146097; - } - - function monthsToDays (months) { - // the reverse of daysToMonths - return months * 146097 / 4800; - } - - function as (units) { - var days; - var months; - var milliseconds = this._milliseconds; - - units = normalizeUnits(units); - - if (units === 'month' || units === 'year') { - days = this._days + milliseconds / 864e5; - months = this._months + daysToMonths(days); - return units === 'month' ? months : months / 12; - } else { - // handle milliseconds separately because of floating point math errors (issue #1867) - days = this._days + Math.round(monthsToDays(this._months)); - switch (units) { - case 'week' : return days / 7 + milliseconds / 6048e5; - case 'day' : return days + milliseconds / 864e5; - case 'hour' : return days * 24 + milliseconds / 36e5; - case 'minute' : return days * 1440 + milliseconds / 6e4; - case 'second' : return days * 86400 + milliseconds / 1000; - // Math.floor prevents floating point math errors here - case 'millisecond': return Math.floor(days * 864e5) + milliseconds; - default: throw new Error('Unknown unit ' + units); - } - } - } - - // TODO: Use this.as('ms')? - function duration_as__valueOf () { - return ( - this._milliseconds + - this._days * 864e5 + - (this._months % 12) * 2592e6 + - toInt(this._months / 12) * 31536e6 - ); - } - - function makeAs (alias) { - return function () { - return this.as(alias); - }; - } - - var asMilliseconds = makeAs('ms'); - var asSeconds = makeAs('s'); - var asMinutes = makeAs('m'); - var asHours = makeAs('h'); - var asDays = makeAs('d'); - var asWeeks = makeAs('w'); - var asMonths = makeAs('M'); - var asYears = makeAs('y'); - - function duration_get__get (units) { - units = normalizeUnits(units); - return this[units + 's'](); - } - - function makeGetter(name) { - return function () { - return this._data[name]; - }; - } - - var milliseconds = makeGetter('milliseconds'); - var seconds = makeGetter('seconds'); - var minutes = makeGetter('minutes'); - var hours = makeGetter('hours'); - var days = makeGetter('days'); - var months = makeGetter('months'); - var years = makeGetter('years'); - - function weeks () { - return absFloor(this.days() / 7); - } - - var round = Math.round; - var thresholds = { - s: 45, // seconds to minute - m: 45, // minutes to hour - h: 22, // hours to day - d: 26, // days to month - M: 11 // months to year - }; - - // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize - function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { - return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); - } - - function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) { - var duration = create__createDuration(posNegDuration).abs(); - var seconds = round(duration.as('s')); - var minutes = round(duration.as('m')); - var hours = round(duration.as('h')); - var days = round(duration.as('d')); - var months = round(duration.as('M')); - var years = round(duration.as('y')); - - var a = seconds < thresholds.s && ['s', seconds] || - minutes === 1 && ['m'] || - minutes < thresholds.m && ['mm', minutes] || - hours === 1 && ['h'] || - hours < thresholds.h && ['hh', hours] || - days === 1 && ['d'] || - days < thresholds.d && ['dd', days] || - months === 1 && ['M'] || - months < thresholds.M && ['MM', months] || - years === 1 && ['y'] || ['yy', years]; - - a[2] = withoutSuffix; - a[3] = +posNegDuration > 0; - a[4] = locale; - return substituteTimeAgo.apply(null, a); - } - - // This function allows you to set a threshold for relative time strings - function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) { - if (thresholds[threshold] === undefined) { - return false; - } - if (limit === undefined) { - return thresholds[threshold]; - } - thresholds[threshold] = limit; - return true; - } - - function humanize (withSuffix) { - var locale = this.localeData(); - var output = duration_humanize__relativeTime(this, !withSuffix, locale); - - if (withSuffix) { - output = locale.pastFuture(+this, output); - } - - return locale.postformat(output); - } - - var iso_string__abs = Math.abs; - - function iso_string__toISOString() { - // for ISO strings we do not use the normal bubbling rules: - // * milliseconds bubble up until they become hours - // * days do not bubble at all - // * months bubble up until they become years - // This is because there is no context-free conversion between hours and days - // (think of clock changes) - // and also not between days and months (28-31 days per month) - var seconds = iso_string__abs(this._milliseconds) / 1000; - var days = iso_string__abs(this._days); - var months = iso_string__abs(this._months); - var minutes, hours, years; - - // 3600 seconds -> 60 minutes -> 1 hour - minutes = absFloor(seconds / 60); - hours = absFloor(minutes / 60); - seconds %= 60; - minutes %= 60; - - // 12 months -> 1 year - years = absFloor(months / 12); - months %= 12; - - - // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js - var Y = years; - var M = months; - var D = days; - var h = hours; - var m = minutes; - var s = seconds; - var total = this.asSeconds(); - - if (!total) { - // this is the same as C#'s (Noda) and python (isodate)... - // but not other JS (goog.date) - return 'P0D'; - } - - return (total < 0 ? '-' : '') + - 'P' + - (Y ? Y + 'Y' : '') + - (M ? M + 'M' : '') + - (D ? D + 'D' : '') + - ((h || m || s) ? 'T' : '') + - (h ? h + 'H' : '') + - (m ? m + 'M' : '') + - (s ? s + 'S' : ''); - } - - var duration_prototype__proto = Duration.prototype; - - duration_prototype__proto.abs = duration_abs__abs; - duration_prototype__proto.add = duration_add_subtract__add; - duration_prototype__proto.subtract = duration_add_subtract__subtract; - duration_prototype__proto.as = as; - duration_prototype__proto.asMilliseconds = asMilliseconds; - duration_prototype__proto.asSeconds = asSeconds; - duration_prototype__proto.asMinutes = asMinutes; - duration_prototype__proto.asHours = asHours; - duration_prototype__proto.asDays = asDays; - duration_prototype__proto.asWeeks = asWeeks; - duration_prototype__proto.asMonths = asMonths; - duration_prototype__proto.asYears = asYears; - duration_prototype__proto.valueOf = duration_as__valueOf; - duration_prototype__proto._bubble = bubble; - duration_prototype__proto.get = duration_get__get; - duration_prototype__proto.milliseconds = milliseconds; - duration_prototype__proto.seconds = seconds; - duration_prototype__proto.minutes = minutes; - duration_prototype__proto.hours = hours; - duration_prototype__proto.days = days; - duration_prototype__proto.weeks = weeks; - duration_prototype__proto.months = months; - duration_prototype__proto.years = years; - duration_prototype__proto.humanize = humanize; - duration_prototype__proto.toISOString = iso_string__toISOString; - duration_prototype__proto.toString = iso_string__toISOString; - duration_prototype__proto.toJSON = iso_string__toISOString; - duration_prototype__proto.locale = locale; - duration_prototype__proto.localeData = localeData; - - // Deprecations - duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString); - duration_prototype__proto.lang = lang; - - // Side effect imports - - addFormatToken('X', 0, 0, 'unix'); - addFormatToken('x', 0, 0, 'valueOf'); - - // PARSING - - addRegexToken('x', matchSigned); - addRegexToken('X', matchTimestamp); - addParseToken('X', function (input, array, config) { - config._d = new Date(parseFloat(input, 10) * 1000); - }); - addParseToken('x', function (input, array, config) { - config._d = new Date(toInt(input)); - }); - - // Side effect imports - - - utils_hooks__hooks.version = '2.10.6'; - - setHookCallback(local__createLocal); - - utils_hooks__hooks.fn = momentPrototype; - utils_hooks__hooks.min = min; - utils_hooks__hooks.max = max; - utils_hooks__hooks.utc = create_utc__createUTC; - utils_hooks__hooks.unix = moment__createUnix; - utils_hooks__hooks.months = lists__listMonths; - utils_hooks__hooks.isDate = isDate; - utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale; - utils_hooks__hooks.invalid = valid__createInvalid; - utils_hooks__hooks.duration = create__createDuration; - utils_hooks__hooks.isMoment = isMoment; - utils_hooks__hooks.weekdays = lists__listWeekdays; - utils_hooks__hooks.parseZone = moment__createInZone; - utils_hooks__hooks.localeData = locale_locales__getLocale; - utils_hooks__hooks.isDuration = isDuration; - utils_hooks__hooks.monthsShort = lists__listMonthsShort; - utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin; - utils_hooks__hooks.defineLocale = defineLocale; - utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort; - utils_hooks__hooks.normalizeUnits = normalizeUnits; - utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold; - - var _moment = utils_hooks__hooks; - - return _moment; - -})); \ No newline at end of file diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss deleted file mode 100644 index c46caa85c..000000000 --- a/app/assets/stylesheets/application.css.scss +++ /dev/null @@ -1,67 +0,0 @@ -// From GDS's alphagov/govuk_frontend_toolkit -@import 'colours'; -@import 'font_stack'; -@import 'measurements'; -@import 'conditionals'; -@import 'device-pixels'; -@import 'typography'; -@import 'shims'; - -@import 'design-patterns/alpha-beta'; -@import 'design-patterns/buttons'; - -// From GDS's alphagov/govuk_elements - -// Helper functions and classes -@import 'elements/helpers'; - -// Generic (normalize/reset.css) -@import 'elements/reset'; - -// Base (unclassed HTML elements) -// These are predefined by govuk_template -// If you're not using govuk_template, uncomment the line below. -// HTML elements, set by the GOV.UK template -@import 'elements/layout'; - -// Components (chunks of UI) -@import 'elements/buttons'; -@import 'elements/components'; -@import 'elements/details'; -@import 'elements/elements-typography'; -@import 'elements/forms'; -@import 'elements/forms/form-date'; -@import 'elements/forms/form-multiple-choice'; -@import 'elements/forms/form-validation'; -@import 'elements/lists'; -@import 'elements/panels'; -@import 'elements/phase-banner'; -@import 'elements/tables'; - -//project specific -@import "moj/forms"; -@import "moj/navigation"; -@import "vendor/bootstrap"; -@import "moj/alert-banner"; -@import "pq"; - -.govuk-header__service-name{ - font-size: 24px; -} - -.govuk-header{ - border-bottom: none; -} - -.govuk-header__container{ - border-bottom: none; -} - -#global-header .header-wrapper { - padding-top: 0; - padding-bottom: 0; -} - -.govuk-footer { - font-size: 90%; -} diff --git a/app/assets/stylesheets/application.sass.scss b/app/assets/stylesheets/application.sass.scss new file mode 100644 index 000000000..cbdd11821 --- /dev/null +++ b/app/assets/stylesheets/application.sass.scss @@ -0,0 +1,30 @@ +$govuk-global-styles: true; +$govuk-new-link-styles: true; + +@import "govuk-frontend/dist/govuk/all"; + +$panel-colour: #DEE0E2; +$border-colour: #bfc1c3; +$text-colour: #0b0c0c; +$yellow: govuk-colour("yellow"); +$govuk-blue: govuk-colour("blue"); +$button-colour: #00703c; +$error-colour: govuk-colour("red"); +$page-colour: white; +$red: govuk-colour("red"); +$link-colour: #005ea5; +$grey-2: #bfc1c3; +$highlight-colour: #f8f8f8; +$light-blue: govuk-colour("light-blue"); +$white: govuk-colour("white"); +$grey-4: govuk-colour("mid-grey"); +$gutter-half: 15px; + +// //project specific +@import "moj/_pq"; +@import "moj/forms"; +@import "moj/navigation"; +@import "vendor/bootstrap"; +@import "vendor/jquery.datetimepicker"; +@import "vendor/pq-select2"; +@import "select2/dist/css/select2"; diff --git a/app/assets/stylesheets/moj/_alert-banner b/app/assets/stylesheets/moj/_alert-banner deleted file mode 100644 index 1bd449191..000000000 --- a/app/assets/stylesheets/moj/_alert-banner +++ /dev/null @@ -1,24 +0,0 @@ -.alert-banner { - @extend %site-width-container; - border: 4px solid $govuk-blue; - padding: 2rem 2rem 1rem; - margin-top: 2em; - margin-bottom: 2em; - box-sizing: border-box; - position: relative; - - &__icon { - color: $govuk-blue; - position: absolute; - left: 2rem; - top: 2rem; - } - - &__info { - padding: 5px 0 0 55px; - - @include media(tablet) { - font-size: 19px; - } - } -} diff --git a/app/assets/stylesheets/moj/_forms.scss b/app/assets/stylesheets/moj/_forms.scss index ad04772da..b3a97fcb1 100644 --- a/app/assets/stylesheets/moj/_forms.scss +++ b/app/assets/stylesheets/moj/_forms.scss @@ -1,18 +1,16 @@ .form-group { - .search { - label { display: inline-block; padding-right: .5em; font-size: 90%; } - + .search-box { border: 2px solid #bfc1c3; display: inline-block; } - + input, #search_button { border: none; display: inline-block; @@ -26,14 +24,116 @@ } } -.content-inner { +.content-inner { legend { border: none; display: block; + width: 100%; margin: 0; padding: 15px 0; font-weight: bold; } +} + +.button { + background-color: #00823b; + position: relative; + display: -moz-inline-stack; + display: inline-block; + padding: .526315em .789473em .263157em; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + outline: 1px solid transparent; + outline-offset: -1px; + -webkit-appearance: none; + -webkit-box-shadow: 0 2px 0 #003618; + -moz-box-shadow: 0 2px 0 #003618; + box-shadow: 0 2px 0 #003618; + line-height: 1.25; + text-decoration: none; + -webkit-font-smoothing: antialiased; + cursor: pointer; + color: #fff; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + vertical-align: top +} + +.button:visited { + background-color: #00823b +} + +.button:hover,.button:focus { + background-color: #00692f +} + +.button:active { + top: 2px; + -webkit-box-shadow: 0 0 0 #00823b; + -moz-box-shadow: 0 0 0 #00823b; + box-shadow: 0 0 0 #00823b +} + +.button.disabled,.button[disabled="disabled"],.button[disabled] { + zoom:1;filter: alpha(opacity=50); + opacity: 0.5 +} + +.button.disabled:hover,.button[disabled="disabled"]:hover,.button[disabled]:hover { + cursor: default; + background-color: #00823b +} + +.button.disabled:active,.button[disabled="disabled"]:active,.button[disabled]:active { + top: 0; + -webkit-box-shadow: 0 2px 0 #003618; + -moz-box-shadow: 0 2px 0 #003618; + box-shadow: 0 2px 0 #003618 +} + +.button:link,.button:link:focus,.button:hover,.button:focus,.button:visited { + color: #fff +} + +.button:before { + content: ""; + height: 110%; + width: 100%; + display: block; + background: transparent; + position: absolute; + top: 0; + left: 0 +} + +.button:active:before { + top: -10%; + height: 120% +} + +@media (max-width: 640px) { + .button { + width:100%; + text-align: center + } +} + +.button::-moz-focus-inner { + border: 0; + padding: 0 +} + +.button:focus { + outline: 3px solid #ffbf47 +} + +.button[disabled="disabled"] { + background: #00823b +} - .form-label, .form-control { font-size: 1.9rem; } +.button[disabled="disabled"]:focus { + outline: none } diff --git a/app/assets/stylesheets/moj/_navigation.scss b/app/assets/stylesheets/moj/_navigation.scss index 432a88a7f..b9c694de0 100644 --- a/app/assets/stylesheets/moj/_navigation.scss +++ b/app/assets/stylesheets/moj/_navigation.scss @@ -1,3 +1,17 @@ +#nav { + margin: 0 25px; +} + +.navbar-form.navbar-right { + position: absolute; + top: 8px; + right: 0px; + + @media screen and (max-width: 1000px) { + position: inherit; + } +} + .navbar.navbar-default { background-color: $panel-colour; border-right: 1px solid $border-colour; @@ -38,29 +52,15 @@ height: 34px; } #search_button { - border-radius: 0; + position: relative; + top: -1px; width: 34px; - height: 3.4rem; + height: 2.14rem; + border-radius: 0; padding: 4px; } } -// override bootstrap -@media (max-width: 767px) { - nav.navbar-default { - .navbar-nav .open .dropdown-menu > li > a { - color: #444; - } - - #search_field.form-control { - display: inline-block; - } - .navbar-toggle .icon-bar { - background-color: #444; - } - } -} - nav.navbar-default .navbar-link { color: #444; } diff --git a/app/assets/stylesheets/pq.scss b/app/assets/stylesheets/moj/_pq.scss similarity index 90% rename from app/assets/stylesheets/pq.scss rename to app/assets/stylesheets/moj/_pq.scss index 976035f6b..4c8c7aeee 100644 --- a/app/assets/stylesheets/pq.scss +++ b/app/assets/stylesheets/moj/_pq.scss @@ -1,7 +1,3 @@ -@import "colours"; -@import "design-patterns/alpha-beta"; - -$phase:live; $success-colour: $button-colour; $notice-colour: $govuk-blue; $danger-colour: $error-colour; @@ -12,43 +8,11 @@ $danger-colour: $error-colour; body, main { - font-size: 1.9rem; - line-height: 1.3; - color: $text-colour; -} - -h1 { font-family: "nta",Arial,sans-serif; - font-size: 28px; - font-weight: bold; - margin: 0; - padding: 20px 0 10px; -} - -h2 { - font-size: 24px; - font-family: "nta",Arial,sans-serif; - font-weight: normal; - margin: 0; - padding: 15px 0; -} - -h3 { - font-size: 1.9rem; - font-weight: normal; - font-family: "nta",Arial,sans-serif; - color: #555; - margin: 10px 0 0 0; -} - -h4 { - font-size: 1.9rem; - font-weight: normal; + line-height: 1.3; color: $text-colour; } -p { margin: 0 0 6px 0; } - textarea { resize: none; } hr { @@ -73,14 +37,24 @@ label { //clear: both; } +//============================================================================== +// = Govuk Overrides =========================================================== +//============================================================================== + +.govuk-main-wrapper { + padding-top: 0; +} + +.govuk-width-container { + position: relative; +} + //============================================================================== // = GLOBAL CLASSES ============================================================ //============================================================================== #contentOuter { margin: 0 auto; max-width: 960px; } -.row { margin: 0; } - .open { color: $page-colour; } // == symbols ===== @@ -120,10 +94,6 @@ label { (https://github.com/ministryofjustice/moj_template/pull/55) we need to cancel it. */ -#global-header.with-proposition .header-wrapper .header-proposition #proposition-name:hover { - border-bottom: none; -} - // only visible on the staging server to warn that it is not the live system .staging_banner { background-color: $red; @@ -134,6 +104,11 @@ label { font-weight:bold; } +.phase-banner { + padding: 10px 0 8px; + border-bottom: 1px solid #bfc1c3; +} + // override gov.uk-template visited links colours, // as this is an application, rather than a simple web page @media screen { @@ -150,7 +125,6 @@ button.close { .flag { border: 1.5px solid; font-weight: bold; - font-size: 1.5rem; padding: 3px 5px; text-align: center; white-space: nowrap; @@ -218,6 +192,59 @@ li.select2-search-field {border-bottom: none;} } } +//= Cookies ===== + +.js-enabled #global-cookie-message { + display: none +} + +#global-cookie-message { + width: 100%; + background-color: #d5e8f3; + padding-top: 10px; + padding-bottom: 10px +} + +#global-cookie-message p { + font-family: "nta", Arial, sans-serif; + font-weight: 400; + text-transform: none; + font-size: 14px; + line-height: 1.14286; + margin-top: 0; + margin-bottom: 0 +} + +#global-cookie-message p { + max-width: 960px; + margin: 0 15px +} + +@media (min-width: 641px) { + #global-cookie-message p { + margin:0 30px + } +} + +@media (min-width: 1020px) { + #global-cookie-message p { + margin:0 auto + } +} + +@media (min-width: 641px) { + #global-cookie-message p { + font-size:16px; + line-height: 1.25 + } +} + +@media (min-width: 1020px) { + #global-cookie-message p { + margin:0 auto; + } +} + //= Forms ==== .form-group.inline { @@ -245,7 +272,7 @@ textarea.form-control { border-style: solid; border-radius: 0; width: auto; - height: auto; // override bootstrap + height: 30px; // override bootstrap } .form-control:focus, @@ -263,7 +290,7 @@ textarea.form-control { clear: left; position: relative; border: 1px solid; - padding: 18px 30px 15px 45px; + padding: 10px 30px 10px 45px; margin-top: 10px; margin-bottom: 10px; cursor: pointer; @@ -271,7 +298,7 @@ textarea.form-control { input { position: absolute; - top: 18px; + top: 10px; left: 15px; } @@ -320,7 +347,7 @@ textarea.form-control { #select-all-questions { padding: 0; label { - max-width: 655px; + width: 100%; padding: .5em 0; border-bottom: 2px solid $grey-2; input[type="checkbox"] { @@ -332,7 +359,6 @@ textarea.form-control { } #count { - max-width: 655px; background-color: $highlight-colour; padding: .7em 0 .7em .7em; border-left: 5px solid $border-colour; @@ -348,7 +374,7 @@ textarea.form-control { } .pq-question { margin: 0; - padding: 20px 0 0 0; + padding: 20px 0 10px 0; } .status-bar { line-height: 32px; @@ -387,7 +413,6 @@ textarea.form-control { } .question-proposed { color: #555; - font-size: 1.6rem; text-align: right; } .question-type { @@ -396,6 +421,16 @@ textarea.form-control { margin-left: 7px; } +.question { + .govuk-heading-s { + margin-bottom: 5px; + } + + p.deadline-date, p.replying-minister, p.policy-minister { + margin-bottom: 5px; + } +} + // = Alert messages ============================================================ @mixin alert($colour) @@ -420,7 +455,7 @@ textarea.form-control { border-radius: 0; border: 1px solid $border-colour; display: inline-block; - width: 20rem; + width: 16rem; input { display: inline; width: 86%; @@ -445,7 +480,6 @@ textarea.form-control { clear: both; thead tr th, tbody tr td { padding-left: 0; // bootstrap override - font-size: 1.6rem; } } @@ -519,6 +553,10 @@ textarea.form-control { display: block; } +.tab-content .govuk-heading-s { + margin-bottom: 5px; +} + /* = Pagination ================================================================= */ #pages { @@ -648,24 +686,6 @@ textarea.form-control { } -/* = Report pages (/reports/...) ================================================ */ - -#filter-report { - - .col-md-9 { padding: 0; } - .col-md-3 select{ width: 100%; } - .button-secondary { float: right; margin-top: 10px; } -} - -#minister-report, -#press-desk-report { - table td { - padding-top: 10px; - padding-bottom: 13px; - } - .table-cell-centered { text-align: center; } -} - /* = Settings (/admin) ====================================================== */ #settings-home { @@ -703,13 +723,7 @@ textarea.form-control { /* = Filter sidebar ========================================================== */ #dashboard, #preview { - #sidebar { - padding: 0; - h2 { - font-size: 1.9rem; - padding: 0; - } input[type="button"]{ padding-left: 0; border: none; @@ -753,7 +767,6 @@ textarea.form-control { border-bottom: 2px solid $grey-2; input[type="submit"] { margin: 0 10px 5px 0; } form { margin: 8px 0; } - .form-label { font-size: 1.9rem;} #editDates .content{ padding-bottom: 10px; @@ -786,10 +799,6 @@ textarea.form-control { legend { padding: 0; font-weight: normal; - font-size: 1.9rem; - } - input { - font-size: 1.9rem; } .notice { display: none; @@ -808,7 +817,7 @@ textarea.form-control { background-clip: border-box; background-origin: padding-box; background-size: auto auto; - background: $panel-colour image-url('option-select-toggle-sprite.png') no-repeat scroll; + background: $panel-colour url('option-select-toggle-sprite.png') no-repeat scroll; } .open { background-position: right -82px; } .closed { background-position: right 0; } @@ -847,14 +856,3 @@ textarea.form-control { } } } - -#footer .footer-meta { - .copyright { - font-size: 1.6rem; - } - .footer-meta-inner { - ul, .open-government-licence p { - font-size: 1.6rem; - } - } -} diff --git a/app/assets/stylesheets/vendor/bootstrap.scss b/app/assets/stylesheets/vendor/bootstrap.scss index 54d370939..13a033e81 100644 --- a/app/assets/stylesheets/vendor/bootstrap.scss +++ b/app/assets/stylesheets/vendor/bootstrap.scss @@ -59,15 +59,6 @@ a:hover { outline: 0; } -h1 { - margin: 0.67em 0; - font-size: 2em; -} - -abbr[title] { - border-bottom: 1px dotted; -} - b, strong { font-weight: bold; @@ -303,7 +294,7 @@ table { } html { - font-size: 62.5%; + // font-size: 62.5%; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } @@ -636,12 +627,6 @@ dd { } } -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #999999; -} - abbr.initialism { font-size: 90%; text-transform: uppercase; @@ -756,6 +741,7 @@ pre code { .container { padding-right: 15px; padding-left: 15px; + padding-top: 15px; margin-right: auto; margin-left: auto; } @@ -1636,22 +1622,8 @@ fieldset { border: 0; } -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 20px; - font-size: 21px; - line-height: inherit; - color: #333333; - border: 0; - border-bottom: 1px solid #e5e5e5; -} - label { - display: inline-block; margin-bottom: 5px; - font-weight: bold; } input[type="search"] { @@ -1715,13 +1687,10 @@ input[type="number"]::-webkit-inner-spin-button { .form-control { display: block; - width: 100%; height: 34px; padding: 6px 12px; - font-size: 14px; line-height: 1.428571429; color: #555555; - vertical-align: middle; background-color: #ffffff; border: 1px solid #cccccc; border-radius: 4px; @@ -4244,28 +4213,28 @@ textarea.input-group-sm > .input-group-btn > .btn { line-height: 20px; } -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 20px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} +// @media (max-width: 767px) { +// .navbar-nav .open .dropdown-menu { +// position: static; +// float: none; +// width: auto; +// margin-top: 0; +// background-color: transparent; +// border: 0; +// box-shadow: none; +// } +// .navbar-nav .open .dropdown-menu > li > a, +// .navbar-nav .open .dropdown-menu .dropdown-header { +// padding: 5px 15px 5px 25px; +// } +// .navbar-nav .open .dropdown-menu > li > a { +// line-height: 20px; +// } +// .navbar-nav .open .dropdown-menu > li > a:hover, +// .navbar-nav .open .dropdown-menu > li > a:focus { +// background-image: none; +// } +// } @media (min-width: 768px) { .navbar-nav { @@ -4302,33 +4271,25 @@ textarea.input-group-sm > .input-group-btn > .btn { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); } -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - padding-left: 0; - margin-top: 0; - margin-bottom: 0; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - float: none; - margin-left: 0; - } +.navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; } - -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } +.navbar-form .form-control { + display: inline-block; +} +.navbar-form .radio, +.navbar-form .checkbox { + display: inline-block; + padding-left: 0; + margin-top: 0; + margin-bottom: 0; +} +.navbar-form .radio input[type="radio"], +.navbar-form .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; } @media (min-width: 768px) { @@ -6798,4 +6759,4 @@ td.visible-print { td.hidden-print { display: none !important; } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/vendor/pq-select2.scss b/app/assets/stylesheets/vendor/pq-select2.scss index 86a24b4db..a7ea18b11 100644 --- a/app/assets/stylesheets/vendor/pq-select2.scss +++ b/app/assets/stylesheets/vendor/pq-select2.scss @@ -1,6 +1,8 @@ /* Rules to make select2 components more like govuk elements */ -@import 'colours'; +$border-colour: grey; +$yellow: govuk-colour("yellow"); +$black: govuk-colour("black"); @mixin reset-border-radius { border-radius: 0; diff --git a/app/controllers/action_officer_reminder_controller.rb b/app/controllers/action_officer_reminder_controller.rb index 2d6d13ccc..cfdc56b1b 100644 --- a/app/controllers/action_officer_reminder_controller.rb +++ b/app/controllers/action_officer_reminder_controller.rb @@ -1,5 +1,5 @@ class ActionOfficerReminderController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! def accept_reject loading_records_and_rendering do |pq, ao, ao_pq| diff --git a/app/controllers/action_officers_controller.rb b/app/controllers/action_officers_controller.rb index 61cfc46e7..530222fd1 100644 --- a/app/controllers/action_officers_controller.rb +++ b/app/controllers/action_officers_controller.rb @@ -1,5 +1,5 @@ class ActionOfficersController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! def index @show_inactive = (params[:show_inactive] == "true") diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index ee09a5a22..5890a8bc6 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -1,5 +1,5 @@ class AdminController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! def index update_page_title "Settings" diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index d89e5c4dd..127dcd823 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -6,16 +6,6 @@ class ApplicationController < ActionController::Base protect_from_forgery with: :exception before_action :configure_permitted_parameters, if: :devise_controller? - if Rails.env.production? || ENV["TRAP_ERRORS_IN_TEST"] == "1" - rescue_from StandardError do |exception| - if exception.is_a?(ActiveRecord::RecordNotFound) - page_not_found(exception) - else - server_error(exception) - end - end - end - def set_am_host request = self.request opts = ::ActionMailer::Base.default_url_options @@ -29,21 +19,6 @@ def after_invite_path_for(_resource) users_path end - def page_not_found(exception = nil) - update_page_title "Not found (404)" - show_error_page_and_increment_statsd(404, exception) - end - - def unauthorized - update_page_title "Unauthorized (401)" - show_error_page_and_increment_statsd(401) - end - - def server_error(exception) - update_page_title "Server Error (500)" - show_error_page_and_increment_statsd(500, exception) - end - def update_page_title(prefix, suffix = "Parliamentary Questions - Ministry of Justice") @page_title = "#{prefix} - #{suffix}" end @@ -68,15 +43,4 @@ def configure_permitted_parameters devise_parameter_sanitizer.permit(:invite, keys: %i[name roles]) devise_parameter_sanitizer.permit(:accept_invitation, keys: %i[name roles invitation_token password password_confirmation]) end - - def show_error_page_and_increment_statsd(err_number, exception = nil) - $statsd.increment("#{StatsHelper::PAGES_ERRORS}.#{err_number}") # rubocop:disable Style/GlobalVars - respond_to do |format| - format.html { render file: "public/#{err_number}.html", status: err_number, layout: nil } - format.all { head :no_content, status: err_number } - end - backtrace = exception.nil? ? nil : exception.backtrace - message = exception.nil? ? nil : exception.message - LogStuff.error(:error_page) { "status: #{err_number}, referrer:#{request.referer}, url:#{request_url}, message:#{message}, backtrace:#{backtrace}" } - end end diff --git a/app/controllers/commission_controller.rb b/app/controllers/commission_controller.rb index 4d41ded83..49693e7db 100644 --- a/app/controllers/commission_controller.rb +++ b/app/controllers/commission_controller.rb @@ -1,7 +1,7 @@ class CommissionController < ApplicationController include Validators::DateInput - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! def commission pq = Pq.find(params[:commission_form][:pq_id]) diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index f3c2c27ba..82e43362e 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -1,10 +1,9 @@ class DashboardController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! BACKLOG = "Backlog".freeze IN_PROGRESS = "In progress".freeze NEW = "New".freeze - PER_PAGE = 15 UNASSIGNED = "unassigned".freeze def backlog @@ -69,9 +68,4 @@ def load_pq_with_counts(dashboard_state) Presenters::DashboardFilters.build(pq_counts, params) end end - - def paginate_collection(pqs) - page = params.fetch(:page, 1) - pqs.paginate(page:, per_page: PER_PAGE) - end end diff --git a/app/controllers/deputy_directors_controller.rb b/app/controllers/deputy_directors_controller.rb index c39944368..6a9d4fe06 100644 --- a/app/controllers/deputy_directors_controller.rb +++ b/app/controllers/deputy_directors_controller.rb @@ -1,5 +1,5 @@ class DeputyDirectorsController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! before_action :set_deputy_director, only: %i[show edit update destroy] before_action :prepare_divisions diff --git a/app/controllers/directorates_controller.rb b/app/controllers/directorates_controller.rb index ddf8f636f..e44af7194 100644 --- a/app/controllers/directorates_controller.rb +++ b/app/controllers/directorates_controller.rb @@ -1,5 +1,5 @@ class DirectoratesController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! before_action :set_directorate, only: %i[show edit update destroy] def index diff --git a/app/controllers/divisions_controller.rb b/app/controllers/divisions_controller.rb index 78a64c30e..56b25923a 100644 --- a/app/controllers/divisions_controller.rb +++ b/app/controllers/divisions_controller.rb @@ -1,5 +1,5 @@ class DivisionsController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! before_action :set_division, only: %i[show edit update destroy] before_action :prepare_directorates diff --git a/app/controllers/early_bird_dashboard_controller.rb b/app/controllers/early_bird_dashboard_controller.rb index 9ff74c61b..86fc85e4e 100644 --- a/app/controllers/early_bird_dashboard_controller.rb +++ b/app/controllers/early_bird_dashboard_controller.rb @@ -1,7 +1,7 @@ class EarlyBirdDashboardController < ApplicationController before_action AoTokenFilter, only: [:index] before_action :save_early_bird_credentials, only: [:index] - before_action :authenticate_user!, PqUserFilter, only: [:preview] + before_action :authenticate_user!, only: [:preview] PER_PAGE = 200 QUESTIONS_URL = "https://questions-statements.parliament.uk".freeze @@ -24,13 +24,4 @@ def save_early_bird_credentials session[:early_bird_token] = params[:token] session[:early_bird_entity] = params[:entity] end - - def load_pq_with_counts - @questions = paginate_collection(yield) if block_given? - end - - def paginate_collection(pqs) - page = params.fetch(:page, 1) - pqs.paginate(page:, per_page: PER_PAGE) - end end diff --git a/app/controllers/early_bird_members_controller.rb b/app/controllers/early_bird_members_controller.rb index 0b83ea207..0e831bef5 100644 --- a/app/controllers/early_bird_members_controller.rb +++ b/app/controllers/early_bird_members_controller.rb @@ -1,5 +1,5 @@ class EarlyBirdMembersController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! def index @early_bird_members = EarlyBirdMember.active_list diff --git a/app/controllers/early_bird_send_emails_controller.rb b/app/controllers/early_bird_send_emails_controller.rb index 655b081bf..5600237ab 100644 --- a/app/controllers/early_bird_send_emails_controller.rb +++ b/app/controllers/early_bird_send_emails_controller.rb @@ -1,5 +1,5 @@ class EarlyBirdSendEmailsController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! def send_emails service = EarlyBirdReportService.new diff --git a/app/controllers/errors_controller.rb b/app/controllers/errors_controller.rb new file mode 100644 index 000000000..87dfd41f9 --- /dev/null +++ b/app/controllers/errors_controller.rb @@ -0,0 +1,11 @@ +class ErrorsController < ApplicationController + def not_found + update_page_title "Error - 404 - Page cannot be found" + render status: :not_found + end + + def internal_error + update_page_title "Error - 500 - Internal server error" + render status: :internal_server_error + end +end diff --git a/app/controllers/export_controller.rb b/app/controllers/export_controller.rb index 6dab900ab..74ce7060e 100644 --- a/app/controllers/export_controller.rb +++ b/app/controllers/export_controller.rb @@ -1,7 +1,7 @@ class ExportController < ApplicationController include Validators::DateInput - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! def index update_page_title("Export PQs") diff --git a/app/controllers/manual_reject_commission_controller.rb b/app/controllers/manual_reject_commission_controller.rb index 7ae951d51..10a85dc3e 100644 --- a/app/controllers/manual_reject_commission_controller.rb +++ b/app/controllers/manual_reject_commission_controller.rb @@ -1,5 +1,5 @@ class ManualRejectCommissionController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! def reject_manual ao_pq = ActionOfficersPq.where(id: params[:id]).first diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb deleted file mode 100644 index 4f81c5f83..000000000 --- a/app/controllers/members_controller.rb +++ /dev/null @@ -1,8 +0,0 @@ -class MembersController < ApplicationController - before_action :authenticate_user!, PqUserFilter - - def by_name - @members = ParliService.new.members_by_name(params[:name]) - render partial: "by_name" - end -end diff --git a/app/controllers/minister_contacts_controller.rb b/app/controllers/minister_contacts_controller.rb index 3135242e9..5e2bca74e 100644 --- a/app/controllers/minister_contacts_controller.rb +++ b/app/controllers/minister_contacts_controller.rb @@ -1,5 +1,5 @@ class MinisterContactsController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! def new @minister_contact = MinisterContact.new(minister_id: params[:id]) diff --git a/app/controllers/ministers_controller.rb b/app/controllers/ministers_controller.rb index 3d6f96ae6..cddebdff6 100644 --- a/app/controllers/ministers_controller.rb +++ b/app/controllers/ministers_controller.rb @@ -1,5 +1,5 @@ class MinistersController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! before_action :set_minister, only: %i[show edit update destroy] def index diff --git a/app/controllers/ogds_controller.rb b/app/controllers/ogds_controller.rb index 35642e82b..636887c31 100644 --- a/app/controllers/ogds_controller.rb +++ b/app/controllers/ogds_controller.rb @@ -1,5 +1,5 @@ class OgdsController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! before_action :set_ogd, only: %i[show edit update destroy] def index diff --git a/app/controllers/pq_user_filter.rb b/app/controllers/pq_user_filter.rb deleted file mode 100644 index cdbb7bdaf..000000000 --- a/app/controllers/pq_user_filter.rb +++ /dev/null @@ -1,9 +0,0 @@ -class PqUserFilter - def self.before(controller) - controller.render file: "public/401.html", status: :unauthorized unless has_access(controller) - end - - def self.has_access(controller) - controller.current_user.pq_user? - end -end diff --git a/app/controllers/pqs_controller.rb b/app/controllers/pqs_controller.rb index b01c76272..b4e6703a8 100644 --- a/app/controllers/pqs_controller.rb +++ b/app/controllers/pqs_controller.rb @@ -1,7 +1,7 @@ class PqsController < ApplicationController include Validators::DateInput - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! def index redirect_to controller: "dashboard" diff --git a/app/controllers/press_desks_controller.rb b/app/controllers/press_desks_controller.rb index d30963df9..d1db6566b 100644 --- a/app/controllers/press_desks_controller.rb +++ b/app/controllers/press_desks_controller.rb @@ -1,5 +1,5 @@ class PressDesksController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! before_action :set_press_desk, only: %i[show edit update destroy] def index diff --git a/app/controllers/press_officers_controller.rb b/app/controllers/press_officers_controller.rb index 39c054ce3..27aca9dc4 100644 --- a/app/controllers/press_officers_controller.rb +++ b/app/controllers/press_officers_controller.rb @@ -1,5 +1,5 @@ class PressOfficersController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! before_action :set_press_officer, only: %i[show edit update destroy] before_action :prepare_press_offices diff --git a/app/controllers/preview_controller.rb b/app/controllers/preview_controller.rb deleted file mode 100644 index 1b1842a19..000000000 --- a/app/controllers/preview_controller.rb +++ /dev/null @@ -1,24 +0,0 @@ -class PreviewController < ApplicationController - before_action :authenticate_user!, PqUserFilter - - NEW = "New".freeze - PER_PAGE = 200 - - def index - @preview_state = NEW - @now = Time.zone.now.strftime("%d/%m/%Y") - update_page_title "Preview" - load_pq_with_counts { Pq.new_questions.sorted_for_dashboard } - end - -private - - def load_pq_with_counts - @questions = paginate_collection(yield) if block_given? - end - - def paginate_collection(pqs) - page = params.fetch(:page, 1) - pqs.paginate(page:, per_page: PER_PAGE) - end -end diff --git a/app/controllers/quick_action_controller.rb b/app/controllers/quick_action_controller.rb index bbb947312..c4ecb9bf8 100644 --- a/app/controllers/quick_action_controller.rb +++ b/app/controllers/quick_action_controller.rb @@ -1,5 +1,5 @@ class QuickActionController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! def dates params.permit(:total_pqs, :pqs_comma_separated_for_dates, :utf8, :authenticity_token, :qa_edit_deadline_date, :qa_edit_draft_date, :qa_edit_pod_date, :qa_edit_minister_date, :qa_edit_answered_date) diff --git a/app/controllers/reports_controller.rb b/app/controllers/reports_controller.rb deleted file mode 100644 index 75318fdcb..000000000 --- a/app/controllers/reports_controller.rb +++ /dev/null @@ -1,34 +0,0 @@ -class ReportsController < ApplicationController - before_action :authenticate_user!, PqUserFilter - - PER_PAGE = 15 - - def ministers_by_progress - update_page_title("Minister report") - report_data = Pq.count_in_progress_by_minister - @report = Presenters::Report.ministers(report_data, Minister.active) - render "report" - end - - def press_desk_by_progress - update_page_title("Press desk report") - report_data = Pq.count_accepted_by_press_desk - @report = Presenters::Report.press_desk(report_data, PressDesk.active) - render "report" - end - - def filter_all - state = params[:state] - minister_id = params[:minister_id] - press_desk_id = params[:press_desk_id] - - @ministers = Minister.active - @action_officers = ActionOfficer.active - @press_desks = PressDesk.active - @questions = Pq.filter_for_report(state, minister_id, press_desk_id) - .paginate(page: params[:page], per_page: PER_PAGE) - @states = PqState::ALL.map { |s| [PqState.state_label(s), s] } - - render "filter_all" - end -end diff --git a/app/controllers/root_controller.rb b/app/controllers/root_controller.rb index d46058aa5..047d79dfd 100644 --- a/app/controllers/root_controller.rb +++ b/app/controllers/root_controller.rb @@ -2,8 +2,6 @@ class RootController < ApplicationController before_action :authenticate_user! def index - return redirect_to controller: "dashboard", action: "index" if current_user.pq_user? - - render file: "public/401.html", status: :unauthorized + redirect_to controller: "dashboard", action: "index" end end diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 3cb5ad21a..89d83947f 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -1,5 +1,5 @@ class SearchController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! def index uin = params[:search] diff --git a/app/controllers/transferred_controller.rb b/app/controllers/transferred_controller.rb index cc44335ed..f143a6239 100644 --- a/app/controllers/transferred_controller.rb +++ b/app/controllers/transferred_controller.rb @@ -1,7 +1,7 @@ class TransferredController < ApplicationController include Validators::DateInput - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! def new update_page_title("Create a transferred PQ") diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index adb919df7..5de5d7e74 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1,5 +1,5 @@ class UsersController < ApplicationController - before_action :authenticate_user!, PqUserFilter + before_action :authenticate_user! def index @users = User.active_list diff --git a/app/helpers/stats_helper.rb b/app/helpers/stats_helper.rb deleted file mode 100644 index 7e38f3a7b..000000000 --- a/app/helpers/stats_helper.rb +++ /dev/null @@ -1,18 +0,0 @@ -module StatsHelper - METRIC_DASHBOARD_HITS = "dashboard.hits".freeze - - MAIL_TIMING = "mails.timing".freeze - MAIL_SUCCESS = "mails.success".freeze - MAIL_FAILURE = "mails.failed".freeze - - PAGES_TIMING = "pages.timing".freeze - PAGES_ERRORS = "pages.errors".freeze - - TOKENS_GENERATE = "tokens.generate".freeze - TOKENS_VALID = "tokens.validation.valid".freeze - TOKENS_INVALID = "tokens.validation.invalid".freeze - - IMPORT = "questions.import".freeze - PROGRESS = "questions.progress".freeze - IMPORT_ERROR = "questions.import.fail".freeze -end diff --git a/app/javascript/application.js b/app/javascript/application.js new file mode 100644 index 000000000..fa490a2de --- /dev/null +++ b/app/javascript/application.js @@ -0,0 +1,13 @@ +import "./moj/stick-at-top-when-scrolling" +import "./moj/bootstrap" +import "./moj/jquery.datetimepicker" +import "./moj/pq" +import "./moj/stop-scrolling-at-footer" +import "./moj/validation_event" +import "./moj/early_bird_dashboard" + +import { initAll } from "govuk-frontend"; +initAll(); + +import Rails from "@rails/ujs" +Rails.start() diff --git a/app/assets/javascripts/bootstrap.js b/app/javascript/moj/bootstrap.js similarity index 100% rename from app/assets/javascripts/bootstrap.js rename to app/javascript/moj/bootstrap.js diff --git a/app/assets/javascripts/early_bird_dashboard.js b/app/javascript/moj/early_bird_dashboard.js similarity index 100% rename from app/assets/javascripts/early_bird_dashboard.js rename to app/javascript/moj/early_bird_dashboard.js diff --git a/app/assets/javascripts/jquery.datetimepicker.js b/app/javascript/moj/jquery.datetimepicker.js similarity index 99% rename from app/assets/javascripts/jquery.datetimepicker.js rename to app/javascript/moj/jquery.datetimepicker.js index 2cf8d73f5..d262f68d0 100644 --- a/app/assets/javascripts/jquery.datetimepicker.js +++ b/app/javascript/moj/jquery.datetimepicker.js @@ -1003,7 +1003,7 @@ } else if (!Date.parseDate($(this).val(), options.format)) { var splittedHours = +([$(this).val()[0], $(this).val()[1]].join('')), splittedMinutes = +([$(this).val()[2], $(this).val()[3]].join('')); - + // parse the numbers as 0312 => 03:12 if(!options.datepicker && options.timepicker && splittedHours >= 0 && splittedHours < 24 && splittedMinutes >= 0 && splittedMinutes < 60) { $(this).val([splittedHours, splittedMinutes].map(function(item) { @@ -1012,12 +1012,12 @@ } else { $(this).val((_xdsoft_datetime.now()).dateFormat(options.format)); } - + datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val()); } else { datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val()); } - + datetimepicker.trigger('changedatetime.xdsoft'); }); } diff --git a/app/assets/javascripts/pq.js b/app/javascript/moj/pq.js similarity index 96% rename from app/assets/javascripts/pq.js rename to app/javascript/moj/pq.js index 91707f44d..4eff104eb 100644 --- a/app/assets/javascripts/pq.js +++ b/app/javascript/moj/pq.js @@ -1,5 +1,3 @@ -var document, $, ga; - (function() { 'use strict'; @@ -43,7 +41,7 @@ var document, $, ga; var $button = $form.find('.commission-button'); if (isValidDashboardPq($form)) { $button.attr('aria-disabled', 'false'); - $button.removeAttr('disabled'); + $button.prop('disabled', false); } else { $button.attr('aria-disabled', 'true'); $button.attr('disabled', 'disabled'); @@ -70,8 +68,8 @@ var document, $, ga; if (selectionCount > '0') { var selectionMessage = ( selectionCount == 1 ) ? " PQ selected" : " PQs selected"; $('.selectionCount').html(selectionCount + selectionMessage); - $('#do-export').removeAttr("disabled", "disabled"); - $('#do-reminders').removeAttr("disabled", "disabled"); + $('#do-export').prop('disabled', false); + $('#do-reminders').prop('disabled', false); if ( ($('#qa_edit_deadline_date').val().length == 10 || $('#qa_edit_draft_date').val().length == 10 || @@ -79,7 +77,7 @@ var document, $, ga; $('#qa_edit_minister_date').val().length == 10 || $('#qa_edit_answered_date').val().length == 10) && $('#editDates .selectionCount').text().trim() != 'No PQs selected' ){ - $('#do-edit').removeAttr("disabled", "disabled"); // Enable 'Edit' button. + $('#do-edit').prop("disabled", false); // Enable 'Edit' button. } } else { @@ -318,7 +316,7 @@ var document, $, ga; // we need to avoid other unnecessary initialisations as they // break the page - $('nav').hide(); + $('.navbar').hide(); // open the reject justification form when Reject is selected // and hide it when Accept is selected @@ -408,7 +406,8 @@ var document, $, ga; // on successful reminder sent, display the data received from the // ajax call - $('.ao-reminder-link').on('ajax:success', function(e, data){ + $('.ao-reminder-link').on('ajax:success', function(e) { + var data = e.originalEvent.detail[2].response; $(this).after(data); }); } @@ -461,7 +460,7 @@ var document, $, ga; } }); - $quickActions.change(function (event) { + $quickActions.on("change", function (event) { // Quick Action: Edit Dates ~ Check at least one date and PQ selected if ( ($(event.target).is('#qa_edit_deadline_date') && $('#qa_edit_deadline_date').val().length == 16 || @@ -470,15 +469,15 @@ var document, $, ga; $(event.target).is('#qa_edit_minister_date') && $('#qa_edit_minister_date').val().length == 16 || $(event.target).is('#qa_edit_answered_date') && $('#qa_edit_answered_date').val().length == 16) && $('#editDates .selectionCount').text().trim() != 'No PQs selected' ){ - $('#do-edit').removeAttr("disabled", "disabled"); // Enable 'Edit' button. + $('#do-edit').prop("disabled", false); // Enable 'Edit' button. } else { - $('#do-edit').attr("disabled", "disabled"); // Disable 'Edit' button. + $('#do-edit').prop("disabled", true); // Disable 'Edit' button. } }); // Trigger date picker events - $dashboardFilters.change(function () { + $dashboardFilters.on("change", function () { filterQuestions(); }); @@ -499,7 +498,7 @@ var document, $, ga; } else if ( $(event.target).val() == "Clear" && $(event.target).prop('id') != "clear-keywords-filter" ){ // Uncheck radio buttons. - $('input[name="' + $(event.target).closest('.filter-box').prop('id') + '"]').removeAttr('checked'); + $('input[name="' + $(event.target).closest('.filter-box').prop('id') + '"]').prop("checked", false); // Hide the "1 selected" notice. $('#' + $(event.target).closest('.filter-box').prop('id') + ' .notice').hide(); } diff --git a/app/assets/javascripts/stick-at-top-when-scrolling.js b/app/javascript/moj/stick-at-top-when-scrolling.js similarity index 98% rename from app/assets/javascripts/stick-at-top-when-scrolling.js rename to app/javascript/moj/stick-at-top-when-scrolling.js index 6eebbf08f..1bd6f5aaf 100644 --- a/app/assets/javascripts/stick-at-top-when-scrolling.js +++ b/app/javascript/moj/stick-at-top-when-scrolling.js @@ -1,7 +1,6 @@ (function () { "use strict"; - var root = this, - $ = root.jQuery; + var root = window; if(typeof root.GOVUK === 'undefined') { root.GOVUK = {}; } // Stick elements to top of screen when you scroll past, documentation is in the README.md diff --git a/app/assets/javascripts/stop-scrolling-at-footer.js b/app/javascript/moj/stop-scrolling-at-footer.js similarity index 95% rename from app/assets/javascripts/stop-scrolling-at-footer.js rename to app/javascript/moj/stop-scrolling-at-footer.js index f5bd3f52e..bc4a6fec6 100644 --- a/app/assets/javascripts/stop-scrolling-at-footer.js +++ b/app/javascript/moj/stop-scrolling-at-footer.js @@ -13,8 +13,7 @@ (function () { "use strict"; - var root = this, - $ = root.jQuery; + var root = this; if(typeof root.GOVUK === 'undefined') { root.GOVUK = {}; } var stopScrollingAtFooter = { @@ -63,7 +62,7 @@ } }, onScroll: function(){ - if (stopScrollingAtFooter._isPolling === false) { + if (stopScrollingAtFooter._isPolling === false) { stopScrollingAtFooter.startPolling(); } }, @@ -134,5 +133,5 @@ root.GOVUK.stopScrollingAtFooter = stopScrollingAtFooter; - $(root).load(function(){ $(root).trigger('govuk.pageSizeChanged'); }); + $(root).on('load', function(){ $(root).trigger('govuk.pageSizeChanged'); }); }).call(this); diff --git a/app/assets/javascripts/validation_event.js b/app/javascript/moj/validation_event.js similarity index 84% rename from app/assets/javascripts/validation_event.js rename to app/javascript/moj/validation_event.js index 096cd9259..6a05c9ec6 100644 --- a/app/assets/javascripts/validation_event.js +++ b/app/javascript/moj/validation_event.js @@ -2,7 +2,7 @@ window.onload = function() { window.dataLayer = window.dataLayer || []; - if($('.pq-msg-warning, .pq-msg-error').size() > 0) { + if($('.pq-msg-warning, .pq-msg-error').length > 0) { $('.pq-msg-warning, .pq-msg-error').each( function(_, obj) { window.dataLayer.push({ event: "validation_error", diff --git a/app/models/email.rb b/app/models/email.rb index 5efc7bc24..94c4efdc4 100644 --- a/app/models/email.rb +++ b/app/models/email.rb @@ -1,68 +1,2 @@ -# == Schema Information -# -# Table name: emails -# -# id :integer not null, primary key -# mailer :string -# method :string -# params :text -# from :text -# to :text -# cc :text -# reply_to :text -# send_attempted_at :datetime -# sent_at :datetime -# num_send_attempts :integer default(0) -# status :string default("new") -# created_at :datetime not null -# updated_at :datetime not null -# - -class Email < ApplicationRecord - EMAIL_REGEXP = /\A(.*<)?[^@\s]+@([^@\s]+\.)+[^@\s]+>?\z/ - EMAIL_DELIMITERS = [";", ":"].freeze - - validates :method, presence: true - validates :from, presence: true - validates :to, presence: true - validates :reply_to, presence: true - - # validates_format_of :from, with: EMAIL_REGEXP - # validates_format_of :reply_to, with: EMAIL_REGEXP - validates :from, format: { with: EMAIL_REGEXP, format: true } - validates :reply_to, format: { with: EMAIL_REGEXP, format: true } - - validate :concatenated_email_to_format - validate :concatenated_email_cc_format - - validates :mailer, inclusion: { in: %w[DbSyncMailer ImportMailer PqMailer] } - validates :status, inclusion: { in: %w[new sending sent failed abandoned] } - - serialize :params - - scope :new_only, -> { where(status: "new").order(:id) } - scope :waiting, -> { where(status: %w[new failed]).order(:id) } - scope :abandoned, -> { where(status: "abandoned").order(:id) } - -private - - def concatenated_email_to_format - errors.add(:to, "invalid") unless concatenated_email_format(:to) - end - - def concatenated_email_cc_format - errors.add(:cc, "invalid") unless concatenated_email_format(:cc) - end - - def concatenated_email_format(field) - return true unless attribute(field) - - EMAIL_DELIMITERS.any? do |delimiter| - all_valid_emails?(attribute(field).split(delimiter)) - end - end - - def all_valid_emails?(emails) - emails.all? { |email| email.strip =~ EMAIL_REGEXP } - end -end +# legacy model +class Email < ApplicationRecord; end diff --git a/app/models/pq.rb b/app/models/pq.rb index c62d485d2..8e0c76c68 100644 --- a/app/models/pq.rb +++ b/app/models/pq.rb @@ -2,48 +2,48 @@ # # Table name: pqs # -# id :integer not null, primary key -# house_id :integer -# raising_member_id :integer -# tabled_date :datetime -# response_due :datetime -# question :text -# answer :string -# created_at :datetime not null -# updated_at :datetime not null -# uin :string -# member_name :string -# member_constituency :string -# house_name :string -# date_for_answer :date -# registered_interest :boolean -# internal_deadline :datetime -# question_type :string -# minister_id :integer -# policy_minister_id :integer -# progress_id :integer -# draft_answer_received :datetime -# holding_reply :datetime -# preview_url :string -# pod_waiting :datetime -# pod_clearance :datetime -# transferred :boolean -# question_status :string -# sent_to_policy_minister :datetime -# cleared_by_policy_minister :datetime -# sent_to_answering_minister :datetime -# cleared_by_answering_minister :datetime -# answer_submitted :datetime -# final_response_info_released :string -# transfer_out_ogd_id :integer -# transfer_out_date :datetime -# directorate_id :integer -# original_division_id :integer -# transfer_in_ogd_id :integer -# transfer_in_date :datetime -# state :string default("unassigned") -# state_weight :integer default(0) -# archived :boolean default(FALSE) +# id :integer not null, primary key +# house_id :integer +# raising_member_id :integer +# tabled_date :datetime +# response_due :datetime +# question :text +# answer :string +# created_at :datetime not null +# updated_at :datetime not null +# uin :string +# member_name :string +# member_constituency :string +# house_name :string +# date_for_answer :date +# registered_interest :boolean +# internal_deadline :datetime +# question_type :string +# minister_id :integer +# policy_minister_id :integer +# progress_id :integer +# draft_answer_received :datetime +# holding_reply :datetime +# preview_url :string +# pod_waiting :datetime +# pod_clearance :datetime +# transferred :boolean +# question_status :string +# sent_to_policy_minister :datetime +# cleared_by_policy_minister :datetime +# sent_to_answering_minister :datetime +# cleared_by_answering_minister :datetime +# answer_submitted :datetime +# final_response_info_released :string +# transfer_out_ogd_id :integer +# transfer_out_date :datetime +# directorate_id :integer +# original_division_id :integer +# transfer_in_ogd_id :integer +# transfer_in_date :datetime +# state :string default("unassigned") +# state_weight :integer default(0) +# archived :boolean default(FALSE) # class Pq < ApplicationRecord diff --git a/app/models/pq_counts.rb b/app/models/pq_counts.rb index c95f7f2e8..ee9be324c 100644 --- a/app/models/pq_counts.rb +++ b/app/models/pq_counts.rb @@ -1,54 +1,4 @@ module PqCounts - # Returns a hash with the PQ state as key and count by minister_id as value. - # - # It includes only PQs that are in the in progress states (PqState::IN_PROGRESS), - # and ministers that are active. - # - # @returns [Hash[String, Hash]] - # - # Example: - # - # { - # "no_response" => { - # 43 => 1, - # 44 => 10 - # 48 => 2 - # }, - # "with_pod" => { - # 44 => 2 - # } - # } - def count_in_progress_by_minister - select("minister_id, state, count(*)") - .joins(:minister) - .where(state: PqState::IN_PROGRESS) - .where("ministers.deleted = false") - .group(:state, :minister_id) - .reduce({}) do |acc, r| - h = { r.minister_id => r.count } - acc.merge(r.state => h) { |_, old_v, new_v| old_v.merge(new_v) } - end - end - - # Returns a hash with the PQ state as key and count by press_desk_id as value. - # - # It will filter out PQs that are below the PqState::DRAFT_PENDING state, - # and press desks that are not active. - # - # @returns [Hash[String, Hash]] - # - def count_accepted_by_press_desk - join_press_desks - .select("pqs.state, ao.press_desk_id, count(distinct pqs.id)") - .where.not(state: PqState::UNASSIGNED) - .where("aopq.response = 'accepted' AND pd.deleted = false") - .group("state, ao.press_desk_id") - .reduce({}) do |acc, r| - h = { r.press_desk_id => r.count } - acc.merge(r.state => h) { |_, old_v, new_v| old_v.merge(new_v) } - end - end - # Returns a hash of PQ counts by state # # @returns [Hash[String, Fixnum]] diff --git a/app/models/pq_scopes.rb b/app/models/pq_scopes.rb index 13180f9c8..f874f643f 100644 --- a/app/models/pq_scopes.rb +++ b/app/models/pq_scopes.rb @@ -22,14 +22,6 @@ def draft_pending by_status(PqState::DRAFT_PENDING) end - def filter_for_report(state, minister_id, press_desk_id) - q = order(:internal_deadline) - q = join_press_desks.where("pd.id = ?", press_desk_id).distinct("pqs.uin") if press_desk_id.present? - q = q.where(state:) if state.present? - q = q.where(minister_id:) if minister_id.present? - q - end - def imported_since_last_weekday end_of_last_weekday = Time.zone.today.last_weekday.end_of_day end_of_today = Time.zone.today.end_of_day @@ -40,13 +32,6 @@ def in_progress where("date_for_answer >= CURRENT_DATE and state IN (?)", PqState::IN_PROGRESS) end - def join_press_desks - joins("JOIN action_officers_pqs aopq ON aopq.pq_id = pqs.id") - .joins("JOIN action_officers ao ON ao.id = aopq.action_officer_id") - .joins("JOIN press_desks pd ON pd.id = ao.press_desk_id") - .where("aopq.response = 'accepted' AND pd.deleted = false") - end - def minister_cleared by_status(PqState::MINISTER_CLEARED) end diff --git a/app/models/pqa_import_run.rb b/app/models/pqa_import_run.rb index a3db5419e..03e63a98a 100644 --- a/app/models/pqa_import_run.rb +++ b/app/models/pqa_import_run.rb @@ -18,8 +18,6 @@ class PQAImportRun < ApplicationRecord validates :status, inclusion: { in: %w[OK Failure OK_with_errors], message: "Status must be 'OK', 'Failure' or 'OK_with_errors': was '%{value}'" } - serialize :error_messages - def self.last_import_time_utc rec = successful.order(:start_time).last if rec.nil? diff --git a/app/services/commissioning_service.rb b/app/services/commissioning_service.rb index 2d9335166..207b9fa09 100644 --- a/app/services/commissioning_service.rb +++ b/app/services/commissioning_service.rb @@ -48,8 +48,6 @@ def notify_assignment(ao_pq) expires = @current_time.end_of_day + AO_TOKEN_LIFETIME.days token = @token_service.generate_token(path, entity, expires) - $statsd.increment "#{StatsHelper::TOKENS_GENERATE}.commission" # rubocop:disable Style/GlobalVars - LogStuff.tag(:mailer_commission) do NotifyPqMailer.commission_email(pq:, action_officer: ao, token:, entity:, email: ao.email).deliver_later if ao.group_email.present? diff --git a/app/services/early_bird_report_service.rb b/app/services/early_bird_report_service.rb index 7edb88952..9c64fbac3 100644 --- a/app/services/early_bird_report_service.rb +++ b/app/services/early_bird_report_service.rb @@ -15,7 +15,6 @@ def notify_early_bird token = @token_service.generate_token(early_bird_dashboard_path, entity, end_of_day) recipients = EarlyBirdMember.active.pluck(:email) << "pqtest@digital.justice.gov.uk" - $statsd.increment "#{StatsHelper::TOKENS_GENERATE}.earlybird" # rubocop:disable Style/GlobalVars recipients.each do |recipient| LogStuff.tag(:mailer_early_bird) do LogStuff.info { "Early bird email to pqtest@digital.justice.gov.uk} (name early_bird) [CCd to #{recipients.join(';')}]" } diff --git a/app/services/pqa_service.rb b/app/services/pqa_service.rb index 44b085b3f..fc7cc476a 100644 --- a/app/services/pqa_service.rb +++ b/app/services/pqa_service.rb @@ -8,17 +8,13 @@ def initialize(client) end def questions(date_from, date_to = nil, status = nil) - $statsd.time("#{StatsHelper::IMPORT}.qa.response_time") do # rubocop:disable Style/GlobalVars - response = @client.questions(date_from, date_to, status) - PQA::XmlDecoder.decode_questions(response.body) - end + response = @client.questions(date_from, date_to, status) + PQA::XmlDecoder.decode_questions(response.body) end def question(uin) - $statsd.time("#{StatsHelper::IMPORT}.qa.response_time") do # rubocop:disable Style/GlobalVars - response = @client.question(uin) - PQA::XmlDecoder.decode_questions(response.body) - end + response = @client.question(uin) + PQA::XmlDecoder.decode_questions(response.body) end def answer_response(uin, member_id, text, is_holding_answer) diff --git a/app/views/action_officers/_form.html.slim b/app/views/action_officers/_form.html.slim index 1094a79a6..ec090f988 100644 --- a/app/views/action_officers/_form.html.slim +++ b/app/views/action_officers/_form.html.slim @@ -20,7 +20,7 @@ .form-group label.form-label for="action_officer_press_desk_id" Press Desk (required) = f.collection_select(:press_desk_id, @press_desks, :id, :name, :include_blank => "Please select") - p Status + p.govuk-body Status .form-group label.block-label for="action_officer_deleted" = f.check_box :deleted diff --git a/app/views/action_officers/edit.html.slim b/app/views/action_officers/edit.html.slim index 803d93fa8..7bb636b9f 100644 --- a/app/views/action_officers/edit.html.slim +++ b/app/views/action_officers/edit.html.slim @@ -1,4 +1,4 @@ -h1 Edit action officer +h1.govuk-heading-l Edit action officer = render partial: "shared/flash_messages", flash: flash = render 'form' = link_to 'Return to action officer list', action_officers_path, {class: 'admin-link'} diff --git a/app/views/action_officers/index.html.slim b/app/views/action_officers/index.html.slim index 10c5309a5..a5cfa79d3 100644 --- a/app/views/action_officers/index.html.slim +++ b/app/views/action_officers/index.html.slim @@ -1,4 +1,4 @@ -h1 Action officers +h1.govuk-heading-l Action officers = render partial: "shared/flash_messages", flash: flash #admin-ao-list .row @@ -24,5 +24,5 @@ h1 Action officers td.edit = link_to edit_action_officer_path(action_officer) do 'Edit - span.visually-hidden + span.govuk-visually-hidden = action_officer.name diff --git a/app/views/action_officers/new.html.slim b/app/views/action_officers/new.html.slim index 50c235e50..77cc933dc 100644 --- a/app/views/action_officers/new.html.slim +++ b/app/views/action_officers/new.html.slim @@ -1,4 +1,4 @@ -h1 Add action officer +h1.govuk-heading-l Add action officer = render partial: "shared/flash_messages", flash: flash = render 'form' = link_to 'Return to action officer list', action_officers_path, {class: 'admin-link'} diff --git a/app/views/action_officers/show.html.slim b/app/views/action_officers/show.html.slim index 99a409d3c..139f9c550 100644 --- a/app/views/action_officers/show.html.slim +++ b/app/views/action_officers/show.html.slim @@ -1,24 +1,24 @@ #admin-ao-details - h1 Action officer details + h1.govuk-heading-l Action officer details = render partial: "shared/flash_messages", flash: flash - h2 Name - p= @action_officer.name - h2 Email - p= @action_officer.email - h2 Group email - p= @action_officer.group_email - h2 Phone - p= @action_officer.phone - h2 Deputy director - p= @action_officer.deputy_director.name - h2 Division - p= @action_officer.deputy_director.division.name - h2 Press desk - p= @action_officer.press_desk.name - h2 Status + h2.govuk-heading-m Name + p.govuk-body= @action_officer.name + h2.govuk-heading-m Email + p.govuk-body= @action_officer.email + h2.govuk-heading-m Group email + p.govuk-body= @action_officer.group_email + h2.govuk-heading-m Phone + p.govuk-body= @action_officer.phone + h2.govuk-heading-m Deputy director + p.govuk-body= @action_officer.deputy_director.name + h2.govuk-heading-m Division + p.govuk-body= @action_officer.deputy_director.division.name + h2.govuk-heading-m Press desk + p.govuk-body= @action_officer.press_desk.name + h2.govuk-heading-m Status = render partial: 'shared/status', object: @action_officer - p + p.govuk-body = link_to 'Edit', edit_action_officer_path(@action_officer), {class: 'admin-link'} - span.visually-hidden + span.govuk-visually-hidden = ' | ' = link_to 'Return to action officer list', action_officers_path, {class: 'admin-link'} diff --git a/app/views/admin/index.html.slim b/app/views/admin/index.html.slim index a8b6a8ef8..8da13aa9c 100644 --- a/app/views/admin/index.html.slim +++ b/app/views/admin/index.html.slim @@ -1,11 +1,11 @@ #settings-home - h1 Settings + h1.govuk-heading-l Settings - if flash[:success] .pq-msg-success = flash[:success] - .row + div .col-md-4 - h2 Address books + h2.govuk-heading-m Address books nav ul li= link_to 'Action officers', action_officers_path @@ -14,7 +14,7 @@ li= link_to 'Press officers', press_officers_path li= link_to 'Early bird list', early_bird_members_path .col-md-4 - h2 Tasks + h2.govuk-heading-m Tasks nav ul li= link_to 'Create a transferred PQ', transferred_new_path @@ -25,7 +25,7 @@ li = link_to 'Archive PQ Session', new_archive_path if current_user.admin? .col-md-4 - h2 User admin + h2.govuk-heading-m User admin nav ul li= link_to 'Users', users_path diff --git a/app/views/archives/new.html.slim b/app/views/archives/new.html.slim index da42f84f3..f164519a6 100644 --- a/app/views/archives/new.html.slim +++ b/app/views/archives/new.html.slim @@ -2,9 +2,9 @@ .pq-msg-success = flash[:success] -h1 Archive PQ Session +h1.govuk-heading-l Archive PQ Session -h2 There are #{@count} unarchived questions -h3 Prefixes previously used, or reserved: #{@all_prefixes} +h2.govuk-heading-m There are #{@count} unarchived questions +h3.govuk-heading-s Prefixes previously used, or reserved: #{@all_prefixes} = render 'form' unless @count.zero? diff --git a/app/views/assignment/confirmation.html.slim b/app/views/assignment/confirmation.html.slim index b618d00db..62f39c84e 100644 --- a/app/views/assignment/confirmation.html.slim +++ b/app/views/assignment/confirmation.html.slim @@ -1,23 +1,23 @@ = render partial: 'shared/flash_messages' - if @assignment.rejected? - p.space-before-20 + p.govuk-body.space-before-20 strong Thank you for your response - p.space-before + p.govuk-body.space-before | You rejected PQ strong= " #{@question.uin} " = raw @assignment.updated_at.to_formatted_s(:wordy) = ' stating: ' - p.space-before + p.govuk-body.space-before = "#{@assignment.reason_option} - #{@assignment.reason}" - p.space-before Your message has been sent to the PQ team. You don't need to take any further action. + p.govuk-body.space-before Your message has been sent to the PQ team. You don't need to take any further action. - elsif @question.action_officers_pqs.accepted.action_officer_id == @assignment.action_officer_id - p.space-before-20 + p.govuk-body.space-before-20 strong Thank you for your response - p.space-before + p.govuk-body.space-before | You accepted PQ strong= " #{@question.uin} " = raw @question.action_officers_pqs.accepted.updated_at.to_formatted_s(:wordy) - p.space-before You will receive a further email which explains how and when to return your draft response, and provides a link to PQ guidance on the intranet. + p.govuk-body.space-before You will receive a further email which explains how and when to return your draft response, and provides a link to PQ guidance on the intranet. - else p strong This PQ has already been accepted @@ -25,6 +25,6 @@ = ' accepted PQ' strong= " #{@question.uin} " = raw @question.action_officers_pqs.accepted.updated_at.to_formatted_s(:wordy) -p.space-before +p.govuk-body.space-before | If you have any queries please a href="mailto:#{Settings.mail_reply_to}" contact the PQ team diff --git a/app/views/assignment/show.html.slim b/app/views/assignment/show.html.slim index 126862665..dfdd0b5e7 100644 --- a/app/views/assignment/show.html.slim +++ b/app/views/assignment/show.html.slim @@ -1,19 +1,19 @@ #assignment - h1 PQ Assignment + h1.govuk-heading-l PQ Assignment = render partial: 'shared/flash_messages' - .row.space-before-20 - p.strong = @ao.name - p.space-before + div.space-before-20 + p.govuk-body.strong = @ao.name + p.govuk-body.space-before | You have been allocated the PQ  strong= @question.uin blockquote = @question.question - p Question asked by #{@question.member_name} (#{@question.house_name}). - p To be answered on behalf of #{@question.minister.name}. + p.govuk-body Question asked by #{@question.member_name} (#{@question.house_name}). + p.govuk-body To be answered on behalf of #{@question.minister.name}. - p.strong.space-before-20 Please accept or reject this allocation as soon as possible to avoid the hold up for the allocation of this PQ. + p.govuk-body.strong.space-before-20 Please accept or reject this allocation as soon as possible to avoid the hold up for the allocation of this PQ. - if @question.action_officers_pqs.size > 1 - p.space-before This question has also been allocated to the following action officers, but only one person may accept responsibility. + p.govuk-body.space-before This question has also been allocated to the following action officers, but only one person may accept responsibility. ul.question-allocation-list data-pqid=@question.id - @question.action_officers_pqs.each do |ao_pq| - if !ao_pq.action_officer.nil? && ao_pq.action_officer_id!=@ao.id @@ -58,6 +58,6 @@ | If you have any queries please a href="mailto:#{Settings.mail_reply_to}" contact the PQ Team - else - .row + div .col-md-10 - p.strong The question has been accepted and an email has been sent to the accepting officer with drafting instructions, please contact Parliamentary branch if you have any questions + p.govuk-body.strong The question has been accepted and an email has been sent to the accepting officer with drafting instructions, please contact Parliamentary branch if you have any questions diff --git a/app/views/dashboard/_dashboard_filter.html.slim b/app/views/dashboard/_dashboard_filter.html.slim index 9cbfb5321..debaff7b0 100644 --- a/app/views/dashboard/_dashboard_filter.html.slim +++ b/app/views/dashboard/_dashboard_filter.html.slim @@ -1,20 +1,12 @@ -- if @dashboard_state == "New" - h1 Parliamentary questions - New -- if @dashboard_state == "In progress" - h1 Parliamentary questions - In progress -- if @dashboard_state == "Backlog" - h1 Parliamentary questions - Backlog - -#sidebar.col-md-3.col-md-push-9 - +#sidebar.govuk-grid-column-one-quarter #quick-links - h2 Quick actions + h2.govuk-heading-m Quick actions = render partial: "dashboard/quick_action_draft_reminders", locals: {total_pqs: @total_pqs} = render partial: "dashboard/quick_action_edit_dates", locals: {total_pqs: @total_pqs} = render partial: "dashboard/quick_action_export", locals: {total_pqs: @total_pqs, pqs_comma_separated: @pqs_comma_separated} #filters - h2 Filter + h2.govuk-heading-m Filter - if @dashboard_state == "In progress" || @dashboard_state == "Backlog" #date-for-answer.filter-box diff --git a/app/views/dashboard/_question_data.html.slim b/app/views/dashboard/_question_data.html.slim index 5f441432e..c78dd6ef0 100644 --- a/app/views/dashboard/_question_data.html.slim +++ b/app/views/dashboard/_question_data.html.slim @@ -1,6 +1,6 @@ -.pq-header.row - .col-md-5 - h2 +.pq-header.govuk-grid-row + .govuk-grid-column-one-half + h2.govuk-heading-m = link_to(question.uin, { controller: 'pqs', action: 'show', id: question.uin}, :class=>"question-uin", aria: { label: "Click to view and edit question #{question.uin}, question status #{question.state.humanize}, internal deadline #{question.internal_deadline || 'not set'}" }) span.question-type = question.question_type_header @@ -8,16 +8,18 @@ input id="#{question.uin}" class="pq-select" type="checkbox" name="uin-#{question.id}" value="#{question.id}" span Select #{question.uin} - .col-md-4 + .govuk-grid-column-one-quarter - if question.proposed? div.question-proposed Action Officer Proposed - - if !question.date_for_answer.nil? and !question.is_new? + - elsif !question.date_for_answer.nil? and !question.is_new? | Date for answer  span.answer-date = question.date_for_answer.to_formatted_s(:date) = render partial: 'shared/answer_time', locals: {date_for_answer: question.date_for_answer, is_closed: question.closed?} + - else + span   - .col-md-3 + .govuk-grid-column-one-quarter span class=("flag #{state_classname question.state}") = state_label question.state p.pq-question diff --git a/app/views/dashboard/_question_data_commissioned.html.slim b/app/views/dashboard/_question_data_commissioned.html.slim index dc724de29..9ba6d6e9e 100644 --- a/app/views/dashboard/_question_data_commissioned.html.slim +++ b/app/views/dashboard/_question_data_commissioned.html.slim @@ -1,21 +1,21 @@ - if question.internal_deadline - h3 Internal deadline: - span.deadline-date.text + h3.govuk-heading-s Internal deadline: + p.govuk-body.deadline-date.text = question.internal_deadline = render partial: 'shared/deadline_time', locals: {internal_deadline: question.internal_deadline, is_closed: question.closed?, draft_reply: question.draft_answer_received} - h3 Replying minister: - span.replying-minister + h3.govuk-heading-s Replying minister: + p.govuk-body.replying-minister = question.minister.name - if question.policy_minister - h3 Policy minister: - span.policy-minister + h3.govuk-heading-s Policy minister: + p.govuk-body.policy-minister = question.policy_minister.name - if question.action_officer_accepted.nil? - h3 Action officer(s) + h3.govuk-heading-s Action officer(s) - question.action_officers_pqs.not_rejected.each_with_index do | ao_pq, ind | - if ind > 0 = ', ' = link_to ao_pq.action_officer.name, action_officer_path(ao_pq.action_officer) - question.action_officers_pqs.each do | ao_pq | - p.space-before + p.govuk-body.space-before = render partial: 'shared/ao_reminder_link', locals: {ao_pq: ao_pq, question: question} diff --git a/app/views/dashboard/_question_data_uncommissioned.html.slim b/app/views/dashboard/_question_data_uncommissioned.html.slim index d7c7cf6ae..632004ee1 100644 --- a/app/views/dashboard/_question_data_uncommissioned.html.slim +++ b/app/views/dashboard/_question_data_uncommissioned.html.slim @@ -1,5 +1,4 @@ -.pq-columns.row - +.pq-columns.govuk-grid-row = form_for CommissionForm.new(minister_id: question.minister_id, policy_minister_id: question.policy_minister_id), remote: true, authenticity_token: true, @@ -7,17 +6,17 @@ url: commission_path do |f| /! start of 'sub column 1' - .col-md-7 + .govuk-grid-column-one-half = render partial: 'shared/minister_selection', locals: {question: question, form: f} = render partial: 'shared/action_officer_selection', locals: {action_officers: action_officers, question: question, form: f, reassign: false} .form-group = f.hidden_field(:pq_id , :value => question.id) /! start of sub column 2 - .col-md-5 + .govuk-grid-column-one-half - if !question.house_name.nil? label.form-label= question.house_name - p= question.member_name + p.govuk-body= question.member_name label.form-label for="pq_date_for_answer-#{question.id}" Date for answer .datepicker.form-group @@ -30,5 +29,5 @@ input.deadline-date.form-control.required-for-commission id="pq_internal_deadline-#{question.id}" name="commission_form[internal_deadline]" type="text" value=(question.internal_deadline.to_s) span.fa.fa-calendar title="select a date" = render partial: 'shared/deadline_time', locals: {internal_deadline: question.internal_deadline, is_closed: question.closed?, draft_reply: question.draft_answer_received} - .form-group + .govuk-grid-column-full.form-group = f.submit 'Commission', :class => 'button commission-button' diff --git a/app/views/dashboard/_questions_list.html.slim b/app/views/dashboard/_questions_list.html.slim index 186cf5c29..4a2e7475c 100644 --- a/app/views/dashboard/_questions_list.html.slim +++ b/app/views/dashboard/_questions_list.html.slim @@ -1,4 +1,4 @@ -.col-md-9.col-md-pull-3 +.govuk-grid-column-three-quarters = render partial: "shared/flash_messages", flash: flash #count aria-live='polite' strong #{@questions.length} @@ -14,4 +14,4 @@ - questions.each do |question| li id="pq-frame-#{question.id}" data-pquin=question.uin class="question" = render partial: 'dashboard/question_data', locals: {question: question, action_officers: action_officers} - #pages.row + #pages diff --git a/app/views/dashboard/index.html.slim b/app/views/dashboard/index.html.slim index 9b60af2da..54006b929 100644 --- a/app/views/dashboard/index.html.slim +++ b/app/views/dashboard/index.html.slim @@ -1,3 +1,9 @@ -#dashboard - = render partial: "dashboard_filter" +#dashboard.govuk-grid-row.content-inner + - if @dashboard_state == "New" + h1.govuk-heading-l Parliamentary questions - New + - if @dashboard_state == "In progress" + h1.govuk-heading-l Parliamentary questions - In progress + - if @dashboard_state == "Backlog" + h1.govuk-heading-l Parliamentary questions - Backlog = render partial: "dashboard/questions_list", locals: {questions: @questions, action_officers: @action_officers } + = render partial: "dashboard_filter" diff --git a/app/views/deputy_directors/_form.html.slim b/app/views/deputy_directors/_form.html.slim index b26af04dc..14b10a48d 100644 --- a/app/views/deputy_directors/_form.html.slim +++ b/app/views/deputy_directors/_form.html.slim @@ -12,7 +12,7 @@ label.form-label for="deputy_director_division_id" Division (required) = f.collection_select(:division_id, @divisions, :id, :name, :include_blank => "Please select") .form-group - p Status + p.govuk-body Status label.block-label for="deputy_director_deleted" = f.check_box :deleted | Inactive diff --git a/app/views/deputy_directors/edit.html.slim b/app/views/deputy_directors/edit.html.slim index 6db8aae5a..33bb4eca7 100644 --- a/app/views/deputy_directors/edit.html.slim +++ b/app/views/deputy_directors/edit.html.slim @@ -1,3 +1,3 @@ -h1 Edit deputy director +h1.govuk-heading-l Edit deputy director = render 'form' = link_to 'Return to deputy director list', deputy_directors_path, {class: 'admin-link'} diff --git a/app/views/deputy_directors/index.html.slim b/app/views/deputy_directors/index.html.slim index e4c2db85f..b0054b50e 100644 --- a/app/views/deputy_directors/index.html.slim +++ b/app/views/deputy_directors/index.html.slim @@ -1,6 +1,6 @@ -h1 Deputy directors +h1.govuk-heading-l Deputy directors #admin-deputy-list - .row + div ul#admin-button-bar li= link_to ('Add deputy director'), new_deputy_director_path, {class: 'button-secondary'} table.table aria-label="deputy directors" diff --git a/app/views/deputy_directors/new.html.slim b/app/views/deputy_directors/new.html.slim index 6e40ca837..da60943cf 100644 --- a/app/views/deputy_directors/new.html.slim +++ b/app/views/deputy_directors/new.html.slim @@ -1,3 +1,3 @@ -h1 Add deputy director +h1.govuk-heading-l Add deputy director = render 'form' = link_to 'Return to deputy director list', deputy_directors_path, {class: 'admin-link'} diff --git a/app/views/deputy_directors/show.html.slim b/app/views/deputy_directors/show.html.slim index 3f9593833..4cb69fefe 100644 --- a/app/views/deputy_directors/show.html.slim +++ b/app/views/deputy_directors/show.html.slim @@ -1,16 +1,16 @@ #admin-deputy-details - h1 Deputy director details - = render partial: "shared/flash_messages", flash: flash - h2 Name - = @deputy_director.name - h2 Email - = @deputy_director.email - h2 Division - = @deputy_director.division.name - h2 Status - = render partial: 'shared/status', object: @deputy_director - p + h1.govuk-heading-l Deputy director details + p.govuk-body= render partial: "shared/flash_messages", flash: flash + h2.govuk-heading-m Name + p.govuk-body= @deputy_director.name + h2.govuk-heading-m Email + p.govuk-body= @deputy_director.email + h2.govuk-heading-m Division + p.govuk-body= @deputy_director.division.name + h2.govuk-heading-m Status + p.govuk-body= render partial: 'shared/status', object: @deputy_director + p.govuk-body = link_to 'Edit', edit_deputy_director_path(@deputy_director), {class: 'admin-link'} - span.visually-hidden + span.govuk-visually-hidden = ' | ' = link_to 'Return to deputy director list', deputy_directors_path, {class: 'admin-link'} diff --git a/app/views/devise/confirmations/new.html.slim b/app/views/devise/confirmations/new.html.slim index 7153affb9..9af06f9de 100644 --- a/app/views/devise/confirmations/new.html.slim +++ b/app/views/devise/confirmations/new.html.slim @@ -1,4 +1,4 @@ -h1 Resend confirmation instructions +h1.govuk-heading-l.govuk-main-wrapper--auto-spacing Resend confirmation instructions = form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| = devise_error_messages! div diff --git a/app/views/devise/passwords/edit.html.slim b/app/views/devise/passwords/edit.html.slim index c337da176..e04cc2ae8 100644 --- a/app/views/devise/passwords/edit.html.slim +++ b/app/views/devise/passwords/edit.html.slim @@ -1,4 +1,4 @@ -h1 Change your password +h1.govuk-heading-l.govuk-main-wrapper--auto-spacing Change your password = form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| = devise_error_messages! = f.hidden_field :reset_password_token diff --git a/app/views/devise/passwords/new.html.slim b/app/views/devise/passwords/new.html.slim index 6dbc793b4..c2c908e1c 100644 --- a/app/views/devise/passwords/new.html.slim +++ b/app/views/devise/passwords/new.html.slim @@ -1,4 +1,4 @@ -h1.heading-large Forgot your password? +h1.govuk-heading-l.govuk-main-wrapper--auto-spacing Forgot your password? = form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| = devise_error_messages! fieldset diff --git a/app/views/devise/registrations/edit.html.slim b/app/views/devise/registrations/edit.html.slim index 28448801d..12733234d 100644 --- a/app/views/devise/registrations/edit.html.slim +++ b/app/views/devise/registrations/edit.html.slim @@ -1,4 +1,4 @@ -h1 +h1.govuk-heading-l.govuk-main-wrapper--auto-spacing | Edit #{resource_name.to_s.humanize} = form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| = devise_error_messages! @@ -11,7 +11,7 @@ h1 | Currently waiting confirmation for: #{resource.unconfirmed_email} div = f.label :password - p leave blank if you don't want to change it + p.govuk-body leave blank if you don't want to change it br/ = f.password_field :password, autocomplete: "off" div @@ -20,11 +20,11 @@ h1 = f.password_field :password_confirmation, autocomplete: "off" div = f.label :current_password - p we need your current password to confirm your changes + p.govuk-body we need your current password to confirm your changes br/ = f.password_field :current_password, autocomplete: "off" div= f.submit "Update" -h2 Cancel my account +h2.govuk-heading-m Cancel my account p | Unhappy? #{button_to "Cancel my account", registration_path(resource_name), data: { confirm: "Are you sure?" }, method: :delete} = link_to "Back", :back diff --git a/app/views/devise/registrations/new.html.slim b/app/views/devise/registrations/new.html.slim index 6df4a6f08..2ac05cf2a 100644 --- a/app/views/devise/registrations/new.html.slim +++ b/app/views/devise/registrations/new.html.slim @@ -1,4 +1,4 @@ -h1 Sign up +h1.govuk-heading-l.govuk-main-wrapper--auto-spacing Sign up = form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| = devise_error_messages! div diff --git a/app/views/devise/sessions/new.html.slim b/app/views/devise/sessions/new.html.slim index 95ce4305a..0791477b3 100644 --- a/app/views/devise/sessions/new.html.slim +++ b/app/views/devise/sessions/new.html.slim @@ -1,7 +1,7 @@ - content_for :page_title do = 'Sign in - ' -h1.heading-large Sign in +h1.govuk-heading-l.govuk-main-wrapper--auto-spacing Sign in = form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| = render partial: "shared/flash_messages", flash: flash = devise_error_messages! diff --git a/app/views/devise/shared/_links.slim b/app/views/devise/shared/_links.slim index ccc6aa102..80220e22f 100644 --- a/app/views/devise/shared/_links.slim +++ b/app/views/devise/shared/_links.slim @@ -1,15 +1,15 @@ br br - if controller_name != 'sessions' - p= link_to "Sign in", new_session_path(resource_name) + p.govuk-body= link_to "Sign in", new_session_path(resource_name) - if devise_mapping.registerable? && controller_name != 'registrations' - p= link_to "Sign up", new_registration_path(resource_name) + p.govuk-body= link_to "Sign up", new_registration_path(resource_name) - if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations' - p= link_to "Forgot your password?", new_password_path(resource_name) + p.govuk-body= link_to "Forgot your password?", new_password_path(resource_name) - if devise_mapping.confirmable? && controller_name != 'confirmations' - p= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) + p.govuk-body= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) - if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' - p= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) + p.govuk-body= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) - if devise_mapping.omniauthable? - resource_class.omniauth_providers.each do |provider| - p= link_to "Sign in with # provider.to_s.titleize ", omniauth_authorize_path(resource_name, provider) + p.govuk-body= link_to "Sign in with # provider.to_s.titleize ", omniauth_authorize_path(resource_name, provider) diff --git a/app/views/devise/unlocks/new.html.slim b/app/views/devise/unlocks/new.html.slim index 1f15055ec..a7c2fa86d 100644 --- a/app/views/devise/unlocks/new.html.slim +++ b/app/views/devise/unlocks/new.html.slim @@ -1,4 +1,4 @@ -h1.heading-large Resend unlock instructions +h1.govuk-heading-l.govuk-main-wrapper--auto-spacing Resend unlock instructions = form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f| = devise_error_messages! .form-group diff --git a/app/views/directorates/_form.html.slim b/app/views/directorates/_form.html.slim index 10d8b4e81..71f952c4e 100644 --- a/app/views/directorates/_form.html.slim +++ b/app/views/directorates/_form.html.slim @@ -6,7 +6,7 @@ label.form-label for="directorate_name" Name (required) = f.text_field :name, {class: 'form-control'} .form-group - p Status + p.govuk-body Status label.block-label for="directorate_deleted" = f.check_box :deleted | Inactive diff --git a/app/views/directorates/edit.html.slim b/app/views/directorates/edit.html.slim index ce49cfbd2..f696cd830 100644 --- a/app/views/directorates/edit.html.slim +++ b/app/views/directorates/edit.html.slim @@ -1,3 +1,3 @@ -h1 Edit directorate +h1.govuk-heading-l Edit directorate = render 'form' = link_to 'Return to directorate list', directorates_path, {class: 'admin-link'} diff --git a/app/views/directorates/index.html.slim b/app/views/directorates/index.html.slim index e65c8e698..8710c4c2b 100644 --- a/app/views/directorates/index.html.slim +++ b/app/views/directorates/index.html.slim @@ -1,6 +1,6 @@ -h1 Directorates +h1.govuk-heading-l Directorates #admin-directorate-list - .row + div ul#admin-button-bar li= link_to 'Add directorate', new_directorate_path, {class: 'button-secondary'} table.table aria-label="directorates" diff --git a/app/views/directorates/new.html.slim b/app/views/directorates/new.html.slim index 372748895..7d8b31c47 100644 --- a/app/views/directorates/new.html.slim +++ b/app/views/directorates/new.html.slim @@ -1,3 +1,3 @@ -h1 New directorate +h1.govuk-heading-l New directorate = render 'form' = link_to 'Return to directorate list', directorates_path, {class: 'admin-link'} diff --git a/app/views/directorates/show.html.slim b/app/views/directorates/show.html.slim index c602a721e..304f6f08d 100644 --- a/app/views/directorates/show.html.slim +++ b/app/views/directorates/show.html.slim @@ -1,12 +1,12 @@ #admin-directorate-details - h1 Directorate details + h1.govuk-heading-l Directorate details = render partial: "shared/flash_messages", flash: flash - h2 Name - p= @directorate.name - h2 Status + h2.govuk-heading-m Name + p.govuk-body= @directorate.name + h2.govuk-heading-m Status = render partial: 'shared/status', object: @directorate - p + p.govuk-body = link_to 'Edit', edit_directorate_path(@directorate), {class: 'admin-link'} - span.visually-hidden + span.govuk-visually-hidden = ' | ' = link_to 'Return to directorate list', directorates_path, {class: 'admin-link'} diff --git a/app/views/divisions/_form.html.slim b/app/views/divisions/_form.html.slim index b0ec83b6a..0e13d143b 100644 --- a/app/views/divisions/_form.html.slim +++ b/app/views/divisions/_form.html.slim @@ -9,7 +9,7 @@ label.form-label for="division_directorate_id" Directorate (required) = f.collection_select(:directorate_id, @directorates, :id, :name, :include_blank => "Please select") .form-group - p Status + p.govuk-body Status label.block-label for="division_deleted" = f.check_box :deleted | Inactive diff --git a/app/views/divisions/edit.html.slim b/app/views/divisions/edit.html.slim index 1818b8aa3..033fd91ee 100644 --- a/app/views/divisions/edit.html.slim +++ b/app/views/divisions/edit.html.slim @@ -1,3 +1,3 @@ -h1 Edit division +h1.govuk-heading-l Edit division = render 'form' = link_to 'Return to Divisions list', divisions_path, {class: 'admin-link'} diff --git a/app/views/divisions/index.html.slim b/app/views/divisions/index.html.slim index ac26af987..0e45c8895 100644 --- a/app/views/divisions/index.html.slim +++ b/app/views/divisions/index.html.slim @@ -1,6 +1,6 @@ -h1 Divisions +h1.govuk-heading-l Divisions #admin-division-list - .row + div ul#admin-button-bar li= link_to ('Add division'), new_division_path, {class: 'button-secondary'} table.table aria-label="divisions" diff --git a/app/views/divisions/new.html.slim b/app/views/divisions/new.html.slim index 0721a1e58..979c867fd 100644 --- a/app/views/divisions/new.html.slim +++ b/app/views/divisions/new.html.slim @@ -1,3 +1,3 @@ -h1 New Division +h1.govuk-heading-l New Division = render 'form' = link_to 'Return to divisions', divisions_path, {class: 'admin-link'} diff --git a/app/views/divisions/show.html.slim b/app/views/divisions/show.html.slim index ea0492160..d95a5c846 100644 --- a/app/views/divisions/show.html.slim +++ b/app/views/divisions/show.html.slim @@ -1,14 +1,14 @@ #admin-division-details - h1 Division details + h1.govuk-heading-l Division details = render partial: "shared/flash_messages", flash: flash - h2 Name - p= @division.name - h2 Directorate - p= @division.directorate.name - h2 Status + h2.govuk-heading-m Name + p.govuk-body= @division.name + h2.govuk-heading-m Directorate + p.govuk-body= @division.directorate.name + h2.govuk-heading-m Status = render partial: 'shared/status', object: @division - p + p.govuk-body = link_to 'Edit', edit_division_path(@division), {class: 'admin-link'} - span.visually-hidden + span.govuk-visually-hidden = ' | ' = link_to 'Return to divisions list', divisions_path, {class: 'admin-link'} diff --git a/app/views/early_bird_dashboard/index.html.slim b/app/views/early_bird_dashboard/index.html.slim index 5298b38bc..f4869b531 100644 --- a/app/views/early_bird_dashboard/index.html.slim +++ b/app/views/early_bird_dashboard/index.html.slim @@ -1,12 +1,12 @@ -#preview +#preview.content-inner #main - h1 New parliamentary questions to be allocated today (#{@now}) + h1.govuk-heading-l New parliamentary questions to be allocated today (#{@now}) = render partial: 'shared/flash_messages' #sidebar.col-md-3.col-md-push-9 #filters.js-stick-at-top-when-scrolling - h2 Filter + h2.govuk-heading-m Filter #question-type.filter-box fieldset legend @@ -44,7 +44,7 @@ ul.questions-list - @questions.each do |question| li.question - h2 + h2.govuk-heading-m = link_to(question.uin, {controller: 'pqs', action: 'show', id: question.uin}, :class => "question-uin") - if question.question_type == 'NamedDay' span.question-type | Named Day @@ -54,24 +54,24 @@ span.question-type | Ordinary span.pq-question #{question.question} - unless question.member_name.empty? - h3 Asked by: + h3.govuk-heading-s Asked by: span.asked-by #{question.member_name} br - h3 Constituency: + h3.govuk-heading-s Constituency: - if question.member_constituency.nil? | N/A br - else span.constituency #{question.member_constituency} - if question.proposed? - h3 Deputy Director(s) proposed to answer: + h3.govuk-heading-s Deputy Director(s) proposed to answer: - if question.commissioned? - h3 Question assigned to Deputy Director(s): + h3.govuk-heading-s Question assigned to Deputy Director(s): - p.action_officers-list + p.govuk-body.action_officers-list = question.action_officers.not_rejected.pluck(:name).join(', ') - p.propose-links + p.govuk-body.propose-links = link_to('Email PQ team about this question', "mailto:#{Settings.mail_reply_to}?subject=Question #{question.uin}") - unless question.commissioned? = ' | ' diff --git a/app/views/early_bird_members/_form.html.slim b/app/views/early_bird_members/_form.html.slim index 16ae309f9..1175d78ad 100644 --- a/app/views/early_bird_members/_form.html.slim +++ b/app/views/early_bird_members/_form.html.slim @@ -9,7 +9,7 @@ .form-group label.form-label for="early_bird_member_email" Email (required) = f.email_field :email , {class: 'form-control'} - p Status + p.govuk-body Status .form-group label.block-label for="early_bird_member_deleted" = f.check_box :deleted diff --git a/app/views/early_bird_members/edit.html.slim b/app/views/early_bird_members/edit.html.slim index 998ad0165..6b1e9ed63 100644 --- a/app/views/early_bird_members/edit.html.slim +++ b/app/views/early_bird_members/edit.html.slim @@ -1,3 +1,3 @@ -h1 Edit early bird member +h1.govuk-heading-l Edit early bird member = render 'form' = link_to 'Return to early bird member list', early_bird_members_path, {class: 'admin-link'} diff --git a/app/views/early_bird_members/index.html.slim b/app/views/early_bird_members/index.html.slim index dd71d9acf..ae33837bd 100644 --- a/app/views/early_bird_members/index.html.slim +++ b/app/views/early_bird_members/index.html.slim @@ -1,9 +1,9 @@ -h1 Early bird members +h1.govuk-heading-l Early bird members = render partial: "shared/flash_messages", flash: flash #admin-wm-list - .row + div ul#admin-button-bar - li= link_to ('Send early bird info'), {controller: 'early_bird_send_emails', action: 'send_emails'}, {class: 'button', :onclick=> "ga('send', 'event', 'settings', 'earlybird', 'send early bird info');" } + li= link_to ('Send early bird info'), {controller: 'early_bird_send_emails', action: 'send_emails'}, {class: 'button' } li= link_to ('Add early bird member'), new_early_bird_member_path, {class: 'button-secondary'} li= link_to ('Early bird preview'), {controller: 'early_bird_dashboard', action: 'preview'}, {class: 'button-secondary'} table.table aria-label="early bird members" diff --git a/app/views/early_bird_members/new.html.slim b/app/views/early_bird_members/new.html.slim index 39b20bb3e..0aff9f551 100644 --- a/app/views/early_bird_members/new.html.slim +++ b/app/views/early_bird_members/new.html.slim @@ -1,3 +1,3 @@ -h1 Add early bird member +h1.govuk-heading-l Add early bird member = render 'form' = link_to 'Return to early bird member list', early_bird_members_path, {class: 'admin-link'} diff --git a/app/views/early_bird_members/show.html.slim b/app/views/early_bird_members/show.html.slim index 5059b0233..849ea43d9 100644 --- a/app/views/early_bird_members/show.html.slim +++ b/app/views/early_bird_members/show.html.slim @@ -1,14 +1,14 @@ -h1 Early bird member details +h1.govuk-heading-l Early bird member details #admin-wl-details = render partial: "shared/flash_messages", flash: flash - h2 Name - p= @early_bird_member.name - h2 Email - p= @early_bird_member.email - h2 Status + h2.govuk-heading-m Name + p.govuk-body= @early_bird_member.name + h2.govuk-heading-m Email + p.govuk-body= @early_bird_member.email + h2.govuk-heading-m Status = render partial: 'shared/status', object: @early_bird_member - p + p.govuk-body = link_to 'Edit', edit_early_bird_member_path(@early_bird_member), {class: 'admin-link'} - span.visually-hidden + span.govuk-visually-hidden = ' | ' - = link_to 'Return to early bird member list', early_bird_members_path, {class: 'admin-link'} \ No newline at end of file + = link_to 'Return to early bird member list', early_bird_members_path, {class: 'admin-link'} diff --git a/app/views/early_bird_organiser/new.html.slim b/app/views/early_bird_organiser/new.html.slim index 663529eca..5f1b4ae15 100644 --- a/app/views/early_bird_organiser/new.html.slim +++ b/app/views/early_bird_organiser/new.html.slim @@ -1,5 +1,5 @@ - if flash[:message] .pq-msg-notice = flash[:message] -h1 Suspend early bird email +h1.govuk-heading-l Suspend early bird email = render 'form' diff --git a/app/views/errors/internal_error.html.slim b/app/views/errors/internal_error.html.slim new file mode 100644 index 000000000..22b8c1d57 --- /dev/null +++ b/app/views/errors/internal_error.html.slim @@ -0,0 +1,8 @@ +.govuk-width-container + main#main-content.govuk-main-wrapper[role="main"] + h1.govuk-heading-xl.govuk-main-wrapper--auto-spacing + | Sorry, there is a problem with the service + p.govuk-body + = "Please contact " + = link_to("pqsupport@digital.justice.gov.uk", "mailto:pqsupport@digital.justice.gov.uk") + = " with the details to report this issue." diff --git a/app/views/errors/not_found.html.slim b/app/views/errors/not_found.html.slim new file mode 100644 index 000000000..d287b2180 --- /dev/null +++ b/app/views/errors/not_found.html.slim @@ -0,0 +1,12 @@ +.govuk-width-container + main#main-content.govuk-main-wrapper[role="main"] + h1.govuk-heading-xl.govuk-main-wrapper--auto-spacing + | This page cannot be found + p.govuk-body + | If you typed the web address, check it is correct. + p.govuk-body + | If you pasted the web address, check you copied the entire address. + p.govuk-body + = "If the web address is correct or you selected a link or button, please contact " + = link_to("pqsupport@digital.justice.gov.uk", "mailto:pqsupport@digital.justice.gov.uk") + = " with the details to report this issue." diff --git a/app/views/export/index.html.slim b/app/views/export/index.html.slim index 23c687d3d..713431f40 100644 --- a/app/views/export/index.html.slim +++ b/app/views/export/index.html.slim @@ -1,5 +1,5 @@ #csv-export - h1 + h1.govuk-heading-l ' Export PQs to abbr title="Comma Separated Values" CSV = render partial: 'shared/flash_messages' @@ -17,4 +17,4 @@ input#date_to.form-control name="date_to" type="text" value=Date.today.to_formatted_s(:date) / span.fa.fa-calendar title="select a date" .form-group - = submit_tag 'Download CSV' , class: 'button' , :onclick=> "ga('send', 'event', 'tasks', 'download', 'pq csv');" + = submit_tag 'Download CSV' , class: 'button' diff --git a/app/views/layouts/_banner.html.slim b/app/views/layouts/_banner.html.slim deleted file mode 100644 index 2bd0f5257..000000000 --- a/app/views/layouts/_banner.html.slim +++ /dev/null @@ -1,5 +0,0 @@ -.alert-banner - svg.alert-banner__icon fill="currentColor" role="presentation" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25" height="40" width="40" - path d="M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8 -C13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z" - p.alert-banner__info This service will be down for essential maintenance between 12pm and 2pm on Monday 15th February. You will not have access during this period. Please contact pqsupport@digital.justice.gov.uk if you have any queries. Apologies for the inconvenience. diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index bf6234e31..c69b7ad10 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -1,58 +1,21 @@ - content_for :page_title do = @page_title -- content_for :head do - - = stylesheet_link_tag('font-awesome.css', media: 'all') - = stylesheet_link_tag('select2.css', media: 'all') - = stylesheet_link_tag('select2-bootstrap.css', media: 'all') - = stylesheet_link_tag('vendor/jquery.datetimepicker.css', media: 'all') - = stylesheet_link_tag('vendor/pq-select2.css', media: 'all') - = stylesheet_link_tag('/assets/govuk-frontend.min.css', media: 'all') - = stylesheet_link_tag('application.css', media: 'all') - - javascript: - (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-5RRTCM3'); - -- content_for :body_start do - - content_for :body_start do - noscript - iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5RRTCM3" height="0" width="0" style="display:none;visibility:hidden" - - content_for :content do - main#contentOuter(role="main") - .phase-banner - / p.phase-tag = config_item(:phase).upcase )(this line is kept incase the moj elements change and this line needs to be reinstated!) - Help make this service better - your  - - if ! user_signed_in? - feedback  - - else - feedback  - | will help us to improve it. - - - - if HostEnv.is_staging? - .staging_banner - | This is not the live Parliamentary Questions Tracker environment - - = render partial: "shared/navigation" - .container - #content.content-inner - = yield - -- content_for :footer_support_links do - h4.govuk-visually-hidden - | Support links - ul.govuk-footer__inline-list - li.govuk-footer__inline-list-item - = link_to "Accessibility", "/accessibility", class: "govuk-footer__link", aria: { label: "click to visit accessibility statement"} - li.govuk-footer__inline-list-item - = link_to "Contact Parliamentary Branch", "mailto:pqs@justice.gov.uk?Subject=PQ%20Tracker", class: "govuk-footer__link", aria: { label: "click to email parliamentary branch"} - -- content_for :body_end - - - = javascript_include_tag('application.js') - + .phase-banner + / p.phase-tag = config_item(:phase).upcase )(this line is kept incase the moj elements change and this line needs to be reinstated!) + span Help make this service better - your  + - if ! user_signed_in? + feedback  + - else + feedback  + | will help us to improve it. + + - if HostEnv.is_staging? + .staging_banner + | This is not the live Parliamentary Questions Tracker environment + + = render partial: "shared/navigation" + div.container= yield = render template: "layouts/govuk_template" diff --git a/app/views/layouts/govuk_template.html.erb b/app/views/layouts/govuk_template.html.erb index 65f2d9fb8..8b52a28e5 100644 --- a/app/views/layouts/govuk_template.html.erb +++ b/app/views/layouts/govuk_template.html.erb @@ -1,131 +1,55 @@ -<%= yield :top_of_page %> - -"> + <%= content_for?(:page_title) ? yield(:page_title) : "GOV.UK - The best place to find government services and information" %> - <%= stylesheet_link_tag "govuk-template.css", integrity: true, crossorigin: "anonymous" %> - - - - <%= stylesheet_link_tag "govuk-template-print.css", media: "print", integrity: true, crossorigin: "anonymous" %> + <%= javascript_include_tag "jquery/dist/jquery", "select2/dist/js/select2", "moment/moment", defer: false %> - <%= stylesheet_link_tag "fonts.css", media: "all", integrity: true, crossorigin: "anonymous" %> - + <%= tag :meta, name: 'viewport', content: 'width=device-width, initial-scale=1' %> + <%= tag :meta, property: 'og:image', content: asset_path('govuk-frontend/dist/govuk/assets/images/govuk-opengraph-image.png') %> + <%= tag :meta, name: 'theme-color', content: '#0b0c0c' %> + <%= favicon_link_tag asset_path('govuk-frontend/dist/govuk/assets/images/favicon.ico'), sizes: '48x48' %> + <%= favicon_link_tag asset_path('govuk-frontend/dist/govuk/assets/images/favicon.svg'), type: 'image/svg+xml', sizes: 'any' %> + <%= favicon_link_tag asset_path('govuk-frontend/dist/govuk/assets/images/govuk-icon-mask.svg'), rel: 'mask-icon', color: '#0b0c0c' %> + <%= favicon_link_tag asset_path('govuk-frontend/dist/govuk/assets/images/govuk-icon-180.png'), rel: 'apple-touch-icon', type: 'image/png', size: '180x180' %> - - - - + <%= stylesheet_link_tag "application", "font-awesome/css/font-awesome" %> - <%# the colour used for theme-color is the standard palette $black from - https://github.com/alphagov/govuk_frontend_toolkit/blob/master/stylesheets/colours/_palette.scss %> - + <%= javascript_include_tag "application", defer: true %> - - - <%= yield :head %> - - <%# The default og:image is added below :head so that scrapers see any custom metatags first, and this is just a fallback %> - "> + - > - + + - <%= yield :body_start %> + - + <%= govuk_skip_link text: "Skip to main content" %> - - -
+ <%= govuk_header(homepage_url: "/", service_name: "PQ Tracker") %> - <%= content_for?(:content) ? yield(:content) : yield %> +
+
+ <%= content_for?(:content) ? yield(:content) : yield %> +
+
- + <%= govuk_footer(meta_items_title: "Support links", meta_items: { "Accessibility" => "/accessibility", "Contact Parliamentary Branch" => "mailto:pqs@justice.gov.uk?Subject=PQ%20Tracker" }) %> - <%= javascript_include_tag "govuk-template.js", integrity: true, crossorigin: "anonymous" %> - <%= yield :body_end %> - - <%# if no GOVUK-namespaced module has loaded we can assume JS has failed and remove the class %> - diff --git a/app/views/members/_by_name.html.slim b/app/views/members/_by_name.html.slim deleted file mode 100644 index d676b27bb..000000000 --- a/app/views/members/_by_name.html.slim +++ /dev/null @@ -1,7 +0,0 @@ -#members_result - .field - select#members_result_select - - @members.each do |member| - option data-name=member.display_as value=member.member_id - | #{member['Member_Id']} - #{member['DisplayAs']} - = link_to 'Select', {remote: true}, {id: 'members_result_select_link'} diff --git a/app/views/minister_contacts/create.html.slim b/app/views/minister_contacts/create.html.slim index 2afb3a6f2..9468b3625 100644 --- a/app/views/minister_contacts/create.html.slim +++ b/app/views/minister_contacts/create.html.slim @@ -1,2 +1,2 @@ -h1 +h1.govuk-heading-l | Add contact to #{@minister.name} diff --git a/app/views/minister_contacts/edit.html.slim b/app/views/minister_contacts/edit.html.slim index b23ed9947..69490e804 100644 --- a/app/views/minister_contacts/edit.html.slim +++ b/app/views/minister_contacts/edit.html.slim @@ -1,4 +1,4 @@ -h1 +h1.govuk-heading-l | Edit minister contact = render 'form' = link_to 'Back', minister_path(@minister) diff --git a/app/views/minister_contacts/new.html.slim b/app/views/minister_contacts/new.html.slim index 3c41b1cb6..5c7a431c7 100644 --- a/app/views/minister_contacts/new.html.slim +++ b/app/views/minister_contacts/new.html.slim @@ -1,4 +1,4 @@ -h1 +h1.govuk-heading-l | New contact for #{@minister.name} = render 'form' = link_to 'Back', minister_path(@minister) diff --git a/app/views/ministers/_form.html.slim b/app/views/ministers/_form.html.slim index 3566fb47b..1b065e591 100644 --- a/app/views/ministers/_form.html.slim +++ b/app/views/ministers/_form.html.slim @@ -19,12 +19,12 @@ label.form-label for="minister_minister_contacts_attributes_0_phone" Phone = ff.text_field :phone, {class: 'form-control'} .form-group - p Contact status + p.govuk-body Contact status label.block-label for="minister_minister_contacts_attributes_0_deleted" = ff.check_box :deleted | Inactive .form-group - p style="" Minister status + p.govuk-body style="" Minister status label.block-label for="minister_deleted" = f.check_box :deleted = ' Inactive' diff --git a/app/views/ministers/edit.html.slim b/app/views/ministers/edit.html.slim index 579f80799..5c6d6e788 100644 --- a/app/views/ministers/edit.html.slim +++ b/app/views/ministers/edit.html.slim @@ -1,3 +1,3 @@ -h1 Edit minister +h1.govuk-heading-l Edit minister = render 'form' = link_to 'Return to Minister list', ministers_path, {class: 'admin-link'} diff --git a/app/views/ministers/index.html.slim b/app/views/ministers/index.html.slim index 3db1fbbd7..b74180b24 100644 --- a/app/views/ministers/index.html.slim +++ b/app/views/ministers/index.html.slim @@ -1,6 +1,6 @@ -h1 Ministers +h1.govuk-heading-l Ministers #admin-ministers-list - .row + div ul#admin-button-bar li= link_to ('Add minister'), new_minister_path, {class: 'button-secondary'} table.table aria-label="ministers" diff --git a/app/views/ministers/new.html.slim b/app/views/ministers/new.html.slim index ce712c85b..7b078b9fb 100644 --- a/app/views/ministers/new.html.slim +++ b/app/views/ministers/new.html.slim @@ -1,3 +1,3 @@ -h1 Add minister +h1.govuk-heading-l Add minister = render 'form' = link_to 'Return to minister list', ministers_path, {class: 'admin-link'} diff --git a/app/views/ministers/show.html.slim b/app/views/ministers/show.html.slim index c4a0a6752..5625cccb8 100644 --- a/app/views/ministers/show.html.slim +++ b/app/views/ministers/show.html.slim @@ -1,13 +1,13 @@ #admin-ministers-details - h1 Minister details + h1.govuk-heading-l Minister details = render partial: "shared/flash_messages", flash: flash - h2 Name - p= @minister.name - h2 Title - p= @minister.title - h2 Status + h2.govuk-heading-m Name + p.govuk-body= @minister.name + h2.govuk-heading-m Title + p.govuk-body= @minister.title + h2.govuk-heading-m Status = render partial: 'shared/status', object: @minister - h2 Contacts + h2.govuk-heading-m Contacts div class="row" ul#admin-button-bar li= link_to ('Add new contact'), new_minister_contact_withid_path(@minister), {class: 'button-secondary'} diff --git a/app/views/ogds/_form.html.slim b/app/views/ogds/_form.html.slim index 3e3663ff3..1e4c09ec4 100644 --- a/app/views/ogds/_form.html.slim +++ b/app/views/ogds/_form.html.slim @@ -9,7 +9,7 @@ label.form-label for="ogd_acronym" Acronym (required) = f.text_field :acronym, {class: 'form-control'} .form-group - p Status + p.govuk-body Status label.block-label for="ogd_deleted" = f.check_box :deleted | Inactive diff --git a/app/views/ogds/edit.html.slim b/app/views/ogds/edit.html.slim index 8bc909aef..99bb73d2d 100644 --- a/app/views/ogds/edit.html.slim +++ b/app/views/ogds/edit.html.slim @@ -1,3 +1,3 @@ -h1 Edit Government Department +h1.govuk-heading-l Edit Government Department = render 'form' = link_to 'Return to Other Government Department list', ogds_path, {class: 'admin-link'} diff --git a/app/views/ogds/index.html.slim b/app/views/ogds/index.html.slim index e7de8d52b..a9b5b9249 100644 --- a/app/views/ogds/index.html.slim +++ b/app/views/ogds/index.html.slim @@ -1,4 +1,4 @@ -h1 Other Government Departments +h1.govuk-heading-l Other Government Departments #admin-odg-list div class="row" ul#admin-button-bar diff --git a/app/views/ogds/new.html.slim b/app/views/ogds/new.html.slim index 0d3bc6984..6249bf97d 100644 --- a/app/views/ogds/new.html.slim +++ b/app/views/ogds/new.html.slim @@ -1,3 +1,3 @@ -h1 Add Government Department +h1.govuk-heading-l Add Government Department = render 'form' = link_to 'Return to Other Government Department list', ogds_path, {class: 'admin-link'} diff --git a/app/views/ogds/show.html.slim b/app/views/ogds/show.html.slim index 63e8d4b17..e5f34c556 100644 --- a/app/views/ogds/show.html.slim +++ b/app/views/ogds/show.html.slim @@ -1,14 +1,14 @@ -h1 Government Department details +h1.govuk-heading-l Government Department details #admin-ogd-details = render partial: "shared/flash_messages", flash: flash - h2 Name - p= @ogd.name - h2 Acronym - p= @ogd.acronym - h2 Status + h2.govuk-heading-m Name + p.govuk-body= @ogd.name + h2.govuk-heading-m Acronym + p.govuk-body= @ogd.acronym + h2.govuk-heading-m Status = render partial: 'shared/status', object: @ogd - p + p.govuk-body = link_to 'Edit', edit_ogd_path(@ogd), {class: 'admin-link'} - span.visually-hidden + span.govuk-visually-hidden = ' | ' = link_to 'Return to Other Government Department list', ogds_path, {class: 'admin-link'} diff --git a/app/views/pages/accessibility.html.slim b/app/views/pages/accessibility.html.slim index f46156df3..01655bd62 100644 --- a/app/views/pages/accessibility.html.slim +++ b/app/views/pages/accessibility.html.slim @@ -1,48 +1,49 @@ -h1.heading-large Accessibility statement +h1.govuk-heading-l.govuk-main-wrapper--auto-spacing Accessibility statement -p This website is run by the Ministry of Justice Digital & Technology team. We want as many people as possible to be able to use this website. For example, that means you should be able to: +p.govuk-body This website is run by the Ministry of Justice Digital & Technology team. We want as many people as possible to be able to use this website. For example, that means you should be able to: -ul.list.list-bullet - li change colours, contrast levels and fonts - li zoom in up to 200% without the text spilling off the screen - li navigate most of the web form using just a keyboard - li navigate most of the web form using speech recognition software - li listen to most of the web form using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver) += govuk_list ["change colours, contrast levels and fonts", "zoom in up to 200% without the text spilling off the screen", "navigate most of the web form using just a keyboard", "navigate most of the web form using speech recognition software", "listen to most of the web form using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver)"], type: :bullet -p We’ve also made the website text as simple as possible to understand. -p AbilityNet has advice on making your device easier to use if you have a disability. +p.govuk-body We've also made the website text as simple as possible to understand. +p.govuk-body AbilityNet has advice on making your device easier to use if you have a disability. -h2.heading-medium How accessible this website is +h2.govuk-heading-m How accessible this website is -p This website is not fully accessible. -p We have completed a WCAG 2.1 review internally and externally and are currently in the process of remediation. +p.govuk-body This website is not fully accessible. +p.govuk-body We have completed a WCAG 2.1 review internally and externally and are currently in the process of remediation. -h2.heading-medium What to do if you cannot access parts of this website -p If you need information on this website in a different format like accessible PDF, large print, easy read, audio recording or braille: -ul.list.list-bullet - li email: pqsupport@digital.justice.gov.uk -p We’ll consider your request and get back to you within 7 days. +h2.govuk-heading-m What to do if you cannot access parts of this website +p.govuk-body If you need information on this website in a different format like accessible PDF, large print, easy read, audio recording or braille: += govuk_list [link_to("pqsupport@digital.justice.gov.uk", "mailto:pqsupport@digital.justice.gov.uk")], type: :bullet +p.govuk-body We'll consider your request and get back to you within 7 days. -h2.heading-medium Reporting accessibility problems with this website -p We’re always looking to improve the accessibility of this website. If you find any problems or think we’re not meeting accessibility requirements: -ul.list.list-bullet - li email: pqsupport@digital.justice.gov.uk +h2.govuk-heading-m Reporting accessibility problems with this website +p.govuk-body We're always looking to improve the accessibility of this website. If you find any problems or think we're not meeting accessibility requirements: += govuk_list [link_to("pqsupport@digital.justice.gov.uk", "mailto:pqsupport@digital.justice.gov.uk")], type: :bullet -h2.heading-medium Enforcement procedure -p The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the Equality Advisory and Support Service (EASS). +h2.govuk-heading-m Enforcement procedure +p.govuk-body + = "The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the 'accessibility regulations'). If you're not happy with how we respond to your complaint, contact the " + = link_to("Equality Advisory and Support Service", "https://www.equalityadvisoryservice.com/") + = " (EASS)." -h2.heading-medium Technical information about this website’s accessibility -p The Ministry of Justice Digital & Technology is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018. +h2.govuk-heading-m Technical information about this website's accessibility +p.govuk-body The Ministry of Justice Digital & Technology is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018. -h2.heading-medium Compliance status -p This website is fully compliant with the Web Content Accessibility Guidelines version 2.1 AA standard. +h2.govuk-heading-m Compliance status +p.govuk-body + = "This website is fully compliant with the " + = link_to("Web Content Accessibility Guidelines version 2.1", "https://www.w3.org/TR/WCAG21/") + = " AA standard." -h2.heading-medium How this website has been tested for accessibility -p We tested the website using tools such as Wave as well as manual testing against WCAG 2.1 guidelines and no accessibility issues were identified. +h2.govuk-heading-m How this website has been tested for accessibility +p.govuk-body We tested the website using tools such as Wave as well as manual testing against WCAG 2.1 guidelines and no accessibility issues were identified. -p Our main website is available at https://trackparliamentaryquestions.service.gov.uk/. - -h2.heading-medium Preparation of this accessibility statement -p This website was last tested on 27th June 2022. The test was carried out internally by the application’s support team with help from the MOJ Accessibility team. -p This statement was prepared on 22nd July 2022. It was last updated on 25th July 2022. +p.govuk-body + = "Our main website is available at " + = link_to("https://trackparliamentaryquestions.service.gov.uk", "https://trackparliamentaryquestions.service.gov.uk") + = "." +h2.govuk-heading-m Preparation of this accessibility statement +p.govuk-body This website was last tested on 27th June 2022. The test was carried out internally by the application's support team with help from the MOJ Accessibility team. +p.govuk-body This statement was prepared on 22nd July 2022. It was last updated on 25th July 2022. diff --git a/app/views/pqs/_answer.html.slim b/app/views/pqs/_answer.html.slim index 2871c843f..b0cfc4c97 100644 --- a/app/views/pqs/_answer.html.slim +++ b/app/views/pqs/_answer.html.slim @@ -1,4 +1,4 @@ -h2 Answer +h2.govuk-heading-m Answer .form-group label.form-label for="answer_submitted" Date answer submitted .datetimepicker diff --git a/app/views/pqs/_com_data.html.slim b/app/views/pqs/_com_data.html.slim index 77fd5dde7..ca793b973 100644 --- a/app/views/pqs/_com_data.html.slim +++ b/app/views/pqs/_com_data.html.slim @@ -1,4 +1,4 @@ -h2 PQ commission +h2.govuk-heading-m PQ commission .form-group label.form-label for="pq_internal_deadline" | Internal deadline#{render partial: 'shared/deadline_time', locals: {internal_deadline: @pq.internal_deadline, is_closed: @pq.closed?, draft_reply: @pq.draft_answer_received }} @@ -7,7 +7,7 @@ h2 PQ commission span.fa.fa-calendar title="select a date" hr/ .question-allocation - h3 Action officer(s) + h3.govuk-heading-s Action officer(s) p - if @pq.action_officers.not_rejected.size > 0 - @pq.action_officers_pqs.not_rejected.order(updated_at: :desc).each_with_index do |ao_pq, ind| @@ -17,37 +17,37 @@ hr/ - @pq.action_officers_pqs.order(updated_at: :desc).each do |ao_pq| - if ao_pq.accepted? - reminder_draft_count = ao_pq.reminder_draft > 0 ? " (#{ao_pq.reminder_draft} already sent)" : '' - p.space-before= link_to raw(" Send a draft reminder to #{ao_pq.action_officer.name} #{reminder_draft_count}"), {controller: 'action_officer_reminder', action: 'send_draft', id: ao_pq.id, remote: true}, {class: 'ao-reminder-link'} - p.space-before= link_to "Manually reject #{ao_pq.action_officer.name}", {controller: 'manual_reject_commission', action: 'reject_manual', id: ao_pq.id}, {class: 'button-secondary', title: 'Reject the question manually'} + p.govuk-body.space-before= link_to raw(" Send a draft reminder to #{ao_pq.action_officer.name} #{reminder_draft_count}"), {controller: 'action_officer_reminder', action: 'send_draft', id: ao_pq.id, remote: true}, {class: 'ao-reminder-link'} + p.govuk-body.space-before= link_to "Manually reject #{ao_pq.action_officer.name}", {controller: 'manual_reject_commission', action: 'reject_manual', id: ao_pq.id}, {class: 'button-secondary', title: 'Reject the question manually'} - h3 Email of Action Officer - p= mail_to ao_pq.action_officer.email - h3 Phone of Action Officer - p= ao_pq.action_officer.phone - h3 Division of Action Officer - p= ao_pq.action_officer.deputy_director.division.name - h3 Directorate of Action Officer - p= ao_pq.action_officer.deputy_director.division.directorate.name - h3 Deputy director - p= ao_pq.action_officer.deputy_director.name - h3 Press Desk - p= ao_pq.action_officer.press_desk.name - p + h3.govuk-heading-s Email of Action Officer + p.govuk-body= mail_to ao_pq.action_officer.email + h3.govuk-heading-s Phone of Action Officer + p.govuk-body= ao_pq.action_officer.phone + h3.govuk-heading-s Division of Action Officer + p.govuk-body= ao_pq.action_officer.deputy_director.division.name + h3.govuk-heading-s Directorate of Action Officer + p.govuk-body= ao_pq.action_officer.deputy_director.division.directorate.name + h3.govuk-heading-s Deputy director + p.govuk-body= ao_pq.action_officer.deputy_director.name + h3.govuk-heading-s Press Desk + p.govuk-body= ao_pq.action_officer.press_desk.name + p.govuk-body - ao_pq.action_officer.press_desk.press_officers.reject(&:deleted?).each_with_index do |po,ind| - if ind > 0 = ', ' = link_to po.name, press_officer_path(po) hr - if ao_pq.awaiting_response? - p.space-before-20 + p.govuk-body.space-before-20 - reminder_accept_count = ao_pq.reminder_accept > 0 ? " (#{ao_pq.reminder_accept} already sent)" : '' = link_to raw(" Send reminder to #{ao_pq.action_officer.name} #{reminder_accept_count}"), {controller: 'action_officer_reminder', action: 'accept_reject', id: ao_pq.id, remote: true}, {class: 'ao-reminder-link', title: 'Send an accept/reject reminder email'} - p.space-before= link_to "Manually reject #{ao_pq.action_officer.name}", {controller: 'manual_reject_commission', action: 'reject_manual', id: ao_pq.id}, {class: 'button-secondary', title: 'Reject the question manually'} + p.govuk-body.space-before= link_to "Manually reject #{ao_pq.action_officer.name}", {controller: 'manual_reject_commission', action: 'reject_manual', id: ao_pq.id}, {class: 'button-secondary', title: 'Reject the question manually'} - unless @pq.is_new? = render partial: 'shared/action_officer_selection', locals: {action_officers: action_officers, question: @pq, form: f, reassign: true} - else - p Not allocated + p.govuk-body Not allocated = render partial:'shared/rejected_reasons', locals: {question: @pq} hr/ = render partial: 'shared/minister_selection', locals: {question: @pq, form: f} diff --git a/app/views/pqs/_minister_check.html.slim b/app/views/pqs/_minister_check.html.slim index a08e78a22..5f80e3460 100644 --- a/app/views/pqs/_minister_check.html.slim +++ b/app/views/pqs/_minister_check.html.slim @@ -1,4 +1,4 @@ -h2 Minister check +h2.govuk-heading-m Minister check #answeringminister .form-group label.form-label for="sent_to_answering_minister" Date sent to answering minister diff --git a/app/views/pqs/_pod_check.html.slim b/app/views/pqs/_pod_check.html.slim index e913b21f2..7bc8f7406 100644 --- a/app/views/pqs/_pod_check.html.slim +++ b/app/views/pqs/_pod_check.html.slim @@ -1,13 +1,13 @@ -h2 +h2.govuk-heading-m abbr title="Private Office Directorate" POD 'check -h3 +h3.govuk-heading-s ' Date sent to abbr title="Private Office Directorate" POD - if @pq.pod_waiting.to_s != '' - p= @pq.pod_waiting.to_s + p.govuk-body= @pq.pod_waiting.to_s - else - p + p.govuk-body abbr title="To Be Decided" TBD br .form-group diff --git a/app/views/pqs/_pq_data.html.slim b/app/views/pqs/_pq_data.html.slim index 3b64e319e..576e28893 100644 --- a/app/views/pqs/_pq_data.html.slim +++ b/app/views/pqs/_pq_data.html.slim @@ -1,9 +1,9 @@ -h2 PQ Details -h3 +h2.govuk-heading-m PQ Details +h3.govuk-heading-s abbr title="Unique Identification Number" UIN -p = @pq.uin -h3 House -p= @pq.house_name +p.govuk-body= @pq.uin +h3.govuk-heading-s House +p.govuk-body= @pq.house_name .form-group label.form-label for="date_for_answer" Date for answer back to Parliament @@ -11,22 +11,22 @@ p= @pq.house_name input#date_for_answer.form-control name="pq[date_for_answer]" type="text" value=(@pq.date_for_answer.try(:to_formatted_s, :date)) / span.fa.fa-calendar title="select a date" -h3 Tabling member -p= @pq.member_name +h3.govuk-heading-s Tabling member +p.govuk-body= @pq.member_name -h3 Question type -p= @pq.question_type +h3.govuk-heading-s Question type +p.govuk-body= @pq.question_type -h3 Question tabled date +h3.govuk-heading-s Question tabled date - if @pq.tabled_date - p= @pq.tabled_date.try(:to_formatted_s, :date) + p.govuk-body= @pq.tabled_date.try(:to_formatted_s, :date) - if @pq.registered_interest - p + p.govuk-body | * Member has registered an interest in the Question. - if @pq.transfer_in_ogd_id - p + p.govuk-body | Transferred in from #{@pq.transfer_in_ogd.name} on #{@pq.transfer_in_date.try(:to_formatted_s, :date)} hr/ -h3 Question -p = @pq.question +h3.govuk-heading-s Question +p.govuk-body= @pq.question diff --git a/app/views/pqs/_pq_draft.html.slim b/app/views/pqs/_pq_draft.html.slim index 4218795ee..936a45357 100644 --- a/app/views/pqs/_pq_draft.html.slim +++ b/app/views/pqs/_pq_draft.html.slim @@ -1,9 +1,9 @@ -h2 PQ draft +h2.govuk-heading-m PQ draft - if @pq.action_officers.size > 0 - @pq.action_officers_pqs.each do |ao_pq| - if ao_pq.accepted? - h3 Date PQ accepted by action officer - p= ao_pq.updated_at.to_s + h3.govuk-heading-s Date PQ accepted by action officer + p.govuk-body= ao_pq.updated_at.to_s .form-group label.form-label for="draft_answer_received" Date PQ returned by action officer .datetimepicker diff --git a/app/views/pqs/_pq_header.html.slim b/app/views/pqs/_pq_header.html.slim index 83dc76ebc..c23a99a0b 100644 --- a/app/views/pqs/_pq_header.html.slim +++ b/app/views/pqs/_pq_header.html.slim @@ -1,5 +1,5 @@ #pq-details-header - h1= @pq.uin + h1.govuk-heading-l= @pq.uin - if @pq.question_type == 'NamedDay' span.question-type Named day - if @pq.transferred diff --git a/app/views/pqs/show.html.slim b/app/views/pqs/show.html.slim index 1df9c17a8..4599574c3 100644 --- a/app/views/pqs/show.html.slim +++ b/app/views/pqs/show.html.slim @@ -2,9 +2,9 @@ = render partial: "shared/flash_messages", flash: flash = render partial: 'shared/errors', object: @pq = render 'pq_header' - #pq-detail-area.row + #pq-detail-area nav.col-md-3 - p.visually-hidden Jump to a section... + p.govuk-body.govuk-visually-hidden Jump to a section... ul.nav.nav-stacked data-tabs="tabs" role="tablist" li.active a#progress-menu-pq href="#progress-menu-pq-data" data-toggle="tab" role="tab" PQ Details diff --git a/app/views/press_desks/_form.html.slim b/app/views/press_desks/_form.html.slim index 1b24d7359..7f65a415a 100644 --- a/app/views/press_desks/_form.html.slim +++ b/app/views/press_desks/_form.html.slim @@ -6,7 +6,7 @@ label.form-label for="press_desk_name" Name (required) = f.text_field :name, {class: 'form-control'} .form-group - p Status + p.govuk-body Status label.block-label for="press_desk_deleted" = f.check_box :deleted | Inactive diff --git a/app/views/press_desks/edit.html.slim b/app/views/press_desks/edit.html.slim index 011133b36..6d25bacc7 100644 --- a/app/views/press_desks/edit.html.slim +++ b/app/views/press_desks/edit.html.slim @@ -1,3 +1,3 @@ -h1 Edit press desk +h1.govuk-heading-l Edit press desk = render 'form' = link_to 'Return to press desk list', press_desks_path, {class: 'admin-link'} diff --git a/app/views/press_desks/index.html.slim b/app/views/press_desks/index.html.slim index 92c190af2..3c0e87c73 100644 --- a/app/views/press_desks/index.html.slim +++ b/app/views/press_desks/index.html.slim @@ -1,4 +1,4 @@ -h1 Press desks +h1.govuk-heading-l Press desks #admin-pd-list div class="row" ul#admin-button-bar diff --git a/app/views/press_desks/new.html.slim b/app/views/press_desks/new.html.slim index 27b521000..69596618d 100644 --- a/app/views/press_desks/new.html.slim +++ b/app/views/press_desks/new.html.slim @@ -1,3 +1,3 @@ -h1 Add press desk +h1.govuk-heading-l Add press desk = render 'form' = link_to 'Return to press desk list', press_desks_path, {class: 'admin-link'} diff --git a/app/views/press_desks/show.html.slim b/app/views/press_desks/show.html.slim index 483c357a0..1c2376aa1 100644 --- a/app/views/press_desks/show.html.slim +++ b/app/views/press_desks/show.html.slim @@ -1,16 +1,16 @@ #admin-pd-details - h1 Press desk details + h1.govuk-heading-l Press desk details = render partial: "shared/flash_messages", flash: flash - h2 Name - p= @press_desk.name - h2 Status + h2.govuk-heading-m Name + p.govuk-body= @press_desk.name + h2.govuk-heading-m Status = render partial: 'shared/status', object: @press_desk - h2 Press officers + h2.govuk-heading-m Press officers ul - @press_desk.press_officers.each do |po| li= link_to(po.name, controller: 'press_officers', action: 'show', id: po.id ) - p + p.govuk-body = link_to 'Edit', edit_press_desk_path(@press_desk), {class: 'admin-link'} - span.visually-hidden + span.govuk-visually-hidden = ' | ' = link_to 'Return to press desk list', press_desks_path, {class: 'admin-link'} diff --git a/app/views/press_officers/_form.html.slim b/app/views/press_officers/_form.html.slim index f6bd5c947..bd1ce54db 100644 --- a/app/views/press_officers/_form.html.slim +++ b/app/views/press_officers/_form.html.slim @@ -12,7 +12,7 @@ label.form-label for="press_officer_press_desk_id" Press Desk (required) = f.collection_select(:press_desk_id, @press_offices, :id, :name, :include_blank => "Please select") .form-group - p Status + p.govuk-body Status label.block-label for="press_officer_deleted" = f.check_box :deleted | Inactive diff --git a/app/views/press_officers/edit.html.slim b/app/views/press_officers/edit.html.slim index efed6861e..71e8cf4ec 100644 --- a/app/views/press_officers/edit.html.slim +++ b/app/views/press_officers/edit.html.slim @@ -1,3 +1,3 @@ -h1 Edit press officer +h1.govuk-heading-l Edit press officer = render 'form' = link_to 'Return to press officer list', press_officers_path, {class: 'admin-link'} diff --git a/app/views/press_officers/index.html.slim b/app/views/press_officers/index.html.slim index 0930dd8a1..f88b24d73 100644 --- a/app/views/press_officers/index.html.slim +++ b/app/views/press_officers/index.html.slim @@ -1,6 +1,6 @@ -h1 Press officers +h1.govuk-heading-l Press officers #admin-po-list - .row + div ul#admin-button-bar li= link_to ('Add press officer'), new_press_officer_path, {class: 'button-secondary'} table.table aria-label="press officers" diff --git a/app/views/press_officers/new.html.slim b/app/views/press_officers/new.html.slim index 526612686..be5a88a3f 100644 --- a/app/views/press_officers/new.html.slim +++ b/app/views/press_officers/new.html.slim @@ -1,3 +1,3 @@ -h1 Add press officer +h1.govuk-heading-l Add press officer = render 'form' = link_to 'Return to press officer list', press_officers_path, {class: 'admin-link'} diff --git a/app/views/press_officers/show.html.slim b/app/views/press_officers/show.html.slim index cbe4b949a..caa657852 100644 --- a/app/views/press_officers/show.html.slim +++ b/app/views/press_officers/show.html.slim @@ -1,14 +1,14 @@ -h1 Press officer details +h1.govuk-heading-l Press officer details #admin-po-details = render partial: "shared/flash_messages", flash: flash - h2 Name - p= @press_officer.name - h2 Email - p= @press_officer.email - h2 Status + h2.govuk-heading-m Name + p.govuk-body= @press_officer.name + h2.govuk-heading-m Email + p.govuk-body= @press_officer.email + h2.govuk-heading-m Status = render partial: 'shared/status', object: @press_officer - p + p.govuk-body = link_to 'Edit', edit_press_officer_path(@press_officer), {class: 'admin-link'} - span.visually-hidden + span.govuk-visually-hidden = ' | ' = link_to 'Return to press officer list', press_officers_path, {class: 'admin-link'} diff --git a/app/views/proposals/new.html.slim b/app/views/proposals/new.html.slim index b10bd344f..5d72bc966 100644 --- a/app/views/proposals/new.html.slim +++ b/app/views/proposals/new.html.slim @@ -1,4 +1,4 @@ -h1 Propose a Deputy Director +h1.govuk-heading-l Propose a Deputy Director = render partial: 'shared/flash_messages' - if @pq.commissioned? diff --git a/app/views/reports/filter_all.html.slim b/app/views/reports/filter_all.html.slim deleted file mode 100644 index 6fe96a5a7..000000000 --- a/app/views/reports/filter_all.html.slim +++ /dev/null @@ -1,38 +0,0 @@ -- content_for :page_title do - = 'PQ filter - ' - -div#filter-report - h1 PQ filter - = render partial: 'shared/flash_messages' - .row - .col-md-3.col-md-push-9 - = form_tag({controller: 'reports', action: 'filter_all'}, {:method => :get}) do - .form-group - label.form-label for="minister_id" Minister - = select_tag 'minister_id', content_tag(:option,'Select a minister',:value=>'') + options_from_collection_for_select(@ministers, 'id', 'name', params[:minister_id] ) - .form-group - label.form-label for="press_desk_id" Press Desk - = select_tag 'press_desk_id', content_tag(:option,'Select a press desk',:value=>'') + options_from_collection_for_select(@press_desks, 'id', 'name', params[:press_desk_id] ) - .form-group - label.form-label for="state" Status - = select_tag 'state', content_tag(:option,'Select status', :value=>'') + options_for_select(@states, params[:state] ) - .form-group - = submit_tag 'Filter' , class: 'button' , :onclick=> "ga('send', 'event', 'reports', 'view', 'pq filter')" - = link_to 'Show all', filter_all_path, class: 'button-secondary' - .col-md-9.col-md-pull-3 - - if @questions.empty? - h2 Please select a filter option - - else - #count - strong - = @questions.total_entries - span - = @questions.total_entries > 1 ? ' questions' : ' question' - = ' found' - ul.questions-list - - @questions.each do |question| - li id="pq-frame-#{question.id}" - = render partial: 'dashboard/question_data', locals: {question: question, action_officers: @action_officers} - - if @questions.any? - #pages.row - = will_paginate @questions, {class: 'col-md-9'} diff --git a/app/views/reports/report.html.slim b/app/views/reports/report.html.slim deleted file mode 100644 index 81cb0aa55..000000000 --- a/app/views/reports/report.html.slim +++ /dev/null @@ -1,20 +0,0 @@ -div#minister-report - h1= @report.title - table.table.table-hover aria-label="#{@report.title}" - thead - tr - th scope="col" Progress - - @report.header_cells.each do |c| - th.table-cell-centered scope="col" - = link_to(c.label, c.path, aria: { label: "Click to view questions for #{c.label}" }) - tbody - - @report.rows.each do |r| - tr data="report-state-#{r.state}" - th scope="row" - span class=("flag #{state_classname r.state}") = r.label - - r.cells.each do |c| - td.table-cell-centered - - unless c.zero? - = link_to(c.count, c.path, aria: { label: "Click to view questions with a status of #{r.label}" }) - - else - | 0 diff --git a/app/views/shared/_allocation_list.html.slim b/app/views/shared/_allocation_list.html.slim index 3f14d93d6..c8b70030f 100644 --- a/app/views/shared/_allocation_list.html.slim +++ b/app/views/shared/_allocation_list.html.slim @@ -1,17 +1,17 @@ - if ao_pq.accepted? = ao_pq.action_officer.name - | (#{ao_pq.action_officer.deputy_director.division.name}) + | (#{ao_pq.action_officer.deputy_director.division.name}) span.flag.accepted Accepted - elsif ao_pq.rejected? details summary = ao_pq.action_officer.name - = "(#{ao_pq.action_officer.deputy_director.division.name})" + = "(#{ao_pq.action_officer.deputy_director.division.name})" span.flag.rejected Rejected .panel-indent - p.strong= ao_pq.reason_option - p= ao_pq.reason + p.govuk-body.strong= ao_pq.reason_option + p.govuk-body= ao_pq.reason - else = ao_pq.action_officer.name - | (#{ao_pq.action_officer.deputy_director.division.name}) + | (#{ao_pq.action_officer.deputy_director.division.name}) span.flag.no-response No response diff --git a/app/views/shared/_navigation.html.slim b/app/views/shared/_navigation.html.slim index 513590cfa..e76d9d7ff 100644 --- a/app/views/shared/_navigation.html.slim +++ b/app/views/shared/_navigation.html.slim @@ -1,47 +1,16 @@ -- if user_signed_in? - nav.navbar.navbar-default role="navigation" - .container-fluid - .navbar-header - - button.navbar-toggle data-target=".navbar-collapse" data-toggle="collapse" type="button" - span.sr-only Toggle navigation - span.icon-bar - span.icon-bar - span.icon-bar - - .collapse.navbar-collapse - - if current_user.pq_user? - - ul.nav.navbar-nav - li class=('active' if @dashboard_state == 'New') - = link_to 'New', dashboard_path, action: 'index', aria: { label: "Click to view new questions"} - - li class=('active' if @dashboard_state == 'In progress') - = link_to 'In progress', dashboard_in_progress_path, action: 'in_progress', aria: { label: "Click to view in progress questions"} - - li class=('active' if @dashboard_state == 'Backlog') - = link_to 'Backlog', dashboard_backlog_path, action: 'backlog', aria: { label: "Click to view backlog questions"} - - li.dropdown class=('active' if @page_title == 'Minister report - Parliamentary Questions - Ministry of Justice' || @page_title == 'Press desk report - Parliamentary Questions - Ministry of Justice') - a.dropdown-toggle data-toggle="dropdown" data-target="#-" href="#" aria-haspopup="true" role="button" - | Reports - span.caret - ul.dropdown-menu role="menu" - li - = link_to 'Minister report', reports_ministers_by_progress_path , :onclick=> "ga('send', 'event', 'reports', 'view', 'Minister Report')", aria: { label: "Click to view minister reports"} - li - = link_to 'Press desk report', reports_press_desk_by_progress_path , :onclick=> "ga('send', 'event', 'reports', 'view', 'Press Desk Report')", aria: { label: "Click to view press desk reports"} - - li#settings class=('active' if @page_title == 'Settings - Parliamentary Questions - Ministry of Justice') - = link_to 'Settings', admin_path - - li= link_to 'Sign out', destroy_user_session_path - - = form_tag(search_path, { :method => 'get', :id => 'search_form', :class => 'navbar-form navbar-right', :role => 'search'}) do - .form-group.search - label for="search_field" Search by UIN - div.search-box - = text_field_tag :search, params[:search], { :id => 'search_field', :class => 'form-control' } - = button_tag(:type => 'submit', :id => 'search_button', :class => 'btn btn-default') do - span.fa.fa-search - span.visually-hidden Search +- if current_user&.pq_user? + = govuk_service_navigation(current_path: request.env['PATH_INFO'], navigation_id: 'nav', classes: ["navbar", "navbar-default"]) do |sn| + = sn.with_navigation_item(text: "New", href: dashboard_path) + = sn.with_navigation_item(text: "In progress", href: dashboard_in_progress_path) + = sn.with_navigation_item(text: "Backlog", href: dashboard_backlog_path) + = sn.with_navigation_item(text: "Settings", href: admin_path) + = sn.with_navigation_item(text: "Sign out", href: destroy_user_session_path) + = sn.with_end_slot do + = form_tag(search_path, { :method => 'get', :id => 'search_form', :class => 'navbar-form navbar-right', :role => 'search'}) do + .form-group.search + label for="search_field" Search by UIN + div.search-box + = text_field_tag :search, params[:search], { :id => 'search_field', :class => 'form-control' } + = button_tag(:type => 'submit', :id => 'search_button', :class => 'btn btn-default') do + span.fa.fa-search + span.govuk-visually-hidden Search diff --git a/app/views/shared/_question_assigned.html.slim b/app/views/shared/_question_assigned.html.slim index d20bcb6ea..118670644 100644 --- a/app/views/shared/_question_assigned.html.slim +++ b/app/views/shared/_question_assigned.html.slim @@ -1,7 +1,7 @@ = render partial: "shared/flash_messages", flash: flash - if question.action_officers_pqs.size > 0 .question-allocation - h4 Allocation: + h4.govuk-heading-s Allocation: ul.question-allocation-list data-pqid=question.id - question.action_officers_pqs.each do |ao_pq| li @@ -16,8 +16,8 @@ | Display Reason span.caret .collapse id="rejection-#{ao_pq.id}-#{ao_pq.action_officer.id}" - p + p.govuk-body strong= ao_pq.reason_option - p= ao_pq.reason + p.govuk-body= ao_pq.reason - else span.flag.no-response No response diff --git a/app/views/shared/_rejected_reasons.html.slim b/app/views/shared/_rejected_reasons.html.slim index 7f13008f8..f9f612b40 100644 --- a/app/views/shared/_rejected_reasons.html.slim +++ b/app/views/shared/_rejected_reasons.html.slim @@ -2,7 +2,7 @@ ul - question.action_officers_pqs.rejected.each do |r| - if !r.action_officer.nil? li - p.pq-msg-warning + p.govuk-body.pq-msg-warning = link_to r.action_officer.name, action_officer_path(r.action_officer) | rejected at: #{r.updated_at.to_s} br/ diff --git a/app/views/shared/mailer/_email_signature.html.slim b/app/views/shared/mailer/_email_signature.html.slim deleted file mode 100644 index c9590b678..000000000 --- a/app/views/shared/mailer/_email_signature.html.slim +++ /dev/null @@ -1,18 +0,0 @@ -p -div style="font-size: 12pt;" - | The PQ Team -p -div style="font-size: 10pt;" - | Parliamentary Branch - br/ - | 9.25, Ministry of Justice, 102 Petty France, SW1H 9AJ - br/ - | E: - a href="mailto:#{Settings.mail_reply_to}" = Settings.mail_reply_to -p -div style="font-size: 12pt;" - | The content is best viewed in Firefox browser. -p - small - | For any technical issues, e.g. broken links, - a<> href="mailto:pqsupport@digital.justice.gov.uk" contact PQ technical support. diff --git a/app/views/shared/mailer/_email_signature_plain.text.slim b/app/views/shared/mailer/_email_signature_plain.text.slim deleted file mode 100644 index 2474c921f..000000000 --- a/app/views/shared/mailer/_email_signature_plain.text.slim +++ /dev/null @@ -1,8 +0,0 @@ -| The PQ Team - - -- - Parliamentary Branch - 9.25, Ministry of Justice, 102 Petty France, SW1H 9AJ - E: #{Settings.mail_reply_to} - - For any technical issues, e.g. broken links, contact PQ technical support at pqsupport@digital.justice.gov.uk diff --git a/app/views/shared/token_expired.html.slim b/app/views/shared/token_expired.html.slim index 58665b85f..7c1227f20 100644 --- a/app/views/shared/token_expired.html.slim +++ b/app/views/shared/token_expired.html.slim @@ -1,8 +1,7 @@ -p.br.space-before-20 +p.govuk-body.br.space-before-20 strong Link expired -p.br.space-before - | The time allocated for you to accept or reject this question has expired. Please +p.govuk-body.br.space-before + | The time allocated for you to accept or reject this question has expired. Please a href="mailto:#{Settings.mail_reply_to}" contact the PQ team |  to get the question reassigned. - diff --git a/app/views/shared/token_invalid.html.slim b/app/views/shared/token_invalid.html.slim index 8707c46e8..f11ec28ed 100644 --- a/app/views/shared/token_invalid.html.slim +++ b/app/views/shared/token_invalid.html.slim @@ -1,6 +1,5 @@ -p.br.space-before-20 +p.govuk-body.br.space-before-20 strong Invalid Link -p.br.space-before +p.govuk-body.br.space-before | This link is invalid. Please check the original email and ensure you have copied and pasted the link correctly. - diff --git a/app/views/transferred/_form.html.slim b/app/views/transferred/_form.html.slim index 8a8503adc..249fcceaa 100644 --- a/app/views/transferred/_form.html.slim +++ b/app/views/transferred/_form.html.slim @@ -17,7 +17,7 @@ .datetimepicker input#pq_dateforanswer.form-control.pq_dateforanswer name="pq[date_for_answer]" type="text" value=(@pq.date_for_answer.to_s) / span.fa.fa-calendar title="select a date" - p House + p.govuk-body House .form-group.inline aria-label="selection for house type" label.block-label for="pq_house_name_house_of_commons" = f.radio_button :house_name, 'House Of Commons' @@ -31,7 +31,7 @@ .form-group label.form-label for="pq_member_constituency" Member constituency = f.text_field :member_constituency, class:'form-control' - p Member has registered an interest in the question + p.govuk-body Member has registered an interest in the question .form-group.inline aria-label="selection for member has registered interest in the question" label.inline.block-label for="pq_registered_interest_false" = f.radio_button :registered_interest, 'false' @@ -39,7 +39,7 @@ label.inline.block-label for="pq_registered_interest_true" = f.radio_button :registered_interest, 'true' | Yes - p Question type + p.govuk-body Question type .form-group.inline aria-label="selection for question type" label.block-label for="pq_question_type_ordinary" = f.radio_button :question_type, 'Ordinary' diff --git a/app/views/transferred/new.html.slim b/app/views/transferred/new.html.slim index 006734569..ad67bd5a0 100644 --- a/app/views/transferred/new.html.slim +++ b/app/views/transferred/new.html.slim @@ -1,3 +1,3 @@ -h1 Create a transferred PQ +h1.govuk-heading-l Create a transferred PQ = render partial: "shared/flash_messages", flash: flash = render 'form' diff --git a/app/views/users/edit.html.slim b/app/views/users/edit.html.slim index 4a960fed6..dfadbc5f2 100644 --- a/app/views/users/edit.html.slim +++ b/app/views/users/edit.html.slim @@ -1,4 +1,4 @@ -h1 +h1.govuk-heading-l | Edit user: #{@user.name} #admin-user-form = form_for @user do |f| @@ -12,7 +12,7 @@ h1 = f.label(:roles, "Role:") = f.select(:roles, [ User::ROLE_PQ_USER ]) - unless @user.new_record? - p Status: + p.govuk-body Status: .form-group label.block-label for="user_deleted" = f.check_box :deleted diff --git a/app/views/users/index.html.slim b/app/views/users/index.html.slim index 5d441bbf7..1bb1de238 100644 --- a/app/views/users/index.html.slim +++ b/app/views/users/index.html.slim @@ -1,7 +1,7 @@ -h1 Users +h1.govuk-heading-l Users = render partial: "shared/flash_messages", flash: flash #admin-users-list - .row + div ul#admin-button-bar li= link_to 'Invite new user', new_user_invitation_path, {class: 'button-secondary'} table.table aria-label="users" diff --git a/app/views/users/invitations/edit.html.slim b/app/views/users/invitations/edit.html.slim index d9496ab98..9201504c7 100644 --- a/app/views/users/invitations/edit.html.slim +++ b/app/views/users/invitations/edit.html.slim @@ -1,4 +1,4 @@ -h1= t 'devise.invitations.edit.header' +h1.govuk-heading-l= t 'devise.invitations.edit.header' = form_for resource, :as => resource_name, :url => invitation_path(resource_name), :html => { :method => :put } do |f| = devise_error_messages! .form-group diff --git a/app/views/users/invitations/new.html.slim b/app/views/users/invitations/new.html.slim index 3bd9fa7f4..a34c7d8c8 100644 --- a/app/views/users/invitations/new.html.slim +++ b/app/views/users/invitations/new.html.slim @@ -1,4 +1,4 @@ -h1= t "devise.invitations.new.header" +h1.govuk-heading-l= t "devise.invitations.new.header" = form_for resource, :as => resource_name, :url => invitation_path(resource_name), :html => {:method => :post} do |f| = devise_error_messages! - resource.class.invite_key_fields.each do |field| diff --git a/app/views/users/show.html.slim b/app/views/users/show.html.slim index 6ab468c53..1308f4292 100644 --- a/app/views/users/show.html.slim +++ b/app/views/users/show.html.slim @@ -1,17 +1,17 @@ -h1 User details +h1.govuk-heading-l User details #admin-user-details - h2 Name - = @user.name - h2 Email - = @user.email - h2 Role - = @user.roles - h2 Last active - = time_ago_in_words(@user.last_sign_in_at) unless @user.last_sign_in_at.nil? - h2 Invited by - = @user.invited_by_user - p + h2.govuk-heading-m Name + p.govuk-body= @user.name + h2.govuk-heading-m Email + p.govuk-body= @user.email + h2.govuk-heading-m Role + p.govuk-body= @user.roles + h2.govuk-heading-m Last active + p.govuk-body= time_ago_in_words(@user.last_sign_in_at) unless @user.last_sign_in_at.nil? + h2.govuk-heading-m Invited by + p.govuk-body= @user.invited_by_user + p.govuk-body = link_to 'Edit', edit_user_path(@user), {class: 'admin-link'} - span.visually-hidden + span.govuk-visually-hidden = ' | ' = link_to 'Return to user list', users_path, {class: 'admin-link'} diff --git a/bin/brakeman b/bin/brakeman new file mode 100755 index 000000000..ace1c9ba0 --- /dev/null +++ b/bin/brakeman @@ -0,0 +1,7 @@ +#!/usr/bin/env ruby +require "rubygems" +require "bundler/setup" + +ARGV.unshift("--ensure-latest") + +load Gem.bin_path("brakeman", "brakeman") diff --git a/bin/dev b/bin/dev new file mode 100755 index 000000000..d80a02dbc --- /dev/null +++ b/bin/dev @@ -0,0 +1,11 @@ +#!/usr/bin/env sh + +if gem list --no-installed --exact --silent foreman; then + echo "Installing foreman..." + gem install foreman +fi + +# Default to port 3000 if not specified +export PORT="${PORT:-3000}" + +exec foreman start -f Procfile.dev --env /dev/null "$@" diff --git a/bin/rubocop b/bin/rubocop new file mode 100755 index 000000000..40330c0ff --- /dev/null +++ b/bin/rubocop @@ -0,0 +1,8 @@ +#!/usr/bin/env ruby +require "rubygems" +require "bundler/setup" + +# explicit rubocop config increases performance slightly while avoiding config confusion. +ARGV.unshift("--config", File.expand_path("../.rubocop.yml", __dir__)) + +load Gem.bin_path("rubocop", "rubocop") diff --git a/bin/setup b/bin/setup index 3cd5a9d78..fba4c956b 100755 --- a/bin/setup +++ b/bin/setup @@ -1,8 +1,8 @@ #!/usr/bin/env ruby require "fileutils" -# path to your application root. APP_ROOT = File.expand_path("..", __dir__) +APP_NAME = "parliamentary-questions" def system!(*args) system(*args, exception: true) @@ -30,4 +30,8 @@ FileUtils.chdir APP_ROOT do puts "\n== Restarting application server ==" system! "bin/rails restart" + + # puts "\n== Configuring puma-dev ==" + # system "ln -nfs #{APP_ROOT} ~/.puma-dev/#{APP_NAME}" + # system "curl -Is https://#{APP_NAME}.test/up | head -n 1" end diff --git a/config/application.rb b/config/application.rb index dd9742ff5..084323f5c 100644 --- a/config/application.rb +++ b/config/application.rb @@ -6,15 +6,19 @@ require "pq_state/state_machine" require "csv" +require "rails" +# Pick the frameworks you want: +require "active_model/railtie" +require "active_job/railtie" require "active_record/railtie" -# require "active_storage/engine" +require "active_storage/engine" require "action_controller/railtie" -require "action_view/railtie" require "action_mailer/railtie" -require "active_job/railtie" # require "action_cable/engine" # require "action_mailbox/engine" require "action_text/engine" +require "action_view/railtie" +# require "action_cable/engine" # require "rails/test_unit/railtie" # Require the gems listed in Gemfile, including any gems @@ -24,7 +28,7 @@ module ParliamentaryQuestions class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. - # config.load_defaults 6.1 + config.load_defaults 7.2 # Please, add to the `ignore` list any other `lib` subdirectories that do # not contain `.rb` files, or that should not be reloaded or eager loaded. @@ -36,6 +40,8 @@ class Application < Rails::Application # 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") # Application Title (Populates ) config.app_title = "Parliamentary Questions" @@ -78,15 +84,17 @@ class Application < Rails::Application config.exceptions_app = routes - # Statsd - $statsd = Statsd.new "localhost", 8125 # rubocop:disable Style/GlobalVars - # By default associations can be empty config.active_record.belongs_to_required_by_default = false config.active_support.cache_format_version = 7.1 config.govuk_time_zone = "UTC" + + # Don't generate system test files. + config.generators.system_tests = nil + + config.exceptions_app = routes end end diff --git a/config/brakeman.ignore b/config/brakeman.ignore index 3605abe81..227a88d55 100644 --- a/config/brakeman.ignore +++ b/config/brakeman.ignore @@ -23,16 +23,36 @@ ], "note": "" }, + { + "warning_type": "Remote Code Execution", + "warning_code": 110, + "fingerprint": "9ae68e59cfee3e5256c0540dadfeb74e6b72c91997fdb60411063a6e8518144a", + "check_name": "CookieSerialization", + "message": "Use of unsafe cookie serialization strategy `:hybrid` might lead to remote code execution", + "file": "config/initializers/cookies_serializer.rb", + "line": 5, + "link": "https://brakemanscanner.org/docs/warning_types/unsafe_deserialization", + "code": "Rails.application.config.action_dispatch.cookies_serializer = :hybrid", + "render_path": null, + "location": null, + "user_input": null, + "confidence": "Medium", + "cwe_id": [ + 565, + 502 + ], + "note": "" + }, { "warning_type": "Command Injection", "warning_code": 14, - "fingerprint": "4c8abd2e60c229fa01041f3a6f4e90d3ca4a81c577cb6f44948e244652249a6f", + "fingerprint": "e52aded74a7009e1b98c10c18c97cdc0435538ae2ccace4dc7e07ba1ed2672e3", "check_name": "Execute", "message": "Possible command injection", "file": "lib/pqa/mock_api_server_runner.rb", "line": 20, "link": "https://brakemanscanner.org/docs/warning_types/command_injection/", - "code": "Process.spawn(\"rackup -p #{\"8888\"} -P #{\"/tmp/mock_api_server.pid\"} #{RACK_CONFIG_PATH} &> #{LOG_FILEPATH}\", :chdir => (CWD))", + "code": "Process.spawn(\"bundle exec rackup -p #{\"8888\"} -P #{\"/tmp/mock_api_server.pid\"} #{RACK_CONFIG_PATH} &> #{LOG_FILEPATH}\", :chdir => (CWD))", "render_path": null, "location": { "type": "method", @@ -45,28 +65,8 @@ 77 ], "note": "" - }, - { - "warning_type": "Remote Code Execution", - "warning_code": 110, - "fingerprint": "9ae68e59cfee3e5256c0540dadfeb74e6b72c91997fdb60411063a6e8518144a", - "check_name": "CookieSerialization", - "message": "Use of unsafe cookie serialization strategy `:hybrid` might lead to remote code execution", - "file": "config/initializers/cookies_serializer.rb", - "line": 5, - "link": "https://brakemanscanner.org/docs/warning_types/unsafe_deserialization", - "code": "Rails.application.config.action_dispatch.cookies_serializer = :hybrid", - "render_path": null, - "location": null, - "user_input": null, - "confidence": "Medium", - "cwe_id": [ - 565, - 502 - ], - "note": "" } ], - "updated": "2024-06-27 14:19:13 +0100", - "brakeman_version": "6.1.2" + "updated": "2024-10-28 14:05:21 +0000", + "brakeman_version": "6.2.2" } diff --git a/config/environments/development.rb b/config/environments/development.rb index fe2deefb2..5a053d4ad 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -5,30 +5,44 @@ # In the development environment your application's code is reloaded any time # it changes. This slows down response time but is perfect for development - - # Rails 6 blocks hosts unless allowed here - config.hosts << /[a-z0-9]+\.trackparliamentaryquestions\.service\.gov\.uk/ - # since you don't have to restart the web server when you make code changes. - config.cache_classes = false + config.enable_reloading = true # Do not eager load code on boot. config.eager_load = false # Show full error reports. - config.consider_all_requests_local = true - - config.action_controller.perform_caching = false + config.consider_all_requests_local = false - # Enable server timing + # Enable server timing. config.server_timing = true - config.cache_store = :null_store + # 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 + + # Disable caching for Action Mailer templates even if Action Controller + # caching is enabled. config.action_mailer.perform_caching = false + config.action_mailer.default_url_options = { host: "localhost", port: 3000 } + # Print deprecation notices to the Rails logger. config.active_support.deprecation = :log @@ -44,24 +58,21 @@ # Highlight code that triggered database queries in logs. config.active_record.verbose_query_logs = true + # Highlight code that enqueued background job in logs. + config.active_job.verbose_enqueue_logs = true + # Suppress logger output for asset requests. config.assets.quiet = true - config.log_formatter = ::Logger::Formatter.new # 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 + config.action_view.annotate_rendered_view_with_filenames = true - # Uncomment if you wish to allow Action Cable access from any origin. - # config.action_cable.disable_request_forgery_protection = true + # Raise error when a before_action's only/except options reference missing actions. + config.action_controller.raise_on_missing_callback_actions = true - config.after_initialize do - sending_host = ENV["SENDING_HOST"] || "localhost" - ActionMailer::Base.delivery_method = :sendmail - ActionMailer::Base.default from: Settings.mail_from - ActionMailer::Base.default reply_to: Settings.mail_reply_to - ActionMailer::Base.default_url_options = { host: sending_host, protocol: "https" } - end + # Apply autocorrection by RuboCop to files generated by `bin/rails generate`. + # config.generators.apply_rubocop_autocorrect_after_generate! end diff --git a/config/environments/production.rb b/config/environments/production.rb index 8c3309063..76df18337 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -4,7 +4,7 @@ # Settings specified here will take precedence over those in config/application.rb. # Code is not reloaded between requests. - config.cache_classes = true + config.enable_reloading = false # Eager load code on boot. This eager loads most of Rails and # your application in memory, allowing both threaded web servers @@ -13,19 +13,22 @@ config.eager_load = true # Full error reports are disabled and caching is turned on. - config.consider_all_requests_local = false + 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). + # Ensures that a master key has been made available in ENV["RAILS_MASTER_KEY"], config/master.key, or an environment + # key such as config/credentials/production.key. This key is used to decrypt credentials (and other encrypted files). # config.require_master_key = true # Compress JavaScripts and CSS. - config.assets.js_compressor = :terser + # config.assets.js_compressor = :terser + + # Disable serving static files from `public/`, relying on NGINX/Apache to do so instead. + # config.public_file_server.enabled = false # Compress CSS using a preprocessor. # config.assets.css_compressor = :sass - # Do not fallback to assets pipeline if a precompiled asset is missed. + # Do not fall back to assets pipeline if a precompiled asset is missed. config.assets.compile = false # Enable serving of images, stylesheets, and JavaScripts from an asset server. @@ -40,8 +43,15 @@ # config.action_cable.url = "wss://example.com/cable" # config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ] + # Assume all access to the app is happening through a SSL-terminating reverse proxy. + # Can be used together with config.force_ssl for Strict-Transport-Security and secure cookies. + # config.assume_ssl = true + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. - # config.force_ssl = true + config.force_ssl = true + + # Skip http-to-https redirect for the default health check endpoint. + # config.ssl_options = { redirect: { exclude: ->(request) { request.path == "/up" } } } # Include generic and useful information about system operation, but avoid logging too much # information to avoid inadvertent exposure of personally identifiable information (PII). @@ -50,13 +60,17 @@ # Prepend all log lines with the following tags. config.log_tags = [:request_id] + # "info" includes generic and useful information about system operation, but avoids logging too much + # information to avoid inadvertent exposure of personally identifiable information (PII). If you + # want to log everything, set the level to "debug". + config.log_level = ENV.fetch("RAILS_LOG_LEVEL", "info") + # 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_adapter = :resque # config.active_job.queue_name_prefix = "parliamentary_questions_production" - config.action_mailer.perform_caching = false # Enable serving of images, stylesheets, and JavaScripts from an asset server. config.action_controller.asset_host = ENV["ASSET_HOST"] if ENV["ASSET_HOST"] @@ -65,6 +79,9 @@ # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. # config.assets.precompile += %w( search.js ) config.assets.precompile += %w(.svg .eot .woff .ttf *.js ^[^_]*.css ^[^_]*.scss) + # Disable caching for Action Mailer templates even if Action Controller + # caching is enabled. + 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. @@ -75,7 +92,6 @@ config.i18n.fallbacks = true # Don't log any deprecations. - config.active_support.deprecation = :notify config.active_support.report_deprecations = false # Use default logging formatter so that PID and timestamp are not suppressed. @@ -116,4 +132,11 @@ ActionMailer::Base.default from: Settings.mail_from ActionMailer::Base.default reply_to: Settings.mail_reply_to end + # Enable DNS rebinding protection and other `Host` header attacks. + # config.hosts = [ + # "example.com", # Allow requests from example.com + # /.*\.example\.com/ # Allow requests from subdomains like `www.example.com` + # ] + # Skip DNS rebinding protection for the default health check endpoint. + # config.host_authorization = { exclude: ->(request) { request.path == "/up" } } end diff --git a/config/environments/test.rb b/config/environments/test.rb index 5e1818886..7e00ee3e1 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -8,44 +8,44 @@ Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. - config.cache_classes = true + # While tests run files are not watched, reloading is not necessary. + config.enable_reloading = false - # Eager loading loads your whole application. When running a single test locally, - # this probably isn't necessary. It's a good idea to do in a continuous integration - # system, or in some way before deploying your code. - config.eager_load = false + # Eager loading loads your entire application. When running a single test locally, + # this is usually not necessary, and can slow down your test suite. However, it's + # recommended that you enable it in continuous integration systems to ensure eager + # loading is working properly before deploying your code. + config.eager_load = ENV["CI"].present? # 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}", - } + 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.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 + # Render exception templates for rescuable exceptions and raise for other exceptions. + config.action_dispatch.show_exceptions = :rescuable # Disable request forgery protection in test environment. config.action_controller.allow_forgery_protection = false - # Use default logging formatter so that PID and timestamp are not suppressed. - config.log_formatter = ::Logger::Formatter.new - # Store uploaded files on the local file system in a temporary directory. - # config.active_storage.service = :test + config.active_storage.service = :test + # Disable caching for Action Mailer templates even if Action Controller + # caching is enabled. 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 - # This fills in the 'from' field which is required to run feature - config.action_mailer.default_options = { from: "localhost" } + + # Unlike controllers, the mailer instance doesn't have any context about the + # incoming request so you'll need to provide the :host parameter yourself. + config.action_mailer.default_url_options = { host: "www.example.com" } # Print deprecation notices to the stderr. config.active_support.deprecation = :stderr diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index 91bbaf7c2..561f83b4f 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -1,12 +1,16 @@ -Rails.application.config.assets.precompile += %w[favicon.ico] -Rails.application.config.assets.precompile += %w[apple-touch-icon-152x152.png] -Rails.application.config.assets.precompile += %w[apple-touch-icon-120x120.png] -Rails.application.config.assets.precompile += %w[apple-touch-icon-76x76.png] -Rails.application.config.assets.precompile += %w[apple-touch-icon-60x60.png] -Rails.application.config.assets.precompile += %w[opengraph-image.png] -Rails.application.config.assets.precompile += %w[gov.uk_logotype_crown.png] -Rails.application.config.assets.precompile += %w[font-awesome.css] -Rails.application.config.assets.precompile += %w[select2.css] -Rails.application.config.assets.precompile += %w[select2-bootstrap.css] -Rails.application.config.assets.precompile += %w[vendor/jquery.datetimepicker.css] -Rails.application.config.assets.precompile += %w[vendor/pq-select2.css] +# 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 + +# 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 ] + +# For local development +Rails.application.config.assets.paths << Rails.root.join("node_modules") +Rails.application.config.assets.paths << Rails.root.join("node_modules/govuk-frontend/dist/govuk/assets") diff --git a/config/initializers/constants.rb b/config/initializers/constants.rb deleted file mode 100644 index d09cd2375..000000000 --- a/config/initializers/constants.rb +++ /dev/null @@ -1 +0,0 @@ -LARGEST_POSTGRES_INTEGER = 2_147_483_647 diff --git a/config/initializers/cookies_serializer.rb b/config/initializers/cookies_serializer.rb deleted file mode 100644 index f51a497e1..000000000 --- a/config/initializers/cookies_serializer.rb +++ /dev/null @@ -1,5 +0,0 @@ -# Be sure to restart your server when you modify this file. - -# Specify a serializer for the signed and encrypted cookie jars. -# Valid options are :json, :marshal, and :hybrid. -Rails.application.config.action_dispatch.cookies_serializer = :hybrid diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 90c6fdd26..7e6fd2304 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -315,7 +315,6 @@ Warden::Manager.after_authentication do |user, _auth, _opts| LogStuff.info "AUTH-LOG-IN: user #{user.email}, log in" - $statsd.increment "login" # rubocop:disable Style/GlobalVars end Warden::Manager.before_logout do |user, _auth, _opts| diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb index 8f69afd89..8900bb374 100644 --- a/config/initializers/inflections.rb +++ b/config/initializers/inflections.rb @@ -4,12 +4,10 @@ # are locale specific, and you may define rules for as many different # locales as you wish. All of these examples are active by default: # ActiveSupport::Inflector.inflections(:en) do |inflect| -# inflect.plural /^(ox)$/i, '\1en' # inflect.plural /^(ox)$/i, "\\1en" -# inflect.singular /^(ox)en/i, '\1' # inflect.singular /^(ox)en/i, "\\1" -# inflect.irregular 'person', 'people' # inflect.irregular "person", "people" +# inflect.uncountable %w( fish sheep ) # end # These inflection rules are supported but not enabled by default: diff --git a/config/initializers/monitoring.rb b/config/initializers/monitoring.rb deleted file mode 100644 index 9cad43a0c..000000000 --- a/config/initializers/monitoring.rb +++ /dev/null @@ -1,19 +0,0 @@ -ActiveSupport::Notifications.subscribe(/process_action.action_controller/) do |*args| - event = ActiveSupport::Notifications::Event.new(*args) - - controller = event.payload[:controller] - action = event.payload[:action] - event.payload[:path] - page_duration = event.duration - view_duration = event.payload[:view_runtime] - db_duration = event.payload[:db_runtime] - - key = "#{StatsHelper::PAGES_TIMING}.#{controller}.#{action}" - key = key.underscore - - # rubocop:disable Style/GlobalVars - $statsd.timing("#{key}.page", page_duration) - $statsd.timing("#{key}.view", view_duration) - $statsd.timing("#{key}.db", db_duration) - # rubocop:enable Style/GlobalVars -end diff --git a/config/initializers/new_framework_defaults_7_0.rb b/config/initializers/new_framework_defaults_7_0.rb deleted file mode 100644 index 2977589da..000000000 --- a/config/initializers/new_framework_defaults_7_0.rb +++ /dev/null @@ -1,141 +0,0 @@ -# Be sure to restart your server when you modify this file. -# -# This file eases your Rails 7.0 framework defaults upgrade. -# -# Uncomment each configuration one by one to switch to the new default. -# Once your application is ready to run with all new defaults, you can remove -# this file and set the `config.load_defaults` to `7.0`. -# -# Read the Guide for Upgrading Ruby on Rails for more info on each option. -# https://guides.rubyonrails.org/upgrading_ruby_on_rails.html - -# `button_to` view helper will render `<button>` element, regardless of whether -# or not the content is passed as the first argument or as a block. -Rails.application.config.action_view.button_to_generates_button_tag = true - -# `stylesheet_link_tag` view helper will not render the media attribute by default. -Rails.application.config.action_view.apply_stylesheet_media_default = false - -# Change the digest class for the key generators to `OpenSSL::Digest::SHA256`. -# Changing this default means invalidate all encrypted messages generated by -# your application and, all the encrypted cookies. Only change this after you -# rotated all the messages using the key rotator. -# -# See upgrading guide for more information on how to build a rotator. -# https://guides.rubyonrails.org/v7.0/upgrading_ruby_on_rails.html -# Rails.application.config.active_support.key_generator_hash_digest_class = OpenSSL::Digest::SHA256 - -# Change the digest class for ActiveSupport::Digest. -# Changing this default means that for example Etags change and -# various cache keys leading to cache invalidation. -Rails.application.config.active_support.hash_digest_class = OpenSSL::Digest::SHA256 - -# Don't override ActiveSupport::TimeWithZone.name and use the default Ruby -# implementation. -Rails.application.config.active_support.remove_deprecated_time_with_zone_name = true - -# Calls `Rails.application.executor.wrap` around test cases. -# This makes test cases behave closer to an actual request or job. -# Several features that are normally disabled in test, such as Active Record query cache -# and asynchronous queries will then be enabled. -Rails.application.config.active_support.executor_around_test_case = true - -# Set both the `:open_timeout` and `:read_timeout` values for `:smtp` delivery method. -Rails.application.config.action_mailer.smtp_timeout = 5 - -# The ActiveStorage video previewer will now use scene change detection to generate -# better preview images (rather than the previous default of using the first frame -# of the video). -# Rails.application.config.active_storage.video_preview_arguments = -# "-vf 'select=eq(n\\,0)+eq(key\\,1)+gt(scene\\,0.015),loop=loop=-1:size=2,trim=start_frame=1' -frames:v 1 -f image2" - -# Automatically infer `inverse_of` for associations with a scope. -Rails.application.config.active_record.automatic_scope_inversing = true - -# Raise when running tests if fixtures contained foreign key violations -Rails.application.config.active_record.verify_foreign_keys_for_fixtures = true - -# Disable partial inserts. -# This default means that all columns will be referenced in INSERT queries -# regardless of whether they have a default or not. -Rails.application.config.active_record.partial_inserts = false - -# Protect from open redirect attacks in `redirect_back_or_to` and `redirect_to`. -Rails.application.config.action_controller.raise_on_open_redirects = true - -# Change the variant processor for Active Storage. -# Changing this default means updating all places in your code that -# generate variants to use image processing macros and ruby-vips -# operations. See the upgrading guide for detail on the changes required. -# The `:mini_magick` option is not deprecated; it's fine to keep using it. -# Rails.application.config.active_storage.variant_processor = :vips - -# Enable parameter wrapping for JSON. -# Previously this was set in an initializer. It's fine to keep using that initializer if you've customized it. -# To disable parameter wrapping entirely, set this config to `false`. -Rails.application.config.action_controller.wrap_parameters_by_default = true - -# Specifies whether generated namespaced UUIDs follow the RFC 4122 standard for namespace IDs provided as a -# `String` to `Digest::UUID.uuid_v3` or `Digest::UUID.uuid_v5` method calls. -# -# See https://guides.rubyonrails.org/configuring.html#config-active-support-use-rfc4122-namespaced-uuids for -# more information. -Rails.application.config.active_support.use_rfc4122_namespaced_uuids = true - -# Change the default headers to disable browsers' flawed legacy XSS protection. -Rails.application.config.action_dispatch.default_headers = { - "X-Frame-Options" => "SAMEORIGIN", - "X-XSS-Protection" => "0", - "X-Content-Type-Options" => "nosniff", - "X-Download-Options" => "noopen", - "X-Permitted-Cross-Domain-Policies" => "none", - "Referrer-Policy" => "strict-origin-when-cross-origin", -} - -# ** Please read carefully, this must be configured in config/application.rb ** -# Change the format of the cache entry. -# Changing this default means that all new cache entries added to the cache -# will have a different format that is not supported by Rails 6.1 applications. -# Only change this value after your application is fully deployed to Rails 7.0 -# and you have no plans to rollback. -# When you're ready to change format, add this to `config/application.rb` (NOT this file): -# config.active_support.cache_format_version = 7.0 - -# Cookie serializer: 2 options -# -# If you're upgrading and haven't set `cookies_serializer` previously, your cookie serializer -# is `:marshal`. The default for new apps is `:json`. -# -# Rails.application.config.action_dispatch.cookies_serializer = :json -# -# -# To migrate an existing application to the `:json` serializer, use the `:hybrid` option. -# -# Rails transparently deserializes existing (Marshal-serialized) cookies on read and -# re-writes them in the JSON format. -# -# It is fine to use `:hybrid` long term; you should do that until you're confident *all* your cookies -# have been converted to JSON. To keep using `:hybrid` long term, move this config to its own -# initializer or to `config/application.rb`. -# -# Rails.application.config.action_dispatch.cookies_serializer = :hybrid -# -# -# If your cookies can't yet be serialized to JSON, keep using `:marshal` for backward-compatibility. -# -# If you have configured the serializer elsewhere, you can remove this section of the file. -# -# See https://guides.rubyonrails.org/action_controller_overview.html#cookies for more information. - -# Change the return value of `ActionDispatch::Request#content_type` to the Content-Type header without modification. -Rails.application.config.action_dispatch.return_only_request_media_type_on_content_type = false - -# Active Storage `has_many_attached` relationships will default to replacing the current collection instead of appending to it. -# Thus, to support submitting an empty collection, the `file_field` helper will render an hidden field `include_hidden` by default when `multiple_file_field_include_hidden` is set to `true`. -# See https://guides.rubyonrails.org/configuring.html#config-active-storage-multiple-file-field-include-hidden for more information. -# Rails.application.config.active_storage.multiple_file_field_include_hidden = true - -# ** Please read carefully, this must be configured in config/application.rb (NOT this file) ** -# Disables the deprecated #to_s override in some Ruby core classes -# See https://guides.rubyonrails.org/configuring.html#config-active-support-disable-to-s-conversion for more information. -# config.active_support.disable_to_s_conversion = true diff --git a/config/initializers/new_framework_defaults_7_1.rb b/config/initializers/new_framework_defaults_7_1.rb deleted file mode 100644 index d18d266c6..000000000 --- a/config/initializers/new_framework_defaults_7_1.rb +++ /dev/null @@ -1,280 +0,0 @@ -# Be sure to restart your server when you modify this file. -# -# This file eases your Rails 7.1 framework defaults upgrade. -# -# Uncomment each configuration one by one to switch to the new default. -# Once your application is ready to run with all new defaults, you can remove -# this file and set the `config.load_defaults` to `7.1`. -# -# Read the Guide for Upgrading Ruby on Rails for more info on each option. -# https://guides.rubyonrails.org/upgrading_ruby_on_rails.html - -### -# No longer add autoloaded paths into `$LOAD_PATH`. This means that you won't be able -# to manually require files that are managed by the autoloader, which you shouldn't do anyway. -# -# This will reduce the size of the load path, making `require` faster if you don't use bootsnap, or reduce the size -# of the bootsnap cache if you use it. -# -# To set this configuration, add the following line to `config/application.rb` (NOT this file): -# config.add_autoload_paths_to_load_path = false - -### -# Remove the default X-Download-Options headers since it is used only by Internet Explorer. -# If you need to support Internet Explorer, add back `"X-Download-Options" => "noopen"`. -#++ -Rails.application.config.action_dispatch.default_headers = { - "X-Frame-Options" => "SAMEORIGIN", - "X-XSS-Protection" => "0", - "X-Content-Type-Options" => "nosniff", - "X-Permitted-Cross-Domain-Policies" => "none", - "Referrer-Policy" => "strict-origin-when-cross-origin", -} - -### -# Do not treat an `ActionController::Parameters` instance -# as equal to an equivalent `Hash` by default. -#++ -Rails.application.config.action_controller.allow_deprecated_parameters_hash_equality = false - -### -# Active Record Encryption now uses SHA-256 as its hash digest algorithm. -# -# There are 3 scenarios to consider. -# -# 1. If you have data encrypted with previous Rails versions, and you have -# +config.active_support.key_generator_hash_digest_class+ configured as SHA1 (the default -# before Rails 7.0), you need to configure SHA-1 for Active Record Encryption too: -#++ -# Rails.application.config.active_record.encryption.hash_digest_class = OpenSSL::Digest::SHA1 -# -# 2. If you have +config.active_support.key_generator_hash_digest_class+ configured as SHA256 (the new default -# in 7.0), then you need to configure SHA-256 for Active Record Encryption: -#++ -# Rails.application.config.active_record.encryption.hash_digest_class = OpenSSL::Digest::SHA256 -# -# 3. If you don't currently have data encrypted with Active Record encryption, you can disable this setting to -# configure the default behavior starting 7.1+: -#++ -# Rails.application.config.active_record.encryption.support_sha1_for_non_deterministic_encryption = false - -### -# No longer run after_commit callbacks on the first of multiple Active Record -# instances to save changes to the same database row within a transaction. -# Instead, run these callbacks on the instance most likely to have internal -# state which matches what was committed to the database, typically the last -# instance to save. -#++ -Rails.application.config.active_record.run_commit_callbacks_on_first_saved_instances_in_transaction = false - -### -# Configures SQLite with a strict strings mode, which disables double-quoted string literals. -# -# SQLite has some quirks around double-quoted string literals. -# It first tries to consider double-quoted strings as identifier names, but if they don't exist -# it then considers them as string literals. Because of this, typos can silently go unnoticed. -# For example, it is possible to create an index for a non existing column. -# See https://www.sqlite.org/quirks.html#double_quoted_string_literals_are_accepted for more details. -#++ -# Rails.application.config.active_record.sqlite3_adapter_strict_strings_by_default = true - -### -# Disable deprecated singular associations names. -#++ -Rails.application.config.active_record.allow_deprecated_singular_associations_name = false - -### -# Enable the Active Job `BigDecimal` argument serializer, which guarantees -# roundtripping. Without this serializer, some queue adapters may serialize -# `BigDecimal` arguments as simple (non-roundtrippable) strings. -# -# When deploying an application with multiple replicas, old (pre-Rails 7.1) -# replicas will not be able to deserialize `BigDecimal` arguments from this -# serializer. Therefore, this setting should only be enabled after all replicas -# have been successfully upgraded to Rails 7.1. -#++ -Rails.application.config.active_job.use_big_decimal_serializer = true - -### -# Specify if an `ArgumentError` should be raised if `Rails.cache` `fetch` or -# `write` are given an invalid `expires_at` or `expires_in` time. -# Options are `true`, and `false`. If `false`, the exception will be reported -# as `handled` and logged instead. -#++ -Rails.application.config.active_support.raise_on_invalid_cache_expiration_time = true - -### -# Specify whether Query Logs will format tags using the SQLCommenter format -# (https://open-telemetry.github.io/opentelemetry-sqlcommenter/), or using the legacy format. -# Options are `:legacy` and `:sqlcommenter`. -#++ -# Rails.application.config.active_record.query_log_tags_format = :sqlcommenter - -### -# Specify the default serializer used by `MessageEncryptor` and `MessageVerifier` -# instances. -# -# The legacy default is `:marshal`, which is a potential vector for -# deserialization attacks in cases where a message signing secret has been -# leaked. -# -# In Rails 7.1, the new default is `:json_allow_marshal` which serializes and -# deserializes with `ActiveSupport::JSON`, but can fall back to deserializing -# with `Marshal` so that legacy messages can still be read. -# -# In Rails 7.2, the default will become `:json` which serializes and -# deserializes with `ActiveSupport::JSON` only. -# -# Alternatively, you can choose `:message_pack` or `:message_pack_allow_marshal`, -# which serialize with `ActiveSupport::MessagePack`. `ActiveSupport::MessagePack` -# can roundtrip some Ruby types that are not supported by JSON, and may provide -# improved performance, but it requires the `msgpack` gem. -# -# For more information, see -# https://guides.rubyonrails.org/v7.1/configuring.html#config-active-support-message-serializer -# -# If you are performing a rolling deploy of a Rails 7.1 upgrade, wherein servers -# that have not yet been upgraded must be able to read messages from upgraded -# servers, first deploy without changing the serializer, then set the serializer -# in a subsequent deploy. -#++ -# Rails.application.config.active_support.message_serializer = :json_allow_marshal - -### -# Enable a performance optimization that serializes message data and metadata -# together. This changes the message format, so messages serialized this way -# cannot be read by older versions of Rails. However, messages that use the old -# format can still be read, regardless of whether this optimization is enabled. -# -# To perform a rolling deploy of a Rails 7.1 upgrade, wherein servers that have -# not yet been upgraded must be able to read messages from upgraded servers, -# leave this optimization off on the first deploy, then enable it on a -# subsequent deploy. -#++ -# Rails.application.config.active_support.use_message_serializer_for_metadata = true - -### -# Set the maximum size for Rails log files. -# -# `config.load_defaults 7.1` does not set this value for environments other than -# development and test. -#++ -# if Rails.env.local? -# Rails.application.config.log_file_size = 100 * 1024 * 1024 -# end - -### -# Enable raising on assignment to attr_readonly attributes. The previous -# behavior would allow assignment but silently not persist changes to the -# database. -#++ -Rails.application.config.active_record.raise_on_assign_to_attr_readonly = true - -### -# Enable validating only parent-related columns for presence when the parent is mandatory. -# The previous behavior was to validate the presence of the parent record, which performed an extra query -# to get the parent every time the child record was updated, even when parent has not changed. -#++ -Rails.application.config.active_record.belongs_to_required_validates_foreign_key = false - -### -# Enable precompilation of `config.filter_parameters`. Precompilation can -# improve filtering performance, depending on the quantity and types of filters. -#++ -Rails.application.config.precompile_filter_parameters = true - -### -# Enable before_committed! callbacks on all enrolled records in a transaction. -# The previous behavior was to only run the callbacks on the first copy of a record -# if there were multiple copies of the same record enrolled in the transaction. -#++ -Rails.application.config.active_record.before_committed_on_all_records = true - -### -# Disable automatic column serialization into YAML. -# To keep the historic behavior, you can set it to `YAML`, however it is -# recommended to explicitly define the serialization method for each column -# rather than to rely on a global default. -#++ -# Rails.application.config.active_record.default_column_serializer = nil - -### -# Enable a performance optimization that serializes Active Record models -# in a faster and more compact way. -# -# To perform a rolling deploy of a Rails 7.1 upgrade, wherein servers that have -# not yet been upgraded must be able to read caches from upgraded servers, -# leave this optimization off on the first deploy, then enable it on a -# subsequent deploy. -#++ -# Rails.application.config.active_record.marshalling_format_version = 7.1 - -### -# Run `after_commit` and `after_*_commit` callbacks in the order they are defined in a model. -# This matches the behaviour of all other callbacks. -# In previous versions of Rails, they ran in the inverse order. -#++ -Rails.application.config.active_record.run_after_transaction_callbacks_in_order_defined = true - -### -# Whether a `transaction` block is committed or rolled back when exited via `return`, `break` or `throw`. -#++ -Rails.application.config.active_record.commit_transaction_on_non_local_return = true - -### -# Controls when to generate a value for <tt>has_secure_token</tt> declarations. -#++ -Rails.application.config.active_record.generate_secure_token_on = :initialize - -### -# ** Please read carefully, this must be configured in config/application.rb ** -# -# Change the format of the cache entry. -# -# Changing this default means that all new cache entries added to the cache -# will have a different format that is not supported by Rails 7.0 -# applications. -# -# Only change this value after your application is fully deployed to Rails 7.1 -# and you have no plans to rollback. -# When you're ready to change format, add this to `config/application.rb` (NOT -# this file): -# config.active_support.cache_format_version = 7.1 - -### -# Configure Action View to use HTML5 standards-compliant sanitizers when they are supported on your -# platform. -# -# `Rails::HTML::Sanitizer.best_supported_vendor` will cause Action View to use HTML5-compliant -# sanitizers if they are supported, else fall back to HTML4 sanitizers. -# -# In previous versions of Rails, Action View always used `Rails::HTML4::Sanitizer` as its vendor. -#++ -Rails.application.config.action_view.sanitizer_vendor = Rails::HTML::Sanitizer.best_supported_vendor - -### -# Configure Action Text to use an HTML5 standards-compliant sanitizer when it is supported on your -# platform. -# -# `Rails::HTML::Sanitizer.best_supported_vendor` will cause Action Text to use HTML5-compliant -# sanitizers if they are supported, else fall back to HTML4 sanitizers. -# -# In previous versions of Rails, Action Text always used `Rails::HTML4::Sanitizer` as its vendor. -#++ -# Rails.application.config.action_text.sanitizer_vendor = Rails::HTML::Sanitizer.best_supported_vendor - -### -# Configure the log level used by the DebugExceptions middleware when logging -# uncaught exceptions during requests. -#++ -Rails.application.config.action_dispatch.debug_exception_log_level = :error - -### -# Configure the test helpers in Action View, Action Dispatch, and rails-dom-testing to use HTML5 -# parsers. -# -# Nokogiri::HTML5 isn't supported on JRuby, so JRuby applications must set this to :html4. -# -# In previous versions of Rails, these test helpers always used an HTML4 parser. -#++ -Rails.application.config.dom_testing_default_html_version = :html5 diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 761556186..7473d3ad7 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -1,5 +1,6 @@ if ENV["SENTRY_DSN"].present? Sentry.init do |config| + config.environment = ENV["ENV"] config.dsn = ENV["SENTRY_DSN"] config.breadcrumbs_logger = [:active_support_logger] end diff --git a/config/kubernetes/development/deployment.yaml b/config/kubernetes/development/deployment.yaml index 874bf3bc9..4db49b475 100644 --- a/config/kubernetes/development/deployment.yaml +++ b/config/kubernetes/development/deployment.yaml @@ -63,9 +63,9 @@ spec: value: https - name: X-Forwarded-Ssl value: "on" - initialDelaySeconds: 40 - periodSeconds: 60 - timeoutSeconds: 15 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 10 livenessProbe: httpGet: path: /ping.json @@ -75,9 +75,9 @@ spec: value: https - name: X-Forwarded-Ssl value: "on" - initialDelaySeconds: 40 - periodSeconds: 60 - timeoutSeconds: 15 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 10 imagePullPolicy: Always ports: - containerPort: 3000 diff --git a/config/kubernetes/development/deployment_sidekiq.yaml b/config/kubernetes/development/deployment_sidekiq.yaml index 6de095dfd..a01fcbcef 100644 --- a/config/kubernetes/development/deployment_sidekiq.yaml +++ b/config/kubernetes/development/deployment_sidekiq.yaml @@ -60,19 +60,15 @@ spec: - /bin/sh - -c - 'bundle exec sidekiqmon | grep "parliamentary-questions"' - initialDelaySeconds: 30 - periodSeconds: 90 - timeoutSeconds: 15 - successThreshold: 1 - failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 10 livenessProbe: exec: command: - /bin/sh - -c - 'bundle exec sidekiqmon | grep "parliamentary-questions"' - initialDelaySeconds: 30 - periodSeconds: 90 - timeoutSeconds: 15 - successThreshold: 1 - failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 10 diff --git a/config/kubernetes/development/migration_job.yaml b/config/kubernetes/development/migration_job.yaml index ab8338f58..d2f4acf61 100644 --- a/config/kubernetes/development/migration_job.yaml +++ b/config/kubernetes/development/migration_job.yaml @@ -17,16 +17,6 @@ spec: secretKeyRef: key: rds_instance_address name: parliamentary-questions-development-rds - - name: DEVISE_SECRET - valueFrom: - secretKeyRef: - key: DEVISE_SECRET - name: pq-secrets - - name: GOVUK_NOTIFY_API_KEY - valueFrom: - secretKeyRef: - key: GOVUK_NOTIFY_API_KEY - name: pq-secrets - name: PGPASSWORD valueFrom: secretKeyRef: @@ -37,26 +27,6 @@ spec: secretKeyRef: key: database_username name: parliamentary-questions-development-rds - - name: PQ_REST_API_HOST - valueFrom: - secretKeyRef: - key: PQ_REST_API_HOST - name: pq-secrets - - name: PQ_REST_API_PASSWORD - valueFrom: - secretKeyRef: - key: PQ_REST_API_PASSWORD - name: pq-secrets - - name: PQ_REST_API_URL - valueFrom: - secretKeyRef: - key: PQ_REST_API_URL - name: pq-secrets - - name: PQ_REST_API_USERNAME - valueFrom: - secretKeyRef: - key: PQ_REST_API_USERNAME - name: pq-secrets envFrom: - configMapRef: name: environment-variables diff --git a/config/kubernetes/production/deployment.yaml b/config/kubernetes/production/deployment.yaml index ad889ce3d..4a5a37baf 100644 --- a/config/kubernetes/production/deployment.yaml +++ b/config/kubernetes/production/deployment.yaml @@ -63,9 +63,9 @@ spec: value: https - name: X-Forwarded-Ssl value: "on" - initialDelaySeconds: 40 - periodSeconds: 60 - timeoutSeconds: 15 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 10 livenessProbe: httpGet: path: /ping.json @@ -75,9 +75,9 @@ spec: value: https - name: X-Forwarded-Ssl value: "on" - initialDelaySeconds: 40 - periodSeconds: 60 - timeoutSeconds: 15 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 10 imagePullPolicy: Always ports: - containerPort: 3000 diff --git a/config/kubernetes/production/deployment_sidekiq.yaml b/config/kubernetes/production/deployment_sidekiq.yaml index c9fa9296b..43ffffc1c 100644 --- a/config/kubernetes/production/deployment_sidekiq.yaml +++ b/config/kubernetes/production/deployment_sidekiq.yaml @@ -60,19 +60,15 @@ spec: - /bin/sh - -c - 'bundle exec sidekiqmon | grep "parliamentary-questions"' - initialDelaySeconds: 30 - periodSeconds: 90 - timeoutSeconds: 15 - successThreshold: 1 - failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 10 livenessProbe: exec: command: - /bin/sh - -c - 'bundle exec sidekiqmon | grep "parliamentary-questions"' - initialDelaySeconds: 30 - periodSeconds: 90 - timeoutSeconds: 15 - successThreshold: 1 - failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 10 diff --git a/config/kubernetes/staging/deployment.yaml b/config/kubernetes/staging/deployment.yaml index 6e2e5d700..f04e35200 100755 --- a/config/kubernetes/staging/deployment.yaml +++ b/config/kubernetes/staging/deployment.yaml @@ -63,9 +63,9 @@ spec: value: https - name: X-Forwarded-Ssl value: "on" - initialDelaySeconds: 40 - periodSeconds: 60 - timeoutSeconds: 15 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 10 livenessProbe: httpGet: path: /ping.json @@ -75,9 +75,9 @@ spec: value: https - name: X-Forwarded-Ssl value: "on" - initialDelaySeconds: 40 - periodSeconds: 60 - timeoutSeconds: 15 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 10 imagePullPolicy: Always ports: - containerPort: 3000 diff --git a/config/kubernetes/staging/deployment_sidekiq.yaml b/config/kubernetes/staging/deployment_sidekiq.yaml index ddb462871..dacbdeaf1 100644 --- a/config/kubernetes/staging/deployment_sidekiq.yaml +++ b/config/kubernetes/staging/deployment_sidekiq.yaml @@ -60,19 +60,15 @@ spec: - /bin/sh - -c - 'bundle exec sidekiqmon | grep "parliamentary-questions"' - initialDelaySeconds: 30 - periodSeconds: 90 - timeoutSeconds: 15 - successThreshold: 1 - failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 10 livenessProbe: exec: command: - /bin/sh - -c - 'bundle exec sidekiqmon | grep "parliamentary-questions"' - initialDelaySeconds: 30 - periodSeconds: 90 - timeoutSeconds: 15 - successThreshold: 1 - failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 10 diff --git a/config/routes.rb b/config/routes.rb index 3303d5abc..393642802 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -81,18 +81,8 @@ match "export/csv_quick.csv" => "export#csv_quick", via: %i[get post] get "export" => "export#index" - get "reports/ministers_by_progress" => "reports#ministers_by_progress" - get "reports/press_desk_by_progress" => "reports#press_desk_by_progress" - get "/accessibility" => "pages#accessibility" - match "reports/filter_all" => "reports#filter_all", via: %i[get post], as: "filter_all" - - match "*path", to: "application#page_not_found", via: :all - - if Rails.env.production? - get "401", to: "application#unauthorized" - get "404", to: "application#page_not_found" - get "500", to: "application#server_error" - end + get "/404", to: "errors#not_found" + get "/500", to: "errors#internal_error" end diff --git a/db/schema.rb b/db/schema.rb index 886973432..93cf77f5f 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 2024_10_16_133636) do +ActiveRecord::Schema[7.2].define(version: 2024_10_16_133636) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -286,5 +286,4 @@ t.datetime "created_at", precision: nil t.index ["item_type", "item_id"], name: "index_versions_on_item_type_and_item_id" end - end diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh deleted file mode 100755 index fe4b435f8..000000000 --- a/docker/entrypoint.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -export PATH=${APP_HOME}/bin:$PATH - -exec -- "$@" diff --git a/lib/pqa/mock_api_server.rb b/lib/pqa/mock_api_server.rb index 24d5d2215..102c1cb3e 100644 --- a/lib/pqa/mock_api_server.rb +++ b/lib/pqa/mock_api_server.rb @@ -13,6 +13,8 @@ class MockApiServer < Sinatra::Base set :lock, true end + use Rack::RewindableInput::Middleware + # NOTE: Internal to the Mock API server get "/" do "This API is working" @@ -26,6 +28,7 @@ class MockApiServer < Sinatra::Base # NOTE: Internal to the Mock API server put "/api/qais/questions/:uin" do + request.body.rewind xml = request.body.read doc = Nokogiri::XML(xml) errors = SCHEMA.validate(doc) diff --git a/lib/pqa/mock_api_server_runner.rb b/lib/pqa/mock_api_server_runner.rb index db9811284..4deacbed8 100644 --- a/lib/pqa/mock_api_server_runner.rb +++ b/lib/pqa/mock_api_server_runner.rb @@ -9,7 +9,7 @@ class MockApiServerRunner HEARTBEAT_ENDPOINT = "/".freeze def start - cmd = "rackup -p #{PORT} -P #{PID_FILEPATH} #{RACK_CONFIG_PATH} &> #{LOG_FILEPATH}" + cmd = "bundle exec rackup -p #{PORT} -P #{PID_FILEPATH} #{RACK_CONFIG_PATH} &> #{LOG_FILEPATH}" if File.exist?(PID_FILEPATH) pid = File.read(PID_FILEPATH) diff --git a/lib/presenters/report.rb b/lib/presenters/report.rb deleted file mode 100644 index e9b43e572..000000000 --- a/lib/presenters/report.rb +++ /dev/null @@ -1,60 +0,0 @@ -module Presenters - class Report - attr_reader :header_cells, :rows, :title - - def initialize(header_cells, rows, title) - @header_cells = header_cells - @rows = rows - @title = title - end - - def self.ministers(report_h, ministers) - build(report_h, ministers, PqState::IN_PROGRESS, "Minister report") - end - - def self.press_desk(report_h, press_desks) - states = PqState::IN_PROGRESS + PqState::CLOSED - build(report_h, press_desks, states, "Press desk report") - end - - # private_class_method - - def self.build(report_h, records, states, title) - header_cells = records.map { |r| present_cell(r) } - rows = - states.map do |state| - counts = report_h.fetch(state, {}) - cells = - records.map do |r| - count = counts.fetch(r.id, 0) - present_count_cell(count, r, state) - end - Row.new(state, cells) - end - - new(header_cells, rows, title) - end - - def self.present_cell(report) - case report - when Minister - ClickableCell.minister(report.name, report.id) - when PressDesk - ClickableCell.press_desk(report.name, report.id) - else - raise ArgumentError, "record should be a Minister or a PressDesk" - end - end - - def self.present_count_cell(count, report, state) - case report - when Minister - CountCell.minister(count, report.id, state) - when PressDesk - CountCell.press_desk(count, report.id, state) - else - raise ArgumentError, "record should be a Minister or a PressDesk" - end - end - end -end diff --git a/lib/presenters/report/clickable_cell.rb b/lib/presenters/report/clickable_cell.rb deleted file mode 100644 index ef8a652ec..000000000 --- a/lib/presenters/report/clickable_cell.rb +++ /dev/null @@ -1,26 +0,0 @@ -module Presenters - class Report - class ClickableCell - include Rails.application.routes.url_helpers - - def self.minister(label, id) - new(label, minister_id: id) - end - - def self.press_desk(label, id) - new(label, press_desk_id: id) - end - - attr_reader :label - - def initialize(label, filter_params) - @label = label - @filter_params = filter_params - end - - def path - filter_all_path(@filter_params) - end - end - end -end diff --git a/lib/presenters/report/count_cell.rb b/lib/presenters/report/count_cell.rb deleted file mode 100644 index a2ba1415b..000000000 --- a/lib/presenters/report/count_cell.rb +++ /dev/null @@ -1,24 +0,0 @@ -module Presenters - class Report - class CountCell < ClickableCell - attr_reader :count - - def self.minister(label, id, state) - new(label, minister_id: id, state:) - end - - def self.press_desk(label, id, state) - new(label, press_desk_id: id, state:) - end - - def initialize(count, filter_params) - @count = count - super(count, filter_params) - end - - def zero? - @count.zero? - end - end - end -end diff --git a/lib/presenters/report/row.rb b/lib/presenters/report/row.rb deleted file mode 100644 index 4f0ed76d0..000000000 --- a/lib/presenters/report/row.rb +++ /dev/null @@ -1,16 +0,0 @@ -module Presenters - class Report - class Row - attr_reader :cells, :state - - def initialize(state, cells) - @state = state - @cells = cells - end - - def label - PqState.state_label(@state) - end - end - end -end diff --git a/lib/smoke_test.rb b/lib/smoke_test.rb index 54da22a2d..7bfddd3db 100644 --- a/lib/smoke_test.rb +++ b/lib/smoke_test.rb @@ -8,7 +8,6 @@ module SmokeTest ALL = [ SmokeTest::Dashboard, - SmokeTest::Report, ].freeze def factory diff --git a/lib/smoke_test/report.rb b/lib/smoke_test/report.rb deleted file mode 100644 index 2bc1a873a..000000000 --- a/lib/smoke_test/report.rb +++ /dev/null @@ -1,11 +0,0 @@ -module SmokeTest - class Report < Base - private - - def all_checks_succeed? - agent.get reports_press_desk_by_progress_path - - agent.page.code == "200" && !!agent.page.body.include?("/Press desk report/") - end - end -end diff --git a/lib/tasks/email.rake b/lib/tasks/email.rake deleted file mode 100644 index 89aa75c9a..000000000 --- a/lib/tasks/email.rake +++ /dev/null @@ -1,6 +0,0 @@ -namespace :email do - desc "Adds emails from db to a queue and attempts to send, logging failures" - task process_queue: :environment do - MailWorker.new.run! - end -end diff --git a/package.json b/package.json new file mode 100644 index 000000000..aae4220ab --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "dependencies": { + "@rails/ujs": "^7.1.3-4", + "font-awesome": "^4.7.0", + "govuk-frontend": "^5.7.1", + "jquery": "^3.7.1", + "moment": "^2.30.1", + "sass": "^1.80.5", + "select2": "^4.1.0-rc.0" + }, + "scripts": { + "build:css": "sass ./app/assets/stylesheets/application.sass.scss:./app/assets/builds/application.css --no-source-map --load-path=node_modules --quiet-deps --silence-deprecation=import", + "build": "esbuild app/javascript/*.* --bundle --sourcemap --format=esm --outdir=app/assets/builds --public-path=/assets" + }, + "devDependencies": { + "esbuild": "^0.24.0" + } +} diff --git a/public/401.html b/public/401.html deleted file mode 100644 index e92ca1106..000000000 --- a/public/401.html +++ /dev/null @@ -1,114 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8" /> - <title>Error - 401 - Unauthorised - Parliamentary Questions - Ministry of Justice - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-
- -

Please contact pqsupport@digital.justice.gov.uk with the details on how you got here to report this issue.

-
-
- -
- -
- - - - - - - diff --git a/public/404.html b/public/404.html deleted file mode 100644 index 003a4296f..000000000 --- a/public/404.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - Error - 404 - Page cannot be found - Parliamentary Questions - Ministry of Justice - - - - - - - - - - - - - - - - - - - - -
- -
-
-
-
- -

If you typed the web address, check it is correct.

-

If you pasted the web address, check you copied the entire address.

-

If the web address is correct or you selected a link or button, please contact pqsupport@digital.justice.gov.uk with the details to report this issue.

-
-
- -
- -
- - - - - - - diff --git a/public/500.html b/public/500.html deleted file mode 100644 index 36bbc6486..000000000 --- a/public/500.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - Error - 500 - Internal server error - Parliamentary Questions - Ministry of Justice - - - - - ] - - - - - - - - - - - - - - - -
- -
-
-
-
- -

Please contact pqsupport@digital.justice.gov.uk with the details to report this issue.

-
-
- -
- -
- - - - - - - diff --git a/public/assets/application.css b/public/assets/application.css deleted file mode 100644 index 6cc850d90..000000000 --- a/public/assets/application.css +++ /dev/null @@ -1,29 +0,0 @@ -.govuk-header__service-name{ - font-size: 24px !important; -} - -.govuk-header{ - border-bottom: none !important; -} - -.govuk-header__container{ - border-bottom: none !important; -} - -#global-header .header-wrapper { - padding-top: 0 !important; - padding-bottom: 0 !important; -} - -.govuk-footer { - font-size: 85%; -} -.panel:after,.form-group-error:after,.form-section:after,.form-group:after,fieldset:after,.notice:after,#content:after,.grid-row:after{content:"";display:block;clear:both}.panel:after,.form-group-error:after,.form-section:after,.form-group:after,fieldset:after,.notice:after,#content:after,.grid-row:after{content:"";display:block;clear:both}.panel:after,.form-group-error:after,.form-section:after,.form-group:after,fieldset:after,.notice:after,#content:after,.grid-row:after{content:"";display:block;clear:both}.alert-banner,#content{max-width:960px;margin:0 15px}@media (min-width: 641px){.alert-banner,#content{margin:0 30px}}@media (min-width: 1020px){.alert-banner,#content{margin:0 auto}}.grid-row{margin:0 -15px}.panel:after,.form-group-error:after,.form-section:after,.form-group:after,fieldset:after,.notice:after,#content:after,.grid-row:after{content:"";display:block;clear:both}.visually-hidden,.visuallyhidden{position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0}div,span,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark{border:none;margin:0;padding:0}h1,h2,h3,h4,h5,h6,p,blockquote,pre,small,strike,strong,sub,sup,tt,var,b,u,i,center,input,textarea,table,caption,tbody,tfoot,thead,tr,th,td{font-size:inherit;font-family:inherit;line-height:inherit;font-weight:normal}abbr[title],acronym[title]{text-decoration:none}legend{box-sizing:border-box;max-width:100%;display:table}#content{padding-bottom:30px;outline:none}@media (min-width: 769px){#content{padding-bottom:90px}}.column-quarter,.column-one-quarter{padding:0 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (min-width: 641px){.column-quarter,.column-one-quarter{float:left;width:25%}}.column-half,.column-one-half{padding:0 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (min-width: 641px){.column-half,.column-one-half{float:left;width:50%}}.column-third,.column-one-third{padding:0 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (min-width: 641px){.column-third,.column-one-third{float:left;width:33.3333333333%}}.column-two-thirds{padding:0 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (min-width: 641px){.column-two-thirds{float:left;width:66.6666666667%}}.column-full{padding:0 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media (min-width: 641px){.column-full{float:left;width:100%}}.button{background-color:#00823b;position:relative;display:-moz-inline-stack;display:inline-block;padding:.526315em .789473em .263157em;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;outline:1px solid transparent;outline-offset:-1px;-webkit-appearance:none;-webkit-box-shadow:0 2px 0 #003618;-moz-box-shadow:0 2px 0 #003618;box-shadow:0 2px 0 #003618;font-size:1em;line-height:1.25;text-decoration:none;-webkit-font-smoothing:antialiased;cursor:pointer;color:#fff;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;vertical-align:top}.button:visited{background-color:#00823b}.button:hover,.button:focus{background-color:#00692f}.button:active{top:2px;-webkit-box-shadow:0 0 0 #00823b;-moz-box-shadow:0 0 0 #00823b;box-shadow:0 0 0 #00823b}.button.disabled,.button[disabled="disabled"],.button[disabled]{zoom:1;filter:alpha(opacity=50);opacity:0.5}.button.disabled:hover,.button[disabled="disabled"]:hover,.button[disabled]:hover{cursor:default;background-color:#00823b}.button.disabled:active,.button[disabled="disabled"]:active,.button[disabled]:active{top:0;-webkit-box-shadow:0 2px 0 #003618;-moz-box-shadow:0 2px 0 #003618;box-shadow:0 2px 0 #003618}.button:link,.button:link:focus,.button:hover,.button:focus,.button:visited{color:#fff}.button:before{content:"";height:110%;width:100%;display:block;background:transparent;position:absolute;top:0;left:0}.button:active:before{top:-10%;height:120%}@media (max-width: 640px){.button{width:100%;text-align:center}}.button::-moz-focus-inner{border:0;padding:0}.button:focus{outline:3px solid #ffbf47}.button[disabled="disabled"]{background:#00823b}.button[disabled="disabled"]:focus{outline:none}.button-start,.button-get-started{font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:18px;line-height:1.2;background-image:url(/assets/icon-pointer-3d9ba272cbcde0f273c3454bf2f15ccf16a50868e06492dbf1daeb8ca11d6bd8.png);background-repeat:no-repeat;background-position:100% 50%;padding:0.3684210526em 2.1578947368em 0.2105263158em 0.8421052632em}@media (min-width: 641px){.button-start,.button-get-started{font-size:24px;line-height:1.25}}@media only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 20/10),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx){.button-start,.button-get-started{background-image:url(/assets/icon-pointer-2x-721912b6d431cad3adbc3cca00073beb7b4b7e2dbddc209fd1728f6f3972b81c.png);background-size:30px 19px}}.govuk-box-highlight{margin:1em 0;padding:2em 1em;color:#fff;background:#28a197;text-align:center}details{display:block;clear:both}details summary{display:inline-block;color:#005ea5;cursor:pointer;position:relative;margin-bottom:0.2631578947em;padding-left:25px}details summary:before{content:"";position:absolute;top:0;bottom:0;left:0;margin:auto;display:block;width:0;height:0;border-style:solid;border-color:transparent;-webkit-clip-path:polygon(0% 0%, 100% 50%, 0% 100%);clip-path:polygon(0% 0%, 100% 50%, 0% 100%);border-width:7px 0 7px 12.124px;border-left-color:inherit}details summary:hover{color:#2b8cc4}details summary:focus{outline:3px solid #ffbf47}details summary::-webkit-details-marker{display:none}details[open]>summary:before{display:block;width:0;height:0;border-style:solid;border-color:transparent;-webkit-clip-path:polygon(0% 0%, 50% 100%, 100% 0%);clip-path:polygon(0% 0%, 50% 100%, 100% 0%);border-width:12.124px 7px 0 7px;border-top-color:inherit}details .summary{text-decoration:underline}details .arrow{display:none}main{font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:16px;line-height:1.25;-webkit-font-smoothing:antialiased}@media (min-width: 641px){main{font-size:19px;line-height:1.3157894737}}.font-xxlarge{font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:53px;line-height:1.0377358491}@media (min-width: 641px){.font-xxlarge{font-size:80px;line-height:1}}.font-xlarge{font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:32px;line-height:1.09375}@media (min-width: 641px){.font-xlarge{font-size:48px;line-height:1.0416666667}}.font-large{font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:24px;line-height:1.0416666667}@media (min-width: 641px){.font-large{font-size:36px;line-height:1.1111111111}}.font-medium{font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:18px;line-height:1.2}@media (min-width: 641px){.font-medium{font-size:24px;line-height:1.25}}.font-small{font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:16px;line-height:1.25}@media (min-width: 641px){.font-small{font-size:19px;line-height:1.3157894737}}.font-xsmall{font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:14px;line-height:1.1428571429}@media (min-width: 641px){.font-xsmall{font-size:16px;line-height:1.25}}.bold-xxlarge{font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:53px;line-height:1.0377358491}@media (min-width: 641px){.bold-xxlarge{font-size:80px;line-height:1}}.bold-xlarge{font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:32px;line-height:1.09375}@media (min-width: 641px){.bold-xlarge{font-size:48px;line-height:1.0416666667}}.bold-large{font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:24px;line-height:1.0416666667}@media (min-width: 641px){.bold-large{font-size:36px;line-height:1.1111111111}}.bold-medium{font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:18px;line-height:1.2}@media (min-width: 641px){.bold-medium{font-size:24px;line-height:1.25}}.bold-small{font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media (min-width: 641px){.bold-small{font-size:19px;line-height:1.3157894737}}.bold-xsmall{font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:14px;line-height:1.1428571429}@media (min-width: 641px){.bold-xsmall{font-size:16px;line-height:1.25}}.bold{font-weight:700}.heading-xlarge{font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:32px;line-height:1.09375;display:block;margin-top:0.46875em;margin-bottom:0.9375em}@media (min-width: 641px){.heading-xlarge{font-size:48px;line-height:1.0416666667}}@media (min-width: 641px){.heading-xlarge{margin-top:0.625em;margin-bottom:1.25em}}.heading-xlarge .heading-secondary{font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:20px;line-height:1.1111111111;display:block;padding-top:8px;padding-bottom:7px;display:block;color:#6f777b}@media (min-width: 641px){.heading-xlarge .heading-secondary{font-size:27px;line-height:1.1111111111}}@media (min-width: 641px){.heading-xlarge .heading-secondary{padding-top:4px;padding-bottom:6px}}.heading-large{font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:24px;line-height:1.0416666667;display:block;margin-top:1.0416666667em;margin-bottom:0.4166666667em}@media (min-width: 641px){.heading-large{font-size:36px;line-height:1.1111111111}}@media (min-width: 641px){.heading-large{margin-top:1.25em;margin-bottom:0.5555555556em}}.heading-large .heading-secondary{font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:18px;line-height:1.2;display:block;padding-top:9px;padding-bottom:6px;display:block;color:#6f777b}@media (min-width: 641px){.heading-large .heading-secondary{font-size:24px;line-height:1.25}}@media (min-width: 641px){.heading-large .heading-secondary{padding-top:6px;padding-bottom:4px}}.heading-medium{font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:18px;line-height:1.2;display:block;margin-top:1.25em;margin-bottom:0.5em}@media (min-width: 641px){.heading-medium{font-size:24px;line-height:1.25}}@media (min-width: 641px){.heading-medium{margin-top:1.875em;margin-bottom:0.8333333333em}}.heading-small{font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25;display:block;margin-top:0.625em;margin-bottom:0.3125em}@media (min-width: 641px){.heading-small{font-size:19px;line-height:1.3157894737}}@media (min-width: 641px){.heading-small{margin-top:1.0526315789em}}p,.body-text{margin-top:0.3125em;margin-bottom:1.25em}@media (min-width: 641px){p,.body-text{margin-top:0.2631578947em;margin-bottom:1.0526315789em}}.body-text{display:block}.lede{font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:18px;line-height:1.2}@media (min-width: 641px){.lede{font-size:24px;line-height:1.25}}.text{max-width:30em}.text-secondary{color:#6f777b}.link{color:#005ea5;text-decoration:underline}.link:visited{color:#4c2c92}.link:hover{color:#2b8cc4}.link:active{color:#005ea5}.link-back{display:-moz-inline-stack;display:inline-block;position:relative;font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:14px;line-height:1.1428571429;margin-top:15px;margin-bottom:15px;padding-left:14px;color:#0b0c0c;text-decoration:none;border-bottom:1px solid #0b0c0c}@media (min-width: 641px){.link-back{font-size:16px;line-height:1.25}}.link-back:link,.link-back:visited,.link-back:hover,.link-back a.link-back:focus,.link-back:active{color:#0b0c0c}.link-back::before{content:'';display:block;width:0;height:0;border-top:5px solid transparent;border-right:6px solid #0b0c0c;border-bottom:5px solid transparent;position:absolute;left:0;top:50%;margin-top:-6px}.code{color:#0b0c0c;background-color:#f8f8f8;text-shadow:0 1px #fff;font-family:Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;font-size:14px;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;border:1px solid #bfc1c3;padding:4px 4px 2px}hr{display:block;background:#bfc1c3;border:0;height:1px;margin-top:30px;margin-bottom:30px;padding:0}.notice{position:relative}.notice .icon{position:absolute;left:0;top:50%;margin-top:-17px}.notice strong{display:block;padding-left:65px;margin-left:-15px}.data{margin-top:0.3125em;margin-bottom:1.25em}@media (min-width: 641px){.data{margin-top:0.2631578947em;margin-bottom:1.0526315789em}}.data-item{display:block;line-height:1}fieldset{width:100%}fieldset.after-error-summary{margin-top:-15px}@media (min-width: 641px){fieldset.after-error-summary{margin-top:-30px}}legend{overflow:hidden}textarea{display:block}.form-section,.form-group{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-section{margin-bottom:30px}@media (min-width: 641px){.form-section{margin-bottom:60px}}.form-group{margin-bottom:15px}@media (min-width: 641px){.form-group{margin-bottom:30px}}.form-group-related{margin-bottom:10px}@media (min-width: 641px){.form-group-related{margin-bottom:20px}}.form-group-compound{margin-bottom:10px}.form-label,.form-label-bold{display:block;color:#0b0c0c;padding-bottom:2px}.form-label{font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:16px;line-height:1.25}@media (min-width: 641px){.form-label{font-size:19px;line-height:1.3157894737}}.form-label-bold{font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media (min-width: 641px){.form-label-bold{font-size:19px;line-height:1.3157894737}}.form-block{float:left;clear:left;margin-top:-5px;margin-bottom:5px}@media (min-width: 641px){.form-block{margin-top:0;margin-bottom:10px}}.form-hint{font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:16px;line-height:1.25;display:block;color:#6f777b;font-weight:normal;margin-top:-2px;padding-bottom:2px}@media (min-width: 641px){.form-hint{font-size:19px;line-height:1.3157894737}}.form-label .form-hint,.form-label-bold .form-hint{margin-top:0;padding-bottom:0}.form-control{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:16px;line-height:1.25;width:100%;padding:5px 4px 4px;border:2px solid #0b0c0c}@media (min-width: 641px){.form-control{font-size:19px;line-height:1.3157894737}}@media (min-width: 641px){.form-control{width:50%}}input.form-control,textarea.form-control{-webkit-appearance:none;border-radius:0}textarea.form-control{opacity:1;background-image:none}.form-control-3-4{width:100%}@media (min-width: 641px){.form-control-3-4{width:75%}}.form-control-2-3{width:100%}@media (min-width: 641px){.form-control-2-3{width:66.66%}}.form-control-1-2{width:100%}@media (min-width: 641px){.form-control-1-2{width:50%}}.form-control-1-3{width:100%}@media (min-width: 641px){.form-control-1-3{width:33.33%}}.form-control-1-4{width:100%}@media (min-width: 641px){.form-control-1-4{width:25%}}.form-control-1-8{width:100%}@media (min-width: 641px){.form-control-1-8{width:12.5%}}option:active,option:checked,select:focus::-ms-value{color:#fff;background-color:#005ea5}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.form-date .form-group{float:left;width:50px;margin-right:20px;margin-bottom:0;clear:none}.form-date .form-group label{display:block;padding-bottom:2px}.form-date .form-group input{width:100%}.form-date .form-group-year{width:70px}.multiple-choice{display:block;float:none;clear:left;position:relative;padding:0 0 0 38px;margin-bottom:10px}@media (min-width: 641px){.multiple-choice{float:left}}.multiple-choice input{position:absolute;cursor:pointer;left:0;top:0;width:38px;height:38px;z-index:1;margin:0;zoom:1;filter:alpha(opacity=0);opacity:0}.multiple-choice label{cursor:pointer;padding:8px 10px 9px 12px;display:block;-ms-touch-action:manipulation;touch-action:manipulation}@media (min-width: 641px){.multiple-choice label{float:left;padding-top:7px;padding-bottom:7px}}.multiple-choice [type=radio]+label::before{content:"";border:2px solid;background:transparent;width:34px;height:34px;position:absolute;top:0;left:0;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%}.multiple-choice [type=radio]+label::after{content:"";border:10px solid;width:0;height:0;position:absolute;top:9px;left:9px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;zoom:1;filter:alpha(opacity=0);opacity:0}.multiple-choice [type=checkbox]+label::before{content:"";border:2px solid;background:transparent;width:34px;height:34px;position:absolute;top:0;left:0}.multiple-choice [type=checkbox]+label::after{content:"";border:solid;border-width:0 0 5px 5px;background:transparent;border-top-color:transparent;width:17px;height:7px;position:absolute;top:10px;left:8px;-moz-transform:rotate(-45deg);-o-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);zoom:1;filter:alpha(opacity=0);opacity:0}.multiple-choice [type=radio]:focus+label::before{-webkit-box-shadow:0 0 0 4px #ffbf47;-moz-box-shadow:0 0 0 4px #ffbf47;box-shadow:0 0 0 4px #ffbf47}.multiple-choice [type=checkbox]:focus+label::before{-webkit-box-shadow:0 0 0 3px #ffbf47;-moz-box-shadow:0 0 0 3px #ffbf47;box-shadow:0 0 0 3px #ffbf47}.multiple-choice input:checked+label::after{zoom:1;filter:alpha(opacity=100);opacity:1}.multiple-choice input:disabled{cursor:default}.multiple-choice input:disabled+label{zoom:1;filter:alpha(opacity=50);opacity:0.5;cursor:default}.multiple-choice:last-child,.multiple-choice:last-of-type{margin-bottom:0}.inline .multiple-choice{clear:none}@media (min-width: 641px){.inline .multiple-choice{margin-bottom:0;margin-right:30px}}.form-group-error{margin-right:15px;border-left:4px solid #b10e1e;padding-left:10px}@media (min-width: 641px){.form-group-error{border-left:5px solid #b10e1e;padding-left:15px}}.form-control-error{border:4px solid #b10e1e}.error-message{font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25;color:#b10e1e;display:block;clear:both;margin:0;padding:2px 0}@media (min-width: 641px){.error-message{font-size:19px;line-height:1.3157894737}}.form-label .error-message,.form-label-bold .error-message{padding-top:4px;padding-bottom:0}.error-summary{border:4px solid #b10e1e;margin-top:15px;margin-bottom:15px;padding:15px 10px}@media (min-width: 641px){.error-summary{border:5px solid #b10e1e;margin-top:30px;margin-bottom:30px;padding:20px 15px 15px}}.error-summary:focus{outline:3px solid #ffbf47}.error-summary .error-summary-heading{margin-top:0}.error-summary p{margin-bottom:10px}.error-summary .error-summary-list{padding-left:0}@media (min-width: 641px){.error-summary .error-summary-list li{margin-bottom:5px}}.error-summary .error-summary-list a{color:#b10e1e;font-weight:bold;text-decoration:underline}ul,ol{list-style-type:none}.list{padding:0;margin-top:5px;margin-bottom:20px}.list li{margin-bottom:5px}.list-bullet{list-style-type:disc;padding-left:20px}.list-number{list-style-type:decimal;padding-left:20px}.panel{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;clear:both;border-left-style:solid;border-color:#bfc1c3;padding:0.7894736842em;margin-bottom:0.7894736842em}.panel :first-child{margin-top:0}.panel :only-child,.panel :last-child{margin-bottom:0}.panel-border-wide{border-left-width:10px}.panel-border-narrow{border-left-width:5px}.form-group .panel-border-narrow{float:left;width:100%;padding-bottom:0}.form-group .panel-border-narrow:first-child{margin-top:10px}.form-group .panel-border-narrow:last-child{margin-top:0;margin-bottom:0}.inline .panel-border-narrow,.inline .panel-border-narrow:last-child{margin-top:10px;margin-bottom:0}.phase-banner{padding:10px 0 8px;border-bottom:1px solid #bfc1c3}@media (min-width: 641px){.phase-banner{padding-bottom:10px}}.phase-banner p{display:table;margin:0;color:#000;font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:14px;line-height:1.1428571429}@media (min-width: 641px){.phase-banner p{font-size:16px;line-height:1.25}}.phase-banner .phase-tag{display:-moz-inline-stack;display:inline-block;margin:0 8px 0 0;padding:2px 5px 0;font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:14px;line-height:1.1428571429;text-transform:uppercase;letter-spacing:1px;text-decoration:none;color:#fff;background-color:#005ea5}@media (min-width: 641px){.phase-banner .phase-tag{font-size:16px;line-height:1.25}}.phase-banner span{display:table-cell;vertical-align:baseline}.phase-banner-alpha,.phase-banner-beta{padding:10px 0 8px;border-bottom:1px solid #bfc1c3}@media (min-width: 641px){.phase-banner-alpha,.phase-banner-beta{padding-bottom:10px}}.phase-banner-alpha p,.phase-banner-beta p{display:table;margin:0;color:#000;font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:14px;line-height:1.1428571429}@media (min-width: 641px){.phase-banner-alpha p,.phase-banner-beta p{font-size:16px;line-height:1.25}}.phase-banner-alpha .phase-tag,.phase-banner-beta .phase-tag{display:-moz-inline-stack;display:inline-block;margin:0 8px 0 0;padding:2px 5px 0;font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:14px;line-height:1.1428571429;text-transform:uppercase;letter-spacing:1px;text-decoration:none;color:#fff;background-color:#005ea5}@media (min-width: 641px){.phase-banner-alpha .phase-tag,.phase-banner-beta .phase-tag{font-size:16px;line-height:1.25}}.phase-banner-alpha span,.phase-banner-beta span{display:table-cell;vertical-align:baseline}.phase-tag{display:-moz-inline-stack;display:inline-block;margin:0 8px 0 0;padding:2px 5px 0;font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:14px;line-height:1.1428571429;text-transform:uppercase;letter-spacing:1px;text-decoration:none;color:#fff;background-color:#005ea5}@media (min-width: 641px){.phase-tag{font-size:16px;line-height:1.25}}table{border-collapse:collapse;border-spacing:0;width:100%}table th,table td{font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:16px;line-height:1.25;padding:0.6315789474em 1.0526315789em 0.4736842105em 0;text-align:left;border-bottom:1px solid #bfc1c3}@media (min-width: 641px){table th,table td{font-size:19px;line-height:1.3157894737}}table thead th{font-weight:700}table td:last-child,table th:last-child{padding-right:0}table .numeric{text-align:right}table td.numeric{font-family:"ntatabularnumbers", "nta", Arial, sans-serif}table caption{text-align:left}.table-font-xsmall th{font-family:"nta", Arial, sans-serif;font-weight:700;text-transform:none;font-size:14px;line-height:1.1428571429}@media (min-width: 641px){.table-font-xsmall th{font-size:16px;line-height:1.25}}.table-font-xsmall td{font-family:"nta", Arial, sans-serif;font-weight:400;text-transform:none;font-size:14px;line-height:1.1428571429}@media (min-width: 641px){.table-font-xsmall td{font-size:16px;line-height:1.25}}.table-font-xsmall th,.table-font-xsmall td{padding:0.75em 1.25em 0.5625em 0}.button-choose{background-color:#2b8cc4;border:none;box-shadow:0 2px 0 darkblue;color:#fff;padding:10px 15px 5px}.form-control,.form-group select{width:100%}.form-group.search label{display:inline-block;padding-right:.5em;font-size:90%}.form-group.search .search-box{border:2px solid #bfc1c3;display:inline-block}.form-group.search input,.form-group.search #search_button{border:none;display:inline-block}.form-group.search #search_button{border-top:none;border-right:none;border-bottom:none;border-left:1px solid #bfc1c3}.navbar.navbar-default{background-color:#dee0e2;border-right:1px solid #bfc1c3;border-bottom:1px solid #bfc1c3;border-left:1px solid #bfc1c3;border-radius:0}.navbar.navbar-default .navbar-nav li a{color:#0b0c0c}.navbar.navbar-default .navbar-nav li a:hover,.navbar.navbar-default .navbar-nav li a:focus{background-color:#ffbf47}.navbar.navbar-default .navbar-nav li.active{background-color:#e7e7e7}.navbar.navbar-default .navbar-nav li.active a{padding-bottom:18px}.navbar.navbar-default #search_field{width:142px;border-radius:0;margin-right:-4px;margin-bottom:0;font-size:16px;height:34px}.navbar.navbar-default #search_button{border-radius:0;width:34px;height:34px;font-size:18px;padding:4px}/*! - * Bootstrap v3.0.0 - * - * Copyright 2013 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world by @mdo and @fat. - *//*! normalize.css v2.1.0 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:0.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}code,kbd,pre,samp{font-family:monospace, serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:0.35em 0.625em 0.75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{padding:0;box-sizing:border-box}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{color:#000 !important;text-shadow:none !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:""}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff !important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;height:auto;max-width:100%}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.099999999999998px;font-weight:200;line-height:1.4}@media (min-width: 768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;font-weight:500;line-height:1.1}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}h1 small,.h1 small{font-size:24px}h2 small,.h2 small{font-size:18px}h3 small,.h3 small,h4 small,.h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media (min-width: 768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eeeeee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco, Menlo, Consolas, "Courier New", monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.row{margin-right:-15px;margin-left:-15px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media (min-width: 768px){.container{max-width:750px}.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media (min-width: 992px){.container{max-width:970px}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media (min-width: 1200px){.container{max-width:1170px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th,.table tbody>tr>th,.table tfoot>tr>th,.table thead>tr>td,.table tbody>tr>td,.table tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #dddddd}.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed thead>tr>th,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td{background-color:#d0e9c6;border-color:#c9e2b3}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td{background-color:#ebcccc;border-color:#e6c1c7}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td{background-color:#faf2cc;border-color:#f8e5be}@media (max-width: 768px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}.form-control:-moz-placeholder{color:#999999}.form-control::-moz-placeholder{color:#999999}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555555;vertical-align:middle;background-color:#ffffff;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;transition:border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eeeeee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.has-error .help-block,.has-error .control-label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.has-success .help-block,.has-success .control-label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;background-color:#dff0d8;border-color:#468847}.form-control-static{padding-top:7px;margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width: 768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .radio,.form-inline .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}@media (min-width: 768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333333;background-color:#ffffff;border-color:#cccccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default.active[disabled],fieldset[disabled] .btn-default.active{background-color:#ffffff;border-color:#cccccc}.btn-primary{color:#ffffff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#ffffff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary.active[disabled],fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#ffffff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#ffffff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning.active[disabled],fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#ffffff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#ffffff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger.active[disabled],fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#ffffff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#ffffff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success.active[disabled],fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#ffffff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#ffffff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info.active[disabled],fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-link{font-weight:normal;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0}.btn-block+.btn-block{margin-top:5px}input.btn-block[type="submit"],input.btn-block[type="reset"],input.btn-block[type="button"]{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;transition:height 0.35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(/fonts/glyphicons-halflings-regular.eot);src:url(/fonts/glyphicons-halflings-regular.eot?#iefix) format("embedded-opentype"),url(/fonts/glyphicons-halflings-regular.woff) format("woff"),url(/fonts/glyphicons-halflings-regular.ttf) format("truetype"),url(/fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular) format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;line-height:1}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-print:before{content:"\e045"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-briefcase:before{content:"\1f4bc"}.glyphicon-calendar:before{content:"\1f4c5"}.glyphicon-pushpin:before{content:"\1f4cc"}.glyphicon-paperclip:before{content:"\1f4ce"}.glyphicon-camera:before{content:"\1f4f7"}.glyphicon-lock:before{content:"\1f512"}.glyphicon-bell:before{content:"\1f514"}.glyphicon-bookmark:before{content:"\1f516"}.glyphicon-fire:before{content:"\1f525"}.glyphicon-wrench:before{content:"\1f527"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000000;border-right:4px solid transparent;border-bottom:0 dotted;border-left:4px solid transparent;content:""}.dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#ffffff;text-decoration:none;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999999}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width: 768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#333333}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333333}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:none}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:5px 10px;padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.btn-group-justified .btn{display:table-cell;float:none;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-right:0;padding-left:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;cursor:default;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center}@media (min-width: 768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>li>a{margin-right:0;border-bottom:1px solid #dddddd}.nav-tabs.nav-justified>.active>a{border-bottom-color:#ffffff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li.active a:active,.nav-stacked>li.active a:hover,.nav-stacked>li.active a:focus{background-color:#efefef}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center}@media (min-width: 768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-bottom:1px solid #dddddd}.nav-tabs-justified>.active>a{border-bottom-color:#ffffff}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}@media (min-width: 768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}@media (min-width: 768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media (min-width: 768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width: 768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media (min-width: 768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px}@media (min-width: 768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;z-index:1030}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width: 768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width: 768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width: 767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width: 768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:17px;padding-bottom:15px}}@media (min-width: 768px){.navbar-left{float:left !important}.navbar-right{float:right !important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media (min-width: 768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media (max-width: 767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width: 768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media (min-width: 768px){.navbar-text{margin-right:15px;margin-left:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#dddddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#dddddd}.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333333;border-bottom-color:#333333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555555;background-color:#e7e7e7}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555555;border-bottom-color:#555555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777777;border-bottom-color:#777777}@media (max-width: 767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#777777}.navbar-default .navbar-link:hover{color:#333333}.navbar-inverse{background-color:#222222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-text{color:#999999}.navbar-inverse .navbar-nav>li>a{color:#999999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#ffffff;background-color:#080808}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#ffffff;border-bottom-color:#ffffff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999999;border-bottom-color:#999999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff}@media (max-width: 767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999999}.navbar-inverse .navbar-link:hover{color:#ffffff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#cccccc;content:"/\00a0"}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#ffffff;border:1px solid #dddddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eeeeee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;cursor:not-allowed;background-color:#ffffff;border-color:#dddddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;cursor:not-allowed;background-color:#ffffff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999999;border-radius:10px}.badge:empty{display:none}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#ffffff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eeeeee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}@media screen and (min-width: 768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1{font-size:63px}}.thumbnail{display:inline-block;display:block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.thumbnail>img{display:block;height:auto;max-width:100%}a.thumbnail:hover,a.thumbnail:focus{border-color:#428bca}.thumbnail>img{margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#333333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;color:#ffffff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255,255,255,0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255,255,255,0.15)), color-stop(0.75, rgba(255,255,255,0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555555}a.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #dddddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#dddddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#ffffff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}body.modal-open,.modal-open .navbar-fixed-top,.modal-open .navbar-fixed-bottom{margin-right:15px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}.modal-dialog{z-index:1050;width:auto;padding:10px;margin-right:auto;margin-left:auto}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:none;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width: 768px){.modal-dialog{right:auto;left:50%;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000000;border-width:5px 5px 0}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000000;border-width:5px 5px 0}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000000;border-width:0 5px 5px}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000000;border-width:0 5px 5px}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#ffffff;border-bottom-width:0;content:" "}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#ffffff;border-left-width:0;content:" "}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#ffffff;border-top-width:0;content:" "}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#ffffff;border-right-width:0;content:" "}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;height:auto;max-width:100%;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);opacity:0.5;filter:alpha(opacity=50)}.carousel-control.left{background-image:-webkit-gradient(linear, 0 top, 100% top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.5) 0), color-stop(rgba(0,0,0,0.0001) 100%));background-image:-moz-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{right:0;left:auto;background-image:-webkit-gradient(linear, 0 top, 100% top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:-webkit-linear-gradient(left, color-stop(rgba(0,0,0,0.0001) 0), color-stop(rgba(0,0,0,0.5) 100%));background-image:-moz-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;left:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;border:1px solid #ffffff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#ffffff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width: 768px){.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width: 400px){@-ms-viewport{width:320px}}.hidden{display:none !important;visibility:hidden !important}.visible-xs{display:none !important}tr.visible-xs{display:none !important}th.visible-xs,td.visible-xs{display:none !important}@media (max-width: 767px){.visible-xs{display:block !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-xs.visible-sm{display:block !important}tr.visible-xs.visible-sm{display:table-row !important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-xs.visible-md{display:block !important}tr.visible-xs.visible-md{display:table-row !important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell !important}}@media (min-width: 1200px){.visible-xs.visible-lg{display:block !important}tr.visible-xs.visible-lg{display:table-row !important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell !important}}.visible-sm{display:none !important}tr.visible-sm{display:none !important}th.visible-sm,td.visible-sm{display:none !important}@media (max-width: 767px){.visible-sm.visible-xs{display:block !important}tr.visible-sm.visible-xs{display:table-row !important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-sm{display:block !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-sm.visible-md{display:block !important}tr.visible-sm.visible-md{display:table-row !important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell !important}}@media (min-width: 1200px){.visible-sm.visible-lg{display:block !important}tr.visible-sm.visible-lg{display:table-row !important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell !important}}.visible-md{display:none !important}tr.visible-md{display:none !important}th.visible-md,td.visible-md{display:none !important}@media (max-width: 767px){.visible-md.visible-xs{display:block !important}tr.visible-md.visible-xs{display:table-row !important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-md.visible-sm{display:block !important}tr.visible-md.visible-sm{display:table-row !important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-md{display:block !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width: 1200px){.visible-md.visible-lg{display:block !important}tr.visible-md.visible-lg{display:table-row !important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell !important}}.visible-lg{display:none !important}tr.visible-lg{display:none !important}th.visible-lg,td.visible-lg{display:none !important}@media (max-width: 767px){.visible-lg.visible-xs{display:block !important}tr.visible-lg.visible-xs{display:table-row !important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell !important}}@media (min-width: 768px) and (max-width: 991px){.visible-lg.visible-sm{display:block !important}tr.visible-lg.visible-sm{display:table-row !important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell !important}}@media (min-width: 992px) and (max-width: 1199px){.visible-lg.visible-md{display:block !important}tr.visible-lg.visible-md{display:table-row !important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell !important}}@media (min-width: 1200px){.visible-lg{display:block !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}.hidden-xs{display:block !important}tr.hidden-xs{display:table-row !important}th.hidden-xs,td.hidden-xs{display:table-cell !important}@media (max-width: 767px){.hidden-xs{display:none !important}tr.hidden-xs{display:none !important}th.hidden-xs,td.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-xs.hidden-sm{display:none !important}tr.hidden-xs.hidden-sm{display:none !important}th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-xs.hidden-md{display:none !important}tr.hidden-xs.hidden-md{display:none !important}th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-xs.hidden-lg{display:none !important}tr.hidden-xs.hidden-lg{display:none !important}th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none !important}}.hidden-sm{display:block !important}tr.hidden-sm{display:table-row !important}th.hidden-sm,td.hidden-sm{display:table-cell !important}@media (max-width: 767px){.hidden-sm.hidden-xs{display:none !important}tr.hidden-sm.hidden-xs{display:none !important}th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-sm{display:none !important}tr.hidden-sm{display:none !important}th.hidden-sm,td.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-sm.hidden-md{display:none !important}tr.hidden-sm.hidden-md{display:none !important}th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-sm.hidden-lg{display:none !important}tr.hidden-sm.hidden-lg{display:none !important}th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none !important}}.hidden-md{display:block !important}tr.hidden-md{display:table-row !important}th.hidden-md,td.hidden-md{display:table-cell !important}@media (max-width: 767px){.hidden-md.hidden-xs{display:none !important}tr.hidden-md.hidden-xs{display:none !important}th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-md.hidden-sm{display:none !important}tr.hidden-md.hidden-sm{display:none !important}th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-md{display:none !important}tr.hidden-md{display:none !important}th.hidden-md,td.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-md.hidden-lg{display:none !important}tr.hidden-md.hidden-lg{display:none !important}th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none !important}}.hidden-lg{display:block !important}tr.hidden-lg{display:table-row !important}th.hidden-lg,td.hidden-lg{display:table-cell !important}@media (max-width: 767px){.hidden-lg.hidden-xs{display:none !important}tr.hidden-lg.hidden-xs{display:none !important}th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none !important}}@media (min-width: 768px) and (max-width: 991px){.hidden-lg.hidden-sm{display:none !important}tr.hidden-lg.hidden-sm{display:none !important}th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none !important}}@media (min-width: 992px) and (max-width: 1199px){.hidden-lg.hidden-md{display:none !important}tr.hidden-lg.hidden-md{display:none !important}th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none !important}}@media (min-width: 1200px){.hidden-lg{display:none !important}tr.hidden-lg{display:none !important}th.hidden-lg,td.hidden-lg{display:none !important}}.visible-print{display:none !important}tr.visible-print{display:none !important}th.visible-print,td.visible-print{display:none !important}@media print{.visible-print{display:block !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}.hidden-print{display:none !important}tr.hidden-print{display:none !important}th.hidden-print,td.hidden-print{display:none !important}}.alert-banner{border:4px solid #005ea5;padding:2rem 2rem 1rem;margin-top:2em;margin-bottom:2em;box-sizing:border-box;position:relative}.alert-banner__icon{color:#005ea5;position:absolute;left:2rem;top:2rem}.alert-banner__info{padding:5px 0 0 55px}@media (min-width: 641px){.alert-banner__info{font-size:19px}}#content:after,.grid-row:after,.notice:after,fieldset:after,.form-section:after,.form-group:after,.form-group-error:after,.panel:after{content:"";display:block;clear:both}#content:after,.grid-row:after,.notice:after,fieldset:after,.form-section:after,.form-group:after,.form-group-error:after,.panel:after{content:"";display:block;clear:both}#content,.alert-banner{max-width:960px;margin:0 15px}@media (min-width: 641px){#content,.alert-banner{margin:0 30px}}@media (min-width: 1020px){#content,.alert-banner{margin:0 auto}}.grid-row{margin:0 -15px}h1{font-family:"nta",Arial,sans-serif;font-size:24px;font-weight:bold;margin:20px 0 10px 0}h2{font-size:19px;font-family:"nta",Arial,sans-serif;font-weight:normal;margin:10px 0 0 0;color:#6f777b}h3{font-size:19px;font-weight:normal;font-family:"nta",Arial,sans-serif;color:#6f777b;margin:10px 0 0 0}h4{font-size:19px;font-weight:normal;color:#0b0c0c}p{margin:0 0 6px 0}body{font-size:19px;line-height:1.3}textarea{resize:none}hr{color:#bfc1c3;height:1px}ul{list-style-type:none;padding-left:0}footer{margin-top:100px}footer a{text-decoration:underline}label{display:block;font-weight:normal}#contentOuter{margin:0 auto;max-width:960px}.row{margin:0}.open{color:#fff}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li>a,.file-choose-replace,.alert,button.close,.dropdown-menu li a:hover{color:black}.fa-times-circle{color:#b10e1e}.fa-check-circle{color:#00823b}.fa-warning{color:#b10e1e}.fa-file-o{color:#f47738}.fa-envelope{color:#fff;margin-left:4px}.fa-exclamation-triangle{color:#b10e1e;margin-left:5px}::-webkit-input-placeholder{color:#bfc1c3}:-moz-placeholder{color:#bfc1c3;opacity:1}::-moz-placeholder{color:#bfc1c3;opacity:1}:-ms-input-placeholder{color:#bfc1c3}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus,.dropdown-menu li a:hover,.dropdown-menu li a:focus{background-color:#ffbf47}.block-label:hover,.js-enabled .selected{border-color:#0b0c0c}.js-enabled .selected{background-color:#fff}.questions-list li{border-color:#bfc1c3}.progress-menu-form{border-color:#c2c2c2}.block-label{border-color:#dee0e2}#wrapper{max-width:1024px;margin-left:auto;margin-right:auto;border-bottom:none;padding:0 32px}#global-header.with-proposition .header-wrapper .header-proposition #proposition-name:hover{border-bottom:none}.phase-banner a{text-decoration:underline}.staging_banner{background-color:#b10e1e;text-align:center;padding:1em;height:auto;color:white;font-weight:bold}@media screen{a:visited{color:#005ea5}}button.close{float:none;margin:0.5em}.flag{border:1.5px solid;font-weight:bold;font-size:14px;padding:3px 5px;text-align:center;white-space:nowrap;margin:0 10px 0 0;color:white}.flag.finance-unchecked{background-color:#b10e1e}.flag.no-response{background-color:#f47738}.flag.accepted{background-color:#28a197}.flag.answered{background-color:#006435}.flag.draft-pending{background-color:#85994b}.flag.minister-cleared{background-color:#c1a87e}.flag.ministerial-query{background-color:#b58840}.flag.pod-cleared{background-color:#a1a8ff}.flag.pod-query{background-color:#5461ff}.flag.rejected{background-color:#d0021b}.flag.unassigned{background-color:#bd10e0}.flag.with-minister{background-color:#82622e}.flag.with-pod{background-color:#2e358b}.flag.transferred-out{background-color:#d53880}.flag.transferred-in{background-color:#7d7d7d}.flag.will-write{background-color:#5f5f5f}.strong{font-weight:700}#pages,.select2-container-multi .select2-choices li{width:100%}a.button:hover,a.button-secondary:hover{text-decoration:none}button.link,input.link[type="submit"]{background:none !important;border:none;padding:0 !important;cursor:pointer;color:#005ea5;font-size:85%;text-decoration:underline}.inline{display:inline-block}.select2-arrow{display:none !important}li.select2-search-field{border-bottom:none}.select2-container--default .select2-selection--single,.select2-container--default .select2-selection--multiple{border-radius:0px}.select2-container--default.select2-container--focus .select2-selection--multiple{border:1px solid #aaa}.select2-results__option{min-height:2em}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#4c2c92}.question-allocation-list{list-style:none;margin-bottom:1em}.question-allocation-list li{margin:0.8em 0 0.8em 1.2em}.allocation-info .button{margin:30px 0 0 0}#pq-columns .date.datetimepicker,#pq-columns p,#pq-columns select,#pq-columns hr,#pq-columns label.block-label{margin:0 0 20px 0}.form-control{font-size:19px;-webkit-box-shadow:none;box-shadow:none;border-color:#bfc1c3}.form-group.inline .block-label{margin:.5em .5em 0 0}.form-group.inline .block-label:last-child{margin-right:0}textarea.form-control{width:66%;min-width:246px}.form-control:focus{border-color:#ffbf47}.form-group{clear:both;margin:0 0 20px 0}.form-group .block-label{margin:0 0 20px 0}.form-control,.form-group select{border-style:solid;border-radius:0;width:auto;height:auto}.form-control:focus,.form-group select:focus{border-width:3px;box-shadow:none}.js-enabled .add-focus{outline-color:#ffbf47}.js-enabled .add-focus{outline:3px solid #ffbf47}.block-label{display:block;float:none;clear:left;position:relative;border:1px solid;padding:18px 30px 15px 45px;margin-top:10px;margin-bottom:10px;cursor:pointer;background-color:#dee0e2}.block-label input{position:absolute;top:18px;left:15px}.inline .block-label{clear:none;margin-right:15px}.js-enabled .block-label input:focus{outline:none}@media (min-width: 641px){.block-label{float:left;margin-top:5px;margin-bottom:5px}}.admin-link{display:block;margin:7.5px 0}.space-before{margin-top:15px}.space-before-20{margin-top:20px}@media print{.trim_area,.button,.button-secondary,td.edit{display:none}}#select-all-questions{padding:0}#select-all-questions label{max-width:655px;padding:.5em 0;border-bottom:2px solid #bfc1c3}#select-all-questions label input[type="checkbox"]{width:24px;height:24px;margin-right:10px}.questions-list{padding:0 0 20px}.questions-list>li{list-style:none;border-bottom:2px solid #bfc1c3;padding:30px 0 30px 0}.questions-list .pq-question{margin:0;padding:0}.questions-list .status-bar{line-height:32px;margin-bottom:26px;padding:0}.questions-list .pq-columns .col-md-7{padding-left:0}.questions-list .pq-inline-form{display:inline !important}.pq-header{line-height:27px}.pq-header .col-md-5{padding-left:0}.pq-header label.pq-select input[type="checkbox"]{width:24px;height:24px;margin-right:10px;float:left}.pq-header label.pq-select span{float:left;padding-top:5px}.question-type{color:#6f777b;font-size:19px;font-weight:bold;margin-left:7px}.pq-msg-success{margin-top:20px;margin-bottom:20px;border-left:4px solid #00823b;padding:15px}.pq-msg-success ul{list-style:disc outside none;margin-left:0;padding-left:1em}.pq-msg-notice{margin-top:20px;margin-bottom:20px;border-left:4px solid #005ea5;padding:15px}.pq-msg-notice ul{list-style:disc outside none;margin-left:0;padding-left:1em}.pq-msg-error,.pq-msg-warning{margin-top:20px;margin-bottom:20px;border-left:4px solid #b10e1e;padding:15px}.pq-msg-error ul,.pq-msg-warning ul{list-style:disc outside none;margin-left:0;padding-left:1em}.datepicker,.datetimepicker{border-radius:0;border:1px solid #bfc1c3;display:inline-block;width:194px}.datepicker input,.datetimepicker input{display:inline;width:88%;border:none}.xdsoft_datetimepicker .xdsoft_calendar td:hover,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div:hover{background-color:#ffbf47 !important}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default,.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current{background-color:#2B8CC4 !important}.fa-calendar{cursor:pointer}.table{clear:both}.table thead tr th,.table tbody tr td{padding-left:0}#admin-status{width:100px}#minister-name{width:30%}#admin-button-bar{float:right;margin-bottom:10px;list-style-type:none}#admin-button-bar li{display:inline;margin-left:5px}.reveal div{border-left:5px solid #eee;padding-left:.5em;margin-top:.5em}.reveal div p:first-child{padding-top:.5em}.reveal div p:last-child{padding-bottom:.5em}.reveal div.closed{display:none}.reveal div.opened{display:block}.reveal>span{color:#005ea5;cursor:pointer;margin-right:.5em;position:relative}.reveal>span.closed:before{content:'► ';position:absolute;left:-1.25em}.reveal>span.opened:before{content:'▼ '}.nav-tabs{margin-bottom:20px}.nav-tabs.nav-stacked{border-bottom:0}.tab-content>.tab-pane{display:block}.js-enabled .tab-content>.tab-pane{display:none}.tab-content>.tab-pane{display:block}.js-enabled .tab-content>.tab-pane{display:none}.js-enabled .tab-content>.tab-pane.active{display:block}#pages{clear:both;display:block;width:100%;margin:0 15%}.pagination>li>a,.pagination>li>span{border-top:0;border-bottom:none}.pagination>li:first-child>a,.pagination>li:first-child>span{border-radius:0;border-left:0;border-right:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-radius:0;border-right:0}#assignment .panel-heading{color:#0b0c0c;font-size:16px;font-weight:bold}#assignment .row-spacer{margin:15px 0}#confirmation_button_bar{padding-left:0}#dashboard h2,#preview h2{font-size:24px;display:inline-block;font-weight:bold;margin:auto;color:#0b0c0c}#dashboard ul li h3,#preview ul li h3{display:inline-block;margin-right:0.5em}#dashboard #status-filters h2,#preview #status-filters h2{margin:0 0 10px 0;color:#0b0c0c}#dashboard #status-filters .active .badge,#preview #status-filters .active .badge{color:#6f7781;background-color:#fff}#dashboard #status-filters .badge,#preview #status-filters .badge{float:right;min-width:1.5em;margin-top:.2em;border-radius:4px;padding:5px 2px 3px 3px;background-color:black}#dashboard .quick-action-export-error-message,#preview .quick-action-export-error-message{display:none;color:#b10e1e;padding:1em 0 0 2em}#dashboard .commissioning-error-message,#preview .commissioning-error-message{display:none;color:#b10e1e;padding:1em 0 0 2em}#dashboard .dashboard-column1-uncommissioned,#preview .dashboard-column1-uncommissioned{margin-bottom:20px}#dashboard .dashboard-column1-commissioned .col-md-6,#preview .dashboard-column1-commissioned .col-md-6{padding-left:0;margin:0 0 10px 0}#dashboard .dashboard-column-2 .text,#preview .dashboard-column-2 .text{display:block;margin:0 0 6px 0}#dashboard .select2-search-choice div,#preview .select2-search-choice div{line-height:1em}#dashboard label.form-label,#preview label.form-label{color:#0b0c0c}#pq-details h1{font-size:24px;font-weight:bold;display:inline-block;margin:0 10px 0 0}#pq-details h2{padding:0;margin:0;color:#0b0c0c}#pq-details #progress-panel .date.datetimepicker.block-label,#pq-details #progress-panel p.block-label,#pq-details #progress-panel .text.block-label,#pq-details #progress-panel hr.block-label,#pq-details #progress-panel a.block-label,#pq-details #progress-panel label.block-label{margin:0 0 20px 0}#pq-details #progress-panel .date.datetimepicker.form-label,#pq-details #progress-panel p.form-label,#pq-details #progress-panel .text.form-label,#pq-details #progress-panel hr.form-label,#pq-details #progress-panel a.form-label,#pq-details #progress-panel label.form-label{color:#6F777B}#pq-details #progress-panel #save{margin-top:40px}#pq-details #pq-details-header #pq-details-ref{padding:11px 0;margin:0}#pq-details #pq-details-header #pq-details-ref #pq-details-progress{margin-left:26px}#pq-details #pq-details-qa-link{display:block}#pq-details ul.nav-tabs li a{outline:0}#pq-details select:-moz-focusring{color:transparent;text-shadow:0 0 0 black}#pq-details #pq-detail-area{margin-top:15px}#pq-details #pq-detail-area #progress-menu{z-index:1;padding:0}#pq-details #pq-detail-area #progress-menu ul li a{padding-left:0}#pq-details #pq-detail-area #progress-menu ul li.active a{padding-left:1em;border:1px solid #c2c2c2;border-right:0;margin-right:0;border-radius:6px 0 0 6px}@media screen and (max-width: 991px){#pq-details #pq-detail-area #progress-menu ul li.active a{border-radius:6px;border:1px solid #c2c2c2}}#pq-details #pq-detail-area #progress-menu ul li a:link{color:black}#pq-details #pq-detail-area #progress-panel{margin:0;padding:0}#pq-details #pq-detail-area #progress-panel #choices{background-color:#2b8cc4;color:#fff;box-shadow:0 2px 0 darkblue}#pq-details #pq-detail-area #progress-panel .button-cancel{margin:.5em .5em 0 0}#pq-details #pq-detail-area #progress-panel .progress-menu-form{border:1px solid #c2c2c2;padding:15px 15px 15px 30px;margin-left:-1px;min-height:350px}#pq-details #pq-detail-area #progress-panel #create_iww{clear:both;display:block;width:280px;margin-bottom:20px}#pq-details #pq-detail-area #progress-panel .ao-reminder-link{margin-left:40px}#pq-details #pq-detail-area #progress-panel #progress-menu-fc-data .status{margin-bottom:.5em}#filter-report h2{font-size:24px;display:inline-block;font-weight:bold;margin:auto;color:#0b0c0c}#filter-report p.count{font-size:19px;font-weight:bold;margin:20px 0 10px 0}#filter-report .col-md-9{padding:0}#filter-report .col-md-3 select{width:200px;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;text-overflow:ellipsis}#filter-report .button{margin-right:25%}#minister-report table td,#press-desk-report table td{padding-top:10px;padding-bottom:13px}#minister-report .table-cell-centered,#press-desk-report .table-cell-centered{text-align:center}#settings-home h2{font-weight:bold;border-bottom:2px solid #dee0e2;padding-bottom:7.5px;display:block;margin:20px 0 10px 0;color:#0b0c0c}#settings-home ul li a{margin:2px 0;padding:3px 0;display:inline-block}#settings-home .col-md-4{padding-left:0;padding-right:32px}#watchlist-preview h2{margin:20px 0 10px 0;font-weight:bold;color:#0b0c0c}#watchlist-preview h3{font-weight:bold;color:#0b0c0c;margin:20px 0 10px 0}#earlybird-preview h2{margin:20px 0 10px 0;font-weight:bold;color:#0b0c0c}#earlybird-preview h3{font-weight:bold;color:#0b0c0c;margin:20px 0 10px 0}#admin-ministers-details h2:last-of-type,#admin-pd-details h2:last-of-type,#csv-export h2{margin:20px 0 10px 0;font-weight:bold;color:#0b0c0c}#sign_in{margin:30px 0}#metrics_dashboard h2{padding-top:.4em;clear:both}#metrics_dashboard ul{padding-left:1em}#metrics_dashboard ul li{clear:both}#metrics_dashboard ul li div{padding:0 .3em 0 .3em;margin:0 0 .2em 0;width:60%;float:right}#metrics_dashboard ul li div span:nth-child(2){padding-left:1em}#metrics_dashboard ul li div:first-child{float:left;display:block;width:40%}#stages_time #graph{font-size:80%;max-width:600px}#stages_time #graph-inner{margin:2em 0 1em 0}#stages_time #graph-inner canvas{vertical-align:middle}#stages_time #x-axis{text-align:center;font-size:80%}#preview h1{font-size:24px;font-weight:bold;margin:15px 0}#preview #sidebar .shim{display:block}@media (max-width: 991px){#preview #sidebar .shim{display:none}#preview #sidebar #filters{position:static}}#dashboard #count,#preview #count{max-width:655px;background-color:#f8f8f8;padding:.7em 0 .7em .7em;border-left:5px solid #bfc1c3;margin:.5em 0}#dashboard #sidebar,#preview #sidebar{padding:0}#dashboard #sidebar h2,#preview #sidebar h2{color:#0b0c0c;font-size:19px;font-weight:bold}#dashboard #sidebar input[type="button"],#preview #sidebar input[type="button"]{padding-left:0;border:none;color:#005ea5;background-color:#fff}#dashboard #sidebar #quick-links,#dashboard #sidebar #filters,#preview #sidebar #quick-links,#preview #sidebar #filters{margin:7.5px 0}#dashboard #sidebar #quick-links .filter-box,#dashboard #sidebar #filters .filter-box,#preview #sidebar #quick-links .filter-box,#preview #sidebar #filters .filter-box{padding:4px 8px;background-color:#dee0e2;margin:8px 0}#dashboard #sidebar #quick-links .filter-box .collapsed,#dashboard #sidebar #filters .filter-box .collapsed,#preview #sidebar #quick-links .filter-box .collapsed,#preview #sidebar #filters .filter-box .collapsed{display:none}#dashboard #sidebar #quick-links .datepicker,#dashboard #sidebar #quick-links .datetimepicker,#dashboard #sidebar #filters .datepicker,#dashboard #sidebar #filters .datetimepicker,#preview #sidebar #quick-links .datepicker,#preview #sidebar #quick-links .datetimepicker,#preview #sidebar #filters .datepicker,#preview #sidebar #filters .datetimepicker{background-color:#fff;width:100%}#dashboard #sidebar #quick-links .button-area,#dashboard #sidebar #filters .button-area,#preview #sidebar #quick-links .button-area,#preview #sidebar #filters .button-area{width:100%;display:block;padding:8px 0}#dashboard #sidebar #quick-links,#preview #sidebar #quick-links{padding-bottom:9px;border-bottom:2px solid #bfc1c3}#dashboard #sidebar #quick-links input[type="submit"],#preview #sidebar #quick-links input[type="submit"]{margin-right:10px}#dashboard #sidebar #quick-links form,#preview #sidebar #quick-links form{margin:8px 0}#dashboard #sidebar #quick-links #editDates .content,#preview #sidebar #quick-links #editDates .content{padding-bottom:10px;margin-bottom:22px;border-bottom:2px solid #bfc1c3}#dashboard #sidebar #quick-links .content .notice,#preview #sidebar #quick-links .content .notice{background:#f8f8f8;border-left:5px solid #bfc1c3;margin:15px 0;padding:0.7em 0 0.7em 0.7em}#dashboard #sidebar #quick-links .collapsed,#preview #sidebar #quick-links .collapsed{display:none}#dashboard #sidebar #quick-links .collapsed hr,#preview #sidebar #quick-links .collapsed hr{height:1px;background:#d2d3d5}#dashboard #sidebar #filters .filter-box,#preview #sidebar #filters .filter-box{padding:4px 8px;background-color:#dee0e2;margin:0.5em 0}#dashboard #sidebar #filters .filter-box legend,#preview #sidebar #filters .filter-box legend{margin:0;border:none}#dashboard #sidebar #filters .filter-box .notice,#preview #sidebar #filters .filter-box .notice{display:none;width:100%}#dashboard #sidebar #filters .filter-box .notice span,#preview #sidebar #filters .filter-box .notice span{color:#4c2c92}#dashboard #sidebar #filters .filter-box .right,#preview #sidebar #filters .filter-box .right{float:right;border:none;margin-top:15px;background-color:inherit}#dashboard #sidebar #filters .filter-box .view,#preview #sidebar #filters .filter-box .view{width:100%;text-align:left;color:#0b0c0c;background-clip:border-box;background-origin:padding-box;background-size:auto auto;background:#dee0e2 url(/assets/option-select-toggle-sprite-7441bf787e9b72d66e042149e5b4cacf7ea516fb075588286c3ce697b4cd8198.png) no-repeat scroll}#dashboard #sidebar #filters .filter-box .open,#preview #sidebar #filters .filter-box .open{background-position:right -82px}#dashboard #sidebar #filters .filter-box .closed,#preview #sidebar #filters .filter-box .closed{background-position:right 0}#dashboard #sidebar #filters .filter-box .collapsed,#preview #sidebar #filters .filter-box .collapsed{display:none}#dashboard #sidebar #filters .filter-box .content .form-group,#preview #sidebar #filters .filter-box .content .form-group{margin-bottom:0}#dashboard #sidebar #filters .filter-box .content>label,#preview #sidebar #filters .filter-box .content>label{margin-top:15px}#dashboard #sidebar #filters .filter-box .content .list,#preview #sidebar #filters .filter-box .content .list{background-color:#fff;margin:5px 0}#dashboard #sidebar #filters .filter-box .content .list label,#preview #sidebar #filters .filter-box .content .list label{padding:8px;margin-bottom:0;font-size:16px}#dashboard #sidebar #filters .filter-box .content .list label:not(:last-child),#preview #sidebar #filters .filter-box .content .list label:not(:last-child){border-bottom:1px solid #dee0e2}#dashboard #sidebar #filters .filter-box .content .list label input[type="radio"],#preview #sidebar #filters .filter-box .content .list label input[type="radio"]{margin-right:8px;width:16px;height:16px}#dashboard #sidebar #filters .filter-box .content .list label:hover,#preview #sidebar #filters .filter-box .content .list label:hover{background:#ffbf47}#dashboard #sidebar #filters .filter-box .content #keywords,#preview #sidebar #filters .filter-box .content #keywords{width:100%}#dashboard #sidebar #filters .filter-box .content .clearFilter,#preview #sidebar #filters .filter-box .content .clearFilter{height:1.5em}@media (max-width: 991px){#dashboard #sidebar #filters,#dashboard #sidebar #quick-links,#preview #sidebar #filters,#preview #sidebar #quick-links{width:235px}} diff --git a/public/assets/fonts.css b/public/assets/fonts.css deleted file mode 100644 index 2c409df0a..000000000 --- a/public/assets/fonts.css +++ /dev/null @@ -1 +0,0 @@ -/*! Copyright (c) 2011 by Margaret Calvert & Henrik Kubel. All rights reserved. The font has been customised for exclusive use on gov.uk. This cut is not commercially available. */@font-face{font-family:'nta';src:url(/assets/fonts/v1-2c037cf7e1-light-1f97bf107db15b24a1b162c14ff7bdac8653f84f3b5466b5b5ba86fe3135b344.eot);src:url(/assets/fonts/v1-2c037cf7e1-light-1f97bf107db15b24a1b162c14ff7bdac8653f84f3b5466b5b5ba86fe3135b344.eot?#iefix) format("embedded-opentype"),url(/assets/fonts/v1-f38ad40456-light-6914b2e341921f60b38fad8a12cf66b77b02c02563bc336f3e11392332256dfb.woff2) format("woff2"),url(/assets/fonts/v1-458f8ea81c-light-e1a4f87b7e7e3e7093950fbb049f15a9546f44ffff251e458e9182d5401a6bf7.woff) format("woff");font-weight:normal;font-style:normal;font-display:fallback}@font-face{font-family:'nta';src:url(/assets/fonts/v1-fb2676462a-bold-f77451f4a14953ee166e9258e8d217d560b1bd3055e513b2e94dc1c76037e5a1.eot);src:url(/assets/fonts/v1-fb2676462a-bold-f77451f4a14953ee166e9258e8d217d560b1bd3055e513b2e94dc1c76037e5a1.eot?#iefix) format("embedded-opentype"),url(/assets/fonts/v1-a2452cb66f-bold-3f857db4ad8226026252b4715356d2edb065a2178d7a227bbba303ab922e4a42.woff2) format("woff2"),url(/assets/fonts/v1-f38c792ac2-bold-060283b0ac0f12b3786cf744abb8d26712cf046cb87dd88e7b820f1e3695690e.woff) format("woff");font-weight:bold;font-style:normal;font-display:fallback}@font-face{font-family:'ntatabularnumbers';src:url(/assets/fonts/v1-498ea8ffe2-tabular-light-e39ab46c3f31ea57c5238a36f1a421a1168bf7190ec9aa632e25a399b1f75e71.eot);src:url(/assets/fonts/v1-498ea8ffe2-tabular-light-e39ab46c3f31ea57c5238a36f1a421a1168bf7190ec9aa632e25a399b1f75e71.eot?#iefix) format("embedded-opentype"),url(/assets/fonts/v1-851b10ccdd-tabular-light-d0010447272496836718d44c0f23ebe6db7ac0b2019862a64bab17bca6422908.woff2) format("woff2"),url(/assets/fonts/v1-62cc6f0a28-tabular-light-fe275fc5ded3cbadbbb57d15aa72a8cc022ab4dbc4ea1d80665fec9c2fb81760.woff) format("woff");font-weight:normal;font-style:normal;font-display:fallback}@font-face{font-family:'ntatabularnumbers';src:url(/assets/fonts/v1-357fdfbcc3-tabular-bold-41b555e12baf3c415ab3d1cad0218cbc9cd52aa4657d11b5c33bce103f2d83e0.eot);src:url(/assets/fonts/v1-357fdfbcc3-tabular-bold-41b555e12baf3c415ab3d1cad0218cbc9cd52aa4657d11b5c33bce103f2d83e0.eot?#iefix) format("embedded-opentype"),url(/assets/fonts/v1-b89238d840-tabular-bold-cf8d8d1a2f03fbd67b9641234f7c9d0f47cce5ac1fee33032875fbb1b5308b29.woff2) format("woff2"),url(/assets/fonts/v1-784c21afb8-tabular-bold-72d0a7e364961336a5f16b324e9e81e5fc67dbf5883d3ebb50858e8122d0a389.woff) format("woff");font-weight:bold;font-style:normal;font-display:fallback} \ No newline at end of file diff --git a/public/assets/fonts/bold-affa96571d-v2.woff b/public/assets/fonts/bold-affa96571d-v2.woff deleted file mode 100755 index 48fbcf59c..000000000 Binary files a/public/assets/fonts/bold-affa96571d-v2.woff and /dev/null differ diff --git a/public/assets/fonts/bold-b542beb274-v2.woff2 b/public/assets/fonts/bold-b542beb274-v2.woff2 deleted file mode 100755 index 81fd14985..000000000 Binary files a/public/assets/fonts/bold-b542beb274-v2.woff2 and /dev/null differ diff --git a/public/assets/fonts/light-94a07e06a1-v2.woff2 b/public/assets/fonts/light-94a07e06a1-v2.woff2 deleted file mode 100755 index 1eb101571..000000000 Binary files a/public/assets/fonts/light-94a07e06a1-v2.woff2 and /dev/null differ diff --git a/public/assets/fonts/light-f591b13f7d-v2.woff b/public/assets/fonts/light-f591b13f7d-v2.woff deleted file mode 100755 index 3b26d5ffd..000000000 Binary files a/public/assets/fonts/light-f591b13f7d-v2.woff and /dev/null differ diff --git a/public/assets/gov.uk_logotype_crown_invert_trans-203e1db49d3eff430d7dc450ce723c1002542fe1d2bce661b6d8571f14c1043c.png b/public/assets/gov.uk_logotype_crown_invert_trans-203e1db49d3eff430d7dc450ce723c1002542fe1d2bce661b6d8571f14c1043c.png deleted file mode 100644 index 77e50de13..000000000 Binary files a/public/assets/gov.uk_logotype_crown_invert_trans-203e1db49d3eff430d7dc450ce723c1002542fe1d2bce661b6d8571f14c1043c.png and /dev/null differ diff --git a/public/assets/govuk-frontend.min.css b/public/assets/govuk-frontend.min.css deleted file mode 100644 index 96660641d..000000000 --- a/public/assets/govuk-frontend.min.css +++ /dev/null @@ -1,3 +0,0 @@ -@charset "UTF-8";:root{--govuk-frontend-version:"5.7.1";--govuk-frontend-breakpoint-mobile:20rem;--govuk-frontend-breakpoint-tablet:40.0625rem;--govuk-frontend-breakpoint-desktop:48.0625rem}.govuk-link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em} -/*! Copyright (c) 2011 by Margaret Calvert & Henrik Kubel. All rights reserved. The font has been customised for exclusive use on gov.uk. This cut is not commercially available. */@font-face{font-family:GDS Transport;font-style:normal;font-weight:400;src:url(/assets/fonts/light-94a07e06a1-v2.woff2) format("woff2"),url(/assets/fonts/light-f591b13f7d-v2.woff) format("woff");font-display:fallback}@font-face{font-family:GDS Transport;font-style:normal;font-weight:700;src:url(/assets/fonts/bold-b542beb274-v2.woff2) format("woff2"),url(/assets/fonts/bold-affa96571d-v2.woff) format("woff");font-display:fallback}@media print{.govuk-link{font-family:sans-serif}}.govuk-link:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-link:focus{outline:3px solid transparent;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-link:link{color:#1d70b8}.govuk-link:visited{color:#4c2c92}.govuk-link:hover{color:#003078}.govuk-link:active,.govuk-link:focus{color:#0b0c0c}@media print{[href^="/"].govuk-link:after,[href^="http://"].govuk-link:after,[href^="https://"].govuk-link:after{content:" (" attr(href) ")";font-size:90%;word-wrap:break-word}}.govuk-link--muted:link,.govuk-link--muted:visited{color:#505a5f}.govuk-link--muted:active,.govuk-link--muted:focus,.govuk-link--muted:hover,.govuk-link--text-colour:link,.govuk-link--text-colour:visited{color:#0b0c0c}@media print{.govuk-link--text-colour:link,.govuk-link--text-colour:visited{color:#000}}.govuk-link--text-colour:hover{color:rgba(11,12,12,.99)}.govuk-link--text-colour:active,.govuk-link--text-colour:focus{color:#0b0c0c}@media print{.govuk-link--text-colour:active,.govuk-link--text-colour:focus{color:#000}}.govuk-link--inverse:link,.govuk-link--inverse:visited{color:#fff}.govuk-link--inverse:active,.govuk-link--inverse:hover{color:hsla(0,0%,100%,.99)}.govuk-link--inverse:focus{color:#0b0c0c}.govuk-link--no-underline:not(:hover):not(:active){text-decoration:none}.govuk-link--no-visited-state:link,.govuk-link--no-visited-state:visited{color:#1d70b8}.govuk-link--no-visited-state:hover{color:#003078}.govuk-link--no-visited-state:active,.govuk-link--no-visited-state:focus{color:#0b0c0c}.govuk-link-image{display:inline-block;line-height:0;text-decoration:none}.govuk-link-image:focus{outline:3px solid transparent;box-shadow:0 0 0 4px #fd0,0 0 0 8px #0b0c0c}.govuk-list{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;margin-top:0;margin-bottom:15px;padding-left:0;list-style-type:none}@media print{.govuk-list{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-list{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-list{font-size:14pt;line-height:1.15;color:#000}}@media (min-width:40.0625em){.govuk-list{margin-bottom:20px}}.govuk-list .govuk-list{margin-top:10px}.govuk-list>li{margin-bottom:5px}.govuk-list--bullet{padding-left:20px;list-style-type:disc}.govuk-list--number{padding-left:20px;list-style-type:decimal}.govuk-list--bullet>li,.govuk-list--number>li{margin-bottom:0}@media (min-width:40.0625em){.govuk-list--bullet>li,.govuk-list--number>li{margin-bottom:5px}}.govuk-list--spaced>li{margin-bottom:10px}@media (min-width:40.0625em){.govuk-list--spaced>li{margin-bottom:15px}}.govuk-heading-xl{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:2rem;line-height:1.09375;display:block;margin-top:0;margin-bottom:30px}@media print{.govuk-heading-xl{color:#000;font-family:sans-serif}}@media (min-width:40.0625em){.govuk-heading-xl{font-size:3rem;line-height:1.0416666667}}@media print{.govuk-heading-xl{font-size:32pt;line-height:1.15}}@media (min-width:40.0625em){.govuk-heading-xl{margin-bottom:50px}}.govuk-heading-l{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1.5rem;line-height:1.0416666667;display:block;margin-top:0;margin-bottom:20px}@media print{.govuk-heading-l{color:#000;font-family:sans-serif}}@media (min-width:40.0625em){.govuk-heading-l{font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-heading-l{font-size:24pt;line-height:1.05}}@media (min-width:40.0625em){.govuk-heading-l{margin-bottom:30px}}.govuk-heading-m{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1.125rem;line-height:1.1111111111;display:block;margin-top:0;margin-bottom:15px}@media print{.govuk-heading-m{color:#000;font-family:sans-serif}}@media (min-width:40.0625em){.govuk-heading-m{font-size:1.5rem;line-height:1.25}}@media print{.govuk-heading-m{font-size:18pt;line-height:1.15}}@media (min-width:40.0625em){.govuk-heading-m{margin-bottom:20px}}.govuk-heading-s{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1rem;line-height:1.25;display:block;margin-top:0;margin-bottom:15px}@media print{.govuk-heading-s{color:#000;font-family:sans-serif}}@media (min-width:40.0625em){.govuk-heading-s{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-heading-s{font-size:14pt;line-height:1.15}}@media (min-width:40.0625em){.govuk-heading-s{margin-bottom:20px}}.govuk-caption-xl{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1.125rem;line-height:1.1111111111;display:block;margin-bottom:5px;color:#505a5f}@media print{.govuk-caption-xl{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-caption-xl{font-size:1.6875rem;line-height:1.1111111111}}@media print{.govuk-caption-xl{font-size:18pt;line-height:1.15}}.govuk-caption-l{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1.125rem;line-height:1.1111111111;display:block;margin-bottom:5px;color:#505a5f}@media print{.govuk-caption-l{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-caption-l{font-size:1.5rem;line-height:1.25}}@media print{.govuk-caption-l{font-size:18pt;line-height:1.15}}@media (min-width:40.0625em){.govuk-caption-l{margin-bottom:0}}.govuk-caption-m{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;display:block;color:#505a5f}@media print{.govuk-caption-m{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-caption-m{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-caption-m{font-size:14pt;line-height:1.15}}.govuk-body-l,.govuk-body-lead{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1.125rem;line-height:1.1111111111;margin-top:0;margin-bottom:20px}@media print{.govuk-body-l,.govuk-body-lead{color:#000;font-family:sans-serif}}@media (min-width:40.0625em){.govuk-body-l,.govuk-body-lead{font-size:1.5rem;line-height:1.25}}@media print{.govuk-body-l,.govuk-body-lead{font-size:18pt;line-height:1.15}}@media (min-width:40.0625em){.govuk-body-l,.govuk-body-lead{margin-bottom:30px}}.govuk-body,.govuk-body-m{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;margin-top:0;margin-bottom:15px}@media print{.govuk-body,.govuk-body-m{color:#000;font-family:sans-serif}}@media (min-width:40.0625em){.govuk-body,.govuk-body-m{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-body,.govuk-body-m{font-size:14pt;line-height:1.15}}@media (min-width:40.0625em){.govuk-body,.govuk-body-m{margin-bottom:20px}}.govuk-body-s{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:.875rem;line-height:1.1428571429;margin-top:0;margin-bottom:15px}@media print{.govuk-body-s{color:#000;font-family:sans-serif}}@media (min-width:40.0625em){.govuk-body-s{font-size:1rem;line-height:1.25}}@media print{.govuk-body-s{font-size:14pt;line-height:1.2}}@media (min-width:40.0625em){.govuk-body-s{margin-bottom:20px}}.govuk-body-xs{color:#0b0c0c;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:.75rem;line-height:1.25;margin-top:0;margin-bottom:15px}@media print{.govuk-body-xs{color:#000;font-family:sans-serif}}@media (min-width:40.0625em){.govuk-body-xs{font-size:.875rem;line-height:1.4285714286}}@media print{.govuk-body-xs{font-size:12pt;line-height:1.2}}@media (min-width:40.0625em){.govuk-body-xs{margin-bottom:20px}}.govuk-body-l+.govuk-heading-l,.govuk-body-lead+.govuk-heading-l{padding-top:5px}@media (min-width:40.0625em){.govuk-body-l+.govuk-heading-l,.govuk-body-lead+.govuk-heading-l{padding-top:10px}}.govuk-body+.govuk-heading-l,.govuk-body-m+.govuk-heading-l,.govuk-body-s+.govuk-heading-l,.govuk-list+.govuk-heading-l{padding-top:15px}@media (min-width:40.0625em){.govuk-body+.govuk-heading-l,.govuk-body-m+.govuk-heading-l,.govuk-body-s+.govuk-heading-l,.govuk-list+.govuk-heading-l{padding-top:20px}}.govuk-body+.govuk-heading-m,.govuk-body+.govuk-heading-s,.govuk-body-m+.govuk-heading-m,.govuk-body-m+.govuk-heading-s,.govuk-body-s+.govuk-heading-m,.govuk-body-s+.govuk-heading-s,.govuk-list+.govuk-heading-m,.govuk-list+.govuk-heading-s{padding-top:5px}@media (min-width:40.0625em){.govuk-body+.govuk-heading-m,.govuk-body+.govuk-heading-s,.govuk-body-m+.govuk-heading-m,.govuk-body-m+.govuk-heading-s,.govuk-body-s+.govuk-heading-m,.govuk-body-s+.govuk-heading-s,.govuk-list+.govuk-heading-m,.govuk-list+.govuk-heading-s{padding-top:10px}}.govuk-section-break{margin:0;border:0}.govuk-section-break--xl{margin-top:30px;margin-bottom:30px}@media (min-width:40.0625em){.govuk-section-break--xl{margin-top:50px;margin-bottom:50px}}.govuk-section-break--l{margin-top:20px;margin-bottom:20px}@media (min-width:40.0625em){.govuk-section-break--l{margin-top:30px;margin-bottom:30px}}.govuk-section-break--m{margin-top:15px;margin-bottom:15px}@media (min-width:40.0625em){.govuk-section-break--m{margin-top:20px;margin-bottom:20px}}.govuk-section-break--visible{border-bottom:1px solid #b1b4b6}.govuk-button-group{margin-bottom:5px;display:flex;flex-direction:column;align-items:center}@media (min-width:40.0625em){.govuk-button-group{margin-bottom:15px}}.govuk-button-group .govuk-link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.1875;display:inline-block;max-width:100%;margin-top:5px;margin-bottom:20px;text-align:center}@media print{.govuk-button-group .govuk-link{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-button-group .govuk-link{font-size:1.1875rem;line-height:1}}@media print{.govuk-button-group .govuk-link{font-size:14pt;line-height:19px}}.govuk-button-group .govuk-button{margin-bottom:17px}@media (min-width:40.0625em){.govuk-button-group{margin-right:-15px;flex-direction:row;flex-wrap:wrap;align-items:baseline}.govuk-button-group .govuk-button,.govuk-button-group .govuk-link{margin-right:15px}.govuk-button-group .govuk-link{text-align:left}}.govuk-form-group{margin-bottom:20px}.govuk-form-group:after{content:"";display:block;clear:both}@media (min-width:40.0625em){.govuk-form-group{margin-bottom:30px}}.govuk-form-group .govuk-form-group:last-of-type{margin-bottom:0}.govuk-form-group--error{padding-left:15px;border-left:5px solid #d4351c}.govuk-form-group--error .govuk-form-group{padding:0;border:0}.govuk-grid-row{margin-right:-15px;margin-left:-15px}.govuk-grid-row:after{content:"";display:block;clear:both}.govuk-grid-column-one-quarter{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width:40.0625em){.govuk-grid-column-one-quarter{width:25%;float:left}}.govuk-grid-column-one-third{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width:40.0625em){.govuk-grid-column-one-third{width:33.3333333333%;float:left}}.govuk-grid-column-one-half{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width:40.0625em){.govuk-grid-column-one-half{width:50%;float:left}}.govuk-grid-column-two-thirds{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width:40.0625em){.govuk-grid-column-two-thirds{width:66.6666666667%;float:left}}.govuk-grid-column-three-quarters{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width:40.0625em){.govuk-grid-column-three-quarters{width:75%;float:left}}.govuk-grid-column-full{box-sizing:border-box;width:100%;padding:0 15px}@media (min-width:40.0625em){.govuk-grid-column-full{width:100%;float:left}}.govuk-grid-column-one-quarter-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width:48.0625em){.govuk-grid-column-one-quarter-from-desktop{width:25%;float:left}}.govuk-grid-column-one-third-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width:48.0625em){.govuk-grid-column-one-third-from-desktop{width:33.3333333333%;float:left}}.govuk-grid-column-one-half-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width:48.0625em){.govuk-grid-column-one-half-from-desktop{width:50%;float:left}}.govuk-grid-column-two-thirds-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width:48.0625em){.govuk-grid-column-two-thirds-from-desktop{width:66.6666666667%;float:left}}.govuk-grid-column-three-quarters-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width:48.0625em){.govuk-grid-column-three-quarters-from-desktop{width:75%;float:left}}.govuk-grid-column-full-from-desktop{box-sizing:border-box;padding:0 15px}@media (min-width:48.0625em){.govuk-grid-column-full-from-desktop{width:100%;float:left}}.govuk-main-wrapper{display:block;padding-top:20px;padding-bottom:20px}@media (min-width:40.0625em){.govuk-main-wrapper{padding-top:40px;padding-bottom:40px}}.govuk-main-wrapper--auto-spacing:first-child,.govuk-main-wrapper--l{padding-top:30px}@media (min-width:40.0625em){.govuk-main-wrapper--auto-spacing:first-child,.govuk-main-wrapper--l{padding-top:50px}}.govuk-template{background-color:#f3f2f1;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}@supports ((position:-webkit-sticky) or (position:sticky)){.govuk-template{scroll-padding-top:60px}.govuk-template:not(:has(.govuk-exit-this-page)){scroll-padding-top:0}}@media screen{.govuk-template{overflow-y:scroll}}.govuk-template__body{margin:0;background-color:#fff}.govuk-width-container{max-width:960px;margin-right:15px;margin-left:15px}@supports (margin:max(calc(0px))){.govuk-width-container{margin-right:max(15px,calc(15px + env(safe-area-inset-right)));margin-left:max(15px,calc(15px + env(safe-area-inset-left)))}}@media (min-width:40.0625em){.govuk-width-container{margin-right:30px;margin-left:30px}@supports (margin:max(calc(0px))){.govuk-width-container{margin-right:max(30px,calc(15px + env(safe-area-inset-right)));margin-left:max(30px,calc(15px + env(safe-area-inset-left)))}}}@media (min-width:1020px){.govuk-width-container{margin-right:auto;margin-left:auto}@supports (margin:max(calc(0px))){.govuk-width-container{margin-right:auto;margin-left:auto}}}.govuk-accordion{margin-bottom:20px}@media (min-width:40.0625em){.govuk-accordion{margin-bottom:30px}}.govuk-accordion__section{padding-top:15px}.govuk-accordion__section-heading{margin-top:0;margin-bottom:0;padding-top:15px;padding-bottom:15px}.govuk-accordion__section-button{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1.125rem;line-height:1.1111111111;color:#0b0c0c;display:block;margin-bottom:0;padding-top:15px}@media print{.govuk-accordion__section-button{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-accordion__section-button{font-size:1.5rem;line-height:1.25}}@media print{.govuk-accordion__section-button{font-size:18pt;line-height:1.15;color:#000}}.govuk-accordion__section-content>:last-child{margin-bottom:0}.govuk-frontend-supported .govuk-accordion{border-bottom:1px solid #b1b4b6}.govuk-frontend-supported .govuk-accordion__section{padding-top:0}.govuk-frontend-supported .govuk-accordion__section-content{display:none;padding-top:15px;padding-bottom:30px}@media (min-width:40.0625em){.govuk-frontend-supported .govuk-accordion__section-content{padding-bottom:50px}}.govuk-frontend-supported .govuk-accordion__section-content[hidden]{padding-top:0;padding-bottom:0}@supports (content-visibility:hidden){.govuk-frontend-supported .govuk-accordion__section-content[hidden]{content-visibility:hidden;display:inherit}}.govuk-frontend-supported .govuk-accordion__section--expanded .govuk-accordion__section-content{display:block}.govuk-frontend-supported .govuk-accordion__show-all{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;position:relative;z-index:1;margin-bottom:9px;padding:5px 2px 5px 0;border-width:0;color:#1d70b8;background:none;cursor:pointer;-webkit-appearance:none}@media print{.govuk-frontend-supported .govuk-accordion__show-all{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-frontend-supported .govuk-accordion__show-all{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-frontend-supported .govuk-accordion__show-all{font-size:14pt;line-height:1.15}}@media (min-width:40.0625em){.govuk-frontend-supported .govuk-accordion__show-all{margin-bottom:14px}}.govuk-frontend-supported .govuk-accordion__show-all::-moz-focus-inner{padding:0;border:0}.govuk-frontend-supported .govuk-accordion__show-all:hover{color:#0b0c0c;background:#f3f2f1;box-shadow:0 -2px #f3f2f1,0 4px #f3f2f1}.govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion__section-toggle-text{color:#0b0c0c}.govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron{color:#0b0c0c;background:#0b0c0c}.govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron:after{color:#f3f2f1}.govuk-frontend-supported .govuk-accordion__show-all:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron{background:#0b0c0c}.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron:after{color:#fd0}.govuk-frontend-supported .govuk-accordion__section-heading{padding:0}.govuk-frontend-supported .govuk-accordion-nav__chevron{box-sizing:border-box;display:inline-block;position:relative;width:1.25rem;height:1.25rem;border:.0625rem solid;border-radius:50%;vertical-align:middle}.govuk-frontend-supported .govuk-accordion-nav__chevron:after{content:"";box-sizing:border-box;display:block;position:absolute;bottom:.3125rem;left:.375rem;width:.375rem;height:.375rem;transform:rotate(-45deg);border-top:.125rem solid;border-right:.125rem solid}.govuk-frontend-supported .govuk-accordion-nav__chevron--down{transform:rotate(180deg)}.govuk-frontend-supported .govuk-accordion__section-button{width:100%;padding:10px 0 0;border:0;border-top:1px solid #b1b4b6;border-bottom:10px solid transparent;color:#0b0c0c;background:none;text-align:left;cursor:pointer;-webkit-appearance:none}@media (min-width:40.0625em){.govuk-frontend-supported .govuk-accordion__section-button{padding-bottom:10px}}.govuk-frontend-supported .govuk-accordion__section-button:active{color:#0b0c0c;background:none}.govuk-frontend-supported .govuk-accordion__section-button:hover{color:#0b0c0c;background:#f3f2f1}.govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion__section-toggle-text{color:#0b0c0c}.govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron{color:#0b0c0c;background:#0b0c0c}.govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron:after{color:#f3f2f1}.govuk-frontend-supported .govuk-accordion__section-button:focus{outline:0}.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron{color:#0b0c0c;background:#0b0c0c}.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron:after{color:#fd0}.govuk-frontend-supported .govuk-accordion__section-button::-moz-focus-inner{padding:0;border:0}.govuk-frontend-supported .govuk-accordion__section--expanded .govuk-accordion__section-button{padding-bottom:15px;border-bottom:0}@media (min-width:40.0625em){.govuk-frontend-supported .govuk-accordion__section--expanded .govuk-accordion__section-button{padding-bottom:20px}}.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus{padding-bottom:3px}@media (min-width:48.0625em){.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus{padding-bottom:2px}}.govuk-frontend-supported .govuk-accordion__section-heading-text,.govuk-frontend-supported .govuk-accordion__section-summary,.govuk-frontend-supported .govuk-accordion__section-toggle{display:block;margin-bottom:13px}.govuk-frontend-supported .govuk-accordion__section-heading-text .govuk-accordion__section-heading-text-focus,.govuk-frontend-supported .govuk-accordion__section-heading-text .govuk-accordion__section-summary-focus,.govuk-frontend-supported .govuk-accordion__section-heading-text .govuk-accordion__section-toggle-focus,.govuk-frontend-supported .govuk-accordion__section-summary .govuk-accordion__section-heading-text-focus,.govuk-frontend-supported .govuk-accordion__section-summary .govuk-accordion__section-summary-focus,.govuk-frontend-supported .govuk-accordion__section-summary .govuk-accordion__section-toggle-focus,.govuk-frontend-supported .govuk-accordion__section-toggle .govuk-accordion__section-heading-text-focus,.govuk-frontend-supported .govuk-accordion__section-toggle .govuk-accordion__section-summary-focus,.govuk-frontend-supported .govuk-accordion__section-toggle .govuk-accordion__section-toggle-focus{display:inline}.govuk-frontend-supported .govuk-accordion__section-toggle{font-size:1rem;line-height:1.25;font-weight:400;color:#1d70b8}@media (min-width:40.0625em){.govuk-frontend-supported .govuk-accordion__section-toggle{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-frontend-supported .govuk-accordion__section-toggle{font-size:14pt;line-height:1.15}}.govuk-frontend-supported .govuk-accordion__section-toggle-text,.govuk-frontend-supported .govuk-accordion__show-all-text{margin-left:5px;vertical-align:middle}@media screen and (forced-colors:active){.govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron,.govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron{background-color:transparent}.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron,.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus,.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron,.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion__section-heading-text-focus,.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion__section-summary-focus,.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion__section-toggle-focus{background:transparent;background-color:transparent}}@media (hover:none){.govuk-frontend-supported .govuk-accordion__section-header:hover{border-top-color:#b1b4b6;box-shadow:inset 0 3px 0 0 #1d70b8}.govuk-frontend-supported .govuk-accordion__section-header:hover .govuk-accordion__section-button{border-top-color:#b1b4b6}}.govuk-back-link{font-size:.875rem;line-height:1.1428571429;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em;display:inline-block;position:relative;margin-top:15px;margin-bottom:15px;padding-left:.875em}@media (min-width:40.0625em){.govuk-back-link{font-size:1rem;line-height:1.25}}@media print{.govuk-back-link{font-size:14pt;line-height:1.2;font-family:sans-serif}}.govuk-back-link:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-back-link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-back-link:link,.govuk-back-link:visited{color:#0b0c0c}@media print{.govuk-back-link:link,.govuk-back-link:visited{color:#000}}.govuk-back-link:hover{color:rgba(11,12,12,.99)}.govuk-back-link:active,.govuk-back-link:focus{color:#0b0c0c}@media print{.govuk-back-link:active,.govuk-back-link:focus{color:#000}}.govuk-back-link:before{content:"";display:block;position:absolute;top:0;bottom:0;left:.1875em;width:.4375em;height:.4375em;margin:auto 0;transform:rotate(225deg);border:solid;border-width:1px 1px 0 0;border-color:#505a5f}@supports (border-width:max(0px)){.govuk-back-link:before{border-width:max(1px,.0625em) max(1px,.0625em) 0 0;font-size:max(16px,1em)}}.govuk-back-link:focus:before{border-color:#0b0c0c}.govuk-back-link:after{content:"";position:absolute;top:-14px;right:0;bottom:-14px;left:0}.govuk-back-link--inverse:link,.govuk-back-link--inverse:visited{color:#fff}.govuk-back-link--inverse:active,.govuk-back-link--inverse:hover{color:hsla(0,0%,100%,.99)}.govuk-back-link--inverse:focus{color:#0b0c0c}.govuk-back-link--inverse:before{border-color:currentcolor}.govuk-breadcrumbs{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:.875rem;line-height:1.1428571429;color:#0b0c0c;margin-top:15px;margin-bottom:10px}@media print{.govuk-breadcrumbs{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-breadcrumbs{font-size:1rem;line-height:1.25}}@media print{.govuk-breadcrumbs{font-size:14pt;line-height:1.2;color:#000}}.govuk-breadcrumbs__list{margin:0;padding:0;list-style-type:none}.govuk-breadcrumbs__list:after{content:"";display:block;clear:both}.govuk-breadcrumbs__list-item{display:inline-block;position:relative;margin-bottom:5px;margin-left:.625em;padding-left:.9784375em;float:left}.govuk-breadcrumbs__list-item:before{content:"";display:block;position:absolute;top:0;bottom:0;left:-.206875em;width:.4375em;height:.4375em;margin:auto 0;transform:rotate(45deg);border:solid;border-width:1px 1px 0 0;border-color:#505a5f}@supports (border-width:max(0px)){.govuk-breadcrumbs__list-item:before{border-width:max(1px,.0625em) max(1px,.0625em) 0 0;font-size:max(16px,1em)}}.govuk-breadcrumbs__list-item:first-child{margin-left:0;padding-left:0}.govuk-breadcrumbs__list-item:first-child:before{content:none;display:none}.govuk-breadcrumbs__link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}@media print{.govuk-breadcrumbs__link{font-family:sans-serif}}.govuk-breadcrumbs__link:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-breadcrumbs__link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-breadcrumbs__link:link,.govuk-breadcrumbs__link:visited{color:#0b0c0c}@media print{.govuk-breadcrumbs__link:link,.govuk-breadcrumbs__link:visited{color:#000}}.govuk-breadcrumbs__link:hover{color:rgba(11,12,12,.99)}.govuk-breadcrumbs__link:active,.govuk-breadcrumbs__link:focus{color:#0b0c0c}@media print{.govuk-breadcrumbs__link:active,.govuk-breadcrumbs__link:focus{color:#000}}@media (max-width:40.0525em){.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item{display:none}.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:first-child,.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:last-child{display:inline-block}.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:before{top:.375em;margin:0}.govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list{display:flex}}.govuk-breadcrumbs--inverse,.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:link,.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:visited{color:#fff}.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:active,.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:hover{color:hsla(0,0%,100%,.99)}.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:focus{color:#0b0c0c}.govuk-breadcrumbs--inverse .govuk-breadcrumbs__list-item:before{border-color:currentcolor}.govuk-button{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.1875;box-sizing:border-box;display:inline-block;position:relative;width:100%;margin:0 0 22px;padding:8px 10px 7px;border:2px solid transparent;border-radius:0;color:#fff;background-color:#00703c;box-shadow:0 2px 0 #002d18;text-align:center;vertical-align:top;cursor:pointer;-webkit-appearance:none}@media print{.govuk-button{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-button{font-size:1.1875rem;line-height:1}}@media print{.govuk-button{font-size:14pt;line-height:19px}}@media (min-width:40.0625em){.govuk-button{margin-bottom:32px;width:auto}}.govuk-button:active,.govuk-button:hover,.govuk-button:link,.govuk-button:visited{color:#fff;text-decoration:none}.govuk-button::-moz-focus-inner{padding:0;border:0}.govuk-button:hover{background-color:#005a30}.govuk-button:active{top:2px}.govuk-button:focus{border-color:#fd0;outline:3px solid transparent;box-shadow:inset 0 0 0 1px #fd0}.govuk-button:focus:not(:active):not(:hover){border-color:#fd0;color:#0b0c0c;background-color:#fd0;box-shadow:0 2px 0 #0b0c0c}.govuk-button:before{content:"";display:block;position:absolute;top:-2px;right:-2px;bottom:-4px;left:-2px;background:transparent}.govuk-button:active:before{top:-4px}.govuk-button[disabled]{opacity:.5}.govuk-button[disabled]:hover{background-color:#00703c;cursor:not-allowed}.govuk-button[disabled]:active{top:0;box-shadow:0 2px 0 #002d18}.govuk-button--secondary{background-color:#f3f2f1;box-shadow:0 2px 0 #929191}.govuk-button--secondary,.govuk-button--secondary:active,.govuk-button--secondary:hover,.govuk-button--secondary:link,.govuk-button--secondary:visited{color:#0b0c0c}.govuk-button--secondary:hover{background-color:#dbdad9}.govuk-button--secondary:hover[disabled]{background-color:#f3f2f1}.govuk-button--warning{background-color:#d4351c;box-shadow:0 2px 0 #55150b}.govuk-button--warning,.govuk-button--warning:active,.govuk-button--warning:hover,.govuk-button--warning:link,.govuk-button--warning:visited{color:#fff}.govuk-button--warning:hover{background-color:#aa2a16}.govuk-button--warning:hover[disabled]{background-color:#d4351c}.govuk-button--inverse{background-color:#fff;box-shadow:0 2px 0 #144e81}.govuk-button--inverse,.govuk-button--inverse:active,.govuk-button--inverse:hover,.govuk-button--inverse:link,.govuk-button--inverse:visited{color:#1d70b8}.govuk-button--inverse:hover{background-color:#e8f1f8}.govuk-button--inverse:hover[disabled]{background-color:#fff}.govuk-button--start{font-weight:700;font-size:1.125rem;line-height:1;display:inline-flex;min-height:auto;justify-content:center}@media (min-width:40.0625em){.govuk-button--start{font-size:1.5rem;line-height:1}}@media print{.govuk-button--start{font-size:18pt;line-height:1}}.govuk-button__start-icon{margin-left:5px;vertical-align:middle;flex-shrink:0;align-self:center;forced-color-adjust:auto}@media (min-width:48.0625em){.govuk-button__start-icon{margin-left:10px}}.govuk-error-message{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1rem;line-height:1.25;display:block;margin-top:0;margin-bottom:15px;clear:both;color:#d4351c}@media print{.govuk-error-message{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-error-message{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-error-message{font-size:14pt;line-height:1.15}}.govuk-hint{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;margin-bottom:15px;color:#505a5f}@media print{.govuk-hint{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-hint{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-hint{font-size:14pt;line-height:1.15}}.govuk-fieldset__legend:not(.govuk-fieldset__legend--m):not(.govuk-fieldset__legend--l):not(.govuk-fieldset__legend--xl)+.govuk-hint,.govuk-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl)+.govuk-hint{margin-bottom:10px}.govuk-fieldset__legend+.govuk-hint{margin-top:-5px}.govuk-label{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;display:block;margin-bottom:5px}@media print{.govuk-label{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-label{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-label{font-size:14pt;line-height:1.15;color:#000}}.govuk-label--l,.govuk-label--m,.govuk-label--xl{font-weight:700;margin-bottom:15px}.govuk-label--xl{font-size:2rem;line-height:1.09375}@media (min-width:40.0625em){.govuk-label--xl{font-size:3rem;line-height:1.0416666667}}@media print{.govuk-label--xl{font-size:32pt;line-height:1.15}}.govuk-label--l{font-size:1.5rem;line-height:1.0416666667}@media (min-width:40.0625em){.govuk-label--l{font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-label--l{font-size:24pt;line-height:1.05}}.govuk-label--m{font-size:1.125rem;line-height:1.1111111111}@media (min-width:40.0625em){.govuk-label--m{font-size:1.5rem;line-height:1.25}}@media print{.govuk-label--m{font-size:18pt;line-height:1.15}}.govuk-label--s{font-weight:700}.govuk-label-wrapper{margin:0}.govuk-textarea{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;box-sizing:border-box;display:block;width:100%;min-height:40px;margin-bottom:20px;padding:5px;resize:vertical;border:2px solid #0b0c0c;border-radius:0;-webkit-appearance:none}@media print{.govuk-textarea{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-textarea{font-size:1.1875rem;line-height:1.25}}@media print{.govuk-textarea{font-size:14pt;line-height:1.25}}@media (min-width:40.0625em){.govuk-textarea{margin-bottom:30px}}.govuk-textarea:focus{outline:3px solid #fd0;outline-offset:0;box-shadow:inset 0 0 0 2px}.govuk-textarea:disabled{opacity:.5;color:inherit;background-color:transparent;cursor:not-allowed}.govuk-textarea--error{border-color:#d4351c}.govuk-textarea--error:focus{border-color:#0b0c0c}.govuk-character-count{margin-bottom:20px}@media (min-width:40.0625em){.govuk-character-count{margin-bottom:30px}}.govuk-character-count .govuk-form-group,.govuk-character-count .govuk-textarea{margin-bottom:5px}.govuk-character-count__message{font-variant-numeric:tabular-nums;margin-top:0;margin-bottom:0}.govuk-character-count__message:after{content:"​"}.govuk-character-count__message--disabled{visibility:hidden}.govuk-fieldset{min-width:0;margin:0;padding:0;border:0}.govuk-fieldset:after{content:"";display:block;clear:both}@supports not (caret-color:auto){.govuk-fieldset,x:-moz-any-link{display:table-cell}}.govuk-fieldset__legend{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;box-sizing:border-box;display:table;max-width:100%;margin-bottom:10px;padding:0;white-space:normal}@media print{.govuk-fieldset__legend{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-fieldset__legend{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-fieldset__legend{font-size:14pt;line-height:1.15;color:#000}}.govuk-fieldset__legend--l,.govuk-fieldset__legend--m,.govuk-fieldset__legend--xl{font-weight:700;margin-bottom:15px}.govuk-fieldset__legend--xl{font-size:2rem;line-height:1.09375}@media (min-width:40.0625em){.govuk-fieldset__legend--xl{font-size:3rem;line-height:1.0416666667}}@media print{.govuk-fieldset__legend--xl{font-size:32pt;line-height:1.15}}.govuk-fieldset__legend--l{font-size:1.5rem;line-height:1.0416666667}@media (min-width:40.0625em){.govuk-fieldset__legend--l{font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-fieldset__legend--l{font-size:24pt;line-height:1.05}}.govuk-fieldset__legend--m{font-size:1.125rem;line-height:1.1111111111}@media (min-width:40.0625em){.govuk-fieldset__legend--m{font-size:1.5rem;line-height:1.25}}@media print{.govuk-fieldset__legend--m{font-size:18pt;line-height:1.15}}.govuk-fieldset__legend--s{font-weight:700}.govuk-fieldset__heading{margin:0;font-size:inherit;font-weight:inherit}.govuk-checkboxes__item{display:flex;flex-wrap:wrap;position:relative;margin-bottom:10px}.govuk-checkboxes__item:last-child,.govuk-checkboxes__item:last-of-type{margin-bottom:0}.govuk-checkboxes__input{z-index:1;width:44px;height:44px;margin:0;opacity:0;cursor:pointer}.govuk-checkboxes__label{align-self:center;max-width:calc(100% - 74px);margin-bottom:0;padding:7px 15px;cursor:pointer;touch-action:manipulation}.govuk-checkboxes__label:before{top:2px;left:2px;width:40px;height:40px;border:2px solid}.govuk-checkboxes__label:after,.govuk-checkboxes__label:before{content:"";box-sizing:border-box;position:absolute;background:transparent}.govuk-checkboxes__label:after{top:13px;left:10px;width:23px;height:12px;transform:rotate(-45deg);border:solid;border-width:0 0 5px 5px;border-top-color:transparent;opacity:0}.govuk-checkboxes__hint{display:block;width:100%;margin-top:-5px;padding-right:15px;padding-left:59px}.govuk-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl)+.govuk-checkboxes__hint{margin-bottom:0}.govuk-checkboxes__input:focus+.govuk-checkboxes__label:before{border-width:4px;outline:3px solid transparent;outline-offset:1px;box-shadow:0 0 0 3px #fd0}@media (-ms-high-contrast:active),screen and (forced-colors:active){.govuk-checkboxes__input:focus+.govuk-checkboxes__label:before{outline-color:Highlight}}.govuk-checkboxes__input:checked+.govuk-checkboxes__label:after{opacity:1}.govuk-checkboxes__input:disabled,.govuk-checkboxes__input:disabled+.govuk-checkboxes__label{cursor:not-allowed}.govuk-checkboxes__input:disabled+.govuk-checkboxes__label,.govuk-checkboxes__input:disabled~.govuk-hint{opacity:.5}.govuk-checkboxes__divider{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;width:40px;margin-bottom:10px;text-align:center}@media print{.govuk-checkboxes__divider{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-checkboxes__divider{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-checkboxes__divider{font-size:14pt;line-height:1.15;color:#000}}.govuk-checkboxes__conditional{margin-bottom:15px;margin-left:20px;padding-left:35px;border-left:4px solid #b1b4b6}@media (min-width:40.0625em){.govuk-checkboxes__conditional{margin-bottom:20px}}.govuk-frontend-supported .govuk-checkboxes__conditional--hidden{display:none}.govuk-checkboxes--small .govuk-checkboxes__item,.govuk-checkboxes__conditional>:last-child{margin-bottom:0}.govuk-checkboxes--small .govuk-checkboxes__input{margin-left:-10px}.govuk-checkboxes--small .govuk-checkboxes__label{padding-left:1px}.govuk-checkboxes--small .govuk-checkboxes__label:before{top:10px;left:0;width:24px;height:24px}.govuk-checkboxes--small .govuk-checkboxes__label:after{top:17px;left:6px;width:12px;height:6.5px;border-width:0 0 3px 3px}.govuk-checkboxes--small .govuk-checkboxes__hint{padding-left:34px}.govuk-checkboxes--small .govuk-checkboxes__conditional{margin-left:10px;padding-left:20px}.govuk-checkboxes--small .govuk-checkboxes__divider{width:24px;margin-bottom:5px}.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled)+.govuk-checkboxes__label:before{outline:3px dashed transparent;outline-offset:1px;box-shadow:0 0 0 10px #b1b4b6}.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus+.govuk-checkboxes__label:before{box-shadow:0 0 0 3px #fd0,0 0 0 10px #b1b4b6}@media (-ms-high-contrast:active),screen and (forced-colors:active){.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus+.govuk-checkboxes__label:before{outline-color:Highlight}}@media (hover:none),(pointer:coarse){.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled)+.govuk-checkboxes__label:before{box-shadow:none}.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus+.govuk-checkboxes__label:before{box-shadow:0 0 0 3px #fd0}}.govuk-cookie-banner{padding-top:20px;border-bottom:10px solid transparent;background-color:#f3f2f1}.govuk-cookie-banner[hidden]{display:none}.govuk-cookie-banner__message{margin-bottom:-10px}.govuk-cookie-banner__message[hidden]{display:none}.govuk-cookie-banner__message:focus{outline:none}.govuk-input{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;box-sizing:border-box;width:100%;height:2.5rem;margin-top:0;padding:5px;border:2px solid #0b0c0c;border-radius:0;-webkit-appearance:none;appearance:none}@media print{.govuk-input{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-input{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-input{font-size:14pt;line-height:1.15}}.govuk-input:focus{outline:3px solid #fd0;outline-offset:0;box-shadow:inset 0 0 0 2px}.govuk-input:disabled{opacity:.5;color:inherit;background-color:transparent;cursor:not-allowed}.govuk-input::-webkit-inner-spin-button,.govuk-input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.govuk-input[type=number]{-moz-appearance:textfield}.govuk-input--error{border-color:#d4351c}.govuk-input--error:focus{border-color:#0b0c0c}.govuk-input--extra-letter-spacing{font-variant-numeric:tabular-nums;letter-spacing:.05em}.govuk-input--width-30{max-width:29.5em}.govuk-input--width-20{max-width:20.5em}.govuk-input--width-10{max-width:11.5em}.govuk-input--width-5{max-width:5.5em}.govuk-input--width-4{max-width:4.5em}.govuk-input--width-3{max-width:3.75em}.govuk-input--width-2{max-width:2.75em}.govuk-input__wrapper{display:flex}.govuk-input__wrapper .govuk-input{flex:0 1 auto}.govuk-input__wrapper .govuk-input:focus{z-index:1}@media (max-width:19.99em){.govuk-input__wrapper{display:block}.govuk-input__wrapper .govuk-input{max-width:100%}}.govuk-input__prefix,.govuk-input__suffix{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;box-sizing:border-box;display:flex;align-items:center;justify-content:center;min-width:2.5rem;height:2.5rem;padding:5px;border:2px solid #0b0c0c;background-color:#f3f2f1;text-align:center;white-space:nowrap;cursor:default;flex:0 0 auto}@media print{.govuk-input__prefix,.govuk-input__suffix{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-input__prefix,.govuk-input__suffix{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-input__prefix,.govuk-input__suffix{font-size:14pt;line-height:1.15}}@media (max-width:19.99em){.govuk-input__prefix,.govuk-input__suffix{display:block;height:100%;white-space:normal}.govuk-input__prefix{border-bottom:0}}@media (min-width:20em){.govuk-input__prefix{border-right:0}}@media (max-width:19.99em){.govuk-input__suffix{border-top:0}}@media (min-width:20em){.govuk-input__suffix{border-left:0}}.govuk-date-input{font-size:0}.govuk-date-input:after{content:"";display:block;clear:both}.govuk-date-input__item{display:inline-block;margin-right:20px;margin-bottom:0}.govuk-date-input__label{display:block}.govuk-date-input__input{margin-bottom:0}.govuk-details{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;margin-bottom:20px;display:block}@media print{.govuk-details{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-details{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-details{font-size:14pt;line-height:1.15;color:#000}}@media (min-width:40.0625em){.govuk-details{margin-bottom:30px}}.govuk-details__summary{display:block}.govuk-details[open] .govuk-details__summary{margin-bottom:5px}.govuk-details__summary-text>:first-child{margin-top:0}.govuk-details__summary-text>:last-child,.govuk-details__summary-text>:only-child{margin-bottom:0}.govuk-details__text{padding-top:15px;padding-bottom:15px;padding-left:20px}.govuk-details__text p{margin-top:0;margin-bottom:20px}.govuk-details__text>:last-child{margin-bottom:0}@media screen\0 {.govuk-details{border-left:10px solid #b1b4b6}.govuk-details__summary{margin-top:15px}.govuk-details__summary-text{font-weight:700;margin-bottom:15px;padding-left:20px}}@media screen\0 and (min-width:40.0625em){.govuk-details__summary-text{margin-bottom:20px}}@supports not (-ms-ime-align:auto){.govuk-details__summary{position:relative;width:-webkit-fit-content;width:fit-content;padding-left:25px;color:#1d70b8;cursor:pointer}.govuk-details__summary:hover{color:#003078}.govuk-details__summary:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-details__summary-text{text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}.govuk-details__summary:hover .govuk-details__summary-text{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-details__summary:focus .govuk-details__summary-text{text-decoration:none}.govuk-details__summary::-webkit-details-marker{display:none}.govuk-details__summary:before{content:"";position:absolute;top:-1px;bottom:0;left:0;margin:auto;display:block;width:0;height:0;-webkit-clip-path:polygon(0 0,100% 50%,0 100%);clip-path:polygon(0 0,100% 50%,0 100%);border-color:transparent;border-style:solid;border-width:7px 0 7px 12.124px;border-left-color:inherit}.govuk-details[open]>.govuk-details__summary:before{display:block;width:0;height:0;-webkit-clip-path:polygon(0 0,50% 100%,100% 0);clip-path:polygon(0 0,50% 100%,100% 0);border-color:transparent;border-style:solid;border-width:12.124px 7px 0;border-top-color:inherit}.govuk-details__text{border-left:5px solid #b1b4b6}}.govuk-error-summary{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;padding:15px;margin-bottom:30px;border:5px solid #d4351c}@media print{.govuk-error-summary{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-error-summary{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-error-summary{font-size:14pt;line-height:1.15;color:#000}}@media (min-width:40.0625em){.govuk-error-summary{padding:20px;margin-bottom:50px}}.govuk-error-summary:focus{outline:3px solid #fd0}.govuk-error-summary__title{font-size:1.125rem;line-height:1.1111111111;font-weight:700;margin-top:0;margin-bottom:15px}@media (min-width:40.0625em){.govuk-error-summary__title{font-size:1.5rem;line-height:1.25}}@media print{.govuk-error-summary__title{font-size:18pt;line-height:1.15}}@media (min-width:40.0625em){.govuk-error-summary__title{margin-bottom:20px}}.govuk-error-summary__body p{margin-bottom:0}.govuk-error-summary__body>*+*{margin-top:15px}@media (min-width:40.0625em){.govuk-error-summary__body>*+*{margin-top:20px}}.govuk-error-summary__body>:last-child{margin-bottom:5px}.govuk-error-summary__list,.govuk-error-summary__list li:last-child{margin-bottom:0}.govuk-error-summary__list a{font-weight:700;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}@media print{.govuk-error-summary__list a{font-family:sans-serif}}.govuk-error-summary__list a:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-error-summary__list a:focus{outline:3px solid transparent;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-error-summary__list a:link,.govuk-error-summary__list a:visited{color:#d4351c}.govuk-error-summary__list a:hover{color:#942514}.govuk-error-summary__list a:active{color:#d4351c}.govuk-error-summary__list a:focus{color:#0b0c0c}.govuk-exit-this-page{margin-bottom:30px;position:-webkit-sticky;position:sticky;z-index:1000;top:0;left:0;width:100%}@media (min-width:40.0625em){.govuk-exit-this-page{margin-bottom:50px;display:inline-block;right:0;left:auto;width:auto;float:right}}.govuk-exit-this-page__button{margin-bottom:0}.govuk-exit-this-page__indicator{display:none;padding:10px 10px 0;color:inherit;line-height:0;text-align:center;pointer-events:none}.govuk-exit-this-page__indicator--visible{display:block}.govuk-exit-this-page__indicator-light{box-sizing:border-box;display:inline-block;width:.75em;height:.75em;margin:0 .125em;border-radius:50%;border:2px solid}.govuk-exit-this-page__indicator-light--on{border-width:.375em}@media only print{.govuk-exit-this-page{display:none}}.govuk-exit-this-page-overlay{position:fixed;z-index:9999;top:0;right:0;bottom:0;left:0;background-color:#fff}.govuk-exit-this-page-hide-content *{display:none!important}.govuk-exit-this-page-hide-content .govuk-exit-this-page-overlay{display:block!important}.govuk-file-upload{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;max-width:100%;margin-left:-5px;padding:5px}@media print{.govuk-file-upload{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-file-upload{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-file-upload{font-size:14pt;line-height:1.15;color:#000}}.govuk-file-upload::-webkit-file-upload-button{-webkit-appearance:button;color:inherit;font:inherit}.govuk-file-upload:focus{outline:3px solid #fd0;box-shadow:inset 0 0 0 4px #0b0c0c}.govuk-file-upload:focus-within{outline:3px solid #fd0;box-shadow:inset 0 0 0 4px #0b0c0c}.govuk-file-upload:disabled{opacity:.5;cursor:not-allowed}.govuk-footer{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:.875rem;line-height:1.1428571429;padding-top:25px;padding-bottom:15px;border-top:1px solid #b1b4b6;color:#0b0c0c;background:#f3f2f1}@media print{.govuk-footer{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-footer{font-size:1rem;line-height:1.25}}@media print{.govuk-footer{font-size:14pt;line-height:1.2}}@media (min-width:40.0625em){.govuk-footer{padding-top:40px;padding-bottom:25px}}.govuk-footer__link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}@media print{.govuk-footer__link{font-family:sans-serif}}.govuk-footer__link:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-footer__link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-footer__link:link,.govuk-footer__link:visited{color:#0b0c0c}@media print{.govuk-footer__link:link,.govuk-footer__link:visited{color:#000}}.govuk-footer__link:hover{color:rgba(11,12,12,.99)}.govuk-footer__link:active,.govuk-footer__link:focus{color:#0b0c0c}@media print{.govuk-footer__link:active,.govuk-footer__link:focus{color:#000}}.govuk-footer__section-break{margin:0 0 30px;border:0;border-bottom:1px solid #b1b4b6}@media (min-width:40.0625em){.govuk-footer__section-break{margin-bottom:50px}}.govuk-footer__meta{display:flex;margin-right:-15px;margin-left:-15px;flex-wrap:wrap;align-items:flex-end;justify-content:center}.govuk-footer__meta-item{margin-right:15px;margin-bottom:25px;margin-left:15px}.govuk-footer__meta-item--grow{flex:1}@media (max-width:40.0525em){.govuk-footer__meta-item--grow{flex-basis:320px}}.govuk-footer__licence-logo{display:inline-block;margin-right:10px;vertical-align:top;forced-color-adjust:auto}@media (max-width:48.0525em){.govuk-footer__licence-logo{margin-bottom:15px}}.govuk-footer__licence-description{display:inline-block;text-wrap:balance}.govuk-footer__copyright-logo{display:inline-block;min-width:125px;padding-top:112px;background-image:url(/assets/images/govuk-crest.svg);background-repeat:no-repeat;background-position:50% 0;background-size:125px 102px;text-align:center;white-space:nowrap}.govuk-footer__inline-list{margin-top:0;margin-bottom:15px;padding:0}.govuk-footer__meta-custom{margin-bottom:20px}.govuk-footer__inline-list-item{display:inline-block;margin-right:15px;margin-bottom:5px}.govuk-footer__heading{margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid #b1b4b6}@media (max-width:40.0525em){.govuk-footer__heading{padding-bottom:10px}}.govuk-footer__navigation{margin-right:-15px;margin-left:-15px}.govuk-footer__navigation:after{content:"";display:block;clear:both}.govuk-footer__section{display:inline-block;margin-bottom:30px;vertical-align:top}.govuk-footer__list{margin:0;padding:0;list-style:none;column-gap:30px}@media (min-width:48.0625em){.govuk-footer__list--columns-2{column-count:2}.govuk-footer__list--columns-3{column-count:3}}.govuk-footer__list-item{margin-bottom:15px}@media (min-width:40.0625em){.govuk-footer__list-item{margin-bottom:20px}}.govuk-footer__list-item:last-child{margin-bottom:0}.govuk-header{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:.875rem;line-height:1;border-bottom:10px solid #fff;color:#fff;background:#0b0c0c}@media print{.govuk-header{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-header{font-size:1rem;line-height:1}}@media print{.govuk-header{font-size:14pt;line-height:1}}.govuk-header__container--full-width{padding:0 15px;border-color:#1d70b8}.govuk-header__container--full-width .govuk-header__menu-button{right:15px}.govuk-header__container{position:relative;margin-bottom:-10px;padding-top:10px;border-bottom:10px solid #1d70b8}.govuk-header__container:after{content:"";display:block;clear:both}.govuk-header--full-width-border{border-bottom-color:#1d70b8}.govuk-header--full-width-border .govuk-header__container{border-bottom-color:transparent}.govuk-header__logotype{display:inline-block;position:relative;top:-3px;margin-right:5px;fill:currentcolor;vertical-align:top}@media (forced-colors:active){.govuk-header__logotype{forced-color-adjust:none;color:linktext}}.govuk-header__logotype:last-child{margin-right:0}.govuk-header__product-name{font-size:1.125rem;line-height:1;font-weight:400;display:inline-table;margin-top:10px;vertical-align:top}@media (min-width:40.0625em){.govuk-header__product-name{font-size:1.5rem;line-height:1}}@media print{.govuk-header__product-name{font-size:18pt;line-height:1}}@-moz-document url-prefix(){.govuk-header__product-name{margin-top:9.5px}}@media (min-width:40.0625em){.govuk-header__product-name{margin-top:5px}@-moz-document url-prefix(){.govuk-header__product-name{margin-top:4.5px}}}.govuk-header__link{text-decoration:none}.govuk-header__link:link,.govuk-header__link:visited{color:#fff}.govuk-header__link:active,.govuk-header__link:hover{color:hsla(0,0%,100%,.99)}.govuk-header__link:hover{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:.1578em}.govuk-header__link:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-header__link--homepage{display:inline-block;margin-right:10px;font-size:30px}@media (min-width:48.0625em){.govuk-header__link--homepage{display:inline}.govuk-header__link--homepage:focus{box-shadow:0 0 #fd0}}.govuk-header__link--homepage:link,.govuk-header__link--homepage:visited{text-decoration:none}.govuk-header__link--homepage:active,.govuk-header__link--homepage:hover{margin-bottom:-3px;border-bottom:3px solid}.govuk-header__link--homepage:focus{margin-bottom:0;border-bottom:0}.govuk-header__service-name{display:inline-block;margin-bottom:10px;font-size:1.125rem;line-height:1.1111111111;font-weight:700}@media (min-width:40.0625em){.govuk-header__service-name{font-size:1.5rem;line-height:1.25}}@media print{.govuk-header__service-name{font-size:18pt;line-height:1.15}}.govuk-header__content,.govuk-header__logo{box-sizing:border-box}.govuk-header__logo{margin-bottom:10px;padding-right:80px}@media (min-width:48.0625em){.govuk-header__logo{width:33.33%;padding-right:15px;float:left;vertical-align:top}.govuk-header__logo:last-child{width:auto;padding-right:0;float:none}.govuk-header__content{width:66.66%;padding-left:15px;float:left}}.govuk-header__menu-button{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:.875rem;line-height:1.1428571429;position:absolute;top:13px;right:0;max-width:80px;min-height:24px;margin:0;padding:0;border:0;color:#fff;background:none;word-break:break-all;cursor:pointer}@media print{.govuk-header__menu-button{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-header__menu-button{font-size:1rem;line-height:1.25}}@media print{.govuk-header__menu-button{font-size:14pt;line-height:1.2}}.govuk-header__menu-button:hover{-webkit-text-decoration:solid underline 3px;text-decoration:solid underline 3px;text-underline-offset:.1578em}.govuk-header__menu-button:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-header__menu-button:after{display:inline-block;width:0;height:0;-webkit-clip-path:polygon(0 0,50% 100%,100% 0);clip-path:polygon(0 0,50% 100%,100% 0);border-color:transparent;border-style:solid;border-width:8.66px 5px 0;border-top-color:inherit;content:"";margin-left:5px}.govuk-header__menu-button[aria-expanded=true]:after{display:inline-block;width:0;height:0;-webkit-clip-path:polygon(50% 0,0 100%,100% 100%);clip-path:polygon(50% 0,0 100%,100% 100%);border-color:transparent;border-style:solid;border-width:0 5px 8.66px;border-bottom-color:inherit}@media (min-width:40.0625em){.govuk-header__menu-button{top:15px}}.govuk-frontend-supported .govuk-header__menu-button{display:block}.govuk-frontend-supported .govuk-header__menu-button[hidden],.govuk-header__menu-button[hidden]{display:none}@media (min-width:48.0625em){.govuk-header__navigation{margin-bottom:10px}}.govuk-header__navigation-list{margin:0;padding:0;list-style:none}.govuk-header__navigation-list[hidden]{display:none}@media (min-width:48.0625em){.govuk-header__navigation--end{margin:0;padding:5px 0;text-align:right}}.govuk-header__navigation-item{padding:10px 0;border-bottom:1px solid #2e3133}@media (min-width:48.0625em){.govuk-header__navigation-item{display:inline-block;margin-right:15px;padding:5px 0;border:0}}.govuk-header__navigation-item a{font-size:.875rem;line-height:1.1428571429;font-weight:700;white-space:nowrap}@media (min-width:40.0625em){.govuk-header__navigation-item a{font-size:1rem;line-height:1.25}}@media print{.govuk-header__navigation-item a{font-size:14pt;line-height:1.2}}.govuk-header__navigation-item--active a:hover,.govuk-header__navigation-item--active a:link,.govuk-header__navigation-item--active a:visited{color:#1d8feb}@media print{.govuk-header__navigation-item--active a{color:#1d70b8}}.govuk-header__navigation-item--active a:focus{color:#0b0c0c}.govuk-header__navigation-item:last-child{margin-right:0;border-bottom:0}@media print{.govuk-header{border-bottom-width:0;color:#0b0c0c;background:transparent}.govuk-header__link:link,.govuk-header__link:visited{color:#0b0c0c}.govuk-header__link:after{display:none}}.govuk-inset-text{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;padding:15px;margin-top:20px;margin-bottom:20px;clear:both;border-left:10px solid #b1b4b6}@media print{.govuk-inset-text{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-inset-text{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-inset-text{font-size:14pt;line-height:1.15;color:#000}}@media (min-width:40.0625em){.govuk-inset-text{margin-top:30px;margin-bottom:30px}}.govuk-inset-text>:first-child{margin-top:0}.govuk-inset-text>:last-child,.govuk-inset-text>:only-child{margin-bottom:0}.govuk-notification-banner{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;margin-bottom:30px;border:5px solid #1d70b8;background-color:#1d70b8}@media print{.govuk-notification-banner{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-notification-banner{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-notification-banner{font-size:14pt;line-height:1.15}}@media (min-width:40.0625em){.govuk-notification-banner{margin-bottom:50px}}.govuk-notification-banner:focus{outline:3px solid #fd0}.govuk-notification-banner__header{padding:2px 15px 5px;border-bottom:1px solid transparent}@media (min-width:40.0625em){.govuk-notification-banner__header{padding:2px 20px 5px}}.govuk-notification-banner__title{font-size:1rem;line-height:1.25;font-weight:700;margin:0;padding:0;color:#fff}@media (min-width:40.0625em){.govuk-notification-banner__title{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-notification-banner__title{font-size:14pt;line-height:1.15}}.govuk-notification-banner__content{color:#0b0c0c;padding:15px;background-color:#fff}@media print{.govuk-notification-banner__content{color:#000}}@media (min-width:40.0625em){.govuk-notification-banner__content{padding:20px}}.govuk-notification-banner__content>*{box-sizing:border-box;max-width:605px}.govuk-notification-banner__content>:last-child{margin-bottom:0}.govuk-notification-banner__heading{font-size:1.125rem;line-height:1.1111111111;font-weight:700;margin:0 0 15px;padding:0}@media (min-width:40.0625em){.govuk-notification-banner__heading{font-size:1.5rem;line-height:1.25}}@media print{.govuk-notification-banner__heading{font-size:18pt;line-height:1.15}}.govuk-notification-banner__link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}@media print{.govuk-notification-banner__link{font-family:sans-serif}}.govuk-notification-banner__link:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-notification-banner__link:focus{outline:3px solid transparent;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-notification-banner__link:link,.govuk-notification-banner__link:visited{color:#1d70b8}.govuk-notification-banner__link:hover{color:#003078}.govuk-notification-banner__link:active,.govuk-notification-banner__link:focus{color:#0b0c0c}.govuk-notification-banner--success{border-color:#00703c;background-color:#00703c}.govuk-notification-banner--success .govuk-notification-banner__link:link,.govuk-notification-banner--success .govuk-notification-banner__link:visited{color:#00703c}.govuk-notification-banner--success .govuk-notification-banner__link:hover{color:#004e2a}.govuk-notification-banner--success .govuk-notification-banner__link:active{color:#00703c}.govuk-notification-banner--success .govuk-notification-banner__link:focus{color:#0b0c0c}.govuk-pagination{margin-bottom:20px;display:flex;flex-direction:column;align-items:center;flex-wrap:wrap}@media (min-width:40.0625em){.govuk-pagination{margin-bottom:30px;flex-direction:row;align-items:flex-start}}.govuk-pagination__list{margin:0;padding:0;list-style:none}.govuk-pagination__item,.govuk-pagination__next,.govuk-pagination__prev{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;box-sizing:border-box;position:relative;min-width:45px;min-height:45px;padding:10px 15px;float:left}@media print{.govuk-pagination__item,.govuk-pagination__next,.govuk-pagination__prev{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-pagination__item,.govuk-pagination__next,.govuk-pagination__prev{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-pagination__item,.govuk-pagination__next,.govuk-pagination__prev{font-size:14pt;line-height:1.15}}.govuk-pagination__item:hover,.govuk-pagination__next:hover,.govuk-pagination__prev:hover{background-color:#f3f2f1}.govuk-pagination__item{display:none;text-align:center}@media (min-width:40.0625em){.govuk-pagination__item{display:block}}.govuk-pagination__next,.govuk-pagination__prev{font-weight:700}.govuk-pagination__next .govuk-pagination__link,.govuk-pagination__prev .govuk-pagination__link{display:flex;align-items:center}.govuk-pagination__prev{padding-left:0}.govuk-pagination__next{padding-right:0}.govuk-pagination__item--current,.govuk-pagination__item--ellipses,.govuk-pagination__item:first-child,.govuk-pagination__item:last-child{display:block}.govuk-pagination__item--current{font-weight:700;outline:1px solid transparent;background-color:#1d70b8}.govuk-pagination__item--current:hover{background-color:#1d70b8}.govuk-pagination__item--current .govuk-pagination__link:link,.govuk-pagination__item--current .govuk-pagination__link:visited{color:#fff}.govuk-pagination__item--current .govuk-pagination__link:active,.govuk-pagination__item--current .govuk-pagination__link:hover{color:hsla(0,0%,100%,.99)}.govuk-pagination__item--current .govuk-pagination__link:focus{color:#0b0c0c}.govuk-pagination__item--ellipses{font-weight:700;color:#505a5f}.govuk-pagination__item--ellipses:hover{background-color:transparent}.govuk-pagination__link{display:block;min-width:15px}@media screen{.govuk-pagination__link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}}.govuk-pagination__link:active .govuk-pagination__link-title--decorated,.govuk-pagination__link:hover .govuk-pagination__link-title--decorated{text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}.govuk-pagination__link:active .govuk-pagination__link-label,.govuk-pagination__link:active .govuk-pagination__link-title--decorated,.govuk-pagination__link:hover .govuk-pagination__link-label,.govuk-pagination__link:hover .govuk-pagination__link-title--decorated{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-pagination__link:focus .govuk-pagination__icon{color:#0b0c0c}.govuk-pagination__link:focus .govuk-pagination__link-label,.govuk-pagination__link:focus .govuk-pagination__link-title--decorated{text-decoration:none}.govuk-pagination__link-label{font-weight:400;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em;display:inline-block}.govuk-pagination__icon{width:.9375rem;height:.8125rem;color:#505a5f;fill:currentcolor;forced-color-adjust:auto}.govuk-pagination__icon--prev{margin-right:15px}.govuk-pagination__icon--next{margin-left:15px}.govuk-pagination--block{display:block}.govuk-pagination--block .govuk-pagination__next,.govuk-pagination--block .govuk-pagination__prev{padding-left:0;float:none}.govuk-pagination--block .govuk-pagination__next .govuk-pagination__link,.govuk-pagination--block .govuk-pagination__prev .govuk-pagination__link{display:inline-block}.govuk-pagination--block .govuk-pagination__next{padding-right:15px}.govuk-pagination--block .govuk-pagination__prev+.govuk-pagination__next{border-top:1px solid #b1b4b6}.govuk-pagination--block .govuk-pagination__link-title:after{content:"";display:block}.govuk-pagination--block .govuk-pagination__link{padding-left:30px;text-align:left}.govuk-pagination--block .govuk-pagination__link:not(:focus){text-decoration:none}.govuk-pagination--block .govuk-pagination__icon{margin-top:.326em;margin-left:-30px;float:left}.govuk-panel{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1.5rem;line-height:1.0416666667;box-sizing:border-box;margin-bottom:15px;padding:35px;border:5px solid transparent;text-align:center}@media print{.govuk-panel{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-panel{font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-panel{font-size:24pt;line-height:1.05}}@media (max-width:40.0525em){.govuk-panel{padding:10px;overflow-wrap:break-word;word-wrap:break-word}}.govuk-panel--confirmation{color:#fff;background:#00703c}@media print{.govuk-panel--confirmation{border-color:currentcolor;color:#000;background:none}}.govuk-panel__title{font-size:2rem;line-height:1.09375;font-weight:700;margin-top:0;margin-bottom:30px}@media (min-width:40.0625em){.govuk-panel__title{font-size:3rem;line-height:1.0416666667}}@media print{.govuk-panel__title{font-size:32pt;line-height:1.15}}.govuk-panel__title:last-child{margin-bottom:0}@media (min-width:20em){.govuk-password-input__wrapper{flex-direction:row;align-items:flex-start}}.govuk-password-input__input::-ms-reveal{display:none}.govuk-password-input__toggle{margin-top:5px;margin-bottom:0}.govuk-password-input__toggle[hidden]{display:none}@media (min-width:20em){.govuk-password-input__toggle{width:auto;flex-shrink:0;flex-basis:5em;margin-top:0;margin-left:5px}}.govuk-tag{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;display:inline-block;max-width:160px;margin-top:-2px;margin-bottom:-3px;padding:2px 8px 3px;color:#0c2d4a;background-color:#bbd4ea;text-decoration:none;overflow-wrap:break-word}@media print{.govuk-tag{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-tag{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-tag{font-size:14pt;line-height:1.15}}@media screen and (forced-colors:active){.govuk-tag{font-weight:700}}.govuk-tag--grey{color:#282d30;background-color:#e5e6e7}.govuk-tag--purple{color:#491644;background-color:#efdfed}.govuk-tag--turquoise{color:#10403c;background-color:#d4ecea}.govuk-tag--blue{color:#0c2d4a;background-color:#bbd4ea}.govuk-tag--light-blue{color:#0c2d4a;background-color:#e8f1f8}.govuk-tag--yellow{color:#594d00;background-color:#fff7bf}.govuk-tag--orange{color:#6e3619;background-color:#fcd6c3}.govuk-tag--red{color:#2a0b06;background-color:#f4cdc6}.govuk-tag--pink{color:#6b1c40;background-color:#f9e1ec}.govuk-tag--green{color:#005a30;background-color:#cce2d8}.govuk-phase-banner{padding-top:10px;padding-bottom:10px;border-bottom:1px solid #b1b4b6}.govuk-phase-banner__content{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:.875rem;line-height:1.1428571429;color:#0b0c0c;display:table;margin:0}@media print{.govuk-phase-banner__content{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-phase-banner__content{font-size:1rem;line-height:1.25}}@media print{.govuk-phase-banner__content{font-size:14pt;line-height:1.2;color:#000}}.govuk-phase-banner__content__tag{font-size:.875rem;line-height:1.1428571429;margin-right:10px}@media (min-width:40.0625em){.govuk-phase-banner__content__tag{font-size:1rem;line-height:1.25}}@media print{.govuk-phase-banner__content__tag{font-size:14pt;line-height:1.2}}.govuk-phase-banner__text{display:table-cell;vertical-align:middle}.govuk-radios__item{display:flex;flex-wrap:wrap;position:relative;margin-bottom:10px}.govuk-radios__item:last-child,.govuk-radios__item:last-of-type{margin-bottom:0}.govuk-radios__input{z-index:1;width:44px;height:44px;margin:0;opacity:0;cursor:pointer}.govuk-radios__label{align-self:center;max-width:calc(100% - 74px);margin-bottom:0;padding:7px 15px;cursor:pointer;touch-action:manipulation}.govuk-radios__label:before{content:"";box-sizing:border-box;position:absolute;top:2px;left:2px;width:40px;height:40px;border:2px solid;border-radius:50%;background:transparent}.govuk-radios__label:after{content:"";position:absolute;top:12px;left:12px;width:0;height:0;border:10px solid;border-radius:50%;opacity:0;background:currentcolor}.govuk-radios__hint{display:block;width:100%;margin-top:-5px;padding-right:15px;padding-left:59px}.govuk-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl)+.govuk-radios__hint{margin-bottom:0}.govuk-radios__input:focus+.govuk-radios__label:before{border-width:4px;outline:3px solid transparent;outline-offset:1px;box-shadow:0 0 0 4px #fd0}@media (-ms-high-contrast:active),screen and (forced-colors:active){.govuk-radios__input:focus+.govuk-radios__label:before{outline-color:Highlight}}.govuk-radios__input:checked+.govuk-radios__label:after{opacity:1}.govuk-radios__input:disabled,.govuk-radios__input:disabled+.govuk-radios__label{cursor:not-allowed}.govuk-radios__input:disabled+.govuk-radios__label,.govuk-radios__input:disabled~.govuk-hint{opacity:.5}@media (min-width:40.0625em){.govuk-radios--inline{display:flex;flex-wrap:wrap;align-items:flex-start}.govuk-radios--inline .govuk-radios__item{margin-right:20px}}.govuk-radios__divider{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;width:40px;margin-bottom:10px;text-align:center}@media print{.govuk-radios__divider{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-radios__divider{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-radios__divider{font-size:14pt;line-height:1.15;color:#000}}.govuk-radios__conditional{margin-bottom:15px;margin-left:20px;padding-left:35px;border-left:4px solid #b1b4b6}@media (min-width:40.0625em){.govuk-radios__conditional{margin-bottom:20px}}.govuk-frontend-supported .govuk-radios__conditional--hidden{display:none}.govuk-radios--small .govuk-radios__item,.govuk-radios__conditional>:last-child{margin-bottom:0}.govuk-radios--small .govuk-radios__input{margin-left:-10px}.govuk-radios--small .govuk-radios__label{padding-left:1px}.govuk-radios--small .govuk-radios__label:before{top:10px;left:0;width:24px;height:24px}.govuk-radios--small .govuk-radios__label:after{top:17px;left:7px;border-width:5px}.govuk-radios--small .govuk-radios__hint{padding-left:34px}.govuk-radios--small .govuk-radios__conditional{margin-left:10px;padding-left:20px}.govuk-radios--small .govuk-radios__divider{width:24px;margin-bottom:5px}.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled)+.govuk-radios__label:before{outline:4px dashed transparent;outline-offset:1px;box-shadow:0 0 0 10px #b1b4b6}.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus+.govuk-radios__label:before{box-shadow:0 0 0 4px 0 0 0 10px #fd0 #b1b4b6}@media (-ms-high-contrast:active),screen and (forced-colors:active){.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus+.govuk-radios__label:before{outline-color:Highlight}}@media (hover:none),(pointer:coarse){.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled)+.govuk-radios__label:before{box-shadow:none}.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus+.govuk-radios__label:before{box-shadow:0 0 0 4px #fd0}}.govuk-select{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;box-sizing:border-box;min-width:11.5em;max-width:100%;height:2.5rem;padding:5px;border:2px solid #0b0c0c;color:#0b0c0c;background-color:#fff}@media print{.govuk-select{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-select{font-size:1.1875rem;line-height:1.25}}@media print{.govuk-select{font-size:14pt;line-height:1.25}}.govuk-select:focus{outline:3px solid #fd0;outline-offset:0;box-shadow:inset 0 0 0 2px}.govuk-select:disabled{opacity:.5;color:inherit;cursor:not-allowed}.govuk-select option:active,.govuk-select option:checked,.govuk-select:focus::-ms-value{color:#fff;background-color:#1d70b8}.govuk-select--error{border-color:#d4351c}.govuk-select--error:focus{border-color:#0b0c0c}.govuk-service-navigation{border-bottom:1px solid #b1b4b6;background-color:#f3f2f1}.govuk-service-navigation__container{display:flex;flex-direction:column;align-items:start}@media (min-width:40.0625em){.govuk-service-navigation__container{flex-direction:row;flex-wrap:wrap}}.govuk-service-navigation__item,.govuk-service-navigation__service-name{position:relative;margin:10px 0;border:0 solid #1a65a6}@media (min-width:40.0625em){.govuk-service-navigation__item,.govuk-service-navigation__service-name{margin-top:0;margin-bottom:0;padding:20px 0}.govuk-service-navigation__item:not(:last-child),.govuk-service-navigation__service-name:not(:last-child){margin-right:20px}}@media (min-width:40.0625em) and (min-width:40.0625em){.govuk-service-navigation__item:not(:last-child),.govuk-service-navigation__service-name:not(:last-child){margin-right:30px}}@media (max-width:40.0525em){.govuk-service-navigation__item--active{margin-left:-15px;padding-left:10px;border-left-width:5px}}@media (min-width:40.0625em){.govuk-service-navigation__item--active{padding-bottom:15px;border-bottom-width:5px}}.govuk-service-navigation__link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em}@media print{.govuk-service-navigation__link{font-family:sans-serif}}.govuk-service-navigation__link:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-service-navigation__link:focus{outline:3px solid transparent;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-service-navigation__link:not(:hover):not(:active){text-decoration:none}.govuk-service-navigation__link:link,.govuk-service-navigation__link:visited{color:#1d70b8}.govuk-service-navigation__link:hover{color:#003078}.govuk-service-navigation__link:active,.govuk-service-navigation__link:focus{color:#0b0c0c}.govuk-service-navigation__link:not(:hover):not(:focus){color:#1a65a6}.govuk-service-navigation__service-name{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1rem;line-height:1.25}@media print{.govuk-service-navigation__service-name{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-service-navigation__service-name{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-service-navigation__service-name{font-size:14pt;line-height:1.15}}.govuk-service-navigation__service-name .govuk-service-navigation__link:link,.govuk-service-navigation__service-name .govuk-service-navigation__link:visited{color:#0b0c0c}@media print{.govuk-service-navigation__service-name .govuk-service-navigation__link:link,.govuk-service-navigation__service-name .govuk-service-navigation__link:visited{color:#000}}.govuk-service-navigation__service-name .govuk-service-navigation__link:hover{color:rgba(11,12,12,.99)}.govuk-service-navigation__service-name .govuk-service-navigation__link:active,.govuk-service-navigation__service-name .govuk-service-navigation__link:focus{color:#0b0c0c}@media print{.govuk-service-navigation__service-name .govuk-service-navigation__link:active,.govuk-service-navigation__service-name .govuk-service-navigation__link:focus{color:#000}}.govuk-service-navigation__toggle{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1rem;line-height:1.25;display:inline-flex;margin:10px 0;padding:0;border:0;color:#1a65a6;background:none;word-break:break-all;cursor:pointer;align-items:center}@media print{.govuk-service-navigation__toggle{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-service-navigation__toggle{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-service-navigation__toggle{font-size:14pt;line-height:1.15}}.govuk-service-navigation__toggle:focus{outline:3px solid transparent;color:#0b0c0c;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-service-navigation__toggle:after{display:inline-block;width:0;height:0;-webkit-clip-path:polygon(0 0,50% 100%,100% 0);clip-path:polygon(0 0,50% 100%,100% 0);border-color:transparent;border-style:solid;border-width:8.66px 5px 0;border-top-color:inherit;content:"";margin-left:5px}.govuk-service-navigation__toggle[aria-expanded=true]:after{display:inline-block;width:0;height:0;-webkit-clip-path:polygon(50% 0,0 100%,100% 100%);clip-path:polygon(50% 0,0 100%,100% 100%);border-color:transparent;border-style:solid;border-width:0 5px 8.66px;border-bottom-color:inherit}.govuk-service-navigation__toggle[hidden]{display:none}.govuk-service-navigation__service-name+.govuk-service-navigation__wrapper .govuk-service-navigation__toggle{margin-top:0}.govuk-service-navigation__list{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;margin:0 0 15px;padding:0;list-style:none}@media print{.govuk-service-navigation__list{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-service-navigation__list{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-service-navigation__list{font-size:14pt;line-height:1.15}}@media (min-width:40.0625em){.govuk-service-navigation__list{display:flex;flex-wrap:wrap;margin-bottom:0}}@media (min-width:40.0625em) and (-ms-high-contrast:none),screen and (min-width:40.0625em) and (-ms-high-contrast:active){.govuk-service-navigation__list{display:block}}.govuk-service-navigation__active-fallback{font-weight:inherit}.govuk-skip-link{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em;font-size:.875rem;line-height:1.1428571429;display:block;padding:10px 15px}.govuk-skip-link:not(:active):not(:focus){position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;border:0!important;white-space:nowrap!important;-webkit-user-select:none;-ms-user-select:none;user-select:none}@media print{.govuk-skip-link{font-family:sans-serif}}.govuk-skip-link:link,.govuk-skip-link:visited{color:#0b0c0c}@media print{.govuk-skip-link:link,.govuk-skip-link:visited{color:#000}}.govuk-skip-link:hover{color:rgba(11,12,12,.99)}.govuk-skip-link:active,.govuk-skip-link:focus{color:#0b0c0c}@media print{.govuk-skip-link:active,.govuk-skip-link:focus{color:#000}}@media (min-width:40.0625em){.govuk-skip-link{font-size:1rem;line-height:1.25}}@media print{.govuk-skip-link{font-size:14pt;line-height:1.2}}@supports (padding:max(calc(0px))){.govuk-skip-link{padding-right:max(15px,calc(15px + env(safe-area-inset-right)));padding-left:max(15px,calc(15px + env(safe-area-inset-left)))}}.govuk-skip-link:focus{outline:3px solid #fd0;outline-offset:0;background-color:#fd0}.govuk-skip-link-focused-element:focus{outline:none}.govuk-summary-list{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;margin:0 0 20px}@media print{.govuk-summary-list{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-summary-list{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-summary-list{font-size:14pt;line-height:1.15;color:#000}}@media (min-width:40.0625em){.govuk-summary-list{display:table;width:100%;table-layout:fixed;border-collapse:collapse;margin-bottom:30px}}.govuk-summary-list__row{border-bottom:1px solid #b1b4b6}@media (max-width:40.0525em){.govuk-summary-list__row{margin-bottom:15px}}@media (min-width:40.0625em){.govuk-summary-list__row{display:table-row}}.govuk-summary-list__row:not(.govuk-summary-list__row--no-actions)>:last-child{padding-right:0}@media (min-width:40.0625em){.govuk-summary-list__row--no-actions:after{content:"";display:table-cell;width:20%}}.govuk-summary-list__actions,.govuk-summary-list__key,.govuk-summary-list__value{margin:0}@media (min-width:40.0625em){.govuk-summary-list__actions,.govuk-summary-list__key,.govuk-summary-list__value{display:table-cell;padding-top:10px;padding-right:20px;padding-bottom:10px}}.govuk-summary-list__actions{margin-bottom:15px}@media (min-width:40.0625em){.govuk-summary-list__actions{width:20%;text-align:right}}.govuk-summary-list__key,.govuk-summary-list__value{word-wrap:break-word;overflow-wrap:break-word}.govuk-summary-list__key{margin-bottom:5px;font-weight:700}@media (min-width:40.0625em){.govuk-summary-list__key{width:30%}}@media (max-width:40.0525em){.govuk-summary-list__value{margin-bottom:15px}}.govuk-summary-list__value>p{margin-bottom:10px}.govuk-summary-list__value>:last-child{margin-bottom:0}.govuk-summary-list__actions-list{width:100%;margin:0;padding:0}.govuk-summary-list__actions-list-item{display:inline-block}@media (max-width:40.0525em){.govuk-summary-list__actions-list-item{margin-right:10px;padding-right:10px;border-right:1px solid #b1b4b6}.govuk-summary-list__actions-list-item:last-child{margin-right:0;padding-right:0;border:0}}@media (min-width:40.0625em){.govuk-summary-list__actions-list-item{margin-left:10px;padding-left:10px}.govuk-summary-list__actions-list-item:not(:first-child){border-left:1px solid #b1b4b6}.govuk-summary-list__actions-list-item:first-child{margin-left:0;padding-left:0;border:0}}.govuk-summary-list__actions-list-item .govuk-link:focus{isolation:isolate}.govuk-summary-list--no-border .govuk-summary-list__row{border:0}@media (min-width:40.0625em){.govuk-summary-list--no-border .govuk-summary-list__actions,.govuk-summary-list--no-border .govuk-summary-list__key,.govuk-summary-list--no-border .govuk-summary-list__value{padding-bottom:11px}}.govuk-summary-list__row--no-border{border:0}@media (min-width:40.0625em){.govuk-summary-list__row--no-border .govuk-summary-list__actions,.govuk-summary-list__row--no-border .govuk-summary-list__key,.govuk-summary-list__row--no-border .govuk-summary-list__value{padding-bottom:11px}}.govuk-summary-card{margin-bottom:20px;border:1px solid #b1b4b6}@media (min-width:40.0625em){.govuk-summary-card{margin-bottom:30px}}.govuk-summary-card__title-wrapper{padding:15px;border-bottom:1px solid transparent;background-color:#f3f2f1}@media (min-width:40.0625em){.govuk-summary-card__title-wrapper{display:flex;justify-content:space-between;flex-wrap:nowrap;padding:15px 20px}}.govuk-summary-card__title{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:700;font-size:1rem;line-height:1.25;color:#0b0c0c;margin:5px 20px 10px 0}@media print{.govuk-summary-card__title{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-summary-card__title{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-summary-card__title{font-size:14pt;line-height:1.15;color:#000}}@media (min-width:40.0625em){.govuk-summary-card__title{margin-bottom:5px}}.govuk-summary-card__actions{font-size:1rem;line-height:1.25;font-weight:700;display:flex;flex-wrap:wrap;row-gap:10px;margin:5px 0;padding:0;list-style:none}@media (min-width:40.0625em){.govuk-summary-card__actions{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-summary-card__actions{font-size:14pt;line-height:1.15}}@media (min-width:40.0625em){.govuk-summary-card__actions{justify-content:right;text-align:right}}.govuk-summary-card__action{display:inline;margin:0 10px 0 0;padding-right:10px;border-right:1px solid #b1b4b6}@media (min-width:40.0625em){.govuk-summary-card__action{margin-right:0}}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.govuk-summary-card__action{margin-bottom:5px}}.govuk-summary-card__action:last-child{margin:0;padding-right:0;border-right:none}@media (min-width:40.0625em){.govuk-summary-card__action:last-child{padding-left:10px}}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.govuk-summary-card__action:last-child{margin-bottom:0}}.govuk-summary-card__content{padding:15px 15px 0}@media (min-width:40.0625em){.govuk-summary-card__content{padding:15px 20px}}.govuk-summary-card__content .govuk-summary-list{margin-bottom:0}.govuk-summary-card__content .govuk-summary-list__row:last-of-type{margin-bottom:0;border-bottom:none}.govuk-table{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;color:#0b0c0c;width:100%;margin-bottom:20px;border-spacing:0;border-collapse:collapse}@media print{.govuk-table{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-table{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-table{font-size:14pt;line-height:1.15;color:#000}}@media (min-width:40.0625em){.govuk-table{margin-bottom:30px}}.govuk-table__header{font-weight:700}.govuk-table__cell,.govuk-table__header{padding:10px 20px 10px 0;border-bottom:1px solid #b1b4b6;text-align:left;vertical-align:top}.govuk-table__cell--numeric{font-variant-numeric:tabular-nums}.govuk-table__cell--numeric,.govuk-table__header--numeric{text-align:right}.govuk-table__cell:last-child,.govuk-table__header:last-child{padding-right:0}.govuk-table__caption{font-weight:700;display:table-caption;text-align:left}.govuk-table__caption--l,.govuk-table__caption--m,.govuk-table__caption--xl{margin-bottom:15px}.govuk-table__caption--xl{font-size:2rem;line-height:1.09375}@media (min-width:40.0625em){.govuk-table__caption--xl{font-size:3rem;line-height:1.0416666667}}@media print{.govuk-table__caption--xl{font-size:32pt;line-height:1.15}}.govuk-table__caption--l{font-size:1.5rem;line-height:1.0416666667}@media (min-width:40.0625em){.govuk-table__caption--l{font-size:2.25rem;line-height:1.1111111111}}@media print{.govuk-table__caption--l{font-size:24pt;line-height:1.05}}.govuk-table__caption--m{font-size:1.125rem;line-height:1.1111111111}@media (min-width:40.0625em){.govuk-table__caption--m{font-size:1.5rem;line-height:1.25}}@media print{.govuk-table__caption--m{font-size:18pt;line-height:1.15}}.govuk-tabs{margin-top:5px;margin-bottom:20px;font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25}@media (min-width:40.0625em){.govuk-tabs{margin-bottom:30px}}@media print{.govuk-tabs{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-tabs{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-tabs{font-size:14pt;line-height:1.15}}.govuk-tabs__title{font-size:1rem;line-height:1.25;font-weight:400;color:#0b0c0c;margin-bottom:10px}@media (min-width:40.0625em){.govuk-tabs__title{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-tabs__title{font-size:14pt;line-height:1.15;color:#000}}.govuk-tabs__list{padding:0;list-style:none;margin:0 0 20px}@media (min-width:40.0625em){.govuk-tabs__list{margin-bottom:30px}}.govuk-tabs__list-item{margin-left:25px}.govuk-tabs__list-item:before{color:#0b0c0c;content:"—";margin-left:-25px;padding-right:5px}@media print{.govuk-tabs__list-item:before{color:#000}}.govuk-tabs__tab{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:underline;text-decoration-thickness:max(1px,.0625rem);text-underline-offset:.1578em;display:inline-block;margin-bottom:10px}@media print{.govuk-tabs__tab{font-family:sans-serif}}.govuk-tabs__tab:hover{text-decoration-thickness:max(3px,.1875rem,.12em);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;text-decoration-skip:none}.govuk-tabs__tab:focus{outline:3px solid transparent;background-color:#fd0;box-shadow:0 -2px #fd0,0 4px #0b0c0c;text-decoration:none;-webkit-box-decoration-break:clone;box-decoration-break:clone}.govuk-tabs__tab:link{color:#1d70b8}.govuk-tabs__tab:visited{color:#4c2c92}.govuk-tabs__tab:hover{color:#003078}.govuk-tabs__tab:active,.govuk-tabs__tab:focus{color:#0b0c0c}.govuk-tabs__panel{margin-bottom:30px}@media (min-width:40.0625em){.govuk-tabs__panel{margin-bottom:50px}.govuk-frontend-supported .govuk-tabs__list{margin-bottom:0;border-bottom:1px solid #b1b4b6}.govuk-frontend-supported .govuk-tabs__list:after{content:"";display:block;clear:both}.govuk-frontend-supported .govuk-tabs__title{display:none}.govuk-frontend-supported .govuk-tabs__list-item{position:relative;margin-right:5px;margin-bottom:0;margin-left:0;padding:10px 20px;float:left;background-color:#f3f2f1;text-align:center}.govuk-frontend-supported .govuk-tabs__list-item:before{content:none}.govuk-frontend-supported .govuk-tabs__list-item--selected{position:relative;margin-top:-5px;margin-bottom:-1px;padding:14px 19px 16px;border:1px solid #b1b4b6;border-bottom:0;background-color:#fff}.govuk-frontend-supported .govuk-tabs__list-item--selected .govuk-tabs__tab{text-decoration:none}.govuk-frontend-supported .govuk-tabs__tab{margin-bottom:0}.govuk-frontend-supported .govuk-tabs__tab:link,.govuk-frontend-supported .govuk-tabs__tab:visited{color:#0b0c0c}}@media print and (min-width:40.0625em){.govuk-frontend-supported .govuk-tabs__tab:link,.govuk-frontend-supported .govuk-tabs__tab:visited{color:#000}}@media (min-width:40.0625em){.govuk-frontend-supported .govuk-tabs__tab:hover{color:rgba(11,12,12,.99)}.govuk-frontend-supported .govuk-tabs__tab:active,.govuk-frontend-supported .govuk-tabs__tab:focus{color:#0b0c0c}}@media print and (min-width:40.0625em){.govuk-frontend-supported .govuk-tabs__tab:active,.govuk-frontend-supported .govuk-tabs__tab:focus{color:#000}}@media (min-width:40.0625em){.govuk-frontend-supported .govuk-tabs__tab:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.govuk-frontend-supported .govuk-tabs__panel{margin-bottom:0;padding:30px 20px;border:1px solid #b1b4b6;border-top:0}.govuk-frontend-supported .govuk-tabs__panel>:last-child{margin-bottom:0}.govuk-frontend-supported .govuk-tabs__panel--hidden{display:none}}.govuk-task-list{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;margin-top:0;margin-bottom:20px;padding:0;list-style-type:none}@media print{.govuk-task-list{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-task-list{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-task-list{font-size:14pt;line-height:1.15}}@media (min-width:40.0625em){.govuk-task-list{margin-bottom:30px}}.govuk-task-list__item{display:table;position:relative;width:100%;margin-bottom:0;padding-top:10px;padding-bottom:10px;border-bottom:1px solid #b1b4b6}.govuk-task-list__item:first-child{border-top:1px solid #b1b4b6}.govuk-task-list__item--with-link:hover{background:#f3f2f1}.govuk-task-list__name-and-hint{display:table-cell;vertical-align:top;color:#0b0c0c}@media print{.govuk-task-list__name-and-hint{color:#000}}.govuk-task-list__status{display:table-cell;padding-left:10px;text-align:right;vertical-align:top;color:#0b0c0c}@media print{.govuk-task-list__status{color:#000}}.govuk-task-list__status--cannot-start-yet{color:#505a5f}.govuk-task-list__link:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0}.govuk-task-list__hint{margin-top:5px;color:#505a5f}.govuk-warning-text{font-family:GDS Transport,arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;font-size:1rem;line-height:1.25;margin-bottom:20px;font-weight:700;position:relative;padding:10px 0}@media print{.govuk-warning-text{font-family:sans-serif}}@media (min-width:40.0625em){.govuk-warning-text{font-size:1.1875rem;line-height:1.3157894737}}@media print{.govuk-warning-text{font-size:14pt;line-height:1.15}}@media (min-width:40.0625em){.govuk-warning-text{margin-bottom:30px}}.govuk-warning-text__icon{box-sizing:border-box;display:inline-block;position:absolute;left:0;min-width:35px;min-height:35px;margin-top:-7px;border:3px solid #0b0c0c;border-radius:50%;color:#fff;background:#0b0c0c;font-size:30px;line-height:29px;text-align:center;-webkit-user-select:none;-ms-user-select:none;user-select:none;forced-color-adjust:none}@media (min-width:40.0625em){.govuk-warning-text__icon{margin-top:-5px}}@media screen and (forced-colors:active){.govuk-warning-text__icon{border-color:windowText;color:windowText;background:transparent}}.govuk-warning-text__text{color:#0b0c0c;display:block;padding-left:45px;font-weight:inherit}@media print{.govuk-warning-text__text{color:#000}}.govuk-clearfix:after{content:"";display:block;clear:both}.govuk-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;border:0!important;white-space:nowrap!important;-webkit-user-select:none;-ms-user-select:none;user-select:none}.govuk-visually-hidden:after,.govuk-visually-hidden:before{content:" "}.govuk-visually-hidden-focusable:not(:active):not(:focus){position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;border:0!important;white-space:nowrap!important;-webkit-user-select:none;-ms-user-select:none;user-select:none}.govuk-\!-display-inline{display:inline!important}.govuk-\!-display-inline-block{display:inline-block!important}.govuk-\!-display-block{display:block!important}.govuk-\!-display-none{display:none!important}@media print{.govuk-\!-display-none-print{display:none!important}}.govuk-\!-margin-0{margin:0!important}.govuk-\!-margin-top-0{margin-top:0!important}.govuk-\!-margin-right-0{margin-right:0!important}.govuk-\!-margin-bottom-0{margin-bottom:0!important}.govuk-\!-margin-left-0{margin-left:0!important}.govuk-\!-margin-1{margin:5px!important}.govuk-\!-margin-top-1{margin-top:5px!important}.govuk-\!-margin-right-1{margin-right:5px!important}.govuk-\!-margin-bottom-1{margin-bottom:5px!important}.govuk-\!-margin-left-1{margin-left:5px!important}.govuk-\!-margin-2{margin:10px!important}.govuk-\!-margin-top-2{margin-top:10px!important}.govuk-\!-margin-right-2{margin-right:10px!important}.govuk-\!-margin-bottom-2{margin-bottom:10px!important}.govuk-\!-margin-left-2{margin-left:10px!important}.govuk-\!-margin-3{margin:15px!important}.govuk-\!-margin-top-3{margin-top:15px!important}.govuk-\!-margin-right-3{margin-right:15px!important}.govuk-\!-margin-bottom-3{margin-bottom:15px!important}.govuk-\!-margin-left-3{margin-left:15px!important}.govuk-\!-margin-4{margin:15px!important}@media (min-width:40.0625em){.govuk-\!-margin-4{margin:20px!important}}.govuk-\!-margin-top-4{margin-top:15px!important}@media (min-width:40.0625em){.govuk-\!-margin-top-4{margin-top:20px!important}}.govuk-\!-margin-right-4{margin-right:15px!important}@media (min-width:40.0625em){.govuk-\!-margin-right-4{margin-right:20px!important}}.govuk-\!-margin-bottom-4{margin-bottom:15px!important}@media (min-width:40.0625em){.govuk-\!-margin-bottom-4{margin-bottom:20px!important}}.govuk-\!-margin-left-4{margin-left:15px!important}@media (min-width:40.0625em){.govuk-\!-margin-left-4{margin-left:20px!important}}.govuk-\!-margin-5{margin:15px!important}@media (min-width:40.0625em){.govuk-\!-margin-5{margin:25px!important}}.govuk-\!-margin-top-5{margin-top:15px!important}@media (min-width:40.0625em){.govuk-\!-margin-top-5{margin-top:25px!important}}.govuk-\!-margin-right-5{margin-right:15px!important}@media (min-width:40.0625em){.govuk-\!-margin-right-5{margin-right:25px!important}}.govuk-\!-margin-bottom-5{margin-bottom:15px!important}@media (min-width:40.0625em){.govuk-\!-margin-bottom-5{margin-bottom:25px!important}}.govuk-\!-margin-left-5{margin-left:15px!important}@media (min-width:40.0625em){.govuk-\!-margin-left-5{margin-left:25px!important}}.govuk-\!-margin-6{margin:20px!important}@media (min-width:40.0625em){.govuk-\!-margin-6{margin:30px!important}}.govuk-\!-margin-top-6{margin-top:20px!important}@media (min-width:40.0625em){.govuk-\!-margin-top-6{margin-top:30px!important}}.govuk-\!-margin-right-6{margin-right:20px!important}@media (min-width:40.0625em){.govuk-\!-margin-right-6{margin-right:30px!important}}.govuk-\!-margin-bottom-6{margin-bottom:20px!important}@media (min-width:40.0625em){.govuk-\!-margin-bottom-6{margin-bottom:30px!important}}.govuk-\!-margin-left-6{margin-left:20px!important}@media (min-width:40.0625em){.govuk-\!-margin-left-6{margin-left:30px!important}}.govuk-\!-margin-7{margin:25px!important}@media (min-width:40.0625em){.govuk-\!-margin-7{margin:40px!important}}.govuk-\!-margin-top-7{margin-top:25px!important}@media (min-width:40.0625em){.govuk-\!-margin-top-7{margin-top:40px!important}}.govuk-\!-margin-right-7{margin-right:25px!important}@media (min-width:40.0625em){.govuk-\!-margin-right-7{margin-right:40px!important}}.govuk-\!-margin-bottom-7{margin-bottom:25px!important}@media (min-width:40.0625em){.govuk-\!-margin-bottom-7{margin-bottom:40px!important}}.govuk-\!-margin-left-7{margin-left:25px!important}@media (min-width:40.0625em){.govuk-\!-margin-left-7{margin-left:40px!important}}.govuk-\!-margin-8{margin:30px!important}@media (min-width:40.0625em){.govuk-\!-margin-8{margin:50px!important}}.govuk-\!-margin-top-8{margin-top:30px!important}@media (min-width:40.0625em){.govuk-\!-margin-top-8{margin-top:50px!important}}.govuk-\!-margin-right-8{margin-right:30px!important}@media (min-width:40.0625em){.govuk-\!-margin-right-8{margin-right:50px!important}}.govuk-\!-margin-bottom-8{margin-bottom:30px!important}@media (min-width:40.0625em){.govuk-\!-margin-bottom-8{margin-bottom:50px!important}}.govuk-\!-margin-left-8{margin-left:30px!important}@media (min-width:40.0625em){.govuk-\!-margin-left-8{margin-left:50px!important}}.govuk-\!-margin-9{margin:40px!important}@media (min-width:40.0625em){.govuk-\!-margin-9{margin:60px!important}}.govuk-\!-margin-top-9{margin-top:40px!important}@media (min-width:40.0625em){.govuk-\!-margin-top-9{margin-top:60px!important}}.govuk-\!-margin-right-9{margin-right:40px!important}@media (min-width:40.0625em){.govuk-\!-margin-right-9{margin-right:60px!important}}.govuk-\!-margin-bottom-9{margin-bottom:40px!important}@media (min-width:40.0625em){.govuk-\!-margin-bottom-9{margin-bottom:60px!important}}.govuk-\!-margin-left-9{margin-left:40px!important}@media (min-width:40.0625em){.govuk-\!-margin-left-9{margin-left:60px!important}}.govuk-\!-padding-0{padding:0!important}.govuk-\!-padding-top-0{padding-top:0!important}.govuk-\!-padding-right-0{padding-right:0!important}.govuk-\!-padding-bottom-0{padding-bottom:0!important}.govuk-\!-padding-left-0{padding-left:0!important}.govuk-\!-padding-1{padding:5px!important}.govuk-\!-padding-top-1{padding-top:5px!important}.govuk-\!-padding-right-1{padding-right:5px!important}.govuk-\!-padding-bottom-1{padding-bottom:5px!important}.govuk-\!-padding-left-1{padding-left:5px!important}.govuk-\!-padding-2{padding:10px!important}.govuk-\!-padding-top-2{padding-top:10px!important}.govuk-\!-padding-right-2{padding-right:10px!important}.govuk-\!-padding-bottom-2{padding-bottom:10px!important}.govuk-\!-padding-left-2{padding-left:10px!important}.govuk-\!-padding-3{padding:15px!important}.govuk-\!-padding-top-3{padding-top:15px!important}.govuk-\!-padding-right-3{padding-right:15px!important}.govuk-\!-padding-bottom-3{padding-bottom:15px!important}.govuk-\!-padding-left-3{padding-left:15px!important}.govuk-\!-padding-4{padding:15px!important}@media (min-width:40.0625em){.govuk-\!-padding-4{padding:20px!important}}.govuk-\!-padding-top-4{padding-top:15px!important}@media (min-width:40.0625em){.govuk-\!-padding-top-4{padding-top:20px!important}}.govuk-\!-padding-right-4{padding-right:15px!important}@media (min-width:40.0625em){.govuk-\!-padding-right-4{padding-right:20px!important}}.govuk-\!-padding-bottom-4{padding-bottom:15px!important}@media (min-width:40.0625em){.govuk-\!-padding-bottom-4{padding-bottom:20px!important}}.govuk-\!-padding-left-4{padding-left:15px!important}@media (min-width:40.0625em){.govuk-\!-padding-left-4{padding-left:20px!important}}.govuk-\!-padding-5{padding:15px!important}@media (min-width:40.0625em){.govuk-\!-padding-5{padding:25px!important}}.govuk-\!-padding-top-5{padding-top:15px!important}@media (min-width:40.0625em){.govuk-\!-padding-top-5{padding-top:25px!important}}.govuk-\!-padding-right-5{padding-right:15px!important}@media (min-width:40.0625em){.govuk-\!-padding-right-5{padding-right:25px!important}}.govuk-\!-padding-bottom-5{padding-bottom:15px!important}@media (min-width:40.0625em){.govuk-\!-padding-bottom-5{padding-bottom:25px!important}}.govuk-\!-padding-left-5{padding-left:15px!important}@media (min-width:40.0625em){.govuk-\!-padding-left-5{padding-left:25px!important}}.govuk-\!-padding-6{padding:20px!important}@media (min-width:40.0625em){.govuk-\!-padding-6{padding:30px!important}}.govuk-\!-padding-top-6{padding-top:20px!important}@media (min-width:40.0625em){.govuk-\!-padding-top-6{padding-top:30px!important}}.govuk-\!-padding-right-6{padding-right:20px!important}@media (min-width:40.0625em){.govuk-\!-padding-right-6{padding-right:30px!important}}.govuk-\!-padding-bottom-6{padding-bottom:20px!important}@media (min-width:40.0625em){.govuk-\!-padding-bottom-6{padding-bottom:30px!important}}.govuk-\!-padding-left-6{padding-left:20px!important}@media (min-width:40.0625em){.govuk-\!-padding-left-6{padding-left:30px!important}}.govuk-\!-padding-7{padding:25px!important}@media (min-width:40.0625em){.govuk-\!-padding-7{padding:40px!important}}.govuk-\!-padding-top-7{padding-top:25px!important}@media (min-width:40.0625em){.govuk-\!-padding-top-7{padding-top:40px!important}}.govuk-\!-padding-right-7{padding-right:25px!important}@media (min-width:40.0625em){.govuk-\!-padding-right-7{padding-right:40px!important}}.govuk-\!-padding-bottom-7{padding-bottom:25px!important}@media (min-width:40.0625em){.govuk-\!-padding-bottom-7{padding-bottom:40px!important}}.govuk-\!-padding-left-7{padding-left:25px!important}@media (min-width:40.0625em){.govuk-\!-padding-left-7{padding-left:40px!important}}.govuk-\!-padding-8{padding:30px!important}@media (min-width:40.0625em){.govuk-\!-padding-8{padding:50px!important}}.govuk-\!-padding-top-8{padding-top:30px!important}@media (min-width:40.0625em){.govuk-\!-padding-top-8{padding-top:50px!important}}.govuk-\!-padding-right-8{padding-right:30px!important}@media (min-width:40.0625em){.govuk-\!-padding-right-8{padding-right:50px!important}}.govuk-\!-padding-bottom-8{padding-bottom:30px!important}@media (min-width:40.0625em){.govuk-\!-padding-bottom-8{padding-bottom:50px!important}}.govuk-\!-padding-left-8{padding-left:30px!important}@media (min-width:40.0625em){.govuk-\!-padding-left-8{padding-left:50px!important}}.govuk-\!-padding-9{padding:40px!important}@media (min-width:40.0625em){.govuk-\!-padding-9{padding:60px!important}}.govuk-\!-padding-top-9{padding-top:40px!important}@media (min-width:40.0625em){.govuk-\!-padding-top-9{padding-top:60px!important}}.govuk-\!-padding-right-9{padding-right:40px!important}@media (min-width:40.0625em){.govuk-\!-padding-right-9{padding-right:60px!important}}.govuk-\!-padding-bottom-9{padding-bottom:40px!important}@media (min-width:40.0625em){.govuk-\!-padding-bottom-9{padding-bottom:60px!important}}.govuk-\!-padding-left-9{padding-left:40px!important}@media (min-width:40.0625em){.govuk-\!-padding-left-9{padding-left:60px!important}}.govuk-\!-static-margin-0{margin:0!important}.govuk-\!-static-margin-top-0{margin-top:0!important}.govuk-\!-static-margin-right-0{margin-right:0!important}.govuk-\!-static-margin-bottom-0{margin-bottom:0!important}.govuk-\!-static-margin-left-0{margin-left:0!important}.govuk-\!-static-margin-1{margin:5px!important}.govuk-\!-static-margin-top-1{margin-top:5px!important}.govuk-\!-static-margin-right-1{margin-right:5px!important}.govuk-\!-static-margin-bottom-1{margin-bottom:5px!important}.govuk-\!-static-margin-left-1{margin-left:5px!important}.govuk-\!-static-margin-2{margin:10px!important}.govuk-\!-static-margin-top-2{margin-top:10px!important}.govuk-\!-static-margin-right-2{margin-right:10px!important}.govuk-\!-static-margin-bottom-2{margin-bottom:10px!important}.govuk-\!-static-margin-left-2{margin-left:10px!important}.govuk-\!-static-margin-3{margin:15px!important}.govuk-\!-static-margin-top-3{margin-top:15px!important}.govuk-\!-static-margin-right-3{margin-right:15px!important}.govuk-\!-static-margin-bottom-3{margin-bottom:15px!important}.govuk-\!-static-margin-left-3{margin-left:15px!important}.govuk-\!-static-margin-4{margin:20px!important}.govuk-\!-static-margin-top-4{margin-top:20px!important}.govuk-\!-static-margin-right-4{margin-right:20px!important}.govuk-\!-static-margin-bottom-4{margin-bottom:20px!important}.govuk-\!-static-margin-left-4{margin-left:20px!important}.govuk-\!-static-margin-5{margin:25px!important}.govuk-\!-static-margin-top-5{margin-top:25px!important}.govuk-\!-static-margin-right-5{margin-right:25px!important}.govuk-\!-static-margin-bottom-5{margin-bottom:25px!important}.govuk-\!-static-margin-left-5{margin-left:25px!important}.govuk-\!-static-margin-6{margin:30px!important}.govuk-\!-static-margin-top-6{margin-top:30px!important}.govuk-\!-static-margin-right-6{margin-right:30px!important}.govuk-\!-static-margin-bottom-6{margin-bottom:30px!important}.govuk-\!-static-margin-left-6{margin-left:30px!important}.govuk-\!-static-margin-7{margin:40px!important}.govuk-\!-static-margin-top-7{margin-top:40px!important}.govuk-\!-static-margin-right-7{margin-right:40px!important}.govuk-\!-static-margin-bottom-7{margin-bottom:40px!important}.govuk-\!-static-margin-left-7{margin-left:40px!important}.govuk-\!-static-margin-8{margin:50px!important}.govuk-\!-static-margin-top-8{margin-top:50px!important}.govuk-\!-static-margin-right-8{margin-right:50px!important}.govuk-\!-static-margin-bottom-8{margin-bottom:50px!important}.govuk-\!-static-margin-left-8{margin-left:50px!important}.govuk-\!-static-margin-9{margin:60px!important}.govuk-\!-static-margin-top-9{margin-top:60px!important}.govuk-\!-static-margin-right-9{margin-right:60px!important}.govuk-\!-static-margin-bottom-9{margin-bottom:60px!important}.govuk-\!-static-margin-left-9{margin-left:60px!important}.govuk-\!-static-padding-0{padding:0!important}.govuk-\!-static-padding-top-0{padding-top:0!important}.govuk-\!-static-padding-right-0{padding-right:0!important}.govuk-\!-static-padding-bottom-0{padding-bottom:0!important}.govuk-\!-static-padding-left-0{padding-left:0!important}.govuk-\!-static-padding-1{padding:5px!important}.govuk-\!-static-padding-top-1{padding-top:5px!important}.govuk-\!-static-padding-right-1{padding-right:5px!important}.govuk-\!-static-padding-bottom-1{padding-bottom:5px!important}.govuk-\!-static-padding-left-1{padding-left:5px!important}.govuk-\!-static-padding-2{padding:10px!important}.govuk-\!-static-padding-top-2{padding-top:10px!important}.govuk-\!-static-padding-right-2{padding-right:10px!important}.govuk-\!-static-padding-bottom-2{padding-bottom:10px!important}.govuk-\!-static-padding-left-2{padding-left:10px!important}.govuk-\!-static-padding-3{padding:15px!important}.govuk-\!-static-padding-top-3{padding-top:15px!important}.govuk-\!-static-padding-right-3{padding-right:15px!important}.govuk-\!-static-padding-bottom-3{padding-bottom:15px!important}.govuk-\!-static-padding-left-3{padding-left:15px!important}.govuk-\!-static-padding-4{padding:20px!important}.govuk-\!-static-padding-top-4{padding-top:20px!important}.govuk-\!-static-padding-right-4{padding-right:20px!important}.govuk-\!-static-padding-bottom-4{padding-bottom:20px!important}.govuk-\!-static-padding-left-4{padding-left:20px!important}.govuk-\!-static-padding-5{padding:25px!important}.govuk-\!-static-padding-top-5{padding-top:25px!important}.govuk-\!-static-padding-right-5{padding-right:25px!important}.govuk-\!-static-padding-bottom-5{padding-bottom:25px!important}.govuk-\!-static-padding-left-5{padding-left:25px!important}.govuk-\!-static-padding-6{padding:30px!important}.govuk-\!-static-padding-top-6{padding-top:30px!important}.govuk-\!-static-padding-right-6{padding-right:30px!important}.govuk-\!-static-padding-bottom-6{padding-bottom:30px!important}.govuk-\!-static-padding-left-6{padding-left:30px!important}.govuk-\!-static-padding-7{padding:40px!important}.govuk-\!-static-padding-top-7{padding-top:40px!important}.govuk-\!-static-padding-right-7{padding-right:40px!important}.govuk-\!-static-padding-bottom-7{padding-bottom:40px!important}.govuk-\!-static-padding-left-7{padding-left:40px!important}.govuk-\!-static-padding-8{padding:50px!important}.govuk-\!-static-padding-top-8{padding-top:50px!important}.govuk-\!-static-padding-right-8{padding-right:50px!important}.govuk-\!-static-padding-bottom-8{padding-bottom:50px!important}.govuk-\!-static-padding-left-8{padding-left:50px!important}.govuk-\!-static-padding-9{padding:60px!important}.govuk-\!-static-padding-top-9{padding-top:60px!important}.govuk-\!-static-padding-right-9{padding-right:60px!important}.govuk-\!-static-padding-bottom-9{padding-bottom:60px!important}.govuk-\!-static-padding-left-9{padding-left:60px!important}.govuk-\!-text-align-left{text-align:left!important}.govuk-\!-text-align-centre{text-align:center!important}.govuk-\!-text-align-right{text-align:right!important}.govuk-\!-font-size-80{font-size:3.3125rem!important;line-height:1.0377358491!important}@media (min-width:40.0625em){.govuk-\!-font-size-80{font-size:5rem!important;line-height:1!important}}@media print{.govuk-\!-font-size-80{font-size:53pt!important;line-height:1.1!important}}.govuk-\!-font-size-48{font-size:2rem!important;line-height:1.09375!important}@media (min-width:40.0625em){.govuk-\!-font-size-48{font-size:3rem!important;line-height:1.0416666667!important}}@media print{.govuk-\!-font-size-48{font-size:32pt!important;line-height:1.15!important}}.govuk-\!-font-size-36{font-size:1.5rem!important;line-height:1.0416666667!important}@media (min-width:40.0625em){.govuk-\!-font-size-36{font-size:2.25rem!important;line-height:1.1111111111!important}}@media print{.govuk-\!-font-size-36{font-size:24pt!important;line-height:1.05!important}}.govuk-\!-font-size-27{font-size:1.125rem!important;line-height:1.1111111111!important}@media (min-width:40.0625em){.govuk-\!-font-size-27{font-size:1.6875rem!important;line-height:1.1111111111!important}}@media print{.govuk-\!-font-size-27{font-size:18pt!important;line-height:1.15!important}}.govuk-\!-font-size-24{font-size:1.125rem!important;line-height:1.1111111111!important}@media (min-width:40.0625em){.govuk-\!-font-size-24{font-size:1.5rem!important;line-height:1.25!important}}@media print{.govuk-\!-font-size-24{font-size:18pt!important;line-height:1.15!important}}.govuk-\!-font-size-19{font-size:1rem!important;line-height:1.25!important}@media (min-width:40.0625em){.govuk-\!-font-size-19{font-size:1.1875rem!important;line-height:1.3157894737!important}}@media print{.govuk-\!-font-size-19{font-size:14pt!important;line-height:1.15!important}}.govuk-\!-font-size-16{font-size:.875rem!important;line-height:1.1428571429!important}@media (min-width:40.0625em){.govuk-\!-font-size-16{font-size:1rem!important;line-height:1.25!important}}@media print{.govuk-\!-font-size-16{font-size:14pt!important;line-height:1.2!important}}.govuk-\!-font-size-14{font-size:.75rem!important;line-height:1.25!important}@media (min-width:40.0625em){.govuk-\!-font-size-14{font-size:.875rem!important;line-height:1.4285714286!important}}@media print{.govuk-\!-font-size-14{font-size:12pt!important;line-height:1.2!important}}.govuk-\!-font-weight-regular{font-weight:400!important}.govuk-\!-font-weight-bold{font-weight:700!important}.govuk-\!-font-tabular-numbers{font-variant-numeric:tabular-nums!important}.govuk-\!-text-break-word{word-wrap:break-word!important;overflow-wrap:break-word!important}.govuk-\!-width-full,.govuk-\!-width-three-quarters{width:100%!important}@media (min-width:40.0625em){.govuk-\!-width-three-quarters{width:75%!important}}.govuk-\!-width-two-thirds{width:100%!important}@media (min-width:40.0625em){.govuk-\!-width-two-thirds{width:66.66%!important}}.govuk-\!-width-one-half{width:100%!important}@media (min-width:40.0625em){.govuk-\!-width-one-half{width:50%!important}}.govuk-\!-width-one-third{width:100%!important}@media (min-width:40.0625em){.govuk-\!-width-one-third{width:33.33%!important}}.govuk-\!-width-one-quarter{width:100%!important}@media (min-width:40.0625em){.govuk-\!-width-one-quarter{width:25%!important}} -/*# sourceMappingURL=govuk-frontend.min.css.map */ diff --git a/public/assets/govuk-frontend.min.css.map b/public/assets/govuk-frontend.min.css.map deleted file mode 100644 index 746bd8d7b..000000000 --- a/public/assets/govuk-frontend.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/govuk/components/character-count/_index.scss","../../src/govuk/all.scss","../../src/govuk/core/_govuk-frontend-properties.scss","../../src/govuk/core/_links.scss","../../src/govuk/helpers/_typography.scss","../../src/govuk/settings/_typography-font.scss","../../src/govuk/helpers/_links.scss","../../src/govuk/settings/_links.scss","../../src/govuk/helpers/_font-faces.scss","../../src/govuk/vendor/_sass-mq.scss","../../src/govuk/helpers/_focused.scss","../../src/govuk/settings/_colours-applied.scss","../../src/govuk/core/_lists.scss","../../src/govuk/helpers/_spacing.scss","../../src/govuk/core/_typography.scss","../../src/govuk/core/_section-break.scss","../../src/govuk/objects/_button-group.scss","../../src/govuk/objects/_form-group.scss","../../src/govuk/helpers/_clearfix.scss","../../src/govuk/objects/_grid.scss","../../src/govuk/helpers/_grid.scss","../../src/govuk/objects/_main-wrapper.scss","../../src/govuk/objects/_template.scss","../../src/govuk/objects/_width-container.scss","../../src/govuk/settings/_measurements.scss","../../src/govuk/components/accordion/_index.scss","../../src/govuk/components/back-link/_index.scss","../../src/govuk/components/breadcrumbs/_index.scss","../../src/govuk/components/button/_index.scss","../../src/govuk/components/error-message/_index.scss","../../src/govuk/components/hint/_index.scss","../../src/govuk/components/label/_index.scss","../../src/govuk/components/textarea/_index.scss","../../src/govuk/components/fieldset/_index.scss","../../src/govuk/components/checkboxes/_index.scss","../../src/govuk/components/cookie-banner/_index.scss","../../src/govuk/components/input/_index.scss","../../src/govuk/components/date-input/_index.scss","../../src/govuk/components/details/_index.scss","../../src/govuk/helpers/_shape-arrow.scss","../../src/govuk/components/error-summary/_index.scss","../../src/govuk/components/exit-this-page/_index.scss","../../src/govuk/components/file-upload/_index.scss","../../src/govuk/components/footer/_index.scss","../../src/govuk/components/header/_index.scss","../../src/govuk/components/inset-text/_index.scss","../../src/govuk/components/notification-banner/_index.scss","../../src/govuk/components/pagination/_index.scss","../../src/govuk/components/panel/_index.scss","../../src/govuk/components/password-input/_index.scss","../../src/govuk/components/tag/_index.scss","../../src/govuk/components/phase-banner/_index.scss","../../src/govuk/components/radios/_index.scss","../../src/govuk/components/select/_index.scss","../../src/govuk/components/service-navigation/_index.scss","../../src/govuk/components/skip-link/_index.scss","../../src/govuk/helpers/_visually-hidden.scss","../../src/govuk/components/summary-list/_index.scss","../../src/govuk/components/table/_index.scss","../../src/govuk/components/tabs/_index.scss","../../src/govuk/components/task-list/_index.scss","../../src/govuk/components/warning-text/_index.scss","../../src/govuk/utilities/_visually-hidden.scss","../../src/govuk/overrides/_display.scss","../../src/govuk/overrides/_spacing.scss","../../src/govuk/overrides/_text-align.scss","../../src/govuk/overrides/_typography.scss","../../src/govuk/overrides/_width.scss"],"names":[],"mappings":"AAoBI,gBCwgEJ,CC5hEA,MAGE,gCAAA,CAIE,wCAAA,CAAA,6CAAA,CAAA,8CDDJ,CELE,YCcA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CEaA,yBAAA,CAGE,2CChB6B,CDoB7B,6BLtBJ;AOCM,mLAAA,CACA,WACE,yBAAA,CACA,iBAAA,CACA,eAAA,CACA,2HACE,CAEF,qBPDR,COIM,WACE,yBAAA,CACA,iBAAA,CACA,eAAA,CACA,yHACE,CAEF,qBPJR,CQsMQ,aNnON,YCyBE,sBHQF,CACF,CKrBE,kBAqCE,iDCLmC,CDQnC,qCAAA,CAAA,6BAAA,CACA,iCAAA,CAAA,yBLfJ,CKtBE,kBIFA,6BAAA,CAEA,qBCiDmB,CDhDnB,oCACE,CAIF,oBAAA,CAIA,kCAAA,CAAA,0BToBF,CK2BE,iBACE,aLzBJ,CK4BE,oBACE,aL1BJ,CK6BE,kBACE,aL3BJ,CKoCE,qCACE,aL/BJ,CQqKQ,aH6HF,oGACE,2BAAA,CACA,aAAA,CAKA,oBLnSN,CACF,CKuHE,mDAEE,aLrHJ,CKqJE,2IF1LA,aH+CF,CQgJQ,aHLN,+DFvLE,UHgDF,CACF,CK6IE,+BAEI,wBL5IN,CKgJE,+DFvMA,aH0DF,CQqIQ,aHQN,+DFpME,UH2DF,CACF,CK+JE,uDAEE,UL7JJ,CKkKE,uDAEE,yBLjKJ,CKoKE,2BACE,aLlKJ,CKiOE,mDACE,oBL9NJ,CK2LE,yEACE,aLrLJ,CKwLE,oCACE,aLtLJ,CK+LE,yEACE,aL1LJ,CE9FE,kBGmVA,oBAAA,CAGA,aAAA,CAGA,oBLrPF,CKuPE,wBItVA,6BAAA,CACA,2CTkGF,CW3IE,YRcA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CAvM3B,aOfkB,CClBhB,YAAA,CCsGI,kBAAA,CDpGJ,cAAA,CACA,oBXmJJ,CQ0EQ,aGnON,YRyBE,sBHoIF,CACF,CQqEQ,6BGnON,YRuPM,mBAbY,CAcZ,wBHrFN,CACF,CQ+DQ,aGnON,YRkPM,cATQ,CAUR,gBARqB,CApMzB,UHkIF,CACF,CQyDQ,6BGnON,YCgHQ,kBZmER,CACF,CW3KI,wBACE,eX6KN,CWzKE,eAIE,iBXyKJ,CWlKE,oBACE,iBAAA,CACA,oBXqKJ,CWlKE,oBACE,iBAAA,CACA,uBXqKJ,CWlKE,8CAEE,eXqKJ,CQyBQ,6BGhMN,8CAKI,iBXuKJ,CACF,CWpKE,uBACE,kBXuKJ,CQeQ,6BGvLN,uBAII,kBXwKJ,CACF,CavNE,kBVkCA,aOfkB,CPPlB,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CA4CA,eAAA,CAkLI,cAJc,CAKd,mBAJuB,CUrOzB,aAAA,CAEA,YAAA,CDiGI,kBZ6HR,CQHQ,aKjON,kBVqCE,UOQsB,CPtBtB,sBHiNF,CACF,CQRQ,6BKjON,kBVqPM,cAbY,CAcZ,wBHHN,CACF,CQnBQ,aKjON,kBVgPM,cATQ,CAUR,gBHQN,CACF,CQzBQ,6BKjON,kBD8GQ,kBZgJR,CACF,CajPE,iBVoBA,aOfkB,CPPlB,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CA4CA,eAAA,CAkLI,gBAJc,CAKd,wBAJuB,CUvNzB,aAAA,CAEA,YAAA,CDmFI,kBZqKR,CQ3CQ,aKnNN,iBVuBE,UOQsB,CPtBtB,sBHyPF,CACF,CQhDQ,6BKnNN,iBVuOM,iBAbY,CAcZ,wBHqCN,CACF,CQ3DQ,aKnNN,iBVkOM,cATQ,CAUR,gBHgDN,CACF,CQjEQ,6BKnNN,iBDgGQ,kBZwLR,CACF,Ca3QE,iBVMA,aOfkB,CPPlB,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CA4CA,eAAA,CAkLI,kBAJc,CAKd,wBAJuB,CUzMzB,aAAA,CAEA,YAAA,CDqEI,kBZ6MR,CQnFQ,aKrMN,iBVSE,UOQsB,CPtBtB,sBHiSF,CACF,CQxFQ,6BKrMN,iBVyNM,gBAbY,CAcZ,gBH6EN,CACF,CQnGQ,aKrMN,iBVoNM,cATQ,CAUR,gBHwFN,CACF,CQzGQ,6BKrMN,iBDkFQ,kBZgOR,CACF,CarSE,iBVRA,aOfkB,CPPlB,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CA4CA,eAAA,CAkLI,cAJc,CAKd,gBAJuB,CU3LzB,aAAA,CAEA,YAAA,CDuDI,kBZqPR,CQ3HQ,aKvLN,iBVLE,UOQsB,CPtBtB,sBHyUF,CACF,CQhIQ,6BKvLN,iBV2MM,mBAbY,CAcZ,wBHqHN,CACF,CQ3IQ,aKvLN,iBVsMM,cATQ,CAUR,gBHgIN,CACF,CQjJQ,6BKvLN,iBDoEQ,kBZwQR,CACF,Ca7TE,kBV9CA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,kBAJc,CAKd,wBAJuB,CU5KzB,aAAA,CAEA,iBAAA,CAEA,abkUJ,CQlKQ,aKvKN,kBVnCE,sBHgXF,CACF,CQvKQ,6BKvKN,kBV2LM,mBAbY,CAcZ,wBHuJN,CACF,CQ7KQ,aKvKN,kBVsLM,cATQ,CAUR,gBHkKN,CACF,CahVE,iBVxDA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,kBAJc,CAKd,wBAJuB,CUlKzB,aAAA,CAEA,iBAAA,CACA,absVJ,CQ/LQ,aK7JN,iBV7CE,sBH6YF,CACF,CQpMQ,6BK7JN,iBViLM,gBAbY,CAcZ,gBHoLN,CACF,CQ1MQ,aK7JN,iBV4KM,cATQ,CAUR,gBH+LN,CACF,CQhNQ,6BK7JN,iBASI,ebwWJ,CACF,CarWE,iBVrEA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CUrJzB,aAAA,CAEA,ab2WJ,CQhOQ,aKhJN,iBV1DE,sBH8aF,CACF,CQrOQ,6BKhJN,iBVoKM,mBAbY,CAcZ,wBHqNN,CACF,CQ3OQ,aKhJN,iBV+JM,cATQ,CAUR,gBHgON,CACF,CavXE,+BVzDA,aOfkB,CPPlB,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,kBAJc,CAKd,wBAJuB,CU1IzB,YAAA,CDQI,kBZuXR,CQ7PQ,aKtIN,+BVtDE,UOQsB,CPtBtB,sBH2cF,CACF,CQlQQ,6BKtIN,+BV0JM,gBAbY,CAcZ,gBHuPN,CACF,CQ7QQ,aKtIN,+BVqJM,cATQ,CAUR,gBHkQN,CACF,CQnRQ,6BKtIN,+BDmBQ,kBZ0YR,CACF,CalZE,0BVrEA,aOfkB,CPPlB,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CU9HzB,YAAA,CDJI,kBZ8ZR,CQpSQ,aK1HN,0BVlEE,UOQsB,CPtBtB,sBHkfF,CACF,CQzSQ,6BK1HN,0BV8IM,mBAbY,CAcZ,wBH8RN,CACF,CQpTQ,aK1HN,0BVyIM,cATQ,CAUR,gBHySN,CACF,CQ1TQ,6BK1HN,0BDOQ,kBZibR,CACF,Ca7aE,cVjFA,aOfkB,CPPlB,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,iBAJc,CAKd,wBAJuB,CUlHzB,YAAA,CDhBI,kBZqcR,CQ3UQ,aK9GN,cV9EE,UOQsB,CPtBtB,sBHyhBF,CACF,CQhVQ,6BK9GN,cVkIM,cAbY,CAcZ,gBHqUN,CACF,CQ3VQ,aK9GN,cV6HM,cATQ,CAUR,eHgVN,CACF,CQjWQ,6BK9GN,cDLQ,kBZwdR,CACF,CavcE,eV9FA,aOfkB,CPPlB,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,gBAJc,CAKd,gBAJuB,CUrGzB,YAAA,CD7BI,kBZ4eR,CQlXQ,aKjGN,eV3FE,UOQsB,CPtBtB,sBHgkBF,CACF,CQvXQ,6BKjGN,eVqHM,iBAbY,CAcZ,wBH4WN,CACF,CQlYQ,aKjGN,eVgHM,cATQ,CAUR,eHuXN,CACF,CQxYQ,6BKjGN,eDlBQ,kBZ+fR,CACF,CajdE,iEACE,ebodJ,CQjZQ,6BKpEN,iEAII,gBbqdJ,CACF,CaldE,wHD9DM,gBZshBR,CQ5ZQ,6BK5DN,wHDvDQ,gBZqhBR,CACF,CazdE,gPAME,eb6dJ,CQ7aQ,6BKtDN,gPASI,gBboeJ,CACF,Cc3pBE,qBACE,QAAA,CACA,Qd8pBJ,CcrpBE,yBF8FM,eAAA,CAAA,kBZ4jBR,CQlcQ,6BMxNN,yBFqGQ,eAAA,CAAA,kBZyjBR,CACF,CctpBE,wBFqFM,eAAA,CAAA,kBZ2kBR,CQjdQ,6BM/MN,wBF4FQ,eAAA,CAAA,kBZwkBR,CACF,Cc5pBE,wBF4EM,eAAA,CAAA,kBZ0lBR,CQheQ,6BMtMN,wBFmFQ,eAAA,CAAA,kBZulBR,CACF,CchqBE,8BACE,+BdwqBJ,CevsBE,oBH+FM,iBAAA,CG3EJ,YAAA,CACA,qBAAA,CACA,kBfwrBJ,CQrfQ,6BOzNN,oBHsGQ,kBZ4mBR,CACF,CetrBI,gCZzBF,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,kBAJuB,CYlMvB,oBAAA,CAGA,cAAA,CACA,cA3Ba,CA4Bb,kBAAA,CACA,iBf2rBN,CQvgBQ,aO5LJ,gCZdA,sBHqtBF,CACF,CQ5gBQ,6BO5LJ,gCZgNI,mBAbY,CAcZ,aH4fN,CACF,CQlhBQ,aO5LJ,gCZ2MI,cATQ,CAUR,gBHugBN,CACF,CevsBI,kCACE,kBfysBN,CQ3hBQ,6BOzNN,oBAkDI,kBAAA,CAEA,kBAAA,CACA,cAAA,CACA,oBfqsBJ,CensBI,kEAEE,iBfqsBN,CelsBI,gCACE,efosBN,CACF,CgB3wBE,kBJuGM,kBZwqBR,CiBzwBE,wBACE,UAAA,CACA,aAAA,CACA,UjB2wBJ,CQnjBQ,6BQjON,kBJ8GQ,kBZ0qBR,CACF,CgBrxBI,iDACE,ehBuxBN,CgBnxBE,yBACE,iBAAA,CACA,6BhBsxBJ,CgBpxBI,2CAEE,SAAA,CACA,QhBqxBN,CkBryBE,gBAEE,kBAAA,CACA,iBlBuyBJ,CiBpyBE,sBACE,UAAA,CACA,aAAA,CACA,UjBsyBJ,CkBxyBI,+BCyCF,qBAAA,CAEE,UAAA,CAEF,cnBiwBF,CQplBQ,6BU1NJ,+BC+CA,SAAA,CACA,UnBmwBF,CACF,CkBpzBI,6BCyCF,qBAAA,CAEE,UAAA,CAEF,cnB6wBF,CQhmBQ,6BU1NJ,6BC+CA,oBAAA,CACA,UnB+wBF,CACF,CkBh0BI,4BCyCF,qBAAA,CAEE,UAAA,CAEF,cnByxBF,CQ5mBQ,6BU1NJ,4BC+CA,SAAA,CACA,UnB2xBF,CACF,CkB50BI,8BCyCF,qBAAA,CAEE,UAAA,CAEF,cnBqyBF,CQxnBQ,6BU1NJ,8BC+CA,oBAAA,CACA,UnBuyBF,CACF,CkBx1BI,kCCyCF,qBAAA,CAEE,UAAA,CAEF,cnBizBF,CQpoBQ,6BU1NJ,kCC+CA,SAAA,CACA,UnBmzBF,CACF,CkBp2BI,wBCyCF,qBAAA,CAEE,UAAA,CAEF,cnB6zBF,CQhpBQ,6BU1NJ,wBC+CA,UAAA,CACA,UnB+zBF,CACF,CkBv2BI,4CCgCF,qBAAA,CAIA,cnBw0BF,CQ3pBQ,6BUjNJ,4CCsCA,SAAA,CACA,UnB00BF,CACF,CkBl3BI,0CCgCF,qBAAA,CAIA,cnBm1BF,CQtqBQ,6BUjNJ,0CCsCA,oBAAA,CACA,UnBq1BF,CACF,CkB73BI,yCCgCF,qBAAA,CAIA,cnB81BF,CQjrBQ,6BUjNJ,yCCsCA,SAAA,CACA,UnBg2BF,CACF,CkBx4BI,2CCgCF,qBAAA,CAIA,cnBy2BF,CQ5rBQ,6BUjNJ,2CCsCA,oBAAA,CACA,UnB22BF,CACF,CkBn5BI,+CCgCF,qBAAA,CAIA,cnBo3BF,CQvsBQ,6BUjNJ,+CCsCA,SAAA,CACA,UnBs3BF,CACF,CkB95BI,qCCgCF,qBAAA,CAIA,cnB+3BF,CQltBQ,6BUjNJ,qCCsCA,UAAA,CACA,UnBi4BF,CACF,CoBp6BE,oBAIE,aAAA,CACA,gBAAA,CACA,mBpBo6BJ,CQ9tBQ,6BY5MN,oBAYI,gBAAA,CACA,mBpBk6BJ,CACF,CoBx5BE,qER0DM,gBZm2BR,CQzuBQ,6BYpLN,qERiEQ,gBZi2BR,CACF,CqB/8BE,gBAGE,wBXyB6B,CWrB7B,6BAAA,CAAA,0BAAA,CAAA,qBrB68BJ,CqB/7BI,2DArBF,gBAsBI,uBrBk8BJ,CqBh8BI,iDACE,oBrBk8BN,CACF,CQ5vBQ,cahON,gBAgCI,iBrBg8BJ,CACF,CqB57BE,sBAGE,QAAA,CAEA,qBrB47BJ,CsBn6BE,uBAlDA,eCRiB,CDWjB,iBC2BkB,CD1BlB,gBtBu9BF,CsBp9BE,kCA2CA,uBArCE,8DAAA,CACA,4DtBk9BF,CACF,CQlxBQ,6Bc7JN,uBA/BE,iBCIW,CDHX,gBtBk9BF,CsB/8BE,kCA2BF,uBArBI,8DAAA,CACA,4DtB68BF,CACF,CACF,CQ9xBQ,0Bc7JN,uBAbE,iBAAA,CACA,gBtB48BF,CsBx8BE,kCAQF,uBAPI,iBAAA,CACA,gBtB28BF,CACF,CACF,CwBxgCE,iBZoGM,kBZw6BR,CQ9yBQ,6BgB9NN,iBZ2GQ,kBZq6BR,CACF,CwB7gCE,0BACE,gBxBghCJ,CwB7gCE,kCAEE,YAAA,CACA,eAAA,CAEA,gBAAA,CACA,mBxB8gCJ,CwB3gCE,iCrBRA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CA4CA,eAAA,CAkLI,kBAJc,CAKd,wBAJuB,CAvM3B,aOfkB,CcKhB,aAAA,CACA,eAAA,CACA,gBxBkhCJ,CQ30BQ,agB7MN,iCrBGE,sBHyhCF,CACF,CQh1BQ,6BgB7MN,iCrBiOM,gBAbY,CAcZ,gBHg0BN,CACF,CQt1BQ,agB7MN,iCrB4NM,cATQ,CAUR,gBARqB,CApMzB,UHuhCF,CACF,CwB/hCE,8CACE,exBuiCJ,CwBliCI,2CAEE,+BxBoiCN,CwBjiCI,oDACE,axBmiCN,CwB9hCI,4DACE,YAAA,CZuDE,gBAAA,CAAA,mBZ2+BR,CQj3BQ,6BgBlLJ,4DZ+DM,mBZw+BR,CACF,CwB/hCI,oEAOE,aAAA,CACA,gBxB2hCN,CwBliCM,sCADF,oEAEI,yBAAA,CACA,exBqiCN,CACF,CwB7hCI,gGACE,axB+hCN,CwB5hCI,qDrB5DF,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CqB/JvB,iBAAA,CACA,SAAA,CAEA,iBAAA,CACA,qBAAA,CAEA,cAAA,CAEA,adgDc,Cc/Cd,eAAA,CAEA,cAAA,CACA,uBxB+hCN,CQp5BQ,agBzJJ,qDrBjDA,sBHkmCF,CACF,CQz5BQ,6BgBzJJ,qDrB6KI,mBAbY,CAcZ,wBHy4BN,CACF,CQ/5BQ,agBzJJ,qDrBwKI,cATQ,CAUR,gBHo5BN,CACF,CQr6BQ,6BgBzJJ,qDAiBI,kBxBijCN,CACF,CwB9iCM,uEACE,SAAA,CACA,QxBgjCR,CwB7iCM,2DACE,aArGwB,CAsGxB,kBArGyB,CAyGzB,uCxB4iCR,CwBxiCQ,iGACE,axB0iCV,CwBviCQ,yFACE,aAnHsB,CAoHtB,kBxByiCV,CwBtiCQ,+FACE,axBwiCV,CwBpiCM,2Df7GJ,6BAAA,CACA,aC4DwB,CD3DxB,qBCiDmB,CDhDnB,oCACE,CAIF,oBAAA,CAIA,kCAAA,CAAA,0BT6oCF,CwBziCQ,yFACE,kBxB2iCV,CwBxiCQ,+FACE,UxB0iCV,CwBriCI,4DACE,SxBuiCN,CwBniCI,wDACE,qBAAA,CACA,oBAAA,CAEA,iBAAA,CAGA,aAAA,CACA,cAAA,CAEA,qBAAA,CACA,iBAAA,CAEA,qBxBgiCN,CwB7hCM,8DACE,UAAA,CACA,qBAAA,CACA,aAAA,CAEA,iBAAA,CACA,eAAA,CACA,YAAA,CAEA,aAAA,CACA,cAAA,CAEA,wBAAA,CAEA,wBAAA,CACA,0BxB2hCR,CwBthCI,8DACE,wBxBwhCN,CwBrhCI,2DACE,UAAA,CAEA,gBAAA,CAEA,QAAA,CAEA,4BAAA,CAKA,oCAAA,CAEA,ad/Kc,CcgLd,eAAA,CAEA,eAAA,CAEA,cAAA,CACA,uBxB6gCN,CQp/BQ,6BgB7CJ,2DAuBI,mBxB8gCN,CACF,CwB5gCM,kEACE,adxDmB,CcyDnB,exB8gCR,CwB3gCM,iEACE,aAtNwB,CAuNxB,kBxB6gCR,CwB3gCQ,uGACE,axB6gCV,CwB1gCQ,+FACE,aA9NsB,CA+NtB,kBxB4gCV,CwBzgCQ,qGACE,axB2gCV,CwBvgCM,iEAGE,SxBugCR,CwBrgCQ,+Tf7NN,6BAAA,CACA,aC4DwB,CD3DxB,qBCiDmB,CDhDnB,oCACE,CAIF,oBAAA,CAIA,kCAAA,CAAA,0BTguCF,CwBzgCQ,+FACE,aAnPsB,CAoPtB,kBxB2gCV,CwBxgCQ,qGACE,UxB0gCV,CwBrgCM,6EACE,SAAA,CACA,QxBugCR,CwB//BI,+FACE,mBAAA,CACA,exBigCN,CQviCQ,6BgBoCJ,+FAKI,mBxBkgCN,CACF,CwB7/BI,wGACE,kBxB+/BN,CQ/iCQ,6BgB+CJ,wGAII,kBxBggCN,CACF,CwB7/BI,wLAGE,aAAA,CACA,kBxB+/BN,CwB7/BM,45BAGE,cxBqgCR,CwBhgCI,2DrB1DE,cAJc,CAKd,gBAJuB,CAzL3B,eAAA,CqByPI,axBmgCN,CQ3kCQ,6BgBqEJ,2DrBjDI,mBAbY,CAcZ,wBH2jCN,CACF,CQjlCQ,agBqEJ,2DrBtDI,cATQ,CAUR,gBHskCN,CACF,CwBzgCI,0HAEE,eAAA,CACA,qBxB2gCN,CwBn/BI,yCAGI,wLACE,4BxBo/BR,CwB9+BM,oyBAIE,sBAAA,CACA,4BxBo/BR,CACF,CwB9+BI,oBACE,iEACE,wBd7Pc,Cc+Pd,kCxB++BN,CwB7+BM,kGACE,wBxB++BR,CACF,CyB50CE,iBtBiOI,iBAJc,CAKd,wBAJuB,CA7N3B,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CEaA,yBAAA,CAGE,2CChB6B,CDoB7B,6BCP0B,CmBX1B,oBAAA,CACA,iBAAA,CAEA,eAAA,CACA,kBAAA,CAGA,mBzBg1CJ,CQtoCQ,6BiBtNN,iBtB0OM,cAbY,CAcZ,gBHsnCN,CACF,CQ5oCQ,aiBtNN,iBtBqOM,cATQ,CAUR,eARqB,CAlNzB,sBH21CF,CACF,CKx2CE,uBAqCE,iDCLmC,CDQnC,qCAAA,CAAA,6BAAA,CACA,iCAAA,CAAA,yBLy0CJ,CK92CE,uBIFA,6BAAA,CACA,aC4DwB,CD3DxB,qBCiDmB,CDhDnB,oCACE,CAIF,oBAAA,CAIA,kCAAA,CAAA,0BT42CF,CKzqCE,+CF1LA,aHs2CF,CQvqCQ,aHLN,+CFvLE,UHu2CF,CACF,CK1qCE,uBAEI,wBL2qCN,CKvqCE,+CFvMA,aHi3CF,CQlrCQ,aHQN,+CFpME,UHk3CF,CACF,CyB73CE,wBACE,UAAA,CACA,aAAA,CAGA,iBAAA,CACA,KAAA,CACA,QAAA,CACA,YAAA,CAEA,aAnCa,CAoCb,cApCa,CAsCb,aAAA,CAEA,wBAAA,CAEA,YAAA,CACA,wBAAA,CACA,oBzB03CJ,CyBx3CI,kCArBF,wBAyBI,kDAAA,CACA,uBzBw3CJ,CACF,CyBr3CE,8BACE,oBzBw3CJ,CyBr3CE,uBACE,UAAA,CACA,iBAAA,CACA,SAAA,CACA,OAAA,CACA,YAAA,CACA,MzBw3CJ,CK3rCE,iEAEE,UL6rCJ,CKxrCE,iEAEE,yBLyrCJ,CKtrCE,gCACE,aLwrCJ,CyB53CI,iCACE,yBzB83CN,C0Bv7CE,mBvBLA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,iBAJc,CAKd,wBAJuB,CAvM3B,aOfkB,CgBEhB,eAAA,CACA,kB1B87CJ,CQnvCQ,akBhNN,mBvBME,sBHi8CF,CACF,CQxvCQ,6BkBhNN,mBvBoOM,cAbY,CAcZ,gBHwuCN,CACF,CQ9vCQ,akBhNN,mBvB+NM,cATQ,CAUR,eARqB,CApMzB,UH+7CF,CACF,C0B58CE,yBAGE,QAAA,CACA,SAAA,CACA,oB1Bk9CJ,CiB1+CE,+BACE,UAAA,CACA,aAAA,CACA,UjB4+CJ,C0Bp9CE,8BACE,oBAAA,CACA,iBAAA,CAEA,iBAAA,CAIA,kBAAA,CACA,uBAAA,CAEA,U1Bk9CJ,C0B/8CI,qCACE,UAAA,CACA,aAAA,CAEA,iBAAA,CACA,KAAA,CACA,QAAA,CAIA,eAAA,CAEA,aAzDW,CA0DX,cA1DW,CA4DX,aAAA,CAEA,uBAAA,CAEA,YAAA,CACA,wBAAA,CACA,oB1By8CN,C0Bv8CM,kCAvBF,qCA2BI,kDAAA,CACA,uB1Bu8CN,CACF,C0Bp8CI,0CACE,aAAA,CACA,c1Bs8CN,C0Bp8CM,iDACE,YAAA,CACA,Y1Bs8CR,C0Bj8CE,yBvB9EA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CEaA,yBAAA,CAGE,2CChB6B,CDoB7B,6BLkgDJ,CQn0CQ,akBvIN,yBvBnEE,sBHihDF,CACF,CK9hDE,+BAqCE,iDCLmC,CDQnC,qCAAA,CAAA,6BAAA,CACA,iCAAA,CAAA,yBL0/CJ,CK/hDE,+BIFA,6BAAA,CACA,aC4DwB,CD3DxB,qBCiDmB,CDhDnB,oCACE,CAIF,oBAAA,CAIA,kCAAA,CAAA,0BT6hDF,CK11CE,+DF1LA,aHuhDF,CQx1CQ,aHLN,+DFvLE,UHwhDF,CACF,CK31CE,+BAEI,wBL41CN,CKx1CE,+DFvMA,aHkiDF,CQn2CQ,aHQN,+DFpME,UHmiDF,CACF,CQx2CQ,6BkBhIF,qEACE,Y1B4+CN,C0B1+CM,iKAEE,oB1B2+CR,C0Bx+CM,4EACE,UAAA,CACA,Q1B0+CR,C0Bt+CI,gEACE,Y1Bw+CN,CACF,CKz1CE,mJAEE,UL81CJ,CKz1CE,uHAEE,yBL01CJ,CKv1CE,2DACE,aLy1CJ,C0B1+CI,iEACE,yB1B4+CN,C2B/iDE,cxB9CA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,kBAJuB,CwB5KzB,qBAAA,CACA,oBAAA,CACA,iBAAA,CACA,UAAA,CfuCI,eAAA,CelCJ,oBAAA,CAEA,4BAAA,CACA,eAAA,CACA,UA5DuB,CA6DvB,wBApE6B,CAqE7B,0BAAA,CACA,iBAAA,CACA,kBAAA,CACA,cAAA,CACA,uB3BqjDJ,CQn6CQ,amBvKN,cxBnCE,sBHinDF,CACF,CQx6CQ,6BmBvKN,cxB2LM,mBAbY,CAcZ,aHw5CN,CACF,CQ96CQ,amBvKN,cxBsLM,cATQ,CAUR,gBHm6CN,CACF,CQp7CQ,6BmBvKN,cfoDQ,kBAAA,Ce5BJ,U3BukDJ,CACF,C2BpkDI,kFAIE,UA7EqB,CA8ErB,oB3BwkDN,C2BpkDI,gCACE,SAAA,CACA,Q3BskDN,C2BnkDI,oBACE,wB3BqkDN,C2BlkDI,qBAEE,O3BmkDN,C2BhkDI,oBACE,iBjB9Ce,CiB+Cf,6BAAA,CACA,+B3BkkDN,C2B/jDI,6CACE,iBjBpDe,CiBqDf,ajB3CoB,CiB4CpB,qBjBtDe,CiBuDf,0B3BikDN,C2BzjDI,qBACE,UAAA,CACA,aAAA,CAEA,iBAAA,CAEA,QAAA,CACA,UAAA,CACA,WAAA,CACA,SAAA,CAEA,sB3BwjDN,C2B3iDI,4BACE,Q3B6iDN,C2BziDE,wBACE,U3B4iDJ,C2B1iDI,8BACE,wBA1J2B,CA2J3B,kB3B4iDN,C2BziDI,+BACE,KAAA,CACA,0B3B2iDN,C2BviDE,yBACE,wBAvI8B,CAwI9B,0B3B0iDJ,C2BxiDI,uJAKE,a3BsiDN,C2BniDI,+BACE,wB3BqiDN,C2BniDM,yCACE,wB3BqiDR,C2BhiDE,uBACE,wBAtJ4B,CAuJ5B,0B3BmiDJ,C2BjiDI,6IAKE,U3B+hDN,C2B5hDI,6BACE,wB3B8hDN,C2B5hDM,uCACE,wB3B8hDR,C2BzhDE,uBACE,qBAjMqC,CAkMrC,0B3B4hDJ,C2B1hDI,6IAKE,a3BwhDN,C2BrhDI,6BACE,wB3BuhDN,C2BrhDM,uCACE,qB3BuhDR,C2BlhDE,qBxB/KA,eAAA,CAkLI,kBAJc,CAKd,aAJuB,CwBIzB,mBAAA,CACA,eAAA,CAEA,sB3BohDJ,CQniDQ,6BmBQN,qBxBYM,gBAbY,CAcZ,aHmhDN,CACF,CQziDQ,amBQN,qBxBOM,cATQ,CAUR,aH8hDN,CACF,C2B7hDE,0BACE,eAAA,CAKA,qBAAA,CACA,aAAA,CACA,iBAAA,CAGA,wB3B0hDJ,CQvjDQ,6BmBkBN,0BAII,gB3BqiDJ,CACF,C4B/xDE,qBzBcA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CA4CA,eAAA,CAkLI,cAJc,CAKd,gBAJuB,CyBxOzB,aAAA,CACA,YAAA,CACA,kBAAA,CACA,UAAA,CAEA,a5BqyDJ,CQ1kDQ,aoBnON,qBzByBE,sBHwxDF,CACF,CQ/kDQ,6BoBnON,qBzBuPM,mBAbY,CAcZ,wBH+jDN,CACF,CQrlDQ,aoBnON,qBzBkPM,cATQ,CAUR,gBH0kDN,CACF,C6B9zDE,Y1BcA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,C0BxOzB,kBAAA,CAEA,a7Bo0DJ,CQtmDQ,aqBnON,Y1ByBE,sBHozDF,CACF,CQ3mDQ,6BqBnON,Y1BuPM,mBAbY,CAcZ,wBH2lDN,CACF,CQjnDQ,aqBnON,Y1BkPM,cATQ,CAUR,gBHsmDN,CACF,C6BzzDE,8NACE,kB7Bg0DJ,C6B5zDE,oCACE,e7B+zDJ,C8Bt2DE,a3BcA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CAvM3B,aOfkB,CoBjBhB,aAAA,CAEA,iB9B42DJ,CQ/oDQ,asBnON,a3ByBE,sBH61DF,CACF,CQppDQ,6BsBnON,a3BuPM,mBAbY,CAcZ,wBHooDN,CACF,CQ1pDQ,asBnON,a3BkPM,cATQ,CAUR,gBARqB,CApMzB,UH21DF,CACF,C8Bz3DE,iD3BkDA,eAAA,C2B9CE,kB9Bi4DJ,C8B93DE,iB3B6NI,cAJc,CAKd,mBHqqDN,CQjrDQ,6BsBlNN,iB3BsOM,cAbY,CAcZ,wBHiqDN,CACF,CQvrDQ,asBlNN,iB3BiOM,cATQ,CAUR,gBH4qDN,CACF,C8B34DE,gB3ByNI,gBAJc,CAKd,wBHsrDN,CQlsDQ,6BsB9MN,gB3BkOM,iBAbY,CAcZ,wBHkrDN,CACF,CQxsDQ,asB9MN,gB3B6NM,cATQ,CAUR,gBH6rDN,CACF,C8Bx5DE,gB3BqNI,kBAJc,CAKd,wBHusDN,CQntDQ,6BsB1MN,gB3B8NM,gBAbY,CAcZ,gBHmsDN,CACF,CQztDQ,asB1MN,gB3ByNM,cATQ,CAUR,gBH8sDN,CACF,C8Br6DE,gB3B+BA,eH04DF,C8B/5DE,qBACE,Q9Bk6DJ,C+Bt8DE,gB5BUA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,C4BpOzB,qBAAA,CACA,aAAA,CACA,UAAA,CACA,eAAA,CnB+FI,kBAAA,CmB7FJ,WAAA,CAEA,eAAA,CAEA,wBAAA,CACA,eAAA,CAEA,uB/B08DJ,CQ1vDQ,auB/NN,gB5BqBE,sBHw8DF,CACF,CQ/vDQ,6BuB/NN,gB5BmPM,mBAbY,CAcZ,gBH+uDN,CACF,CQrwDQ,auB/NN,gB5B8OM,cATQ,CAUR,gBH0vDN,CACF,CQ3wDQ,6BuB/NN,gBnB4GQ,kBZk4DR,CACF,C+B99DI,sBACE,sBAAA,CAEA,gBAAA,CAIA,0B/B49DN,C+Bz9DI,yBACE,UAAA,CACA,aAAA,CACA,4BAAA,CACA,kB/B29DN,C+Bv9DE,uBACE,oB/B09DJ,C+Bx9DI,6BACE,oB/B09DN,CDhgEE,uBaoGM,kBZg6DR,CQtyDQ,6BT9NN,uBa2GQ,kBZ65DR,CACF,CDtgEI,gFAEE,iBCwgEN,CDpgEE,gCI+DA,iCAAA,CJ7DE,YAAA,CACA,eCugEJ,CDrgEI,sCAME,WCkgEN,CD9/DE,0CACE,iBCigEJ,CgC/hEE,gBACE,WAAA,CACA,QAAA,CACA,SAAA,CACA,QhCkiEJ,CiB9hEE,sBACE,UAAA,CACA,aAAA,CACA,UjBgiEJ,CgCjiEE,iCACE,gCAEE,kBhCoiEJ,CACF,CgChiEE,wB7BJA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CAvM3B,aOfkB,CsBIhB,qBAAA,CACA,aAAA,CACA,cAAA,CACA,kBAAA,CACA,SAAA,CAEA,kBhCkiEJ,CQ91DQ,awBjNN,wB7BOE,sBH4iEF,CACF,CQn2DQ,6BwBjNN,wB7BqOM,mBAbY,CAcZ,wBHm1DN,CACF,CQz2DQ,awBjNN,wB7BgOM,cATQ,CAUR,gBARqB,CApMzB,UH0iEF,CACF,CgC/iEE,kF7ByBA,eAAA,C6BrBE,kBhCujEJ,CgCpjEE,4B7BoMI,cAJc,CAKd,mBHo3DN,CQh4DQ,6BwBzLN,4B7B6MM,cAbY,CAcZ,wBHg3DN,CACF,CQt4DQ,awBzLN,4B7BwMM,cATQ,CAUR,gBH23DN,CACF,CgCjkEE,2B7BgMI,gBAJc,CAKd,wBHq4DN,CQj5DQ,6BwBrLN,2B7ByMM,iBAbY,CAcZ,wBHi4DN,CACF,CQv5DQ,awBrLN,2B7BoMM,cATQ,CAUR,gBH44DN,CACF,CgC9kEE,2B7B4LI,kBAJc,CAKd,wBHs5DN,CQl6DQ,6BwBjLN,2B7BqMM,gBAbY,CAcZ,gBHk5DN,CACF,CQx6DQ,awBjLN,2B7BgMM,cATQ,CAUR,gBH65DN,CACF,CgC3lEE,2B7BMA,eHylEF,CgCzlEE,yBACE,QAAA,CACA,iBAAA,CACA,mBhC4lEJ,CiC/oEE,wBACE,YAAA,CACA,cAAA,CACA,iBAAA,CACA,kBjCkpEJ,CiC/oEE,wEAEE,ejCkpEJ,CiC/oEE,yBAGE,SAAA,CACA,UArBwB,CAsBxB,WAtBwB,CAuBxB,QAAA,CACA,SAAA,CACA,cjCgpEJ,CiC7oEE,yBACE,iBAAA,CAMA,2BAAA,CACA,eAAA,CACA,gBAAA,CACA,cAAA,CAEA,yBjC0oEJ,CiCtoEE,gCAIE,OAAA,CACA,QAAA,CACA,UAnDsB,CAoDtB,WApDsB,CAqDtB,gBjC0oEJ,CiCloEE,+DAfE,UAAA,CACA,qBAAA,CACA,iBAAA,CAMA,sBjCypEJ,CiClpEE,+BAOE,QAAA,CACA,SAjEyC,CAkEzC,UAAA,CACA,WAAA,CACA,wBAAA,CACA,YAAA,CACA,wBAAA,CAGA,4BAAA,CACA,SjCioEJ,CiC7nEE,wBACE,aAAA,CACA,UAAA,CACA,eAAA,CACA,kBAnF0C,CAoF1C,iBjCgoEJ,CiC1nEE,qGACE,ejC6nEJ,CiCznEE,+DACE,gBAAA,CAMA,6BAAA,CACA,kBAAA,CAQA,yBjCgnEJ,CiCpnEI,oEAZF,+DAaI,uBjCunEJ,CACF,CiCjnEE,gEACE,SjConEJ,CiChnEE,6FAEE,kBjCmnEJ,CiChnEE,yGAEE,UjCmnEJ,CiC5mEE,2B9BjIA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CAvM3B,aOfkB,CuB8HhB,UA7IsB,CA8ItB,kBAAA,CACA,iBjCmnEJ,CQriEQ,ayBpFN,2B9BtHE,sBHmvEF,CACF,CQ1iEQ,6ByBpFN,2B9BwGM,mBAbY,CAcZ,wBH0hEN,CACF,CQhjEQ,ayBpFN,2B9BmGM,cATQ,CAUR,gBARqB,CApMzB,UHivEF,CACF,CiCnnEE,+BrB7DM,kBAAA,CqB+DJ,gBAR2B,CAS3B,iBALyB,CAMzB,6BjC2nEJ,CQlkEQ,6ByB7DN,+BrBtDQ,kBZyrER,CACF,CiC9nEI,iEACE,YjCgoEN,CiCjnEI,4FACE,ejCunEN,CiC3mEI,kDACE,iBjC6mEN,CiC1mEI,kDAGE,gBjC0mEN,CiClmEI,yDACE,QA/Ba,CAgCb,MAAA,CACA,UAnN0B,CAoN1B,WjComEN,CiC9lEI,wDACE,QAAA,CAIA,QAAA,CACA,UAAA,CACA,YAAA,CACA,wBjC6lEN,CiCllEI,iDACE,iBjColEN,CiChlEI,wDAEE,gBADc,CAEd,iBjCilEN,CiC9kEI,oDACE,UAzP0B,CA0P1B,iBjCglEN,CiCvkEI,+HAGE,8BAAA,CACA,kBAAA,CACA,6BjCukEN,CiC/jEI,sHAME,4CjC4jEN,CiChkEM,oEAFF,sHAGI,uBjCmkEN,CACF,CiCtjEI,qCACE,+HACE,ejCwjEN,CiCrjEI,sHACE,yBjCujEN,CACF,CkCp2EE,qBACE,gBAAA,CAMA,oCAAA,CAEA,wBlCi2EJ,CkC51EE,6BACE,YlC+1EJ,CkC51EE,8BAEE,mBlC81EJ,CkC51EI,sCAIE,YlC21EN,CkCx1EI,oCAcE,YlC60EN,CmCv3EE,ahCUA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CgCpOzB,qBAAA,CACA,UAAA,CACA,aAAA,CACA,YAAA,CACA,WAAA,CAKA,wBAAA,CACA,eAAA,CAGA,uBAAA,CAAA,enCw3EJ,CQzqEQ,a2B/NN,ahCqBE,sBHu3EF,CACF,CQ9qEQ,6B2B/NN,ahCmPM,mBAbY,CAcZ,wBH8pEN,CACF,CQprEQ,a2B/NN,ahC8OM,cATQ,CAUR,gBHyqEN,CACF,CmCv4EI,mBACE,sBAAA,CAEA,gBAAA,CAMA,0BnCm4EN,CmCh4EI,sBACE,UAAA,CACA,aAAA,CACA,4BAAA,CACA,kBnCk4EN,CmC93EE,gFAEE,QAAA,CACA,uBnCi4EJ,CmC93EE,0BACE,yBnCi4EJ,CmC93EE,oBACE,oBnCi4EJ,CmC/3EI,0BACE,oBnCi4EN,CmC73EE,mChCiBA,iCAAA,CgCfE,oBnCg4EJ,CmC13EE,uBACE,gBnC63EJ,CmC13EE,uBACE,gBnC63EJ,CmC13EE,uBACE,gBnC63EJ,CmC13EE,sBACE,enC63EJ,CmC13EE,sBACE,enC63EJ,CmC13EE,sBACE,gBnC63EJ,CmC13EE,sBACE,gBnC63EJ,CmC13EE,sBACE,YnC63EJ,CmC33EI,mCACE,anC63EN,CmC13EI,yCAEE,SnC23EN,CQjwEQ,2B2BnIN,sBAcI,anC03EJ,CmCx3EI,mCAEE,cnCy3EN,CACF,CmCr3EE,0ChCzGA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CgCjHzB,qBAAA,CAEA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,gBAAA,CACA,aAAA,CACA,WAAA,CACA,wBAAA,CACA,wBAAA,CACA,iBAAA,CACA,kBAAA,CAEA,cAAA,CACA,anC23EJ,CQhyEQ,a2B5GN,0ChC9FE,sBH++EF,CACF,CQtyEQ,6B2B5GN,0ChCgIM,mBAbY,CAcZ,wBHuxEN,CACF,CQ7yEQ,a2B5GN,0ChC2HM,cATQ,CAUR,gBHmyEN,CACF,CQpzEQ,2B2B5GN,0CAoBI,aAAA,CACA,WAAA,CACA,kBnCi5EJ,CmC74EA,qBAEI,enCi5EJ,CALF,CQ5zEQ,wB2BlFN,qBAKI,cnCm5EJ,CACF,CQv0EQ,2B2BxEN,qBAEI,YnCk5EJ,CACF,CQ70EQ,wB2BxEN,qBAKI,anCo5EJ,CACF,CoChjFE,kBAEE,WpCkjFJ,CiBjjFE,wBACE,UAAA,CACA,aAAA,CACA,UjBmjFJ,CoCpjFE,wBACE,oBAAA,CACA,iBAAA,CACA,epCujFJ,CoCpjFE,yBACE,apCujFJ,CoCpjFE,yBACE,epCujFJ,CqC5kFE,elCcA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CAvM3B,aOfkB,CEoFZ,kBAAA,CyBpGJ,arCmlFJ,CQr3EQ,a6BnON,elCyBE,sBHmkFF,CACF,CQ13EQ,6B6BnON,elCuPM,mBAbY,CAcZ,wBH02EN,CACF,CQh4EQ,a6BnON,elCkPM,cATQ,CAUR,gBARqB,CApMzB,UHikFF,CACF,CQt4EQ,6B6BnON,ezBgHQ,kBZkgFR,CACF,CqC3mFE,wBACE,arC8mFJ,CqC3mFE,6CACE,iBrC8mFJ,CqC1mFI,0CACE,YrC6mFN,CqC1mFI,kFAEE,erC4mFN,CqCxmFE,qBACE,gBAAA,CACA,mBAAA,CACA,iBrC2mFJ,CqCxmFE,uBACE,YAAA,CACA,kBrC2mFJ,CqCxmFE,iCACE,erC2mFJ,CqCrmFE,iBACE,eACE,8BrCwmFJ,CqCrmFE,wBACE,erCumFJ,CqCpmFE,6BlCMF,eAAA,CS6CM,kBAAA,CyBhDF,iBrCsmFJ,CACF,CQ77EQ,0C6B7KJ,6BzB0DM,kBZojFR,CACF,CqChmFE,mCACE,wBAEE,iBAAA,CAGA,yBAAA,CAAA,iBAAA,CAGA,iBAAA,CAGA,a3BmDc,C2BlDd,crC2lFJ,CqCzlFI,8BACE,arC2lFN,CqCxlFI,8B5BzEJ,6BAAA,CACA,aC4DwB,CD3DxB,qBCiDmB,CDhDnB,oCACE,CAIF,oBAAA,CAIA,kCAAA,CAAA,0BT6pFA,CqC3lFE,6BhChEF,yBAAA,CAGE,2CChB6B,CDoB7B,6BLypFF,CqC5lFE,2DhC/CA,iDCLmC,CDQnC,qCAAA,CAAA,6BAAA,CACA,iCAAA,CAAA,yBL4oFF,CqC5lFE,2DACE,oBrC8lFJ,CqCzlFE,gDACE,YrC2lFJ,CqCvlFE,+BACE,UAAA,CACA,iBAAA,CAEA,QAAA,CACA,QAAA,CACA,MAAA,CAEA,WAAA,CCpFJ,aADmE,CAGnE,OAAA,CACA,QAAA,CAiBE,8CAAA,CAAA,sCAAA,CAEA,wBAAA,CAAA,kBAAA,CAAA,+BAAA,CACA,yBtC4pFF,CqC3lFI,oDCxFJ,aADmE,CAGnE,OAAA,CACA,QAAA,CAsBE,8CAAA,CAAA,sCAAA,CAEA,wBAAA,CAAA,kBAAA,CAAA,2BAAA,CACA,wBtCiqFF,CqChmFE,qBACE,6BrCkmFJ,CACF,CuCpuFE,qBpCYA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CAvM3B,aOfkB,CEkFZ,YAAA,CAEA,kBAAA,C2BjGJ,wBvC0uFJ,CQ/gFQ,a+BjON,qBpCuBE,sBH6tFF,CACF,CQphFQ,6B+BjON,qBpCqPM,mBAbY,CAcZ,wBHogFN,CACF,CQ1hFQ,a+BjON,qBpCgPM,cATQ,CAUR,gBARqB,CApMzB,UH2tFF,CACF,CQhiFQ,6B+BjON,qB3B4GQ,YAAA,CAEA,kBZ4pFR,CACF,CuCnwFI,2BACE,sBvC0wFN,CuCtwFE,4BpC+NI,kBAJc,CAKd,wBAJuB,CA/K3B,eAAA,CoCzCE,YAAA,C3BsFI,kBZorFR,CQ1jFQ,6B+BpNN,4BpCwOM,gBAbY,CAcZ,gBH0iFN,CACF,CQhkFQ,a+BpNN,4BpCmOM,cATQ,CAUR,gBHqjFN,CACF,CQtkFQ,6B+BpNN,4B3BiGQ,kBZ6rFR,CACF,CuCtxFI,6BACE,evCyxFN,CuCtxFI,+B3B6EI,eZ4sFR,CQllFQ,6B+BvMJ,+B3BoFM,eZysFR,CACF,CuC1xFI,uC3ByEI,iBZotFR,CuClxFE,oEACE,evCyxFJ,CuCtxFE,6BpCaA,eAAA,CA9CA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CEaA,yBAAA,CAGE,2CChB6B,CDoB7B,6BL2yFJ,CQ5mFQ,a+BpLN,6BpCtBE,sBH0zFF,CACF,CKv0FE,mCAqCE,iDCLmC,CDQnC,qCAAA,CAAA,6BAAA,CACA,iCAAA,CAAA,yBLmyFJ,CKx0FE,mCIFA,6BAAA,CAEA,qBCiDmB,CDhDnB,oCACE,CAIF,oBAAA,CAIA,kCAAA,CAAA,0BTs0FF,CK/uFE,uEAEE,aLgvFJ,CK7uFE,mCACE,aL+uFJ,CK5uFE,oCACE,aL8uFJ,CKzuFE,mCACE,aL2uFJ,CwCz2FE,sB5BqGM,kBAAA,C4BnGJ,uBAAA,CAAA,eAAA,CACA,YAAA,CACA,KAAA,CACA,MAAA,CACA,UxC42FJ,CQnpFQ,6BgC/NN,sB5B4GQ,kBAAA,C4BnGJ,oBAAA,CACA,OAAA,CACA,SAAA,CACA,UAAA,CACA,WxCy2FJ,CACF,CwCt2FE,8BACE,exCk3FJ,CwC/2FE,iCAEE,YAAA,CACA,mBAAA,CACA,aAAA,CACA,aAAA,CACA,iBAAA,CACA,mBxCk3FJ,CwC/2FE,0CACE,axCk3FJ,CwC/2FE,uCACE,qBAAA,CACA,oBAAA,CACA,WAxCe,CAyCf,YAzCe,CA0Cf,eAAA,CAGA,iBAAA,CACA,gBxCk3FJ,CwC/2FE,2CACE,mBxCk3FJ,CwC/2FE,kBACE,sBACE,YxCk3FJ,CACF,CwC/2FE,8BACE,cAAA,CACA,YAAA,CACA,KAAA,CACA,OAAA,CACA,QAAA,CACA,MAAA,CACA,qBxCi3FJ,CwCt2FI,qCACE,sBxCy2FN,CwCt2FI,iEACE,uBxCw2FN,CyCt7FE,mBtCQA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CAvM3B,aOfkB,C+BZhB,cAAA,CACA,gBAAA,CACA,WzC87FJ,CQtuFQ,aiC7NN,mBtCmBE,sBHo7FF,CACF,CQ3uFQ,6BiC7NN,mBtCiPM,mBAbY,CAcZ,wBH2tFN,CACF,CQjvFQ,aiC7NN,mBtC4OM,cATQ,CAUR,gBARqB,CApMzB,UHk7FF,CACF,CyCz8FI,+CACE,yBAAA,CACA,aAAA,CACA,YzCg9FN,CyC78FI,yBACE,sBAAA,CAIA,kCzC48FN,CyCp8FI,gCACE,sBAAA,CAEA,kCzCq8FN,CyCl8FI,4BACE,UAAA,CACA,kBzCo8FN,C0Cx+FE,cvCMA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,iBAJc,CAKd,wBAJuB,CSlIrB,gBAAA,CAAA,mBAAA,C8B5FJ,4BAAA,CACA,ahCOgB,CgCNhB,kB1C++FJ,CQ3xFQ,akC3NN,cvCiBE,sBHy+FF,CACF,CQhyFQ,6BkC3NN,cvC+OM,cAbY,CAcZ,gBHgxFN,CACF,CQtyFQ,akC3NN,cvC0OM,cATQ,CAUR,eH2xFN,CACF,CQ5yFQ,6BkC3NN,c9BwGQ,gBAAA,CAAA,mBZm6FR,CACF,C0ClgGE,oBvCJA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CEaA,yBAAA,CAGE,2CChB6B,CDoB7B,6BL8/FJ,CQ/zFQ,akCjNN,oBvCOE,sBH6gGF,CACF,CK1hGE,0BAqCE,iDCLmC,CDQnC,qCAAA,CAAA,6BAAA,CACA,iCAAA,CAAA,yBLs/FJ,CK3hGE,0BIFA,6BAAA,CACA,aC4DwB,CD3DxB,qBCiDmB,CDhDnB,oCACE,CAIF,oBAAA,CAIA,kCAAA,CAAA,0BTyhGF,CKt1FE,qDF1LA,aHmhGF,CQp1FQ,aHLN,qDFvLE,UHohGF,CACF,CKv1FE,0BAEI,wBLw1FN,CKp1FE,qDFvMA,aH8hGF,CQ/1FQ,aHQN,qDFpME,UH+hGF,CACF,C0ChjGE,6B9BkFM,eAAA,C8B/EJ,QAAA,CACA,+B1CmjGJ,CQ32FQ,6BkC5MN,6B9ByFQ,kBZk+FR,CACF,C0CrjGE,oBACE,YAAA,CACA,kBAAA,CACA,iBAAA,CACA,cAAA,CACA,oBAAA,CACA,sB1CwjGJ,C0CrjGE,yBACE,iBnBUgB,CmBThB,kBAAA,CACA,gB1CwjGJ,C0CrjGE,+BACE,M1CwjGJ,CQn4FQ,6BkCtLN,+BAGI,gB1C0jGJ,CACF,C0CvjGE,4BACE,oBAAA,CACA,iBAAA,CAIA,kBAAA,CAGA,wB1CqjGJ,CQ/4FQ,6BkC/KN,4BAII,kB1C8jGJ,CACF,C0CvjGE,mCAEE,oBAAA,CAGA,iB1CujGJ,C0CpjGE,8BACE,oBAAA,CACA,eArE+B,CAsE/B,iBAAA,CACA,oDAAA,CACA,2BAAA,CACA,yBAAA,CACA,2BAAA,CACA,iBAAA,CACA,kB1CujGJ,C0CpjGE,2BACE,YAAA,CACA,kBAAA,CACA,S1CujGJ,C0CpjGE,2BACE,kB1CujGJ,C0CpjGE,gCACE,oBAAA,CACA,iBAAA,CACA,iB1CujGJ,C0CpjGE,uBACE,kBAAA,CACA,mBAAA,CAKA,+B1CmjGJ,CQ37FQ,6BkC/HN,uBAKI,mB1CyjGJ,CACF,C0CrjGE,0BAEE,kBAAA,CACA,iB1CujGJ,CiBhqGE,gCACE,UAAA,CACA,aAAA,CACA,UjBkqGJ,C0CzjGE,uBACE,oBAAA,CACA,kBnB3EW,CmB4EX,kB1C4jGJ,C0CzjGE,oBACE,QAAA,CACA,SAAA,CACA,eAAA,CACA,e1C4jGJ,CQv9FQ,6BkCjGJ,+BACE,c1C4jGJ,C0CzjGE,+BACE,c1C2jGJ,CACF,C0CxjGE,yB9BlCM,kBZ6lGR,CQn+FQ,6BkCxFN,yB9B3BQ,kBZ0lGR,CACF,C0C5jGE,oCACE,e1C+jGJ,C2CjsGE,cxCAA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,iBAJc,CAKd,aAJuB,CwC1NzB,6BAAA,CACA,UAfkB,CAgBlB,kB3CwsGJ,CQx/FQ,amCrNN,cxCWE,sBHssGF,CACF,CQ7/FQ,6BmCrNN,cxCyOM,cAbY,CAcZ,aH6+FN,CACF,CQngGQ,amCrNN,cxCoOM,cATQ,CAUR,aHw/FN,CACF,C2CttGE,qCACE,cAAA,CACA,oB3CytGJ,C2CvtGI,gEACE,U3CytGN,C2CrtGE,yBAEE,iBAAA,CACA,mBAAA,CACA,gBAAA,CACA,gC3CutGJ,CiBnvGE,+BACE,UAAA,CACA,aAAA,CACA,UjBqvGJ,C2CztGE,iCACE,2B3C4tGJ,C2C1tGI,0DACE,+B3C4tGN,C2CxtGE,wBACE,oBAAA,CACA,iBAAA,CACA,QAAA,CAIA,gBAAA,CACA,iBAAA,CACA,kB3CwtGJ,C2CptGI,8BAbF,wBAcI,wBAAA,CACA,c3CutGJ,CACF,C2CntGI,mCACE,c3CqtGN,C2CjtGE,4BxCsKI,kBAJc,CAKd,aAJuB,CAzL3B,eAAA,CwC4BE,oBAAA,CAGA,eARsB,CAiBtB,kB3CwsGJ,CQ/jGQ,6BmC3JN,4BxC+KM,gBAbY,CAcZ,aH+iGN,CACF,CQrkGQ,amC3JN,4BxC0KM,cATQ,CAUR,aH0jGN,CACF,C2CztGI,4BAbF,4BAcI,gB3C4tGJ,CACF,CQhlGQ,6BmC3JN,4BAqBI,c3C0tGJ,C2CztGI,4BAtBJ,4BAuBM,gB3C4tGJ,CACF,CACF,C2CztGE,oBAUE,oB3CmtGJ,CK/jGE,qDAEE,ULgkGJ,CK3jGE,qDAEE,yBL4jGJ,C2CvtGI,0BACE,yBAAA,CACA,6BA5GoC,CA+GlC,6B3C0tGR,C2CttGI,0BlC1GF,6BAAA,CACA,aC4DwB,CD3DxB,qBCiDmB,CDhDnB,oCACE,CAIF,oBAAA,CAIA,kCAAA,CAAA,0BT4zGF,C2CztGE,8BAGE,oBAAA,CACA,iBAAA,CACA,c3C0tGJ,CQ1nGQ,6BmCrGN,8BAQI,c3C2tGJ,C2CztGI,oCAGE,mB3CytGN,CACF,C2CttGI,yEAEE,oB3CutGN,C2CptGI,yEAGE,kBAAA,CACA,uB3CotGN,C2ChtGI,oCACE,eAAA,CACA,e3CktGN,C2C9sGE,4BACE,oBAAA,CACA,kBAAA,CxC0EE,kBAJc,CAKd,wBAJuB,CA/K3B,eH4zGF,CQrpGQ,6BmCjEN,4BxCqFM,gBAbY,CAcZ,gBHqoGN,CACF,CQ3pGQ,amCjEN,4BxCgFM,cATQ,CAUR,gBHgpGN,CACF,C2C3tGE,2CAEE,qB3C8tGJ,C2C3tGE,oB/BrEM,kBAAA,C+ByEJ,kB3C4tGJ,CQ3qGQ,6BmCrDN,oBAOI,YAAA,CACA,kBpBpIc,CoBqId,UAAA,CACA,kB3C6tGJ,C2C1tGI,+BACE,UAAA,CACA,eAAA,CACA,U3C4tGN,C2CvtGA,uBAEI,YAAA,CACA,iBpBpJc,CoBqJd,U3C2tGJ,CAPF,C2ChtGE,2BxC7LA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,iBAJc,CAKd,wBAJuB,CwC9BzB,iBAAA,CAMA,QAAA,CAEA,OAAA,CACA,cA1M+B,CA2M/B,eA5MgC,CA6MhC,QAAA,CACA,SAAA,CACA,QAAA,CACA,UAAA,CACA,eAAA,CACA,oBAAA,CACA,c3C0tGJ,CQrtGQ,amCxBN,2BxClLE,sBHm6GF,CACF,CQ1tGQ,6BmCxBN,2BxC4CM,cAbY,CAcZ,gBH0sGN,CACF,CQhuGQ,amCxBN,2BxCuCM,cATQ,CAUR,eHqtGN,CACF,C2CzuGI,iCACE,2CAAA,CAAA,mCAAA,CAGE,6B3CyuGR,C2CruGI,iClCzNF,6BAAA,CACA,aC4DwB,CD3DxB,qBCiDmB,CDhDnB,oCACE,CAIF,oBAAA,CAIA,kCAAA,CAAA,0BT07GF,C2CzuGI,iCLvMF,oBKwMwE,CLtMxE,OAAA,CACA,QAAA,CAsBE,8CAAA,CAAA,sCAAA,CAEA,wBAAA,CAAA,kBAAA,CAAA,yBAAA,CACA,wBAAA,CK6KE,UAAA,CACA,e3CkvGN,C2C/uGI,qDL7MF,oBK8MsE,CL5MtE,OAAA,CACA,QAAA,CAYE,iDAAA,CAAA,yCAAA,CAEA,wBAAA,CAAA,kBAAA,CAAA,yBAAA,CACA,2BtCo7GJ,CQxwGQ,6BmCxBN,2BA4CI,Q3CwvGJ,CACF,C2CtvGI,qDACE,a3CwvGN,C2CrvGI,gGAEE,Y3CsvGN,CQnxGQ,6BmCiCN,0BAEI,kB3CqvGJ,CACF,C2ClvGE,+BAEE,QAAA,CACA,SAAA,CACA,e3CovGJ,C2ClvGI,uCACE,Y3CovGN,CQlyGQ,6BmCkDN,+BAEI,QAAA,CACA,aAAA,CACA,gB3CmvGJ,CACF,C2ChvGE,+BACE,cAAA,CACA,+B3CmvGJ,CQ/yGQ,6BmC0DN,+BAKI,oBAAA,CACA,iBAAA,CACA,aAAA,CACA,Q3CovGJ,CACF,C2ClvGI,iCxC1DE,iBAJc,CAKd,wBAJuB,CA/K3B,eAAA,CwC+OI,kB3CqvGN,CQ7zGQ,6BmCqEJ,iCxCjDI,cAbY,CAcZ,gBH6yGN,CACF,CQn0GQ,amCqEJ,iCxCtDI,cATQ,CAUR,eHwzGN,CACF,C2C3vGM,8IAGE,a3C4vGR,CQ70GQ,amC6EJ,yCAUI,a3C0vGN,CACF,C2CtvGM,+CACE,a3CwvGR,C2CnvGE,0CACE,cAAA,CACA,e3CsvGJ,CQ11GQ,amCwGJ,cACE,qBAAA,CACA,aAAA,CACA,sB3CsvGJ,C2ClvGI,qDAEE,a3CmvGN,C2C/uGI,0BACE,Y3CivGN,CACF,C4C3kHE,kBzCcA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CAvM3B,aOfkB,CkClBhB,YAAA,ChCsGI,eAAA,CAAA,kBAAA,CgChGJ,UAAA,CAEA,8B5C8kHJ,CQt3GQ,aoCnON,kBzCyBE,sBHokHF,CACF,CQ33GQ,6BoCnON,kBzCuPM,mBAbY,CAcZ,wBH22GN,CACF,CQj4GQ,aoCnON,kBzCkPM,cATQ,CAUR,gBARqB,CApMzB,UHkkHF,CACF,CQv4GQ,6BoCnON,kBhCgHQ,eAAA,CAAA,kBZmgHR,CACF,C4CvmHI,+BACE,Y5C8mHN,C4C3mHI,4DAEE,e5C6mHN,C6ChoHE,2B1CcA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CSlIrB,kBAAA,CiCrGJ,wBAAA,CAEA,wB7CsoHJ,CQz6GQ,aqCnON,2B1CyBE,sBHunHF,CACF,CQ96GQ,6BqCnON,2B1CuPM,mBAbY,CAcZ,wBH85GN,CACF,CQp7GQ,aqCnON,2B1CkPM,cATQ,CAUR,gBHy6GN,CACF,CQ17GQ,6BqCnON,2BjCgHQ,kBZijHR,CACF,C6C1pHI,iCACE,sB7C4pHN,C6CxpHE,mCACE,oBAAA,CAIA,mC7CwpHJ,CQv8GQ,6BqCtNN,mCAQI,oB7CypHJ,CACF,C6CtpHE,kC1CqNI,cAJc,CAKd,gBAJuB,CA/K3B,eAAA,C0C9BE,QAAA,CACA,SAAA,CACA,U7CwpHJ,CQr9GQ,6BqC1MN,kC1C8NM,mBAbY,CAcZ,wBHq8GN,CACF,CQ39GQ,aqC1MN,kC1CyNM,cATQ,CAUR,gBHg9GN,CACF,C6CjqHE,oC1CCA,aOfkB,CmCiBhB,YAAA,CAEA,qB7CkqHJ,CQv+GQ,aqChMN,oC1CIE,UHuqHF,CACF,CQ5+GQ,6BqChMN,oCAQI,Y7CwqHJ,CACF,C6CpqHI,sCAGE,qBAAA,CAOA,e7C8pHN,C6C3pHI,gDACE,e7C6pHN,C6CzpHE,oC1C4KI,kBAJc,CAKd,wBAJuB,CA/K3B,eAAA,C0CUE,eAAA,CAEA,S7C2pHJ,CQhgHQ,6BqCjKN,oC1CqLM,gBAbY,CAcZ,gBHg/GN,CACF,CQtgHQ,aqCjKN,oC1CgLM,cATQ,CAUR,gBH2/GN,CACF,C6CpqHE,iC1C7DA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CEaA,yBAAA,CAGE,2CChB6B,CDoB7B,6BLotHJ,CQrhHQ,aqCxJN,iC1ClDE,sBHmuHF,CACF,CKhvHE,uCAqCE,iDCLmC,CDQnC,qCAAA,CAAA,6BAAA,CACA,iCAAA,CAAA,yBL4sHJ,CKjvHE,uCIFA,6BAAA,CAEA,qBCiDmB,CDhDnB,oCACE,CAIF,oBAAA,CAIA,kCAAA,CAAA,0BT+uHF,CK99GE,+EACE,aLm+GJ,CKh+GE,uCACE,aLk+GJ,CKz9GE,+EACE,aL89GJ,C6CzsHE,oCACE,oBnCamB,CmCXnB,wB7C2sHJ,CKvoHE,uJAEE,aLwoHJ,CKroHE,2EACE,aLuoHJ,CKpoHE,4EACE,aLsoHJ,CKjoHE,2EACE,aLmoHJ,C8CxyHE,kBlCuGM,kBAAA,CkCrGJ,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,c9C2yHJ,CQ/kHQ,6BsCjON,kBlC8GQ,kBAAA,CkCtGJ,kBAAA,CACA,sB9C2yHJ,CACF,C8CxyHE,wBACE,QAAA,CACA,SAAA,CACA,e9CizHJ,C8C9yHE,wE3CPA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,C2ClNzB,qBAAA,CACA,iBAAA,CACA,cAAA,CACA,eAAA,CACA,iBAAA,CACA,U9CszHJ,CQjnHQ,asC9MN,wE3CIE,sBHi0HF,CACF,CQxnHQ,6BsC9MN,wE3CkOM,mBAbY,CAcZ,wBH0mHN,CACF,CQhoHQ,asC9MN,wE3C6NM,cATQ,CAUR,gBHunHN,CACF,C8C30HI,0FACE,wB9C+0HN,C8C30HE,wBAGE,YAAA,CAIA,iB9Cy0HJ,CQlpHQ,6BsC9LN,wBAUI,a9C00HJ,CACF,C8Cv0HE,gD3CSA,eHm0HF,C8Ct0HI,gGACE,YAAA,CACA,kB9Cy0HN,C8Cr0HE,wBACE,c9Cw0HJ,C8Cr0HE,wBACE,e9Cw0HJ,C8Cp0HE,0IAIE,a9Cu0HJ,C8Cp0HE,iC3CnBA,eAAA,C2CqBE,6BAAA,CACA,wB9Cu0HJ,C8Cr0HI,uCACE,wB9Cu0HN,CK1pHE,+HAEE,UL2pHJ,CKtpHE,+HAEE,yBLupHJ,CKppHE,+DACE,aLspHJ,C8Cx0HE,kC3CjCA,eAAA,C2CmCE,a9C20HJ,C8Cx0HI,wCACE,4B9C00HN,C8Ct0HE,wBACE,aAAA,CACA,c9Cy0HJ,C8Ct0HI,cACE,8BACE,UAAA,CACA,iBAAA,CACA,KAAA,CACA,OAAA,CACA,QAAA,CACA,M9Cw0HN,CACF,C8Cj0HM,+IzC9FJ,yBAAA,CAGE,2CChB6B,CDoB7B,6BL65HJ,C8Cl0HM,wQzC7EF,iDCLmC,CDQnC,qCAAA,CAAA,6BAAA,CACA,iCAAA,CAAA,yBLk5HJ,C8Cl0HM,sDACE,a9Co0HR,C8C7zHM,mIACE,oB9Ck0HR,C8C7zHE,8B3ClGA,eAAA,CErBA,yBAAA,CAGE,2CChB6B,CDoB7B,6BCP0B,CwC0H1B,oB9Ck0HJ,C8C/zHE,wBAEE,cAAA,CACA,eAAA,CACA,apCtG0B,CoCuG1B,iBAAA,CACA,wB9Ci0HJ,C8C9zHE,8BACE,iB9Ci0HJ,C8C9zHE,8BACE,gB9Ci0HJ,C8C7zHE,yBACE,a9Cg0HJ,C8C9zHI,kGAEE,cAAA,CACA,U9Cg0HN,C8C9zHM,kJACE,oB9Ci0HR,C8C7zHI,iDACE,kB9C+zHN,C8C3zHI,yEACE,4B9C6zHN,C8CtzHI,6DACE,UAAA,CACA,a9CwzHN,C8CrzHI,iDACE,iBAAA,CACA,e9CuzHN,C8CrzHM,6DACE,oB9CuzHR,C8CnzHI,iDAOE,iBAAA,CACA,iBAAA,CACA,U9C+yHN,C+C5gIE,a5CcA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,gBAJc,CAKd,wBAJuB,C4CxOzB,qBAAA,CAEA,kBAAA,CACA,YAAA,CAEA,4BAAA,CAEA,iB/CghIJ,CQvzHQ,auCnON,a5CyBE,sBHqgIF,CACF,CQ5zHQ,6BuCnON,a5CuPM,iBAbY,CAcZ,wBH4yHN,CACF,CQl0HQ,auCnON,a5CkPM,cATQ,CAUR,gBHuzHN,CACF,CQx0HQ,6BuCnON,aAaI,YAAA,CAaA,wBAAA,CAGA,oB/CohIJ,CACF,C+CjhIE,2BACE,UAAA,CACA,kB/CohIJ,CQp1HQ,auClMN,2BAKI,yBAAA,CACA,UrCQoB,CqCPpB,e/CqhIJ,CACF,C+ClhIE,oB5CkMI,cAJc,CAKd,mBAJuB,CA/K3B,eAAA,C4CbE,YAAA,CACA,kB/CshIJ,CQn2HQ,6BuCvLN,oB5C2MM,cAbY,CAcZ,wBHm1HN,CACF,CQz2HQ,auCvLN,oB5CsMM,cATQ,CAUR,gBH81HN,CACF,C+C/hIE,+BACE,e/CkiIJ,CQn3HQ,wBwChON,+BAOI,kBAAA,CAKA,sBhD6kIJ,CACF,CgDpkII,yCACE,YhDukIN,CgDnkIE,8BAEE,cAAA,CAGA,ehDmkIJ,CgDhkII,sCACE,YhDkkIN,CQt4HQ,wBwCrMN,8BAcI,UAAA,CACA,aAAA,CACA,cAAA,CAGA,YAAA,CACA,ehD+jIJ,CACF,CiDhnIE,W9CYA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,C8CtOzB,oBAAA,CAMA,eAXoB,CAmBpB,eAAA,CACA,kBAAA,CAKA,mBAAA,CACA,aAAA,CACA,wBAAA,CACA,oBAAA,CACA,wBjD0mIJ,CQp6HQ,ayCjON,W9CuBE,sBHknIF,CACF,CQz6HQ,6ByCjON,W9CqPM,mBAbY,CAcZ,wBHy5HN,CACF,CQ/6HQ,ayCjON,W9CgPM,cATQ,CAUR,gBHo6HN,CACF,CiDjnII,yCArCF,WAsCI,ejDonIJ,CACF,CiDjnIE,iBACE,aAAA,CACA,wBjDonIJ,CiDjnIE,mBACE,aAAA,CACA,wBjDonIJ,CiDjnIE,sBACE,aAAA,CACA,wBjDonIJ,CiDjnIE,iBACE,aAAA,CACA,wBjDonIJ,CiDjnIE,uBACE,aAAA,CACA,wBjDonIJ,CiDjnIE,mBACE,aAAA,CACA,wBjDonIJ,CiDjnIE,mBACE,aAAA,CACA,wBjDonIJ,CiDjnIE,gBACE,aAAA,CACA,wBjDonIJ,CiDjnIE,iBACE,aAAA,CACA,wBjDonIJ,CiDjnIE,kBACE,aAAA,CACA,wBjDonIJ,CkD7sIE,oBACE,gBAAA,CACA,mBAAA,CAEA,+BlD+sIJ,CkD5sIE,6B/CKA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,iBAJc,CAKd,wBAJuB,CAvM3B,aOfkB,CwCRhB,aAAA,CACA,QlDmtIJ,CQ9/HQ,a0C1NN,6B/CgBE,sBH4sIF,CACF,CQngIQ,6B0C1NN,6B/C8OM,cAbY,CAcZ,gBHm/HN,CACF,CQzgIQ,a0C1NN,6B/CyOM,cATQ,CAUR,eARqB,CApMzB,UH0sIF,CACF,CkDjuIE,kC/C6NI,iBAJc,CAKd,wBAJuB,C+CxNzB,iBlD0uIJ,CQ1hIQ,6B0ClNN,kC/CsOM,cAbY,CAcZ,gBH0gIN,CACF,CQhiIQ,a0ClNN,kC/CiOM,cATQ,CAUR,eHqhIN,CACF,CkD7uIE,0BACE,kBAAA,CACA,qBlDgvIJ,CmD/vIE,oBACE,YAAA,CACA,cAAA,CACA,iBAAA,CACA,kBnDkwIJ,CmD/vIE,gEAEE,enDkwIJ,CmD/vIE,qBAGE,SAAA,CACA,UAxBwB,CAyBxB,WAzBwB,CA0BxB,QAAA,CACA,SAAA,CACA,cnDgwIJ,CmD7vIE,qBACE,iBAAA,CAMA,2BAAA,CACA,eAAA,CACA,gBAAA,CACA,cAAA,CAEA,yBnD0vIJ,CmDtvIE,4BACE,UAAA,CACA,qBAAA,CACA,iBAAA,CACA,OAAA,CACA,QAAA,CACA,UAtDkB,CAuDlB,WAvDkB,CAwDlB,gBAAA,CACA,iBAAA,CACA,sBnDyvIJ,CmDlvIE,2BAGE,UAAA,CACA,iBAAA,CAKA,QAAA,CACA,SAAA,CACA,OAAA,CACA,QAAA,CACA,iBAAA,CACA,iBAAA,CACA,SAAA,CACA,uBnD+uIJ,CmD5uIE,oBACE,aAAA,CACA,UAAA,CACA,eAAA,CACA,kBArFsC,CAsFtC,iBnD+uIJ,CmDzuIE,iGACE,enD4uIJ,CmDxuIE,uDACE,gBAAA,CAMA,6BAAA,CACA,kBAAA,CAQA,yBnD+tIJ,CmDnuII,oEAZF,uDAaI,uBnDsuIJ,CACF,CmDhuIE,wDACE,SnDmuIJ,CmD/tIE,iFAEE,kBnDkuIJ,CmD/tIE,6FAEE,UnDkuIJ,CQzoIQ,6B2ClFN,sBAEI,YAAA,CACA,cAAA,CACA,sBnD8tIJ,CmD5tII,0CACE,iBnD8tIN,CACF,CmDttIE,uBhDnJA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CAvM3B,aOfkB,CyCgJhB,UA/JkB,CAgKlB,kBAAA,CACA,iBnD6tIJ,CQjqIQ,a2ClEN,uBhDxIE,sBH+2IF,CACF,CQtqIQ,6B2ClEN,uBhDsFM,mBAbY,CAcZ,wBHspIN,CACF,CQ5qIQ,a2ClEN,uBhDiFM,cATQ,CAUR,gBARqB,CApMzB,UH62IF,CACF,CmD5tIE,2BvChFM,kBAAA,CuCkFJ,gBAR2B,CAS3B,iBALyB,CAMzB,6BnDouIJ,CQ9rIQ,6B2C1CN,2BvCzEQ,kBZqzIR,CACF,CmDvuII,6DACE,YnDyuIN,CmD1tII,gFACE,enDguIN,CmDptII,0CACE,iBnDstIN,CmDntII,0CAGE,gBnDmtIN,CmD3sII,iDACE,QA/Ba,CAgCb,MAAA,CACA,UAtOsB,CAuOtB,WnD6sIN,CmDvsII,gDAIE,QAAA,CACA,QAAA,CACA,gBnDssIN,CmD3rII,yCACE,iBnD6rIN,CmDzrII,gDAEE,gBADc,CAEd,iBnD0rIN,CmDvrII,4CACE,UA1QsB,CA2QtB,iBnDyrIN,CmDhrII,+GAGE,8BAAA,CACA,kBAAA,CACA,6BnDgrIN,CmDxqII,sGAME,4CnDqqIN,CmDzqIM,oEAFF,sGAGI,uBnD4qIN,CACF,CmD/pII,qCACE,+GACE,enDiqIN,CmD9pII,sGACE,yBnDgqIN,CACF,CoD79IE,cjDUA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CiDpOzB,qBAAA,CAMA,gBAAA,CACA,cAAA,CACA,aAAA,CACA,WAAA,CACA,wBAAA,CAIA,aAAA,CACA,qBpD49IJ,CQ/wIQ,a4C/NN,cjDqBE,sBH69IF,CACF,CQpxIQ,6B4C/NN,cjDmPM,mBAbY,CAcZ,gBHowIN,CACF,CQ1xIQ,a4C/NN,cjD8OM,cATQ,CAUR,gBH+wIN,CACF,CoD3+II,oBACE,sBAAA,CAEA,gBAAA,CAIA,0BpDy+IN,CoDt+II,uBACE,UAAA,CACA,aAAA,CACA,kBpDw+IN,CoDp+IE,wFAGE,UAAA,CACA,wBpDu+IJ,CoDp+IE,qBACE,oBpDu+IJ,CoDr+II,2BACE,oBpDu+IN,CqDnhJE,0BACE,+BAAA,CACA,wBrDshJJ,CqDnhJE,qCACE,YAAA,CACA,qBAAA,CACA,iBrDshJJ,CQn0IQ,6B6CtNN,qCAMI,kBAAA,CACA,crDuhJJ,CACF,CqDlhJE,wEAEE,iBAAA,CACA,aAAA,CACA,sBrDqhJJ,CQh1IQ,6B6CzMN,wEAOI,YAAA,CACA,eAAA,CACA,crDuhJJ,CqDrhJI,0GzCoEE,iBZq9IN,CACF,CQ51IQ,uD6C9LF,0GzC2EI,iBZo9IR,CACF,CQl2IQ,6B6CxLN,wCAII,iBAAA,CACA,iBAAA,CACA,qBrD2hJJ,CACF,CQ12IQ,6B6CxLN,wCAUI,mBAAA,CACA,uBrD4hJJ,CACF,CqDzhJE,gClD5CA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CEaA,yBAAA,CAGE,2CChB6B,CDoB7B,6BLwjJJ,CQz3IQ,a6CzKN,gClDjCE,sBHukJF,CACF,CKplJE,sCAqCE,iDCLmC,CDQnC,qCAAA,CAAA,6BAAA,CACA,iCAAA,CAAA,yBLgjJJ,CKrlJE,sCIFA,6BAAA,CAEA,qBCiDmB,CDhDnB,oCACE,CAIF,oBAAA,CAIA,kCAAA,CAAA,0BTmlJF,CKhyIE,yDACE,oBLkyIJ,CKr0IE,6EACE,aL00IJ,CKv0IE,sCACE,aLy0IJ,CKh0IE,6EACE,aLq0IJ,CqDjkJI,wDAGE,arDikJN,CqDzjJE,wClD5DA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CA4CA,eAAA,CAkLI,cAJc,CAKd,gBH65IN,CQz6IQ,a6CzJN,wClDjDE,sBHunJF,CACF,CQ96IQ,6B6CzJN,wClD6KM,mBAbY,CAcZ,wBH85IN,CACF,CQp7IQ,a6CzJN,wClDwKM,cATQ,CAUR,gBHy6IN,CACF,CK/7IE,6JF1LA,aH6nJF,CQ97IQ,aHLN,6JFvLE,UH8nJF,CACF,CKj8IE,8EAEI,wBLk8IN,CK97IE,6JFvMA,aHwoJF,CQz8IQ,aHQN,6JFpME,UHyoJF,CACF,CqDzlJE,kClD1EA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CA4CA,eAAA,CAkLI,cAJc,CAKd,gBAJuB,CkDjJzB,mBAAA,CACA,aAAA,CACA,SAAA,CACA,QAAA,CACA,aAxFqC,CAyFrC,eAAA,CACA,oBAAA,CACA,cAAA,CACA,kBrDimJJ,CQh+IQ,a6C3IN,kClD/DE,sBH8qJF,CACF,CQr+IQ,6B6C3IN,kClD+JM,mBAbY,CAcZ,wBHq9IN,CACF,CQ3+IQ,a6C3IN,kClD0JM,cATQ,CAUR,gBHg+IN,CACF,CqDhnJI,wC5CrFF,6BAAA,CACA,aC4DwB,CD3DxB,qBCiDmB,CDhDnB,oCACE,CAIF,oBAAA,CAIA,kCAAA,CAAA,0BTisJF,CqDpnJI,wCfnEF,oBeoEwE,CflExE,OAAA,CACA,QAAA,CAsBE,8CAAA,CAAA,sCAAA,CAEA,wBAAA,CAAA,kBAAA,CAAA,yBAAA,CACA,wBAAA,CeyCE,UAAA,CACA,erD6nJN,CqD1nJI,4DfzEF,oBe0EsE,CfxEtE,OAAA,CACA,QAAA,CAYE,iDAAA,CAAA,yCAAA,CAEA,wBAAA,CAAA,kBAAA,CAAA,yBAAA,CACA,2BtC2rJJ,CqD/nJI,0CACE,YrDioJN,CqD5nJI,6GACE,YrD8nJN,CqD1nJE,gClDhHA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CkD1GzB,eAAA,CACA,SAAA,CACA,erDkoJJ,CQliJQ,a6CrGN,gClDrGE,sBHgvJF,CACF,CQviJQ,6B6CrGN,gClDyHM,mBAbY,CAcZ,wBHuhJN,CACF,CQ7iJQ,a6CrGN,gClDoHM,cATQ,CAUR,gBHkiJN,CACF,CQnjJQ,6B6CrGN,gCAcI,YAAA,CACA,cAAA,CACA,erD8oJJ,CACF,CqDtoJM,0HAzBJ,gCA0BM,arDyoJN,CACF,CqDjoJE,2CACE,mBrDooJJ,CsDtyJE,iBnDcA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CEaA,yBAAA,CAGE,2CChB6B,CDoB7B,6BCP0B,CHiNxB,iBAJc,CAKd,wBAJuB,CmDpOzB,aAAA,CACA,iBtD2yJJ,CuDxuJE,0CA5DA,2BAAA,CAEA,mBAAA,CACA,oBAAA,CAGA,kBAAA,CACA,mBAAA,CAEA,yBAAA,CAGA,4BAAA,CACA,sCAAA,CAAA,8BAAA,CAEA,kBAAA,CAKA,4BAAA,CAKA,wBAAA,CAAA,oBAAA,CAAA,gBvDwxJF,CQ7lJQ,a8CnON,iBnDyBE,sBH2yJF,CACF,CKvmJE,+CF1LA,aHoyJF,CQrmJQ,aHLN,+CFvLE,UHqyJF,CACF,CKxmJE,uBAEI,wBLymJN,CKrmJE,+CFvMA,aH+yJF,CQhnJQ,aHQN,+CFpME,UHgzJF,CACF,CQrnJQ,6B8CnON,iBnDuPM,cAbY,CAcZ,gBHqmJN,CACF,CQ3nJQ,a8CnON,iBnDkPM,cATQ,CAUR,eHgnJN,CACF,CsDz1JI,mCAXF,iBAiBI,+DAAA,CACA,6DtDu1JJ,CACF,CsDr1JI,uBACE,sBAAA,CACA,gBAAA,CACA,qBtDu1JN,CsD50JI,uCAUE,YtDs0JN,CwDn3JE,oBrDcA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CAvM3B,aOfkB,CEoFZ,eZsxJR,CQ5pJQ,agDnON,oBrDyBE,sBH02JF,CACF,CQjqJQ,6BgDnON,oBrDuPM,mBAbY,CAcZ,wBHipJN,CACF,CQvqJQ,agDnON,oBrDkPM,cATQ,CAUR,gBARqB,CApMzB,UHw2JF,CACF,CQ7qJQ,6BgDnON,oBAII,aAAA,CACA,UAAA,CACA,kBAAA,CACA,wBAAA,C5CyGI,kBZ4yJR,CACF,CwDh5JE,yBACE,+BxDw5JJ,CQnsJQ,6BgDtNN,yBAII,kBxDy5JJ,CACF,CQxsJQ,6BgDtNN,yBAOI,iBxD25JJ,CACF,CwDv5JE,+EACE,exD05JJ,CQjtJQ,6BgDlMF,2CACE,UAAA,CACA,kBAAA,CACA,SxDu5JN,CACF,CwDn5JE,iFAGE,QxDs5JJ,CQ/tJQ,6BgD1LN,iFAMI,kBAAA,CACA,gBAAA,CACA,kBAAA,CACA,mBxDy5JJ,CACF,CwDt5JE,6BACE,kBxDy5JJ,CQ7uJQ,6BgD7KN,6BAGI,SAAA,CACA,gBxD25JJ,CACF,CwDx5JE,oDAGE,oBAAA,CACA,wBxD05JJ,CwDv5JE,yBACE,iBAAA,CrDVF,eHq6JF,CQ9vJQ,6BgD9JN,yBAII,SxD45JJ,CACF,CQnwJQ,6BgDtJN,2BAEI,kBxD45JJ,CACF,CwDz5JE,6BACE,kBxD45JJ,CwDz5JE,uCACE,exD45JJ,CwDz5JE,kCACE,UAAA,CACA,QAAA,CACA,SxD45JJ,CwDz5JE,uCACE,oBxD45JJ,CQ3xJQ,6BgD7HJ,uCACE,iBAAA,CACA,kBAAA,CACA,8BxD45JJ,CwDz5JE,kDACE,cAAA,CACA,eAAA,CACA,QxD25JJ,CACF,CQxyJQ,6BgD/GJ,uCACE,gBAAA,CACA,iBxD05JJ,CwDv5JE,yDACE,6BxDy5JJ,CwDt5JE,mDACE,aAAA,CACA,cAAA,CACA,QxDw5JJ,CACF,CwDh5JE,yDACE,iBxDk5JJ,CwD74JI,wDACE,QxDg5JN,CQ7zJQ,6BgD9EF,8KAGE,mBxD84JN,CACF,CwDz4JE,oCACE,QxD44JJ,CQx0JQ,6BgDhEF,6LAGE,mBxD24JN,CACF,CwDt4JE,oB5CnEM,kBAAA,C4CqEJ,wBxDy4JJ,CQp1JQ,6BgDvDN,oB5C5DQ,kBZ28JR,CACF,CwD34JE,mCACE,YAAA,CAIA,mCAAA,CACA,wBxD24JJ,CQ/1JQ,6BgDlDN,mCASI,YAAA,CACA,6BAAA,CACA,gBAAA,CACA,iBxD44JJ,CACF,CwDz4JE,2BrDnLA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CA4CA,eAAA,CAkLI,cAJc,CAKd,gBAJuB,CAvM3B,aOfkB,C8C+KhB,sBxDi5JJ,CQl3JQ,agDlCN,2BrDxKE,sBHgkKF,CACF,CQv3JQ,6BgDlCN,2BrDsDM,mBAbY,CAcZ,wBHu2JN,CACF,CQ73JQ,agDlCN,2BrDiDM,cATQ,CAUR,gBARqB,CApMzB,UH8jKF,CACF,CQn4JQ,6BgDlCN,2BAMI,iBxDw6JJ,CACF,CwDr6JE,6BrDmCI,cAJc,CAKd,gBAJuB,CA/K3B,eAAA,CqDkJE,YAAA,CACA,cAAA,CACA,YAAA,CACA,YAAA,CACA,SAAA,CACA,exDy6JJ,CQz5JQ,6BgDxBN,6BrD4CM,mBAbY,CAcZ,wBHy4JN,CACF,CQ/5JQ,agDxBN,6BrDuCM,cATQ,CAUR,gBHo5JN,CACF,CQr6JQ,6BgDxBN,6BAWI,qBAAA,CACA,gBxDs7JJ,CACF,CwDn7JE,4BACE,cAAA,CACA,iBAAA,CACA,kBAAA,CACA,8BxDs7JJ,CQl7JQ,6BgDRN,4BAOI,cxDu7JJ,CACF,CwD56JI,sEAnBF,4BAoBI,iBxD+6JJ,CACF,CwD56JE,uCACE,QAAA,CACA,eAAA,CACA,iBxD+6JJ,CQl8JQ,6BgDgBN,uCAMI,iBxDg7JJ,CACF,CwD76JI,sEAVF,uCAWI,exDg7JJ,CACF,CwD76JE,6BACE,mBxDg7JJ,CQh9JQ,6BgD+BN,6BAII,iBxDi7JJ,CACF,CwD/6JI,iDACE,exDi7JN,CwD96JI,mEACE,eAAA,CACA,kBxDg7JN,CyD/rKE,atDcA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CAvM3B,aOfkB,C+ClBhB,UAAA,C7CsGI,kBAAA,C6CnGJ,gBAAA,CACA,wBzDssKJ,CQ1+JQ,aiDnON,atDyBE,sBHwrKF,CACF,CQ/+JQ,6BiDnON,atDuPM,mBAbY,CAcZ,wBH+9JN,CACF,CQr/JQ,aiDnON,atDkPM,cATQ,CAUR,gBARqB,CApMzB,UHsrKF,CACF,CQ3/JQ,6BiDnON,a7CgHQ,kBZunKR,CACF,CyDptKE,qBtDwCA,eHgrKF,CyDptKE,wCAEE,wBAAA,CACA,+BAAA,CACA,eAAA,CACA,kBzDutKJ,CyDptKE,4BtD6CA,iCH2qKF,CyDptKE,0DAEE,gBzDutKJ,CyDptKE,8DAEE,ezDutKJ,CyDptKE,sBtDcA,eAAA,CsDXE,qBAAA,CACA,ezDstKJ,CyDltKE,4EAGE,kBzDqtKJ,CyDltKE,0BtDkLI,cAJc,CAKd,mBHoiKN,CQhjKQ,6BiDvKN,0BtD2LM,cAbY,CAcZ,wBHgiKN,CACF,CQtjKQ,aiDvKN,0BtDsLM,cATQ,CAUR,gBH2iKN,CACF,CyD/tKE,yBtD8KI,gBAJc,CAKd,wBHqjKN,CQjkKQ,6BiDnKN,yBtDuLM,iBAbY,CAcZ,wBHijKN,CACF,CQvkKQ,aiDnKN,yBtDkLM,cATQ,CAUR,gBH4jKN,CACF,CyD5uKE,yBtD0KI,kBAJc,CAKd,wBHskKN,CQllKQ,6BiD/JN,yBtDmLM,gBAbY,CAcZ,gBHkkKN,CACF,CQxlKQ,aiD/JN,yBtD8KM,cATQ,CAUR,gBH6kKN,CACF,C0Dj0KE,Y9CyGM,cAAA,CAAA,kBAAA,CT3FN,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBH6lKN,CQzmKQ,6BkDnON,Y9CgHQ,kBZguKR,CACF,CQ9mKQ,akDnON,YvDyBE,sBH4zKF,CACF,CQnnKQ,6BkDnON,YvDuPM,mBAbY,CAcZ,wBHmmKN,CACF,CQznKQ,akDnON,YvDkPM,cATQ,CAUR,gBH8mKN,CACF,C0D51KE,mBvDwOI,cAJc,CAKd,gBAJuB,CAzL3B,eAAA,CAdA,aOfkB,CgDThB,kB1D81KJ,CQvoKQ,6BkD7NN,mBvDiPM,mBAbY,CAcZ,wBHunKN,CACF,CQ7oKQ,akD7NN,mBvD4OM,cATQ,CAUR,gBARqB,CApMzB,UH80KF,CACF,C0Dv2KE,kBAEE,SAAA,CACA,eAAA,C9CuFI,eZyxKR,CQ/pKQ,6BkDpNN,kB9CiGQ,kBZsxKR,CACF,C0Dj3KE,uBACE,gB1Do3KJ,C0Dl3KI,8BvDWF,aOfkB,CgDMd,WAAA,CACA,iBAAA,CACA,iB1Do3KN,CQ9qKQ,akD1MJ,8BvDcA,UH82KF,CACF,C0Dr3KE,iBvDnBA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CEaA,yBAAA,CAGE,2CChB6B,CDoB7B,6BCP0B,CoDQ1B,oBAAA,CACA,kB1D23KJ,CQ9rKQ,akDlMN,iBvDRE,sBH44KF,CACF,CKz5KE,uBAqCE,iDCLmC,CDQnC,qCAAA,CAAA,6BAAA,CACA,iCAAA,CAAA,yBLq3KJ,CK15KE,uBIFA,6BAAA,CAEA,qBCiDmB,CDhDnB,oCACE,CAIF,oBAAA,CAIA,kCAAA,CAAA,0BTw5KF,CKz2KE,sBACE,aL22KJ,CKx2KE,yBACE,aL02KJ,CKv2KE,uBACE,aLy2KJ,CKh2KE,+CACE,aLq2KJ,C0Dz5KE,mB9CgEM,kBZ61KR,CQnuKQ,6BkD1LN,mB9CuEQ,kBZ01KR,C0D15KI,4CAEE,eAAA,CACA,+B1D85KN,CiBz8KA,kDACE,UAAA,CACA,aAAA,CACA,UjB28KF,C0Dh6KI,6CACE,Y1Dk6KN,C0D/5KI,iDACE,iBAAA,CAEA,gBAAA,CACA,eAAA,CACA,aAAA,CACA,iBAAA,CAEA,UAAA,CACA,wBAAA,CACA,iB1D+5KN,C0D75KM,wDACE,Y1D+5KR,C0D35KI,2DAGE,iBAAA,CAEA,eAAA,CAGA,kBAAA,CAIA,sBAAA,CAEA,wBAAA,CACA,eAAA,CAEA,qB1Ds5KN,C0Dp5KM,4EACE,oB1Ds5KR,C0Dl5KI,2CAGE,e1Dk5KN,CK1xKA,mGF1LA,aHu9KA,CAhDF,CQxuKQ,uCHLN,mGFvLE,UHy9KF,CACF,CQ9xKQ,6BHEN,iDAEI,wBL8xKJ,CK1xKA,mGFvMA,aHo+KA,CACF,CQtyKQ,uCHQN,mGFpME,UHs+KF,CACF,CQ3yKQ,6BkD3HA,iDACE,UAAA,CACA,iBAAA,CACA,KAAA,CACA,OAAA,CACA,QAAA,CACA,M1Dy6KR,C0Dr6KI,6C9CTE,eAAA,C8CWA,iBAAA,CACA,wBAAA,CACA,Y1Du6KN,C0Dr6KM,yDACE,e1Du6KR,C0Dn6KI,qDACE,Y1Dq6KN,CACF,C2DhiLE,iBxDUA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CwDrOzB,YAAA,C/CmGI,kBAAA,C+CjGJ,SAAA,CACA,oB3DwiLJ,CQ90KQ,amD/NN,iBxDqBE,sBH4hLF,CACF,CQn1KQ,6BmD/NN,iBxDmPM,mBAbY,CAcZ,wBHm0KN,CACF,CQz1KQ,amD/NN,iBxD8OM,cATQ,CAUR,gBH80KN,CACF,CQ/1KQ,6BmD/NN,iB/C4GQ,kBZs9KR,CACF,C2DpjLE,uBACE,aAAA,CACA,iBAAA,CACA,UAAA,CACA,eAAA,CACA,gBAAA,CACA,mBAAA,CACA,+B3DujLJ,C2DpjLE,mCACE,4B3DujLJ,C2DjjLE,wCACE,kB3DojLJ,C2DjjLE,gCACE,kBAAA,CACA,kBAAA,CxDNF,aH2jLF,CQ53KQ,amD3LN,gCxDDE,UH4jLF,CACF,C2DtjLE,yBACE,kBAAA,CACA,iBAAA,CACA,gBAAA,CACA,kBAAA,CxDdF,aHwkLF,CQz4KQ,amDrLN,yBxDPE,UHykLF,CACF,C2D3jLE,2CACE,a3D8jLJ,C2DxjLE,6BACE,UAAA,CACA,aAAA,CACA,iBAAA,CACA,KAAA,CACA,OAAA,CACA,QAAA,CACA,M3D2jLJ,C2DxjLE,uBACE,cAAA,CACA,a3D2jLJ,C4DpoLE,oBzDcA,0CCFkB,CDGlB,kCAAA,CACA,iCAAA,CAkCA,eAAA,CA4LI,cAJc,CAKd,gBAJuB,CSlIrB,kBAAA,CT7CN,eAAA,CyDxDE,iBAAA,CACA,c5D4oLJ,CQ96KQ,aoDnON,oBzDyBE,sBH4nLF,CACF,CQn7KQ,6BoDnON,oBzDuPM,mBAbY,CAcZ,wBHm6KN,CACF,CQz7KQ,aoDnON,oBzDkPM,cATQ,CAUR,gBH86KN,CACF,CQ/7KQ,6BoDnON,oBhDgHQ,kBZsjLR,CACF,C4D/pLE,0BACE,qBAAA,CAEA,oBAAA,CAEA,iBAAA,CACA,MAAA,CAEA,cAAA,CACA,eAAA,CACA,eAAA,CAQA,wBAAA,CACA,iBAAA,CAEA,UlDS2B,CkDR3B,kBlDTgB,CkDWhB,cAAA,CACA,gBAAA,CAEA,iBAAA,CAIA,wBAAA,CAAA,oBAAA,CAAA,gBAAA,CAIA,wB5D+oLJ,CQv9KQ,6BoD3NN,0BAaI,e5DyqLJ,CACF,C4DlpLI,yCArCF,0BAsCI,uBAAA,CACA,gBAAA,CACA,sB5DqpLJ,CACF,C4DlpLE,0BzDhBA,aOfkB,CkDiChB,aAAA,CACA,iBAAA,CAGA,mB5DmpLJ,CQ1+KQ,aoD/KN,0BzDbE,UH0qLF,CACF,CiB1sLE,sBACE,UAAA,CACA,aAAA,CACA,UjB6sLJ,C6DxtLE,uBNeA,2BAAA,CAEA,mBAAA,CACA,oBAAA,CAGA,kBAAA,CACA,mBAAA,CAEA,yBAAA,CAGA,4BAAA,CACA,sCAAA,CAAA,8BAAA,CAEA,kBAAA,CAKA,4BAAA,CAKA,wBAAA,CAAA,oBAAA,CAAA,gBvD8rLF,CuD1qLE,2DACE,WvD+qLJ,CuDjqLE,0DA5DA,2BAAA,CAEA,mBAAA,CACA,oBAAA,CAGA,kBAAA,CACA,mBAAA,CAEA,yBAAA,CAGA,4BAAA,CACA,sCAAA,CAAA,8BAAA,CAEA,kBAAA,CAKA,4BAAA,CAKA,wBAAA,CAAA,oBAAA,CAAA,gBvDktLF,C8DzvLE,yBACE,wB9D4vLJ,C8DzvLE,+BACE,8B9D4vLJ,C8DzvLE,wBACE,uB9D4vLJ,C8DzvLE,uBACE,sB9D4vLJ,CQviLQ,asDjNJ,6BACE,sB9D4vLJ,CACF,C+D5uLI,mBnDmEI,kBZ4qLR,C+DzuLM,uBnD+DE,sBZ8qLR,C+D7uLM,yBnD+DE,wBZkrLR,C+DjvLM,0BnD+DE,yBZsrLR,C+DrvLM,wBnD+DE,uBZ0rLR,C+D/vLI,mBnDmEI,oBZgsLR,C+D7vLM,uBnD+DE,wBZksLR,C+DjwLM,yBnD+DE,0BZssLR,C+DrwLM,0BnD+DE,2BZ0sLR,C+DzwLM,wBnD+DE,yBZ8sLR,C+DnxLI,mBnDmEI,qBZotLR,C+DjxLM,uBnD+DE,yBZstLR,C+DrxLM,yBnD+DE,2BZ0tLR,C+DzxLM,0BnD+DE,4BZ8tLR,C+D7xLM,wBnD+DE,0BZkuLR,C+DvyLI,mBnDmEI,qBZwuLR,C+DryLM,uBnD+DE,yBZ0uLR,C+DzyLM,yBnD+DE,2BZ8uLR,C+D7yLM,0BnD+DE,4BZkvLR,C+DjzLM,wBnD+DE,0BZsvLR,C+D3zLI,mBnDmEI,qBZ4vLR,CQhoLQ,6BuD/LJ,mBnD0EM,qBZyvLR,CACF,C+D9zLM,uBnD+DE,yBZmwLR,CQzoLQ,6BuDzLF,uBnDsEI,yBZgwLR,CACF,C+Dv0LM,yBnD+DE,2BZ4wLR,CQlpLQ,6BuDzLF,yBnDsEI,2BZywLR,CACF,C+Dh1LM,0BnD+DE,4BZqxLR,CQ3pLQ,6BuDzLF,0BnDsEI,4BZkxLR,CACF,C+Dz1LM,wBnD+DE,0BZ8xLR,CQpqLQ,6BuDzLF,wBnDsEI,0BZ2xLR,CACF,C+Dx2LI,mBnDmEI,qBZyyLR,CQ7qLQ,6BuD/LJ,mBnD0EM,qBZsyLR,CACF,C+D32LM,uBnD+DE,yBZgzLR,CQtrLQ,6BuDzLF,uBnDsEI,yBZ6yLR,CACF,C+Dp3LM,yBnD+DE,2BZyzLR,CQ/rLQ,6BuDzLF,yBnDsEI,2BZszLR,CACF,C+D73LM,0BnD+DE,4BZk0LR,CQxsLQ,6BuDzLF,0BnDsEI,4BZ+zLR,CACF,C+Dt4LM,wBnD+DE,0BZ20LR,CQjtLQ,6BuDzLF,wBnDsEI,0BZw0LR,CACF,C+Dr5LI,mBnDmEI,qBZs1LR,CQ1tLQ,6BuD/LJ,mBnD0EM,qBZm1LR,CACF,C+Dx5LM,uBnD+DE,yBZ61LR,CQnuLQ,6BuDzLF,uBnDsEI,yBZ01LR,CACF,C+Dj6LM,yBnD+DE,2BZs2LR,CQ5uLQ,6BuDzLF,yBnDsEI,2BZm2LR,CACF,C+D16LM,0BnD+DE,4BZ+2LR,CQrvLQ,6BuDzLF,0BnDsEI,4BZ42LR,CACF,C+Dn7LM,wBnD+DE,0BZw3LR,CQ9vLQ,6BuDzLF,wBnDsEI,0BZq3LR,CACF,C+Dl8LI,mBnDmEI,qBZm4LR,CQvwLQ,6BuD/LJ,mBnD0EM,qBZg4LR,CACF,C+Dr8LM,uBnD+DE,yBZ04LR,CQhxLQ,6BuDzLF,uBnDsEI,yBZu4LR,CACF,C+D98LM,yBnD+DE,2BZm5LR,CQzxLQ,6BuDzLF,yBnDsEI,2BZg5LR,CACF,C+Dv9LM,0BnD+DE,4BZ45LR,CQlyLQ,6BuDzLF,0BnDsEI,4BZy5LR,CACF,C+Dh+LM,wBnD+DE,0BZq6LR,CQ3yLQ,6BuDzLF,wBnDsEI,0BZk6LR,CACF,C+D/+LI,mBnDmEI,qBZg7LR,CQpzLQ,6BuD/LJ,mBnD0EM,qBZ66LR,CACF,C+Dl/LM,uBnD+DE,yBZu7LR,CQ7zLQ,6BuDzLF,uBnDsEI,yBZo7LR,CACF,C+D3/LM,yBnD+DE,2BZg8LR,CQt0LQ,6BuDzLF,yBnDsEI,2BZ67LR,CACF,C+DpgMM,0BnD+DE,4BZy8LR,CQ/0LQ,6BuDzLF,0BnDsEI,4BZs8LR,CACF,C+D7gMM,wBnD+DE,0BZk9LR,CQx1LQ,6BuDzLF,wBnDsEI,0BZ+8LR,CACF,C+D5hMI,mBnDmEI,qBZ69LR,CQj2LQ,6BuD/LJ,mBnD0EM,qBZ09LR,CACF,C+D/hMM,uBnD+DE,yBZo+LR,CQ12LQ,6BuDzLF,uBnDsEI,yBZi+LR,CACF,C+DxiMM,yBnD+DE,2BZ6+LR,CQn3LQ,6BuDzLF,yBnDsEI,2BZ0+LR,CACF,C+DjjMM,0BnD+DE,4BZs/LR,CQ53LQ,6BuDzLF,0BnDsEI,4BZm/LR,CACF,C+D1jMM,wBnD+DE,0BZ+/LR,CQr4LQ,6BuDzLF,wBnDsEI,0BZ4/LR,CACF,C+DzkMI,oBnDmEI,mBZ0gMR,C+DvkMM,wBnD+DE,uBZ4gMR,C+D3kMM,0BnD+DE,yBZghMR,C+D/kMM,2BnD+DE,0BZohMR,C+DnlMM,yBnD+DE,wBZwhMR,C+D7lMI,oBnDmEI,qBZ8hMR,C+D3lMM,wBnD+DE,yBZgiMR,C+D/lMM,0BnD+DE,2BZoiMR,C+DnmMM,2BnD+DE,4BZwiMR,C+DvmMM,yBnD+DE,0BZ4iMR,C+DjnMI,oBnDmEI,sBZkjMR,C+D/mMM,wBnD+DE,0BZojMR,C+DnnMM,0BnD+DE,4BZwjMR,C+DvnMM,2BnD+DE,6BZ4jMR,C+D3nMM,yBnD+DE,2BZgkMR,C+DroMI,oBnDmEI,sBZskMR,C+DnoMM,wBnD+DE,0BZwkMR,C+DvoMM,0BnD+DE,4BZ4kMR,C+D3oMM,2BnD+DE,6BZglMR,C+D/oMM,yBnD+DE,2BZolMR,C+DzpMI,oBnDmEI,sBZ0lMR,CQ99LQ,6BuD/LJ,oBnD0EM,sBZulMR,CACF,C+D5pMM,wBnD+DE,0BZimMR,CQv+LQ,6BuDzLF,wBnDsEI,0BZ8lMR,CACF,C+DrqMM,0BnD+DE,4BZ0mMR,CQh/LQ,6BuDzLF,0BnDsEI,4BZumMR,CACF,C+D9qMM,2BnD+DE,6BZmnMR,CQz/LQ,6BuDzLF,2BnDsEI,6BZgnMR,CACF,C+DvrMM,yBnD+DE,2BZ4nMR,CQlgMQ,6BuDzLF,yBnDsEI,2BZynMR,CACF,C+DtsMI,oBnDmEI,sBZuoMR,CQ3gMQ,6BuD/LJ,oBnD0EM,sBZooMR,CACF,C+DzsMM,wBnD+DE,0BZ8oMR,CQphMQ,6BuDzLF,wBnDsEI,0BZ2oMR,CACF,C+DltMM,0BnD+DE,4BZupMR,CQ7hMQ,6BuDzLF,0BnDsEI,4BZopMR,CACF,C+D3tMM,2BnD+DE,6BZgqMR,CQtiMQ,6BuDzLF,2BnDsEI,6BZ6pMR,CACF,C+DpuMM,yBnD+DE,2BZyqMR,CQ/iMQ,6BuDzLF,yBnDsEI,2BZsqMR,CACF,C+DnvMI,oBnDmEI,sBZorMR,CQxjMQ,6BuD/LJ,oBnD0EM,sBZirMR,CACF,C+DtvMM,wBnD+DE,0BZ2rMR,CQjkMQ,6BuDzLF,wBnDsEI,0BZwrMR,CACF,C+D/vMM,0BnD+DE,4BZosMR,CQ1kMQ,6BuDzLF,0BnDsEI,4BZisMR,CACF,C+DxwMM,2BnD+DE,6BZ6sMR,CQnlMQ,6BuDzLF,2BnDsEI,6BZ0sMR,CACF,C+DjxMM,yBnD+DE,2BZstMR,CQ5lMQ,6BuDzLF,yBnDsEI,2BZmtMR,CACF,C+DhyMI,oBnDmEI,sBZiuMR,CQrmMQ,6BuD/LJ,oBnD0EM,sBZ8tMR,CACF,C+DnyMM,wBnD+DE,0BZwuMR,CQ9mMQ,6BuDzLF,wBnDsEI,0BZquMR,CACF,C+D5yMM,0BnD+DE,4BZivMR,CQvnMQ,6BuDzLF,0BnDsEI,4BZ8uMR,CACF,C+DrzMM,2BnD+DE,6BZ0vMR,CQhoMQ,6BuDzLF,2BnDsEI,6BZuvMR,CACF,C+D9zMM,yBnD+DE,2BZmwMR,CQzoMQ,6BuDzLF,yBnDsEI,2BZgwMR,CACF,C+D70MI,oBnDmEI,sBZ8wMR,CQlpMQ,6BuD/LJ,oBnD0EM,sBZ2wMR,CACF,C+Dh1MM,wBnD+DE,0BZqxMR,CQ3pMQ,6BuDzLF,wBnDsEI,0BZkxMR,CACF,C+Dz1MM,0BnD+DE,4BZ8xMR,CQpqMQ,6BuDzLF,0BnDsEI,4BZ2xMR,CACF,C+Dl2MM,2BnD+DE,6BZuyMR,CQ7qMQ,6BuDzLF,2BnDsEI,6BZoyMR,CACF,C+D32MM,yBnD+DE,2BZgzMR,CQtrMQ,6BuDzLF,yBnDsEI,2BZ6yMR,CACF,C+D13MI,oBnDmEI,sBZ2zMR,CQ/rMQ,6BuD/LJ,oBnD0EM,sBZwzMR,CACF,C+D73MM,wBnD+DE,0BZk0MR,CQxsMQ,6BuDzLF,wBnDsEI,0BZ+zMR,CACF,C+Dt4MM,0BnD+DE,4BZ20MR,CQjtMQ,6BuDzLF,0BnDsEI,4BZw0MR,CACF,C+D/4MM,2BnD+DE,6BZo1MR,CQ1tMQ,6BuDzLF,2BnDsEI,6BZi1MR,CACF,C+Dx5MM,yBnD+DE,2BZ61MR,CQnuMQ,6BuDzLF,yBnDsEI,2BZ01MR,CACF,C+D34MI,0BACE,kB/D84MN,C+D14MM,8BACE,sB/D64MR,C+D94MM,gCACE,wB/Di5MR,C+Dl5MM,iCACE,yB/Dq5MR,C+Dt5MM,+BACE,uB/Dy5MR,C+D/5MI,0BACE,oB/Dk6MN,C+D95MM,8BACE,wB/Di6MR,C+Dl6MM,gCACE,0B/Dq6MR,C+Dt6MM,iCACE,2B/Dy6MR,C+D16MM,+BACE,yB/D66MR,C+Dn7MI,0BACE,qB/Ds7MN,C+Dl7MM,8BACE,yB/Dq7MR,C+Dt7MM,gCACE,2B/Dy7MR,C+D17MM,iCACE,4B/D67MR,C+D97MM,+BACE,0B/Di8MR,C+Dv8MI,0BACE,qB/D08MN,C+Dt8MM,8BACE,yB/Dy8MR,C+D18MM,gCACE,2B/D68MR,C+D98MM,iCACE,4B/Di9MR,C+Dl9MM,+BACE,0B/Dq9MR,C+D39MI,0BACE,qB/D89MN,C+D19MM,8BACE,yB/D69MR,C+D99MM,gCACE,2B/Di+MR,C+Dl+MM,iCACE,4B/Dq+MR,C+Dt+MM,+BACE,0B/Dy+MR,C+D/+MI,0BACE,qB/Dk/MN,C+D9+MM,8BACE,yB/Di/MR,C+Dl/MM,gCACE,2B/Dq/MR,C+Dt/MM,iCACE,4B/Dy/MR,C+D1/MM,+BACE,0B/D6/MR,C+DngNI,0BACE,qB/DsgNN,C+DlgNM,8BACE,yB/DqgNR,C+DtgNM,gCACE,2B/DygNR,C+D1gNM,iCACE,4B/D6gNR,C+D9gNM,+BACE,0B/DihNR,C+DvhNI,0BACE,qB/D0hNN,C+DthNM,8BACE,yB/DyhNR,C+D1hNM,gCACE,2B/D6hNR,C+D9hNM,iCACE,4B/DiiNR,C+DliNM,+BACE,0B/DqiNR,C+D3iNI,0BACE,qB/D8iNN,C+D1iNM,8BACE,yB/D6iNR,C+D9iNM,gCACE,2B/DijNR,C+DljNM,iCACE,4B/DqjNR,C+DtjNM,+BACE,0B/DyjNR,C+D/jNI,0BACE,qB/DkkNN,C+D9jNM,8BACE,yB/DikNR,C+DlkNM,gCACE,2B/DqkNR,C+DtkNM,iCACE,4B/DykNR,C+D1kNM,+BACE,0B/D6kNR,C+DnlNI,2BACE,mB/DslNN,C+DllNM,+BACE,uB/DqlNR,C+DtlNM,iCACE,yB/DylNR,C+D1lNM,kCACE,0B/D6lNR,C+D9lNM,gCACE,wB/DimNR,C+DvmNI,2BACE,qB/D0mNN,C+DtmNM,+BACE,yB/DymNR,C+D1mNM,iCACE,2B/D6mNR,C+D9mNM,kCACE,4B/DinNR,C+DlnNM,gCACE,0B/DqnNR,C+D3nNI,2BACE,sB/D8nNN,C+D1nNM,+BACE,0B/D6nNR,C+D9nNM,iCACE,4B/DioNR,C+DloNM,kCACE,6B/DqoNR,C+DtoNM,gCACE,2B/DyoNR,C+D/oNI,2BACE,sB/DkpNN,C+D9oNM,+BACE,0B/DipNR,C+DlpNM,iCACE,4B/DqpNR,C+DtpNM,kCACE,6B/DypNR,C+D1pNM,gCACE,2B/D6pNR,C+DnqNI,2BACE,sB/DsqNN,C+DlqNM,+BACE,0B/DqqNR,C+DtqNM,iCACE,4B/DyqNR,C+D1qNM,kCACE,6B/D6qNR,C+D9qNM,gCACE,2B/DirNR,C+DvrNI,2BACE,sB/D0rNN,C+DtrNM,+BACE,0B/DyrNR,C+D1rNM,iCACE,4B/D6rNR,C+D9rNM,kCACE,6B/DisNR,C+DlsNM,gCACE,2B/DqsNR,C+D3sNI,2BACE,sB/D8sNN,C+D1sNM,+BACE,0B/D6sNR,C+D9sNM,iCACE,4B/DitNR,C+DltNM,kCACE,6B/DqtNR,C+DttNM,gCACE,2B/DytNR,C+D/tNI,2BACE,sB/DkuNN,C+D9tNM,+BACE,0B/DiuNR,C+DluNM,iCACE,4B/DquNR,C+DtuNM,kCACE,6B/DyuNR,C+D1uNM,gCACE,2B/D6uNR,C+DnvNI,2BACE,sB/DsvNN,C+DlvNM,+BACE,0B/DqvNR,C+DtvNM,iCACE,4B/DyvNR,C+D1vNM,kCACE,6B/D6vNR,C+D9vNM,gCACE,2B/DiwNR,C+DvwNI,2BACE,sB/D0wNN,C+DtwNM,+BACE,0B/DywNR,C+D1wNM,iCACE,4B/D6wNR,C+D9wNM,kCACE,6B/DixNR,C+DlxNM,gCACE,2B/DqxNR,CgE11NE,0BACE,yBhE61NJ,CgE11NE,4BACE,2BhE61NJ,CgE11NE,2BACE,0BhE61NJ,CiEh2NI,uB9DuOE,6BAJc,CAKd,kCH6nNN,CQzoNQ,6ByD5NJ,uB9DgPI,wBAbY,CAcZ,uBHynNN,CACF,CQ/oNQ,ayD5NJ,uB9D2OI,wBATQ,CAUR,yBHooNN,CACF,CiEj3NI,uB9DuOE,wBAJc,CAKd,6BH8oNN,CQ1pNQ,6ByD5NJ,uB9DgPI,wBAbY,CAcZ,kCH0oNN,CACF,CQhqNQ,ayD5NJ,uB9D2OI,wBATQ,CAUR,0BHqpNN,CACF,CiEl4NI,uB9DuOE,0BAJc,CAKd,kCH+pNN,CQ3qNQ,6ByD5NJ,uB9DgPI,2BAbY,CAcZ,kCH2pNN,CACF,CQjrNQ,ayD5NJ,uB9D2OI,wBATQ,CAUR,0BHsqNN,CACF,CiEn5NI,uB9DuOE,4BAJc,CAKd,kCHgrNN,CQ5rNQ,6ByD5NJ,uB9DgPI,6BAbY,CAcZ,kCH4qNN,CACF,CQlsNQ,ayD5NJ,uB9D2OI,wBATQ,CAUR,0BHurNN,CACF,CiEp6NI,uB9DuOE,4BAJc,CAKd,kCHisNN,CQ7sNQ,6ByD5NJ,uB9DgPI,0BAbY,CAcZ,0BH6rNN,CACF,CQntNQ,ayD5NJ,uB9D2OI,wBATQ,CAUR,0BHwsNN,CACF,CiEr7NI,uB9DuOE,wBAJc,CAKd,0BHktNN,CQ9tNQ,6ByD5NJ,uB9DgPI,6BAbY,CAcZ,kCH8sNN,CACF,CQpuNQ,ayD5NJ,uB9D2OI,wBATQ,CAUR,0BHytNN,CACF,CiEt8NI,uB9DuOE,2BAJc,CAKd,kCHmuNN,CQ/uNQ,6ByD5NJ,uB9DgPI,wBAbY,CAcZ,0BH+tNN,CACF,CQrvNQ,ayD5NJ,uB9D2OI,wBATQ,CAUR,yBH0uNN,CACF,CiEv9NI,uB9DuOE,0BAJc,CAKd,0BHovNN,CQhwNQ,6ByD5NJ,uB9DgPI,2BAbY,CAcZ,kCHgvNN,CACF,CQtwNQ,ayD5NJ,uB9D2OI,wBATQ,CAUR,yBH2vNN,CACF,CiE19NE,8B9D6BA,yBHi8NF,CiE19NE,2B9DmCA,yBH27NF,CiEx9NE,+B9D8CA,2CH86NF,CiEx9NE,0B9DwDA,8BAAA,CAGA,kCHk6NF,CkE3/NE,oDACE,oBlEkgOJ,CQryNQ,6B0D9NN,+BAII,mBlEmgOJ,CACF,CkEhgOE,2BACE,oBlEmgOJ,CQ9yNQ,6B0DtNN,2BAII,sBlEogOJ,CACF,CkEjgOE,yBACE,oBlEogOJ,CQvzNQ,6B0D9MN,yBAII,mBlEqgOJ,CACF,CkElgOE,0BACE,oBlEqgOJ,CQh0NQ,6B0DtMN,0BAII,sBlEsgOJ,CACF,CkEngOE,4BACE,oBlEsgOJ,CQz0NQ,6B0D9LN,4BAII,mBlEugOJ,CACF","file":"govuk-frontend.min.css","sourcesContent":["@import \"../error-message/index\";\n@import \"../hint/index\";\n@import \"../label/index\";\n@import \"../textarea/index\";\n\n@include govuk-exports(\"govuk/component/character-count\") {\n .govuk-character-count {\n @include govuk-responsive-margin(6, \"bottom\");\n\n .govuk-form-group,\n .govuk-textarea {\n margin-bottom: govuk-spacing(1);\n }\n }\n\n .govuk-character-count__message {\n @include govuk-font-tabular-numbers;\n margin-top: 0;\n margin-bottom: 0;\n\n &::after {\n // Zero-width space that will reserve vertical space when no hint is\n // provided as:\n // - setting a min-height is not possible without a magic number because\n // the line-height is set by the `govuk-font` call above\n // - using `:empty` is not possible as the hint macro outputs line breaks\n content: \"\\200B\";\n }\n }\n\n .govuk-character-count__message--disabled {\n visibility: hidden;\n }\n}\n","@charset \"UTF-8\";\n:root {\n --govuk-frontend-version: \"development\";\n --govuk-frontend-breakpoint-mobile: 20rem;\n --govuk-frontend-breakpoint-tablet: 40.0625rem;\n --govuk-frontend-breakpoint-desktop: 48.0625rem;\n}\n\n.govuk-link {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n}\n/*! Copyright (c) 2011 by Margaret Calvert & Henrik Kubel. All rights reserved. The font has been customised for exclusive use on gov.uk. This cut is not commercially available. */ /* stylelint-disable-line scss/comment-no-loud */\n@font-face {\n font-family: \"GDS Transport\";\n font-style: normal;\n font-weight: normal;\n src: url(\"/assets/fonts/light-94a07e06a1-v2.woff2\") format(\"woff2\"), url(\"/assets/fonts/light-f591b13f7d-v2.woff\") format(\"woff\");\n font-display: fallback;\n}\n@font-face {\n font-family: \"GDS Transport\";\n font-style: normal;\n font-weight: bold;\n src: url(\"/assets/fonts/bold-b542beb274-v2.woff2\") format(\"woff2\"), url(\"/assets/fonts/bold-affa96571d-v2.woff\") format(\"woff\");\n font-display: fallback;\n}\n@media print {\n .govuk-link {\n font-family: sans-serif;\n }\n}\n.govuk-link:hover {\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n text-decoration-skip: none;\n}\n.govuk-link:focus {\n outline: 3px solid transparent;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;\n text-decoration: none;\n box-decoration-break: clone;\n}\n.govuk-link:link {\n color: #1d70b8;\n}\n.govuk-link:visited {\n color: #4c2c92;\n}\n.govuk-link:hover {\n color: #003078;\n}\n.govuk-link:active {\n color: #0b0c0c;\n}\n.govuk-link:focus {\n color: #0b0c0c;\n}\n@media print {\n [href^=\"/\"].govuk-link::after, [href^=\"http://\"].govuk-link::after, [href^=\"https://\"].govuk-link::after {\n content: \" (\" attr(href) \")\";\n font-size: 90%;\n word-wrap: break-word;\n }\n}\n\n.govuk-link--muted:link, .govuk-link--muted:visited {\n color: #505a5f;\n}\n.govuk-link--muted:hover, .govuk-link--muted:active {\n color: #0b0c0c;\n}\n.govuk-link--muted:focus {\n color: #0b0c0c;\n}\n\n.govuk-link--text-colour:link, .govuk-link--text-colour:visited {\n color: #0b0c0c;\n}\n@media print {\n .govuk-link--text-colour:link, .govuk-link--text-colour:visited {\n color: #000000;\n }\n}\n.govuk-link--text-colour:hover {\n color: rgba(11, 12, 12, 0.99);\n}\n.govuk-link--text-colour:active, .govuk-link--text-colour:focus {\n color: #0b0c0c;\n}\n@media print {\n .govuk-link--text-colour:active, .govuk-link--text-colour:focus {\n color: #000000;\n }\n}\n\n.govuk-link--inverse:link, .govuk-link--inverse:visited {\n color: #ffffff;\n}\n.govuk-link--inverse:hover, .govuk-link--inverse:active {\n color: rgba(255, 255, 255, 0.99);\n}\n.govuk-link--inverse:focus {\n color: #0b0c0c;\n}\n\n.govuk-link--no-underline:not(:hover):not(:active) {\n text-decoration: none;\n}\n\n.govuk-link--no-visited-state:link {\n color: #1d70b8;\n}\n.govuk-link--no-visited-state:visited {\n color: #1d70b8;\n}\n.govuk-link--no-visited-state:hover {\n color: #003078;\n}\n.govuk-link--no-visited-state:active {\n color: #0b0c0c;\n}\n.govuk-link--no-visited-state:focus {\n color: #0b0c0c;\n}\n\n.govuk-link-image {\n display: inline-block;\n line-height: 0;\n text-decoration: none;\n}\n.govuk-link-image:focus {\n outline: 3px solid transparent;\n box-shadow: 0 0 0 4px #ffdd00, 0 0 0 8px #0b0c0c;\n}\n\n.govuk-list {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n color: #0b0c0c;\n margin-top: 0;\n margin-bottom: 15px;\n padding-left: 0;\n list-style-type: none;\n}\n@media print {\n .govuk-list {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-list {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-list {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media print {\n .govuk-list {\n color: #000000;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-list {\n margin-bottom: 20px;\n }\n}\n.govuk-list .govuk-list {\n margin-top: 10px;\n}\n\n.govuk-list > li {\n margin-bottom: 5px;\n}\n\n.govuk-list--bullet {\n padding-left: 20px;\n list-style-type: disc;\n}\n\n.govuk-list--number {\n padding-left: 20px;\n list-style-type: decimal;\n}\n\n.govuk-list--bullet > li,\n.govuk-list--number > li {\n margin-bottom: 0;\n}\n@media (min-width: 40.0625em) {\n .govuk-list--bullet > li,\n .govuk-list--number > li {\n margin-bottom: 5px;\n }\n}\n\n.govuk-list--spaced > li {\n margin-bottom: 10px;\n}\n@media (min-width: 40.0625em) {\n .govuk-list--spaced > li {\n margin-bottom: 15px;\n }\n}\n\n.govuk-heading-xl {\n color: #0b0c0c;\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 700;\n font-size: 2rem;\n line-height: 1.09375;\n display: block;\n margin-top: 0;\n margin-bottom: 30px;\n}\n@media print {\n .govuk-heading-xl {\n color: #000000;\n }\n}\n@media print {\n .govuk-heading-xl {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-heading-xl {\n font-size: 3rem;\n line-height: 1.0416666667;\n }\n}\n@media print {\n .govuk-heading-xl {\n font-size: 32pt;\n line-height: 1.15;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-heading-xl {\n margin-bottom: 50px;\n }\n}\n\n.govuk-heading-l {\n color: #0b0c0c;\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 700;\n font-size: 1.5rem;\n line-height: 1.0416666667;\n display: block;\n margin-top: 0;\n margin-bottom: 20px;\n}\n@media print {\n .govuk-heading-l {\n color: #000000;\n }\n}\n@media print {\n .govuk-heading-l {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-heading-l {\n font-size: 2.25rem;\n line-height: 1.1111111111;\n }\n}\n@media print {\n .govuk-heading-l {\n font-size: 24pt;\n line-height: 1.05;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-heading-l {\n margin-bottom: 30px;\n }\n}\n\n.govuk-heading-m {\n color: #0b0c0c;\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 700;\n font-size: 1.125rem;\n line-height: 1.1111111111;\n display: block;\n margin-top: 0;\n margin-bottom: 15px;\n}\n@media print {\n .govuk-heading-m {\n color: #000000;\n }\n}\n@media print {\n .govuk-heading-m {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-heading-m {\n font-size: 1.5rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-heading-m {\n font-size: 18pt;\n line-height: 1.15;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-heading-m {\n margin-bottom: 20px;\n }\n}\n\n.govuk-heading-s {\n color: #0b0c0c;\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 700;\n font-size: 1rem;\n line-height: 1.25;\n display: block;\n margin-top: 0;\n margin-bottom: 15px;\n}\n@media print {\n .govuk-heading-s {\n color: #000000;\n }\n}\n@media print {\n .govuk-heading-s {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-heading-s {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-heading-s {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-heading-s {\n margin-bottom: 20px;\n }\n}\n\n.govuk-caption-xl {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1.125rem;\n line-height: 1.1111111111;\n display: block;\n margin-bottom: 5px;\n color: #505a5f;\n}\n@media print {\n .govuk-caption-xl {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-caption-xl {\n font-size: 1.6875rem;\n line-height: 1.1111111111;\n }\n}\n@media print {\n .govuk-caption-xl {\n font-size: 18pt;\n line-height: 1.15;\n }\n}\n\n.govuk-caption-l {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1.125rem;\n line-height: 1.1111111111;\n display: block;\n margin-bottom: 5px;\n color: #505a5f;\n}\n@media print {\n .govuk-caption-l {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-caption-l {\n font-size: 1.5rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-caption-l {\n font-size: 18pt;\n line-height: 1.15;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-caption-l {\n margin-bottom: 0;\n }\n}\n\n.govuk-caption-m {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n display: block;\n color: #505a5f;\n}\n@media print {\n .govuk-caption-m {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-caption-m {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-caption-m {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n\n.govuk-body-lead, .govuk-body-l {\n color: #0b0c0c;\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1.125rem;\n line-height: 1.1111111111;\n margin-top: 0;\n margin-bottom: 20px;\n}\n@media print {\n .govuk-body-lead, .govuk-body-l {\n color: #000000;\n }\n}\n@media print {\n .govuk-body-lead, .govuk-body-l {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-body-lead, .govuk-body-l {\n font-size: 1.5rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-body-lead, .govuk-body-l {\n font-size: 18pt;\n line-height: 1.15;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-body-lead, .govuk-body-l {\n margin-bottom: 30px;\n }\n}\n\n.govuk-body, .govuk-body-m {\n color: #0b0c0c;\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n margin-top: 0;\n margin-bottom: 15px;\n}\n@media print {\n .govuk-body, .govuk-body-m {\n color: #000000;\n }\n}\n@media print {\n .govuk-body, .govuk-body-m {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-body, .govuk-body-m {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-body, .govuk-body-m {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-body, .govuk-body-m {\n margin-bottom: 20px;\n }\n}\n\n.govuk-body-s {\n color: #0b0c0c;\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 0.875rem;\n line-height: 1.1428571429;\n margin-top: 0;\n margin-bottom: 15px;\n}\n@media print {\n .govuk-body-s {\n color: #000000;\n }\n}\n@media print {\n .govuk-body-s {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-body-s {\n font-size: 1rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-body-s {\n font-size: 14pt;\n line-height: 1.2;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-body-s {\n margin-bottom: 20px;\n }\n}\n\n.govuk-body-xs {\n color: #0b0c0c;\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 0.75rem;\n line-height: 1.25;\n margin-top: 0;\n margin-bottom: 15px;\n}\n@media print {\n .govuk-body-xs {\n color: #000000;\n }\n}\n@media print {\n .govuk-body-xs {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-body-xs {\n font-size: 0.875rem;\n line-height: 1.4285714286;\n }\n}\n@media print {\n .govuk-body-xs {\n font-size: 12pt;\n line-height: 1.2;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-body-xs {\n margin-bottom: 20px;\n }\n}\n\n.govuk-body-l + .govuk-heading-l, .govuk-body-lead + .govuk-heading-l {\n padding-top: 5px;\n}\n@media (min-width: 40.0625em) {\n .govuk-body-l + .govuk-heading-l, .govuk-body-lead + .govuk-heading-l {\n padding-top: 10px;\n }\n}\n\n.govuk-body-m + .govuk-heading-l, .govuk-body + .govuk-heading-l,\n.govuk-body-s + .govuk-heading-l,\n.govuk-list + .govuk-heading-l {\n padding-top: 15px;\n}\n@media (min-width: 40.0625em) {\n .govuk-body-m + .govuk-heading-l, .govuk-body + .govuk-heading-l,\n .govuk-body-s + .govuk-heading-l,\n .govuk-list + .govuk-heading-l {\n padding-top: 20px;\n }\n}\n\n.govuk-body-m + .govuk-heading-m, .govuk-body + .govuk-heading-m,\n.govuk-body-s + .govuk-heading-m,\n.govuk-list + .govuk-heading-m,\n.govuk-body-m + .govuk-heading-s,\n.govuk-body + .govuk-heading-s,\n.govuk-body-s + .govuk-heading-s,\n.govuk-list + .govuk-heading-s {\n padding-top: 5px;\n}\n@media (min-width: 40.0625em) {\n .govuk-body-m + .govuk-heading-m, .govuk-body + .govuk-heading-m,\n .govuk-body-s + .govuk-heading-m,\n .govuk-list + .govuk-heading-m,\n .govuk-body-m + .govuk-heading-s,\n .govuk-body + .govuk-heading-s,\n .govuk-body-s + .govuk-heading-s,\n .govuk-list + .govuk-heading-s {\n padding-top: 10px;\n }\n}\n\n.govuk-section-break {\n margin: 0;\n border: 0;\n}\n\n.govuk-section-break--xl {\n margin-top: 30px;\n margin-bottom: 30px;\n}\n@media (min-width: 40.0625em) {\n .govuk-section-break--xl {\n margin-top: 50px;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-section-break--xl {\n margin-bottom: 50px;\n }\n}\n\n.govuk-section-break--l {\n margin-top: 20px;\n margin-bottom: 20px;\n}\n@media (min-width: 40.0625em) {\n .govuk-section-break--l {\n margin-top: 30px;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-section-break--l {\n margin-bottom: 30px;\n }\n}\n\n.govuk-section-break--m {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 40.0625em) {\n .govuk-section-break--m {\n margin-top: 20px;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-section-break--m {\n margin-bottom: 20px;\n }\n}\n\n.govuk-section-break--visible {\n border-bottom: 1px solid #b1b4b6;\n}\n\n.govuk-button-group {\n margin-bottom: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n@media (min-width: 40.0625em) {\n .govuk-button-group {\n margin-bottom: 15px;\n }\n}\n.govuk-button-group .govuk-link {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.1875;\n display: inline-block;\n max-width: 100%;\n margin-top: 5px;\n margin-bottom: 20px;\n text-align: center;\n}\n@media print {\n .govuk-button-group .govuk-link {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-button-group .govuk-link {\n font-size: 1.1875rem;\n line-height: 1;\n }\n}\n@media print {\n .govuk-button-group .govuk-link {\n font-size: 14pt;\n line-height: 19px;\n }\n}\n.govuk-button-group .govuk-button {\n margin-bottom: 17px;\n}\n@media (min-width: 40.0625em) {\n .govuk-button-group {\n margin-right: -15px;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: baseline;\n }\n .govuk-button-group .govuk-button,\n .govuk-button-group .govuk-link {\n margin-right: 15px;\n }\n .govuk-button-group .govuk-link {\n text-align: left;\n }\n}\n\n.govuk-form-group {\n margin-bottom: 20px;\n}\n.govuk-form-group::after {\n content: \"\";\n display: block;\n clear: both;\n}\n@media (min-width: 40.0625em) {\n .govuk-form-group {\n margin-bottom: 30px;\n }\n}\n.govuk-form-group .govuk-form-group:last-of-type {\n margin-bottom: 0;\n}\n\n.govuk-form-group--error {\n padding-left: 15px;\n border-left: 5px solid #d4351c;\n}\n.govuk-form-group--error .govuk-form-group {\n padding: 0;\n border: 0;\n}\n\n.govuk-grid-row {\n margin-right: -15px;\n margin-left: -15px;\n}\n.govuk-grid-row::after {\n content: \"\";\n display: block;\n clear: both;\n}\n\n.govuk-grid-column-one-quarter {\n box-sizing: border-box;\n width: 100%;\n padding: 0 15px;\n}\n@media (min-width: 40.0625em) {\n .govuk-grid-column-one-quarter {\n width: 25%;\n float: left;\n }\n}\n\n.govuk-grid-column-one-third {\n box-sizing: border-box;\n width: 100%;\n padding: 0 15px;\n}\n@media (min-width: 40.0625em) {\n .govuk-grid-column-one-third {\n width: 33.3333333333%;\n float: left;\n }\n}\n\n.govuk-grid-column-one-half {\n box-sizing: border-box;\n width: 100%;\n padding: 0 15px;\n}\n@media (min-width: 40.0625em) {\n .govuk-grid-column-one-half {\n width: 50%;\n float: left;\n }\n}\n\n.govuk-grid-column-two-thirds {\n box-sizing: border-box;\n width: 100%;\n padding: 0 15px;\n}\n@media (min-width: 40.0625em) {\n .govuk-grid-column-two-thirds {\n width: 66.6666666667%;\n float: left;\n }\n}\n\n.govuk-grid-column-three-quarters {\n box-sizing: border-box;\n width: 100%;\n padding: 0 15px;\n}\n@media (min-width: 40.0625em) {\n .govuk-grid-column-three-quarters {\n width: 75%;\n float: left;\n }\n}\n\n.govuk-grid-column-full {\n box-sizing: border-box;\n width: 100%;\n padding: 0 15px;\n}\n@media (min-width: 40.0625em) {\n .govuk-grid-column-full {\n width: 100%;\n float: left;\n }\n}\n\n.govuk-grid-column-one-quarter-from-desktop {\n box-sizing: border-box;\n padding: 0 15px;\n}\n@media (min-width: 48.0625em) {\n .govuk-grid-column-one-quarter-from-desktop {\n width: 25%;\n float: left;\n }\n}\n\n.govuk-grid-column-one-third-from-desktop {\n box-sizing: border-box;\n padding: 0 15px;\n}\n@media (min-width: 48.0625em) {\n .govuk-grid-column-one-third-from-desktop {\n width: 33.3333333333%;\n float: left;\n }\n}\n\n.govuk-grid-column-one-half-from-desktop {\n box-sizing: border-box;\n padding: 0 15px;\n}\n@media (min-width: 48.0625em) {\n .govuk-grid-column-one-half-from-desktop {\n width: 50%;\n float: left;\n }\n}\n\n.govuk-grid-column-two-thirds-from-desktop {\n box-sizing: border-box;\n padding: 0 15px;\n}\n@media (min-width: 48.0625em) {\n .govuk-grid-column-two-thirds-from-desktop {\n width: 66.6666666667%;\n float: left;\n }\n}\n\n.govuk-grid-column-three-quarters-from-desktop {\n box-sizing: border-box;\n padding: 0 15px;\n}\n@media (min-width: 48.0625em) {\n .govuk-grid-column-three-quarters-from-desktop {\n width: 75%;\n float: left;\n }\n}\n\n.govuk-grid-column-full-from-desktop {\n box-sizing: border-box;\n padding: 0 15px;\n}\n@media (min-width: 48.0625em) {\n .govuk-grid-column-full-from-desktop {\n width: 100%;\n float: left;\n }\n}\n\n.govuk-main-wrapper {\n display: block;\n padding-top: 20px;\n padding-bottom: 20px;\n}\n@media (min-width: 40.0625em) {\n .govuk-main-wrapper {\n padding-top: 40px;\n padding-bottom: 40px;\n }\n}\n\n.govuk-main-wrapper--auto-spacing:first-child,\n.govuk-main-wrapper--l {\n padding-top: 30px;\n}\n@media (min-width: 40.0625em) {\n .govuk-main-wrapper--auto-spacing:first-child,\n .govuk-main-wrapper--l {\n padding-top: 50px;\n }\n}\n\n.govuk-template {\n background-color: #f3f2f1;\n text-size-adjust: 100%;\n}\n@supports (position: sticky) {\n .govuk-template {\n scroll-padding-top: 60px;\n }\n .govuk-template:not(:has(.govuk-exit-this-page)) {\n scroll-padding-top: 0;\n }\n}\n@media screen {\n .govuk-template {\n overflow-y: scroll;\n }\n}\n\n.govuk-template__body {\n margin: 0;\n background-color: #ffffff;\n}\n\n.govuk-width-container {\n max-width: 960px;\n margin-right: 15px;\n margin-left: 15px;\n}\n@supports (margin: max(calc(0px))) {\n .govuk-width-container {\n margin-right: max(15px, calc(15px + env(safe-area-inset-right)));\n margin-left: max(15px, calc(15px + env(safe-area-inset-left)));\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-width-container {\n margin-right: 30px;\n margin-left: 30px;\n }\n @supports (margin: max(calc(0px))) {\n .govuk-width-container {\n margin-right: max(30px, calc(15px + env(safe-area-inset-right)));\n margin-left: max(30px, calc(15px + env(safe-area-inset-left)));\n }\n }\n}\n@media (min-width: 1020px) {\n .govuk-width-container {\n margin-right: auto;\n margin-left: auto;\n }\n @supports (margin: max(calc(0px))) {\n .govuk-width-container {\n margin-right: auto;\n margin-left: auto;\n }\n }\n}\n\n.govuk-accordion {\n margin-bottom: 20px;\n}\n@media (min-width: 40.0625em) {\n .govuk-accordion {\n margin-bottom: 30px;\n }\n}\n\n.govuk-accordion__section {\n padding-top: 15px;\n}\n\n.govuk-accordion__section-heading {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 15px;\n padding-bottom: 15px;\n}\n\n.govuk-accordion__section-button {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 700;\n font-size: 1.125rem;\n line-height: 1.1111111111;\n color: #0b0c0c;\n display: block;\n margin-bottom: 0;\n padding-top: 15px;\n}\n@media print {\n .govuk-accordion__section-button {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-accordion__section-button {\n font-size: 1.5rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-accordion__section-button {\n font-size: 18pt;\n line-height: 1.15;\n }\n}\n@media print {\n .govuk-accordion__section-button {\n color: #000000;\n }\n}\n\n.govuk-accordion__section-content > :last-child {\n margin-bottom: 0;\n}\n\n.govuk-frontend-supported .govuk-accordion {\n border-bottom: 1px solid #b1b4b6;\n}\n.govuk-frontend-supported .govuk-accordion__section {\n padding-top: 0;\n}\n.govuk-frontend-supported .govuk-accordion__section-content {\n display: none;\n padding-top: 15px;\n padding-bottom: 30px;\n}\n@media (min-width: 40.0625em) {\n .govuk-frontend-supported .govuk-accordion__section-content {\n padding-bottom: 50px;\n }\n}\n.govuk-frontend-supported .govuk-accordion__section-content[hidden] {\n padding-top: 0;\n padding-bottom: 0;\n}\n@supports (content-visibility: hidden) {\n .govuk-frontend-supported .govuk-accordion__section-content[hidden] {\n content-visibility: hidden;\n display: inherit;\n }\n}\n.govuk-frontend-supported .govuk-accordion__section--expanded .govuk-accordion__section-content {\n display: block;\n}\n.govuk-frontend-supported .govuk-accordion__show-all {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n position: relative;\n z-index: 1;\n margin-bottom: 9px;\n padding: 5px 2px 5px 0;\n border-width: 0;\n color: #1d70b8;\n background: none;\n cursor: pointer;\n -webkit-appearance: none;\n}\n@media print {\n .govuk-frontend-supported .govuk-accordion__show-all {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-frontend-supported .govuk-accordion__show-all {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-frontend-supported .govuk-accordion__show-all {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-frontend-supported .govuk-accordion__show-all {\n margin-bottom: 14px;\n }\n}\n.govuk-frontend-supported .govuk-accordion__show-all::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\n.govuk-frontend-supported .govuk-accordion__show-all:hover {\n color: #0b0c0c;\n background: #f3f2f1;\n box-shadow: 0 -2px #f3f2f1, 0 4px #f3f2f1;\n}\n.govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion__section-toggle-text {\n color: #0b0c0c;\n}\n.govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron {\n color: #0b0c0c;\n background: #0b0c0c;\n}\n.govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron::after {\n color: #f3f2f1;\n}\n.govuk-frontend-supported .govuk-accordion__show-all:focus {\n outline: 3px solid transparent;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;\n text-decoration: none;\n box-decoration-break: clone;\n}\n.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron {\n background: #0b0c0c;\n}\n.govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron::after {\n color: #ffdd00;\n}\n.govuk-frontend-supported .govuk-accordion__section-heading {\n padding: 0;\n}\n.govuk-frontend-supported .govuk-accordion-nav__chevron {\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n width: 1.25rem;\n height: 1.25rem;\n border: 0.0625rem solid;\n border-radius: 50%;\n vertical-align: middle;\n}\n.govuk-frontend-supported .govuk-accordion-nav__chevron::after {\n content: \"\";\n box-sizing: border-box;\n display: block;\n position: absolute;\n bottom: 0.3125rem;\n left: 0.375rem;\n width: 0.375rem;\n height: 0.375rem;\n transform: rotate(-45deg);\n border-top: 0.125rem solid;\n border-right: 0.125rem solid;\n}\n.govuk-frontend-supported .govuk-accordion-nav__chevron--down {\n transform: rotate(180deg);\n}\n.govuk-frontend-supported .govuk-accordion__section-button {\n width: 100%;\n padding: 10px 0 0;\n border: 0;\n border-top: 1px solid #b1b4b6;\n border-bottom: 10px solid transparent;\n color: #0b0c0c;\n background: none;\n text-align: left;\n cursor: pointer;\n -webkit-appearance: none;\n}\n@media (min-width: 40.0625em) {\n .govuk-frontend-supported .govuk-accordion__section-button {\n padding-bottom: 10px;\n }\n}\n.govuk-frontend-supported .govuk-accordion__section-button:active {\n color: #0b0c0c;\n background: none;\n}\n.govuk-frontend-supported .govuk-accordion__section-button:hover {\n color: #0b0c0c;\n background: #f3f2f1;\n}\n.govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion__section-toggle-text {\n color: #0b0c0c;\n}\n.govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron {\n color: #0b0c0c;\n background: #0b0c0c;\n}\n.govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron::after {\n color: #f3f2f1;\n}\n.govuk-frontend-supported .govuk-accordion__section-button:focus {\n outline: 0;\n}\n.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,\n.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,\n.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {\n outline: 3px solid transparent;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;\n text-decoration: none;\n box-decoration-break: clone;\n}\n.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron {\n color: #0b0c0c;\n background: #0b0c0c;\n}\n.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron::after {\n color: #ffdd00;\n}\n.govuk-frontend-supported .govuk-accordion__section-button::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\n.govuk-frontend-supported .govuk-accordion__section--expanded .govuk-accordion__section-button {\n padding-bottom: 15px;\n border-bottom: 0;\n}\n@media (min-width: 40.0625em) {\n .govuk-frontend-supported .govuk-accordion__section--expanded .govuk-accordion__section-button {\n padding-bottom: 20px;\n }\n}\n.govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {\n padding-bottom: 3px;\n}\n@media (min-width: 48.0625em) {\n .govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {\n padding-bottom: 2px;\n }\n}\n.govuk-frontend-supported .govuk-accordion__section-toggle,\n.govuk-frontend-supported .govuk-accordion__section-heading-text,\n.govuk-frontend-supported .govuk-accordion__section-summary {\n display: block;\n margin-bottom: 13px;\n}\n.govuk-frontend-supported .govuk-accordion__section-toggle .govuk-accordion__section-heading-text-focus,\n.govuk-frontend-supported .govuk-accordion__section-toggle .govuk-accordion__section-summary-focus,\n.govuk-frontend-supported .govuk-accordion__section-toggle .govuk-accordion__section-toggle-focus,\n.govuk-frontend-supported .govuk-accordion__section-heading-text .govuk-accordion__section-heading-text-focus,\n.govuk-frontend-supported .govuk-accordion__section-heading-text .govuk-accordion__section-summary-focus,\n.govuk-frontend-supported .govuk-accordion__section-heading-text .govuk-accordion__section-toggle-focus,\n.govuk-frontend-supported .govuk-accordion__section-summary .govuk-accordion__section-heading-text-focus,\n.govuk-frontend-supported .govuk-accordion__section-summary .govuk-accordion__section-summary-focus,\n.govuk-frontend-supported .govuk-accordion__section-summary .govuk-accordion__section-toggle-focus {\n display: inline;\n}\n.govuk-frontend-supported .govuk-accordion__section-toggle {\n font-size: 1rem;\n line-height: 1.25;\n font-weight: 400;\n color: #1d70b8;\n}\n@media (min-width: 40.0625em) {\n .govuk-frontend-supported .govuk-accordion__section-toggle {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-frontend-supported .govuk-accordion__section-toggle {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n.govuk-frontend-supported .govuk-accordion__show-all-text,\n.govuk-frontend-supported .govuk-accordion__section-toggle-text {\n margin-left: 5px;\n vertical-align: middle;\n}\n@media screen and (forced-colors: active) {\n .govuk-frontend-supported .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron,\n .govuk-frontend-supported .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron {\n background-color: transparent;\n }\n .govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion__section-heading-text-focus,\n .govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion__section-summary-focus,\n .govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion__section-toggle-focus,\n .govuk-frontend-supported .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron,\n .govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,\n .govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,\n .govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus,\n .govuk-frontend-supported .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron {\n background: transparent;\n background-color: transparent;\n }\n}\n@media (hover: none) {\n .govuk-frontend-supported .govuk-accordion__section-header:hover {\n border-top-color: #b1b4b6;\n box-shadow: inset 0 3px 0 0 #1d70b8;\n }\n .govuk-frontend-supported .govuk-accordion__section-header:hover .govuk-accordion__section-button {\n border-top-color: #b1b4b6;\n }\n}\n\n.govuk-back-link {\n font-size: 0.875rem;\n line-height: 1.1428571429;\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n display: inline-block;\n position: relative;\n margin-top: 15px;\n margin-bottom: 15px;\n padding-left: 0.875em;\n}\n@media (min-width: 40.0625em) {\n .govuk-back-link {\n font-size: 1rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-back-link {\n font-size: 14pt;\n line-height: 1.2;\n }\n}\n@media print {\n .govuk-back-link {\n font-family: sans-serif;\n }\n}\n.govuk-back-link:hover {\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n text-decoration-skip: none;\n}\n.govuk-back-link:focus {\n outline: 3px solid transparent;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;\n text-decoration: none;\n box-decoration-break: clone;\n}\n.govuk-back-link:link, .govuk-back-link:visited {\n color: #0b0c0c;\n}\n@media print {\n .govuk-back-link:link, .govuk-back-link:visited {\n color: #000000;\n }\n}\n.govuk-back-link:hover {\n color: rgba(11, 12, 12, 0.99);\n}\n.govuk-back-link:active, .govuk-back-link:focus {\n color: #0b0c0c;\n}\n@media print {\n .govuk-back-link:active, .govuk-back-link:focus {\n color: #000000;\n }\n}\n\n.govuk-back-link::before {\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0.1875em;\n width: 0.4375em;\n height: 0.4375em;\n margin: auto 0;\n transform: rotate(225deg);\n border: solid;\n border-width: 1px 1px 0 0;\n border-color: #505a5f;\n}\n@supports (border-width: max(0px)) {\n .govuk-back-link::before {\n border-width: max(1px, 0.0625em) max(1px, 0.0625em) 0 0;\n font-size: max(16px, 1em);\n }\n}\n\n.govuk-back-link:focus::before {\n border-color: #0b0c0c;\n}\n\n.govuk-back-link::after {\n content: \"\";\n position: absolute;\n top: -14px;\n right: 0;\n bottom: -14px;\n left: 0;\n}\n\n.govuk-back-link--inverse:link, .govuk-back-link--inverse:visited {\n color: #ffffff;\n}\n.govuk-back-link--inverse:hover, .govuk-back-link--inverse:active {\n color: rgba(255, 255, 255, 0.99);\n}\n.govuk-back-link--inverse:focus {\n color: #0b0c0c;\n}\n.govuk-back-link--inverse::before {\n border-color: currentcolor;\n}\n\n.govuk-breadcrumbs {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 0.875rem;\n line-height: 1.1428571429;\n color: #0b0c0c;\n margin-top: 15px;\n margin-bottom: 10px;\n}\n@media print {\n .govuk-breadcrumbs {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-breadcrumbs {\n font-size: 1rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-breadcrumbs {\n font-size: 14pt;\n line-height: 1.2;\n }\n}\n@media print {\n .govuk-breadcrumbs {\n color: #000000;\n }\n}\n\n.govuk-breadcrumbs__list {\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n.govuk-breadcrumbs__list::after {\n content: \"\";\n display: block;\n clear: both;\n}\n\n.govuk-breadcrumbs__list-item {\n display: inline-block;\n position: relative;\n margin-bottom: 5px;\n margin-left: 0.625em;\n padding-left: 0.9784375em;\n float: left;\n}\n.govuk-breadcrumbs__list-item::before {\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n bottom: 0;\n left: -0.206875em;\n width: 0.4375em;\n height: 0.4375em;\n margin: auto 0;\n transform: rotate(45deg);\n border: solid;\n border-width: 1px 1px 0 0;\n border-color: #505a5f;\n}\n@supports (border-width: max(0px)) {\n .govuk-breadcrumbs__list-item::before {\n border-width: max(1px, 0.0625em) max(1px, 0.0625em) 0 0;\n font-size: max(16px, 1em);\n }\n}\n.govuk-breadcrumbs__list-item:first-child {\n margin-left: 0;\n padding-left: 0;\n}\n.govuk-breadcrumbs__list-item:first-child::before {\n content: none;\n display: none;\n}\n\n.govuk-breadcrumbs__link {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n}\n@media print {\n .govuk-breadcrumbs__link {\n font-family: sans-serif;\n }\n}\n.govuk-breadcrumbs__link:hover {\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n text-decoration-skip: none;\n}\n.govuk-breadcrumbs__link:focus {\n outline: 3px solid transparent;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;\n text-decoration: none;\n box-decoration-break: clone;\n}\n.govuk-breadcrumbs__link:link, .govuk-breadcrumbs__link:visited {\n color: #0b0c0c;\n}\n@media print {\n .govuk-breadcrumbs__link:link, .govuk-breadcrumbs__link:visited {\n color: #000000;\n }\n}\n.govuk-breadcrumbs__link:hover {\n color: rgba(11, 12, 12, 0.99);\n}\n.govuk-breadcrumbs__link:active, .govuk-breadcrumbs__link:focus {\n color: #0b0c0c;\n}\n@media print {\n .govuk-breadcrumbs__link:active, .govuk-breadcrumbs__link:focus {\n color: #000000;\n }\n}\n\n@media (max-width: 40.0525em) {\n .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item {\n display: none;\n }\n .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:first-child, .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item:last-child {\n display: inline-block;\n }\n .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list-item::before {\n top: 0.375em;\n margin: 0;\n }\n .govuk-breadcrumbs--collapse-on-mobile .govuk-breadcrumbs__list {\n display: flex;\n }\n}\n\n.govuk-breadcrumbs--inverse {\n color: #ffffff;\n}\n.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:link, .govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:visited {\n color: #ffffff;\n}\n.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:hover, .govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:active {\n color: rgba(255, 255, 255, 0.99);\n}\n.govuk-breadcrumbs--inverse .govuk-breadcrumbs__link:focus {\n color: #0b0c0c;\n}\n.govuk-breadcrumbs--inverse .govuk-breadcrumbs__list-item::before {\n border-color: currentcolor;\n}\n\n.govuk-button {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.1875;\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n width: 100%;\n margin-top: 0;\n margin-right: 0;\n margin-left: 0;\n margin-bottom: 22px;\n padding: 8px 10px 7px;\n border: 2px solid transparent;\n border-radius: 0;\n color: #ffffff;\n background-color: #00703c;\n box-shadow: 0 2px 0 rgb(0, 44.8, 24);\n text-align: center;\n vertical-align: top;\n cursor: pointer;\n -webkit-appearance: none;\n}\n@media print {\n .govuk-button {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-button {\n font-size: 1.1875rem;\n line-height: 1;\n }\n}\n@media print {\n .govuk-button {\n font-size: 14pt;\n line-height: 19px;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-button {\n margin-bottom: 32px;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-button {\n width: auto;\n }\n}\n.govuk-button:link, .govuk-button:visited, .govuk-button:active, .govuk-button:hover {\n color: #ffffff;\n text-decoration: none;\n}\n.govuk-button::-moz-focus-inner {\n padding: 0;\n border: 0;\n}\n.govuk-button:hover {\n background-color: rgb(0, 89.6, 48);\n}\n.govuk-button:active {\n top: 2px;\n}\n.govuk-button:focus {\n border-color: #ffdd00;\n outline: 3px solid transparent;\n box-shadow: inset 0 0 0 1px #ffdd00;\n}\n.govuk-button:focus:not(:active):not(:hover) {\n border-color: #ffdd00;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 2px 0 #0b0c0c;\n}\n.govuk-button::before {\n content: \"\";\n display: block;\n position: absolute;\n top: -2px;\n right: -2px;\n bottom: -4px;\n left: -2px;\n background: transparent;\n}\n.govuk-button:active::before {\n top: -4px;\n}\n\n.govuk-button[disabled] {\n opacity: 0.5;\n}\n.govuk-button[disabled]:hover {\n background-color: #00703c;\n cursor: not-allowed;\n}\n.govuk-button[disabled]:active {\n top: 0;\n box-shadow: 0 2px 0 rgb(0, 44.8, 24);\n}\n\n.govuk-button--secondary {\n background-color: #f3f2f1;\n box-shadow: 0 2px 0 rgb(145.8, 145.2, 144.6);\n}\n.govuk-button--secondary, .govuk-button--secondary:link, .govuk-button--secondary:visited, .govuk-button--secondary:active, .govuk-button--secondary:hover {\n color: #0b0c0c;\n}\n.govuk-button--secondary:hover {\n background-color: rgb(218.7, 217.8, 216.9);\n}\n.govuk-button--secondary:hover[disabled] {\n background-color: #f3f2f1;\n}\n\n.govuk-button--warning {\n background-color: #d4351c;\n box-shadow: 0 2px 0 rgb(84.8, 21.2, 11.2);\n}\n.govuk-button--warning, .govuk-button--warning:link, .govuk-button--warning:visited, .govuk-button--warning:active, .govuk-button--warning:hover {\n color: #ffffff;\n}\n.govuk-button--warning:hover {\n background-color: rgb(169.6, 42.4, 22.4);\n}\n.govuk-button--warning:hover[disabled] {\n background-color: #d4351c;\n}\n\n.govuk-button--inverse {\n background-color: #ffffff;\n box-shadow: 0 2px 0 rgb(20.3, 78.4, 128.8);\n}\n.govuk-button--inverse, .govuk-button--inverse:link, .govuk-button--inverse:visited, .govuk-button--inverse:active, .govuk-button--inverse:hover {\n color: #1d70b8;\n}\n.govuk-button--inverse:hover {\n background-color: rgb(232.4, 240.7, 247.9);\n}\n.govuk-button--inverse:hover[disabled] {\n background-color: #ffffff;\n}\n\n.govuk-button--start {\n font-weight: 700;\n font-size: 1.125rem;\n line-height: 1;\n display: inline-flex;\n min-height: auto;\n justify-content: center;\n}\n@media (min-width: 40.0625em) {\n .govuk-button--start {\n font-size: 1.5rem;\n line-height: 1;\n }\n}\n@media print {\n .govuk-button--start {\n font-size: 18pt;\n line-height: 1;\n }\n}\n\n.govuk-button__start-icon {\n margin-left: 5px;\n vertical-align: middle;\n flex-shrink: 0;\n align-self: center;\n forced-color-adjust: auto;\n}\n@media (min-width: 48.0625em) {\n .govuk-button__start-icon {\n margin-left: 10px;\n }\n}\n\n.govuk-error-message {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 700;\n font-size: 1rem;\n line-height: 1.25;\n display: block;\n margin-top: 0;\n margin-bottom: 15px;\n clear: both;\n color: #d4351c;\n}\n@media print {\n .govuk-error-message {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-error-message {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-error-message {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n\n.govuk-hint {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n margin-bottom: 15px;\n color: #505a5f;\n}\n@media print {\n .govuk-hint {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-hint {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-hint {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n\n.govuk-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl) + .govuk-hint {\n margin-bottom: 10px;\n}\n\n.govuk-fieldset__legend:not(.govuk-fieldset__legend--m):not(.govuk-fieldset__legend--l):not(.govuk-fieldset__legend--xl) + .govuk-hint {\n margin-bottom: 10px;\n}\n\n.govuk-fieldset__legend + .govuk-hint {\n margin-top: -5px;\n}\n\n.govuk-label {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n color: #0b0c0c;\n display: block;\n margin-bottom: 5px;\n}\n@media print {\n .govuk-label {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-label {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-label {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media print {\n .govuk-label {\n color: #000000;\n }\n}\n\n.govuk-label--xl,\n.govuk-label--l,\n.govuk-label--m {\n font-weight: 700;\n margin-bottom: 15px;\n}\n\n.govuk-label--xl {\n font-size: 2rem;\n line-height: 1.09375;\n}\n@media (min-width: 40.0625em) {\n .govuk-label--xl {\n font-size: 3rem;\n line-height: 1.0416666667;\n }\n}\n@media print {\n .govuk-label--xl {\n font-size: 32pt;\n line-height: 1.15;\n }\n}\n\n.govuk-label--l {\n font-size: 1.5rem;\n line-height: 1.0416666667;\n}\n@media (min-width: 40.0625em) {\n .govuk-label--l {\n font-size: 2.25rem;\n line-height: 1.1111111111;\n }\n}\n@media print {\n .govuk-label--l {\n font-size: 24pt;\n line-height: 1.05;\n }\n}\n\n.govuk-label--m {\n font-size: 1.125rem;\n line-height: 1.1111111111;\n}\n@media (min-width: 40.0625em) {\n .govuk-label--m {\n font-size: 1.5rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-label--m {\n font-size: 18pt;\n line-height: 1.15;\n }\n}\n\n.govuk-label--s {\n font-weight: 700;\n}\n\n.govuk-label-wrapper {\n margin: 0;\n}\n\n.govuk-textarea {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n box-sizing: border-box;\n display: block;\n width: 100%;\n min-height: 40px;\n margin-bottom: 20px;\n padding: 5px;\n resize: vertical;\n border: 2px solid #0b0c0c;\n border-radius: 0;\n -webkit-appearance: none;\n}\n@media print {\n .govuk-textarea {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-textarea {\n font-size: 1.1875rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-textarea {\n font-size: 14pt;\n line-height: 1.25;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-textarea {\n margin-bottom: 30px;\n }\n}\n.govuk-textarea:focus {\n outline: 3px solid #ffdd00;\n outline-offset: 0;\n box-shadow: inset 0 0 0 2px;\n}\n.govuk-textarea:disabled {\n opacity: 0.5;\n color: inherit;\n background-color: transparent;\n cursor: not-allowed;\n}\n\n.govuk-textarea--error {\n border-color: #d4351c;\n}\n.govuk-textarea--error:focus {\n border-color: #0b0c0c;\n}\n\n.govuk-character-count {\n margin-bottom: 20px;\n}\n@media (min-width: 40.0625em) {\n .govuk-character-count {\n margin-bottom: 30px;\n }\n}\n.govuk-character-count .govuk-form-group,\n.govuk-character-count .govuk-textarea {\n margin-bottom: 5px;\n}\n\n.govuk-character-count__message {\n font-variant-numeric: tabular-nums;\n margin-top: 0;\n margin-bottom: 0;\n}\n.govuk-character-count__message::after {\n content: \"​\";\n}\n\n.govuk-character-count__message--disabled {\n visibility: hidden;\n}\n\n.govuk-fieldset {\n min-width: 0;\n margin: 0;\n padding: 0;\n border: 0;\n}\n.govuk-fieldset::after {\n content: \"\";\n display: block;\n clear: both;\n}\n\n@supports not (caret-color: auto) {\n .govuk-fieldset,\n x:-moz-any-link {\n display: table-cell;\n }\n}\n.govuk-fieldset__legend {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n color: #0b0c0c;\n box-sizing: border-box;\n display: table;\n max-width: 100%;\n margin-bottom: 10px;\n padding: 0;\n white-space: normal;\n}\n@media print {\n .govuk-fieldset__legend {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-fieldset__legend {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-fieldset__legend {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media print {\n .govuk-fieldset__legend {\n color: #000000;\n }\n}\n\n.govuk-fieldset__legend--xl,\n.govuk-fieldset__legend--l,\n.govuk-fieldset__legend--m {\n font-weight: 700;\n margin-bottom: 15px;\n}\n\n.govuk-fieldset__legend--xl {\n font-size: 2rem;\n line-height: 1.09375;\n}\n@media (min-width: 40.0625em) {\n .govuk-fieldset__legend--xl {\n font-size: 3rem;\n line-height: 1.0416666667;\n }\n}\n@media print {\n .govuk-fieldset__legend--xl {\n font-size: 32pt;\n line-height: 1.15;\n }\n}\n\n.govuk-fieldset__legend--l {\n font-size: 1.5rem;\n line-height: 1.0416666667;\n}\n@media (min-width: 40.0625em) {\n .govuk-fieldset__legend--l {\n font-size: 2.25rem;\n line-height: 1.1111111111;\n }\n}\n@media print {\n .govuk-fieldset__legend--l {\n font-size: 24pt;\n line-height: 1.05;\n }\n}\n\n.govuk-fieldset__legend--m {\n font-size: 1.125rem;\n line-height: 1.1111111111;\n}\n@media (min-width: 40.0625em) {\n .govuk-fieldset__legend--m {\n font-size: 1.5rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-fieldset__legend--m {\n font-size: 18pt;\n line-height: 1.15;\n }\n}\n\n.govuk-fieldset__legend--s {\n font-weight: 700;\n}\n\n.govuk-fieldset__heading {\n margin: 0;\n font-size: inherit;\n font-weight: inherit;\n}\n\n.govuk-checkboxes__item {\n display: flex;\n flex-wrap: wrap;\n position: relative;\n margin-bottom: 10px;\n}\n\n.govuk-checkboxes__item:last-child,\n.govuk-checkboxes__item:last-of-type {\n margin-bottom: 0;\n}\n\n.govuk-checkboxes__input {\n z-index: 1;\n width: 44px;\n height: 44px;\n margin: 0;\n opacity: 0;\n cursor: pointer;\n}\n\n.govuk-checkboxes__label {\n align-self: center;\n max-width: calc(100% - 74px);\n margin-bottom: 0;\n padding: 7px 15px;\n cursor: pointer;\n touch-action: manipulation;\n}\n\n.govuk-checkboxes__label::before {\n content: \"\";\n box-sizing: border-box;\n position: absolute;\n top: 2px;\n left: 2px;\n width: 40px;\n height: 40px;\n border: 2px solid currentcolor;\n background: transparent;\n}\n\n.govuk-checkboxes__label::after {\n content: \"\";\n box-sizing: border-box;\n position: absolute;\n top: 13px;\n left: 10px;\n width: 23px;\n height: 12px;\n transform: rotate(-45deg);\n border: solid;\n border-width: 0 0 5px 5px;\n border-top-color: transparent;\n opacity: 0;\n background: transparent;\n}\n\n.govuk-checkboxes__hint {\n display: block;\n width: 100%;\n margin-top: -5px;\n padding-right: 15px;\n padding-left: 59px;\n}\n\n.govuk-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl) + .govuk-checkboxes__hint {\n margin-bottom: 0;\n}\n\n.govuk-checkboxes__input:focus + .govuk-checkboxes__label::before {\n border-width: 4px;\n outline: 3px solid transparent;\n outline-offset: 1px;\n box-shadow: 0 0 0 3px #ffdd00;\n}\n@media screen and (forced-colors: active), (-ms-high-contrast: active) {\n .govuk-checkboxes__input:focus + .govuk-checkboxes__label::before {\n outline-color: Highlight;\n }\n}\n\n.govuk-checkboxes__input:checked + .govuk-checkboxes__label::after {\n opacity: 1;\n}\n\n.govuk-checkboxes__input:disabled,\n.govuk-checkboxes__input:disabled + .govuk-checkboxes__label {\n cursor: not-allowed;\n}\n\n.govuk-checkboxes__input:disabled + .govuk-checkboxes__label,\n.govuk-checkboxes__input:disabled ~ .govuk-hint {\n opacity: 0.5;\n}\n\n.govuk-checkboxes__divider {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n color: #0b0c0c;\n width: 40px;\n margin-bottom: 10px;\n text-align: center;\n}\n@media print {\n .govuk-checkboxes__divider {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-checkboxes__divider {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-checkboxes__divider {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media print {\n .govuk-checkboxes__divider {\n color: #000000;\n }\n}\n\n.govuk-checkboxes__conditional {\n margin-bottom: 15px;\n margin-left: 20px;\n padding-left: 35px;\n border-left: 4px solid #b1b4b6;\n}\n@media (min-width: 40.0625em) {\n .govuk-checkboxes__conditional {\n margin-bottom: 20px;\n }\n}\n.govuk-frontend-supported .govuk-checkboxes__conditional--hidden {\n display: none;\n}\n.govuk-checkboxes__conditional > :last-child {\n margin-bottom: 0;\n}\n\n.govuk-checkboxes--small .govuk-checkboxes__item {\n margin-bottom: 0;\n}\n.govuk-checkboxes--small .govuk-checkboxes__input {\n margin-left: -10px;\n}\n.govuk-checkboxes--small .govuk-checkboxes__label {\n padding-left: 1px;\n}\n.govuk-checkboxes--small .govuk-checkboxes__label::before {\n top: 10px;\n left: 0;\n width: 24px;\n height: 24px;\n}\n.govuk-checkboxes--small .govuk-checkboxes__label::after {\n top: 17px;\n left: 6px;\n width: 12px;\n height: 6.5px;\n border-width: 0 0 3px 3px;\n}\n.govuk-checkboxes--small .govuk-checkboxes__hint {\n padding-left: 34px;\n}\n.govuk-checkboxes--small .govuk-checkboxes__conditional {\n margin-left: 10px;\n padding-left: 20px;\n}\n.govuk-checkboxes--small .govuk-checkboxes__divider {\n width: 24px;\n margin-bottom: 5px;\n}\n.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label::before {\n outline: 3px dashed transparent;\n outline-offset: 1px;\n box-shadow: 0 0 0 10px #b1b4b6;\n}\n.govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label::before {\n box-shadow: 0 0 0 3px #ffdd00, 0 0 0 10px #b1b4b6;\n}\n@media screen and (forced-colors: active), (-ms-high-contrast: active) {\n .govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label::before {\n outline-color: Highlight;\n }\n}\n@media (hover: none), (pointer: coarse) {\n .govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label::before {\n box-shadow: initial;\n }\n .govuk-checkboxes--small .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label::before {\n box-shadow: 0 0 0 3px #ffdd00;\n }\n}\n\n.govuk-cookie-banner {\n padding-top: 20px;\n border-bottom: 10px solid transparent;\n background-color: #f3f2f1;\n}\n\n.govuk-cookie-banner[hidden] {\n display: none;\n}\n\n.govuk-cookie-banner__message {\n margin-bottom: -10px;\n}\n.govuk-cookie-banner__message[hidden] {\n display: none;\n}\n.govuk-cookie-banner__message:focus {\n outline: none;\n}\n\n.govuk-input {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n box-sizing: border-box;\n width: 100%;\n height: 2.5rem;\n margin-top: 0;\n padding: 5px;\n border: 2px solid #0b0c0c;\n border-radius: 0;\n appearance: none;\n}\n@media print {\n .govuk-input {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-input {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-input {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n.govuk-input:focus {\n outline: 3px solid #ffdd00;\n outline-offset: 0;\n box-shadow: inset 0 0 0 2px;\n}\n.govuk-input:disabled {\n opacity: 0.5;\n color: inherit;\n background-color: transparent;\n cursor: not-allowed;\n}\n\n.govuk-input::-webkit-outer-spin-button,\n.govuk-input::-webkit-inner-spin-button {\n margin: 0;\n -webkit-appearance: none;\n}\n\n.govuk-input[type=number] {\n -moz-appearance: textfield;\n}\n\n.govuk-input--error {\n border-color: #d4351c;\n}\n.govuk-input--error:focus {\n border-color: #0b0c0c;\n}\n\n.govuk-input--extra-letter-spacing {\n font-variant-numeric: tabular-nums;\n letter-spacing: 0.05em;\n}\n\n.govuk-input--width-30 {\n max-width: 29.5em;\n}\n\n.govuk-input--width-20 {\n max-width: 20.5em;\n}\n\n.govuk-input--width-10 {\n max-width: 11.5em;\n}\n\n.govuk-input--width-5 {\n max-width: 5.5em;\n}\n\n.govuk-input--width-4 {\n max-width: 4.5em;\n}\n\n.govuk-input--width-3 {\n max-width: 3.75em;\n}\n\n.govuk-input--width-2 {\n max-width: 2.75em;\n}\n\n.govuk-input__wrapper {\n display: flex;\n}\n.govuk-input__wrapper .govuk-input {\n flex: 0 1 auto;\n}\n.govuk-input__wrapper .govuk-input:focus {\n z-index: 1;\n}\n@media (max-width: 19.99em) {\n .govuk-input__wrapper {\n display: block;\n }\n .govuk-input__wrapper .govuk-input {\n max-width: 100%;\n }\n}\n\n.govuk-input__prefix,\n.govuk-input__suffix {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 2.5rem;\n height: 2.5rem;\n padding: 5px;\n border: 2px solid #0b0c0c;\n background-color: #f3f2f1;\n text-align: center;\n white-space: nowrap;\n cursor: default;\n flex: 0 0 auto;\n}\n@media print {\n .govuk-input__prefix,\n .govuk-input__suffix {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-input__prefix,\n .govuk-input__suffix {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-input__prefix,\n .govuk-input__suffix {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media (max-width: 19.99em) {\n .govuk-input__prefix,\n .govuk-input__suffix {\n display: block;\n height: 100%;\n white-space: normal;\n }\n}\n\n@media (max-width: 19.99em) {\n .govuk-input__prefix {\n border-bottom: 0;\n }\n}\n@media (min-width: 20em) {\n .govuk-input__prefix {\n border-right: 0;\n }\n}\n\n@media (max-width: 19.99em) {\n .govuk-input__suffix {\n border-top: 0;\n }\n}\n@media (min-width: 20em) {\n .govuk-input__suffix {\n border-left: 0;\n }\n}\n\n.govuk-date-input {\n font-size: 0;\n}\n.govuk-date-input::after {\n content: \"\";\n display: block;\n clear: both;\n}\n\n.govuk-date-input__item {\n display: inline-block;\n margin-right: 20px;\n margin-bottom: 0;\n}\n\n.govuk-date-input__label {\n display: block;\n}\n\n.govuk-date-input__input {\n margin-bottom: 0;\n}\n\n.govuk-details {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n color: #0b0c0c;\n margin-bottom: 20px;\n display: block;\n}\n@media print {\n .govuk-details {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-details {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-details {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media print {\n .govuk-details {\n color: #000000;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-details {\n margin-bottom: 30px;\n }\n}\n\n.govuk-details__summary {\n display: block;\n}\n\n.govuk-details[open] .govuk-details__summary {\n margin-bottom: 5px;\n}\n\n.govuk-details__summary-text > :first-child {\n margin-top: 0;\n}\n.govuk-details__summary-text > :only-child,\n.govuk-details__summary-text > :last-child {\n margin-bottom: 0;\n}\n\n.govuk-details__text {\n padding-top: 15px;\n padding-bottom: 15px;\n padding-left: 20px;\n}\n\n.govuk-details__text p {\n margin-top: 0;\n margin-bottom: 20px;\n}\n\n.govuk-details__text > :last-child {\n margin-bottom: 0;\n}\n\n@media screen\\0 {\n .govuk-details {\n border-left: 10px solid #b1b4b6;\n }\n .govuk-details__summary {\n margin-top: 15px;\n }\n .govuk-details__summary-text {\n font-weight: 700;\n margin-bottom: 15px;\n padding-left: 20px;\n }\n}\n@media screen\\0 and (min-width: 40.0625em) {\n .govuk-details__summary-text {\n margin-bottom: 20px;\n }\n}\n@supports not (-ms-ime-align: auto) {\n .govuk-details__summary {\n position: relative;\n width: fit-content;\n padding-left: 25px;\n color: #1d70b8;\n cursor: pointer;\n }\n .govuk-details__summary:hover {\n color: #003078;\n }\n .govuk-details__summary:focus {\n outline: 3px solid transparent;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;\n text-decoration: none;\n box-decoration-break: clone;\n }\n .govuk-details__summary-text {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n }\n .govuk-details__summary:hover .govuk-details__summary-text {\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n text-decoration-skip: none;\n }\n .govuk-details__summary:focus .govuk-details__summary-text {\n text-decoration: none;\n }\n .govuk-details__summary::-webkit-details-marker {\n display: none;\n }\n .govuk-details__summary::before {\n content: \"\";\n position: absolute;\n top: -1px;\n bottom: 0;\n left: 0;\n margin: auto;\n display: block;\n width: 0;\n height: 0;\n border-style: solid;\n border-color: transparent;\n clip-path: polygon(0% 0%, 100% 50%, 0% 100%);\n border-width: 7px 0 7px 12.124px;\n border-left-color: inherit;\n }\n .govuk-details[open] > .govuk-details__summary::before {\n display: block;\n width: 0;\n height: 0;\n border-style: solid;\n border-color: transparent;\n clip-path: polygon(0% 0%, 50% 100%, 100% 0%);\n border-width: 12.124px 7px 0 7px;\n border-top-color: inherit;\n }\n .govuk-details__text {\n border-left: 5px solid #b1b4b6;\n }\n}\n.govuk-error-summary {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n color: #0b0c0c;\n padding: 15px;\n margin-bottom: 30px;\n border: 5px solid #d4351c;\n}\n@media print {\n .govuk-error-summary {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-error-summary {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-error-summary {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media print {\n .govuk-error-summary {\n color: #000000;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-error-summary {\n padding: 20px;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-error-summary {\n margin-bottom: 50px;\n }\n}\n.govuk-error-summary:focus {\n outline: 3px solid #ffdd00;\n}\n\n.govuk-error-summary__title {\n font-size: 1.125rem;\n line-height: 1.1111111111;\n font-weight: 700;\n margin-top: 0;\n margin-bottom: 15px;\n}\n@media (min-width: 40.0625em) {\n .govuk-error-summary__title {\n font-size: 1.5rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-error-summary__title {\n font-size: 18pt;\n line-height: 1.15;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-error-summary__title {\n margin-bottom: 20px;\n }\n}\n\n.govuk-error-summary__body p {\n margin-bottom: 0;\n}\n.govuk-error-summary__body > * + * {\n margin-top: 15px;\n}\n@media (min-width: 40.0625em) {\n .govuk-error-summary__body > * + * {\n margin-top: 20px;\n }\n}\n.govuk-error-summary__body > :last-child {\n margin-bottom: 5px;\n}\n\n.govuk-error-summary__list {\n margin-bottom: 0;\n}\n\n.govuk-error-summary__list li:last-child {\n margin-bottom: 0;\n}\n\n.govuk-error-summary__list a {\n font-weight: 700;\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n}\n@media print {\n .govuk-error-summary__list a {\n font-family: sans-serif;\n }\n}\n.govuk-error-summary__list a:hover {\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n text-decoration-skip: none;\n}\n.govuk-error-summary__list a:focus {\n outline: 3px solid transparent;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;\n text-decoration: none;\n box-decoration-break: clone;\n}\n.govuk-error-summary__list a:link, .govuk-error-summary__list a:visited {\n color: #d4351c;\n}\n.govuk-error-summary__list a:hover {\n color: rgb(148.4, 37.1, 19.6);\n}\n.govuk-error-summary__list a:active {\n color: #d4351c;\n}\n.govuk-error-summary__list a:focus {\n color: #0b0c0c;\n}\n\n.govuk-exit-this-page {\n margin-bottom: 30px;\n position: sticky;\n z-index: 1000;\n top: 0;\n left: 0;\n width: 100%;\n}\n@media (min-width: 40.0625em) {\n .govuk-exit-this-page {\n margin-bottom: 50px;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-exit-this-page {\n display: inline-block;\n right: 0;\n left: auto;\n width: auto;\n float: right;\n }\n}\n\n.govuk-exit-this-page__button {\n margin-bottom: 0;\n}\n\n.govuk-exit-this-page__indicator {\n padding: 10px;\n display: none;\n padding-bottom: 0;\n color: inherit;\n line-height: 0;\n text-align: center;\n pointer-events: none;\n}\n\n.govuk-exit-this-page__indicator--visible {\n display: block;\n}\n\n.govuk-exit-this-page__indicator-light {\n box-sizing: border-box;\n display: inline-block;\n width: 0.75em;\n height: 0.75em;\n margin: 0 0.125em;\n border-width: 2px;\n border-style: solid;\n border-radius: 50%;\n border-color: currentcolor;\n}\n\n.govuk-exit-this-page__indicator-light--on {\n border-width: 0.375em;\n}\n\n@media only print {\n .govuk-exit-this-page {\n display: none;\n }\n}\n.govuk-exit-this-page-overlay {\n position: fixed;\n z-index: 9999;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: #ffffff;\n}\n\n.govuk-exit-this-page-hide-content * {\n display: none !important;\n}\n.govuk-exit-this-page-hide-content .govuk-exit-this-page-overlay {\n display: block !important;\n}\n\n.govuk-file-upload {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n color: #0b0c0c;\n max-width: 100%;\n margin-left: -5px;\n padding: 5px;\n}\n@media print {\n .govuk-file-upload {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-file-upload {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-file-upload {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media print {\n .govuk-file-upload {\n color: #000000;\n }\n}\n.govuk-file-upload::-webkit-file-upload-button {\n -webkit-appearance: button;\n color: inherit;\n font: inherit;\n}\n.govuk-file-upload:focus {\n outline: 3px solid #ffdd00;\n box-shadow: inset 0 0 0 4px #0b0c0c;\n}\n.govuk-file-upload:focus-within {\n outline: 3px solid #ffdd00;\n box-shadow: inset 0 0 0 4px #0b0c0c;\n}\n.govuk-file-upload:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.govuk-footer {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 0.875rem;\n line-height: 1.1428571429;\n padding-top: 25px;\n padding-bottom: 15px;\n border-top: 1px solid #b1b4b6;\n color: #0b0c0c;\n background: #f3f2f1;\n}\n@media print {\n .govuk-footer {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-footer {\n font-size: 1rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-footer {\n font-size: 14pt;\n line-height: 1.2;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-footer {\n padding-top: 40px;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-footer {\n padding-bottom: 25px;\n }\n}\n\n.govuk-footer__link {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n}\n@media print {\n .govuk-footer__link {\n font-family: sans-serif;\n }\n}\n.govuk-footer__link:hover {\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n text-decoration-skip: none;\n}\n.govuk-footer__link:focus {\n outline: 3px solid transparent;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;\n text-decoration: none;\n box-decoration-break: clone;\n}\n.govuk-footer__link:link, .govuk-footer__link:visited {\n color: #0b0c0c;\n}\n@media print {\n .govuk-footer__link:link, .govuk-footer__link:visited {\n color: #000000;\n }\n}\n.govuk-footer__link:hover {\n color: rgba(11, 12, 12, 0.99);\n}\n.govuk-footer__link:active, .govuk-footer__link:focus {\n color: #0b0c0c;\n}\n@media print {\n .govuk-footer__link:active, .govuk-footer__link:focus {\n color: #000000;\n }\n}\n\n.govuk-footer__section-break {\n margin: 0;\n margin-bottom: 30px;\n border: 0;\n border-bottom: 1px solid #b1b4b6;\n}\n@media (min-width: 40.0625em) {\n .govuk-footer__section-break {\n margin-bottom: 50px;\n }\n}\n\n.govuk-footer__meta {\n display: flex;\n margin-right: -15px;\n margin-left: -15px;\n flex-wrap: wrap;\n align-items: flex-end;\n justify-content: center;\n}\n\n.govuk-footer__meta-item {\n margin-right: 15px;\n margin-bottom: 25px;\n margin-left: 15px;\n}\n\n.govuk-footer__meta-item--grow {\n flex: 1;\n}\n@media (max-width: 40.0525em) {\n .govuk-footer__meta-item--grow {\n flex-basis: 320px;\n }\n}\n\n.govuk-footer__licence-logo {\n display: inline-block;\n margin-right: 10px;\n vertical-align: top;\n forced-color-adjust: auto;\n}\n@media (max-width: 48.0525em) {\n .govuk-footer__licence-logo {\n margin-bottom: 15px;\n }\n}\n\n.govuk-footer__licence-description {\n display: inline-block;\n text-wrap: balance;\n}\n\n.govuk-footer__copyright-logo {\n display: inline-block;\n min-width: 125px;\n padding-top: 112px;\n background-image: url(\"/assets/images/govuk-crest.svg\");\n background-repeat: no-repeat;\n background-position: 50% 0%;\n background-size: 125px 102px;\n text-align: center;\n white-space: nowrap;\n}\n\n.govuk-footer__inline-list {\n margin-top: 0;\n margin-bottom: 15px;\n padding: 0;\n}\n\n.govuk-footer__meta-custom {\n margin-bottom: 20px;\n}\n\n.govuk-footer__inline-list-item {\n display: inline-block;\n margin-right: 15px;\n margin-bottom: 5px;\n}\n\n.govuk-footer__heading {\n margin-bottom: 30px;\n padding-bottom: 20px;\n border-bottom: 1px solid #b1b4b6;\n}\n@media (max-width: 40.0525em) {\n .govuk-footer__heading {\n padding-bottom: 10px;\n }\n}\n\n.govuk-footer__navigation {\n margin-right: -15px;\n margin-left: -15px;\n}\n.govuk-footer__navigation::after {\n content: \"\";\n display: block;\n clear: both;\n}\n\n.govuk-footer__section {\n display: inline-block;\n margin-bottom: 30px;\n vertical-align: top;\n}\n\n.govuk-footer__list {\n margin: 0;\n padding: 0;\n list-style: none;\n column-gap: 30px;\n}\n\n@media (min-width: 48.0625em) {\n .govuk-footer__list--columns-2 {\n column-count: 2;\n }\n .govuk-footer__list--columns-3 {\n column-count: 3;\n }\n}\n.govuk-footer__list-item {\n margin-bottom: 15px;\n}\n@media (min-width: 40.0625em) {\n .govuk-footer__list-item {\n margin-bottom: 20px;\n }\n}\n\n.govuk-footer__list-item:last-child {\n margin-bottom: 0;\n}\n\n.govuk-header {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 0.875rem;\n line-height: 1;\n border-bottom: 10px solid #ffffff;\n color: #ffffff;\n background: #0b0c0c;\n}\n@media print {\n .govuk-header {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-header {\n font-size: 1rem;\n line-height: 1;\n }\n}\n@media print {\n .govuk-header {\n font-size: 14pt;\n line-height: 1;\n }\n}\n\n.govuk-header__container--full-width {\n padding: 0 15px;\n border-color: #1d70b8;\n}\n.govuk-header__container--full-width .govuk-header__menu-button {\n right: 15px;\n}\n\n.govuk-header__container {\n position: relative;\n margin-bottom: -10px;\n padding-top: 10px;\n border-bottom: 10px solid #1d70b8;\n}\n.govuk-header__container::after {\n content: \"\";\n display: block;\n clear: both;\n}\n\n.govuk-header--full-width-border {\n border-bottom-color: #1d70b8;\n}\n.govuk-header--full-width-border .govuk-header__container {\n border-bottom-color: transparent;\n}\n\n.govuk-header__logotype {\n display: inline-block;\n position: relative;\n top: -3px;\n margin-right: 5px;\n fill: currentcolor;\n vertical-align: top;\n}\n@media (forced-colors: active) {\n .govuk-header__logotype {\n forced-color-adjust: none;\n color: linktext;\n }\n}\n.govuk-header__logotype:last-child {\n margin-right: 0;\n}\n\n.govuk-header__product-name {\n font-size: 1.125rem;\n line-height: 1;\n font-weight: 400;\n display: inline-table;\n margin-top: 10px;\n vertical-align: top;\n}\n@media (min-width: 40.0625em) {\n .govuk-header__product-name {\n font-size: 1.5rem;\n line-height: 1;\n }\n}\n@media print {\n .govuk-header__product-name {\n font-size: 18pt;\n line-height: 1;\n }\n}\n@-moz-document url-prefix() {\n .govuk-header__product-name {\n margin-top: 9.5px;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-header__product-name {\n margin-top: 5px;\n }\n @-moz-document url-prefix() {\n .govuk-header__product-name {\n margin-top: 4.5px;\n }\n }\n}\n\n.govuk-header__link {\n text-decoration: none;\n}\n.govuk-header__link:link, .govuk-header__link:visited {\n color: #ffffff;\n}\n.govuk-header__link:hover, .govuk-header__link:active {\n color: rgba(255, 255, 255, 0.99);\n}\n.govuk-header__link:focus {\n color: #0b0c0c;\n}\n.govuk-header__link:hover {\n text-decoration: underline;\n text-decoration-thickness: 3px;\n text-underline-offset: 0.1578em;\n}\n.govuk-header__link:focus {\n outline: 3px solid transparent;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;\n text-decoration: none;\n box-decoration-break: clone;\n}\n\n.govuk-header__link--homepage {\n display: inline-block;\n margin-right: 10px;\n font-size: 30px;\n}\n@media (min-width: 48.0625em) {\n .govuk-header__link--homepage {\n display: inline;\n }\n .govuk-header__link--homepage:focus {\n box-shadow: 0 0 #ffdd00;\n }\n}\n.govuk-header__link--homepage:link, .govuk-header__link--homepage:visited {\n text-decoration: none;\n}\n.govuk-header__link--homepage:hover, .govuk-header__link--homepage:active {\n margin-bottom: -3px;\n border-bottom: 3px solid;\n}\n.govuk-header__link--homepage:focus {\n margin-bottom: 0;\n border-bottom: 0;\n}\n\n.govuk-header__service-name {\n display: inline-block;\n margin-bottom: 10px;\n font-size: 1.125rem;\n line-height: 1.1111111111;\n font-weight: 700;\n}\n@media (min-width: 40.0625em) {\n .govuk-header__service-name {\n font-size: 1.5rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-header__service-name {\n font-size: 18pt;\n line-height: 1.15;\n }\n}\n\n.govuk-header__logo,\n.govuk-header__content {\n box-sizing: border-box;\n}\n\n.govuk-header__logo {\n margin-bottom: 10px;\n padding-right: 80px;\n}\n@media (min-width: 48.0625em) {\n .govuk-header__logo {\n width: 33.33%;\n padding-right: 15px;\n float: left;\n vertical-align: top;\n }\n .govuk-header__logo:last-child {\n width: auto;\n padding-right: 0;\n float: none;\n }\n}\n\n@media (min-width: 48.0625em) {\n .govuk-header__content {\n width: 66.66%;\n padding-left: 15px;\n float: left;\n }\n}\n\n.govuk-header__menu-button {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 0.875rem;\n line-height: 1.1428571429;\n position: absolute;\n top: 13px;\n right: 0;\n max-width: 80px;\n min-height: 24px;\n margin: 0;\n padding: 0;\n border: 0;\n color: #ffffff;\n background: none;\n word-break: break-all;\n cursor: pointer;\n}\n@media print {\n .govuk-header__menu-button {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-header__menu-button {\n font-size: 1rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-header__menu-button {\n font-size: 14pt;\n line-height: 1.2;\n }\n}\n.govuk-header__menu-button:hover {\n text-decoration: solid underline 3px;\n text-underline-offset: 0.1578em;\n}\n.govuk-header__menu-button:focus {\n outline: 3px solid transparent;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;\n text-decoration: none;\n box-decoration-break: clone;\n}\n.govuk-header__menu-button::after {\n display: inline-block;\n width: 0;\n height: 0;\n border-style: solid;\n border-color: transparent;\n clip-path: polygon(0% 0%, 50% 100%, 100% 0%);\n border-width: 8.66px 5px 0 5px;\n border-top-color: inherit;\n content: \"\";\n margin-left: 5px;\n}\n.govuk-header__menu-button[aria-expanded=true]::after {\n display: inline-block;\n width: 0;\n height: 0;\n border-style: solid;\n border-color: transparent;\n clip-path: polygon(50% 0%, 0% 100%, 100% 100%);\n border-width: 0 5px 8.66px;\n border-bottom-color: inherit;\n}\n@media (min-width: 40.0625em) {\n .govuk-header__menu-button {\n top: 15px;\n }\n}\n.govuk-frontend-supported .govuk-header__menu-button {\n display: block;\n}\n.govuk-header__menu-button[hidden], .govuk-frontend-supported .govuk-header__menu-button[hidden] {\n display: none;\n}\n\n@media (min-width: 48.0625em) {\n .govuk-header__navigation {\n margin-bottom: 10px;\n }\n}\n\n.govuk-header__navigation-list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.govuk-header__navigation-list[hidden] {\n display: none;\n}\n\n@media (min-width: 48.0625em) {\n .govuk-header__navigation--end {\n margin: 0;\n padding: 5px 0;\n text-align: right;\n }\n}\n\n.govuk-header__navigation-item {\n padding: 10px 0;\n border-bottom: 1px solid #2e3133;\n}\n@media (min-width: 48.0625em) {\n .govuk-header__navigation-item {\n display: inline-block;\n margin-right: 15px;\n padding: 5px 0;\n border: 0;\n }\n}\n.govuk-header__navigation-item a {\n font-size: 0.875rem;\n line-height: 1.1428571429;\n font-weight: 700;\n white-space: nowrap;\n}\n@media (min-width: 40.0625em) {\n .govuk-header__navigation-item a {\n font-size: 1rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-header__navigation-item a {\n font-size: 14pt;\n line-height: 1.2;\n }\n}\n\n.govuk-header__navigation-item--active a:link, .govuk-header__navigation-item--active a:hover, .govuk-header__navigation-item--active a:visited {\n color: #1d8feb;\n}\n@media print {\n .govuk-header__navigation-item--active a {\n color: #1d70b8;\n }\n}\n.govuk-header__navigation-item--active a:focus {\n color: #0b0c0c;\n}\n\n.govuk-header__navigation-item:last-child {\n margin-right: 0;\n border-bottom: 0;\n}\n\n@media print {\n .govuk-header {\n border-bottom-width: 0;\n color: #0b0c0c;\n background: transparent;\n }\n .govuk-header__link:link, .govuk-header__link:visited {\n color: #0b0c0c;\n }\n .govuk-header__link::after {\n display: none;\n }\n}\n.govuk-inset-text {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n color: #0b0c0c;\n padding: 15px;\n margin-top: 20px;\n margin-bottom: 20px;\n clear: both;\n border-left: 10px solid #b1b4b6;\n}\n@media print {\n .govuk-inset-text {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-inset-text {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-inset-text {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media print {\n .govuk-inset-text {\n color: #000000;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-inset-text {\n margin-top: 30px;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-inset-text {\n margin-bottom: 30px;\n }\n}\n.govuk-inset-text > :first-child {\n margin-top: 0;\n}\n.govuk-inset-text > :only-child,\n.govuk-inset-text > :last-child {\n margin-bottom: 0;\n}\n\n.govuk-notification-banner {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n margin-bottom: 30px;\n border: 5px solid #1d70b8;\n background-color: #1d70b8;\n}\n@media print {\n .govuk-notification-banner {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-notification-banner {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-notification-banner {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-notification-banner {\n margin-bottom: 50px;\n }\n}\n.govuk-notification-banner:focus {\n outline: 3px solid #ffdd00;\n}\n\n.govuk-notification-banner__header {\n padding: 2px 15px 5px;\n border-bottom: 1px solid transparent;\n}\n@media (min-width: 40.0625em) {\n .govuk-notification-banner__header {\n padding: 2px 20px 5px;\n }\n}\n\n.govuk-notification-banner__title {\n font-size: 1rem;\n line-height: 1.25;\n font-weight: 700;\n margin: 0;\n padding: 0;\n color: #ffffff;\n}\n@media (min-width: 40.0625em) {\n .govuk-notification-banner__title {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-notification-banner__title {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n\n.govuk-notification-banner__content {\n color: #0b0c0c;\n padding: 15px;\n background-color: #ffffff;\n}\n@media print {\n .govuk-notification-banner__content {\n color: #000000;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-notification-banner__content {\n padding: 20px;\n }\n}\n.govuk-notification-banner__content > * {\n box-sizing: border-box;\n max-width: 605px;\n}\n.govuk-notification-banner__content > :last-child {\n margin-bottom: 0;\n}\n\n.govuk-notification-banner__heading {\n font-size: 1.125rem;\n line-height: 1.1111111111;\n font-weight: 700;\n margin: 0 0 15px;\n padding: 0;\n}\n@media (min-width: 40.0625em) {\n .govuk-notification-banner__heading {\n font-size: 1.5rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-notification-banner__heading {\n font-size: 18pt;\n line-height: 1.15;\n }\n}\n\n.govuk-notification-banner__link {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n}\n@media print {\n .govuk-notification-banner__link {\n font-family: sans-serif;\n }\n}\n.govuk-notification-banner__link:hover {\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n text-decoration-skip: none;\n}\n.govuk-notification-banner__link:focus {\n outline: 3px solid transparent;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;\n text-decoration: none;\n box-decoration-break: clone;\n}\n.govuk-notification-banner__link:link {\n color: #1d70b8;\n}\n.govuk-notification-banner__link:visited {\n color: #1d70b8;\n}\n.govuk-notification-banner__link:hover {\n color: #003078;\n}\n.govuk-notification-banner__link:active {\n color: #0b0c0c;\n}\n.govuk-notification-banner__link:focus {\n color: #0b0c0c;\n}\n\n.govuk-notification-banner--success {\n border-color: #00703c;\n background-color: #00703c;\n}\n.govuk-notification-banner--success .govuk-notification-banner__link:link, .govuk-notification-banner--success .govuk-notification-banner__link:visited {\n color: #00703c;\n}\n.govuk-notification-banner--success .govuk-notification-banner__link:hover {\n color: rgb(0, 78.4, 42);\n}\n.govuk-notification-banner--success .govuk-notification-banner__link:active {\n color: #00703c;\n}\n.govuk-notification-banner--success .govuk-notification-banner__link:focus {\n color: #0b0c0c;\n}\n\n.govuk-pagination {\n margin-bottom: 20px;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-wrap: wrap;\n}\n@media (min-width: 40.0625em) {\n .govuk-pagination {\n margin-bottom: 30px;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-pagination {\n flex-direction: row;\n align-items: flex-start;\n }\n}\n\n.govuk-pagination__list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.govuk-pagination__item,\n.govuk-pagination__next,\n.govuk-pagination__prev {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n box-sizing: border-box;\n position: relative;\n min-width: 45px;\n min-height: 45px;\n padding: 10px 15px;\n float: left;\n}\n@media print {\n .govuk-pagination__item,\n .govuk-pagination__next,\n .govuk-pagination__prev {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-pagination__item,\n .govuk-pagination__next,\n .govuk-pagination__prev {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-pagination__item,\n .govuk-pagination__next,\n .govuk-pagination__prev {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n.govuk-pagination__item:hover,\n.govuk-pagination__next:hover,\n.govuk-pagination__prev:hover {\n background-color: #f3f2f1;\n}\n\n.govuk-pagination__item {\n display: none;\n text-align: center;\n}\n@media (min-width: 40.0625em) {\n .govuk-pagination__item {\n display: block;\n }\n}\n\n.govuk-pagination__prev,\n.govuk-pagination__next {\n font-weight: 700;\n}\n.govuk-pagination__prev .govuk-pagination__link,\n.govuk-pagination__next .govuk-pagination__link {\n display: flex;\n align-items: center;\n}\n\n.govuk-pagination__prev {\n padding-left: 0;\n}\n\n.govuk-pagination__next {\n padding-right: 0;\n}\n\n.govuk-pagination__item--current,\n.govuk-pagination__item--ellipses,\n.govuk-pagination__item:first-child,\n.govuk-pagination__item:last-child {\n display: block;\n}\n\n.govuk-pagination__item--current {\n font-weight: 700;\n outline: 1px solid transparent;\n background-color: #1d70b8;\n}\n.govuk-pagination__item--current:hover {\n background-color: #1d70b8;\n}\n.govuk-pagination__item--current .govuk-pagination__link:link, .govuk-pagination__item--current .govuk-pagination__link:visited {\n color: #ffffff;\n}\n.govuk-pagination__item--current .govuk-pagination__link:hover, .govuk-pagination__item--current .govuk-pagination__link:active {\n color: rgba(255, 255, 255, 0.99);\n}\n.govuk-pagination__item--current .govuk-pagination__link:focus {\n color: #0b0c0c;\n}\n\n.govuk-pagination__item--ellipses {\n font-weight: 700;\n color: #505a5f;\n}\n.govuk-pagination__item--ellipses:hover {\n background-color: transparent;\n}\n\n.govuk-pagination__link {\n display: block;\n min-width: 15px;\n}\n@media screen {\n .govuk-pagination__link::after {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n.govuk-pagination__link:hover .govuk-pagination__link-title--decorated, .govuk-pagination__link:active .govuk-pagination__link-title--decorated {\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n}\n.govuk-pagination__link:hover .govuk-pagination__link-label,\n.govuk-pagination__link:hover .govuk-pagination__link-title--decorated, .govuk-pagination__link:active .govuk-pagination__link-label,\n.govuk-pagination__link:active .govuk-pagination__link-title--decorated {\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n text-decoration-skip: none;\n}\n.govuk-pagination__link:focus .govuk-pagination__icon {\n color: #0b0c0c;\n}\n.govuk-pagination__link:focus .govuk-pagination__link-label {\n text-decoration: none;\n}\n.govuk-pagination__link:focus .govuk-pagination__link-title--decorated {\n text-decoration: none;\n}\n\n.govuk-pagination__link-label {\n font-weight: 400;\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n display: inline-block;\n}\n\n.govuk-pagination__icon {\n width: 0.9375rem;\n height: 0.8125rem;\n color: #505a5f;\n fill: currentcolor;\n forced-color-adjust: auto;\n}\n\n.govuk-pagination__icon--prev {\n margin-right: 15px;\n}\n\n.govuk-pagination__icon--next {\n margin-left: 15px;\n}\n\n.govuk-pagination--block {\n display: block;\n}\n.govuk-pagination--block .govuk-pagination__next,\n.govuk-pagination--block .govuk-pagination__prev {\n padding-left: 0;\n float: none;\n}\n.govuk-pagination--block .govuk-pagination__next .govuk-pagination__link,\n.govuk-pagination--block .govuk-pagination__prev .govuk-pagination__link {\n display: inline-block;\n}\n.govuk-pagination--block .govuk-pagination__next {\n padding-right: 15px;\n}\n.govuk-pagination--block .govuk-pagination__prev + .govuk-pagination__next {\n border-top: 1px solid #b1b4b6;\n}\n.govuk-pagination--block .govuk-pagination__link-title::after {\n content: \"\";\n display: block;\n}\n.govuk-pagination--block .govuk-pagination__link {\n padding-left: 30px;\n text-align: left;\n}\n.govuk-pagination--block .govuk-pagination__link:not(:focus) {\n text-decoration: none;\n}\n.govuk-pagination--block .govuk-pagination__icon {\n margin-top: 0.326em;\n margin-left: -30px;\n float: left;\n}\n\n.govuk-panel {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1.5rem;\n line-height: 1.0416666667;\n box-sizing: border-box;\n margin-bottom: 15px;\n padding: 35px;\n border: 5px solid transparent;\n text-align: center;\n}\n@media print {\n .govuk-panel {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-panel {\n font-size: 2.25rem;\n line-height: 1.1111111111;\n }\n}\n@media print {\n .govuk-panel {\n font-size: 24pt;\n line-height: 1.05;\n }\n}\n@media (max-width: 40.0525em) {\n .govuk-panel {\n padding: 10px;\n overflow-wrap: break-word;\n word-wrap: break-word;\n }\n}\n\n.govuk-panel--confirmation {\n color: #ffffff;\n background: #00703c;\n}\n@media print {\n .govuk-panel--confirmation {\n border-color: currentcolor;\n color: #000000;\n background: none;\n }\n}\n\n.govuk-panel__title {\n font-size: 2rem;\n line-height: 1.09375;\n font-weight: 700;\n margin-top: 0;\n margin-bottom: 30px;\n}\n@media (min-width: 40.0625em) {\n .govuk-panel__title {\n font-size: 3rem;\n line-height: 1.0416666667;\n }\n}\n@media print {\n .govuk-panel__title {\n font-size: 32pt;\n line-height: 1.15;\n }\n}\n\n.govuk-panel__title:last-child {\n margin-bottom: 0;\n}\n\n@media (min-width: 20em) {\n .govuk-password-input__wrapper {\n flex-direction: row;\n align-items: flex-start;\n }\n}\n\n.govuk-password-input__input::-ms-reveal {\n display: none;\n}\n\n.govuk-password-input__toggle {\n margin-top: 5px;\n margin-bottom: 0;\n}\n.govuk-password-input__toggle[hidden] {\n display: none;\n}\n@media (min-width: 20em) {\n .govuk-password-input__toggle {\n width: auto;\n flex-shrink: 0;\n flex-basis: 5em;\n margin-top: 0;\n margin-left: 5px;\n }\n}\n\n.govuk-tag {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n display: inline-block;\n max-width: 160px;\n margin-top: -2px;\n margin-bottom: -3px;\n padding-top: 2px;\n padding-right: 8px;\n padding-bottom: 3px;\n padding-left: 8px;\n color: rgb(11.6, 44.8, 73.6);\n background-color: rgb(187.2, 212.1, 233.7);\n text-decoration: none;\n overflow-wrap: break-word;\n}\n@media print {\n .govuk-tag {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-tag {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-tag {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media screen and (forced-colors: active) {\n .govuk-tag {\n font-weight: bold;\n }\n}\n\n.govuk-tag--grey {\n color: rgb(40, 45, 47.5);\n background-color: rgb(228.75, 230.25, 231);\n}\n\n.govuk-tag--purple {\n color: rgb(72.5, 21.5, 68);\n background-color: rgb(238.5, 223.2, 237.15);\n}\n\n.govuk-tag--turquoise {\n color: rgb(16, 64.4, 60.4);\n background-color: rgb(212, 236.2, 234.2);\n}\n\n.govuk-tag--blue {\n color: rgb(11.6, 44.8, 73.6);\n background-color: rgb(187.2, 212.1, 233.7);\n}\n\n.govuk-tag--light-blue {\n color: rgb(11.6, 44.8, 73.6);\n background-color: rgb(232.4, 240.7, 247.9);\n}\n\n.govuk-tag--yellow {\n color: rgb(89.25, 77.35, 0);\n background-color: rgb(255, 246.5, 191.25);\n}\n\n.govuk-tag--orange {\n color: rgb(109.8, 53.55, 25.2);\n background-color: rgb(251.7, 214.2, 195.3);\n}\n\n.govuk-tag--red {\n color: rgb(42.4, 10.6, 5.6);\n background-color: rgb(244.25, 204.5, 198.25);\n}\n\n.govuk-tag--pink {\n color: rgb(106.5, 28, 64);\n background-color: rgb(248.7, 225.15, 235.95);\n}\n\n.govuk-tag--green {\n color: rgb(0, 89.6, 48);\n background-color: rgb(204, 226.4, 216);\n}\n\n.govuk-phase-banner {\n padding-top: 10px;\n padding-bottom: 10px;\n border-bottom: 1px solid #b1b4b6;\n}\n\n.govuk-phase-banner__content {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 0.875rem;\n line-height: 1.1428571429;\n color: #0b0c0c;\n display: table;\n margin: 0;\n}\n@media print {\n .govuk-phase-banner__content {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-phase-banner__content {\n font-size: 1rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-phase-banner__content {\n font-size: 14pt;\n line-height: 1.2;\n }\n}\n@media print {\n .govuk-phase-banner__content {\n color: #000000;\n }\n}\n\n.govuk-phase-banner__content__tag {\n font-size: 0.875rem;\n line-height: 1.1428571429;\n margin-right: 10px;\n}\n@media (min-width: 40.0625em) {\n .govuk-phase-banner__content__tag {\n font-size: 1rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-phase-banner__content__tag {\n font-size: 14pt;\n line-height: 1.2;\n }\n}\n\n.govuk-phase-banner__text {\n display: table-cell;\n vertical-align: middle;\n}\n\n.govuk-radios__item {\n display: flex;\n flex-wrap: wrap;\n position: relative;\n margin-bottom: 10px;\n}\n\n.govuk-radios__item:last-child,\n.govuk-radios__item:last-of-type {\n margin-bottom: 0;\n}\n\n.govuk-radios__input {\n z-index: 1;\n width: 44px;\n height: 44px;\n margin: 0;\n opacity: 0;\n cursor: pointer;\n}\n\n.govuk-radios__label {\n align-self: center;\n max-width: calc(100% - 74px);\n margin-bottom: 0;\n padding: 7px 15px;\n cursor: pointer;\n touch-action: manipulation;\n}\n\n.govuk-radios__label::before {\n content: \"\";\n box-sizing: border-box;\n position: absolute;\n top: 2px;\n left: 2px;\n width: 40px;\n height: 40px;\n border: 2px solid currentcolor;\n border-radius: 50%;\n background: transparent;\n}\n\n.govuk-radios__label::after {\n content: \"\";\n position: absolute;\n top: 12px;\n left: 12px;\n width: 0;\n height: 0;\n border: 10px solid currentcolor;\n border-radius: 50%;\n opacity: 0;\n background: currentcolor;\n}\n\n.govuk-radios__hint {\n display: block;\n width: 100%;\n margin-top: -5px;\n padding-right: 15px;\n padding-left: 59px;\n}\n\n.govuk-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl) + .govuk-radios__hint {\n margin-bottom: 0;\n}\n\n.govuk-radios__input:focus + .govuk-radios__label::before {\n border-width: 4px;\n outline: 3px solid transparent;\n outline-offset: 1px;\n box-shadow: 0 0 0 4px #ffdd00;\n}\n@media screen and (forced-colors: active), (-ms-high-contrast: active) {\n .govuk-radios__input:focus + .govuk-radios__label::before {\n outline-color: Highlight;\n }\n}\n\n.govuk-radios__input:checked + .govuk-radios__label::after {\n opacity: 1;\n}\n\n.govuk-radios__input:disabled,\n.govuk-radios__input:disabled + .govuk-radios__label {\n cursor: not-allowed;\n}\n\n.govuk-radios__input:disabled + .govuk-radios__label,\n.govuk-radios__input:disabled ~ .govuk-hint {\n opacity: 0.5;\n}\n\n@media (min-width: 40.0625em) {\n .govuk-radios--inline {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n }\n .govuk-radios--inline .govuk-radios__item {\n margin-right: 20px;\n }\n}\n\n.govuk-radios__divider {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n color: #0b0c0c;\n width: 40px;\n margin-bottom: 10px;\n text-align: center;\n}\n@media print {\n .govuk-radios__divider {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-radios__divider {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-radios__divider {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media print {\n .govuk-radios__divider {\n color: #000000;\n }\n}\n\n.govuk-radios__conditional {\n margin-bottom: 15px;\n margin-left: 20px;\n padding-left: 35px;\n border-left: 4px solid #b1b4b6;\n}\n@media (min-width: 40.0625em) {\n .govuk-radios__conditional {\n margin-bottom: 20px;\n }\n}\n.govuk-frontend-supported .govuk-radios__conditional--hidden {\n display: none;\n}\n.govuk-radios__conditional > :last-child {\n margin-bottom: 0;\n}\n\n.govuk-radios--small .govuk-radios__item {\n margin-bottom: 0;\n}\n.govuk-radios--small .govuk-radios__input {\n margin-left: -10px;\n}\n.govuk-radios--small .govuk-radios__label {\n padding-left: 1px;\n}\n.govuk-radios--small .govuk-radios__label::before {\n top: 10px;\n left: 0;\n width: 24px;\n height: 24px;\n}\n.govuk-radios--small .govuk-radios__label::after {\n top: 17px;\n left: 7px;\n border-width: 5px;\n}\n.govuk-radios--small .govuk-radios__hint {\n padding-left: 34px;\n}\n.govuk-radios--small .govuk-radios__conditional {\n margin-left: 10px;\n padding-left: 20px;\n}\n.govuk-radios--small .govuk-radios__divider {\n width: 24px;\n margin-bottom: 5px;\n}\n.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled) + .govuk-radios__label::before {\n outline: 4px dashed transparent;\n outline-offset: 1px;\n box-shadow: 0 0 0 10px #b1b4b6;\n}\n.govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label::before {\n box-shadow: 0 0 0 4px #ffdd00 0 0 0 10px #b1b4b6;\n}\n@media screen and (forced-colors: active), (-ms-high-contrast: active) {\n .govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label::before {\n outline-color: Highlight;\n }\n}\n@media (hover: none), (pointer: coarse) {\n .govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:not(:disabled) + .govuk-radios__label::before {\n box-shadow: initial;\n }\n .govuk-radios--small .govuk-radios__item:hover .govuk-radios__input:focus + .govuk-radios__label::before {\n box-shadow: 0 0 0 4px #ffdd00;\n }\n}\n\n.govuk-select {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n box-sizing: border-box;\n min-width: 11.5em;\n max-width: 100%;\n height: 2.5rem;\n padding: 5px;\n border: 2px solid #0b0c0c;\n color: #0b0c0c;\n background-color: #ffffff;\n}\n@media print {\n .govuk-select {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-select {\n font-size: 1.1875rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-select {\n font-size: 14pt;\n line-height: 1.25;\n }\n}\n.govuk-select:focus {\n outline: 3px solid #ffdd00;\n outline-offset: 0;\n box-shadow: inset 0 0 0 2px;\n}\n.govuk-select:disabled {\n opacity: 0.5;\n color: inherit;\n cursor: not-allowed;\n}\n\n.govuk-select option:active,\n.govuk-select option:checked,\n.govuk-select:focus::-ms-value {\n color: #ffffff;\n background-color: #1d70b8;\n}\n\n.govuk-select--error {\n border-color: #d4351c;\n}\n.govuk-select--error:focus {\n border-color: #0b0c0c;\n}\n\n.govuk-service-navigation {\n border-bottom: 1px solid #b1b4b6;\n background-color: #f3f2f1;\n}\n\n.govuk-service-navigation__container {\n display: flex;\n flex-direction: column;\n align-items: start;\n}\n@media (min-width: 40.0625em) {\n .govuk-service-navigation__container {\n flex-direction: row;\n flex-wrap: wrap;\n }\n}\n\n.govuk-service-navigation__item,\n.govuk-service-navigation__service-name {\n position: relative;\n margin: 10px 0;\n border: 0 solid rgb(26.1, 100.8, 165.6);\n}\n@media (min-width: 40.0625em) {\n .govuk-service-navigation__item,\n .govuk-service-navigation__service-name {\n margin-top: 0;\n margin-bottom: 0;\n padding: 20px 0;\n }\n .govuk-service-navigation__item:not(:last-child),\n .govuk-service-navigation__service-name:not(:last-child) {\n margin-right: 20px;\n }\n}\n@media (min-width: 40.0625em) and (min-width: 40.0625em) {\n .govuk-service-navigation__item:not(:last-child),\n .govuk-service-navigation__service-name:not(:last-child) {\n margin-right: 30px;\n }\n}\n\n@media (max-width: 40.0525em) {\n .govuk-service-navigation__item--active {\n margin-left: -15px;\n padding-left: 10px;\n border-left-width: 5px;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-service-navigation__item--active {\n padding-bottom: 15px;\n border-bottom-width: 5px;\n }\n}\n\n.govuk-service-navigation__link {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n}\n@media print {\n .govuk-service-navigation__link {\n font-family: sans-serif;\n }\n}\n.govuk-service-navigation__link:hover {\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n text-decoration-skip: none;\n}\n.govuk-service-navigation__link:focus {\n outline: 3px solid transparent;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;\n text-decoration: none;\n box-decoration-break: clone;\n}\n.govuk-service-navigation__link:not(:hover):not(:active) {\n text-decoration: none;\n}\n.govuk-service-navigation__link:link {\n color: #1d70b8;\n}\n.govuk-service-navigation__link:visited {\n color: #1d70b8;\n}\n.govuk-service-navigation__link:hover {\n color: #003078;\n}\n.govuk-service-navigation__link:active {\n color: #0b0c0c;\n}\n.govuk-service-navigation__link:focus {\n color: #0b0c0c;\n}\n.govuk-service-navigation__link:not(:hover):not(:focus) {\n color: rgb(26.1, 100.8, 165.6);\n}\n\n.govuk-service-navigation__service-name {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 700;\n font-size: 1rem;\n line-height: 1.25;\n}\n@media print {\n .govuk-service-navigation__service-name {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-service-navigation__service-name {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-service-navigation__service-name {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n\n.govuk-service-navigation__service-name .govuk-service-navigation__link:link, .govuk-service-navigation__service-name .govuk-service-navigation__link:visited {\n color: #0b0c0c;\n}\n@media print {\n .govuk-service-navigation__service-name .govuk-service-navigation__link:link, .govuk-service-navigation__service-name .govuk-service-navigation__link:visited {\n color: #000000;\n }\n}\n.govuk-service-navigation__service-name .govuk-service-navigation__link:hover {\n color: rgba(11, 12, 12, 0.99);\n}\n.govuk-service-navigation__service-name .govuk-service-navigation__link:active, .govuk-service-navigation__service-name .govuk-service-navigation__link:focus {\n color: #0b0c0c;\n}\n@media print {\n .govuk-service-navigation__service-name .govuk-service-navigation__link:active, .govuk-service-navigation__service-name .govuk-service-navigation__link:focus {\n color: #000000;\n }\n}\n\n.govuk-service-navigation__toggle {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 700;\n font-size: 1rem;\n line-height: 1.25;\n display: inline-flex;\n margin: 10px 0;\n padding: 0;\n border: 0;\n color: rgb(26.1, 100.8, 165.6);\n background: none;\n word-break: break-all;\n cursor: pointer;\n align-items: center;\n}\n@media print {\n .govuk-service-navigation__toggle {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-service-navigation__toggle {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-service-navigation__toggle {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n.govuk-service-navigation__toggle:focus {\n outline: 3px solid transparent;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;\n text-decoration: none;\n box-decoration-break: clone;\n}\n.govuk-service-navigation__toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n border-style: solid;\n border-color: transparent;\n clip-path: polygon(0% 0%, 50% 100%, 100% 0%);\n border-width: 8.66px 5px 0 5px;\n border-top-color: inherit;\n content: \"\";\n margin-left: 5px;\n}\n.govuk-service-navigation__toggle[aria-expanded=true]::after {\n display: inline-block;\n width: 0;\n height: 0;\n border-style: solid;\n border-color: transparent;\n clip-path: polygon(50% 0%, 0% 100%, 100% 100%);\n border-width: 0 5px 8.66px;\n border-bottom-color: inherit;\n}\n.govuk-service-navigation__toggle[hidden] {\n display: none;\n}\n.govuk-service-navigation__service-name + .govuk-service-navigation__wrapper .govuk-service-navigation__toggle {\n margin-top: 0;\n}\n\n.govuk-service-navigation__list {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n margin: 0;\n margin-bottom: 15px;\n padding: 0;\n list-style: none;\n}\n@media print {\n .govuk-service-navigation__list {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-service-navigation__list {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-service-navigation__list {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-service-navigation__list {\n display: flex;\n flex-wrap: wrap;\n margin-bottom: 0;\n }\n}\n@media screen and (min-width: 40.0625em) and (-ms-high-contrast: active), (min-width: 40.0625em) and (-ms-high-contrast: none) {\n .govuk-service-navigation__list {\n display: block;\n }\n}\n\n.govuk-service-navigation__active-fallback {\n font-weight: inherit;\n}\n\n.govuk-skip-link {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n font-size: 0.875rem;\n line-height: 1.1428571429;\n display: block;\n padding: 10px 15px;\n}\n.govuk-skip-link:not(:active):not(:focus) {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n margin: 0 !important;\n padding: 0 !important;\n overflow: hidden !important;\n clip: rect(0 0 0 0) !important;\n clip-path: inset(50%) !important;\n border: 0 !important;\n white-space: nowrap !important;\n user-select: none;\n}\n@media print {\n .govuk-skip-link {\n font-family: sans-serif;\n }\n}\n.govuk-skip-link:link, .govuk-skip-link:visited {\n color: #0b0c0c;\n}\n@media print {\n .govuk-skip-link:link, .govuk-skip-link:visited {\n color: #000000;\n }\n}\n.govuk-skip-link:hover {\n color: rgba(11, 12, 12, 0.99);\n}\n.govuk-skip-link:active, .govuk-skip-link:focus {\n color: #0b0c0c;\n}\n@media print {\n .govuk-skip-link:active, .govuk-skip-link:focus {\n color: #000000;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-skip-link {\n font-size: 1rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-skip-link {\n font-size: 14pt;\n line-height: 1.2;\n }\n}\n@supports (padding: max(calc(0px))) {\n .govuk-skip-link {\n padding-right: max(15px, calc(15px + env(safe-area-inset-right)));\n padding-left: max(15px, calc(15px + env(safe-area-inset-left)));\n }\n}\n.govuk-skip-link:focus {\n outline: 3px solid #ffdd00;\n outline-offset: 0;\n background-color: #ffdd00;\n}\n\n.govuk-skip-link-focused-element:focus {\n outline: none;\n}\n\n.govuk-summary-list {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n color: #0b0c0c;\n margin: 0;\n margin-bottom: 20px;\n}\n@media print {\n .govuk-summary-list {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-list {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-summary-list {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media print {\n .govuk-summary-list {\n color: #000000;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-list {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: collapse;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-list {\n margin-bottom: 30px;\n }\n}\n\n.govuk-summary-list__row {\n border-bottom: 1px solid #b1b4b6;\n}\n@media (max-width: 40.0525em) {\n .govuk-summary-list__row {\n margin-bottom: 15px;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-list__row {\n display: table-row;\n }\n}\n\n.govuk-summary-list__row:not(.govuk-summary-list__row--no-actions) > :last-child {\n padding-right: 0;\n}\n\n@media (min-width: 40.0625em) {\n .govuk-summary-list__row--no-actions::after {\n content: \"\";\n display: table-cell;\n width: 20%;\n }\n}\n\n.govuk-summary-list__key,\n.govuk-summary-list__value,\n.govuk-summary-list__actions {\n margin: 0;\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-list__key,\n .govuk-summary-list__value,\n .govuk-summary-list__actions {\n display: table-cell;\n padding-top: 10px;\n padding-right: 20px;\n padding-bottom: 10px;\n }\n}\n\n.govuk-summary-list__actions {\n margin-bottom: 15px;\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-list__actions {\n width: 20%;\n text-align: right;\n }\n}\n\n.govuk-summary-list__key,\n.govuk-summary-list__value {\n word-wrap: break-word;\n overflow-wrap: break-word;\n}\n\n.govuk-summary-list__key {\n margin-bottom: 5px;\n font-weight: 700;\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-list__key {\n width: 30%;\n }\n}\n\n@media (max-width: 40.0525em) {\n .govuk-summary-list__value {\n margin-bottom: 15px;\n }\n}\n\n.govuk-summary-list__value > p {\n margin-bottom: 10px;\n}\n\n.govuk-summary-list__value > :last-child {\n margin-bottom: 0;\n}\n\n.govuk-summary-list__actions-list {\n width: 100%;\n margin: 0;\n padding: 0;\n}\n\n.govuk-summary-list__actions-list-item {\n display: inline-block;\n}\n\n@media (max-width: 40.0525em) {\n .govuk-summary-list__actions-list-item {\n margin-right: 10px;\n padding-right: 10px;\n border-right: 1px solid #b1b4b6;\n }\n .govuk-summary-list__actions-list-item:last-child {\n margin-right: 0;\n padding-right: 0;\n border: 0;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-list__actions-list-item {\n margin-left: 10px;\n padding-left: 10px;\n }\n .govuk-summary-list__actions-list-item:not(:first-child) {\n border-left: 1px solid #b1b4b6;\n }\n .govuk-summary-list__actions-list-item:first-child {\n margin-left: 0;\n padding-left: 0;\n border: 0;\n }\n}\n.govuk-summary-list__actions-list-item .govuk-link:focus {\n isolation: isolate;\n}\n\n.govuk-summary-list--no-border .govuk-summary-list__row {\n border: 0;\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-list--no-border .govuk-summary-list__key,\n .govuk-summary-list--no-border .govuk-summary-list__value,\n .govuk-summary-list--no-border .govuk-summary-list__actions {\n padding-bottom: 11px;\n }\n}\n\n.govuk-summary-list__row--no-border {\n border: 0;\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-list__row--no-border .govuk-summary-list__key,\n .govuk-summary-list__row--no-border .govuk-summary-list__value,\n .govuk-summary-list__row--no-border .govuk-summary-list__actions {\n padding-bottom: 11px;\n }\n}\n\n.govuk-summary-card {\n margin-bottom: 20px;\n border: 1px solid #b1b4b6;\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-card {\n margin-bottom: 30px;\n }\n}\n\n.govuk-summary-card__title-wrapper {\n padding: 15px;\n border-bottom: 1px solid transparent;\n background-color: #f3f2f1;\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-card__title-wrapper {\n display: flex;\n justify-content: space-between;\n flex-wrap: nowrap;\n padding: 15px 20px;\n }\n}\n\n.govuk-summary-card__title {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 700;\n font-size: 1rem;\n line-height: 1.25;\n color: #0b0c0c;\n margin: 5px 20px 10px 0;\n}\n@media print {\n .govuk-summary-card__title {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-card__title {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-summary-card__title {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media print {\n .govuk-summary-card__title {\n color: #000000;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-card__title {\n margin-bottom: 5px;\n }\n}\n\n.govuk-summary-card__actions {\n font-size: 1rem;\n line-height: 1.25;\n font-weight: 700;\n display: flex;\n flex-wrap: wrap;\n row-gap: 10px;\n margin: 5px 0;\n padding: 0;\n list-style: none;\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-card__actions {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-summary-card__actions {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-card__actions {\n justify-content: right;\n text-align: right;\n }\n}\n\n.govuk-summary-card__action {\n display: inline;\n margin: 0 10px 0 0;\n padding-right: 10px;\n border-right: 1px solid #b1b4b6;\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-card__action {\n margin-right: 0;\n }\n}\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .govuk-summary-card__action {\n margin-bottom: 5px;\n }\n}\n\n.govuk-summary-card__action:last-child {\n margin: 0;\n padding-right: 0;\n border-right: none;\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-card__action:last-child {\n padding-left: 10px;\n }\n}\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .govuk-summary-card__action:last-child {\n margin-bottom: 0;\n }\n}\n\n.govuk-summary-card__content {\n padding: 15px 15px 0;\n}\n@media (min-width: 40.0625em) {\n .govuk-summary-card__content {\n padding: 15px 20px;\n }\n}\n.govuk-summary-card__content .govuk-summary-list {\n margin-bottom: 0;\n}\n.govuk-summary-card__content .govuk-summary-list__row:last-of-type {\n margin-bottom: 0;\n border-bottom: none;\n}\n\n.govuk-table {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n color: #0b0c0c;\n width: 100%;\n margin-bottom: 20px;\n border-spacing: 0;\n border-collapse: collapse;\n}\n@media print {\n .govuk-table {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-table {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-table {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media print {\n .govuk-table {\n color: #000000;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-table {\n margin-bottom: 30px;\n }\n}\n\n.govuk-table__header {\n font-weight: 700;\n}\n\n.govuk-table__header,\n.govuk-table__cell {\n padding: 10px 20px 10px 0;\n border-bottom: 1px solid #b1b4b6;\n text-align: left;\n vertical-align: top;\n}\n\n.govuk-table__cell--numeric {\n font-variant-numeric: tabular-nums;\n}\n\n.govuk-table__header--numeric,\n.govuk-table__cell--numeric {\n text-align: right;\n}\n\n.govuk-table__header:last-child,\n.govuk-table__cell:last-child {\n padding-right: 0;\n}\n\n.govuk-table__caption {\n font-weight: 700;\n display: table-caption;\n text-align: left;\n}\n\n.govuk-table__caption--xl,\n.govuk-table__caption--l,\n.govuk-table__caption--m {\n margin-bottom: 15px;\n}\n\n.govuk-table__caption--xl {\n font-size: 2rem;\n line-height: 1.09375;\n}\n@media (min-width: 40.0625em) {\n .govuk-table__caption--xl {\n font-size: 3rem;\n line-height: 1.0416666667;\n }\n}\n@media print {\n .govuk-table__caption--xl {\n font-size: 32pt;\n line-height: 1.15;\n }\n}\n\n.govuk-table__caption--l {\n font-size: 1.5rem;\n line-height: 1.0416666667;\n}\n@media (min-width: 40.0625em) {\n .govuk-table__caption--l {\n font-size: 2.25rem;\n line-height: 1.1111111111;\n }\n}\n@media print {\n .govuk-table__caption--l {\n font-size: 24pt;\n line-height: 1.05;\n }\n}\n\n.govuk-table__caption--m {\n font-size: 1.125rem;\n line-height: 1.1111111111;\n}\n@media (min-width: 40.0625em) {\n .govuk-table__caption--m {\n font-size: 1.5rem;\n line-height: 1.25;\n }\n}\n@media print {\n .govuk-table__caption--m {\n font-size: 18pt;\n line-height: 1.15;\n }\n}\n\n.govuk-tabs {\n margin-top: 5px;\n margin-bottom: 20px;\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n}\n@media (min-width: 40.0625em) {\n .govuk-tabs {\n margin-bottom: 30px;\n }\n}\n@media print {\n .govuk-tabs {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-tabs {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-tabs {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n\n.govuk-tabs__title {\n font-size: 1rem;\n line-height: 1.25;\n font-weight: 400;\n color: #0b0c0c;\n margin-bottom: 10px;\n}\n@media (min-width: 40.0625em) {\n .govuk-tabs__title {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-tabs__title {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media print {\n .govuk-tabs__title {\n color: #000000;\n }\n}\n\n.govuk-tabs__list {\n margin: 0;\n padding: 0;\n list-style: none;\n margin-bottom: 20px;\n}\n@media (min-width: 40.0625em) {\n .govuk-tabs__list {\n margin-bottom: 30px;\n }\n}\n\n.govuk-tabs__list-item {\n margin-left: 25px;\n}\n.govuk-tabs__list-item::before {\n color: #0b0c0c;\n content: \"—\";\n margin-left: -25px;\n padding-right: 5px;\n}\n@media print {\n .govuk-tabs__list-item::before {\n color: #000000;\n }\n}\n\n.govuk-tabs__tab {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-decoration: underline;\n text-decoration-thickness: max(1px, .0625rem);\n text-underline-offset: 0.1578em;\n display: inline-block;\n margin-bottom: 10px;\n}\n@media print {\n .govuk-tabs__tab {\n font-family: sans-serif;\n }\n}\n.govuk-tabs__tab:hover {\n text-decoration-thickness: max(3px, .1875rem, .12em);\n text-decoration-skip-ink: none;\n text-decoration-skip: none;\n}\n.govuk-tabs__tab:focus {\n outline: 3px solid transparent;\n color: #0b0c0c;\n background-color: #ffdd00;\n box-shadow: 0 -2px #ffdd00, 0 4px #0b0c0c;\n text-decoration: none;\n box-decoration-break: clone;\n}\n.govuk-tabs__tab:link {\n color: #1d70b8;\n}\n.govuk-tabs__tab:visited {\n color: #4c2c92;\n}\n.govuk-tabs__tab:hover {\n color: #003078;\n}\n.govuk-tabs__tab:active {\n color: #0b0c0c;\n}\n.govuk-tabs__tab:focus {\n color: #0b0c0c;\n}\n\n.govuk-tabs__panel {\n margin-bottom: 30px;\n}\n@media (min-width: 40.0625em) {\n .govuk-tabs__panel {\n margin-bottom: 50px;\n }\n}\n\n@media (min-width: 40.0625em) {\n .govuk-frontend-supported .govuk-tabs__list {\n margin-bottom: 0;\n border-bottom: 1px solid #b1b4b6;\n }\n .govuk-frontend-supported .govuk-tabs__list::after {\n content: \"\";\n display: block;\n clear: both;\n }\n .govuk-frontend-supported .govuk-tabs__title {\n display: none;\n }\n .govuk-frontend-supported .govuk-tabs__list-item {\n position: relative;\n margin-right: 5px;\n margin-bottom: 0;\n margin-left: 0;\n padding: 10px 20px;\n float: left;\n background-color: #f3f2f1;\n text-align: center;\n }\n .govuk-frontend-supported .govuk-tabs__list-item::before {\n content: none;\n }\n .govuk-frontend-supported .govuk-tabs__list-item--selected {\n position: relative;\n margin-top: -5px;\n margin-bottom: -1px;\n padding-top: 14px;\n padding-right: 19px;\n padding-bottom: 16px;\n padding-left: 19px;\n border: 1px solid #b1b4b6;\n border-bottom: 0;\n background-color: #ffffff;\n }\n .govuk-frontend-supported .govuk-tabs__list-item--selected .govuk-tabs__tab {\n text-decoration: none;\n }\n .govuk-frontend-supported .govuk-tabs__tab {\n margin-bottom: 0;\n }\n .govuk-frontend-supported .govuk-tabs__tab:link, .govuk-frontend-supported .govuk-tabs__tab:visited {\n color: #0b0c0c;\n }\n}\n@media print and (min-width: 40.0625em) {\n .govuk-frontend-supported .govuk-tabs__tab:link, .govuk-frontend-supported .govuk-tabs__tab:visited {\n color: #000000;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-frontend-supported .govuk-tabs__tab:hover {\n color: rgba(11, 12, 12, 0.99);\n }\n .govuk-frontend-supported .govuk-tabs__tab:active, .govuk-frontend-supported .govuk-tabs__tab:focus {\n color: #0b0c0c;\n }\n}\n@media print and (min-width: 40.0625em) {\n .govuk-frontend-supported .govuk-tabs__tab:active, .govuk-frontend-supported .govuk-tabs__tab:focus {\n color: #000000;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-frontend-supported .govuk-tabs__tab::after {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n .govuk-frontend-supported .govuk-tabs__panel {\n margin-bottom: 0;\n padding: 30px 20px;\n border: 1px solid #b1b4b6;\n border-top: 0;\n }\n .govuk-frontend-supported .govuk-tabs__panel > :last-child {\n margin-bottom: 0;\n }\n .govuk-frontend-supported .govuk-tabs__panel--hidden {\n display: none;\n }\n}\n\n.govuk-task-list {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n margin-top: 0;\n margin-bottom: 20px;\n padding: 0;\n list-style-type: none;\n}\n@media print {\n .govuk-task-list {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-task-list {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-task-list {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-task-list {\n margin-bottom: 30px;\n }\n}\n\n.govuk-task-list__item {\n display: table;\n position: relative;\n width: 100%;\n margin-bottom: 0;\n padding-top: 10px;\n padding-bottom: 10px;\n border-bottom: 1px solid #b1b4b6;\n}\n\n.govuk-task-list__item:first-child {\n border-top: 1px solid #b1b4b6;\n}\n\n.govuk-task-list__item--with-link:hover {\n background: #f3f2f1;\n}\n\n.govuk-task-list__name-and-hint {\n display: table-cell;\n vertical-align: top;\n color: #0b0c0c;\n}\n@media print {\n .govuk-task-list__name-and-hint {\n color: #000000;\n }\n}\n\n.govuk-task-list__status {\n display: table-cell;\n padding-left: 10px;\n text-align: right;\n vertical-align: top;\n color: #0b0c0c;\n}\n@media print {\n .govuk-task-list__status {\n color: #000000;\n }\n}\n\n.govuk-task-list__status--cannot-start-yet {\n color: #505a5f;\n}\n\n.govuk-task-list__link::after {\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n.govuk-task-list__hint {\n margin-top: 5px;\n color: #505a5f;\n}\n\n.govuk-warning-text {\n font-family: \"GDS Transport\", arial, sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1.25;\n margin-bottom: 20px;\n font-weight: 700;\n position: relative;\n padding: 10px 0;\n}\n@media print {\n .govuk-warning-text {\n font-family: sans-serif;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-warning-text {\n font-size: 1.1875rem;\n line-height: 1.3157894737;\n }\n}\n@media print {\n .govuk-warning-text {\n font-size: 14pt;\n line-height: 1.15;\n }\n}\n@media (min-width: 40.0625em) {\n .govuk-warning-text {\n margin-bottom: 30px;\n }\n}\n\n.govuk-warning-text__icon {\n box-sizing: border-box;\n display: inline-block;\n position: absolute;\n left: 0;\n min-width: 35px;\n min-height: 35px;\n margin-top: -7px;\n border: 3px solid #0b0c0c;\n border-radius: 50%;\n color: #ffffff;\n background: #0b0c0c;\n font-size: 30px;\n line-height: 29px;\n text-align: center;\n user-select: none;\n forced-color-adjust: none;\n}\n@media (min-width: 40.0625em) {\n .govuk-warning-text__icon {\n margin-top: -5px;\n }\n}\n@media screen and (forced-colors: active) {\n .govuk-warning-text__icon {\n border-color: windowText;\n color: windowText;\n background: transparent;\n }\n}\n\n.govuk-warning-text__text {\n color: #0b0c0c;\n display: block;\n padding-left: 45px;\n font-weight: inherit;\n}\n@media print {\n .govuk-warning-text__text {\n color: #000000;\n }\n}\n\n.govuk-clearfix::after {\n content: \"\";\n display: block;\n clear: both;\n}\n\n.govuk-visually-hidden {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n margin: 0 !important;\n padding: 0 !important;\n overflow: hidden !important;\n clip: rect(0 0 0 0) !important;\n clip-path: inset(50%) !important;\n border: 0 !important;\n white-space: nowrap !important;\n user-select: none;\n}\n.govuk-visually-hidden::before {\n content: \" \";\n}\n.govuk-visually-hidden::after {\n content: \" \";\n}\n\n.govuk-visually-hidden-focusable:not(:active):not(:focus) {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n margin: 0 !important;\n padding: 0 !important;\n overflow: hidden !important;\n clip: rect(0 0 0 0) !important;\n clip-path: inset(50%) !important;\n border: 0 !important;\n white-space: nowrap !important;\n user-select: none;\n}\n\n.govuk-\\!-display-inline {\n display: inline !important;\n}\n\n.govuk-\\!-display-inline-block {\n display: inline-block !important;\n}\n\n.govuk-\\!-display-block {\n display: block !important;\n}\n\n.govuk-\\!-display-none {\n display: none !important;\n}\n\n@media print {\n .govuk-\\!-display-none-print {\n display: none !important;\n }\n}\n.govuk-\\!-margin-0 {\n margin: 0 !important;\n}\n\n.govuk-\\!-margin-top-0 {\n margin-top: 0 !important;\n}\n\n.govuk-\\!-margin-right-0 {\n margin-right: 0 !important;\n}\n\n.govuk-\\!-margin-bottom-0 {\n margin-bottom: 0 !important;\n}\n\n.govuk-\\!-margin-left-0 {\n margin-left: 0 !important;\n}\n\n.govuk-\\!-margin-1 {\n margin: 5px !important;\n}\n\n.govuk-\\!-margin-top-1 {\n margin-top: 5px !important;\n}\n\n.govuk-\\!-margin-right-1 {\n margin-right: 5px !important;\n}\n\n.govuk-\\!-margin-bottom-1 {\n margin-bottom: 5px !important;\n}\n\n.govuk-\\!-margin-left-1 {\n margin-left: 5px !important;\n}\n\n.govuk-\\!-margin-2 {\n margin: 10px !important;\n}\n\n.govuk-\\!-margin-top-2 {\n margin-top: 10px !important;\n}\n\n.govuk-\\!-margin-right-2 {\n margin-right: 10px !important;\n}\n\n.govuk-\\!-margin-bottom-2 {\n margin-bottom: 10px !important;\n}\n\n.govuk-\\!-margin-left-2 {\n margin-left: 10px !important;\n}\n\n.govuk-\\!-margin-3 {\n margin: 15px !important;\n}\n\n.govuk-\\!-margin-top-3 {\n margin-top: 15px !important;\n}\n\n.govuk-\\!-margin-right-3 {\n margin-right: 15px !important;\n}\n\n.govuk-\\!-margin-bottom-3 {\n margin-bottom: 15px !important;\n}\n\n.govuk-\\!-margin-left-3 {\n margin-left: 15px !important;\n}\n\n.govuk-\\!-margin-4 {\n margin: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-4 {\n margin: 20px !important;\n }\n}\n\n.govuk-\\!-margin-top-4 {\n margin-top: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-top-4 {\n margin-top: 20px !important;\n }\n}\n\n.govuk-\\!-margin-right-4 {\n margin-right: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-right-4 {\n margin-right: 20px !important;\n }\n}\n\n.govuk-\\!-margin-bottom-4 {\n margin-bottom: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-bottom-4 {\n margin-bottom: 20px !important;\n }\n}\n\n.govuk-\\!-margin-left-4 {\n margin-left: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-left-4 {\n margin-left: 20px !important;\n }\n}\n\n.govuk-\\!-margin-5 {\n margin: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-5 {\n margin: 25px !important;\n }\n}\n\n.govuk-\\!-margin-top-5 {\n margin-top: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-top-5 {\n margin-top: 25px !important;\n }\n}\n\n.govuk-\\!-margin-right-5 {\n margin-right: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-right-5 {\n margin-right: 25px !important;\n }\n}\n\n.govuk-\\!-margin-bottom-5 {\n margin-bottom: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-bottom-5 {\n margin-bottom: 25px !important;\n }\n}\n\n.govuk-\\!-margin-left-5 {\n margin-left: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-left-5 {\n margin-left: 25px !important;\n }\n}\n\n.govuk-\\!-margin-6 {\n margin: 20px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-6 {\n margin: 30px !important;\n }\n}\n\n.govuk-\\!-margin-top-6 {\n margin-top: 20px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-top-6 {\n margin-top: 30px !important;\n }\n}\n\n.govuk-\\!-margin-right-6 {\n margin-right: 20px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-right-6 {\n margin-right: 30px !important;\n }\n}\n\n.govuk-\\!-margin-bottom-6 {\n margin-bottom: 20px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-bottom-6 {\n margin-bottom: 30px !important;\n }\n}\n\n.govuk-\\!-margin-left-6 {\n margin-left: 20px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-left-6 {\n margin-left: 30px !important;\n }\n}\n\n.govuk-\\!-margin-7 {\n margin: 25px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-7 {\n margin: 40px !important;\n }\n}\n\n.govuk-\\!-margin-top-7 {\n margin-top: 25px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-top-7 {\n margin-top: 40px !important;\n }\n}\n\n.govuk-\\!-margin-right-7 {\n margin-right: 25px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-right-7 {\n margin-right: 40px !important;\n }\n}\n\n.govuk-\\!-margin-bottom-7 {\n margin-bottom: 25px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-bottom-7 {\n margin-bottom: 40px !important;\n }\n}\n\n.govuk-\\!-margin-left-7 {\n margin-left: 25px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-left-7 {\n margin-left: 40px !important;\n }\n}\n\n.govuk-\\!-margin-8 {\n margin: 30px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-8 {\n margin: 50px !important;\n }\n}\n\n.govuk-\\!-margin-top-8 {\n margin-top: 30px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-top-8 {\n margin-top: 50px !important;\n }\n}\n\n.govuk-\\!-margin-right-8 {\n margin-right: 30px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-right-8 {\n margin-right: 50px !important;\n }\n}\n\n.govuk-\\!-margin-bottom-8 {\n margin-bottom: 30px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-bottom-8 {\n margin-bottom: 50px !important;\n }\n}\n\n.govuk-\\!-margin-left-8 {\n margin-left: 30px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-left-8 {\n margin-left: 50px !important;\n }\n}\n\n.govuk-\\!-margin-9 {\n margin: 40px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-9 {\n margin: 60px !important;\n }\n}\n\n.govuk-\\!-margin-top-9 {\n margin-top: 40px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-top-9 {\n margin-top: 60px !important;\n }\n}\n\n.govuk-\\!-margin-right-9 {\n margin-right: 40px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-right-9 {\n margin-right: 60px !important;\n }\n}\n\n.govuk-\\!-margin-bottom-9 {\n margin-bottom: 40px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-bottom-9 {\n margin-bottom: 60px !important;\n }\n}\n\n.govuk-\\!-margin-left-9 {\n margin-left: 40px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-margin-left-9 {\n margin-left: 60px !important;\n }\n}\n\n.govuk-\\!-padding-0 {\n padding: 0 !important;\n}\n\n.govuk-\\!-padding-top-0 {\n padding-top: 0 !important;\n}\n\n.govuk-\\!-padding-right-0 {\n padding-right: 0 !important;\n}\n\n.govuk-\\!-padding-bottom-0 {\n padding-bottom: 0 !important;\n}\n\n.govuk-\\!-padding-left-0 {\n padding-left: 0 !important;\n}\n\n.govuk-\\!-padding-1 {\n padding: 5px !important;\n}\n\n.govuk-\\!-padding-top-1 {\n padding-top: 5px !important;\n}\n\n.govuk-\\!-padding-right-1 {\n padding-right: 5px !important;\n}\n\n.govuk-\\!-padding-bottom-1 {\n padding-bottom: 5px !important;\n}\n\n.govuk-\\!-padding-left-1 {\n padding-left: 5px !important;\n}\n\n.govuk-\\!-padding-2 {\n padding: 10px !important;\n}\n\n.govuk-\\!-padding-top-2 {\n padding-top: 10px !important;\n}\n\n.govuk-\\!-padding-right-2 {\n padding-right: 10px !important;\n}\n\n.govuk-\\!-padding-bottom-2 {\n padding-bottom: 10px !important;\n}\n\n.govuk-\\!-padding-left-2 {\n padding-left: 10px !important;\n}\n\n.govuk-\\!-padding-3 {\n padding: 15px !important;\n}\n\n.govuk-\\!-padding-top-3 {\n padding-top: 15px !important;\n}\n\n.govuk-\\!-padding-right-3 {\n padding-right: 15px !important;\n}\n\n.govuk-\\!-padding-bottom-3 {\n padding-bottom: 15px !important;\n}\n\n.govuk-\\!-padding-left-3 {\n padding-left: 15px !important;\n}\n\n.govuk-\\!-padding-4 {\n padding: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-4 {\n padding: 20px !important;\n }\n}\n\n.govuk-\\!-padding-top-4 {\n padding-top: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-top-4 {\n padding-top: 20px !important;\n }\n}\n\n.govuk-\\!-padding-right-4 {\n padding-right: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-right-4 {\n padding-right: 20px !important;\n }\n}\n\n.govuk-\\!-padding-bottom-4 {\n padding-bottom: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-bottom-4 {\n padding-bottom: 20px !important;\n }\n}\n\n.govuk-\\!-padding-left-4 {\n padding-left: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-left-4 {\n padding-left: 20px !important;\n }\n}\n\n.govuk-\\!-padding-5 {\n padding: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-5 {\n padding: 25px !important;\n }\n}\n\n.govuk-\\!-padding-top-5 {\n padding-top: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-top-5 {\n padding-top: 25px !important;\n }\n}\n\n.govuk-\\!-padding-right-5 {\n padding-right: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-right-5 {\n padding-right: 25px !important;\n }\n}\n\n.govuk-\\!-padding-bottom-5 {\n padding-bottom: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-bottom-5 {\n padding-bottom: 25px !important;\n }\n}\n\n.govuk-\\!-padding-left-5 {\n padding-left: 15px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-left-5 {\n padding-left: 25px !important;\n }\n}\n\n.govuk-\\!-padding-6 {\n padding: 20px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-6 {\n padding: 30px !important;\n }\n}\n\n.govuk-\\!-padding-top-6 {\n padding-top: 20px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-top-6 {\n padding-top: 30px !important;\n }\n}\n\n.govuk-\\!-padding-right-6 {\n padding-right: 20px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-right-6 {\n padding-right: 30px !important;\n }\n}\n\n.govuk-\\!-padding-bottom-6 {\n padding-bottom: 20px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-bottom-6 {\n padding-bottom: 30px !important;\n }\n}\n\n.govuk-\\!-padding-left-6 {\n padding-left: 20px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-left-6 {\n padding-left: 30px !important;\n }\n}\n\n.govuk-\\!-padding-7 {\n padding: 25px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-7 {\n padding: 40px !important;\n }\n}\n\n.govuk-\\!-padding-top-7 {\n padding-top: 25px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-top-7 {\n padding-top: 40px !important;\n }\n}\n\n.govuk-\\!-padding-right-7 {\n padding-right: 25px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-right-7 {\n padding-right: 40px !important;\n }\n}\n\n.govuk-\\!-padding-bottom-7 {\n padding-bottom: 25px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-bottom-7 {\n padding-bottom: 40px !important;\n }\n}\n\n.govuk-\\!-padding-left-7 {\n padding-left: 25px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-left-7 {\n padding-left: 40px !important;\n }\n}\n\n.govuk-\\!-padding-8 {\n padding: 30px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-8 {\n padding: 50px !important;\n }\n}\n\n.govuk-\\!-padding-top-8 {\n padding-top: 30px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-top-8 {\n padding-top: 50px !important;\n }\n}\n\n.govuk-\\!-padding-right-8 {\n padding-right: 30px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-right-8 {\n padding-right: 50px !important;\n }\n}\n\n.govuk-\\!-padding-bottom-8 {\n padding-bottom: 30px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-bottom-8 {\n padding-bottom: 50px !important;\n }\n}\n\n.govuk-\\!-padding-left-8 {\n padding-left: 30px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-left-8 {\n padding-left: 50px !important;\n }\n}\n\n.govuk-\\!-padding-9 {\n padding: 40px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-9 {\n padding: 60px !important;\n }\n}\n\n.govuk-\\!-padding-top-9 {\n padding-top: 40px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-top-9 {\n padding-top: 60px !important;\n }\n}\n\n.govuk-\\!-padding-right-9 {\n padding-right: 40px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-right-9 {\n padding-right: 60px !important;\n }\n}\n\n.govuk-\\!-padding-bottom-9 {\n padding-bottom: 40px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-bottom-9 {\n padding-bottom: 60px !important;\n }\n}\n\n.govuk-\\!-padding-left-9 {\n padding-left: 40px !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-padding-left-9 {\n padding-left: 60px !important;\n }\n}\n\n.govuk-\\!-static-margin-0 {\n margin: 0 !important;\n}\n\n.govuk-\\!-static-margin-top-0 {\n margin-top: 0 !important;\n}\n\n.govuk-\\!-static-margin-right-0 {\n margin-right: 0 !important;\n}\n\n.govuk-\\!-static-margin-bottom-0 {\n margin-bottom: 0 !important;\n}\n\n.govuk-\\!-static-margin-left-0 {\n margin-left: 0 !important;\n}\n\n.govuk-\\!-static-margin-1 {\n margin: 5px !important;\n}\n\n.govuk-\\!-static-margin-top-1 {\n margin-top: 5px !important;\n}\n\n.govuk-\\!-static-margin-right-1 {\n margin-right: 5px !important;\n}\n\n.govuk-\\!-static-margin-bottom-1 {\n margin-bottom: 5px !important;\n}\n\n.govuk-\\!-static-margin-left-1 {\n margin-left: 5px !important;\n}\n\n.govuk-\\!-static-margin-2 {\n margin: 10px !important;\n}\n\n.govuk-\\!-static-margin-top-2 {\n margin-top: 10px !important;\n}\n\n.govuk-\\!-static-margin-right-2 {\n margin-right: 10px !important;\n}\n\n.govuk-\\!-static-margin-bottom-2 {\n margin-bottom: 10px !important;\n}\n\n.govuk-\\!-static-margin-left-2 {\n margin-left: 10px !important;\n}\n\n.govuk-\\!-static-margin-3 {\n margin: 15px !important;\n}\n\n.govuk-\\!-static-margin-top-3 {\n margin-top: 15px !important;\n}\n\n.govuk-\\!-static-margin-right-3 {\n margin-right: 15px !important;\n}\n\n.govuk-\\!-static-margin-bottom-3 {\n margin-bottom: 15px !important;\n}\n\n.govuk-\\!-static-margin-left-3 {\n margin-left: 15px !important;\n}\n\n.govuk-\\!-static-margin-4 {\n margin: 20px !important;\n}\n\n.govuk-\\!-static-margin-top-4 {\n margin-top: 20px !important;\n}\n\n.govuk-\\!-static-margin-right-4 {\n margin-right: 20px !important;\n}\n\n.govuk-\\!-static-margin-bottom-4 {\n margin-bottom: 20px !important;\n}\n\n.govuk-\\!-static-margin-left-4 {\n margin-left: 20px !important;\n}\n\n.govuk-\\!-static-margin-5 {\n margin: 25px !important;\n}\n\n.govuk-\\!-static-margin-top-5 {\n margin-top: 25px !important;\n}\n\n.govuk-\\!-static-margin-right-5 {\n margin-right: 25px !important;\n}\n\n.govuk-\\!-static-margin-bottom-5 {\n margin-bottom: 25px !important;\n}\n\n.govuk-\\!-static-margin-left-5 {\n margin-left: 25px !important;\n}\n\n.govuk-\\!-static-margin-6 {\n margin: 30px !important;\n}\n\n.govuk-\\!-static-margin-top-6 {\n margin-top: 30px !important;\n}\n\n.govuk-\\!-static-margin-right-6 {\n margin-right: 30px !important;\n}\n\n.govuk-\\!-static-margin-bottom-6 {\n margin-bottom: 30px !important;\n}\n\n.govuk-\\!-static-margin-left-6 {\n margin-left: 30px !important;\n}\n\n.govuk-\\!-static-margin-7 {\n margin: 40px !important;\n}\n\n.govuk-\\!-static-margin-top-7 {\n margin-top: 40px !important;\n}\n\n.govuk-\\!-static-margin-right-7 {\n margin-right: 40px !important;\n}\n\n.govuk-\\!-static-margin-bottom-7 {\n margin-bottom: 40px !important;\n}\n\n.govuk-\\!-static-margin-left-7 {\n margin-left: 40px !important;\n}\n\n.govuk-\\!-static-margin-8 {\n margin: 50px !important;\n}\n\n.govuk-\\!-static-margin-top-8 {\n margin-top: 50px !important;\n}\n\n.govuk-\\!-static-margin-right-8 {\n margin-right: 50px !important;\n}\n\n.govuk-\\!-static-margin-bottom-8 {\n margin-bottom: 50px !important;\n}\n\n.govuk-\\!-static-margin-left-8 {\n margin-left: 50px !important;\n}\n\n.govuk-\\!-static-margin-9 {\n margin: 60px !important;\n}\n\n.govuk-\\!-static-margin-top-9 {\n margin-top: 60px !important;\n}\n\n.govuk-\\!-static-margin-right-9 {\n margin-right: 60px !important;\n}\n\n.govuk-\\!-static-margin-bottom-9 {\n margin-bottom: 60px !important;\n}\n\n.govuk-\\!-static-margin-left-9 {\n margin-left: 60px !important;\n}\n\n.govuk-\\!-static-padding-0 {\n padding: 0 !important;\n}\n\n.govuk-\\!-static-padding-top-0 {\n padding-top: 0 !important;\n}\n\n.govuk-\\!-static-padding-right-0 {\n padding-right: 0 !important;\n}\n\n.govuk-\\!-static-padding-bottom-0 {\n padding-bottom: 0 !important;\n}\n\n.govuk-\\!-static-padding-left-0 {\n padding-left: 0 !important;\n}\n\n.govuk-\\!-static-padding-1 {\n padding: 5px !important;\n}\n\n.govuk-\\!-static-padding-top-1 {\n padding-top: 5px !important;\n}\n\n.govuk-\\!-static-padding-right-1 {\n padding-right: 5px !important;\n}\n\n.govuk-\\!-static-padding-bottom-1 {\n padding-bottom: 5px !important;\n}\n\n.govuk-\\!-static-padding-left-1 {\n padding-left: 5px !important;\n}\n\n.govuk-\\!-static-padding-2 {\n padding: 10px !important;\n}\n\n.govuk-\\!-static-padding-top-2 {\n padding-top: 10px !important;\n}\n\n.govuk-\\!-static-padding-right-2 {\n padding-right: 10px !important;\n}\n\n.govuk-\\!-static-padding-bottom-2 {\n padding-bottom: 10px !important;\n}\n\n.govuk-\\!-static-padding-left-2 {\n padding-left: 10px !important;\n}\n\n.govuk-\\!-static-padding-3 {\n padding: 15px !important;\n}\n\n.govuk-\\!-static-padding-top-3 {\n padding-top: 15px !important;\n}\n\n.govuk-\\!-static-padding-right-3 {\n padding-right: 15px !important;\n}\n\n.govuk-\\!-static-padding-bottom-3 {\n padding-bottom: 15px !important;\n}\n\n.govuk-\\!-static-padding-left-3 {\n padding-left: 15px !important;\n}\n\n.govuk-\\!-static-padding-4 {\n padding: 20px !important;\n}\n\n.govuk-\\!-static-padding-top-4 {\n padding-top: 20px !important;\n}\n\n.govuk-\\!-static-padding-right-4 {\n padding-right: 20px !important;\n}\n\n.govuk-\\!-static-padding-bottom-4 {\n padding-bottom: 20px !important;\n}\n\n.govuk-\\!-static-padding-left-4 {\n padding-left: 20px !important;\n}\n\n.govuk-\\!-static-padding-5 {\n padding: 25px !important;\n}\n\n.govuk-\\!-static-padding-top-5 {\n padding-top: 25px !important;\n}\n\n.govuk-\\!-static-padding-right-5 {\n padding-right: 25px !important;\n}\n\n.govuk-\\!-static-padding-bottom-5 {\n padding-bottom: 25px !important;\n}\n\n.govuk-\\!-static-padding-left-5 {\n padding-left: 25px !important;\n}\n\n.govuk-\\!-static-padding-6 {\n padding: 30px !important;\n}\n\n.govuk-\\!-static-padding-top-6 {\n padding-top: 30px !important;\n}\n\n.govuk-\\!-static-padding-right-6 {\n padding-right: 30px !important;\n}\n\n.govuk-\\!-static-padding-bottom-6 {\n padding-bottom: 30px !important;\n}\n\n.govuk-\\!-static-padding-left-6 {\n padding-left: 30px !important;\n}\n\n.govuk-\\!-static-padding-7 {\n padding: 40px !important;\n}\n\n.govuk-\\!-static-padding-top-7 {\n padding-top: 40px !important;\n}\n\n.govuk-\\!-static-padding-right-7 {\n padding-right: 40px !important;\n}\n\n.govuk-\\!-static-padding-bottom-7 {\n padding-bottom: 40px !important;\n}\n\n.govuk-\\!-static-padding-left-7 {\n padding-left: 40px !important;\n}\n\n.govuk-\\!-static-padding-8 {\n padding: 50px !important;\n}\n\n.govuk-\\!-static-padding-top-8 {\n padding-top: 50px !important;\n}\n\n.govuk-\\!-static-padding-right-8 {\n padding-right: 50px !important;\n}\n\n.govuk-\\!-static-padding-bottom-8 {\n padding-bottom: 50px !important;\n}\n\n.govuk-\\!-static-padding-left-8 {\n padding-left: 50px !important;\n}\n\n.govuk-\\!-static-padding-9 {\n padding: 60px !important;\n}\n\n.govuk-\\!-static-padding-top-9 {\n padding-top: 60px !important;\n}\n\n.govuk-\\!-static-padding-right-9 {\n padding-right: 60px !important;\n}\n\n.govuk-\\!-static-padding-bottom-9 {\n padding-bottom: 60px !important;\n}\n\n.govuk-\\!-static-padding-left-9 {\n padding-left: 60px !important;\n}\n\n.govuk-\\!-text-align-left {\n text-align: left !important;\n}\n\n.govuk-\\!-text-align-centre {\n text-align: center !important;\n}\n\n.govuk-\\!-text-align-right {\n text-align: right !important;\n}\n\n.govuk-\\!-font-size-80 {\n font-size: 3.3125rem !important;\n line-height: 1.0377358491 !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-font-size-80 {\n font-size: 5rem !important;\n line-height: 1 !important;\n }\n}\n@media print {\n .govuk-\\!-font-size-80 {\n font-size: 53pt !important;\n line-height: 1.1 !important;\n }\n}\n\n.govuk-\\!-font-size-48 {\n font-size: 2rem !important;\n line-height: 1.09375 !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-font-size-48 {\n font-size: 3rem !important;\n line-height: 1.0416666667 !important;\n }\n}\n@media print {\n .govuk-\\!-font-size-48 {\n font-size: 32pt !important;\n line-height: 1.15 !important;\n }\n}\n\n.govuk-\\!-font-size-36 {\n font-size: 1.5rem !important;\n line-height: 1.0416666667 !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-font-size-36 {\n font-size: 2.25rem !important;\n line-height: 1.1111111111 !important;\n }\n}\n@media print {\n .govuk-\\!-font-size-36 {\n font-size: 24pt !important;\n line-height: 1.05 !important;\n }\n}\n\n.govuk-\\!-font-size-27 {\n font-size: 1.125rem !important;\n line-height: 1.1111111111 !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-font-size-27 {\n font-size: 1.6875rem !important;\n line-height: 1.1111111111 !important;\n }\n}\n@media print {\n .govuk-\\!-font-size-27 {\n font-size: 18pt !important;\n line-height: 1.15 !important;\n }\n}\n\n.govuk-\\!-font-size-24 {\n font-size: 1.125rem !important;\n line-height: 1.1111111111 !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-font-size-24 {\n font-size: 1.5rem !important;\n line-height: 1.25 !important;\n }\n}\n@media print {\n .govuk-\\!-font-size-24 {\n font-size: 18pt !important;\n line-height: 1.15 !important;\n }\n}\n\n.govuk-\\!-font-size-19 {\n font-size: 1rem !important;\n line-height: 1.25 !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-font-size-19 {\n font-size: 1.1875rem !important;\n line-height: 1.3157894737 !important;\n }\n}\n@media print {\n .govuk-\\!-font-size-19 {\n font-size: 14pt !important;\n line-height: 1.15 !important;\n }\n}\n\n.govuk-\\!-font-size-16 {\n font-size: 0.875rem !important;\n line-height: 1.1428571429 !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-font-size-16 {\n font-size: 1rem !important;\n line-height: 1.25 !important;\n }\n}\n@media print {\n .govuk-\\!-font-size-16 {\n font-size: 14pt !important;\n line-height: 1.2 !important;\n }\n}\n\n.govuk-\\!-font-size-14 {\n font-size: 0.75rem !important;\n line-height: 1.25 !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-font-size-14 {\n font-size: 0.875rem !important;\n line-height: 1.4285714286 !important;\n }\n}\n@media print {\n .govuk-\\!-font-size-14 {\n font-size: 12pt !important;\n line-height: 1.2 !important;\n }\n}\n\n.govuk-\\!-font-weight-regular {\n font-weight: 400 !important;\n}\n\n.govuk-\\!-font-weight-bold {\n font-weight: 700 !important;\n}\n\n.govuk-\\!-font-tabular-numbers {\n font-variant-numeric: tabular-nums !important;\n}\n\n.govuk-\\!-text-break-word {\n word-wrap: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.govuk-\\!-width-full {\n width: 100% !important;\n}\n\n.govuk-\\!-width-three-quarters {\n width: 100% !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-width-three-quarters {\n width: 75% !important;\n }\n}\n\n.govuk-\\!-width-two-thirds {\n width: 100% !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-width-two-thirds {\n width: 66.66% !important;\n }\n}\n\n.govuk-\\!-width-one-half {\n width: 100% !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-width-one-half {\n width: 50% !important;\n }\n}\n\n.govuk-\\!-width-one-third {\n width: 100% !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-width-one-third {\n width: 33.33% !important;\n }\n}\n\n.govuk-\\!-width-one-quarter {\n width: 100% !important;\n}\n@media (min-width: 40.0625em) {\n .govuk-\\!-width-one-quarter {\n width: 25% !important;\n }\n}",":root {\n // This variable is automatically overwritten during builds and releases.\n // It doesn't need to be updated manually.\n --govuk-frontend-version: \"development\";\n\n // CSS custom property for each breakpoint\n @each $name, $value in $govuk-breakpoints {\n --govuk-frontend-breakpoint-#{$name}: #{govuk-px-to-rem($value)};\n }\n}\n","@include govuk-exports(\"govuk/core/links\") {\n %govuk-link {\n @include govuk-link-common;\n @include govuk-link-style-default;\n @include govuk-link-print-friendly;\n }\n\n .govuk-link {\n @extend %govuk-link;\n }\n\n // Variant classes should always be used in conjunction with the .govuk-link\n // class, so we do not need the common link styles as they will be inherited.\n\n .govuk-link--muted {\n @include govuk-link-style-muted;\n }\n\n .govuk-link--text-colour {\n @include govuk-link-style-text;\n }\n\n .govuk-link--inverse {\n @include govuk-link-style-inverse;\n }\n\n .govuk-link--no-underline {\n @include govuk-link-style-no-underline;\n }\n\n .govuk-link--no-visited-state {\n @include govuk-link-style-no-visited-state;\n }\n\n // Links that only contain images\n\n .govuk-link-image {\n @include govuk-link-image;\n }\n}\n","////\n/// @group helpers/typography\n////\n\n@import \"../tools/px-to-rem\";\n\n/// 'Common typography' helper\n///\n/// Sets the font family and associated properties, such as font smoothing. Also\n/// overrides the font for print.\n///\n/// @param {List} $font-family [$govuk-font-family] Font family to use\n/// @access public\n\n@mixin govuk-typography-common($font-family: $govuk-font-family) {\n font-family: $font-family;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n // If the user is using the default GDS Transport font we need to include\n // the font-face declarations.\n @if $govuk-include-default-font-face {\n @include _govuk-font-face-gds-transport;\n }\n\n @include govuk-media-query($media-type: print) {\n font-family: $govuk-font-family-print;\n }\n}\n\n/// Text colour helper\n///\n/// Sets the text colour, including a suitable override for print.\n///\n/// @access public\n\n@mixin govuk-text-colour {\n color: $govuk-text-colour;\n\n @include govuk-media-query($media-type: print) {\n color: $govuk-print-text-colour;\n }\n}\n\n/// Regular font weight helper\n///\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`. Generally Used to create override classes.\n/// @access public\n\n@mixin govuk-typography-weight-regular($important: false) {\n font-weight: $govuk-font-weight-regular if($important, !important, null);\n}\n\n/// Bold font weight helper\n///\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`. Generally Used to create override classes.\n/// @access public\n\n@mixin govuk-typography-weight-bold($important: false) {\n font-weight: $govuk-font-weight-bold if($important, !important, null);\n}\n\n/// Tabular number helper\n///\n/// Switches numerical glyphs (0–9) to use alternative forms with a\n/// monospaced bounding box. This ensures that columns of numbers, such\n/// as those in tables, remain horizontally aligned with one another.\n/// This also has the useful side effect of making numbers more legible\n/// in some situations, such as reference codes, as the numbers are more\n/// distinct and visually separated from one another.\n///\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`. Generally Used to create override classes.\n/// @access public\n\n@mixin govuk-font-tabular-numbers($important: false) {\n font-variant-numeric: tabular-nums if($important, !important, null);\n}\n\n/// Word break helper\n///\n/// Forcibly breaks long words that lack spaces, such as email addresses,\n/// across multiple lines when they wouldn't otherwise fit.\n///\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`. Generally used to create override classes.\n/// @access public\n\n@mixin govuk-text-break-word($important: false) {\n // IE 11 and Edge 16–17 only support the non-standard `word-wrap` property\n word-wrap: break-word if($important, !important, null);\n\n // All other browsers support `overflow-wrap`\n overflow-wrap: break-word if($important, !important, null);\n}\n\n/// Convert line-heights specified in pixels into a relative value, unless\n/// they are already unit-less (and thus already treated as relative values)\n/// or the units do not match the units used for the font size.\n///\n/// @param {Number} $line-height Line height\n/// @param {Number} $font-size Font size\n/// @return {Number} The line height as either a relative value or unmodified\n///\n/// @access private\n\n@function _govuk-line-height($line-height, $font-size) {\n @if not unitless($line-height) and unit($line-height) == unit($font-size) {\n $line-height: $line-height / $font-size;\n }\n\n @return $line-height;\n}\n\n/// Font size and line height helper\n///\n/// @param {Number} $size - Point from the type scale (the size as it would\n/// appear on tablet and above)\n/// @param {Number} $override-line-height [false] - Non responsive custom line\n/// height. Omit to use the line height from the font map.\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`.\n///\n/// @throw if `$size` is not a valid point from the type scale\n///\n/// @access public\n///\n/// @alias govuk-font-size\n/// @deprecated Use `govuk-font-size` instead\n\n@mixin govuk-typography-responsive($size, $override-line-height: false, $important: false) {\n @include _warning(\n \"govuk-typography-responsive\",\n \"govuk-typography-responsive is deprecated. Use govuk-font-size instead.\"\n );\n @include govuk-font-size($size, $override-line-height, $important);\n}\n\n/// Font size and line height helper\n///\n/// Takes a point from the responsive 'font map' as an argument (the size as it\n/// would appear on tablet and above), and uses it to create font-size and\n/// line-height declarations for different breakpoints, and print.\n///\n/// Example font map:\n///\n/// ```scss\n/// 19: (\n/// null: (\n/// font-size: 16px,\n/// line-height: 20px\n/// ),\n/// tablet: (\n/// font-size: 19px,\n/// line-height: 25px\n/// ),\n/// print: (\n/// font-size: 14pt,\n/// line-height: 1.15\n/// )\n/// );\n/// ```\n///\n/// @param {Number | String} $size - Point from the type scale (the size as\n/// it would appear on tablet and above)\n/// @param {Number} $line-height [false] - Non responsive custom line\n/// height. Omit to use the line height from the font map.\n/// @param {Boolean} $important [false] - Whether to mark declarations as\n/// `!important`.\n///\n/// @throw if `$size` is not a valid point from the type scale\n///\n/// @access public\n\n@mixin govuk-font-size($size, $line-height: false, $important: false) {\n // Flag font sizes that start with underscores so we can suppress warnings on\n // deprecated sizes used internally, for example `govuk-font($size: \"_14\")`\n $size-internal-use-only: str-slice(#{$size}, 1, 1) == \"_\";\n\n // Remove underscore from font sizes flagged for internal use\n @if $size-internal-use-only {\n $size: str-slice(#{$size}, 2);\n }\n\n // Check for a font map exactly matching the given size\n $font-map: map-get($govuk-typography-scale, $size);\n\n // No match? Try with string type (e.g. $size: \"16\" not 16)\n @if not $font-map {\n @each $font-size in map-keys($govuk-typography-scale) {\n @if not $font-map and #{$font-size} == #{$size} {\n $font-map: map-get($govuk-typography-scale, $font-size);\n }\n }\n }\n\n // Still no match? Throw error\n @if not $font-map {\n @error \"Unknown font size `#{$size}` - expected a point from the type scale.\";\n }\n\n // Check for a deprecation within the type scale\n $deprecation: map-get($font-map, \"deprecation\");\n\n @if $deprecation {\n // Warn on deprecated font sizes unless flagged for internal use\n @if not $size-internal-use-only {\n @include _warning(map-get($deprecation, \"key\"), map-get($deprecation, \"message\"));\n }\n\n // remove the deprecation map keys so they do not break the breakpoint loop\n $font-map: map-remove($font-map, \"deprecation\");\n }\n\n @each $breakpoint, $breakpoint-map in $font-map {\n $font-size: map-get($breakpoint-map, \"font-size\");\n $font-size-rem: govuk-px-to-rem($font-size);\n\n // $calculated-line-height is a separate variable from $line-height,\n // as otherwise the value would get redefined with each loop and\n // eventually break _govuk-line-height.\n //\n // We continue to call the param $line-height to stay consistent with the\n // naming with govuk-font.\n $calculated-line-height: _govuk-line-height(\n $line-height: if($line-height, $line-height, map-get($breakpoint-map, \"line-height\")),\n $font-size: $font-size\n );\n\n // Mark rules as !important if $important is true - this will result in\n // these variables becoming strings, so this needs to happen *after* they\n // are used in calculations\n $font-size: $font-size if($important, !important, null);\n $font-size-rem: $font-size-rem if($important, !important, null);\n $calculated-line-height: $calculated-line-height if($important, !important, null);\n\n @if not $breakpoint {\n font-size: $font-size-rem;\n line-height: $calculated-line-height;\n } @else if $breakpoint == \"print\" {\n @include govuk-media-query($media-type: print) {\n font-size: $font-size;\n line-height: $calculated-line-height;\n }\n } @else {\n @include govuk-media-query($from: $breakpoint) {\n font-size: $font-size-rem;\n line-height: $calculated-line-height;\n }\n }\n }\n}\n\n/// Font helper\n///\n/// @param {Number | Boolean | String} $size Point from the type scale (the\n/// size as it would appear on tablet and above). Use `false` to avoid setting\n/// a size.\n/// @param {String} $weight [regular] - Weight: `bold` or `regular`\n/// @param {Boolean} $tabular [false] - Whether to use tabular numbers or not\n/// @param {Number} $line-height [false] - Line-height, if overriding the\n/// default\n///\n/// @throw if `$size` is not a valid point from the type scale (or false)\n///\n/// @access public\n\n@mixin govuk-font($size, $weight: regular, $tabular: false, $line-height: false) {\n @include govuk-typography-common;\n\n @if $tabular {\n @include govuk-font-tabular-numbers;\n }\n\n @if $weight == regular {\n @include govuk-typography-weight-regular;\n } @else if $weight == bold {\n @include govuk-typography-weight-bold;\n }\n\n @if $size {\n @include govuk-font-size($size, $line-height);\n }\n}\n","////\n/// @group settings/typography\n////\n\n// =========================================================\n// Font families\n// =========================================================\n\n/// Font families to use for all typography on screen media\n///\n/// @type List\n/// @access public\n\n$govuk-font-family: \"GDS Transport\", arial, sans-serif !default;\n\n/// Font families to use for print media\n///\n/// We recommend that you use system fonts when printing. This will avoid issues\n/// with some printer drivers and operating systems.\n///\n/// @type List\n/// @access public\n\n$govuk-font-family-print: sans-serif !default;\n\n/// Include the default @font-face declarations\n///\n/// Defaults to true if \"GDS Transport\" appears in the $govuk-font-family\n/// setting.\n///\n/// @type Boolean\n/// @access public\n\n$govuk-include-default-font-face: if(index($govuk-font-family, \"GDS Transport\"), true, false) !default;\n\n// =========================================================\n// Font weights\n// =========================================================\n\n/// Font weight for regular typography\n///\n/// @type Number\n/// @access public\n$govuk-font-weight-regular: 400 !default;\n\n/// Font weight for bold typography\n///\n/// @type Number\n/// @access public\n$govuk-font-weight-bold: 700 !default;\n","////\n/// @group helpers/links\n////\n\n/// Common link styles\n///\n/// Provides the typography and focus state, regardless of link style.\n///\n/// @access public\n\n@mixin govuk-link-common {\n @include govuk-typography-common;\n @include govuk-link-decoration;\n\n &:hover {\n @include govuk-link-hover-decoration;\n }\n\n &:focus {\n @include govuk-focused-text;\n }\n}\n\n/// Link decoration\n///\n/// Provides the text decoration for links, including thickness and underline\n/// offset. Use this mixin only if you cannot use the `govuk-link-common` mixin.\n///\n/// @access public\n@mixin govuk-link-decoration {\n text-decoration: underline;\n\n @if $govuk-link-underline-thickness {\n text-decoration-thickness: $govuk-link-underline-thickness;\n }\n\n @if $govuk-link-underline-offset {\n text-underline-offset: $govuk-link-underline-offset;\n }\n}\n\n/// Link hover decoration\n///\n/// Provides the text decoration for links in their hover state, for you to use\n/// within a `:hover` pseudo-selector. Use this mixin only if you cannot use the\n/// `govuk-link-common` mixin.\n///\n/// @access public\n\n@mixin govuk-link-hover-decoration {\n @if $govuk-link-hover-underline-thickness {\n text-decoration-thickness: $govuk-link-hover-underline-thickness;\n // Disable ink skipping on underlines on hover. Browsers haven't\n // standardised on this part of the spec yet, so set both properties\n text-decoration-skip-ink: none; // Chromium, Firefox\n text-decoration-skip: none; // Safari\n }\n}\n\n/// Default link styles\n///\n/// Makes links use the default unvisited, visited, hover and active colours.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-default;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-default {\n &:link {\n color: $govuk-link-colour;\n }\n\n &:visited {\n color: $govuk-link-visited-colour;\n }\n\n &:hover {\n color: $govuk-link-hover-colour;\n }\n\n &:active {\n color: $govuk-link-active-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n}\n\n/// Error link styles\n///\n/// Makes links use the error colour. The link will darken if it's active or a\n/// user hovers their cursor over it.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-error;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-error {\n &:link,\n &:visited {\n color: $govuk-error-colour;\n }\n\n &:hover {\n color: scale-color($govuk-error-colour, $lightness: -30%);\n }\n\n &:active {\n color: $govuk-error-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n}\n\n/// Success link styles\n///\n/// Makes links use the success colour. The link will darken if it's active or a\n/// user hovers their cursor over it.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-success;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-success {\n &:link,\n &:visited {\n color: $govuk-success-colour;\n }\n\n &:hover {\n color: scale-color($govuk-success-colour, $lightness: -30%);\n }\n\n &:active {\n color: $govuk-success-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n}\n\n/// Muted link styles\n///\n/// Makes links use the secondary text colour. The link will darken if it's\n/// active or a user hovers their cursor over it.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-muted;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-muted {\n &:link,\n &:visited {\n color: $govuk-secondary-text-colour;\n }\n\n &:hover,\n &:active {\n color: $govuk-text-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n}\n\n/// Text link styles\n///\n/// Makes links use the primary text colour, in all states. Use this mixin for\n/// navigation components, such as breadcrumbs or the back link.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-text;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-text {\n &:link,\n &:visited {\n @include govuk-text-colour;\n }\n\n // Force a colour change on hover to work around a bug in Safari\n // https://webkit.org/b/224483\n &:hover {\n @if type-of($govuk-text-colour) == color {\n color: rgba($govuk-text-colour, 0.99);\n }\n }\n\n &:active,\n &:focus {\n @include govuk-text-colour;\n }\n}\n\n/// Inverse link styles\n///\n/// Makes links white, in all states. Use this mixin if you're displaying links\n/// against a dark background.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-inverse;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-inverse {\n &:link,\n &:visited {\n color: govuk-colour(\"white\");\n }\n\n // Force a colour change on hover to work around a bug in Safari\n // https://webkit.org/b/224483\n &:hover,\n &:active {\n color: rgba(govuk-colour(\"white\"), 0.99);\n }\n\n &:focus {\n color: $govuk-focus-text-colour;\n }\n}\n\n/// Default link styles, without a visited state\n///\n/// Makes links use the default unvisited, hover and active colours, with no\n/// distinct visited state.\n///\n/// Use this mixin when it's not helpful to distinguish between visited and\n/// non-visited links. For example, when you link to pages with\n/// frequently-changing content, such as the dashboard for an admin interface.\n///\n/// If you use this mixin in a component, you must also include the\n/// `govuk-link-common` mixin to get the correct focus and hover states.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-no-visited-state;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-no-visited-state {\n &:link {\n color: $govuk-link-colour;\n }\n\n &:visited {\n color: $govuk-link-colour;\n }\n\n &:hover {\n color: $govuk-link-hover-colour;\n }\n\n &:active {\n color: $govuk-link-active-colour;\n }\n\n // When focussed, the text colour needs to be darker to ensure that colour\n // contrast is still acceptable\n &:focus {\n color: $govuk-focus-text-colour;\n }\n}\n\n/// Remove underline from links\n///\n/// Remove underlines from links unless the link is active or a user hovers\n/// their cursor over it.\n///\n/// @example scss\n/// .govuk-component__link {\n/// @include govuk-link-common;\n/// @include govuk-link-style-default;\n/// @include govuk-link-style-no-underline;\n/// }\n///\n/// @access public\n\n@mixin govuk-link-style-no-underline {\n &:not(:hover):not(:active) {\n text-decoration: none;\n }\n}\n\n/// Include link destination when printing the page\n///\n/// If the user prints the page, add the destination URL after the link text, if\n/// the URL starts with `/`, `http://` or `https://`.\n///\n/// @access public\n\n@mixin govuk-link-print-friendly {\n @include govuk-media-query($media-type: print) {\n &[href^=\"/\"],\n &[href^=\"http://\"],\n &[href^=\"https://\"]\n {\n &::after {\n content: \" (\" attr(href) \")\";\n font-size: 90%;\n\n // Because the URLs may be very long, ensure that they may be broken\n // at arbitrary points if there are no otherwise acceptable break\n // points in the line\n word-wrap: break-word;\n }\n }\n }\n}\n\n/// Image link styles\n///\n/// Prepares and provides the focus state for links that only contain images\n/// with no accompanying text.\n///\n/// @access public\n\n@mixin govuk-link-image {\n // Needed to draw the focus around the entire image\n display: inline-block;\n\n // Remove extra space at the bottom of the image that's added by line-height\n line-height: 0;\n\n // Don't render an underline\n text-decoration: none;\n\n &:focus {\n @include govuk-focused-box;\n }\n}\n","////\n/// @group settings/links\n////\n\n/// Thickness of link underlines\n///\n/// The default will be either:\n///\n/// - 1px\n/// - 0.0625rem, if it's thicker than 1px because the user has changed the text\n/// size in their browser\n///\n/// Set this variable to `false` to avoid setting a thickness.\n///\n/// @type Number\n/// @access public\n\n$govuk-link-underline-thickness: unquote(\"max(1px, .0625rem)\") !default;\n\n/// Offset of link underlines from text baseline\n///\n/// The default is 3px expressed as ems, as calculated against the default body\n/// font size (on desktop) of 19px.\n/// 3 ÷ 19 = 0.1578\n///\n/// Set this variable to `false` to avoid setting an offset.\n///\n/// @type Number\n/// @access public\n\n$govuk-link-underline-offset: 0.1578em !default;\n\n/// Thickness of link underlines in hover state\n///\n/// The default for each link will be the thickest of the following:\n///\n/// - 3px\n/// - 0.1875rem, if it's thicker than 3px because the user has changed the text\n/// size in their browser\n/// - 0.12em (relative to the link's text size)\n///\n/// Set this variable to `false` to avoid setting a thickness.\n///\n/// @type Number\n/// @access public\n\n$govuk-link-hover-underline-thickness: unquote(\"max(3px, .1875rem, .12em)\") !default;\n","////\n/// @group helpers\n////\n\n@import \"../tools/exports\";\n\n/// Font Face - GDS Transport\n///\n/// Outputs the font-face declaration for GDS Transport at the root of the CSS document\n/// the first time it is called.\n///\n/// @access private\n\n@mixin _govuk-font-face-gds-transport {\n @include govuk-exports(\"govuk/helpers/font-faces\") {\n @at-root {\n /*! Copyright (c) 2011 by Margaret Calvert & Henrik Kubel. All rights reserved. The font has been customised for exclusive use on gov.uk. This cut is not commercially available. */ /* stylelint-disable-line scss/comment-no-loud */\n @font-face {\n font-family: \"GDS Transport\";\n font-style: normal;\n font-weight: normal;\n src:\n govuk-font-url(\"light-94a07e06a1-v2.woff2\") format(\"woff2\"),\n govuk-font-url(\"light-f591b13f7d-v2.woff\") format(\"woff\");\n font-display: fallback;\n }\n\n @font-face {\n font-family: \"GDS Transport\";\n font-style: normal;\n font-weight: bold;\n src:\n govuk-font-url(\"bold-b542beb274-v2.woff2\") format(\"woff2\"),\n govuk-font-url(\"bold-affa96571d-v2.woff\") format(\"woff\");\n font-display: fallback;\n }\n }\n }\n}\n","// mq() v4.0.2\n// sass-mq/sass-mq\n\n@charset \"UTF-8\"; // Fixes an issue where Ruby locale is not set properly\n // See https://github.com/sass-mq/sass-mq/pull/10\n\n/// Base font size on the `` element\n/// @type Number (unit)\n$mq-base-font-size: 16px !default;\n\n/// Responsive mode\n///\n/// Set to `false` to enable support for browsers that do not support @media queries,\n/// (IE <= 8, Firefox <= 3, Opera <= 9)\n///\n/// You could create a stylesheet served exclusively to older browsers,\n/// where @media queries are rasterized\n///\n/// @example scss\n/// // old-ie.scss\n/// $mq-responsive: false;\n/// @import 'main'; // @media queries in this file will be rasterized up to $mq-static-breakpoint\n/// // larger breakpoints will be ignored\n///\n/// @type Boolean\n/// @link https://github.com/sass-mq/sass-mq#responsive-mode-off Disabled responsive mode documentation\n$mq-responsive: true !default;\n\n/// Breakpoint list\n///\n/// Name your breakpoints in a way that creates a ubiquitous language\n/// across team members. It will improve communication between\n/// stakeholders, designers, developers, and testers.\n///\n/// @type Map\n/// @link https://github.com/sass-mq/sass-mq#seeing-the-currently-active-breakpoint Full documentation and examples\n$mq-breakpoints: (\n mobile: 320px,\n tablet: 740px,\n desktop: 980px,\n wide: 1300px\n) !default;\n\n/// Static breakpoint (for fixed-width layouts)\n///\n/// Define the breakpoint from $mq-breakpoints that should\n/// be used as the target width for the fixed-width layout\n/// (i.e. when $mq-responsive is set to 'false') in a old-ie.scss\n///\n/// @example scss\n/// // tablet-only.scss\n/// //\n/// // Ignore all styles above tablet breakpoint,\n/// // and fix the styles (e.g. layout) at tablet width\n/// $mq-responsive: false;\n/// $mq-static-breakpoint: tablet;\n/// @import 'main'; // @media queries in this file will be rasterized up to tablet\n/// // larger breakpoints will be ignored\n///\n/// @type String\n/// @link https://github.com/sass-mq/sass-mq#adding-custom-breakpoints Full documentation and examples\n$mq-static-breakpoint: desktop !default;\n\n/// Show breakpoints in the top right corner\n///\n/// If you want to display the currently active breakpoint in the top\n/// right corner of your site during development, add the breakpoints\n/// to this list, ordered by width, e.g. (mobile, tablet, desktop).\n///\n/// @type map\n$mq-show-breakpoints: () !default;\n\n/// Customize the media type (e.g. `@media screen` or `@media print`)\n/// By default sass-mq uses an \"all\" media type (`@media all and …`)\n///\n/// @type String\n/// @link https://github.com/sass-mq/sass-mq#changing-media-type Full documentation and examples\n$mq-media-type: all !default;\n\n/// Convert pixels to ems\n///\n/// @param {Number} $px - value to convert\n/// @param {Number} $base-font-size ($mq-base-font-size) - `` font size\n///\n/// @example scss\n/// $font-size-in-ems: mq-px2em(16px);\n/// p { font-size: mq-px2em(16px); }\n///\n/// @requires $mq-base-font-size\n/// @returns {Number}\n@function mq-px2em($px, $base-font-size: $mq-base-font-size) {\n @if unitless($px) {\n @warn \"Assuming #{$px} to be in pixels, attempting to convert it into pixels.\";\n @return mq-px2em($px * 1px, $base-font-size);\n } @else if unit($px) == em {\n @return $px;\n }\n @return ($px / $base-font-size) * 1em;\n}\n\n/// Get a breakpoint's width\n///\n/// @param {String} $name - Name of the breakpoint. One of $mq-breakpoints\n///\n/// @example scss\n/// $tablet-width: mq-get-breakpoint-width(tablet);\n/// @media (min-width: mq-get-breakpoint-width(desktop)) {}\n///\n/// @requires {Variable} $mq-breakpoints\n///\n/// @returns {Number} Value in pixels\n@function mq-get-breakpoint-width($name, $breakpoints: $mq-breakpoints) {\n @if map-has-key($breakpoints, $name) {\n @return map-get($breakpoints, $name);\n } @else {\n @warn \"Breakpoint #{$name} wasn't found in $breakpoints.\";\n }\n}\n\n/// Media Query mixin\n///\n/// @param {String | Boolean} $from (false) - One of $mq-breakpoints\n/// @param {String | Boolean} $until (false) - One of $mq-breakpoints\n/// @param {String | Boolean} $and (false) - Additional media query parameters\n/// @param {String} $media-type ($mq-media-type) - Media type: screen, print…\n///\n/// @ignore Undocumented API, for advanced use only:\n/// @ignore @param {Map} $breakpoints ($mq-breakpoints)\n/// @ignore @param {String} $static-breakpoint ($mq-static-breakpoint)\n///\n/// @content styling rules, wrapped into a @media query when $responsive is true\n///\n/// @requires {Variable} $mq-media-type\n/// @requires {Variable} $mq-breakpoints\n/// @requires {Variable} $mq-static-breakpoint\n/// @requires {function} mq-px2em\n/// @requires {function} mq-get-breakpoint-width\n///\n/// @link https://github.com/sass-mq/sass-mq#responsive-mode-on-default Full documentation and examples\n///\n/// @example scss\n/// .element {\n/// @include mq($from: mobile) {\n/// color: red;\n/// }\n/// @include mq($until: tablet) {\n/// color: blue;\n/// }\n/// @include mq(mobile, tablet) {\n/// color: green;\n/// }\n/// @include mq($from: tablet, $and: '(orientation: landscape)') {\n/// color: teal;\n/// }\n/// @include mq(950px) {\n/// color: hotpink;\n/// }\n/// @include mq(tablet, $media-type: screen) {\n/// color: hotpink;\n/// }\n/// // Advanced use:\n/// $my-breakpoints: (L: 900px, XL: 1200px);\n/// @include mq(L, $breakpoints: $my-breakpoints, $static-breakpoint: L) {\n/// color: hotpink;\n/// }\n/// }\n@mixin mq(\n $from: false,\n $until: false,\n $and: false,\n $media-type: $mq-media-type,\n $breakpoints: $mq-breakpoints,\n $responsive: $mq-responsive,\n $static-breakpoint: $mq-static-breakpoint\n) {\n $min-width: 0;\n $max-width: 0;\n $media-query: '';\n\n // From: this breakpoint (inclusive)\n @if $from {\n @if type-of($from) == number {\n $min-width: mq-px2em($from);\n } @else {\n $min-width: mq-px2em(mq-get-breakpoint-width($from, $breakpoints));\n }\n }\n\n // Until: that breakpoint (exclusive)\n @if $until {\n @if type-of($until) == number {\n $max-width: mq-px2em($until);\n } @else {\n $max-width: mq-px2em(mq-get-breakpoint-width($until, $breakpoints)) - .01em;\n }\n }\n\n // Responsive support is disabled, rasterize the output outside @media blocks\n // The browser will rely on the cascade itself.\n @if $responsive == false {\n $static-breakpoint-width: mq-get-breakpoint-width($static-breakpoint, $breakpoints);\n $target-width: mq-px2em($static-breakpoint-width);\n\n // Output only rules that start at or span our target width\n @if (\n $and == false\n and $min-width <= $target-width\n and (\n $until == false or $max-width >= $target-width\n )\n and $media-type != 'print'\n ) {\n @content;\n }\n }\n\n // Responsive support is enabled, output rules inside @media queries\n @else {\n @if $min-width != 0 { $media-query: '#{$media-query} and (min-width: #{$min-width})'; }\n @if $max-width != 0 { $media-query: '#{$media-query} and (max-width: #{$max-width})'; }\n @if $and { $media-query: '#{$media-query} and #{$and}'; }\n\n // Remove unnecessary media query prefix 'all and '\n @if ($media-type == 'all' and $media-query != '') {\n $media-type: '';\n $media-query: str-slice(unquote($media-query), 6);\n }\n\n @media #{$media-type + $media-query} {\n @content;\n }\n }\n}\n\n/// Quick sort\n///\n/// @author Sam Richards\n/// @access private\n/// @param {List} $list - List to sort\n/// @returns {List} Sorted List\n@function _mq-quick-sort($list) {\n $less: ();\n $equal: ();\n $large: ();\n\n @if length($list) > 1 {\n $seed: nth($list, ceil(length($list) / 2));\n\n @each $item in $list {\n @if ($item == $seed) {\n $equal: append($equal, $item);\n } @else if ($item < $seed) {\n $less: append($less, $item);\n } @else if ($item > $seed) {\n $large: append($large, $item);\n }\n }\n\n @return join(join(_mq-quick-sort($less), $equal), _mq-quick-sort($large));\n }\n\n @return $list;\n}\n\n/// Sort a map by values (works with numbers only)\n///\n/// @access private\n/// @param {Map} $map - Map to sort\n/// @returns {Map} Map sorted by value\n@function _mq-map-sort-by-value($map) {\n $map-sorted: ();\n $map-keys: map-keys($map);\n $map-values: map-values($map);\n $map-values-sorted: _mq-quick-sort($map-values);\n\n // Reorder key/value pairs based on key values\n @each $value in $map-values-sorted {\n $index: index($map-values, $value);\n $key: nth($map-keys, $index);\n $map-sorted: map-merge($map-sorted, ($key: $value));\n\n // Unset the value in $map-values to prevent the loop\n // from finding the same index twice\n $map-values: set-nth($map-values, $index, 0);\n }\n\n @return $map-sorted;\n}\n\n/// Add a breakpoint\n///\n/// @param {String} $name - Name of the breakpoint\n/// @param {Number} $width - Width of the breakpoint\n///\n/// @requires {Variable} $mq-breakpoints\n///\n/// @example scss\n/// @include mq-add-breakpoint(tvscreen, 1920px);\n/// @include mq(tvscreen) {}\n@mixin mq-add-breakpoint($name, $width) {\n $new-breakpoint: ($name: $width);\n $mq-breakpoints: map-merge($mq-breakpoints, $new-breakpoint) !global;\n $mq-breakpoints: _mq-map-sort-by-value($mq-breakpoints) !global;\n}\n\n/// Show the active breakpoint in the top right corner of the viewport\n/// @link https://github.com/sass-mq/sass-mq#seeing-the-currently-active-breakpoint\n///\n/// @param {List} $show-breakpoints ($mq-show-breakpoints) - List of breakpoints to show in the top right corner\n/// @param {Map} $breakpoints ($mq-breakpoints) - Breakpoint names and sizes\n///\n/// @requires {Variable} $mq-breakpoints\n/// @requires {Variable} $mq-show-breakpoints\n///\n/// @example scss\n/// // Show breakpoints using global settings\n/// @include mq-show-breakpoints;\n///\n/// // Show breakpoints using custom settings\n/// @include mq-show-breakpoints((L, XL), (S: 300px, L: 800px, XL: 1200px));\n@mixin mq-show-breakpoints($show-breakpoints: $mq-show-breakpoints, $breakpoints: $mq-breakpoints) {\n body::before {\n background-color: #FCF8E3;\n border-bottom: 1px solid #FBEED5;\n border-left: 1px solid #FBEED5;\n color: #C09853;\n font: small-caption;\n padding: 3px 6px;\n pointer-events: none;\n position: fixed;\n right: 0;\n top: 0;\n z-index: 100;\n\n // Loop through the breakpoints that should be shown\n @each $show-breakpoint in $show-breakpoints {\n $width: mq-get-breakpoint-width($show-breakpoint, $breakpoints);\n @include mq($show-breakpoint, $breakpoints: $breakpoints) {\n content: \"#{$show-breakpoint} ≥ #{$width} (#{mq-px2em($width)})\";\n }\n }\n }\n}\n\n@if length($mq-show-breakpoints) > 0 {\n @include mq-show-breakpoints;\n}\n","////\n/// @group helpers/accessibility\n////\n\n/// Focused text\n///\n/// Provides an outline to clearly indicate when the target element is focused.\n/// Used for interactive text-based elements.\n///\n/// @access public\n\n@mixin govuk-focused-text {\n // When colours are overridden, for example when users have a dark mode,\n // backgrounds and box-shadows disappear, so we need to ensure there's a\n // transparent outline which will be set to a visible colour.\n\n outline: $govuk-focus-width solid transparent;\n color: $govuk-focus-text-colour;\n background-color: $govuk-focus-colour;\n box-shadow:\n 0 -2px $govuk-focus-colour,\n 0 4px $govuk-focus-text-colour;\n // When link is focussed, hide the default underline since the\n // box shadow adds the \"underline\"\n text-decoration: none;\n\n // When a focused box is broken by e.g. a line break, ensure that the\n // box-shadow is applied to each fragment independently.\n box-decoration-break: clone;\n}\n\n/// Focused box\n///\n/// Provides an outline to clearly indicate when the target element is focused.\n/// Unlike govuk-focused-text, which only draws an underline below the element,\n/// govuk-focused-box draws an outline around all sides of the element.\n/// Best used for non-text content contained within links.\n///\n/// @access public\n\n@mixin govuk-focused-box {\n outline: $govuk-focus-width solid transparent;\n box-shadow:\n 0 0 0 4px $govuk-focus-colour,\n 0 0 0 8px $govuk-focus-text-colour;\n}\n","////\n/// @group settings/colours\n////\n\n@import \"../helpers/colour\";\n\n// =========================================================\n// Generic\n// =========================================================\n\n/// Brand colour\n///\n/// @type Colour\n/// @access public\n\n$govuk-brand-colour: govuk-colour(\"blue\") !default;\n\n/// Text colour\n///\n/// @type Colour\n/// @access public\n\n$govuk-text-colour: govuk-colour(\"black\") !default;\n\n/// Canvas background colour\n///\n/// Used by the footer component and template to give the illusion of a long\n/// footer.\n///\n/// @type Colour\n/// @access public\n\n$govuk-canvas-background-colour: govuk-colour(\"light-grey\") !default;\n\n/// Body background colour\n///\n/// @type Colour\n/// @access public\n\n$govuk-body-background-colour: govuk-colour(\"white\") !default;\n\n/// Text colour for print media\n///\n/// Use 'true black' to avoid printers using colour ink to print body text\n///\n/// @type Colour\n/// @access public\n\n$govuk-print-text-colour: #000000 !default;\n\n/// Secondary text colour\n///\n/// Used in for example 'muted' text and help text.\n///\n/// @type Colour\n/// @access public\n\n$govuk-secondary-text-colour: govuk-colour(\"dark-grey\") !default;\n\n/// Focus colour\n///\n/// Used for outline (and background, where appropriate) when interactive\n/// elements (links, form controls) have keyboard focus.\n///\n/// @type Colour\n/// @access public\n\n$govuk-focus-colour: govuk-colour(\"yellow\") !default;\n\n/// Focused text colour\n///\n/// Ensure that the contrast between the text and background colour passes\n/// WCAG Level AA contrast requirements.\n///\n/// @type Colour\n/// @access public\n\n$govuk-focus-text-colour: govuk-colour(\"black\") !default;\n\n/// Error colour\n///\n/// Used to highlight error messages and form controls in an error state\n///\n/// @type Colour\n/// @access public\n\n$govuk-error-colour: govuk-colour(\"red\") !default;\n\n/// Success colour\n///\n/// Used to highlight success messages and banners\n///\n/// @type Colour\n/// @access public\n\n$govuk-success-colour: govuk-colour(\"green\") !default;\n\n/// Border colour\n///\n/// Used in for example borders, separators, rules and keylines.\n///\n/// @type Colour\n/// @access public\n\n$govuk-border-colour: govuk-colour(\"mid-grey\") !default;\n\n/// Input border colour\n///\n/// Used for form inputs and controls\n///\n/// @type Colour\n/// @access public\n\n$govuk-input-border-colour: govuk-colour(\"black\") !default;\n\n/// Input hover colour\n///\n/// Used for hover states on form controls\n///\n/// @type Colour\n/// @access public\n\n$govuk-hover-colour: govuk-colour(\"mid-grey\") !default;\n\n// =============================================================================\n// Links\n// =============================================================================\n\n/// Link colour\n///\n/// @type Colour\n/// @access public\n\n$govuk-link-colour: govuk-colour(\"blue\") !default;\n\n/// Visited link colour\n///\n/// @type Colour\n/// @access public\n\n$govuk-link-visited-colour: govuk-colour(\"purple\") !default;\n\n/// Link hover colour\n///\n/// @type Colour\n/// @access public\n\n$govuk-link-hover-colour: govuk-colour(\"dark-blue\") !default;\n\n/// Active link colour\n///\n/// @type Colour\n/// @access public\n\n$govuk-link-active-colour: govuk-colour(\"black\") !default;\n","@include govuk-exports(\"govuk/core/lists\") {\n %govuk-list {\n @include govuk-font($size: 19);\n @include govuk-text-colour;\n margin-top: 0;\n @include govuk-responsive-margin(4, \"bottom\");\n padding-left: 0;\n list-style-type: none;\n\n // Add a top margin for nested lists\n %govuk-list {\n margin-top: govuk-spacing(2);\n }\n }\n\n %govuk-list > li {\n // Lists without numbers or bullets should always have extra space between\n // list items. Lists with numbers or bullets only have this extra space on\n // tablet and above\n margin-bottom: govuk-spacing(1);\n }\n\n .govuk-list {\n @extend %govuk-list;\n }\n\n %govuk-list--bullet {\n padding-left: govuk-spacing(4);\n list-style-type: disc;\n }\n\n %govuk-list--number {\n padding-left: govuk-spacing(4);\n list-style-type: decimal;\n }\n\n %govuk-list--bullet > li,\n %govuk-list--number > li {\n margin-bottom: 0;\n\n @include govuk-media-query($from: tablet) {\n margin-bottom: govuk-spacing(1);\n }\n }\n\n %govuk-list--spaced > li {\n margin-bottom: govuk-spacing(2);\n\n @include govuk-media-query($from: tablet) {\n margin-bottom: govuk-spacing(3);\n }\n }\n\n .govuk-list--bullet {\n @extend %govuk-list--bullet;\n }\n\n .govuk-list--number {\n @extend %govuk-list--number;\n }\n\n .govuk-list--spaced {\n @extend %govuk-list--spaced;\n }\n}\n","////\n/// @group helpers/spacing\n////\n\n/// Single point spacing\n///\n/// Returns measurement corresponding to the spacing point requested.\n///\n/// @param {Number} $spacing-point - Point on the spacing scale\n/// (set in `settings/_spacing.scss`)\n///\n/// @returns {String} Spacing measurement eg. 10px\n///\n/// @example scss\n/// .element {\n/// padding: govuk-spacing(5);\n/// }\n///\n/// @example scss Using negative spacing\n/// .element {\n/// margin-top: govuk-spacing(-1);\n/// }\n///\n/// @example scss Marking spacing declarations as important\n/// .element {\n/// margin-top: govuk-spacing(1) !important;\n/// }\n///\n/// @access public\n\n@function govuk-spacing($spacing-point) {\n $actual-input-type: type-of($spacing-point);\n @if $actual-input-type != \"number\" {\n @error \"Expected a number (integer), but got a \"\n + \"#{$actual-input-type}.\";\n }\n\n $is-negative: false;\n @if $spacing-point < 0 {\n $is-negative: true;\n $spacing-point: abs($spacing-point);\n }\n\n @if not map-has-key($govuk-spacing-points, $spacing-point) {\n @error \"Unknown spacing variable `#{$spacing-point}`. Make sure you are using a point from the spacing scale in `_settings/spacing.scss`.\";\n }\n\n $value: map-get($govuk-spacing-points, $spacing-point);\n @return if($is-negative, $value * -1, $value);\n}\n\n/// Responsive spacing\n///\n/// Adds responsive spacing (either padding or margin, depending on `$property`)\n/// by fetching a 'spacing map' from the responsive spacing scale, which defines\n/// different spacing values at different breakpoints.\n///\n/// To generate responsive spacing, use 'govuk-responsive-margin' or\n/// 'govuk-responsive-padding' mixins\n///\n/// @param {Number} $responsive-spacing-point - Point on the responsive spacing\n/// scale, corresponds to a map of breakpoints and spacing values\n/// @param {String} $property - Property to add spacing to (e.g. 'margin')\n/// @param {String} $direction [all] - Direction to add spacing to\n/// (`top`, `right`, `bottom`, `left`, `all`)\n/// @param {Boolean} $important [false] - Whether to mark as `!important`\n/// @param {Number} $adjustment [false] - Offset to adjust spacing by\n///\n/// @access private\n\n@mixin _govuk-responsive-spacing(\n $responsive-spacing-point,\n $property,\n $direction: \"all\",\n $important: false,\n $adjustment: false\n) {\n $actual-input-type: type-of($responsive-spacing-point);\n @if $actual-input-type != \"number\" {\n @error \"Expected a number (integer), but got a \" + \"#{$actual-input-type}.\";\n }\n\n @if not map-has-key($govuk-spacing-responsive-scale, $responsive-spacing-point) {\n @error \"Unknown spacing point `#{$responsive-spacing-point}`. Make sure you are using a point from the \"\n + \"responsive spacing scale in `_settings/spacing.scss`.\";\n }\n\n // Make sure that the return value from `_settings/spacing.scss` is a map.\n $scale-map: map-get($govuk-spacing-responsive-scale, $responsive-spacing-point);\n $actual-map-type: type-of($scale-map);\n @if $actual-map-type != \"map\" {\n @error \"Expected a number (integer), but got a \"\n + \"#{$actual-map-type}. Make sure you are using a map to set the responsive spacing in `_settings/spacing.scss`)\";\n }\n\n // Loop through each breakpoint in the map\n @each $breakpoint, $breakpoint-value in $scale-map {\n @if $adjustment {\n $breakpoint-value: $breakpoint-value + $adjustment;\n }\n\n // The 'null' breakpoint is for mobile.\n @if not $breakpoint {\n @if $direction == all {\n #{$property}: $breakpoint-value if($important, !important, null);\n } @else {\n #{$property}-#{$direction}: $breakpoint-value if($important, !important, null);\n }\n } @else {\n @include govuk-media-query($from: $breakpoint) {\n @if $direction == all {\n #{$property}: $breakpoint-value if($important, !important, null);\n } @else {\n #{$property}-#{$direction}: $breakpoint-value if($important, !important, null);\n }\n }\n }\n }\n}\n\n/// Responsive margin\n///\n/// Adds responsive margin by fetching a 'spacing map' from the responsive\n/// spacing scale, which defines different spacing values at different\n/// breakpoints. Wrapper for the `_govuk-responsive-spacing` mixin.\n///\n/// @see {mixin} _govuk-responsive-spacing\n///\n/// @param {Number} $responsive-spacing-point - Point on the responsive spacing\n/// scale, corresponds to a map of breakpoints and spacing values\n/// @param {String} $direction [all] - Direction to add spacing to\n/// (`top`, `right`, `bottom`, `left`, `all`)\n/// @param {Boolean} $important [false] - Whether to mark as `!important`\n/// @param {Number} $adjustment [false] - Offset to adjust spacing by\n///\n/// @example scss\n/// .element {\n/// @include govuk-responsive-margin(6, \"left\", $adjustment: 1px);\n/// }\n///\n/// @access public\n\n@mixin govuk-responsive-margin($responsive-spacing-point, $direction: \"all\", $important: false, $adjustment: false) {\n @include _govuk-responsive-spacing($responsive-spacing-point, \"margin\", $direction, $important, $adjustment);\n}\n\n/// Responsive padding\n///\n/// Adds responsive padding by fetching a 'spacing map' from the responsive\n/// spacing scale, which defines different spacing values at different\n/// breakpoints. Wrapper for the `_govuk-responsive-spacing` mixin.\n///\n/// @see {mixin} _govuk-responsive-spacing\n///\n/// @param {Number} $responsive-spacing-point - Point on the responsive spacing\n/// scale, corresponds to a map of breakpoints and spacing values\n/// @param {String} $direction [all] - Direction to add spacing to\n/// (`top`, `right`, `bottom`, `left`, `all`)\n/// @param {Boolean} $important [false] - Whether to mark as `!important`\n/// @param {Number} $adjustment [false] - Offset to adjust spacing\n///\n/// @example scss\n/// .element {\n/// @include govuk-responsive-padding(6, \"left\", $adjustment: 1px);\n/// }\n///\n/// @access public\n\n@mixin govuk-responsive-padding($responsive-spacing-point, $direction: \"all\", $important: false, $adjustment: false) {\n @include _govuk-responsive-spacing($responsive-spacing-point, \"padding\", $direction, $important, $adjustment);\n}\n","@include govuk-exports(\"govuk/core/typography\") {\n // Headings\n\n %govuk-heading-xl {\n @include govuk-text-colour;\n @include govuk-font($size: 48, $weight: bold);\n\n display: block;\n\n margin-top: 0;\n @include govuk-responsive-margin(8, \"bottom\");\n }\n\n .govuk-heading-xl {\n @extend %govuk-heading-xl;\n }\n\n %govuk-heading-l {\n @include govuk-text-colour;\n @include govuk-font($size: 36, $weight: bold);\n\n display: block;\n\n margin-top: 0;\n @include govuk-responsive-margin(6, \"bottom\");\n }\n\n .govuk-heading-l {\n @extend %govuk-heading-l;\n }\n\n %govuk-heading-m {\n @include govuk-text-colour;\n @include govuk-font($size: 24, $weight: bold);\n\n display: block;\n\n margin-top: 0;\n @include govuk-responsive-margin(4, \"bottom\");\n }\n\n .govuk-heading-m {\n @extend %govuk-heading-m;\n }\n\n %govuk-heading-s {\n @include govuk-text-colour;\n @include govuk-font($size: 19, $weight: bold);\n\n display: block;\n\n margin-top: 0;\n @include govuk-responsive-margin(4, \"bottom\");\n }\n\n .govuk-heading-s {\n @extend %govuk-heading-s;\n }\n\n // Captions to be used inside headings\n\n .govuk-caption-xl {\n @include govuk-font($size: 27);\n\n display: block;\n\n margin-bottom: govuk-spacing(1);\n\n color: $govuk-secondary-text-colour;\n }\n\n .govuk-caption-l {\n @include govuk-font($size: 24);\n\n display: block;\n\n margin-bottom: govuk-spacing(1);\n color: $govuk-secondary-text-colour;\n\n @include govuk-media-query($from: tablet) {\n margin-bottom: 0;\n }\n }\n\n .govuk-caption-m {\n @include govuk-font($size: 19);\n\n display: block;\n\n color: $govuk-secondary-text-colour;\n }\n\n // Body (paragraphs)\n\n %govuk-body-l {\n @include govuk-text-colour;\n @include govuk-font($size: 24);\n\n margin-top: 0;\n @include govuk-responsive-margin(6, \"bottom\");\n }\n\n .govuk-body-l {\n @extend %govuk-body-l;\n }\n\n %govuk-body-m {\n @include govuk-text-colour;\n @include govuk-font($size: 19);\n\n margin-top: 0;\n @include govuk-responsive-margin(4, \"bottom\");\n }\n\n .govuk-body-m {\n @extend %govuk-body-m;\n }\n\n %govuk-body-s {\n @include govuk-text-colour;\n @include govuk-font($size: 16);\n\n margin-top: 0;\n @include govuk-responsive-margin(4, \"bottom\");\n }\n\n .govuk-body-s {\n @extend %govuk-body-s;\n }\n\n // @deprecated\n %govuk-body-xs {\n @include govuk-text-colour;\n @include govuk-font($size: _14);\n\n margin-top: 0;\n @include govuk-responsive-margin(4, \"bottom\");\n }\n\n // @deprecated\n .govuk-body-xs {\n @extend %govuk-body-xs;\n }\n\n // Usage aliases\n\n // Using extend to alias means we also inherit any contextual adjustments that\n // refer to the 'original' class name\n\n .govuk-body-lead {\n @extend %govuk-body-l;\n }\n\n .govuk-body {\n @extend %govuk-body-m;\n }\n\n // Contextual adjustments\n // Add top padding to headings that appear directly after paragraphs.\n\n %govuk-body-l + %govuk-heading-l {\n padding-top: govuk-spacing(1);\n\n @include govuk-media-query($from: tablet) {\n padding-top: govuk-spacing(2);\n }\n }\n\n %govuk-body-m + %govuk-heading-l,\n %govuk-body-s + %govuk-heading-l,\n %govuk-list + %govuk-heading-l {\n @include govuk-responsive-padding(4, \"top\");\n }\n\n %govuk-body-m + %govuk-heading-m,\n %govuk-body-s + %govuk-heading-m,\n %govuk-list + %govuk-heading-m,\n %govuk-body-m + %govuk-heading-s,\n %govuk-body-s + %govuk-heading-s,\n %govuk-list + %govuk-heading-s {\n padding-top: govuk-spacing(1);\n\n @include govuk-media-query($from: tablet) {\n padding-top: govuk-spacing(2);\n }\n }\n}\n","@include govuk-exports(\"govuk/core/section-break\") {\n %govuk-section-break {\n margin: 0;\n border: 0;\n }\n\n .govuk-section-break {\n @extend %govuk-section-break;\n }\n\n // Sizes\n\n %govuk-section-break--xl {\n @include govuk-responsive-margin(8, \"top\");\n @include govuk-responsive-margin(8, \"bottom\");\n }\n\n .govuk-section-break--xl {\n @extend %govuk-section-break--xl;\n }\n\n %govuk-section-break--l {\n @include govuk-responsive-margin(6, \"top\");\n @include govuk-responsive-margin(6, \"bottom\");\n }\n\n .govuk-section-break--l {\n @extend %govuk-section-break--l;\n }\n\n %govuk-section-break--m {\n @include govuk-responsive-margin(4, \"top\");\n @include govuk-responsive-margin(4, \"bottom\");\n }\n\n .govuk-section-break--m {\n @extend %govuk-section-break--m;\n }\n\n // Visible variant\n\n %govuk-section-break--visible {\n border-bottom: 1px solid $govuk-border-colour;\n }\n\n .govuk-section-break--visible {\n @extend %govuk-section-break--visible;\n }\n}\n","@import \"../base\";\n\n@include govuk-exports(\"govuk/objects/button-group\") {\n // Button groups can be used to group buttons and links together as a group.\n //\n // Within a button group:\n //\n // - links are styled to line up visually with the buttons, including being\n // centre-aligned on mobile\n // - spacing between the buttons and links is handled automatically, including\n // when they wrap across multiple lines\n .govuk-button-group {\n $horizontal-gap: govuk-spacing(3);\n $vertical-gap: govuk-spacing(3);\n\n // These need to be kept in sync with the button component's styles\n $button-padding: govuk-spacing(2);\n $button-shadow-size: $govuk-border-width-form-element;\n\n $link-spacing: govuk-spacing(1);\n\n @include govuk-responsive-margin(6, \"bottom\", $adjustment: $vertical-gap * -1);\n\n // Flexbox is used to center-align links on mobile, align everything along\n // the baseline on tablet and above, and to removes extra whitespace that\n // we'd get between the buttons and links because they're inline-blocks.\n //\n // Ideally we'd use `gap` with flexbox rather than having to do it all with\n // margins, but unfortunately the support isn't there (yet) and @supports\n // doesn't play nicely with it\n // (https://github.com/w3c/csswg-drafts/issues/3559)\n display: flex;\n flex-direction: column;\n align-items: center;\n\n // Give links within the button group the same font-size and line-height\n // as buttons.\n //\n // Because we want the focus state to be tight around the link text, we use\n // margins where the buttons would use padding.\n .govuk-link {\n @include govuk-font($size: 19, $line-height: 19px);\n display: inline-block;\n // Prevent links overflowing their container in IE10/11 because of bug\n // with align-items: center\n max-width: 100%;\n margin-top: $link-spacing;\n margin-bottom: $link-spacing + $vertical-gap;\n text-align: center;\n }\n\n // Reduce the bottom margin to the size of the vertical gap (accommodating\n // the button shadow) – the 'lost' margin is moved to the button-group.\n .govuk-button {\n margin-bottom: $vertical-gap + $button-shadow-size;\n }\n\n // On tablet and above, we also introduce a 'column gap' between the\n // buttons and links in each row and left align links\n @include govuk-media-query($from: tablet) {\n // Cancel out the column gap for the last item in each row\n margin-right: ($horizontal-gap * -1);\n\n flex-direction: row;\n flex-wrap: wrap;\n align-items: baseline;\n\n .govuk-button,\n .govuk-link {\n margin-right: $horizontal-gap;\n }\n\n .govuk-link {\n text-align: left;\n }\n }\n }\n}\n","@import \"../base\";\n\n@include govuk-exports(\"govuk/objects/form-group\") {\n .govuk-form-group {\n @include govuk-clearfix;\n @include govuk-responsive-margin(6, \"bottom\");\n\n .govuk-form-group:last-of-type {\n margin-bottom: 0; // Remove margin from last item in nested groups\n }\n }\n\n .govuk-form-group--error {\n padding-left: govuk-spacing(3);\n border-left: $govuk-border-width-form-group-error solid $govuk-error-colour;\n\n .govuk-form-group {\n // Reset error styles in nested form groups that might have error class\n padding: 0;\n border: 0;\n }\n }\n}\n","////\n/// @group helpers/layout\n////\n\n/// Clear floated content within a container using a pseudo element\n///\n/// @access public\n\n@mixin govuk-clearfix {\n &::after {\n content: \"\";\n display: block;\n clear: both;\n }\n}\n","@import \"../base\";\n\n@include govuk-exports(\"govuk/objects/grid\") {\n .govuk-grid-row {\n @include govuk-clearfix;\n margin-right: -($govuk-gutter-half);\n margin-left: -($govuk-gutter-half);\n }\n\n @each $width in map-keys($govuk-grid-widths) {\n .govuk-grid-column-#{$width} {\n @include govuk-grid-column($width);\n }\n }\n\n // These *must* be defined in a separate loop as they have the same\n // specificity as the non-breakpoint specific classes, so need to appear after\n // them in the outputted CSS\n @each $width in map-keys($govuk-grid-widths) {\n .govuk-grid-column-#{$width}-from-desktop {\n @include govuk-grid-column($width, $at: desktop);\n }\n }\n}\n","////\n/// @group helpers/layout\n////\n\n/// Grid width percentage\n///\n/// @param {String} $key - Name of grid width (e.g. two-thirds)\n/// @return {Number} Percentage width\n/// @throw if `$key` is not a valid grid width\n/// @access public\n\n@function govuk-grid-width($key) {\n @if map-has-key($govuk-grid-widths, $key) {\n @return map-get($govuk-grid-widths, $key);\n }\n\n @error \"Unknown grid width `#{$key}`\";\n}\n\n/// Generate grid column styles\n///\n/// Creates a grid column with standard gutter between the columns.\n///\n/// Grid widths are defined in the `$govuk-grid-widths` map.\n///\n/// By default the column width changes from 100% to specified width at the\n/// 'tablet' breakpoint, but other breakpoints can be specified using the `$at`\n/// parameter.\n///\n/// @param {String} $width [full] name of a grid width from $govuk-grid-widths\n/// @param {String} $float [left] left | right\n/// @param {String} $at [tablet] - mobile | tablet | desktop | any custom breakpoint\n///\n/// @example scss - Default\n/// .govuk-grid-column-two-thirds {\n/// @include govuk-grid-column(two-thirds)\n/// }\n///\n/// @example scss - Customising the breakpoint where width percentage is applied\n/// .govuk-grid-column-one-half-from-desktop {\n/// @include govuk-grid-column(one-half, $at: desktop);\n/// }\n///\n/// @example scss - Customising the float direction\n/// .govuk-grid-column-one-half-right {\n/// @include govuk-grid-column(two-thirds, $float: right);\n/// }\n///\n/// @access public\n\n@mixin govuk-grid-column($width: full, $float: left, $at: tablet) {\n box-sizing: border-box;\n @if $at != desktop {\n width: 100%;\n }\n padding: 0 $govuk-gutter-half;\n @include govuk-media-query($from: $at) {\n width: govuk-grid-width($width);\n float: $float;\n }\n}\n","@import \"../base\";\n\n////\n/// @group objects/layout\n////\n\n// Example usage with Breadcrumbs, phase banners, back links:\n//
\n// \n//
\n// \n//
\n//
\n//\n// Example usage without Breadcrumbs, phase banners, back links:\n//
\n//
\n// \n//
\n//
\n\n@include govuk-exports(\"govuk/objects/main-wrapper\") {\n .govuk-main-wrapper {\n // In IE11 the `main` element can be used, but is not recognized –\n // meaning it's not defined in IE's default style sheet,\n // so it uses CSS initial value, which is inline.\n display: block;\n padding-top: govuk-spacing(4);\n padding-bottom: govuk-spacing(4);\n\n @include govuk-media-query($from: tablet) {\n // This spacing is manually adjusted to replicate the margin of\n // govuk-heading-xl (50px) minus the spacing of back link and\n // breadcrumbs (10px)\n padding-top: govuk-spacing(7);\n padding-bottom: govuk-spacing(7);\n }\n }\n\n // Using the `.govuk-main-wrapper--auto-spacing` modifier should apply the\n // correct spacing depending on whether there are any elements\n // (such the back link, breadcrumbs or phase banner components) before the\n // `.govuk-main-wrapper` in the `govuk-width-container`.\n //\n // If you need to control the spacing manually, use the\n // `govuk-main-wrapper--l` modifier instead.\n .govuk-main-wrapper--auto-spacing:first-child,\n .govuk-main-wrapper--l {\n @include govuk-responsive-padding(8, \"top\");\n }\n}\n","@import \"../base\";\n\n@include govuk-exports(\"govuk/objects/template\") {\n // Applied to the element\n .govuk-template {\n // Set the overall page background colour to the same colour as used by the\n // footer to give the illusion of a long footer.\n background-color: $govuk-canvas-background-colour;\n\n // Prevent automatic text sizing, as we already cater for small devices and\n // would like the browser to stay on 100% text zoom by default.\n text-size-adjust: 100%;\n\n // Add scroll padding to the top of govuk-template but remove it if the\n // exit this page component is present.\n //\n // This is a solution to exit this page potentially failing WCAG SC 2.4.12:\n // Focus Not Obscured (https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum.html)\n // due to it's sticky positioning.\n //\n // This will apply scroll-padding-top in any browsers that don't support :has\n // (https://caniuse.com/css-has). This is part of the reason we do this in\n // a \"wrong way round\" way as we hypothesise that the risks of having\n // scroll-padding unnecessarily is better than risking not having scroll-padding\n // and needing it to account for exit this page.\n @supports (position: sticky) {\n scroll-padding-top: govuk-spacing(9);\n\n &:not(:has(.govuk-exit-this-page)) {\n scroll-padding-top: 0;\n }\n }\n\n // Force the scrollbar to always display in IE, to prevent horizontal page\n // jumps as content height changes (e.g. autocomplete results open).\n @include govuk-media-query($media-type: screen) {\n overflow-y: scroll;\n }\n }\n\n // Applied to the element\n .govuk-template__body {\n // The default margins set by user-agents are not required since we have our\n // own containers.\n margin: 0;\n // Set the overall body of the page back to the typical background colour.\n background-color: $govuk-body-background-colour;\n }\n}\n","@import \"../base\";\n\n////\n/// @group objects/layout\n////\n\n/// Width container mixin\n///\n/// Used to create page width and custom width container classes.\n///\n/// @param {String} $width [$govuk-page-width] - Width in pixels\n///\n/// @example scss - Creating a 1200px wide container class\n/// .app-width-container--wide {\n/// @include govuk-width-container(1200px);\n/// }\n///\n/// @access public\n\n@mixin govuk-width-container($width: $govuk-page-width) {\n // By default, limit the width of the container to the page width\n max-width: $width;\n\n // On mobile, add half width gutters\n margin-right: $govuk-gutter-half;\n margin-left: $govuk-gutter-half;\n\n // Respect 'display cutout' safe area (avoids notches and rounded corners)\n @supports (margin: unquote(\"max(calc(0px))\")) {\n $gutter-safe-area-right: calc(#{$govuk-gutter-half} + env(safe-area-inset-right));\n $gutter-safe-area-left: calc(#{$govuk-gutter-half} + env(safe-area-inset-left));\n\n // Use max() to pick largest margin, default or with safe area\n // Escaped due to Sass max() vs. CSS native max()\n margin-right: unquote(\"max(#{$govuk-gutter-half}, #{$gutter-safe-area-right})\");\n margin-left: unquote(\"max(#{$govuk-gutter-half}, #{$gutter-safe-area-left})\");\n }\n\n // On tablet, add full width gutters\n @include govuk-media-query($from: tablet) {\n margin-right: $govuk-gutter;\n margin-left: $govuk-gutter;\n\n // Respect 'display cutout' safe area (avoids notches and rounded corners)\n @supports (margin: unquote(\"max(calc(0px))\")) {\n $gutter-safe-area-right: calc(#{$govuk-gutter-half} + env(safe-area-inset-right));\n $gutter-safe-area-left: calc(#{$govuk-gutter-half} + env(safe-area-inset-left));\n\n // Use max() to pick largest margin, default or with safe area\n // Escaped due to Sass max() vs. CSS native max()\n margin-right: unquote(\"max(#{$govuk-gutter}, #{$gutter-safe-area-right})\");\n margin-left: unquote(\"max(#{$govuk-gutter}, #{$gutter-safe-area-left})\");\n }\n }\n\n // As soon as the viewport is greater than the width of the page plus the\n // gutters, just centre the content instead of adding gutters.\n @include govuk-media-query($and: \"(min-width: #{($width + $govuk-gutter * 2)})\") {\n margin-right: auto;\n margin-left: auto;\n\n // Since a safe area may have previously been set above,\n // we need to duplicate this margin that centers the page.\n @supports (margin: unquote(\"max(calc(0px))\")) {\n margin-right: auto;\n margin-left: auto;\n }\n }\n}\n\n@include govuk-exports(\"govuk/objects/width-container\") {\n .govuk-width-container {\n @include govuk-width-container;\n }\n}\n","////\n/// @group settings/layout\n////\n\n// =========================================================\n// Page layout\n// =========================================================\n\n/// Width of main container\n///\n/// @type Number\n/// @access public\n\n$govuk-page-width: 960px !default;\n\n/// Map of grid column widths\n///\n/// @type Map\n/// @access public\n\n$govuk-grid-widths: (\n one-quarter: (\n 100% / 4\n ),\n one-third: (\n 100% / 3\n ),\n one-half: (\n 100% / 2\n ),\n two-thirds: (\n 200% / 3\n ),\n three-quarters: (\n 300% / 4\n ),\n full: 100%\n) !default;\n\n/// Width of gutter between grid columns\n///\n/// @type Number\n/// @access public\n\n$govuk-gutter: 30px !default;\n\n/// Width of half the gutter between grid columns\n///\n/// @type Number\n/// @access public\n\n$govuk-gutter-half: $govuk-gutter / 2;\n\n// =========================================================\n// Borders\n// =========================================================\n\n/// Standard border width\n///\n/// @type Number\n/// @access public\n\n$govuk-border-width: 5px !default;\n\n/// Wide border width\n///\n/// @type Number\n/// @access public\n\n$govuk-border-width-wide: 10px !default;\n\n/// Narrow border width\n///\n/// @type Number\n/// @access public\n\n$govuk-border-width-narrow: 4px !default;\n\n/// Form control border width\n///\n/// @type Number\n/// @access public\n\n$govuk-border-width-form-element: 2px !default;\n\n/// Form group border width when in error state\n///\n/// @type Number\n/// @access public\n\n$govuk-border-width-form-group-error: $govuk-border-width !default;\n\n/// Border width of focus outline\n///\n/// @type Number\n/// @access public\n\n$govuk-focus-width: 3px !default;\n\n/// Hover width for form controls with a hover state\n///\n/// @type Number\n/// @access public\n\n$govuk-hover-width: 10px !default;\n","@include govuk-exports(\"govuk/component/accordion\") {\n $govuk-accordion-base-colour: govuk-colour(\"black\");\n $govuk-accordion-hover-colour: govuk-colour(\"light-grey\");\n $govuk-accordion-icon-focus-colour: $govuk-focus-colour;\n $govuk-accordion-bottom-border-width: 1px;\n\n .govuk-accordion {\n @include govuk-responsive-margin(6, \"bottom\");\n }\n\n .govuk-accordion__section {\n padding-top: govuk-spacing(3);\n }\n\n .govuk-accordion__section-heading {\n // Override browser defaults to ensure consistent element height\n margin-top: 0;\n margin-bottom: 0;\n\n padding-top: govuk-spacing(3);\n padding-bottom: govuk-spacing(3);\n }\n\n .govuk-accordion__section-button {\n @include govuk-font($size: 24, $weight: bold);\n @include govuk-text-colour;\n\n display: block;\n margin-bottom: 0;\n padding-top: govuk-spacing(3);\n }\n\n // Remove the bottom margin from the last item inside the content\n .govuk-accordion__section-content > :last-child {\n margin-bottom: 0;\n }\n\n // GOV.UK Frontend JavaScript enabled\n .govuk-frontend-supported {\n .govuk-accordion {\n // Border at the bottom of the whole accordion\n border-bottom: $govuk-accordion-bottom-border-width solid $govuk-border-colour;\n }\n\n .govuk-accordion__section {\n padding-top: 0;\n }\n\n // Hide the body of collapsed sections by default for browsers that lack\n // support for `content-visibility` paired with [hidden=until-found]\n .govuk-accordion__section-content {\n display: none;\n\n @include govuk-responsive-padding(3, \"top\");\n @include govuk-responsive-padding(8, \"bottom\");\n }\n\n // Hide the body of collapsed sections using `content-visibility` to enable\n // page search within [hidden=until-found] regions where browser supported\n .govuk-accordion__section-content[hidden] {\n @supports (content-visibility: hidden) {\n content-visibility: hidden;\n display: inherit;\n }\n\n // Hide the padding of collapsed sections\n padding-top: 0;\n padding-bottom: 0;\n }\n\n // Show the body of expanded sections\n .govuk-accordion__section--expanded .govuk-accordion__section-content {\n display: block;\n }\n\n .govuk-accordion__show-all {\n @include govuk-font($size: 19);\n position: relative;\n z-index: 1;\n\n margin-bottom: 9px;\n padding: govuk-spacing(1) 2px govuk-spacing(1) 0;\n\n border-width: 0;\n\n color: $govuk-link-colour;\n background: none;\n\n cursor: pointer;\n -webkit-appearance: none;\n\n @include govuk-media-query($from: tablet) {\n margin-bottom: 14px;\n }\n\n // Remove default button focus outline in Firefox\n &::-moz-focus-inner {\n padding: 0;\n border: 0;\n }\n\n &:hover {\n color: $govuk-accordion-base-colour;\n background: $govuk-accordion-hover-colour;\n // The focus state adds a box-shadow to the top and bottom of the\n // button. We add a grey box-shadow on hover too, to make the height of\n // the hover state match the height of the focus state.\n box-shadow:\n 0 -2px $govuk-accordion-hover-colour,\n 0 4px $govuk-accordion-hover-colour;\n\n .govuk-accordion__section-toggle-text {\n color: $govuk-accordion-base-colour;\n }\n\n .govuk-accordion-nav__chevron {\n color: $govuk-accordion-base-colour;\n background: $govuk-accordion-base-colour;\n }\n\n .govuk-accordion-nav__chevron::after {\n color: $govuk-accordion-hover-colour;\n }\n }\n\n &:focus {\n @include govuk-focused-text;\n\n .govuk-accordion-nav__chevron {\n background: $govuk-accordion-base-colour;\n }\n\n .govuk-accordion-nav__chevron::after {\n color: $govuk-accordion-icon-focus-colour;\n }\n }\n }\n\n .govuk-accordion__section-heading {\n padding: 0;\n }\n\n // Create Chevron icon aligned with text\n .govuk-accordion-nav__chevron {\n box-sizing: border-box;\n display: inline-block;\n\n position: relative;\n\n // Set size using rems so icon scales with text\n width: govuk-px-to-rem(20px);\n height: govuk-px-to-rem(20px);\n\n border: govuk-px-to-rem(1px) solid;\n border-radius: 50%;\n\n vertical-align: middle;\n\n // Create inner chevron arrow\n &::after {\n content: \"\";\n box-sizing: border-box;\n display: block;\n\n position: absolute;\n bottom: govuk-px-to-rem(5px);\n left: govuk-px-to-rem(6px);\n\n width: govuk-px-to-rem(6px);\n height: govuk-px-to-rem(6px);\n\n transform: rotate(-45deg);\n\n border-top: govuk-px-to-rem(2px) solid;\n border-right: govuk-px-to-rem(2px) solid;\n }\n }\n\n // Rotate icon to create \"Down\" version\n .govuk-accordion-nav__chevron--down {\n transform: rotate(180deg);\n }\n\n .govuk-accordion__section-button {\n width: 100%;\n\n padding: govuk-spacing(2) 0 0;\n\n border: 0;\n\n border-top: $govuk-accordion-bottom-border-width solid $govuk-border-colour;\n\n // Visually separate the section from the one underneath when user changes\n // colours in their browser. See\n // https://github.com/alphagov/govuk-frontend/issues/2321#issuecomment-924201488\n border-bottom: govuk-spacing(2) solid transparent;\n\n color: $govuk-text-colour;\n background: none;\n\n text-align: left;\n // Section headers have a pointer cursor as an additional affordance\n cursor: pointer;\n -webkit-appearance: none;\n\n @include govuk-media-query($from: tablet) {\n padding-bottom: govuk-spacing(2);\n }\n\n &:active {\n color: $govuk-link-active-colour;\n background: none;\n }\n\n &:hover {\n color: $govuk-accordion-base-colour;\n background: $govuk-accordion-hover-colour;\n\n .govuk-accordion__section-toggle-text {\n color: $govuk-accordion-base-colour;\n }\n\n .govuk-accordion-nav__chevron {\n color: $govuk-accordion-base-colour;\n background: $govuk-accordion-base-colour;\n }\n\n .govuk-accordion-nav__chevron::after {\n color: $govuk-accordion-hover-colour;\n }\n }\n\n &:focus {\n // Remove default focus border around button as styling is being applied\n // to inner text elements that receive focus\n outline: 0;\n\n .govuk-accordion__section-heading-text-focus,\n .govuk-accordion__section-summary-focus,\n .govuk-accordion__section-toggle-focus {\n @include govuk-focused-text;\n }\n\n .govuk-accordion-nav__chevron {\n color: $govuk-accordion-base-colour;\n background: $govuk-accordion-base-colour;\n }\n\n .govuk-accordion-nav__chevron::after {\n color: $govuk-accordion-icon-focus-colour;\n }\n }\n\n // Remove default button focus outline in Firefox\n &::-moz-focus-inner {\n padding: 0;\n border: 0;\n }\n }\n\n // Remove the transparent border when the section is expanded to make it\n // clear that the heading relates to the content below. Adjust padding to\n // maintain the height of the element. See\n // https://github.com/alphagov/govuk-frontend/pull/2257#issuecomment-951920798\n .govuk-accordion__section--expanded .govuk-accordion__section-button {\n padding-bottom: govuk-spacing(3);\n border-bottom: 0;\n\n @include govuk-media-query($from: tablet) {\n padding-bottom: govuk-spacing(4);\n }\n }\n\n // As Chevron icon is vertically aligned it overlaps with the focus state\n // bottom border – this adds some spacing\n .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {\n padding-bottom: 3px;\n\n @include govuk-media-query($from: desktop) {\n padding-bottom: 2px;\n }\n }\n\n .govuk-accordion__section-toggle,\n .govuk-accordion__section-heading-text,\n .govuk-accordion__section-summary {\n display: block;\n margin-bottom: 13px;\n\n .govuk-accordion__section-heading-text-focus,\n .govuk-accordion__section-summary-focus,\n .govuk-accordion__section-toggle-focus {\n display: inline;\n }\n }\n\n // Add toggle link with Chevron icon on left.\n .govuk-accordion__section-toggle {\n @include govuk-font-size($size: 19);\n @include govuk-typography-weight-regular;\n color: $govuk-link-colour;\n }\n\n // Add space between the icon and text. Avoid applying spacing directly to\n // the icon as the use of `transform` will change the placement of any\n // margins.\n .govuk-accordion__show-all-text,\n .govuk-accordion__section-toggle-text {\n margin-left: govuk-spacing(1);\n vertical-align: middle;\n }\n\n // Background colour adjustment when user changes colours in Firefox\n //\n // When user changes colours in Firefox, text colour inside