diff --git a/.travis.yml b/.travis.yml index 78a6c4a5..73b20716 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,9 +1,9 @@ rvm: - 2.3.0 - 2.4.0 - - jruby-9.1.8.0 + - jruby-9.2.7.0 jdk: - - oraclejdk8 + - oraclejdk9 before_install: - sudo apt-get update - sudo apt-get install libicu-dev diff --git a/gollum.gemspec b/gollum.gemspec index be694b8e..49c46212 100644 --- a/gollum.gemspec +++ b/gollum.gemspec @@ -32,6 +32,7 @@ Gem::Specification.new do |s| s.add_dependency 'mustache', ['>= 0.99.5', '< 1.0.0'] s.add_dependency 'useragent', '~> 0.16.2' s.add_dependency 'gemojione', '~> 3.2' + s.add_dependency 'octicons', '~> 8.5' s.add_dependency 'sprockets', '~> 3.7' s.add_dependency 'sass', '~> 3.5' s.add_dependency 'uglifier', '~> 3.2' diff --git a/lib/gollum/app.rb b/lib/gollum/app.rb index d327d14b..f93d368c 100644 --- a/lib/gollum/app.rb +++ b/lib/gollum/app.rb @@ -373,11 +373,15 @@ module Precious @editable = false @bar_side = wiki.bar_side @allow_uploads = wiki.allow_uploads + @navbar = false + @preview = true mustache :page end get '/history/*' do - @page = wiki_page(params[:splat].first).page + wikip = wiki_page(params[:splat].first) + @name = wikip.fullname + @page = wikip.page @page_num = [params[:page].to_i, 1].max unless @page.nil? @versions = @page.versions(:page => @page_num, :follow => settings.wiki_options.fetch(:follow_renames, ::Gollum::GIT_ADAPTER == 'rjgit' ? false : true)) @@ -437,9 +441,9 @@ module Precious end get %r{ - /pages # match any URL beginning with /pages + /overview # match any URL beginning with /overview (?: # begin an optional non-capturing group - /(.+) # capture any path after the "/pages" excluding the leading slash + /(.+) # capture any path after the "/overview" excluding the leading slash )? # end the optional non-capturing group }x do |path| wiki = wiki_new @@ -454,7 +458,8 @@ module Precious @results.sort_by! {|result| result.name.downcase} @ref = wiki.ref - mustache :pages + @newable = true + mustache :overview end end @@ -470,6 +475,7 @@ module Precious @content = page.formatted_data @version = version @bar_side = wikip.wiki.bar_side + @navbar = true mustache :page elsif file = wikip.wiki.file(file_path, version, true) show_file(file) @@ -499,7 +505,7 @@ module Precious @h1_title = wiki.h1_title @bar_side = wiki.bar_side @allow_uploads = wiki.allow_uploads - + @navbar = true mustache :page elsif file = wiki.file(fullpath, wiki.ref, true) show_file(file) diff --git a/lib/gollum/public/gollum/images/fileview/document.png b/lib/gollum/public/gollum/images/fileview/document.png deleted file mode 100644 index f125928c..00000000 Binary files a/lib/gollum/public/gollum/images/fileview/document.png and /dev/null differ diff --git a/lib/gollum/public/gollum/images/fileview/folder-horizontal.png b/lib/gollum/public/gollum/images/fileview/folder-horizontal.png deleted file mode 100644 index 58e5cf7a..00000000 Binary files a/lib/gollum/public/gollum/images/fileview/folder-horizontal.png and /dev/null differ diff --git a/lib/gollum/public/gollum/images/fileview/toggle-small-expand.png b/lib/gollum/public/gollum/images/fileview/toggle-small-expand.png deleted file mode 100644 index 969f5e8a..00000000 Binary files a/lib/gollum/public/gollum/images/fileview/toggle-small-expand.png and /dev/null differ diff --git a/lib/gollum/public/gollum/images/fileview/toggle-small.png b/lib/gollum/public/gollum/images/fileview/toggle-small.png deleted file mode 100644 index 700af04c..00000000 Binary files a/lib/gollum/public/gollum/images/fileview/toggle-small.png and /dev/null differ diff --git a/lib/gollum/public/gollum/images/fileview/trashcan.png b/lib/gollum/public/gollum/images/fileview/trashcan.png deleted file mode 100644 index 1749e6e2..00000000 Binary files a/lib/gollum/public/gollum/images/fileview/trashcan.png and /dev/null differ diff --git a/lib/gollum/public/gollum/images/icon-sprite.png b/lib/gollum/public/gollum/images/icon-sprite.png deleted file mode 100644 index 7f083d93..00000000 Binary files a/lib/gollum/public/gollum/images/icon-sprite.png and /dev/null differ diff --git a/lib/gollum/public/gollum/javascript/editor/gollum.editor.js.erb b/lib/gollum/public/gollum/javascript/editor/gollum.editor.js.erb index e8556e88..eefbf127 100755 --- a/lib/gollum/public/gollum/javascript/editor/gollum.editor.js.erb +++ b/lib/gollum/public/gollum/javascript/editor/gollum.editor.js.erb @@ -155,11 +155,18 @@ } if ( EditorHas.collapsibleInputs() ) { - $('#gollum-editor .collapsed a.button, ' + - '#gollum-editor .expanded a.button').click(function( e ) { + $('#gollum-editor .collapsed button.collapsable, ' + + '#gollum-editor .expanded button.collapsable').click(function( e ) { e.preventDefault(); $(this).parent().toggleClass('expanded'); $(this).parent().toggleClass('collapsed'); + + buttons = $(this).parent().children("button"); + console.log(buttons); + hidden_button = buttons.filter(':hidden')[0]; + shown_button = buttons.not(':hidden')[0]; + hidden_button.hidden = false; + shown_button.hidden = true; }); } @@ -622,7 +629,7 @@ debug('Activating function bar'); // check these out - $('#gollum-editor-function-bar a.function-button').each(function() { + $('#gollum-editor-function-bar button.function-button').each(function() { if ( LanguageDefinition.getDefinitionFor( $(this).attr('id') ) ) { $(this).click( FunctionBar.evtFunctionButtonClick ); $(this).removeClass('disabled'); diff --git a/lib/gollum/public/gollum/javascript/gollum.dialog.js.erb b/lib/gollum/public/gollum/javascript/gollum.dialog.js.erb index 33414a2a..564eeeee 100755 --- a/lib/gollum/public/gollum/javascript/gollum.dialog.js.erb +++ b/lib/gollum/public/gollum/javascript/gollum.dialog.js.erb @@ -74,7 +74,7 @@ html += '>' + fieldAttributes.name + ''; } - html += ''; - html += ''; + html += ''; html += ''; if( fieldAttributes.context ){ @@ -117,35 +117,20 @@ createMarkup: function( title, body ) { Dialog.markupCreated = true; - if ($.facebox) { - return '
' + - '

' + - title +'

' + - '
' + body + '
' + - '
' + - '
' + - '
'; - } else { - return '
' + - '
' + - '
' + - '

' + - title +'

' + - '
' + body + '
' + - '
' + - '' + - '
' + - '
' + - '
' + - '
'; - } + return '
' + + '
' + + '

' + + title +'

' + + '
' + body + '
' + + '
' + + '' + + '' + + '' + + '
' + + '
' + + '
'; }, eventCancel: function( e ) { @@ -172,23 +157,17 @@ }, hide: function() { - if ( $.facebox ) { - Dialog.markupCreated = false; - $(document).trigger('close.facebox'); - Dialog.detachEvents(); + if ( $.browser.msie ) { + $('#gollum-dialog-dialog').hide().removeClass('active'); + $('select').css('visibility', 'visible'); } else { - if ( $.browser.msie ) { - $('#gollum-dialog-dialog').hide().removeClass('active'); - $('select').css('visibility', 'visible'); - } else { - $('#gollum-dialog-dialog').animate({ opacity: 0 }, { - duration: 200, - complete: function() { - $('#gollum-dialog-dialog').removeClass('active'); - $('#gollum-dialog-dialog').css('display', 'none'); - } - }); - } + $('#gollum-dialog-dialog').animate({ opacity: 0 }, { + duration: 200, + complete: function() { + $('#gollum-dialog-dialog').removeClass('active'); + $('#gollum-dialog-dialog').css('display', 'none'); + } + }); $(window).unbind('resize', Dialog.resize); } @@ -219,29 +198,15 @@ } if ( Dialog.markupCreated ) { - if ($.facebox) { - $(document).trigger('close.facebox'); - } else { - $('#gollum-dialog-dialog').remove(); - } + $('#gollum-dialog-dialog').remove(); } Dialog.markup = Dialog.createMarkup( title, body ); - if ($.facebox) { - $(document).bind('reveal.facebox', function() { - if ( argObject.OK && - typeof argObject.OK == 'function' ) { - Dialog.attachEvents( argObject.OK ); - $($('#facebox input[type="text"]').get(0)).focus(); - } - }); - } else { - $('body').append( Dialog.markup ); - if ( argObject.OK && - typeof argObject.OK == 'function' ) { - Dialog.attachEvents( argObject.OK ); - } + $('body').append( Dialog.markup ); + if ( argObject.OK && + typeof argObject.OK == 'function' ) { + Dialog.attachEvents( argObject.OK ); } Dialog.show(); @@ -252,27 +217,24 @@ debug('Dialog: No markup to show. Please use init first.'); } else { debug('Showing dialog'); - if ($.facebox) { - $.facebox( Dialog.markup ); + + if ( $.browser.msie ) { + $('#gollum-dialog.dialog').addClass('active'); + Dialog.position(); + $('select').css('visibility', 'hidden'); } else { - if ( $.browser.msie ) { - $('#gollum-dialog.dialog').addClass('active'); - Dialog.position(); - $('select').css('visibility', 'hidden'); - } else { - $('#gollum-dialog.dialog').css('display', 'none'); - $('#gollum-dialog-dialog').animate({ opacity: 0 }, { - duration: 0, - complete: function() { - $('#gollum-dialog-dialog').css('display', 'block'); - Dialog.position(); // position this thing - $('#gollum-dialog-dialog').animate({ opacity: 1 }, { - duration: 500 - }); - $($('#gollum-dialog-dialog input[type="text"]').get(0)).focus(); - } - }); - } + $('#gollum-dialog.dialog').css('display', 'none'); + $('#gollum-dialog-dialog').animate({ opacity: 0 }, { + duration: 0, + complete: function() { + $('#gollum-dialog-dialog').css('display', 'block'); + Dialog.position(); // position this thing + $('#gollum-dialog-dialog').animate({ opacity: 1 }, { + duration: 500 + }); + $($('#gollum-dialog-dialog input[type="text"]').get(0)).focus(); + } + }); } $(window).bind('resize', Dialog.resize); @@ -299,11 +261,6 @@ } }; - if ($.facebox) { - $(document).bind('reveal.facebox', function() { - $('#facebox img.close_image').remove(); - }); - } var debug = function(m) { if ( Dialog.debugOn diff --git a/lib/gollum/public/gollum/javascript/gollum.js.erb b/lib/gollum/public/gollum/javascript/gollum.js.erb index 76a06fa7..d5a309f8 100755 --- a/lib/gollum/public/gollum/javascript/gollum.js.erb +++ b/lib/gollum/public/gollum/javascript/gollum.js.erb @@ -302,7 +302,7 @@ $(document).ready(function() { // In the pages view, pageFullPath isn't defined. // The new button will still expect a value however. // So we try to figure one out from window.location - path = window.location.pathname.replace(routePath('pages'), '') + path = window.location.pathname.replace(routePath('overview'), '') // For consistency remove the trailing / path = path.replace(/\/$/,'') } @@ -349,8 +349,8 @@ $(document).ready(function() { } }); - if ($('.history a.action-compare-revision').length) { - $('.history a.action-compare-revision').click(function() { + if ($('.history button.action-compare-revision').length) { + $('.history button.action-compare-revision').click(function() { $("#version-form").submit(); }); } @@ -377,6 +377,38 @@ $(document).ready(function() { }); } + if( $('.tabnav-tabs').length ){ + $(".tabnav-tab").click( function() { + if( ! $(this).hasClass('selected')) { + tab_id = $(this).attr('id'); + if (tab_id == 'preview') { + var formData = new FormData($('#gollum-editor-form').get(0)); + var paths = window.location.pathname.split('/'); + formData.append('page', paths[ paths.length - 1 ] || '') + $.ajax({ + url: routePath('preview'), + data: formData, + type: 'POST', + processData: false, + contentType: false, + success: function(data) { + var mainDiv = $('#wiki-wrapper', data); + $('.tabnav-div#preview-content').html(mainDiv); + }, + error: function(data, textStatus, errorThrown) { + console.log('something went wrong: ' + textStatus + errorThrown); + } + }); + } + $('.tabnav-tab.selected').removeClass('selected'); + $(this).addClass('selected'); + active_div = '#' + tab_id + "-content"; + $('.tabnav-div').hide(); + $(active_div).show(); + }; + }); + }; + if( $('#wiki-wrapper.edit').length ){ $("#gollum-editor-submit").click( function() { window.onbeforeunload = null; } ); $("#gollum-editor-body").one('change', function(){ diff --git a/lib/gollum/public/gollum/stylesheets/_base.scss b/lib/gollum/public/gollum/stylesheets/_base.scss index 2d5d22ba..8d62a39c 100644 --- a/lib/gollum/public/gollum/stylesheets/_base.scss +++ b/lib/gollum/public/gollum/stylesheets/_base.scss @@ -46,10 +46,5 @@ $editor-button-img-width: 27px; $editor-button-img-height: 28px; //urls -$img_fileview_doc: url('../images/fileview/document.png'); -$img_fileview_trash: url('../images/fileview/trashcan.png'); -$img_fileview_toggle_small: url('../images/fileview/toggle-small.png'); -$img_fileview_toggle_small_expand: url('../images/fileview/toggle-small-expand.png'); -$img_fileview_folder: url('../images/fileview/folder-horizontal.png'); $img_icon_sprite: url('../images/icon-sprite.png'); $img_dirty_shade: url('../images/dirty-shade.png'); \ No newline at end of file diff --git a/lib/gollum/public/gollum/stylesheets/_component.scss b/lib/gollum/public/gollum/stylesheets/_component.scss index 03bdd957..705c81ae 100644 --- a/lib/gollum/public/gollum/stylesheets/_component.scss +++ b/lib/gollum/public/gollum/stylesheets/_component.scss @@ -27,9 +27,6 @@ display: block; clear: both; - background: #fff; - border: $border-standard; - font-size: 1em; font-family: $font-console; line-height: 1.4em; diff --git a/lib/gollum/public/gollum/stylesheets/app.scss b/lib/gollum/public/gollum/stylesheets/app.scss index 78c716d1..8942c8d9 100644 --- a/lib/gollum/public/gollum/stylesheets/app.scss +++ b/lib/gollum/public/gollum/stylesheets/app.scss @@ -1,5 +1,7 @@ -//= require gollum +//= require primer //= require editor //= require dialog //= require criticmarkup +//= require tables +//= require emoji //= require template \ No newline at end of file diff --git a/lib/gollum/public/gollum/stylesheets/dialog.scss b/lib/gollum/public/gollum/stylesheets/dialog.scss index 715a837d..de0c354d 100644 --- a/lib/gollum/public/gollum/stylesheets/dialog.scss +++ b/lib/gollum/public/gollum/stylesheets/dialog.scss @@ -8,9 +8,9 @@ position: absolute; top: 0; left: 0; - z-index: 999999; width: 100%; height: 100%; + z-index: 999999; @include mediummobile-breakpoint { position: absolute; @@ -29,24 +29,6 @@ display: block; } - button.minibutton { - float: right; - margin-right: 0.5em; - width: auto; - - font-size: 1.2em; - font-family: $font-default; - - margin: 0 0 0 0.8em; - padding: 0.4em 1em; - - @include button-base; - } - - button.minibutton:disabled { - opacity: 0.65; - cursor: not-allowed; - } } @@ -54,6 +36,12 @@ margin: 0px; width: 100%; height: 100%; + padding: 1em; + overflow: hidden; + background-color: white; + webkit-box-shadow: 8px 7px 21px 0px rgba(0,0,0,0.68); + moz-box-shadow: 8px 7px 21px 0px rgba(0,0,0,0.68); + box-shadow: 8px 7px 21px 0px rgba(0,0,0,0.68); @include four-edge-position(0px); @@ -72,9 +60,6 @@ @include four-edge-position(10px); - border: 7px solid #999; - border: 7px solid rgba(0, 0, 0, 0.3); - border-radius: 5px; } @include desktop-breakpoint { @@ -98,7 +83,6 @@ } #gollum-dialog-dialog-bg { - background-color: #fff; padding: 1em; height: 100%; @@ -145,16 +129,6 @@ } input { - &[type="text"] { - border: $border-standard; - display: block; - font-family: $font-default; - font-size: 1.2em; - line-height: 1.6em; - margin: 0.3em 0 0 0; - padding: 0.3em 0.5em; - width: 94%; - } &.code { font-family: $font-console; @@ -175,8 +149,5 @@ } #gollum-dialog-dialog-buttons { - border-top: $border-standard; overflow: hidden; - margin: 1.5em 0 0 0; - padding: 1em 0 0 0; } diff --git a/lib/gollum/public/gollum/stylesheets/editor.scss b/lib/gollum/public/gollum/stylesheets/editor.scss index 6a6ffe19..a3591ece 100644 --- a/lib/gollum/public/gollum/stylesheets/editor.scss +++ b/lib/gollum/public/gollum/stylesheets/editor.scss @@ -22,54 +22,25 @@ a { } #gollum-editor-body-ace { - overflow: scroll; - resize: vertical; - border: 1px solid #ddd; + overflow: hidden; font-family: Consolas, "Liberation Mono", Courier, monospace; font-size: 1em; - height: 25em; } #gollum-editor { - margin: 0 0 5em; - padding: 0em 1em 0.4em; - - @include clearfix; - - .ff &, .ie & { - padding-bottom: 1em; - } - - @include desktop-breakpoint { - border: $border-editor-component; - background: $color-editor-component; - margin: 1em 0 5em; - - border-radius: 1em; - } - - form { - fieldset { - width: 100%; - @include reset-box; - } - } .singleline { display: block; margin: 0 0 0.7em 0; - @include clearfix; - +/* @include clearfix; +*/ input { - background: #fff; - border: $border-standard; - color: #000; font-size: 1.1em; font-family: $font-default; line-height: 1.5em; margin: 1em 0 0.4em; padding: 0.5em; - width: 98%; + width: 100%; &.ph { color: #999; @@ -85,6 +56,7 @@ a { .path_note { text-align: right; font-size: small; + padding-top: 5px; padding-right: 5px; } @@ -169,34 +141,6 @@ a { clear: none; text-align: right; } - - select { - background-color: $color-editor-component; - border: $border-standard; - color: #333; - - font-size: 1em; - font-family: $font-default; - font-weight: bold; - line-height: 1.6em; - padding: 0.3em 0.4em; - display: inline-block; - - border-radius: 0.5em; - } - - label { - color: #999; - font-size: 1em; - font-weight: bold; - line-height: 1.6em; - padding: .3em 0.5em 0 0; - display: inline-block; - - &:after { - content: ':'; - } - } } } @@ -205,28 +149,8 @@ a { /* @section form-fields */ textarea { - @include component-textarea; - height: 25em; - } - - input#gollum-editor-submit { - float: left; - font-size: 1em; - font-family: $font-default; - - margin: 0; - padding: 0.4em 1em; - - @include button-base; - @include alt-box-model; - - .webkit & { - padding: 0.5em 1em 0.45em; - } - - .ie & { - padding: 0.4em 1em 0.5em; - } + height: 30em; + overflow: hidden; } .collapsed, .expanded { @@ -235,30 +159,15 @@ a { overflow: hidden; padding: 0.5em 0 0; - a { - &.button { - float: left; - - overflow: hidden; - margin: 0.2em 0.5em 0.75em 0; - - @include editor-button-size; - @include button-base; - } - - span { - display: block; - - @include button-sprites; - @include editor-button-size; - @include text-conceal-simple; - } + button { + margin-bottom: 6px; } + h4 { font-size: 1.6em; - float: left; margin: 0; + display: inline-block; padding: 0.25em 0 0 0.3em; @@ -304,28 +213,6 @@ a { } - /* @control minibutton */ - - a.minibutton { - font-size: 1em; - font-family: $font-default; - line-height: 1.2em; - margin: 0 0 0 0.8em; - padding: 0.5em 1em; - - @include button-base; - } - - /* @control preview */ - - #gollum-editor-preview, #gollum-editor-cancel { - float: left; - font-weight: normal; - padding: left; - - @include alt-box-model; - } - } /* @control title */ diff --git a/lib/gollum/public/gollum/stylesheets/emoji.scss b/lib/gollum/public/gollum/stylesheets/emoji.scss new file mode 100644 index 00000000..238e9fc8 --- /dev/null +++ b/lib/gollum/public/gollum/stylesheets/emoji.scss @@ -0,0 +1,5 @@ +.emoji { + width: 20px; + height: 20px; + vertical-align: -18%; +} \ No newline at end of file diff --git a/lib/gollum/public/gollum/stylesheets/fileview.scss b/lib/gollum/public/gollum/stylesheets/fileview.scss deleted file mode 100644 index afe4c5bd..00000000 --- a/lib/gollum/public/gollum/stylesheets/fileview.scss +++ /dev/null @@ -1,84 +0,0 @@ -@import "_base"; - -#pages { - li { - position: relative; - margin-left: -15px; - list-style: none; - &.file { - white-space: nowrap; - margin-left: -1px !important; - height: 1.5em; - a { - text-decoration: none; - display: inline-block; - span.icon { - width: 14px; - height: 18px; - background: $img_fileview_doc 0 0 no-repeat; - display: inline-block; - margin-right: 7px; - vertical-align: text-top; - } - } - form { - vertical-align: middle; - display: inline; - button { - vertical-align: middle; - height: 20px; - border: 0 solid $black; - background: $img_fileview_trash no-repeat 16px center; - cursor: pointer; - } - } - a span.icon { - background: $img_fileview_doc 0 0 no-repeat; - } - } - input { - position: absolute; - left: 0; - margin-left: 0; - opacity: 0; - z-index: 2; - cursor: pointer; - height: 1em; - width: 1em; - top: 0; - + ol { - background: $img_fileview_toggle_small_expand 40px 0 no-repeat; - margin: -1.188em 0 0 -44px; - height: 1.5em; - > li { - display: none; - margin-left: -14px !important; - padding-left: 1px; - } - } - &:checked + ol { - background: $img_fileview_toggle_small 40px 5px no-repeat; - margin: -1.5em 0 0 -44px; - padding: 1.563em 0 0 80px; - height: auto; - > li { - display: block; - margin: 0 0 0.125em; - &:last-child { - margin: 0 0 0.063em; - } - } - } - } - label { - background: $img_fileview_folder 15px 1px no-repeat; - cursor: pointer; - display: block; - padding-left: 37px; - } - } - ol.tree { - padding: 0 0 0 30px; - width: 300px; - } -} \ No newline at end of file diff --git a/lib/gollum/public/gollum/stylesheets/gollum.scss b/lib/gollum/public/gollum/stylesheets/gollum.scss deleted file mode 100644 index 41b2c0cc..00000000 --- a/lib/gollum/public/gollum/stylesheets/gollum.scss +++ /dev/null @@ -1,732 +0,0 @@ -// Basic stylesheet for Gollum - -@import "_base", "_breakpoint", "_features", "_layout", "_component"; - -/* @section core */ -body, html { - font-family: $font-default; - font-size: 10px; - @include reset-box; -} - -a { - &:link { - color: $blue; - text-decoration: none; - } - &:hover, &:visited { - color: $blue; - text-decoration: underline; - } -} - -#wiki-wrapper { - #template blockquote { - margin: 1em 0; - border-left: 4px solid $grey; - padding-left: .8em; - color: #555; - } -} - -/* @section head */ -#head { - margin: 1em 0 0; - padding: 0; - overflow: hidden; - width: 100%; - - @include desktop-breakpoint { - border-bottom: $border-standard; - padding-bottom: 0.3em; - margin: 4em 0 1.5em; - } - - h1 { - font-size: 1.5em; - float: left; - line-height: normal; - margin: 0; - margin-top: 3em; - padding: 0 0 0 0.667em; - - @include desktop-breakpoint { - font-size: 2.5em; - padding: 2px 0 0 0; - } - } - - div.breadcrumb { - margin: 0; - padding: 0; - position: absolute; - margin-top: 3.5em; - float: none; - overflow: auto; - font-size: 1.5em; - } - - ul.actions { - clear: both; - margin: 0 1em; - position: absolute; - - @include desktop-breakpoint { - clear: none; - float: right; - margin: 0; - } - } -} - -/* @section body */ -#wiki-body { - margin-bottom: 40px; - - table { - display: block; - overflow: auto; - border: 0; - } - - /* @section comments */ - #inline-comment { - display: none; /* todo */ - } -} - -/* @section toc */ -#wiki-toc-main { - @include component-base; - - font-size: 13px; - padding: 0px 5px; - float: left; - margin-bottom: 20px; - min-width: 33%; - - > div { - border: none; - } -} - -/* @section sidebar */ - -#wiki-sidebar { - @include component-base; - - font-size: 13px; - padding: 7px; - color: #555; - - p { - margin: 13px 0 0; - - &.parent { - border-bottom: 1px solid #bbb; - font-weight: bold; - margin: 0 0 0.5em 0; - padding: 0 0 0.5em 0; - text-shadow: 0 1px 0 #fff; - - &:before { - color: #666; - content: "← "; - } - } - } - - > p:first-child { - margin-top: 10px; - } -} - -/* @section footer */ - -#wiki-footer { - margin: 2em 0 5em; - - #header-content, #footer-content { - @include component-base; - - padding: 1em; - } - #header-content { - margin-bottom: 1.5em; - } - #footer-content { - margin-top: 1.5em; - - h3 { - font-size: 1.2em; - color: #333; - margin: 0; - padding: 0 0 0.2em; - text-shadow: 0 1px 0 #fff; - } - - p { - margin: 0.5em 0 0; - padding: 0; - } - - ul.links { - margin: 0.5em 0 0; - overflow: hidden; - padding: 0; - - li { - color: #999; - float: left; - list-style-position: inside; - list-style-type: square; - padding: 0; - margin-left: 0.75em; - - &:first-child { - list-style-type: none; - margin: 0; - - .ff & { - margin: 0 -0.75em 0 0; - } - } - - a { - font-weight: bold; - text-shadow: 0 1px 0 #fff; - } - } - } - } -} - -/* @section page-footer */ -.page #footer { - clear: both; - border-top: $border-standard; - margin: 1em 0 7em; -} - -#footer { - p#last-edit { - font-size: .9em; - line-height: 1.6em; - color: #999; - margin: 0.9em 0; - - span.username { - font-weight: bold; - } - } - - .actions { - margin-left: 1em; - - @include desktop-breakpoint { - margin: 0; - } - } -} - -/* @section history */ -.history { - @include section-header; -} - -#wiki-history { - margin: 2em 1em 0 1em; - - fieldset { - border: 0; - margin: 1em 0; - padding: 0; - } - - table, tbody { - border-collapse: collapse; - padding: 0; - margin: 0; - width: 100%; - - tr { - padding: 0; - margin: 0; - background-color: #ebf2f6; - - &:nth-child(2n), &.alt-row { - background-color: #f3f7fa; - } - - &.selected { - background-color: #ffffea !important; - z-index: 100; - } - - td { - border-top: 1px solid #c0dce9; - border-bottom: 1px solid #c0dce9; - font-size: 1em; - line-height: 1.6em; - margin: 0; - padding: 0.3em 0.7em; - - &.checkbox { - width: auto; - padding: 0 0.2em 0 0; - - input { - cursor: pointer; - display: block; - padding-right: 0; - padding-top: 0.4em; - margin: 0 auto; - width: 1.2em; - height: 1.2em; - } - } - - &.commit-name { - border-left: 0; - - span.time-elapsed { - color: #999; - } - - a { - font-size: 0.9em; - font-family: $font-console; - padding: 0 0.2em; - } - } - - &.author { - width: 20%; - - a { - color: #000; - font-weight: bold; - - span.username { - display: block; - padding-top: 3px; - } - } - } - - img { - background-color: #fff; - border: 1px solid #999; - display: block; - float: left; - height: 18px; - overflow: hidden; - margin: 0 0.5em 0 0; - width: 18px; - padding: 2px; - } - } - } - } -} - -.history #footer { - margin-bottom: 7em; -} - -.history #wiki-history ul.actions li, -.history #footer ul.actions li { - margin: 0 0.6em 0 0; -} - -@include desktop-breakpoint { - #wiki-history { - margin: 2em 0 0 0; - - table tr td { - border: 1px solid #c0dce9; - font-size: 1em; - line-height: 1.6em; - margin: 0; - padding: 0.3em 0.7em; - - &.checkbox { - width: 4em; - padding: 0.3em; - } - } - } -} - -/* @section edit */ -.edit { - @include section-header; -} - -/* @section search */ - -.results { - @include section-header; - - #results { - border-bottom: 1px solid #ccc; - margin-left: 1em; - margin-right: 1em; - margin-bottom: 2em; - padding-bottom: 2em; - - @include desktop-breakpoint { - margin-left: 0; - margin-right: 0; - } - - ul { - margin: 2em 0 0 0; - padding: 0; - - li { - list-style: none; - padding: 0.2em 0; - - @include largemobile-breakpoint { - font-size: 1.2em; - } - - @include desktop-breakpoint { - list-style: disc; - list-style-position: outside; - line-height: 1.6em; - } - - a { - word-wrap: break-word; - } - - span.count { - color: #999; - } - } - } - } - - p#no-results { - font-size: 1.2em; - line-height: 1.6em; - margin-top: 2em; - } - - #footer ul.actions li { - margin: 0 1em 0 0; - } -} - -/* @section compare */ -.compare { - @include section-header; - - #compare-content { - margin-top: 3em; - } - - .data { - border: $border-standard; - margin: 1em 0 2em; - overflow: auto; - - table { - width: 100%; - - tr td { - font-family: $font-console; - font-size: 1.2em; - line-height: 1.2em; - margin: 0; - padding: 0; - - & + td + td { - width: 100%; - } - - &.line_numbers { - background: $light-grey; - border-right: 1px solid #999; - color: #999; - padding: 0 0 0 0.5em; - } - } - } - - pre { - margin: 0; - padding: 0; - - div { - padding: 0 0 0 1em; - } - } - } - - #footer { - margin-bottom: 7em; - } -} - -.compare #compare-content ul.actions li, -.compare #footer ul.actions li { - margin-left: 0; - margin-right: 0.6em; -} - -/* @control syntax */ -.highlight { - background: #ffffff; - .c, .cm, .c1 { color: #999988; font-style: italic } - .err { color: #a61717; background-color: #e3d2d2 } - .k, .o { font-weight: bold } - .cp { color: #999999; font-weight: bold } - .cs { color: #999999; font-weight: bold; font-style: italic } - .gd { - color: #000000; - background-color: #ffdddd; - .x { - color: #000000; - background-color: #ffaaaa; - } - } - .ge { font-style: italic } - .gr { color: #aa0000 } - .gh { color: #999999 } - .gi { - color: #000000; - background-color: #ddffdd; - .x { - color: #000000; - background-color: #aaffaa; - } - } - .gc { color: #999; background-color: #EAF2F5 } - .go { color: #888888 } - .gp { color: #555 } - .gs { font-weight: bold } - .gu { color: #aaaaaa } - .gt { color: #aa0000 } -} - -/* @control minibutton */ -ul.actions { - display: block; - list-style-type: none; - overflow: hidden; - padding: 0; - width: $layout-body-width; - - li { - font-size: 0.9em; - margin-left: 1px; - margin-bottom: 1px; - float: left; - - @include desktop-breakpoint { - margin-left: 0.6em; - margin-bottom: 0.6em; - } - - } - -} - -.minibutton a { - @include button-base; - - margin: 0; - padding: 0.6em 1em; - height: 1.4em; - - @include desktop-breakpoint { - padding: 0.4em 1em; - } -} - -#search-submit { - @include button-base; - - margin: 0; - padding: 0.4em 1em; -} - -/* @special error */ -#wiki-wrapper.error { - height: 1px; - position: absolute; - overflow: visible; - top: 50%; - width: 100%; -} - -#error { - background-color: $color-editor-component; - border: $border-editor-component; - left: 50%; - overflow: hidden; - padding: 2%; - margin: -10% 0 0 -35%; - position: absolute; - width: 70%; - - border-radius: 0.5em; - - h1 { - font-size: 3em; - line-height: normal; - margin: 0; - padding: 0; - } - - p { - font-size: 1.2em; - line-height: 1.6em; - margin: 1em 0 0.5em; - padding: 0; - } -} - -/* @control searchbar */ -#searchbar { - float: none; - overflow: hidden; - - @include desktop-breakpoint { - padding: 0; - } - - #searchbar-fauxtext { - background: #fff; - border: none; - overflow: hidden; - height: $editor-button-size; - - @include desktop-breakpoint { - height: $editor-button-img-height; - } - - input#search-query { - border: 1px solid $color-button-border; - border-radius: 3px 0 0 3px; - - color: #000; - float: left; - font-family: $font-default; - font-size: 1em; - height: inherit; - padding: 0 .5em; - - -webkit-focus-ring: none; - - @include alt-box-model; - - .ie8 & { - padding: 0.5em 0 0 0.5em; - } - - &.ph { - color: #999; - } - } - - #search-submit { - @include button-base; - - border-left: none; - border-radius: 0 3px 3px 0; - - margin: 0 !important; - padding: 0; - float: right; - height: inherit; - - @include alt-box-model; - - @include editor-button(16); - - span { - @include button-sprites; - - display: block; - height: inherit; - - width: 32px; - text-align: center; - - @include text-conceal-simple; - - .ff &, .ie & { - height: 2.2em; - } - - @include desktop-breakpoint { - width: 28px; - } - } - - &:hover span { - padding: 0; - } - } - } -} - -/* @section pages */ - -#pages { - font-size: 1.2em; - margin: 0 1em 20px 1em; - - @include desktop-breakpoint { - margin: 0 0 20px 0; - } - - ul { - list-style: none; - margin: 0; - padding: 0; - - li { - a { - &.file, &.page, &.folder { - background-position: 0 1px; - background-repeat: no-repeat; - padding-left: 20px; - } - - &.file { - background-image: $img_fileview_doc; - } - - &.page { - background-image: $img_fileview_doc; - } - - &.folder { - background-image: $img_fileview_folder; - } - } - } - } - - .breadcrumb { - border-top: $border-standard; - border-bottom: $border-standard; - margin: 1em 0; - padding: 0.25em; - } -} - -.clearfloats { - clear: both; -} - -.emoji { - width: 20px; - height: 20px; - vertical-align: -18%; -} \ No newline at end of file diff --git a/lib/gollum/public/gollum/stylesheets/ie7.scss b/lib/gollum/public/gollum/stylesheets/ie7.scss deleted file mode 100644 index 852ab5a1..00000000 --- a/lib/gollum/public/gollum/stylesheets/ie7.scss +++ /dev/null @@ -1,146 +0,0 @@ -// IE7/8-specific styles - -@import "_base", "_features", "_breakpoint", "_component"; - -/* @section layout */ -#wiki-wrapper { - @include desktop-page-layout; -} - -#wiki-content { - height: 1%; - overflow: visible; - - .wrap { - height: 1%; - overflow: auto; - } -} - -#wiki-body { - display: block; - width: 100%; - margin-right: 3%; - - float: left; - clear: left; -} - -#wiki-sidebar { - width: $layout-sidebar; -} - -#wiki-footer { - clear: both; -} - -.has-sidebar { - #wiki-body { - width: $layout-with-sidebar - $layout-with-sidebar-leeway; - } - #wiki-footer { - width: $layout-with-sidebar; - } -} - -.has-leftbar { - #wiki-body { - float: right; - clear: right; - } - #wiki-sidebar { - float: left; - } -} - -.has-rightbar { - #wiki-sidebar { - float: right; - } -} - -/* @section head */ - -#head { - #searchbar { - #searchbar-fauxtext { - input#search-query { - float: left; - } - - #search-submit span { - height: 2.25em; - } - } - } - - ul.actions { - margin: 1em 0 0 1em; - } -} - -/* -ul.actions { - margin-left: 0; -} -*/ - -.compare { - #footer ul.actions { - margin-top: 1em; - } - - div.data { - overflow: auto; - } -} - -.history { - #version-form { - margin: -0.5em 0 -0.5em !important; - } -} - -#gollum-editor { - padding-bottom: 0; - - #gollum-editor-format-selector { - margin-top: 6px; - - label { - padding-top: 0.1em !important; - } - } - - .singleline input { - padding-top: 0.25em; - } - - .collapsed { - padding-bottom: 1.1em; - } - - #gollum-editor-submit { - padding: 0.55em 1em 0.55em; - height: 2.4em; - } - - #gollum-editor-preview { - line-height: 1.3em; - } - - form { - margin: 0; - } - - textarea { - width: 98%; - } -} - -#gollum-editor-help-parent, -#gollum-editor-help-list { - li a { - height: auto; - } -} diff --git a/lib/gollum/public/gollum/stylesheets/primer.scss b/lib/gollum/public/gollum/stylesheets/primer.scss new file mode 100644 index 00000000..29363393 --- /dev/null +++ b/lib/gollum/public/gollum/stylesheets/primer.scss @@ -0,0 +1,23 @@ +/*! + * Primer + * http://primer.github.io + * + * Released under MIT license. Copyright (c) 2019 GitHub Inc. + *//*! + * Primer-core + * http://primer.github.io + * + * Released under MIT license. Copyright (c) 2019 GitHub Inc. + *//*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section{display:block}summary{display:list-item}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}template,[hidden]{display:none !important}a{background-color:transparent}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,select,textarea{font:inherit;margin:0}optgroup{font-weight:bold}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:0.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}*{box-sizing:border-box}input,select,textarea,button{font-family:inherit;font-size:inherit;line-height:inherit}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px;line-height:1.5;color:#24292e;background-color:#fff}a{color:#0366d6;text-decoration:none}a:hover{text-decoration:underline}b,strong{font-weight:600}hr,.rule{height:0;margin:15px 0;overflow:hidden;background:transparent;border:0;border-bottom:1px solid #dfe2e5}hr::before,.rule::before{display:table;content:""}hr::after,.rule::after{display:table;clear:both;content:""}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}button{cursor:pointer;border-radius:0}[hidden][hidden]{display:none !important}details summary{cursor:pointer}details:not([open])>*:not(summary){display:none !important}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:0}h1{font-size:32px;font-weight:600}h2{font-size:24px;font-weight:600}h3{font-size:20px;font-weight:600}h4{font-size:16px;font-weight:600}h5{font-size:14px;font-weight:600}h6{font-size:12px;font-weight:600}p{margin-top:0;margin-bottom:10px}small{font-size:90%}blockquote{margin:0}ul,ol{padding-left:0;margin-top:0;margin-bottom:0}ol ol,ul ol{list-style-type:lower-roman}ul ul ol,ul ol ol,ol ul ol,ol ol ol{list-style-type:lower-alpha}dd{margin-left:0}tt,code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px}pre{margin-top:0;margin-bottom:0;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px}.octicon{vertical-align:text-bottom}.Box{background-color:#fff;border:1px solid #d1d5da;border-radius:3px}.Box--condensed{line-height:1.25}.Box--condensed .Box-header{padding:8px 16px}.Box--condensed .Box-body{padding:8px 16px}.Box--condensed .Box-footer{padding:8px 16px}.Box--condensed .Box-btn-octicon.btn-octicon{padding:8px 16px;margin:-8px -16px;line-height:1.25}.Box--condensed .Box-row{padding:8px 16px}.Box--spacious .Box-header{padding:24px;line-height:1.25}.Box--spacious .Box-title{font-size:20px}.Box--spacious .Box-body{padding:24px}.Box--spacious .Box-footer{padding:24px}.Box--spacious .Box-btn-octicon.btn-octicon{padding:24px;margin:-24px -24px}.Box--spacious .Box-row{padding:24px}.Box-header{padding:16px;margin:-1px -1px 0;background-color:#f6f8fa;border-color:#d1d5da;border-style:solid;border-width:1px;border-top-left-radius:3px;border-top-right-radius:3px}.Box-title{font-size:14px;font-weight:600}.Box-body{padding:16px;border-bottom:1px solid #e1e4e8}.Box-body:last-of-type{margin-bottom:-1px;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.Box-row{padding:16px;margin-top:-1px;list-style-type:none;border-top:1px solid #e1e4e8}.Box-row:first-of-type{border-top-color:transparent;border-top-left-radius:2px;border-top-right-radius:2px}.Box-row:last-of-type{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.Box-row.Box-row--unread,.Box-row.unread{box-shadow:2px 0 0 #0366d6 inset}.Box-row.navigation-focus .Box-row--drag-button{color:#0366d6;cursor:grab;opacity:100}.Box-row.navigation-focus.is-dragging .Box-row--drag-button{cursor:grabbing}.Box-row.navigation-focus.sortable-chosen{background-color:#fafbfc}.Box-row.navigation-focus.sortable-ghost{background-color:#f6f8fa}.Box-row.navigation-focus.sortable-ghost .Box-row--drag-hide{opacity:0}.Box-row--focus-gray.navigation-focus{background-color:#f6f8fa}.Box-row--focus-blue.navigation-focus{background-color:#f1f8ff}.Box-row--hover-gray:hover{background-color:#f6f8fa}.Box-row--hover-blue:hover{background-color:#f1f8ff}@media (min-width: 768px){.Box-row-link{color:#24292e;text-decoration:none}.Box-row-link:hover{color:#0366d6;text-decoration:none}}.Box-row--drag-button{opacity:0}.Box-footer{padding:16px;margin-top:-1px;border-top:1px solid #e1e4e8}.Box--scrollable{max-height:324px;overflow:scroll}.Box--blue{border-color:#c8e1ff}.Box--blue .Box-header{background-color:#f1f8ff;border-color:#c8e1ff}.Box--blue .Box-body{border-color:#c8e1ff}.Box--blue .Box-row{border-color:#c8e1ff}.Box--blue .Box-footer{border-color:#c8e1ff}.Box--danger{border-color:#d73a49}.Box--danger .Box-row:first-of-type{border-color:#d73a49}.Box--danger .Box-body:last-of-type{border-color:#d73a49}.Box-header--blue{background-color:#f1f8ff;border-color:#c8e1ff}.Box-row--yellow{background-color:#fffbdd}.Box-row--blue{background-color:#f1f8ff}.Box-row--gray{background-color:#f6f8fa}.Box-btn-octicon.btn-octicon{padding:16px 16px;margin:-16px -16px;line-height:1.5}.breadcrumb-item{display:inline-block;margin-left:-0.35em;white-space:nowrap;list-style:none}.breadcrumb-item::after{padding-right:.5em;padding-left:.5em;color:#e1e4e8;content:"/"}.breadcrumb-item:first-child{margin-left:0}.breadcrumb-item-selected::after{content:none}.btn{position:relative;display:inline-block;padding:6px 12px;font-size:14px;font-weight:600;line-height:20px;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-repeat:repeat-x;background-position:-1px -1px;background-size:110% 110%;border:1px solid rgba(27,31,35,0.2);border-radius:0.25em;-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn i{font-style:normal;font-weight:500;opacity:0.75}.btn .octicon{vertical-align:text-top}.btn .Counter{color:#586069;text-shadow:none;background-color:rgba(27,31,35,0.1)}.btn:hover{text-decoration:none;background-repeat:repeat-x}.btn:focus{outline:0}.btn:disabled,.btn.disabled{cursor:default;background-position:0 0}.btn:active,.btn.selected{background-image:none}.btn{color:#24292e;background-color:#eff3f6;background-image:linear-gradient(-180deg, #fafbfc 0%, #eff3f6 90%)}.btn:focus,.btn.focus{box-shadow:0 0 0 0.2em rgba(3,102,214,0.3)}.btn:hover,.btn.hover{background-color:#e6ebf1;background-image:linear-gradient(-180deg, #f0f3f6 0%, #e6ebf1 90%);background-position:-.5em;border-color:rgba(27,31,35,0.35)}.btn:active,.btn.selected,[open]>.btn{background-color:#e9ecef;background-image:none;border-color:rgba(27,31,35,0.35);box-shadow:inset 0 0.15em 0.3em rgba(27,31,35,0.15)}.btn:disabled,.btn.disabled{color:rgba(36,41,46,0.4);background-color:#eff3f6;background-image:none;border-color:rgba(27,31,35,0.2);box-shadow:none}.btn-primary{color:#fff;background-color:#28a745;background-image:linear-gradient(-180deg, #34d058 0%, #28a745 90%)}.btn-primary:focus,.btn-primary.focus{box-shadow:0 0 0 0.2em rgba(52,208,88,0.4)}.btn-primary:hover,.btn-primary.hover{background-color:#269f42;background-image:linear-gradient(-180deg, #2fcb53 0%, #269f42 90%);background-position:-.5em;border-color:rgba(27,31,35,0.5)}.btn-primary:active,.btn-primary.selected,[open]>.btn-primary{background-color:#279f43;background-image:none;border-color:rgba(27,31,35,0.5);box-shadow:inset 0 0.15em 0.3em rgba(27,31,35,0.15)}.btn-primary:disabled,.btn-primary.disabled{color:rgba(255,255,255,0.75);background-color:#94d3a2;background-image:none;border-color:rgba(27,31,35,0.2);box-shadow:none}.btn-primary .Counter{color:#29b249;background-color:#fff}.btn-purple{color:#fff;background-color:#643ab0;background-image:linear-gradient(-180deg, #7e55c7 0%, #643ab0 90%)}.btn-purple:focus,.btn-purple.focus{box-shadow:0 0 0 0.2em rgba(126,85,199,0.4)}.btn-purple:hover,.btn-purple.hover{background-color:#5f37a8;background-image:linear-gradient(-180deg, #784ec5 0%, #5f37a8 90%);background-position:-.5em;border-color:rgba(27,31,35,0.5)}.btn-purple:active,.btn-purple.selected,[open]>.btn-purple{background-color:#613ca4;background-image:none;border-color:rgba(27,31,35,0.5);box-shadow:inset 0 0.15em 0.3em rgba(27,31,35,0.15)}.btn-purple:disabled,.btn-purple.disabled{color:rgba(255,255,255,0.75);background-color:#b19cd7;background-image:none;border-color:rgba(27,31,35,0.2);box-shadow:none}.btn-purple .Counter{color:#683cb8;background-color:#fff}.btn-blue{color:#fff;background-color:#0361cc;background-image:linear-gradient(-180deg, #0679fc 0%, #0361cc 90%)}.btn-blue:focus,.btn-blue.focus{box-shadow:0 0 0 0.2em rgba(6,121,252,0.4)}.btn-blue:hover,.btn-blue.hover{background-color:#035cc2;background-image:linear-gradient(-180deg, #0374f4 0%, #035cc2 90%);background-position:-.5em;border-color:rgba(27,31,35,0.5)}.btn-blue:active,.btn-blue.selected,[open]>.btn-blue{background-color:#045cc1;background-image:none;border-color:rgba(27,31,35,0.5);box-shadow:inset 0 0.15em 0.3em rgba(27,31,35,0.15)}.btn-blue:disabled,.btn-blue.disabled{color:rgba(255,255,255,0.75);background-color:#81b0e5;background-image:none;border-color:rgba(27,31,35,0.2);box-shadow:none}.btn-blue .Counter{color:#0366d6;background-color:#fff}.btn-danger{color:#cb2431;background-color:#fafbfc;background-image:linear-gradient(-180deg, #fafbfc 0%, #eff3f6 90%)}.btn-danger:focus{box-shadow:0 0 0 0.2em rgba(203,36,49,0.4)}.btn-danger:hover{color:#fff;background-color:#cb2431;background-image:linear-gradient(-180deg, #de4450 0%, #cb2431 90%);border-color:rgba(27,31,35,0.5)}.btn-danger:hover .Counter{color:#fff}.btn-danger:active,.btn-danger.selected,[open]>.btn-danger{color:#fff;background-color:#b5202c;background-image:none;border-color:rgba(27,31,35,0.5);box-shadow:inset 0 0.15em 0.3em rgba(27,31,35,0.15)}.btn-danger:disabled,.btn-danger.disabled{color:rgba(203,36,49,0.4);background-color:#eff3f6;background-image:none;border-color:rgba(27,31,35,0.2);box-shadow:none}.btn-outline{color:#0366d6;background-color:#fff;background-image:none}.btn-outline .Counter{background-color:rgba(27,31,35,0.07)}.btn-outline:hover,.btn-outline:active,.btn-outline.selected,[open]>.btn-outline{color:#fff;background-color:#0366d6;background-image:none;border-color:#0366d6}.btn-outline:hover .Counter,.btn-outline:active .Counter,.btn-outline.selected .Counter,[open]>.btn-outline .Counter{color:#0366d6;background-color:#fff}.btn-outline:focus{border-color:#0366d6;box-shadow:0 0 0 0.2em rgba(3,102,214,0.4)}.btn-outline:disabled,.btn-outline.disabled{color:rgba(27,31,35,0.3);background-color:#fff;border-color:rgba(27,31,35,0.15);box-shadow:none}.btn-with-count{float:left;border-top-right-radius:0;border-bottom-right-radius:0}.btn-sm{padding:3px 10px;font-size:12px;line-height:20px}.btn-large{padding:.75em 1.25em;font-size:inherit;border-radius:6px}.hidden-text-expander{display:block}.hidden-text-expander.inline{position:relative;top:-1px;display:inline-block;margin-left:5px;line-height:0}.hidden-text-expander a,.ellipsis-expander{display:inline-block;height:12px;padding:0 5px 5px;font-size:12px;font-weight:600;line-height:6px;color:#444d56;text-decoration:none;vertical-align:middle;background:#dfe2e5;border:0;border-radius:1px}.hidden-text-expander a:hover,.ellipsis-expander:hover{text-decoration:none;background-color:#c6cbd1}.hidden-text-expander a:active,.ellipsis-expander:active{color:#fff;background-color:#2188ff}.social-count{float:left;padding:3px 10px;font-size:12px;font-weight:600;line-height:20px;color:#24292e;vertical-align:middle;background-color:#fff;border:1px solid rgba(27,31,35,0.2);border-left:0;border-top-right-radius:3px;border-bottom-right-radius:3px}.social-count:hover,.social-count:active{text-decoration:none}.social-count:hover{color:#0366d6;cursor:pointer}.btn-block{display:block;width:100%;text-align:center}.btn-link{display:inline-block;padding:0;font-size:inherit;color:#0366d6;text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn-link:hover{text-decoration:underline}.btn-link:disabled,.btn-link:disabled:hover{color:rgba(88,96,105,0.5);cursor:default}.details-reset>summary{list-style:none}.details-reset>summary::before{display:none}.details-reset>summary::-webkit-details-marker{display:none}.BtnGroup{display:inline-block;vertical-align:middle}.BtnGroup::before{display:table;content:""}.BtnGroup::after{display:table;clear:both;content:""}.BtnGroup+.BtnGroup,.BtnGroup+.btn{margin-left:4px}.BtnGroup-item{position:relative;float:left;border-right-width:0;border-radius:0}.BtnGroup-item:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.BtnGroup-item:last-child{border-right-width:1px;border-top-right-radius:3px;border-bottom-right-radius:3px}.BtnGroup-item.selected,.BtnGroup-item:focus,.BtnGroup-item:active,.BtnGroup-item:hover{border-right-width:1px}.BtnGroup-item.selected+.BtnGroup-item,.BtnGroup-item.selected+.BtnGroup-parent .BtnGroup-item,.BtnGroup-item:focus+.BtnGroup-item,.BtnGroup-item:focus+.BtnGroup-parent .BtnGroup-item,.BtnGroup-item:active+.BtnGroup-item,.BtnGroup-item:active+.BtnGroup-parent .BtnGroup-item,.BtnGroup-item:hover+.BtnGroup-item,.BtnGroup-item:hover+.BtnGroup-parent .BtnGroup-item{border-left-width:0}.BtnGroup-parent{float:left}.BtnGroup-parent:first-child .BtnGroup-item{border-top-left-radius:3px;border-bottom-left-radius:3px}.BtnGroup-parent:last-child .BtnGroup-item{border-right-width:1px;border-top-right-radius:3px;border-bottom-right-radius:3px}.BtnGroup-parent .BtnGroup-item{border-right-width:0;border-radius:0}.BtnGroup-parent.selected .BtnGroup-item,.BtnGroup-parent:focus .BtnGroup-item,.BtnGroup-parent:active .BtnGroup-item,.BtnGroup-parent:hover .BtnGroup-item{border-right-width:1px}.BtnGroup-parent.selected+.BtnGroup-item,.BtnGroup-parent.selected+.BtnGroup-parent .BtnGroup-item,.BtnGroup-parent:focus+.BtnGroup-item,.BtnGroup-parent:focus+.BtnGroup-parent .BtnGroup-item,.BtnGroup-parent:active+.BtnGroup-item,.BtnGroup-parent:active+.BtnGroup-parent .BtnGroup-item,.BtnGroup-parent:hover+.BtnGroup-item,.BtnGroup-parent:hover+.BtnGroup-parent .BtnGroup-item{border-left-width:0}.BtnGroup-item:focus,.BtnGroup-item:active,.BtnGroup-parent:focus,.BtnGroup-parent:active{z-index:1}.TableObject{display:table}.TableObject-item{display:table-cell;width:1%;white-space:nowrap;vertical-align:middle}.TableObject-item--primary{width:99%}fieldset{padding:0;margin:0;border:0}label{font-weight:600}.form-control,.form-select{min-height:34px;padding:6px 8px;font-size:16px;line-height:20px;color:#24292e;vertical-align:middle;background-color:#fff;background-repeat:no-repeat;background-position:right 8px center;border:1px solid #d1d5da;border-radius:3px;outline:none;box-shadow:inset 0 1px 2px rgba(27,31,35,0.075)}.form-control.focus,.form-control:focus,.form-select.focus,.form-select:focus{border-color:#2188ff;outline:none;box-shadow:inset 0 1px 2px rgba(27,31,35,0.075),0 0 0 0.2em rgba(3,102,214,0.3)}@media (min-width: 768px){.form-control,.form-select{font-size:14px}}.input-contrast{background-color:#fafbfc}.input-contrast:focus{background-color:#fff}:-ms-input-placeholder{color:#6a737d}::-ms-input-placeholder{color:#6a737d}::placeholder{color:#6a737d}.input-sm{min-height:28px;padding-top:3px;padding-bottom:3px;font-size:12px;line-height:20px}.input-lg{padding:4px 10px;font-size:16px}.input-block{display:block;width:100%}.input-monospace{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace}.input-hide-webkit-autofill::-webkit-contacts-auto-fill-button{position:absolute;right:0;display:none !important;pointer-events:none;visibility:hidden}.form-checkbox{padding-left:20px;margin:15px 0;vertical-align:middle}.form-checkbox label em.highlight{position:relative;left:-4px;padding:2px 4px;font-style:normal;background:#fffbdd;border-radius:3px}.form-checkbox input[type=checkbox],.form-checkbox input[type=radio]{float:left;margin:5px 0 0 -20px;vertical-align:middle}.form-checkbox .note{display:block;margin:0;font-size:12px;font-weight:400;color:#586069}.form-checkbox-details{display:none}.form-checkbox-details-trigger:checked ~ * .form-checkbox-details,.form-checkbox-details-trigger:checked ~ .form-checkbox-details{display:block}.hfields{margin:15px 0}.hfields::before{display:table;content:""}.hfields::after{display:table;clear:both;content:""}.hfields .form-group{float:left;margin:0 30px 0 0}.hfields .form-group dt label{display:inline-block;margin:5px 0 0;color:#586069}.hfields .form-group dt img{position:relative;top:-2px}.hfields .btn{float:left;margin:28px 25px 0 -20px}.hfields .form-select{margin-top:5px}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;appearance:none}.form-actions::before{display:table;content:""}.form-actions::after{display:table;clear:both;content:""}.form-actions .btn{float:right}.form-actions .btn+.btn{margin-right:5px}.form-warning{padding:8px 10px;margin:10px 0;font-size:14px;color:#735c0f;background:#fffbdd;border:1px solid #d9d0a5;border-radius:3px}.form-warning p{margin:0;line-height:1.5}.form-warning a{font-weight:600}.form-select{display:inline-block;max-width:100%;height:34px;padding-right:24px;background:#fff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC") no-repeat right 8px center;background-size:8px 10px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-select::-ms-expand{opacity:0}.form-select[multiple]{height:auto}.select-sm{height:28px;min-height:28px;padding-top:3px;padding-bottom:3px;font-size:12px}.select-sm[multiple]{height:auto;min-height:0}.form-group{margin:15px 0}.form-group .form-control{width:440px;max-width:100%;margin-right:5px;background-color:#fafbfc}.form-group .form-control:focus{background-color:#fff}.form-group .form-control.shorter{width:130px}.form-group .form-control.short{width:250px}.form-group .form-control.long{width:100%}.form-group textarea.form-control{width:100%;height:200px;min-height:200px}.form-group textarea.form-control.short{height:50px;min-height:50px}.form-group dt{margin:0 0 6px}.form-group label{position:relative}.form-group.flattened dt{float:left;margin:0;line-height:32px}.form-group.flattened dd{line-height:32px}.form-group dd h4{margin:4px 0 0}.form-group dd h4.is-error{color:#cb2431}.form-group dd h4.is-success{color:#28a745}.form-group dd h4+.note{margin-top:0}.form-group.required dt label::after{padding-left:5px;color:#cb2431;content:"*"}.form-group .success,.form-group .error,.form-group .indicator{display:none;font-size:12px;font-weight:600}.form-group.loading{opacity:0.5}.form-group.loading .indicator{display:inline}.form-group.loading .spinner{display:inline-block;vertical-align:middle}.form-group.successful .success{display:inline;color:#28a745}.form-group.warn .warning,.form-group.warn .error,.form-group.errored .warning,.form-group.errored .error{position:absolute;z-index:10;display:block;max-width:450px;padding:5px 8px;margin:4px 0 0;font-size:13px;font-weight:400;border-style:solid;border-width:1px;border-radius:3px}.form-group.warn .warning::after,.form-group.warn .warning::before,.form-group.warn .error::after,.form-group.warn .error::before,.form-group.errored .warning::after,.form-group.errored .warning::before,.form-group.errored .error::after,.form-group.errored .error::before{position:absolute;bottom:100%;left:10px;z-index:15;width:0;height:0;pointer-events:none;content:" ";border:solid transparent}.form-group.warn .warning::after,.form-group.warn .error::after,.form-group.errored .warning::after,.form-group.errored .error::after{border-width:5px}.form-group.warn .warning::before,.form-group.warn .error::before,.form-group.errored .warning::before,.form-group.errored .error::before{margin-left:-1px;border-width:6px}.form-group.warn .warning{color:#735c0f;background-color:#fffbdd;border-color:#d9d0a5}.form-group.warn .warning::after{border-bottom-color:#fffbdd}.form-group.warn .warning::before{border-bottom-color:#d9d0a5}.form-group.errored label{color:#cb2431}.form-group.errored .error{color:#86181d;background-color:#ffdce0;border-color:#cea0a5}.form-group.errored .error::after{border-bottom-color:#ffdce0}.form-group.errored .error::before{border-bottom-color:#cea0a5}.note{min-height:17px;margin:4px 0 2px;font-size:12px;color:#586069}.note .spinner{margin-right:3px;vertical-align:middle}dl.form-group>dd .form-control.is-autocheck-loading,dl.form-group>dd .form-control.is-autocheck-successful,dl.form-group>dd .form-control.is-autocheck-errored{padding-right:30px}dl.form-group>dd .form-control.is-autocheck-loading{background-image:url("/images/spinners/octocat-spinner-16px.gif")}dl.form-group>dd .form-control.is-autocheck-successful{background-image:url("/images/modules/ajax/success.png")}dl.form-group>dd .form-control.is-autocheck-errored{background-image:url("/images/modules/ajax/error.png")}@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-moz-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx){dl.form-group>dd .form-control.is-autocheck-loading,dl.form-group>dd .form-control.is-autocheck-successful,dl.form-group>dd .form-control.is-autocheck-errored{background-size:16px 16px}dl.form-group>dd .form-control.is-autocheck-loading{background-image:url("/images/spinners/octocat-spinner-32.gif")}dl.form-group>dd .form-control.is-autocheck-successful{background-image:url("/images/modules/ajax/success@2x.png")}dl.form-group>dd .form-control.is-autocheck-errored{background-image:url("/images/modules/ajax/error@2x.png")}}.status-indicator{display:inline-block;width:16px;height:16px;margin-left:5px}.status-indicator .octicon{display:none}.status-indicator-success::before{content:""}.status-indicator-success .octicon-check{display:inline-block;color:#28a745;fill:#28a745}.status-indicator-success .octicon-x{display:none}.status-indicator-failed::before{content:""}.status-indicator-failed .octicon-check{display:none}.status-indicator-failed .octicon-x{display:inline-block;color:#cb2431;fill:#d73a49}.status-indicator-loading{width:16px;background:url("/images/spinners/octocat-spinner-32-EAF2F5.gif") 0 0 no-repeat;background-size:16px}.inline-form{display:inline-block}.inline-form .btn-plain{background-color:transparent;border:0}.drag-and-drop{padding:7px 10px;margin:0;font-size:13px;line-height:16px;color:#586069;background-color:#fafbfc;border:1px solid #c3c8cf;border-top:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.drag-and-drop .default,.drag-and-drop .loading,.drag-and-drop .error{display:none}.drag-and-drop .error{color:#cb2431}.drag-and-drop img{vertical-align:top}.is-default .drag-and-drop .default{display:inline-block}.is-uploading .drag-and-drop .loading{display:inline-block}.is-bad-file .drag-and-drop .bad-file{display:inline-block}.is-duplicate-filename .drag-and-drop .duplicate-filename{display:inline-block}.is-too-big .drag-and-drop .too-big{display:inline-block}.is-hidden-file .drag-and-drop .hidden-file{display:inline-block}.is-empty .drag-and-drop .empty{display:inline-block}.is-bad-permissions .drag-and-drop .bad-permissions{display:inline-block}.is-repository-required .drag-and-drop .repository-required{display:inline-block}.drag-and-drop-error-info{font-weight:400;color:#586069}.drag-and-drop-error-info a{color:#0366d6}.is-failed .drag-and-drop .failed-request{display:inline-block}.manual-file-chooser{position:absolute;width:240px;padding:5px;margin-left:-80px;cursor:pointer;opacity:0.0001}.manual-file-chooser:hover+.manual-file-chooser-text{text-decoration:underline}.btn .manual-file-chooser{top:0;padding:0;line-height:34px}.upload-enabled textarea{display:block;border-bottom:1px dashed #dfe2e5;border-bottom-right-radius:0;border-bottom-left-radius:0}.upload-enabled.focused{border-radius:3px;box-shadow:inset 0 1px 2px rgba(27,31,35,0.075),0 0 0 0.2em rgba(3,102,214,0.3)}.upload-enabled.focused .form-control{box-shadow:none}.upload-enabled.focused .drag-and-drop{border-color:#4a9eff}.dragover textarea,.dragover .drag-and-drop{box-shadow:#c9ff00 0 0 3px}.write-content{position:relative}.previewable-comment-form{position:relative}.previewable-comment-form .tabnav{position:relative;padding:8px 8px 0}.previewable-comment-form .comment{border:1px solid #c3c8cf}.previewable-comment-form .comment-form-error{margin-bottom:8px}.previewable-comment-form .write-content,.previewable-comment-form .preview-content{display:none;margin:0 8px 8px}.previewable-comment-form.write-selected .write-content,.previewable-comment-form.preview-selected .preview-content{display:block}.previewable-comment-form textarea{display:block;width:100%;min-height:100px;max-height:500px;padding:8px;resize:vertical}.form-action-spacious{margin-top:10px}div.composer{margin-top:0;border:0}.composer .comment-form-textarea{height:200px;min-height:200px}.composer .tabnav{margin:0 0 10px}h2.account{margin:15px 0 0;font-size:18px;font-weight:400;color:#586069}p.explain{position:relative;font-size:12px;color:#586069}p.explain strong{color:#24292e}p.explain .octicon{margin-right:5px;color:#959da5}p.explain .minibutton{top:-4px;float:right}.form-group label{position:static}.input-group{display:table}.input-group .form-control{position:relative;width:100%}.input-group .form-control:focus{z-index:2}.input-group .form-control+.btn{margin-left:0}.input-group.inline{display:inline-table}.input-group .form-control,.input-group-button{display:table-cell}.input-group-button{width:1%;vertical-align:middle}.input-group .form-control:first-child,.input-group-button:first-child .btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-button:first-child .btn{margin-right:-1px}.input-group .form-control:last-child,.input-group-button:last-child .btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-button:last-child .btn{margin-left:-1px}.container{width:980px;margin-right:auto;margin-left:auto}.container::before{display:table;content:""}.container::after{display:table;clear:both;content:""}.container-sm{max-width:544px;margin-right:auto;margin-left:auto}.container-md{max-width:768px;margin-right:auto;margin-left:auto}.container-lg{max-width:1012px;margin-right:auto;margin-left:auto}.container-xl{max-width:1280px;margin-right:auto;margin-left:auto}.columns{margin-right:-10px;margin-left:-10px}.columns::before{display:table;content:""}.columns::after{display:table;clear:both;content:""}.column{float:left;padding-right:10px;padding-left:10px}.one-third{width:33.333333%}.two-thirds{width:66.666667%}.one-fourth{width:25%}.one-half{width:50%}.three-fourths{width:75%}.one-fifth{width:20%}.four-fifths{width:80%}.centered{display:block;float:none;margin-right:auto;margin-left:auto}.col-1{width:8.33333%}.col-2{width:16.66667%}.col-3{width:25%}.col-4{width:33.33333%}.col-5{width:41.66667%}.col-6{width:50%}.col-7{width:58.33333%}.col-8{width:66.66667%}.col-9{width:75%}.col-10{width:83.33333%}.col-11{width:91.66667%}.col-12{width:100%}@media (min-width: 544px){.col-sm-1{width:8.33333%}.col-sm-2{width:16.66667%}.col-sm-3{width:25%}.col-sm-4{width:33.33333%}.col-sm-5{width:41.66667%}.col-sm-6{width:50%}.col-sm-7{width:58.33333%}.col-sm-8{width:66.66667%}.col-sm-9{width:75%}.col-sm-10{width:83.33333%}.col-sm-11{width:91.66667%}.col-sm-12{width:100%}}@media (min-width: 768px){.col-md-1{width:8.33333%}.col-md-2{width:16.66667%}.col-md-3{width:25%}.col-md-4{width:33.33333%}.col-md-5{width:41.66667%}.col-md-6{width:50%}.col-md-7{width:58.33333%}.col-md-8{width:66.66667%}.col-md-9{width:75%}.col-md-10{width:83.33333%}.col-md-11{width:91.66667%}.col-md-12{width:100%}}@media (min-width: 1012px){.col-lg-1{width:8.33333%}.col-lg-2{width:16.66667%}.col-lg-3{width:25%}.col-lg-4{width:33.33333%}.col-lg-5{width:41.66667%}.col-lg-6{width:50%}.col-lg-7{width:58.33333%}.col-lg-8{width:66.66667%}.col-lg-9{width:75%}.col-lg-10{width:83.33333%}.col-lg-11{width:91.66667%}.col-lg-12{width:100%}}@media (min-width: 1280px){.col-xl-1{width:8.33333%}.col-xl-2{width:16.66667%}.col-xl-3{width:25%}.col-xl-4{width:33.33333%}.col-xl-5{width:41.66667%}.col-xl-6{width:50%}.col-xl-7{width:58.33333%}.col-xl-8{width:66.66667%}.col-xl-9{width:75%}.col-xl-10{width:83.33333%}.col-xl-11{width:91.66667%}.col-xl-12{width:100%}}.gutter{margin-right:-16px;margin-left:-16px}.gutter>[class*="col-"]{padding-right:16px !important;padding-left:16px !important}.gutter-condensed{margin-right:-8px;margin-left:-8px}.gutter-condensed>[class*="col-"]{padding-right:8px !important;padding-left:8px !important}.gutter-spacious{margin-right:-24px;margin-left:-24px}.gutter-spacious>[class*="col-"]{padding-right:24px !important;padding-left:24px !important}@media (min-width: 544px){.gutter-sm{margin-right:-16px;margin-left:-16px}.gutter-sm>[class*="col-"]{padding-right:16px !important;padding-left:16px !important}.gutter-sm-condensed{margin-right:-8px;margin-left:-8px}.gutter-sm-condensed>[class*="col-"]{padding-right:8px !important;padding-left:8px !important}.gutter-sm-spacious{margin-right:-24px;margin-left:-24px}.gutter-sm-spacious>[class*="col-"]{padding-right:24px !important;padding-left:24px !important}}@media (min-width: 768px){.gutter-md{margin-right:-16px;margin-left:-16px}.gutter-md>[class*="col-"]{padding-right:16px !important;padding-left:16px !important}.gutter-md-condensed{margin-right:-8px;margin-left:-8px}.gutter-md-condensed>[class*="col-"]{padding-right:8px !important;padding-left:8px !important}.gutter-md-spacious{margin-right:-24px;margin-left:-24px}.gutter-md-spacious>[class*="col-"]{padding-right:24px !important;padding-left:24px !important}}@media (min-width: 1012px){.gutter-lg{margin-right:-16px;margin-left:-16px}.gutter-lg>[class*="col-"]{padding-right:16px !important;padding-left:16px !important}.gutter-lg-condensed{margin-right:-8px;margin-left:-8px}.gutter-lg-condensed>[class*="col-"]{padding-right:8px !important;padding-left:8px !important}.gutter-lg-spacious{margin-right:-24px;margin-left:-24px}.gutter-lg-spacious>[class*="col-"]{padding-right:24px !important;padding-left:24px !important}}@media (min-width: 1280px){.gutter-xl{margin-right:-16px;margin-left:-16px}.gutter-xl>[class*="col-"]{padding-right:16px !important;padding-left:16px !important}.gutter-xl-condensed{margin-right:-8px;margin-left:-8px}.gutter-xl-condensed>[class*="col-"]{padding-right:8px !important;padding-left:8px !important}.gutter-xl-spacious{margin-right:-24px;margin-left:-24px}.gutter-xl-spacious>[class*="col-"]{padding-right:24px !important;padding-left:24px !important}}.offset-1{margin-left:8.33333% !important}.offset-2{margin-left:16.66667% !important}.offset-3{margin-left:25% !important}.offset-4{margin-left:33.33333% !important}.offset-5{margin-left:41.66667% !important}.offset-6{margin-left:50% !important}.offset-7{margin-left:58.33333% !important}.offset-8{margin-left:66.66667% !important}.offset-9{margin-left:75% !important}.offset-10{margin-left:83.33333% !important}.offset-11{margin-left:91.66667% !important}@media (min-width: 544px){.offset-sm-1{margin-left:8.33333% !important}.offset-sm-2{margin-left:16.66667% !important}.offset-sm-3{margin-left:25% !important}.offset-sm-4{margin-left:33.33333% !important}.offset-sm-5{margin-left:41.66667% !important}.offset-sm-6{margin-left:50% !important}.offset-sm-7{margin-left:58.33333% !important}.offset-sm-8{margin-left:66.66667% !important}.offset-sm-9{margin-left:75% !important}.offset-sm-10{margin-left:83.33333% !important}.offset-sm-11{margin-left:91.66667% !important}}@media (min-width: 768px){.offset-md-1{margin-left:8.33333% !important}.offset-md-2{margin-left:16.66667% !important}.offset-md-3{margin-left:25% !important}.offset-md-4{margin-left:33.33333% !important}.offset-md-5{margin-left:41.66667% !important}.offset-md-6{margin-left:50% !important}.offset-md-7{margin-left:58.33333% !important}.offset-md-8{margin-left:66.66667% !important}.offset-md-9{margin-left:75% !important}.offset-md-10{margin-left:83.33333% !important}.offset-md-11{margin-left:91.66667% !important}}@media (min-width: 1012px){.offset-lg-1{margin-left:8.33333% !important}.offset-lg-2{margin-left:16.66667% !important}.offset-lg-3{margin-left:25% !important}.offset-lg-4{margin-left:33.33333% !important}.offset-lg-5{margin-left:41.66667% !important}.offset-lg-6{margin-left:50% !important}.offset-lg-7{margin-left:58.33333% !important}.offset-lg-8{margin-left:66.66667% !important}.offset-lg-9{margin-left:75% !important}.offset-lg-10{margin-left:83.33333% !important}.offset-lg-11{margin-left:91.66667% !important}}@media (min-width: 1280px){.offset-xl-1{margin-left:8.33333% !important}.offset-xl-2{margin-left:16.66667% !important}.offset-xl-3{margin-left:25% !important}.offset-xl-4{margin-left:33.33333% !important}.offset-xl-5{margin-left:41.66667% !important}.offset-xl-6{margin-left:50% !important}.offset-xl-7{margin-left:58.33333% !important}.offset-xl-8{margin-left:66.66667% !important}.offset-xl-9{margin-left:75% !important}.offset-xl-10{margin-left:83.33333% !important}.offset-xl-11{margin-left:91.66667% !important}}.menu{margin-bottom:15px;list-style:none;background-color:#fff;border:1px solid #d1d5da;border-radius:3px}.menu-item{position:relative;display:block;padding:8px 10px;border-bottom:1px solid #e1e4e8}.menu-item:first-child{border-top:0;border-top-left-radius:2px;border-top-right-radius:2px}.menu-item:first-child::before{border-top-left-radius:2px}.menu-item:last-child{border-bottom:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.menu-item:last-child::before{border-bottom-left-radius:2px}.menu-item:hover{text-decoration:none;background-color:#f6f8fa}.menu-item.selected{font-weight:600;color:#24292e;cursor:default;background-color:#fff}.menu-item.selected::before{position:absolute;top:0;bottom:0;left:0;width:2px;content:"";background-color:#e36209}.menu-item .octicon{width:16px;margin-right:5px;color:#24292e;text-align:center}.menu-item .Counter{float:right;margin-left:5px}.menu-item .menu-warning{float:right;color:#86181d}.menu-item .avatar{float:left;margin-right:5px}.menu-item.alert .Counter{color:#cb2431}.menu-heading{display:block;padding:8px 10px;margin-top:0;margin-bottom:0;font-size:13px;font-weight:600;line-height:20px;color:#586069;background-color:#f3f5f8;border-bottom:1px solid #e1e4e8}.menu-heading:hover{text-decoration:none}.menu-heading:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.menu-heading:last-child{border-bottom:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.tabnav{margin-top:0;margin-bottom:15px;border-bottom:1px solid #d1d5da}.tabnav .Counter{margin-left:5px}.tabnav-tabs{margin-bottom:-1px}.tabnav-tab{display:inline-block;padding:8px 12px;font-size:14px;line-height:20px;color:#586069;text-decoration:none;background-color:transparent;border:1px solid transparent;border-bottom:0}.tabnav-tab.selected{color:#24292e;background-color:#fff;border-color:#d1d5da;border-radius:3px 3px 0 0}.tabnav-tab:hover,.tabnav-tab:focus{color:#24292e;text-decoration:none}.tabnav-extra{display:inline-block;padding-top:10px;margin-left:10px;font-size:12px;color:#586069}.tabnav-extra>.octicon{margin-right:2px}a.tabnav-extra:hover{color:#0366d6;text-decoration:none}.tabnav-btn{margin-left:10px}.filter-list{list-style-type:none}.filter-list.small .filter-item{padding:4px 10px;margin:0 0 2px;font-size:12px}.filter-list.pjax-active .filter-item{color:#586069;background-color:transparent}.filter-list.pjax-active .filter-item.pjax-active{color:#fff;background-color:#0366d6}.filter-item{position:relative;display:block;padding:8px 10px;margin-bottom:5px;overflow:hidden;font-size:14px;color:#586069;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:3px}.filter-item:hover{text-decoration:none;background-color:#eaecef}.filter-item.selected{color:#fff;background-color:#0366d6}.filter-item .count{float:right;font-weight:600}.filter-item .bar{position:absolute;top:2px;right:0;bottom:2px;z-index:-1;display:inline-block;background-color:#eff3f6}.subnav{margin-bottom:20px}.subnav::before{display:table;content:""}.subnav::after{display:table;clear:both;content:""}.subnav-bordered{padding-bottom:20px;border-bottom:1px solid #eaecef}.subnav-flush{margin-bottom:0}.subnav-item{position:relative;float:left;padding:6px 14px;font-weight:600;line-height:20px;color:#586069;border:1px solid #e1e4e8}.subnav-item+.subnav-item{margin-left:-1px}.subnav-item:hover,.subnav-item:focus{text-decoration:none;background-color:#f6f8fa}.subnav-item.selected,.subnav-item.selected:hover,.subnav-item.selected:focus{z-index:2;color:#fff;background-color:#0366d6;border-color:#0366d6}.subnav-item:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.subnav-item:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.subnav-search{position:relative;margin-left:10px}.subnav-search-input{width:320px;padding-left:30px;color:#586069}.subnav-search-input-wide{width:500px}.subnav-search-icon{position:absolute;top:9px;left:8px;display:block;color:#c6cbd1;text-align:center;pointer-events:none}.subnav-search-context .btn{color:#444d56;border-top-right-radius:0;border-bottom-right-radius:0}.subnav-search-context .btn:hover,.subnav-search-context .btn:focus,.subnav-search-context .btn:active,.subnav-search-context .btn.selected{z-index:2}.subnav-search-context+.subnav-search{margin-left:-1px}.subnav-search-context+.subnav-search .subnav-search-input{border-top-left-radius:0;border-bottom-left-radius:0}.subnav-search-context .select-menu-modal-holder{z-index:30}.subnav-search-context .select-menu-modal{width:220px}.subnav-search-context .select-menu-item-icon{color:inherit}.subnav-spacer-right{padding-right:10px}.UnderlineNav{display:flex;overflow-x:auto;overflow-y:hidden;border-bottom:1px #e1e4e8 solid;justify-content:space-between}.UnderlineNav-body{display:flex}.UnderlineNav-item{padding:16px 8px;margin-right:16px;font-size:14px;line-height:1.5;color:#586069;text-align:center;border-bottom:2px solid transparent}.UnderlineNav-item:hover,.UnderlineNav-item:focus{color:#24292e;text-decoration:none;border-bottom-color:#d1d5da;transition:0.2s ease}.UnderlineNav-item:hover .UnderlineNav-octicon,.UnderlineNav-item:focus .UnderlineNav-octicon{color:#6a737d}.UnderlineNav-item.selected{font-weight:600;color:#24292e;border-bottom-color:#e36209}.UnderlineNav-item.selected .UnderlineNav-octicon{color:#6a737d}.UnderlineNav--right{justify-content:flex-end}.UnderlineNav--right .UnderlineNav-item{margin-right:0;margin-left:16px}.UnderlineNav--right .UnderlineNav-actions{flex:1 1 auto}.UnderlineNav-actions{align-self:center}.UnderlineNav--full{display:block}.UnderlineNav-octicon{color:#959da5}.UnderlineNav-container{display:flex;justify-content:space-between}.pagination::before{display:table;content:""}.pagination::after{display:table;clear:both;content:""}.pagination a,.pagination span,.pagination em{position:relative;float:left;padding:7px 12px;margin-left:-1px;font-size:13px;font-style:normal;font-weight:600;color:#0366d6;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:#fff;border:1px solid #e1e4e8}.pagination a:first-child,.pagination span:first-child,.pagination em:first-child{margin-left:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination a:last-child,.pagination span:last-child,.pagination em:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}.pagination a:hover,.pagination a:focus,.pagination span:hover,.pagination span:focus,.pagination em:hover,.pagination em:focus{z-index:2;text-decoration:none;background-color:#eff3f6;border-color:#e1e4e8}.pagination .selected{z-index:3}.pagination .current,.pagination .current:hover{z-index:3;color:#fff;background-color:#0366d6;border-color:#0366d6}.pagination .gap,.pagination .disabled,.pagination .gap:hover,.pagination .disabled:hover{color:#d1d5da;cursor:default;background-color:#fafbfc}.paginate-container{margin-top:20px;margin-bottom:15px;text-align:center}.paginate-container .pagination{display:inline-block}.tooltipped{position:relative}.tooltipped::after{position:absolute;z-index:1000000;display:none;padding:.5em .75em;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";-webkit-font-smoothing:subpixel-antialiased;color:#fff;text-align:center;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:#1b1f23;border-radius:3px;opacity:0}.tooltipped::before{position:absolute;z-index:1000001;display:none;width:0;height:0;color:#1b1f23;pointer-events:none;content:"";border:6px solid transparent;opacity:0}@keyframes tooltip-appear{from{opacity:0}to{opacity:1}}.tooltipped:hover::before,.tooltipped:hover::after,.tooltipped:active::before,.tooltipped:active::after,.tooltipped:focus::before,.tooltipped:focus::after{display:inline-block;text-decoration:none;animation-name:tooltip-appear;animation-duration:.1s;animation-fill-mode:forwards;animation-timing-function:ease-in;animation-delay:.4s}.tooltipped-no-delay:hover::before,.tooltipped-no-delay:hover::after,.tooltipped-no-delay:active::before,.tooltipped-no-delay:active::after,.tooltipped-no-delay:focus::before,.tooltipped-no-delay:focus::after{animation-delay:0s}.tooltipped-multiline:hover::after,.tooltipped-multiline:active::after,.tooltipped-multiline:focus::after{display:table-cell}.tooltipped-s::after,.tooltipped-se::after,.tooltipped-sw::after{top:100%;right:50%;margin-top:6px}.tooltipped-s::before,.tooltipped-se::before,.tooltipped-sw::before{top:auto;right:50%;bottom:-7px;margin-right:-6px;border-bottom-color:#1b1f23}.tooltipped-se::after{right:auto;left:50%;margin-left:-16px}.tooltipped-sw::after{margin-right:-16px}.tooltipped-n::after,.tooltipped-ne::after,.tooltipped-nw::after{right:50%;bottom:100%;margin-bottom:6px}.tooltipped-n::before,.tooltipped-ne::before,.tooltipped-nw::before{top:-7px;right:50%;bottom:auto;margin-right:-6px;border-top-color:#1b1f23}.tooltipped-ne::after{right:auto;left:50%;margin-left:-16px}.tooltipped-nw::after{margin-right:-16px}.tooltipped-s::after,.tooltipped-n::after{transform:translateX(50%)}.tooltipped-w::after{right:100%;bottom:50%;margin-right:6px;transform:translateY(50%)}.tooltipped-w::before{top:50%;bottom:50%;left:-7px;margin-top:-6px;border-left-color:#1b1f23}.tooltipped-e::after{bottom:50%;left:100%;margin-left:6px;transform:translateY(50%)}.tooltipped-e::before{top:50%;right:-7px;bottom:50%;margin-top:-6px;border-right-color:#1b1f23}.tooltipped-align-right-1::after,.tooltipped-align-right-2::after{right:0;margin-right:0}.tooltipped-align-right-1::before{right:10px}.tooltipped-align-right-2::before{right:15px}.tooltipped-align-left-1::after,.tooltipped-align-left-2::after{left:0;margin-left:0}.tooltipped-align-left-1::before{left:5px}.tooltipped-align-left-2::before{left:10px}.tooltipped-multiline::after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-wrap:break-word;white-space:pre-line;border-collapse:separate}.tooltipped-multiline.tooltipped-s::after,.tooltipped-multiline.tooltipped-n::after{right:auto;left:50%;transform:translateX(-50%)}.tooltipped-multiline.tooltipped-w::after,.tooltipped-multiline.tooltipped-e::after{right:100%}@media screen and (min-width: 0\0){.tooltipped-multiline::after{width:250px}}.tooltipped-sticky::before,.tooltipped-sticky::after{display:inline-block}.tooltipped-sticky.tooltipped-multiline::after{display:table-cell}.css-truncate.css-truncate-target,.css-truncate .css-truncate-target{display:inline-block;max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top}.css-truncate.expandable.zeroclipboard-is-hover .css-truncate-target,.css-truncate.expandable.zeroclipboard-is-hover.css-truncate-target,.css-truncate.expandable:hover .css-truncate-target,.css-truncate.expandable:hover.css-truncate-target{max-width:10000px !important}.anim-fade-in{animation-name:fade-in;animation-duration:1s;animation-timing-function:ease-in-out}.anim-fade-in.fast{animation-duration:300ms}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}.anim-fade-out{animation-name:fade-out;animation-duration:1s;animation-timing-function:ease-out}.anim-fade-out.fast{animation-duration:0.3s}@keyframes fade-out{0%{opacity:1}100%{opacity:0}}.anim-fade-up{opacity:0;animation-name:fade-up;animation-duration:0.3s;animation-fill-mode:forwards;animation-timing-function:ease-out;animation-delay:1s}@keyframes fade-up{0%{opacity:0.8;transform:translateY(100%)}100%{opacity:1;transform:translateY(0)}}.anim-fade-down{animation-name:fade-down;animation-duration:0.3s;animation-fill-mode:forwards;animation-timing-function:ease-in}@keyframes fade-down{0%{opacity:1;transform:translateY(0)}100%{opacity:0.5;transform:translateY(100%)}}.anim-grow-x{width:0%;animation-name:grow-x;animation-duration:0.3s;animation-fill-mode:forwards;animation-timing-function:ease;animation-delay:0.5s}@keyframes grow-x{to{width:100%}}.anim-shrink-x{animation-name:shrink-x;animation-duration:0.3s;animation-fill-mode:forwards;animation-timing-function:ease-in-out;animation-delay:0.5s}@keyframes shrink-x{to{width:0%}}.anim-scale-in{animation-name:scale-in;animation-duration:0.15s;animation-timing-function:cubic-bezier(0.2, 0, 0.13, 1.5)}@keyframes scale-in{0%{opacity:0;transform:scale(0.5)}100%{opacity:1;transform:scale(1)}}.anim-pulse{animation-name:pulse;animation-duration:2s;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes pulse{0%{opacity:0.3}10%{opacity:1}100%{opacity:0.3}}.anim-pulse-in{animation-name:pulse-in;animation-duration:0.5s}@keyframes pulse-in{0%{transform:scale3d(1, 1, 1)}50%{transform:scale3d(1.1, 1.1, 1.1)}100%{transform:scale3d(1, 1, 1)}}.hover-grow{transition:transform 0.3s;-webkit-backface-visibility:hidden;backface-visibility:hidden}.hover-grow:hover{transform:scale(1.025)}.border{border:1px #e1e4e8 solid !important}.border-y{border-top:1px #e1e4e8 solid !important;border-bottom:1px #e1e4e8 solid !important}.border-0{border:0 !important}.border-dashed{border-style:dashed !important}.border-top{border-top:1px #e1e4e8 solid !important}.border-right{border-right:1px #e1e4e8 solid !important}.border-bottom{border-bottom:1px #e1e4e8 solid !important}.border-left{border-left:1px #e1e4e8 solid !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:3px !important}.rounded-2{border-radius:6px !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:3px !important;border-top-right-radius:3px !important}.rounded-top-2{border-top-left-radius:6px !important;border-top-right-radius:6px !important}.rounded-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-right-1{border-top-right-radius:3px !important;border-bottom-right-radius:3px !important}.rounded-right-2{border-top-right-radius:6px !important;border-bottom-right-radius:6px !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:3px !important;border-bottom-left-radius:3px !important}.rounded-bottom-2{border-bottom-right-radius:6px !important;border-bottom-left-radius:6px !important}.rounded-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-left-1{border-bottom-left-radius:3px !important;border-top-left-radius:3px !important}.rounded-left-2{border-bottom-left-radius:6px !important;border-top-left-radius:6px !important}@media (min-width: 544px){.border-sm-top{border-top:1px #e1e4e8 solid !important}.border-sm-right{border-right:1px #e1e4e8 solid !important}.border-sm-bottom{border-bottom:1px #e1e4e8 solid !important}.border-sm-left{border-left:1px #e1e4e8 solid !important}.border-sm-top-0{border-top:0 !important}.border-sm-right-0{border-right:0 !important}.border-sm-bottom-0{border-bottom:0 !important}.border-sm-left-0{border-left:0 !important}.rounded-sm-0{border-radius:0 !important}.rounded-sm-1{border-radius:3px !important}.rounded-sm-2{border-radius:6px !important}.rounded-sm-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-sm-top-1{border-top-left-radius:3px !important;border-top-right-radius:3px !important}.rounded-sm-top-2{border-top-left-radius:6px !important;border-top-right-radius:6px !important}.rounded-sm-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-sm-right-1{border-top-right-radius:3px !important;border-bottom-right-radius:3px !important}.rounded-sm-right-2{border-top-right-radius:6px !important;border-bottom-right-radius:6px !important}.rounded-sm-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-sm-bottom-1{border-bottom-right-radius:3px !important;border-bottom-left-radius:3px !important}.rounded-sm-bottom-2{border-bottom-right-radius:6px !important;border-bottom-left-radius:6px !important}.rounded-sm-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-sm-left-1{border-bottom-left-radius:3px !important;border-top-left-radius:3px !important}.rounded-sm-left-2{border-bottom-left-radius:6px !important;border-top-left-radius:6px !important}}@media (min-width: 768px){.border-md-top{border-top:1px #e1e4e8 solid !important}.border-md-right{border-right:1px #e1e4e8 solid !important}.border-md-bottom{border-bottom:1px #e1e4e8 solid !important}.border-md-left{border-left:1px #e1e4e8 solid !important}.border-md-top-0{border-top:0 !important}.border-md-right-0{border-right:0 !important}.border-md-bottom-0{border-bottom:0 !important}.border-md-left-0{border-left:0 !important}.rounded-md-0{border-radius:0 !important}.rounded-md-1{border-radius:3px !important}.rounded-md-2{border-radius:6px !important}.rounded-md-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-md-top-1{border-top-left-radius:3px !important;border-top-right-radius:3px !important}.rounded-md-top-2{border-top-left-radius:6px !important;border-top-right-radius:6px !important}.rounded-md-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-md-right-1{border-top-right-radius:3px !important;border-bottom-right-radius:3px !important}.rounded-md-right-2{border-top-right-radius:6px !important;border-bottom-right-radius:6px !important}.rounded-md-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-md-bottom-1{border-bottom-right-radius:3px !important;border-bottom-left-radius:3px !important}.rounded-md-bottom-2{border-bottom-right-radius:6px !important;border-bottom-left-radius:6px !important}.rounded-md-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-md-left-1{border-bottom-left-radius:3px !important;border-top-left-radius:3px !important}.rounded-md-left-2{border-bottom-left-radius:6px !important;border-top-left-radius:6px !important}}@media (min-width: 1012px){.border-lg-top{border-top:1px #e1e4e8 solid !important}.border-lg-right{border-right:1px #e1e4e8 solid !important}.border-lg-bottom{border-bottom:1px #e1e4e8 solid !important}.border-lg-left{border-left:1px #e1e4e8 solid !important}.border-lg-top-0{border-top:0 !important}.border-lg-right-0{border-right:0 !important}.border-lg-bottom-0{border-bottom:0 !important}.border-lg-left-0{border-left:0 !important}.rounded-lg-0{border-radius:0 !important}.rounded-lg-1{border-radius:3px !important}.rounded-lg-2{border-radius:6px !important}.rounded-lg-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-lg-top-1{border-top-left-radius:3px !important;border-top-right-radius:3px !important}.rounded-lg-top-2{border-top-left-radius:6px !important;border-top-right-radius:6px !important}.rounded-lg-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-lg-right-1{border-top-right-radius:3px !important;border-bottom-right-radius:3px !important}.rounded-lg-right-2{border-top-right-radius:6px !important;border-bottom-right-radius:6px !important}.rounded-lg-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-lg-bottom-1{border-bottom-right-radius:3px !important;border-bottom-left-radius:3px !important}.rounded-lg-bottom-2{border-bottom-right-radius:6px !important;border-bottom-left-radius:6px !important}.rounded-lg-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-lg-left-1{border-bottom-left-radius:3px !important;border-top-left-radius:3px !important}.rounded-lg-left-2{border-bottom-left-radius:6px !important;border-top-left-radius:6px !important}}@media (min-width: 1280px){.border-xl-top{border-top:1px #e1e4e8 solid !important}.border-xl-right{border-right:1px #e1e4e8 solid !important}.border-xl-bottom{border-bottom:1px #e1e4e8 solid !important}.border-xl-left{border-left:1px #e1e4e8 solid !important}.border-xl-top-0{border-top:0 !important}.border-xl-right-0{border-right:0 !important}.border-xl-bottom-0{border-bottom:0 !important}.border-xl-left-0{border-left:0 !important}.rounded-xl-0{border-radius:0 !important}.rounded-xl-1{border-radius:3px !important}.rounded-xl-2{border-radius:6px !important}.rounded-xl-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-xl-top-1{border-top-left-radius:3px !important;border-top-right-radius:3px !important}.rounded-xl-top-2{border-top-left-radius:6px !important;border-top-right-radius:6px !important}.rounded-xl-right-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-xl-right-1{border-top-right-radius:3px !important;border-bottom-right-radius:3px !important}.rounded-xl-right-2{border-top-right-radius:6px !important;border-bottom-right-radius:6px !important}.rounded-xl-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-xl-bottom-1{border-bottom-right-radius:3px !important;border-bottom-left-radius:3px !important}.rounded-xl-bottom-2{border-bottom-right-radius:6px !important;border-bottom-left-radius:6px !important}.rounded-xl-left-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-xl-left-1{border-bottom-left-radius:3px !important;border-top-left-radius:3px !important}.rounded-xl-left-2{border-bottom-left-radius:6px !important;border-top-left-radius:6px !important}}.circle{border-radius:50% !important}.border-blue{border-color:#0366d6 !important}.border-blue-light{border-color:#c8e1ff !important}.border-green{border-color:#34d058 !important}.border-green-light{border-color:#a2cbac !important}.border-red{border-color:#d73a49 !important}.border-red-light{border-color:#cea0a5 !important}.border-purple{border-color:#6f42c1 !important}.border-yellow{border-color:#d9d0a5 !important}.border-gray-light{border-color:#eaecef !important}.border-gray-dark{border-color:#d1d5da !important}.border-black-fade{border-color:rgba(27,31,35,0.15) !important}.border-white-fade{border-color:rgba(255,255,255,0.15) !important}.border-white-fade-15{border-color:rgba(255,255,255,0.15) !important}.border-white-fade-30{border-color:rgba(255,255,255,0.3) !important}.border-white-fade-50{border-color:rgba(255,255,255,0.5) !important}.border-white-fade-70{border-color:rgba(255,255,255,0.7) !important}.border-white-fade-85{border-color:rgba(255,255,255,0.85) !important}.box-shadow{box-shadow:0 1px 1px rgba(27,31,35,0.1) !important}.box-shadow-medium{box-shadow:0 1px 5px rgba(27,31,35,0.15) !important}.box-shadow-large{box-shadow:0 1px 15px rgba(27,31,35,0.15) !important}.box-shadow-extra-large{box-shadow:0 10px 50px rgba(27,31,35,0.07) !important}.box-shadow-none{box-shadow:none !important}.bg-white{background-color:#fff !important}.bg-blue{background-color:#0366d6 !important}.bg-blue-light{background-color:#f1f8ff !important}.bg-gray-dark{background-color:#24292e !important}.bg-gray{background-color:#f6f8fa !important}.bg-gray-light{background-color:#fafbfc !important}.bg-green{background-color:#28a745 !important}.bg-green-light{background-color:#dcffe4 !important}.bg-red{background-color:#d73a49 !important}.bg-red-light{background-color:#ffdce0 !important}.bg-yellow{background-color:#ffd33d !important}.bg-yellow-light{background-color:#fff5b1 !important}.bg-purple{background-color:#6f42c1 !important}.bg-purple-light{background-color:#f5f0ff !important}.bg-shade-gradient{background-image:linear-gradient(180deg, rgba(27,31,35,0.065), rgba(27,31,35,0)) !important;background-repeat:no-repeat !important;background-size:100% 200px !important}.text-blue{color:#0366d6 !important}.text-red{color:#cb2431 !important}.text-gray-light{color:#6a737d !important}.text-gray{color:#586069 !important}.text-gray-dark{color:#24292e !important}.text-green{color:#28a745 !important}.text-orange{color:#a04100 !important}.text-orange-light{color:#e36209 !important}.text-purple{color:#6f42c1 !important}.text-white{color:#fff !important}.text-inherit{color:inherit !important}.text-pending{color:#b08800 !important}.bg-pending{color:#dbab09 !important}.link-gray{color:#586069 !important}.link-gray:hover{color:#0366d6 !important}.link-gray-dark{color:#24292e !important}.link-gray-dark:hover{color:#0366d6 !important}.link-hover-blue:hover{color:#0366d6 !important}.muted-link{color:#586069 !important}.muted-link:hover{color:#0366d6 !important;text-decoration:none}.details-overlay[open]>summary::before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:block;cursor:default;content:" ";background:transparent}.details-overlay-dark[open]>summary::before{z-index:99;background:rgba(27,31,35,0.5)}.flex-row{flex-direction:row !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column{flex-direction:column !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-justify-start{justify-content:flex-start !important}.flex-justify-end{justify-content:flex-end !important}.flex-justify-center{justify-content:center !important}.flex-justify-between{justify-content:space-between !important}.flex-justify-around{justify-content:space-around !important}.flex-items-start{align-items:flex-start !important}.flex-items-end{align-items:flex-end !important}.flex-items-center{align-items:center !important}.flex-items-baseline{align-items:baseline !important}.flex-items-stretch{align-items:stretch !important}.flex-content-start{align-content:flex-start !important}.flex-content-end{align-content:flex-end !important}.flex-content-center{align-content:center !important}.flex-content-between{align-content:space-between !important}.flex-content-around{align-content:space-around !important}.flex-content-stretch{align-content:stretch !important}.flex-auto{flex:1 1 auto !important}.flex-shrink-0{flex-shrink:0 !important}.flex-self-auto{align-self:auto !important}.flex-self-start{align-self:flex-start !important}.flex-self-end{align-self:flex-end !important}.flex-self-center{align-self:center !important}.flex-self-baseline{align-self:baseline !important}.flex-self-stretch{align-self:stretch !important}.flex-item-equal{flex-grow:1;flex-basis:0}@media (min-width: 544px){.flex-sm-row{flex-direction:row !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column{flex-direction:column !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-justify-start{justify-content:flex-start !important}.flex-sm-justify-end{justify-content:flex-end !important}.flex-sm-justify-center{justify-content:center !important}.flex-sm-justify-between{justify-content:space-between !important}.flex-sm-justify-around{justify-content:space-around !important}.flex-sm-items-start{align-items:flex-start !important}.flex-sm-items-end{align-items:flex-end !important}.flex-sm-items-center{align-items:center !important}.flex-sm-items-baseline{align-items:baseline !important}.flex-sm-items-stretch{align-items:stretch !important}.flex-sm-content-start{align-content:flex-start !important}.flex-sm-content-end{align-content:flex-end !important}.flex-sm-content-center{align-content:center !important}.flex-sm-content-between{align-content:space-between !important}.flex-sm-content-around{align-content:space-around !important}.flex-sm-content-stretch{align-content:stretch !important}.flex-sm-auto{flex:1 1 auto !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-self-auto{align-self:auto !important}.flex-sm-self-start{align-self:flex-start !important}.flex-sm-self-end{align-self:flex-end !important}.flex-sm-self-center{align-self:center !important}.flex-sm-self-baseline{align-self:baseline !important}.flex-sm-self-stretch{align-self:stretch !important}.flex-sm-item-equal{flex-grow:1;flex-basis:0}}@media (min-width: 768px){.flex-md-row{flex-direction:row !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column{flex-direction:column !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-justify-start{justify-content:flex-start !important}.flex-md-justify-end{justify-content:flex-end !important}.flex-md-justify-center{justify-content:center !important}.flex-md-justify-between{justify-content:space-between !important}.flex-md-justify-around{justify-content:space-around !important}.flex-md-items-start{align-items:flex-start !important}.flex-md-items-end{align-items:flex-end !important}.flex-md-items-center{align-items:center !important}.flex-md-items-baseline{align-items:baseline !important}.flex-md-items-stretch{align-items:stretch !important}.flex-md-content-start{align-content:flex-start !important}.flex-md-content-end{align-content:flex-end !important}.flex-md-content-center{align-content:center !important}.flex-md-content-between{align-content:space-between !important}.flex-md-content-around{align-content:space-around !important}.flex-md-content-stretch{align-content:stretch !important}.flex-md-auto{flex:1 1 auto !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-self-auto{align-self:auto !important}.flex-md-self-start{align-self:flex-start !important}.flex-md-self-end{align-self:flex-end !important}.flex-md-self-center{align-self:center !important}.flex-md-self-baseline{align-self:baseline !important}.flex-md-self-stretch{align-self:stretch !important}.flex-md-item-equal{flex-grow:1;flex-basis:0}}@media (min-width: 1012px){.flex-lg-row{flex-direction:row !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column{flex-direction:column !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-justify-start{justify-content:flex-start !important}.flex-lg-justify-end{justify-content:flex-end !important}.flex-lg-justify-center{justify-content:center !important}.flex-lg-justify-between{justify-content:space-between !important}.flex-lg-justify-around{justify-content:space-around !important}.flex-lg-items-start{align-items:flex-start !important}.flex-lg-items-end{align-items:flex-end !important}.flex-lg-items-center{align-items:center !important}.flex-lg-items-baseline{align-items:baseline !important}.flex-lg-items-stretch{align-items:stretch !important}.flex-lg-content-start{align-content:flex-start !important}.flex-lg-content-end{align-content:flex-end !important}.flex-lg-content-center{align-content:center !important}.flex-lg-content-between{align-content:space-between !important}.flex-lg-content-around{align-content:space-around !important}.flex-lg-content-stretch{align-content:stretch !important}.flex-lg-auto{flex:1 1 auto !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-self-auto{align-self:auto !important}.flex-lg-self-start{align-self:flex-start !important}.flex-lg-self-end{align-self:flex-end !important}.flex-lg-self-center{align-self:center !important}.flex-lg-self-baseline{align-self:baseline !important}.flex-lg-self-stretch{align-self:stretch !important}.flex-lg-item-equal{flex-grow:1;flex-basis:0}}@media (min-width: 1280px){.flex-xl-row{flex-direction:row !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column{flex-direction:column !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-justify-start{justify-content:flex-start !important}.flex-xl-justify-end{justify-content:flex-end !important}.flex-xl-justify-center{justify-content:center !important}.flex-xl-justify-between{justify-content:space-between !important}.flex-xl-justify-around{justify-content:space-around !important}.flex-xl-items-start{align-items:flex-start !important}.flex-xl-items-end{align-items:flex-end !important}.flex-xl-items-center{align-items:center !important}.flex-xl-items-baseline{align-items:baseline !important}.flex-xl-items-stretch{align-items:stretch !important}.flex-xl-content-start{align-content:flex-start !important}.flex-xl-content-end{align-content:flex-end !important}.flex-xl-content-center{align-content:center !important}.flex-xl-content-between{align-content:space-between !important}.flex-xl-content-around{align-content:space-around !important}.flex-xl-content-stretch{align-content:stretch !important}.flex-xl-auto{flex:1 1 auto !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-self-auto{align-self:auto !important}.flex-xl-self-start{align-self:flex-start !important}.flex-xl-self-end{align-self:flex-end !important}.flex-xl-self-center{align-self:center !important}.flex-xl-self-baseline{align-self:baseline !important}.flex-xl-self-stretch{align-self:stretch !important}.flex-xl-item-equal{flex-grow:1;flex-basis:0}}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}@media (min-width: 544px){.position-sm-static{position:static !important}.position-sm-relative{position:relative !important}.position-sm-absolute{position:absolute !important}.position-sm-fixed{position:fixed !important}}@media (min-width: 768px){.position-md-static{position:static !important}.position-md-relative{position:relative !important}.position-md-absolute{position:absolute !important}.position-md-fixed{position:fixed !important}}@media (min-width: 1012px){.position-lg-static{position:static !important}.position-lg-relative{position:relative !important}.position-lg-absolute{position:absolute !important}.position-lg-fixed{position:fixed !important}}@media (min-width: 1280px){.position-xl-static{position:static !important}.position-xl-relative{position:relative !important}.position-xl-absolute{position:absolute !important}.position-xl-fixed{position:fixed !important}}.top-0{top:0 !important}.right-0{right:0 !important}.bottom-0{bottom:0 !important}.left-0{left:0 !important}.v-align-middle{vertical-align:middle !important}.v-align-top{vertical-align:top !important}.v-align-bottom{vertical-align:bottom !important}.v-align-text-top{vertical-align:text-top !important}.v-align-text-bottom{vertical-align:text-bottom !important}.v-align-baseline{vertical-align:baseline !important}.overflow-hidden{overflow:hidden !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-auto{overflow:auto !important}.overflow-x-auto{overflow-x:auto !important}.overflow-y-auto{overflow-y:auto !important}.overflow-scroll{overflow:scroll !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-scroll{overflow-y:scroll !important}.clearfix::before{display:table;content:""}.clearfix::after{display:table;clear:both;content:""}.float-left{float:left !important}.float-right{float:right !important}.float-none{float:none !important}@media (min-width: 544px){.float-sm-left{float:left !important}.float-sm-right{float:right !important}.float-sm-none{float:none !important}}@media (min-width: 768px){.float-md-left{float:left !important}.float-md-right{float:right !important}.float-md-none{float:none !important}}@media (min-width: 1012px){.float-lg-left{float:left !important}.float-lg-right{float:right !important}.float-lg-none{float:none !important}}@media (min-width: 1280px){.float-xl-left{float:left !important}.float-xl-right{float:right !important}.float-xl-none{float:none !important}}.width-fit{max-width:100% !important}.width-full{width:100% !important}.height-fit{max-height:100% !important}.height-full{height:100% !important}.min-width-0{min-width:0 !important}.direction-rtl{direction:rtl !important}.direction-ltr{direction:ltr !important}@media (min-width: 544px){.direction-sm-rtl{direction:rtl !important}.direction-sm-ltr{direction:ltr !important}}@media (min-width: 768px){.direction-md-rtl{direction:rtl !important}.direction-md-ltr{direction:ltr !important}}@media (min-width: 1012px){.direction-lg-rtl{direction:rtl !important}.direction-lg-ltr{direction:ltr !important}}@media (min-width: 1280px){.direction-xl-rtl{direction:rtl !important}.direction-xl-ltr{direction:ltr !important}}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:4px !important}.mt-1{margin-top:4px !important}.mr-1{margin-right:4px !important}.mb-1{margin-bottom:4px !important}.ml-1{margin-left:4px !important}.mt-n1{margin-top:-4px !important}.mr-n1{margin-right:-4px !important}.mb-n1{margin-bottom:-4px !important}.ml-n1{margin-left:-4px !important}.mx-1{margin-right:4px !important;margin-left:4px !important}.my-1{margin-top:4px !important;margin-bottom:4px !important}.m-2{margin:8px !important}.mt-2{margin-top:8px !important}.mr-2{margin-right:8px !important}.mb-2{margin-bottom:8px !important}.ml-2{margin-left:8px !important}.mt-n2{margin-top:-8px !important}.mr-n2{margin-right:-8px !important}.mb-n2{margin-bottom:-8px !important}.ml-n2{margin-left:-8px !important}.mx-2{margin-right:8px !important;margin-left:8px !important}.my-2{margin-top:8px !important;margin-bottom:8px !important}.m-3{margin:16px !important}.mt-3{margin-top:16px !important}.mr-3{margin-right:16px !important}.mb-3{margin-bottom:16px !important}.ml-3{margin-left:16px !important}.mt-n3{margin-top:-16px !important}.mr-n3{margin-right:-16px !important}.mb-n3{margin-bottom:-16px !important}.ml-n3{margin-left:-16px !important}.mx-3{margin-right:16px !important;margin-left:16px !important}.my-3{margin-top:16px !important;margin-bottom:16px !important}.m-4{margin:24px !important}.mt-4{margin-top:24px !important}.mr-4{margin-right:24px !important}.mb-4{margin-bottom:24px !important}.ml-4{margin-left:24px !important}.mt-n4{margin-top:-24px !important}.mr-n4{margin-right:-24px !important}.mb-n4{margin-bottom:-24px !important}.ml-n4{margin-left:-24px !important}.mx-4{margin-right:24px !important;margin-left:24px !important}.my-4{margin-top:24px !important;margin-bottom:24px !important}.m-5{margin:32px !important}.mt-5{margin-top:32px !important}.mr-5{margin-right:32px !important}.mb-5{margin-bottom:32px !important}.ml-5{margin-left:32px !important}.mt-n5{margin-top:-32px !important}.mr-n5{margin-right:-32px !important}.mb-n5{margin-bottom:-32px !important}.ml-n5{margin-left:-32px !important}.mx-5{margin-right:32px !important;margin-left:32px !important}.my-5{margin-top:32px !important;margin-bottom:32px !important}.m-6{margin:40px !important}.mt-6{margin-top:40px !important}.mr-6{margin-right:40px !important}.mb-6{margin-bottom:40px !important}.ml-6{margin-left:40px !important}.mt-n6{margin-top:-40px !important}.mr-n6{margin-right:-40px !important}.mb-n6{margin-bottom:-40px !important}.ml-n6{margin-left:-40px !important}.mx-6{margin-right:40px !important;margin-left:40px !important}.my-6{margin-top:40px !important;margin-bottom:40px !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}@media (min-width: 544px){.m-sm-0{margin:0 !important}.mt-sm-0{margin-top:0 !important}.mr-sm-0{margin-right:0 !important}.mb-sm-0{margin-bottom:0 !important}.ml-sm-0{margin-left:0 !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.m-sm-1{margin:4px !important}.mt-sm-1{margin-top:4px !important}.mr-sm-1{margin-right:4px !important}.mb-sm-1{margin-bottom:4px !important}.ml-sm-1{margin-left:4px !important}.mt-sm-n1{margin-top:-4px !important}.mr-sm-n1{margin-right:-4px !important}.mb-sm-n1{margin-bottom:-4px !important}.ml-sm-n1{margin-left:-4px !important}.mx-sm-1{margin-right:4px !important;margin-left:4px !important}.my-sm-1{margin-top:4px !important;margin-bottom:4px !important}.m-sm-2{margin:8px !important}.mt-sm-2{margin-top:8px !important}.mr-sm-2{margin-right:8px !important}.mb-sm-2{margin-bottom:8px !important}.ml-sm-2{margin-left:8px !important}.mt-sm-n2{margin-top:-8px !important}.mr-sm-n2{margin-right:-8px !important}.mb-sm-n2{margin-bottom:-8px !important}.ml-sm-n2{margin-left:-8px !important}.mx-sm-2{margin-right:8px !important;margin-left:8px !important}.my-sm-2{margin-top:8px !important;margin-bottom:8px !important}.m-sm-3{margin:16px !important}.mt-sm-3{margin-top:16px !important}.mr-sm-3{margin-right:16px !important}.mb-sm-3{margin-bottom:16px !important}.ml-sm-3{margin-left:16px !important}.mt-sm-n3{margin-top:-16px !important}.mr-sm-n3{margin-right:-16px !important}.mb-sm-n3{margin-bottom:-16px !important}.ml-sm-n3{margin-left:-16px !important}.mx-sm-3{margin-right:16px !important;margin-left:16px !important}.my-sm-3{margin-top:16px !important;margin-bottom:16px !important}.m-sm-4{margin:24px !important}.mt-sm-4{margin-top:24px !important}.mr-sm-4{margin-right:24px !important}.mb-sm-4{margin-bottom:24px !important}.ml-sm-4{margin-left:24px !important}.mt-sm-n4{margin-top:-24px !important}.mr-sm-n4{margin-right:-24px !important}.mb-sm-n4{margin-bottom:-24px !important}.ml-sm-n4{margin-left:-24px !important}.mx-sm-4{margin-right:24px !important;margin-left:24px !important}.my-sm-4{margin-top:24px !important;margin-bottom:24px !important}.m-sm-5{margin:32px !important}.mt-sm-5{margin-top:32px !important}.mr-sm-5{margin-right:32px !important}.mb-sm-5{margin-bottom:32px !important}.ml-sm-5{margin-left:32px !important}.mt-sm-n5{margin-top:-32px !important}.mr-sm-n5{margin-right:-32px !important}.mb-sm-n5{margin-bottom:-32px !important}.ml-sm-n5{margin-left:-32px !important}.mx-sm-5{margin-right:32px !important;margin-left:32px !important}.my-sm-5{margin-top:32px !important;margin-bottom:32px !important}.m-sm-6{margin:40px !important}.mt-sm-6{margin-top:40px !important}.mr-sm-6{margin-right:40px !important}.mb-sm-6{margin-bottom:40px !important}.ml-sm-6{margin-left:40px !important}.mt-sm-n6{margin-top:-40px !important}.mr-sm-n6{margin-right:-40px !important}.mb-sm-n6{margin-bottom:-40px !important}.ml-sm-n6{margin-left:-40px !important}.mx-sm-6{margin-right:40px !important;margin-left:40px !important}.my-sm-6{margin-top:40px !important;margin-bottom:40px !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}}@media (min-width: 768px){.m-md-0{margin:0 !important}.mt-md-0{margin-top:0 !important}.mr-md-0{margin-right:0 !important}.mb-md-0{margin-bottom:0 !important}.ml-md-0{margin-left:0 !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.m-md-1{margin:4px !important}.mt-md-1{margin-top:4px !important}.mr-md-1{margin-right:4px !important}.mb-md-1{margin-bottom:4px !important}.ml-md-1{margin-left:4px !important}.mt-md-n1{margin-top:-4px !important}.mr-md-n1{margin-right:-4px !important}.mb-md-n1{margin-bottom:-4px !important}.ml-md-n1{margin-left:-4px !important}.mx-md-1{margin-right:4px !important;margin-left:4px !important}.my-md-1{margin-top:4px !important;margin-bottom:4px !important}.m-md-2{margin:8px !important}.mt-md-2{margin-top:8px !important}.mr-md-2{margin-right:8px !important}.mb-md-2{margin-bottom:8px !important}.ml-md-2{margin-left:8px !important}.mt-md-n2{margin-top:-8px !important}.mr-md-n2{margin-right:-8px !important}.mb-md-n2{margin-bottom:-8px !important}.ml-md-n2{margin-left:-8px !important}.mx-md-2{margin-right:8px !important;margin-left:8px !important}.my-md-2{margin-top:8px !important;margin-bottom:8px !important}.m-md-3{margin:16px !important}.mt-md-3{margin-top:16px !important}.mr-md-3{margin-right:16px !important}.mb-md-3{margin-bottom:16px !important}.ml-md-3{margin-left:16px !important}.mt-md-n3{margin-top:-16px !important}.mr-md-n3{margin-right:-16px !important}.mb-md-n3{margin-bottom:-16px !important}.ml-md-n3{margin-left:-16px !important}.mx-md-3{margin-right:16px !important;margin-left:16px !important}.my-md-3{margin-top:16px !important;margin-bottom:16px !important}.m-md-4{margin:24px !important}.mt-md-4{margin-top:24px !important}.mr-md-4{margin-right:24px !important}.mb-md-4{margin-bottom:24px !important}.ml-md-4{margin-left:24px !important}.mt-md-n4{margin-top:-24px !important}.mr-md-n4{margin-right:-24px !important}.mb-md-n4{margin-bottom:-24px !important}.ml-md-n4{margin-left:-24px !important}.mx-md-4{margin-right:24px !important;margin-left:24px !important}.my-md-4{margin-top:24px !important;margin-bottom:24px !important}.m-md-5{margin:32px !important}.mt-md-5{margin-top:32px !important}.mr-md-5{margin-right:32px !important}.mb-md-5{margin-bottom:32px !important}.ml-md-5{margin-left:32px !important}.mt-md-n5{margin-top:-32px !important}.mr-md-n5{margin-right:-32px !important}.mb-md-n5{margin-bottom:-32px !important}.ml-md-n5{margin-left:-32px !important}.mx-md-5{margin-right:32px !important;margin-left:32px !important}.my-md-5{margin-top:32px !important;margin-bottom:32px !important}.m-md-6{margin:40px !important}.mt-md-6{margin-top:40px !important}.mr-md-6{margin-right:40px !important}.mb-md-6{margin-bottom:40px !important}.ml-md-6{margin-left:40px !important}.mt-md-n6{margin-top:-40px !important}.mr-md-n6{margin-right:-40px !important}.mb-md-n6{margin-bottom:-40px !important}.ml-md-n6{margin-left:-40px !important}.mx-md-6{margin-right:40px !important;margin-left:40px !important}.my-md-6{margin-top:40px !important;margin-bottom:40px !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}}@media (min-width: 1012px){.m-lg-0{margin:0 !important}.mt-lg-0{margin-top:0 !important}.mr-lg-0{margin-right:0 !important}.mb-lg-0{margin-bottom:0 !important}.ml-lg-0{margin-left:0 !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.m-lg-1{margin:4px !important}.mt-lg-1{margin-top:4px !important}.mr-lg-1{margin-right:4px !important}.mb-lg-1{margin-bottom:4px !important}.ml-lg-1{margin-left:4px !important}.mt-lg-n1{margin-top:-4px !important}.mr-lg-n1{margin-right:-4px !important}.mb-lg-n1{margin-bottom:-4px !important}.ml-lg-n1{margin-left:-4px !important}.mx-lg-1{margin-right:4px !important;margin-left:4px !important}.my-lg-1{margin-top:4px !important;margin-bottom:4px !important}.m-lg-2{margin:8px !important}.mt-lg-2{margin-top:8px !important}.mr-lg-2{margin-right:8px !important}.mb-lg-2{margin-bottom:8px !important}.ml-lg-2{margin-left:8px !important}.mt-lg-n2{margin-top:-8px !important}.mr-lg-n2{margin-right:-8px !important}.mb-lg-n2{margin-bottom:-8px !important}.ml-lg-n2{margin-left:-8px !important}.mx-lg-2{margin-right:8px !important;margin-left:8px !important}.my-lg-2{margin-top:8px !important;margin-bottom:8px !important}.m-lg-3{margin:16px !important}.mt-lg-3{margin-top:16px !important}.mr-lg-3{margin-right:16px !important}.mb-lg-3{margin-bottom:16px !important}.ml-lg-3{margin-left:16px !important}.mt-lg-n3{margin-top:-16px !important}.mr-lg-n3{margin-right:-16px !important}.mb-lg-n3{margin-bottom:-16px !important}.ml-lg-n3{margin-left:-16px !important}.mx-lg-3{margin-right:16px !important;margin-left:16px !important}.my-lg-3{margin-top:16px !important;margin-bottom:16px !important}.m-lg-4{margin:24px !important}.mt-lg-4{margin-top:24px !important}.mr-lg-4{margin-right:24px !important}.mb-lg-4{margin-bottom:24px !important}.ml-lg-4{margin-left:24px !important}.mt-lg-n4{margin-top:-24px !important}.mr-lg-n4{margin-right:-24px !important}.mb-lg-n4{margin-bottom:-24px !important}.ml-lg-n4{margin-left:-24px !important}.mx-lg-4{margin-right:24px !important;margin-left:24px !important}.my-lg-4{margin-top:24px !important;margin-bottom:24px !important}.m-lg-5{margin:32px !important}.mt-lg-5{margin-top:32px !important}.mr-lg-5{margin-right:32px !important}.mb-lg-5{margin-bottom:32px !important}.ml-lg-5{margin-left:32px !important}.mt-lg-n5{margin-top:-32px !important}.mr-lg-n5{margin-right:-32px !important}.mb-lg-n5{margin-bottom:-32px !important}.ml-lg-n5{margin-left:-32px !important}.mx-lg-5{margin-right:32px !important;margin-left:32px !important}.my-lg-5{margin-top:32px !important;margin-bottom:32px !important}.m-lg-6{margin:40px !important}.mt-lg-6{margin-top:40px !important}.mr-lg-6{margin-right:40px !important}.mb-lg-6{margin-bottom:40px !important}.ml-lg-6{margin-left:40px !important}.mt-lg-n6{margin-top:-40px !important}.mr-lg-n6{margin-right:-40px !important}.mb-lg-n6{margin-bottom:-40px !important}.ml-lg-n6{margin-left:-40px !important}.mx-lg-6{margin-right:40px !important;margin-left:40px !important}.my-lg-6{margin-top:40px !important;margin-bottom:40px !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}}@media (min-width: 1280px){.m-xl-0{margin:0 !important}.mt-xl-0{margin-top:0 !important}.mr-xl-0{margin-right:0 !important}.mb-xl-0{margin-bottom:0 !important}.ml-xl-0{margin-left:0 !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.m-xl-1{margin:4px !important}.mt-xl-1{margin-top:4px !important}.mr-xl-1{margin-right:4px !important}.mb-xl-1{margin-bottom:4px !important}.ml-xl-1{margin-left:4px !important}.mt-xl-n1{margin-top:-4px !important}.mr-xl-n1{margin-right:-4px !important}.mb-xl-n1{margin-bottom:-4px !important}.ml-xl-n1{margin-left:-4px !important}.mx-xl-1{margin-right:4px !important;margin-left:4px !important}.my-xl-1{margin-top:4px !important;margin-bottom:4px !important}.m-xl-2{margin:8px !important}.mt-xl-2{margin-top:8px !important}.mr-xl-2{margin-right:8px !important}.mb-xl-2{margin-bottom:8px !important}.ml-xl-2{margin-left:8px !important}.mt-xl-n2{margin-top:-8px !important}.mr-xl-n2{margin-right:-8px !important}.mb-xl-n2{margin-bottom:-8px !important}.ml-xl-n2{margin-left:-8px !important}.mx-xl-2{margin-right:8px !important;margin-left:8px !important}.my-xl-2{margin-top:8px !important;margin-bottom:8px !important}.m-xl-3{margin:16px !important}.mt-xl-3{margin-top:16px !important}.mr-xl-3{margin-right:16px !important}.mb-xl-3{margin-bottom:16px !important}.ml-xl-3{margin-left:16px !important}.mt-xl-n3{margin-top:-16px !important}.mr-xl-n3{margin-right:-16px !important}.mb-xl-n3{margin-bottom:-16px !important}.ml-xl-n3{margin-left:-16px !important}.mx-xl-3{margin-right:16px !important;margin-left:16px !important}.my-xl-3{margin-top:16px !important;margin-bottom:16px !important}.m-xl-4{margin:24px !important}.mt-xl-4{margin-top:24px !important}.mr-xl-4{margin-right:24px !important}.mb-xl-4{margin-bottom:24px !important}.ml-xl-4{margin-left:24px !important}.mt-xl-n4{margin-top:-24px !important}.mr-xl-n4{margin-right:-24px !important}.mb-xl-n4{margin-bottom:-24px !important}.ml-xl-n4{margin-left:-24px !important}.mx-xl-4{margin-right:24px !important;margin-left:24px !important}.my-xl-4{margin-top:24px !important;margin-bottom:24px !important}.m-xl-5{margin:32px !important}.mt-xl-5{margin-top:32px !important}.mr-xl-5{margin-right:32px !important}.mb-xl-5{margin-bottom:32px !important}.ml-xl-5{margin-left:32px !important}.mt-xl-n5{margin-top:-32px !important}.mr-xl-n5{margin-right:-32px !important}.mb-xl-n5{margin-bottom:-32px !important}.ml-xl-n5{margin-left:-32px !important}.mx-xl-5{margin-right:32px !important;margin-left:32px !important}.my-xl-5{margin-top:32px !important;margin-bottom:32px !important}.m-xl-6{margin:40px !important}.mt-xl-6{margin-top:40px !important}.mr-xl-6{margin-right:40px !important}.mb-xl-6{margin-bottom:40px !important}.ml-xl-6{margin-left:40px !important}.mt-xl-n6{margin-top:-40px !important}.mr-xl-n6{margin-right:-40px !important}.mb-xl-n6{margin-bottom:-40px !important}.ml-xl-n6{margin-left:-40px !important}.mx-xl-6{margin-right:40px !important;margin-left:40px !important}.my-xl-6{margin-top:40px !important;margin-bottom:40px !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-right:0 !important;padding-left:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:4px !important}.pt-1{padding-top:4px !important}.pr-1{padding-right:4px !important}.pb-1{padding-bottom:4px !important}.pl-1{padding-left:4px !important}.px-1{padding-right:4px !important;padding-left:4px !important}.py-1{padding-top:4px !important;padding-bottom:4px !important}.p-2{padding:8px !important}.pt-2{padding-top:8px !important}.pr-2{padding-right:8px !important}.pb-2{padding-bottom:8px !important}.pl-2{padding-left:8px !important}.px-2{padding-right:8px !important;padding-left:8px !important}.py-2{padding-top:8px !important;padding-bottom:8px !important}.p-3{padding:16px !important}.pt-3{padding-top:16px !important}.pr-3{padding-right:16px !important}.pb-3{padding-bottom:16px !important}.pl-3{padding-left:16px !important}.px-3{padding-right:16px !important;padding-left:16px !important}.py-3{padding-top:16px !important;padding-bottom:16px !important}.p-4{padding:24px !important}.pt-4{padding-top:24px !important}.pr-4{padding-right:24px !important}.pb-4{padding-bottom:24px !important}.pl-4{padding-left:24px !important}.px-4{padding-right:24px !important;padding-left:24px !important}.py-4{padding-top:24px !important;padding-bottom:24px !important}.p-5{padding:32px !important}.pt-5{padding-top:32px !important}.pr-5{padding-right:32px !important}.pb-5{padding-bottom:32px !important}.pl-5{padding-left:32px !important}.px-5{padding-right:32px !important;padding-left:32px !important}.py-5{padding-top:32px !important;padding-bottom:32px !important}.p-6{padding:40px !important}.pt-6{padding-top:40px !important}.pr-6{padding-right:40px !important}.pb-6{padding-bottom:40px !important}.pl-6{padding-left:40px !important}.px-6{padding-right:40px !important;padding-left:40px !important}.py-6{padding-top:40px !important;padding-bottom:40px !important}@media (min-width: 544px){.p-sm-0{padding:0 !important}.pt-sm-0{padding-top:0 !important}.pr-sm-0{padding-right:0 !important}.pb-sm-0{padding-bottom:0 !important}.pl-sm-0{padding-left:0 !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.p-sm-1{padding:4px !important}.pt-sm-1{padding-top:4px !important}.pr-sm-1{padding-right:4px !important}.pb-sm-1{padding-bottom:4px !important}.pl-sm-1{padding-left:4px !important}.px-sm-1{padding-right:4px !important;padding-left:4px !important}.py-sm-1{padding-top:4px !important;padding-bottom:4px !important}.p-sm-2{padding:8px !important}.pt-sm-2{padding-top:8px !important}.pr-sm-2{padding-right:8px !important}.pb-sm-2{padding-bottom:8px !important}.pl-sm-2{padding-left:8px !important}.px-sm-2{padding-right:8px !important;padding-left:8px !important}.py-sm-2{padding-top:8px !important;padding-bottom:8px !important}.p-sm-3{padding:16px !important}.pt-sm-3{padding-top:16px !important}.pr-sm-3{padding-right:16px !important}.pb-sm-3{padding-bottom:16px !important}.pl-sm-3{padding-left:16px !important}.px-sm-3{padding-right:16px !important;padding-left:16px !important}.py-sm-3{padding-top:16px !important;padding-bottom:16px !important}.p-sm-4{padding:24px !important}.pt-sm-4{padding-top:24px !important}.pr-sm-4{padding-right:24px !important}.pb-sm-4{padding-bottom:24px !important}.pl-sm-4{padding-left:24px !important}.px-sm-4{padding-right:24px !important;padding-left:24px !important}.py-sm-4{padding-top:24px !important;padding-bottom:24px !important}.p-sm-5{padding:32px !important}.pt-sm-5{padding-top:32px !important}.pr-sm-5{padding-right:32px !important}.pb-sm-5{padding-bottom:32px !important}.pl-sm-5{padding-left:32px !important}.px-sm-5{padding-right:32px !important;padding-left:32px !important}.py-sm-5{padding-top:32px !important;padding-bottom:32px !important}.p-sm-6{padding:40px !important}.pt-sm-6{padding-top:40px !important}.pr-sm-6{padding-right:40px !important}.pb-sm-6{padding-bottom:40px !important}.pl-sm-6{padding-left:40px !important}.px-sm-6{padding-right:40px !important;padding-left:40px !important}.py-sm-6{padding-top:40px !important;padding-bottom:40px !important}}@media (min-width: 768px){.p-md-0{padding:0 !important}.pt-md-0{padding-top:0 !important}.pr-md-0{padding-right:0 !important}.pb-md-0{padding-bottom:0 !important}.pl-md-0{padding-left:0 !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.p-md-1{padding:4px !important}.pt-md-1{padding-top:4px !important}.pr-md-1{padding-right:4px !important}.pb-md-1{padding-bottom:4px !important}.pl-md-1{padding-left:4px !important}.px-md-1{padding-right:4px !important;padding-left:4px !important}.py-md-1{padding-top:4px !important;padding-bottom:4px !important}.p-md-2{padding:8px !important}.pt-md-2{padding-top:8px !important}.pr-md-2{padding-right:8px !important}.pb-md-2{padding-bottom:8px !important}.pl-md-2{padding-left:8px !important}.px-md-2{padding-right:8px !important;padding-left:8px !important}.py-md-2{padding-top:8px !important;padding-bottom:8px !important}.p-md-3{padding:16px !important}.pt-md-3{padding-top:16px !important}.pr-md-3{padding-right:16px !important}.pb-md-3{padding-bottom:16px !important}.pl-md-3{padding-left:16px !important}.px-md-3{padding-right:16px !important;padding-left:16px !important}.py-md-3{padding-top:16px !important;padding-bottom:16px !important}.p-md-4{padding:24px !important}.pt-md-4{padding-top:24px !important}.pr-md-4{padding-right:24px !important}.pb-md-4{padding-bottom:24px !important}.pl-md-4{padding-left:24px !important}.px-md-4{padding-right:24px !important;padding-left:24px !important}.py-md-4{padding-top:24px !important;padding-bottom:24px !important}.p-md-5{padding:32px !important}.pt-md-5{padding-top:32px !important}.pr-md-5{padding-right:32px !important}.pb-md-5{padding-bottom:32px !important}.pl-md-5{padding-left:32px !important}.px-md-5{padding-right:32px !important;padding-left:32px !important}.py-md-5{padding-top:32px !important;padding-bottom:32px !important}.p-md-6{padding:40px !important}.pt-md-6{padding-top:40px !important}.pr-md-6{padding-right:40px !important}.pb-md-6{padding-bottom:40px !important}.pl-md-6{padding-left:40px !important}.px-md-6{padding-right:40px !important;padding-left:40px !important}.py-md-6{padding-top:40px !important;padding-bottom:40px !important}}@media (min-width: 1012px){.p-lg-0{padding:0 !important}.pt-lg-0{padding-top:0 !important}.pr-lg-0{padding-right:0 !important}.pb-lg-0{padding-bottom:0 !important}.pl-lg-0{padding-left:0 !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.p-lg-1{padding:4px !important}.pt-lg-1{padding-top:4px !important}.pr-lg-1{padding-right:4px !important}.pb-lg-1{padding-bottom:4px !important}.pl-lg-1{padding-left:4px !important}.px-lg-1{padding-right:4px !important;padding-left:4px !important}.py-lg-1{padding-top:4px !important;padding-bottom:4px !important}.p-lg-2{padding:8px !important}.pt-lg-2{padding-top:8px !important}.pr-lg-2{padding-right:8px !important}.pb-lg-2{padding-bottom:8px !important}.pl-lg-2{padding-left:8px !important}.px-lg-2{padding-right:8px !important;padding-left:8px !important}.py-lg-2{padding-top:8px !important;padding-bottom:8px !important}.p-lg-3{padding:16px !important}.pt-lg-3{padding-top:16px !important}.pr-lg-3{padding-right:16px !important}.pb-lg-3{padding-bottom:16px !important}.pl-lg-3{padding-left:16px !important}.px-lg-3{padding-right:16px !important;padding-left:16px !important}.py-lg-3{padding-top:16px !important;padding-bottom:16px !important}.p-lg-4{padding:24px !important}.pt-lg-4{padding-top:24px !important}.pr-lg-4{padding-right:24px !important}.pb-lg-4{padding-bottom:24px !important}.pl-lg-4{padding-left:24px !important}.px-lg-4{padding-right:24px !important;padding-left:24px !important}.py-lg-4{padding-top:24px !important;padding-bottom:24px !important}.p-lg-5{padding:32px !important}.pt-lg-5{padding-top:32px !important}.pr-lg-5{padding-right:32px !important}.pb-lg-5{padding-bottom:32px !important}.pl-lg-5{padding-left:32px !important}.px-lg-5{padding-right:32px !important;padding-left:32px !important}.py-lg-5{padding-top:32px !important;padding-bottom:32px !important}.p-lg-6{padding:40px !important}.pt-lg-6{padding-top:40px !important}.pr-lg-6{padding-right:40px !important}.pb-lg-6{padding-bottom:40px !important}.pl-lg-6{padding-left:40px !important}.px-lg-6{padding-right:40px !important;padding-left:40px !important}.py-lg-6{padding-top:40px !important;padding-bottom:40px !important}}@media (min-width: 1280px){.p-xl-0{padding:0 !important}.pt-xl-0{padding-top:0 !important}.pr-xl-0{padding-right:0 !important}.pb-xl-0{padding-bottom:0 !important}.pl-xl-0{padding-left:0 !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.p-xl-1{padding:4px !important}.pt-xl-1{padding-top:4px !important}.pr-xl-1{padding-right:4px !important}.pb-xl-1{padding-bottom:4px !important}.pl-xl-1{padding-left:4px !important}.px-xl-1{padding-right:4px !important;padding-left:4px !important}.py-xl-1{padding-top:4px !important;padding-bottom:4px !important}.p-xl-2{padding:8px !important}.pt-xl-2{padding-top:8px !important}.pr-xl-2{padding-right:8px !important}.pb-xl-2{padding-bottom:8px !important}.pl-xl-2{padding-left:8px !important}.px-xl-2{padding-right:8px !important;padding-left:8px !important}.py-xl-2{padding-top:8px !important;padding-bottom:8px !important}.p-xl-3{padding:16px !important}.pt-xl-3{padding-top:16px !important}.pr-xl-3{padding-right:16px !important}.pb-xl-3{padding-bottom:16px !important}.pl-xl-3{padding-left:16px !important}.px-xl-3{padding-right:16px !important;padding-left:16px !important}.py-xl-3{padding-top:16px !important;padding-bottom:16px !important}.p-xl-4{padding:24px !important}.pt-xl-4{padding-top:24px !important}.pr-xl-4{padding-right:24px !important}.pb-xl-4{padding-bottom:24px !important}.pl-xl-4{padding-left:24px !important}.px-xl-4{padding-right:24px !important;padding-left:24px !important}.py-xl-4{padding-top:24px !important;padding-bottom:24px !important}.p-xl-5{padding:32px !important}.pt-xl-5{padding-top:32px !important}.pr-xl-5{padding-right:32px !important}.pb-xl-5{padding-bottom:32px !important}.pl-xl-5{padding-left:32px !important}.px-xl-5{padding-right:32px !important;padding-left:32px !important}.py-xl-5{padding-top:32px !important;padding-bottom:32px !important}.p-xl-6{padding:40px !important}.pt-xl-6{padding-top:40px !important}.pr-xl-6{padding-right:40px !important}.pb-xl-6{padding-bottom:40px !important}.pl-xl-6{padding-left:40px !important}.px-xl-6{padding-right:40px !important;padding-left:40px !important}.py-xl-6{padding-top:40px !important;padding-bottom:40px !important}}.p-responsive{padding-right:16px !important;padding-left:16px !important}@media (min-width: 544px){.p-responsive{padding-right:40px !important;padding-left:40px !important}}@media (min-width: 1012px){.p-responsive{padding-right:16px !important;padding-left:16px !important}}.h1{font-size:26px !important}@media (min-width: 768px){.h1{font-size:32px !important}}.h2{font-size:22px !important}@media (min-width: 768px){.h2{font-size:24px !important}}.h3{font-size:18px !important}@media (min-width: 768px){.h3{font-size:20px !important}}.h4{font-size:16px !important}.h5{font-size:14px !important}.h6{font-size:12px !important}.h1,.h2,.h3,.h4,.h5,.h6{font-weight:600 !important}.f1{font-size:26px !important}@media (min-width: 768px){.f1{font-size:32px !important}}.f2{font-size:22px !important}@media (min-width: 768px){.f2{font-size:24px !important}}.f3{font-size:18px !important}@media (min-width: 768px){.f3{font-size:20px !important}}.f4{font-size:16px !important}@media (min-width: 768px){.f4{font-size:16px !important}}.f5{font-size:14px !important}.f6{font-size:12px !important}.f00-light{font-size:40px !important;font-weight:300 !important}@media (min-width: 768px){.f00-light{font-size:48px !important}}.f0-light{font-size:32px !important;font-weight:300 !important}@media (min-width: 768px){.f0-light{font-size:40px !important}}.f1-light{font-size:26px !important;font-weight:300 !important}@media (min-width: 768px){.f1-light{font-size:32px !important}}.f2-light{font-size:22px !important;font-weight:300 !important}@media (min-width: 768px){.f2-light{font-size:24px !important}}.f3-light{font-size:18px !important;font-weight:300 !important}@media (min-width: 768px){.f3-light{font-size:20px !important}}.text-small{font-size:12px !important}.lead{margin-bottom:30px;font-size:20px;font-weight:300;color:#586069}.lh-condensed-ultra{line-height:1 !important}.lh-condensed{line-height:1.25 !important}.lh-default{line-height:1.5 !important}.lh-0{line-height:0 !important}.text-right{text-align:right !important}.text-left{text-align:left !important}.text-center{text-align:center !important}@media (min-width: 544px){.text-sm-right{text-align:right !important}.text-sm-left{text-align:left !important}.text-sm-center{text-align:center !important}}@media (min-width: 768px){.text-md-right{text-align:right !important}.text-md-left{text-align:left !important}.text-md-center{text-align:center !important}}@media (min-width: 1012px){.text-lg-right{text-align:right !important}.text-lg-left{text-align:left !important}.text-lg-center{text-align:center !important}}@media (min-width: 1280px){.text-xl-right{text-align:right !important}.text-xl-left{text-align:left !important}.text-xl-center{text-align:center !important}}.text-normal{font-weight:400 !important}.text-bold{font-weight:600 !important}.text-italic{font-style:italic !important}.text-uppercase{text-transform:uppercase !important}.text-underline{text-decoration:underline !important}.no-underline{text-decoration:none !important}.no-wrap{white-space:nowrap !important}.ws-normal{white-space:normal !important}.wb-break-all{word-break:break-all !important}.text-emphasized{font-weight:600;color:#24292e}.list-style-none{list-style:none !important}.text-shadow-dark{text-shadow:0 1px 1px rgba(27,31,35,0.25),0 1px 25px rgba(27,31,35,0.75)}.text-shadow-light{text-shadow:0 1px 0 rgba(255,255,255,0.5)}.text-mono{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace !important}.user-select-none{-webkit-user-select:none !important;-moz-user-select:none !important;-ms-user-select:none !important;user-select:none !important}.d-block{display:block !important}.d-flex{display:flex !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.d-table{display:table !important}.d-table-cell{display:table-cell !important}@media (min-width: 544px){.d-sm-block{display:block !important}.d-sm-flex{display:flex !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.d-sm-table{display:table !important}.d-sm-table-cell{display:table-cell !important}}@media (min-width: 768px){.d-md-block{display:block !important}.d-md-flex{display:flex !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.d-md-table{display:table !important}.d-md-table-cell{display:table-cell !important}}@media (min-width: 1012px){.d-lg-block{display:block !important}.d-lg-flex{display:flex !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.d-lg-table{display:table !important}.d-lg-table-cell{display:table-cell !important}}@media (min-width: 1280px){.d-xl-block{display:block !important}.d-xl-flex{display:flex !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.d-xl-table{display:table !important}.d-xl-table-cell{display:table-cell !important}}.v-hidden{visibility:hidden !important}.v-visible{visibility:visible !important}@media (max-width: 543px){.hide-sm{display:none !important}}@media (min-width: 544px) and (max-width: 767px){.hide-md{display:none !important}}@media (min-width: 768px) and (max-width: 1011px){.hide-lg{display:none !important}}@media (min-width: 1012px){.hide-xl{display:none !important}}.table-fixed{table-layout:fixed !important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);word-wrap:normal;border:0}.show-on-focus{position:absolute;width:1px;height:1px;margin:0;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}.show-on-focus:focus{z-index:20;width:auto;height:auto;clip:auto}/*! + * Primer-product + * http://primer.github.io + * + * Released under MIT license. Copyright (c) 2019 GitHub Inc. + */.flash{position:relative;padding:16px;color:#032f62;background-color:#dbedff;border:1px solid rgba(27,31,35,0.15);border-radius:3px}.flash p:last-child{margin-bottom:0}.flash-messages{margin-bottom:24px}.flash-close{float:right;padding:16px;margin:-16px;color:inherit;text-align:center;cursor:pointer;background:none;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0.6}.flash-close:hover{opacity:1}.flash-action{float:right;margin-top:-3px;margin-left:24px}.flash-warn{color:#735c0f;background-color:#fffbdd;border-color:rgba(27,31,35,0.15)}.flash-error{color:#86181d;background-color:#ffdce0;border-color:rgba(27,31,35,0.15)}.flash-success{color:#165c26;background-color:#dcffe4;border-color:rgba(27,31,35,0.15)}.flash-full{margin-top:-1px;border-width:1px 0;border-radius:0}.warning{padding:.5em;margin-bottom:0.8em;font-weight:600;background-color:#fffbdd}.avatar{display:inline-block;overflow:hidden;line-height:1;vertical-align:middle;border-radius:3px}.avatar-small{border-radius:2px}.avatar-link{float:left;line-height:1}.avatar-group-item{display:inline-block;margin-bottom:3px}.avatar-parent-child{position:relative}.avatar-child{position:absolute;right:-15%;bottom:-9%;background-color:#fff;border-radius:2px;box-shadow:-2px -2px 0 rgba(255,255,255,0.8)}.AvatarStack{position:relative;min-width:26px;height:20px}.AvatarStack .AvatarStack-body{position:absolute}.AvatarStack.AvatarStack--two{min-width:36px}.AvatarStack.AvatarStack--three-plus{min-width:46px}.AvatarStack-body{display:flex;background:#fff}.AvatarStack-body .avatar{position:relative;z-index:2;display:flex;width:20px;height:20px;box-sizing:content-box;margin-right:-11px;background-color:#fff;border-right:1px solid #fff;border-radius:2px;transition:margin 0.1s ease-in-out}.AvatarStack-body .avatar:first-child{z-index:3}.AvatarStack-body .avatar:last-child{z-index:1;border-right:0}.AvatarStack-body .avatar img{border-radius:2px}.AvatarStack-body .avatar:nth-child(n+4){display:none;opacity:0}.AvatarStack-body:hover .avatar{margin-right:3px}.AvatarStack-body:hover .avatar:nth-child(n+4){display:flex;opacity:1}.AvatarStack-body:hover .avatar-more{display:none !important}.avatar.avatar-more{z-index:1;margin-right:0;background:#f6f8fa}.avatar.avatar-more::before,.avatar.avatar-more::after{position:absolute;display:block;height:20px;content:"";border-radius:2px;outline:1px solid #fff}.avatar.avatar-more::before{width:17px;background:#e1e4e8}.avatar.avatar-more::after{width:14px;background:#d1d5da}.AvatarStack--right .AvatarStack-body{right:0;flex-direction:row-reverse}.AvatarStack--right .AvatarStack-body:hover .avatar{margin-right:0;margin-left:3px}.AvatarStack--right .avatar.avatar-more{background:#d1d5da}.AvatarStack--right .avatar.avatar-more::before{width:5px}.AvatarStack--right .avatar.avatar-more::after{width:2px;background:#f6f8fa}.AvatarStack--right .avatar{margin-right:0;margin-left:-11px;border-right:0;border-left:1px solid #fff}.CircleBadge{display:flex;align-items:center;justify-content:center;background-color:#fff;border-radius:50%;box-shadow:0 1px 5px rgba(27,31,35,0.15)}.CircleBadge-icon{max-width:60% !important;height:auto !important;max-height:55% !important}.CircleBadge--small{width:56px;height:56px}.CircleBadge--medium{width:96px;height:96px}.CircleBadge--large{width:128px;height:128px}.DashedConnection{position:relative}.DashedConnection::before{position:absolute;top:50%;left:0;width:100%;content:"";border-bottom:2px dashed #e1e4e8}.DashedConnection .CircleBadge{position:relative}.blankslate{position:relative;padding:32px;text-align:center;background-color:#fafbfc;border:1px solid #e1e4e8;border-radius:3px;box-shadow:inset 0 0 10px rgba(27,31,35,0.05)}.blankslate code{padding:2px 5px 3px;font-size:14px;background:#fff;border:1px solid #eaecef;border-radius:3px}.blankslate-icon{margin-right:4px;margin-bottom:8px;margin-left:4px;color:#a3aab1}.blankslate-capped{border-radius:0 0 3px 3px}.blankslate-spacious{padding:80px 40px}.blankslate-narrow{max-width:485px;margin:0 auto}.blankslate-large h3{margin:16px 0;font-size:20px}.blankslate-large p{font-size:16px}.blankslate-clean-background{background:none;border:0;box-shadow:none}.branch-name{display:inline-block;padding:2px 6px;font:12px "SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;color:rgba(27,31,35,0.6);background-color:#eaf5ff;border-radius:3px}.branch-name .octicon{margin:1px -2px 0 0;color:#a8bbd0}a.branch-name{color:#0366d6}.labels{position:relative}.label,.Label{display:inline-block;padding:3px 4px;font-size:12px;font-weight:600;line-height:1;color:#fff;border-radius:2px;box-shadow:inset 0 -1px 0 rgba(27,31,35,0.12)}.label:hover,.Label:hover{text-decoration:none}.Label--gray{color:#586069;background-color:#eaecef}.Label--outline{margin-top:-1px;margin-bottom:-1px;font-weight:400;color:#586069;background-color:transparent;border:1px solid rgba(27,31,35,0.15);box-shadow:none}.Label--outline-green{color:#28a745;border:1px solid #34d058}.Label--gray-darker{background-color:#6a737d}.Label--orange{background-color:#d15704}.state,.State{display:inline-block;padding:4px 8px;font-weight:600;line-height:20px;color:#fff;text-align:center;background-color:#6a737d;border-radius:3px}.State--green{background-color:#2cbe4e}.State--purple{background-color:#6f42c1}.State--red{background-color:#cb2431}.State--small{padding:.125em 4px;font-size:12px}.State--small .octicon{width:1em}.Counter{display:inline-block;padding:2px 5px;font-size:12px;font-weight:600;line-height:1;color:#586069;background-color:rgba(27,31,35,0.08);border-radius:20px}.Counter:empty{visibility:hidden}.Counter--gray-light{color:#24292e;background-color:rgba(27,31,35,0.15)}.Counter--gray{color:#fff;background-color:#6a737d}.markdown-body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:16px;line-height:1.5;word-wrap:break-word}.markdown-body::before{display:table;content:""}.markdown-body::after{display:table;clear:both;content:""}.markdown-body>*:first-child{margin-top:0 !important}.markdown-body>*:last-child{margin-bottom:0 !important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:#cb2431}.markdown-body .anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.markdown-body .anchor:focus{outline:none}.markdown-body p,.markdown-body blockquote,.markdown-body ul,.markdown-body ol,.markdown-body dl,.markdown-body table,.markdown-body pre,.markdown-body details{margin-top:0;margin-bottom:16px}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-body blockquote{padding:0 1em;color:#6a737d;border-left:0.25em solid #dfe2e5}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body kbd{display:inline-block;padding:3px 5px;font-size:11px;line-height:10px;color:#444d56;vertical-align:middle;background-color:#fafbfc;border:solid 1px #c6cbd1;border-bottom-color:#959da5;border-radius:3px;box-shadow:inset 0 -1px 0 #959da5}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:#1b1f23;vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 tt,.markdown-body h1 code,.markdown-body h2 tt,.markdown-body h2 code,.markdown-body h3 tt,.markdown-body h3 code,.markdown-body h4 tt,.markdown-body h4 code,.markdown-body h5 tt,.markdown-body h5 code,.markdown-body h6 tt,.markdown-body h6 code{font-size:inherit}.markdown-body h1{padding-bottom:0.3em;font-size:2em;border-bottom:1px solid #eaecef}.markdown-body h2{padding-bottom:0.3em;font-size:1.5em;border-bottom:1px solid #eaecef}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:0.875em}.markdown-body h6{font-size:0.85em;color:#6a737d}.markdown-body ul,.markdown-body ol{padding-left:2em}.markdown-body ul.no-list,.markdown-body ol.no-list{padding:0;list-style-type:none}.markdown-body ul ul,.markdown-body ul ol,.markdown-body ol ol,.markdown-body ol ul{margin-top:0;margin-bottom:0}.markdown-body li{word-wrap:break-all}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body table{display:block;width:100%;overflow:auto}.markdown-body table th{font-weight:600}.markdown-body table th,.markdown-body table td{padding:6px 13px;border:1px solid #dfe2e5}.markdown-body table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-body table tr:nth-child(2n){background-color:#f6f8fa}.markdown-body table img{background-color:transparent}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:#fff}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid #dfe2e5}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{display:block;padding:5px 0 0;clear:both;color:#24292e}.markdown-body span.align-center{display:block;overflow:hidden;clear:both}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{display:block;overflow:hidden;clear:both}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{padding:0.2em 0.4em;margin:0;font-size:85%;background-color:rgba(27,31,35,0.05);border-radius:3px}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body pre{word-wrap:normal}.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:transparent;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;line-height:1.45;background-color:#f6f8fa;border-radius:3px}.markdown-body pre code,.markdown-body pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:#fff;border:0}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{font-weight:600;background:#f6f8fa;border-top:0}.Popover{position:absolute;z-index:100}.Popover-message{position:relative;width:232px;margin-right:auto;margin-left:auto}.Popover-message::before,.Popover-message::after{position:absolute;left:50%;display:inline-block;content:""}.Popover-message::before{top:-16px;margin-left:-9px;border:8px solid transparent;border-bottom-color:rgba(27,31,35,0.15)}.Popover-message::after{top:-14px;margin-left:-8px;border:7px solid transparent;border-bottom-color:#fff}.Popover-message--bottom::before,.Popover-message--bottom::after,.Popover-message--bottom-right::before,.Popover-message--bottom-right::after,.Popover-message--bottom-left::before,.Popover-message--bottom-left::after{top:auto;border-bottom-color:transparent}.Popover-message--bottom::before,.Popover-message--bottom-right::before,.Popover-message--bottom-left::before{bottom:-16px;border-top-color:rgba(27,31,35,0.15)}.Popover-message--bottom::after,.Popover-message--bottom-right::after,.Popover-message--bottom-left::after{bottom:-14px;border-top-color:#fff}.Popover-message--top-right,.Popover-message--bottom-right{right:-9px;margin-right:0}.Popover-message--top-right::before,.Popover-message--top-right::after,.Popover-message--bottom-right::before,.Popover-message--bottom-right::after{left:auto;margin-left:0}.Popover-message--top-right::before,.Popover-message--bottom-right::before{right:20px}.Popover-message--top-right::after,.Popover-message--bottom-right::after{right:21px}.Popover-message--top-left,.Popover-message--bottom-left{left:-9px;margin-left:0}.Popover-message--top-left::before,.Popover-message--top-left::after,.Popover-message--bottom-left::before,.Popover-message--bottom-left::after{left:24px;margin-left:0}.Popover-message--top-left::after,.Popover-message--bottom-left::after{left:25px}.Popover-message--right::before,.Popover-message--right::after,.Popover-message--right-top::before,.Popover-message--right-top::after,.Popover-message--right-bottom::before,.Popover-message--right-bottom::after,.Popover-message--left::before,.Popover-message--left::after,.Popover-message--left-top::before,.Popover-message--left-top::after,.Popover-message--left-bottom::before,.Popover-message--left-bottom::after{top:50%;left:auto;margin-left:0;border-bottom-color:transparent}.Popover-message--right::before,.Popover-message--right-top::before,.Popover-message--right-bottom::before,.Popover-message--left::before,.Popover-message--left-top::before,.Popover-message--left-bottom::before{margin-top:-9px}.Popover-message--right::after,.Popover-message--right-top::after,.Popover-message--right-bottom::after,.Popover-message--left::after,.Popover-message--left-top::after,.Popover-message--left-bottom::after{margin-top:-8px}.Popover-message--right::before,.Popover-message--right-top::before,.Popover-message--right-bottom::before{right:-16px;border-left-color:rgba(27,31,35,0.15)}.Popover-message--right::after,.Popover-message--right-top::after,.Popover-message--right-bottom::after{right:-14px;border-left-color:#fff}.Popover-message--left::before,.Popover-message--left-top::before,.Popover-message--left-bottom::before{left:-16px;border-right-color:rgba(27,31,35,0.15)}.Popover-message--left::after,.Popover-message--left-top::after,.Popover-message--left-bottom::after{left:-14px;border-right-color:#fff}.Popover-message--right-top::before,.Popover-message--right-top::after,.Popover-message--left-top::before,.Popover-message--left-top::after{top:24px}.Popover-message--right-bottom::before,.Popover-message--right-bottom::after,.Popover-message--left-bottom::before,.Popover-message--left-bottom::after{top:auto}.Popover-message--right-bottom::before,.Popover-message--left-bottom::before{bottom:16px}.Popover-message--right-bottom::after,.Popover-message--left-bottom::after{bottom:17px}@media (min-width: 544px){.Popover-message--large{min-width:320px}}.Progress{display:flex;height:8px;overflow:hidden;background-color:#e1e4e8;border-radius:3px}.Progress--large{height:10px}.Progress--small{height:5px}.Subhead{display:flex;padding-bottom:8px;margin-bottom:16px;border-bottom:1px #e1e4e8 solid;flex-flow:row wrap}.Subhead--spacious{margin-top:40px}.Subhead-heading{font-size:24px;font-weight:normal;flex:1 1 auto}.Subhead-heading--danger{font-weight:600;color:#cb2431}.Subhead-description{font-size:14px;color:#586069;flex:1 100%}.Subhead-actions{align-self:center;justify-content:flex-end}/*! + * Primer-marketing + * http://primer.github.io + * + * Released under MIT license. Copyright (c) 2019 GitHub Inc. + */@font-face{font-family:Inter;font-style:normal;font-weight:400;src:local("Inter"),local("Inter-Regular"),url("/primer-marketing-support/fonts/Inter-Regular.woff") format("woff")}@font-face{font-family:Inter;font-style:normal;font-weight:500;src:local("Inter Medium"),local("Inter-Medium"),url("/primer-marketing-support/fonts/Inter-Medium.woff") format("woff")}@font-face{font-family:Inter;font-style:normal;font-weight:400;src:local("Inter"),local("Inter-Regular"),url("/primer-marketing-support/fonts/Inter-Regular.woff") format("woff")}@font-face{font-family:Inter;font-style:normal;font-weight:500;src:local("Inter Medium"),local("Inter-Medium"),url("/primer-marketing-support/fonts/Inter-Medium.woff") format("woff")}.h000-mktg,.h00-mktg,.h0-mktg,.h1-mktg,.h2-mktg,.h3-mktg,.h4-mktg,.h5-mktg,.h6-mktg,.lead-mktg{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-weight:500}.h000-mktg{font-size:48px !important}@media (min-width: 768px){.h000-mktg{font-size:64px !important}}.h00-mktg{font-size:40px !important}@media (min-width: 768px){.h00-mktg{font-size:48px !important}}.h0-mktg{font-size:32px !important}@media (min-width: 768px){.h0-mktg{font-size:40px !important}}.h1-mktg{font-size:26px !important}@media (min-width: 768px){.h1-mktg{font-size:32px !important}}.h2-mktg{font-size:22px !important}@media (min-width: 768px){.h2-mktg{font-size:24px !important}}.h3-mktg{font-size:18px !important}@media (min-width: 768px){.h3-mktg{font-size:20px !important}}.h4-mktg{font-size:16px !important}.h5-mktg{font-size:14px !important}.h6-mktg{font-size:12px !important}.lead-mktg{font-size:20px;font-weight:400}.pullquote{padding-top:0;padding-bottom:0;padding-left:8px;margin-bottom:24px;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:16px;line-height:1.4;color:#586069;border-left:3px solid #e1e4e8}@media (min-width: 768px){.pullquote{padding-left:12px;margin-bottom:32px;margin-left:-15px;font-size:18px;line-height:1.5}}@font-face{font-family:Inter;font-style:normal;font-weight:400;src:local("Inter"),local("Inter-Regular"),url("/primer-marketing-support/fonts/Inter-Regular.woff") format("woff")}@font-face{font-family:Inter;font-style:normal;font-weight:500;src:local("Inter Medium"),local("Inter-Medium"),url("/primer-marketing-support/fonts/Inter-Medium.woff") format("woff")}.btn-mktg{display:inline-block;padding:16px 24px;font-size:14px;font-weight:500;color:#fff;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#1074e7;border:1px solid #1074e7;border-radius:3px;transition:.2s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn-mktg:hover{text-decoration:none;background-color:#0366d6;border-color:#0366d6}.btn-mktg:focus{outline:0;box-shadow:0 0 0 0.2em rgba(3,102,214,0.3)}.btn-mktg:disabled,.btn-mktg.disabled{pointer-events:none;cursor:default;opacity:0.65}.btn-primary-mktg{background-color:#2ebc4f;border-color:#2ebc4f}.btn-primary-mktg:hover{background-color:#28a745;border-color:#28a745}.btn-primary-mktg:focus{box-shadow:0 0 0 0.2em rgba(40,167,69,0.3)}.btn-large-mktg{padding:20px 32px;font-size:16px}.btn-outline-mktg{color:#1074e7;background-color:rgba(255,255,255,0);border-color:rgba(16,116,231,0.5)}.btn-outline-mktg:hover{color:#0366d6;text-decoration:none;background-color:rgba(255,255,255,0);border-color:#1074e7}.btn-transparent{color:#fff;background-color:transparent;background-image:none;border:1px solid rgba(255,255,255,0.5)}.btn-transparent:hover,.btn-transparent:active{color:#2f363d;background-color:#fff;background-image:none;border-color:#fff}@font-face{font-family:Inter;font-style:normal;font-weight:400;src:local("Inter"),local("Inter-Regular"),url("/primer-marketing-support/fonts/Inter-Regular.woff") format("woff")}@font-face{font-family:Inter;font-style:normal;font-weight:500;src:local("Inter Medium"),local("Inter-Medium"),url("/primer-marketing-support/fonts/Inter-Medium.woff") format("woff")}.grayscale{filter:grayscale(100%)}.top-0{top:0 !important}.right-0{right:0 !important}.bottom-0{bottom:0 !important}.left-0{left:0 !important}.top-n0{top:0 !important}.right-n0{right:0 !important}.bottom-n0{bottom:0 !important}.left-n0{left:0 !important}.top-1{top:4px !important}.right-1{right:4px !important}.bottom-1{bottom:4px !important}.left-1{left:4px !important}.top-n1{top:-4px !important}.right-n1{right:-4px !important}.bottom-n1{bottom:-4px !important}.left-n1{left:-4px !important}.top-2{top:8px !important}.right-2{right:8px !important}.bottom-2{bottom:8px !important}.left-2{left:8px !important}.top-n2{top:-8px !important}.right-n2{right:-8px !important}.bottom-n2{bottom:-8px !important}.left-n2{left:-8px !important}.top-3{top:16px !important}.right-3{right:16px !important}.bottom-3{bottom:16px !important}.left-3{left:16px !important}.top-n3{top:-16px !important}.right-n3{right:-16px !important}.bottom-n3{bottom:-16px !important}.left-n3{left:-16px !important}.top-4{top:24px !important}.right-4{right:24px !important}.bottom-4{bottom:24px !important}.left-4{left:24px !important}.top-n4{top:-24px !important}.right-n4{right:-24px !important}.bottom-n4{bottom:-24px !important}.left-n4{left:-24px !important}.top-5{top:32px !important}.right-5{right:32px !important}.bottom-5{bottom:32px !important}.left-5{left:32px !important}.top-n5{top:-32px !important}.right-n5{right:-32px !important}.bottom-n5{bottom:-32px !important}.left-n5{left:-32px !important}.top-6{top:40px !important}.right-6{right:40px !important}.bottom-6{bottom:40px !important}.left-6{left:40px !important}.top-n6{top:-40px !important}.right-n6{right:-40px !important}.bottom-n6{bottom:-40px !important}.left-n6{left:-40px !important}.top-7{top:48px !important}.right-7{right:48px !important}.bottom-7{bottom:48px !important}.left-7{left:48px !important}.top-n7{top:-48px !important}.right-n7{right:-48px !important}.bottom-n7{bottom:-48px !important}.left-n7{left:-48px !important}.top-8{top:64px !important}.right-8{right:64px !important}.bottom-8{bottom:64px !important}.left-8{left:64px !important}.top-n8{top:-64px !important}.right-n8{right:-64px !important}.bottom-n8{bottom:-64px !important}.left-n8{left:-64px !important}.top-9{top:80px !important}.right-9{right:80px !important}.bottom-9{bottom:80px !important}.left-9{left:80px !important}.top-n9{top:-80px !important}.right-n9{right:-80px !important}.bottom-n9{bottom:-80px !important}.left-n9{left:-80px !important}.top-10{top:96px !important}.right-10{right:96px !important}.bottom-10{bottom:96px !important}.left-10{left:96px !important}.top-n10{top:-96px !important}.right-n10{right:-96px !important}.bottom-n10{bottom:-96px !important}.left-n10{left:-96px !important}.top-11{top:112px !important}.right-11{right:112px !important}.bottom-11{bottom:112px !important}.left-11{left:112px !important}.top-n11{top:-112px !important}.right-n11{right:-112px !important}.bottom-n11{bottom:-112px !important}.left-n11{left:-112px !important}.top-12{top:128px !important}.right-12{right:128px !important}.bottom-12{bottom:128px !important}.left-12{left:128px !important}.top-n12{top:-128px !important}.right-n12{right:-128px !important}.bottom-n12{bottom:-128px !important}.left-n12{left:-128px !important}@media (min-width: 768px){.top-md-0{top:0 !important}.right-md-0{right:0 !important}.bottom-md-0{bottom:0 !important}.left-md-0{left:0 !important}.top-md-n0{top:0 !important}.right-md-n0{right:0 !important}.bottom-md-n0{bottom:0 !important}.left-md-n0{left:0 !important}.top-md-1{top:4px !important}.right-md-1{right:4px !important}.bottom-md-1{bottom:4px !important}.left-md-1{left:4px !important}.top-md-n1{top:-4px !important}.right-md-n1{right:-4px !important}.bottom-md-n1{bottom:-4px !important}.left-md-n1{left:-4px !important}.top-md-2{top:8px !important}.right-md-2{right:8px !important}.bottom-md-2{bottom:8px !important}.left-md-2{left:8px !important}.top-md-n2{top:-8px !important}.right-md-n2{right:-8px !important}.bottom-md-n2{bottom:-8px !important}.left-md-n2{left:-8px !important}.top-md-3{top:16px !important}.right-md-3{right:16px !important}.bottom-md-3{bottom:16px !important}.left-md-3{left:16px !important}.top-md-n3{top:-16px !important}.right-md-n3{right:-16px !important}.bottom-md-n3{bottom:-16px !important}.left-md-n3{left:-16px !important}.top-md-4{top:24px !important}.right-md-4{right:24px !important}.bottom-md-4{bottom:24px !important}.left-md-4{left:24px !important}.top-md-n4{top:-24px !important}.right-md-n4{right:-24px !important}.bottom-md-n4{bottom:-24px !important}.left-md-n4{left:-24px !important}.top-md-5{top:32px !important}.right-md-5{right:32px !important}.bottom-md-5{bottom:32px !important}.left-md-5{left:32px !important}.top-md-n5{top:-32px !important}.right-md-n5{right:-32px !important}.bottom-md-n5{bottom:-32px !important}.left-md-n5{left:-32px !important}.top-md-6{top:40px !important}.right-md-6{right:40px !important}.bottom-md-6{bottom:40px !important}.left-md-6{left:40px !important}.top-md-n6{top:-40px !important}.right-md-n6{right:-40px !important}.bottom-md-n6{bottom:-40px !important}.left-md-n6{left:-40px !important}.top-md-7{top:48px !important}.right-md-7{right:48px !important}.bottom-md-7{bottom:48px !important}.left-md-7{left:48px !important}.top-md-n7{top:-48px !important}.right-md-n7{right:-48px !important}.bottom-md-n7{bottom:-48px !important}.left-md-n7{left:-48px !important}.top-md-8{top:64px !important}.right-md-8{right:64px !important}.bottom-md-8{bottom:64px !important}.left-md-8{left:64px !important}.top-md-n8{top:-64px !important}.right-md-n8{right:-64px !important}.bottom-md-n8{bottom:-64px !important}.left-md-n8{left:-64px !important}.top-md-9{top:80px !important}.right-md-9{right:80px !important}.bottom-md-9{bottom:80px !important}.left-md-9{left:80px !important}.top-md-n9{top:-80px !important}.right-md-n9{right:-80px !important}.bottom-md-n9{bottom:-80px !important}.left-md-n9{left:-80px !important}.top-md-10{top:96px !important}.right-md-10{right:96px !important}.bottom-md-10{bottom:96px !important}.left-md-10{left:96px !important}.top-md-n10{top:-96px !important}.right-md-n10{right:-96px !important}.bottom-md-n10{bottom:-96px !important}.left-md-n10{left:-96px !important}.top-md-11{top:112px !important}.right-md-11{right:112px !important}.bottom-md-11{bottom:112px !important}.left-md-11{left:112px !important}.top-md-n11{top:-112px !important}.right-md-n11{right:-112px !important}.bottom-md-n11{bottom:-112px !important}.left-md-n11{left:-112px !important}.top-md-12{top:128px !important}.right-md-12{right:128px !important}.bottom-md-12{bottom:128px !important}.left-md-12{left:128px !important}.top-md-n12{top:-128px !important}.right-md-n12{right:-128px !important}.bottom-md-n12{bottom:-128px !important}.left-md-n12{left:-128px !important}}@media (min-width: 1012px){.top-lg-0{top:0 !important}.right-lg-0{right:0 !important}.bottom-lg-0{bottom:0 !important}.left-lg-0{left:0 !important}.top-lg-n0{top:0 !important}.right-lg-n0{right:0 !important}.bottom-lg-n0{bottom:0 !important}.left-lg-n0{left:0 !important}.top-lg-1{top:4px !important}.right-lg-1{right:4px !important}.bottom-lg-1{bottom:4px !important}.left-lg-1{left:4px !important}.top-lg-n1{top:-4px !important}.right-lg-n1{right:-4px !important}.bottom-lg-n1{bottom:-4px !important}.left-lg-n1{left:-4px !important}.top-lg-2{top:8px !important}.right-lg-2{right:8px !important}.bottom-lg-2{bottom:8px !important}.left-lg-2{left:8px !important}.top-lg-n2{top:-8px !important}.right-lg-n2{right:-8px !important}.bottom-lg-n2{bottom:-8px !important}.left-lg-n2{left:-8px !important}.top-lg-3{top:16px !important}.right-lg-3{right:16px !important}.bottom-lg-3{bottom:16px !important}.left-lg-3{left:16px !important}.top-lg-n3{top:-16px !important}.right-lg-n3{right:-16px !important}.bottom-lg-n3{bottom:-16px !important}.left-lg-n3{left:-16px !important}.top-lg-4{top:24px !important}.right-lg-4{right:24px !important}.bottom-lg-4{bottom:24px !important}.left-lg-4{left:24px !important}.top-lg-n4{top:-24px !important}.right-lg-n4{right:-24px !important}.bottom-lg-n4{bottom:-24px !important}.left-lg-n4{left:-24px !important}.top-lg-5{top:32px !important}.right-lg-5{right:32px !important}.bottom-lg-5{bottom:32px !important}.left-lg-5{left:32px !important}.top-lg-n5{top:-32px !important}.right-lg-n5{right:-32px !important}.bottom-lg-n5{bottom:-32px !important}.left-lg-n5{left:-32px !important}.top-lg-6{top:40px !important}.right-lg-6{right:40px !important}.bottom-lg-6{bottom:40px !important}.left-lg-6{left:40px !important}.top-lg-n6{top:-40px !important}.right-lg-n6{right:-40px !important}.bottom-lg-n6{bottom:-40px !important}.left-lg-n6{left:-40px !important}.top-lg-7{top:48px !important}.right-lg-7{right:48px !important}.bottom-lg-7{bottom:48px !important}.left-lg-7{left:48px !important}.top-lg-n7{top:-48px !important}.right-lg-n7{right:-48px !important}.bottom-lg-n7{bottom:-48px !important}.left-lg-n7{left:-48px !important}.top-lg-8{top:64px !important}.right-lg-8{right:64px !important}.bottom-lg-8{bottom:64px !important}.left-lg-8{left:64px !important}.top-lg-n8{top:-64px !important}.right-lg-n8{right:-64px !important}.bottom-lg-n8{bottom:-64px !important}.left-lg-n8{left:-64px !important}.top-lg-9{top:80px !important}.right-lg-9{right:80px !important}.bottom-lg-9{bottom:80px !important}.left-lg-9{left:80px !important}.top-lg-n9{top:-80px !important}.right-lg-n9{right:-80px !important}.bottom-lg-n9{bottom:-80px !important}.left-lg-n9{left:-80px !important}.top-lg-10{top:96px !important}.right-lg-10{right:96px !important}.bottom-lg-10{bottom:96px !important}.left-lg-10{left:96px !important}.top-lg-n10{top:-96px !important}.right-lg-n10{right:-96px !important}.bottom-lg-n10{bottom:-96px !important}.left-lg-n10{left:-96px !important}.top-lg-11{top:112px !important}.right-lg-11{right:112px !important}.bottom-lg-11{bottom:112px !important}.left-lg-11{left:112px !important}.top-lg-n11{top:-112px !important}.right-lg-n11{right:-112px !important}.bottom-lg-n11{bottom:-112px !important}.left-lg-n11{left:-112px !important}.top-lg-12{top:128px !important}.right-lg-12{right:128px !important}.bottom-lg-12{bottom:128px !important}.left-lg-12{left:128px !important}.top-lg-n12{top:-128px !important}.right-lg-n12{right:-128px !important}.bottom-lg-n12{bottom:-128px !important}.left-lg-n12{left:-128px !important}}.offset-n1{margin-left:-8.33333%}.offset-n2{margin-left:-16.66667%}.offset-n3{margin-left:-25%}.offset-n4{margin-left:-33.33333%}.offset-n5{margin-left:-41.66667%}.offset-n6{margin-left:-50%}.offset-n7{margin-left:-58.33333%}@media (min-width: 544px){.offset-sm-n1{margin-left:-8.33333%}.offset-sm-n2{margin-left:-16.66667%}.offset-sm-n3{margin-left:-25%}.offset-sm-n4{margin-left:-33.33333%}.offset-sm-n5{margin-left:-41.66667%}.offset-sm-n6{margin-left:-50%}.offset-sm-n7{margin-left:-58.33333%}}@media (min-width: 768px){.offset-md-n1{margin-left:-8.33333%}.offset-md-n2{margin-left:-16.66667%}.offset-md-n3{margin-left:-25%}.offset-md-n4{margin-left:-33.33333%}.offset-md-n5{margin-left:-41.66667%}.offset-md-n6{margin-left:-50%}.offset-md-n7{margin-left:-58.33333%}}@media (min-width: 1012px){.offset-lg-n1{margin-left:-8.33333%}.offset-lg-n2{margin-left:-16.66667%}.offset-lg-n3{margin-left:-25%}.offset-lg-n4{margin-left:-33.33333%}.offset-lg-n5{margin-left:-41.66667%}.offset-lg-n6{margin-left:-50%}.offset-lg-n7{margin-left:-58.33333%}}@media (min-width: 1280px){.offset-xl-n1{margin-left:-8.33333%}.offset-xl-n2{margin-left:-16.66667%}.offset-xl-n3{margin-left:-25%}.offset-xl-n4{margin-left:-33.33333%}.offset-xl-n5{margin-left:-41.66667%}.offset-xl-n6{margin-left:-50%}.offset-xl-n7{margin-left:-58.33333%}}.mt-7{margin-top:48px !important}.mb-7{margin-bottom:48px !important}.my-7{margin-top:48px !important;margin-bottom:48px !important}.mt-8{margin-top:64px !important}.mb-8{margin-bottom:64px !important}.my-8{margin-top:64px !important;margin-bottom:64px !important}.mt-9{margin-top:80px !important}.mb-9{margin-bottom:80px !important}.my-9{margin-top:80px !important;margin-bottom:80px !important}.mt-10{margin-top:96px !important}.mb-10{margin-bottom:96px !important}.my-10{margin-top:96px !important;margin-bottom:96px !important}.mt-11{margin-top:112px !important}.mb-11{margin-bottom:112px !important}.my-11{margin-top:112px !important;margin-bottom:112px !important}.mt-12{margin-top:128px !important}.mb-12{margin-bottom:128px !important}.my-12{margin-top:128px !important;margin-bottom:128px !important}@media (min-width: 544px){.mt-sm-7{margin-top:48px !important}.mb-sm-7{margin-bottom:48px !important}.my-sm-7{margin-top:48px !important;margin-bottom:48px !important}.mt-sm-8{margin-top:64px !important}.mb-sm-8{margin-bottom:64px !important}.my-sm-8{margin-top:64px !important;margin-bottom:64px !important}.mt-sm-9{margin-top:80px !important}.mb-sm-9{margin-bottom:80px !important}.my-sm-9{margin-top:80px !important;margin-bottom:80px !important}.mt-sm-10{margin-top:96px !important}.mb-sm-10{margin-bottom:96px !important}.my-sm-10{margin-top:96px !important;margin-bottom:96px !important}.mt-sm-11{margin-top:112px !important}.mb-sm-11{margin-bottom:112px !important}.my-sm-11{margin-top:112px !important;margin-bottom:112px !important}.mt-sm-12{margin-top:128px !important}.mb-sm-12{margin-bottom:128px !important}.my-sm-12{margin-top:128px !important;margin-bottom:128px !important}}@media (min-width: 768px){.mt-md-7{margin-top:48px !important}.mb-md-7{margin-bottom:48px !important}.my-md-7{margin-top:48px !important;margin-bottom:48px !important}.mt-md-8{margin-top:64px !important}.mb-md-8{margin-bottom:64px !important}.my-md-8{margin-top:64px !important;margin-bottom:64px !important}.mt-md-9{margin-top:80px !important}.mb-md-9{margin-bottom:80px !important}.my-md-9{margin-top:80px !important;margin-bottom:80px !important}.mt-md-10{margin-top:96px !important}.mb-md-10{margin-bottom:96px !important}.my-md-10{margin-top:96px !important;margin-bottom:96px !important}.mt-md-11{margin-top:112px !important}.mb-md-11{margin-bottom:112px !important}.my-md-11{margin-top:112px !important;margin-bottom:112px !important}.mt-md-12{margin-top:128px !important}.mb-md-12{margin-bottom:128px !important}.my-md-12{margin-top:128px !important;margin-bottom:128px !important}}@media (min-width: 1012px){.mt-lg-7{margin-top:48px !important}.mb-lg-7{margin-bottom:48px !important}.my-lg-7{margin-top:48px !important;margin-bottom:48px !important}.mt-lg-8{margin-top:64px !important}.mb-lg-8{margin-bottom:64px !important}.my-lg-8{margin-top:64px !important;margin-bottom:64px !important}.mt-lg-9{margin-top:80px !important}.mb-lg-9{margin-bottom:80px !important}.my-lg-9{margin-top:80px !important;margin-bottom:80px !important}.mt-lg-10{margin-top:96px !important}.mb-lg-10{margin-bottom:96px !important}.my-lg-10{margin-top:96px !important;margin-bottom:96px !important}.mt-lg-11{margin-top:112px !important}.mb-lg-11{margin-bottom:112px !important}.my-lg-11{margin-top:112px !important;margin-bottom:112px !important}.mt-lg-12{margin-top:128px !important}.mb-lg-12{margin-bottom:128px !important}.my-lg-12{margin-top:128px !important;margin-bottom:128px !important}}@media (min-width: 1280px){.mt-xl-7{margin-top:48px !important}.mb-xl-7{margin-bottom:48px !important}.my-xl-7{margin-top:48px !important;margin-bottom:48px !important}.mt-xl-8{margin-top:64px !important}.mb-xl-8{margin-bottom:64px !important}.my-xl-8{margin-top:64px !important;margin-bottom:64px !important}.mt-xl-9{margin-top:80px !important}.mb-xl-9{margin-bottom:80px !important}.my-xl-9{margin-top:80px !important;margin-bottom:80px !important}.mt-xl-10{margin-top:96px !important}.mb-xl-10{margin-bottom:96px !important}.my-xl-10{margin-top:96px !important;margin-bottom:96px !important}.mt-xl-11{margin-top:112px !important}.mb-xl-11{margin-bottom:112px !important}.my-xl-11{margin-top:112px !important;margin-bottom:112px !important}.mt-xl-12{margin-top:128px !important}.mb-xl-12{margin-bottom:128px !important}.my-xl-12{margin-top:128px !important;margin-bottom:128px !important}}.p-7{padding:48px !important}.pt-7{padding-top:48px !important}.pr-7{padding-right:48px !important}.pb-7{padding-bottom:48px !important}.pl-7{padding-left:48px !important}.py-7{padding-top:48px !important;padding-bottom:48px !important}.p-8{padding:64px !important}.pt-8{padding-top:64px !important}.pr-8{padding-right:64px !important}.pb-8{padding-bottom:64px !important}.pl-8{padding-left:64px !important}.py-8{padding-top:64px !important;padding-bottom:64px !important}.p-9{padding:80px !important}.pt-9{padding-top:80px !important}.pr-9{padding-right:80px !important}.pb-9{padding-bottom:80px !important}.pl-9{padding-left:80px !important}.py-9{padding-top:80px !important;padding-bottom:80px !important}.p-10{padding:96px !important}.pt-10{padding-top:96px !important}.pr-10{padding-right:96px !important}.pb-10{padding-bottom:96px !important}.pl-10{padding-left:96px !important}.py-10{padding-top:96px !important;padding-bottom:96px !important}.p-11{padding:112px !important}.pt-11{padding-top:112px !important}.pr-11{padding-right:112px !important}.pb-11{padding-bottom:112px !important}.pl-11{padding-left:112px !important}.py-11{padding-top:112px !important;padding-bottom:112px !important}.p-12{padding:128px !important}.pt-12{padding-top:128px !important}.pr-12{padding-right:128px !important}.pb-12{padding-bottom:128px !important}.pl-12{padding-left:128px !important}.py-12{padding-top:128px !important;padding-bottom:128px !important}@media (min-width: 544px){.p-sm-7{padding:48px !important}.pt-sm-7{padding-top:48px !important}.pr-sm-7{padding-right:48px !important}.pb-sm-7{padding-bottom:48px !important}.pl-sm-7{padding-left:48px !important}.py-sm-7{padding-top:48px !important;padding-bottom:48px !important}.p-sm-8{padding:64px !important}.pt-sm-8{padding-top:64px !important}.pr-sm-8{padding-right:64px !important}.pb-sm-8{padding-bottom:64px !important}.pl-sm-8{padding-left:64px !important}.py-sm-8{padding-top:64px !important;padding-bottom:64px !important}.p-sm-9{padding:80px !important}.pt-sm-9{padding-top:80px !important}.pr-sm-9{padding-right:80px !important}.pb-sm-9{padding-bottom:80px !important}.pl-sm-9{padding-left:80px !important}.py-sm-9{padding-top:80px !important;padding-bottom:80px !important}.p-sm-10{padding:96px !important}.pt-sm-10{padding-top:96px !important}.pr-sm-10{padding-right:96px !important}.pb-sm-10{padding-bottom:96px !important}.pl-sm-10{padding-left:96px !important}.py-sm-10{padding-top:96px !important;padding-bottom:96px !important}.p-sm-11{padding:112px !important}.pt-sm-11{padding-top:112px !important}.pr-sm-11{padding-right:112px !important}.pb-sm-11{padding-bottom:112px !important}.pl-sm-11{padding-left:112px !important}.py-sm-11{padding-top:112px !important;padding-bottom:112px !important}.p-sm-12{padding:128px !important}.pt-sm-12{padding-top:128px !important}.pr-sm-12{padding-right:128px !important}.pb-sm-12{padding-bottom:128px !important}.pl-sm-12{padding-left:128px !important}.py-sm-12{padding-top:128px !important;padding-bottom:128px !important}}@media (min-width: 768px){.p-md-7{padding:48px !important}.pt-md-7{padding-top:48px !important}.pr-md-7{padding-right:48px !important}.pb-md-7{padding-bottom:48px !important}.pl-md-7{padding-left:48px !important}.py-md-7{padding-top:48px !important;padding-bottom:48px !important}.p-md-8{padding:64px !important}.pt-md-8{padding-top:64px !important}.pr-md-8{padding-right:64px !important}.pb-md-8{padding-bottom:64px !important}.pl-md-8{padding-left:64px !important}.py-md-8{padding-top:64px !important;padding-bottom:64px !important}.p-md-9{padding:80px !important}.pt-md-9{padding-top:80px !important}.pr-md-9{padding-right:80px !important}.pb-md-9{padding-bottom:80px !important}.pl-md-9{padding-left:80px !important}.py-md-9{padding-top:80px !important;padding-bottom:80px !important}.p-md-10{padding:96px !important}.pt-md-10{padding-top:96px !important}.pr-md-10{padding-right:96px !important}.pb-md-10{padding-bottom:96px !important}.pl-md-10{padding-left:96px !important}.py-md-10{padding-top:96px !important;padding-bottom:96px !important}.p-md-11{padding:112px !important}.pt-md-11{padding-top:112px !important}.pr-md-11{padding-right:112px !important}.pb-md-11{padding-bottom:112px !important}.pl-md-11{padding-left:112px !important}.py-md-11{padding-top:112px !important;padding-bottom:112px !important}.p-md-12{padding:128px !important}.pt-md-12{padding-top:128px !important}.pr-md-12{padding-right:128px !important}.pb-md-12{padding-bottom:128px !important}.pl-md-12{padding-left:128px !important}.py-md-12{padding-top:128px !important;padding-bottom:128px !important}}@media (min-width: 1012px){.p-lg-7{padding:48px !important}.pt-lg-7{padding-top:48px !important}.pr-lg-7{padding-right:48px !important}.pb-lg-7{padding-bottom:48px !important}.pl-lg-7{padding-left:48px !important}.py-lg-7{padding-top:48px !important;padding-bottom:48px !important}.p-lg-8{padding:64px !important}.pt-lg-8{padding-top:64px !important}.pr-lg-8{padding-right:64px !important}.pb-lg-8{padding-bottom:64px !important}.pl-lg-8{padding-left:64px !important}.py-lg-8{padding-top:64px !important;padding-bottom:64px !important}.p-lg-9{padding:80px !important}.pt-lg-9{padding-top:80px !important}.pr-lg-9{padding-right:80px !important}.pb-lg-9{padding-bottom:80px !important}.pl-lg-9{padding-left:80px !important}.py-lg-9{padding-top:80px !important;padding-bottom:80px !important}.p-lg-10{padding:96px !important}.pt-lg-10{padding-top:96px !important}.pr-lg-10{padding-right:96px !important}.pb-lg-10{padding-bottom:96px !important}.pl-lg-10{padding-left:96px !important}.py-lg-10{padding-top:96px !important;padding-bottom:96px !important}.p-lg-11{padding:112px !important}.pt-lg-11{padding-top:112px !important}.pr-lg-11{padding-right:112px !important}.pb-lg-11{padding-bottom:112px !important}.pl-lg-11{padding-left:112px !important}.py-lg-11{padding-top:112px !important;padding-bottom:112px !important}.p-lg-12{padding:128px !important}.pt-lg-12{padding-top:128px !important}.pr-lg-12{padding-right:128px !important}.pb-lg-12{padding-bottom:128px !important}.pl-lg-12{padding-left:128px !important}.py-lg-12{padding-top:128px !important;padding-bottom:128px !important}}@media (min-width: 1280px){.p-xl-7{padding:48px !important}.pt-xl-7{padding-top:48px !important}.pr-xl-7{padding-right:48px !important}.pb-xl-7{padding-bottom:48px !important}.pl-xl-7{padding-left:48px !important}.py-xl-7{padding-top:48px !important;padding-bottom:48px !important}.p-xl-8{padding:64px !important}.pt-xl-8{padding-top:64px !important}.pr-xl-8{padding-right:64px !important}.pb-xl-8{padding-bottom:64px !important}.pl-xl-8{padding-left:64px !important}.py-xl-8{padding-top:64px !important;padding-bottom:64px !important}.p-xl-9{padding:80px !important}.pt-xl-9{padding-top:80px !important}.pr-xl-9{padding-right:80px !important}.pb-xl-9{padding-bottom:80px !important}.pl-xl-9{padding-left:80px !important}.py-xl-9{padding-top:80px !important;padding-bottom:80px !important}.p-xl-10{padding:96px !important}.pt-xl-10{padding-top:96px !important}.pr-xl-10{padding-right:96px !important}.pb-xl-10{padding-bottom:96px !important}.pl-xl-10{padding-left:96px !important}.py-xl-10{padding-top:96px !important;padding-bottom:96px !important}.p-xl-11{padding:112px !important}.pt-xl-11{padding-top:112px !important}.pr-xl-11{padding-right:112px !important}.pb-xl-11{padding-bottom:112px !important}.pl-xl-11{padding-left:112px !important}.py-xl-11{padding-top:112px !important;padding-bottom:112px !important}.p-xl-12{padding:128px !important}.pt-xl-12{padding-top:128px !important}.pr-xl-12{padding-right:128px !important}.pb-xl-12{padding-bottom:128px !important}.pl-xl-12{padding-left:128px !important}.py-xl-12{padding-top:128px !important;padding-bottom:128px !important}} + +/*# sourceMappingURL=primer.css.map */ \ No newline at end of file diff --git a/lib/gollum/public/gollum/stylesheets/tables.scss b/lib/gollum/public/gollum/stylesheets/tables.scss new file mode 100644 index 00000000..e468072b --- /dev/null +++ b/lib/gollum/public/gollum/stylesheets/tables.scss @@ -0,0 +1,42 @@ +@import "_base", "_breakpoint"; + +/* @section history */ + + +.history #footer { + margin-bottom: 7em; +} + +.overview { + border:none; +} + +/* @section compare */ +.compare { + + + .data { + + table { + + tr td { + font-family: $font-console; + line-height: 1.5em; + + & + td + td { + width: 100%; + } + + &.line_numbers { + border-right: 1px solid #999; + color: #999; + padding: 0 0 0 0.5em; + } + } + } + + } + + +} + diff --git a/lib/gollum/public/gollum/stylesheets/template.scss b/lib/gollum/public/gollum/stylesheets/template.scss index 43980912..f444c135 100644 --- a/lib/gollum/public/gollum/stylesheets/template.scss +++ b/lib/gollum/public/gollum/stylesheets/template.scss @@ -134,17 +134,17 @@ a { h6:before {counter-increment: h6; content: counter(h1, var(--header-enum-style)) "." counter(h2, var(--header-enum-style)) "." counter(h3, var(--header-enum-style)) "." counter(h4, var(--header-enum-style)) "." counter(h5, var(--header-enum-style)) "." counter(h6, var(--header-enum-style)) ". ";} } +#footer { + margin-bottom: 7em; +} + .markdown-body { - padding: 1em; + padding: 1em 1em 1em 0; font-size: 15px; line-height: 1.7; overflow: hidden; word-wrap: break-word; - - @include desktop-breakpoint { - padding: 30px; - } - + a { &.absent { color: $red; @@ -490,7 +490,7 @@ a { /* Table of contents */ .toc { - background-color: #F7F7F7; + background-color: white; border: $border-standard; padding: 5px 10px; margin: 0; @@ -515,7 +515,7 @@ a { > ul { margin-left: 10px; - font-size: 17px; + font-size: 15px; } } diff --git a/lib/gollum/templates/compare.mustache b/lib/gollum/templates/compare.mustache index 11ac42a5..03934bc9 100644 --- a/lib/gollum/templates/compare.mustache +++ b/lib/gollum/templates/compare.mustache @@ -1,69 +1,52 @@
- + {{#message}} -

{{message}}

+

{{message}}

{{/message}} -
+
- {{#show_revert}} - - {{/show_revert}} +
+ {{#show_revert}} + {{#allow_editing}} +
+ + + Back to Page History + + {{/allow_editing}} + {{/show_revert}} +
-
- - {{#lines}} - - - - - - {{/lines}} -
{{ldln}}{{rdln}} -
{{line}}
-
-
-
- -
+
+
{{path}} Comparing {{before}} to {{after}}
+ + {{#lines}} + + + + + + {{/lines}} +
{{ldln}}{{rdln}} +
{{line}}
+
+
+
+ + + diff --git a/lib/gollum/templates/create.mustache b/lib/gollum/templates/create.mustache index c444b0d7..449aa6f6 100644 --- a/lib/gollum/templates/create.mustache +++ b/lib/gollum/templates/create.mustache @@ -1,15 +1,21 @@
-
+
+ +
+ +
{{>editor}}
+
+
@@ -59,8 +57,8 @@ {{title}} - +
{{{yield}}} - +
diff --git a/lib/gollum/templates/navbar.mustache b/lib/gollum/templates/navbar.mustache new file mode 100644 index 00000000..f1dcd0ba --- /dev/null +++ b/lib/gollum/templates/navbar.mustache @@ -0,0 +1,43 @@ + \ No newline at end of file diff --git a/lib/gollum/templates/overview.mustache b/lib/gollum/templates/overview.mustache new file mode 100644 index 00000000..f97705dd --- /dev/null +++ b/lib/gollum/templates/overview.mustache @@ -0,0 +1,42 @@ +
+ +
+ +{{#has_results}} +
+ + +
+
    + {{#files_folders}} +
  • + {{{icon}}} + {{name}} + {{#allow_editing}} + {{#is_file}}{{/is_file}} + {{/allow_editing}} +
  • + {{/files_folders}} +
+
+ + +{{/has_results}} + +{{#no_results}} +

+ There are no pages in {{current_path}} on {{ref}}. +

+{{/no_results}} + +
+ +
+ diff --git a/lib/gollum/templates/page.mustache b/lib/gollum/templates/page.mustache index 752e1556..f4e35ea4 100644 --- a/lib/gollum/templates/page.mustache +++ b/lib/gollum/templates/page.mustache @@ -6,93 +6,15 @@ Mousetrap.bind(['e'], function( e ) { });
- +{{>wiki_content}}
+ +
\ No newline at end of file diff --git a/lib/gollum/templates/pages.mustache b/lib/gollum/templates/pages.mustache deleted file mode 100644 index 9f85e382..00000000 --- a/lib/gollum/templates/pages.mustache +++ /dev/null @@ -1,42 +0,0 @@ -
- -
- -{{#has_results}} -
- -
    - {{{files_folders}}} -
-
-{{/has_results}} - -{{#no_results}} -

- There are no pages in {{current_path}} on {{ref}}. -

-{{/no_results}} - -
- -
- diff --git a/lib/gollum/templates/searchbar.mustache b/lib/gollum/templates/searchbar.mustache index 794cad03..e80fd898 100644 --- a/lib/gollum/templates/searchbar.mustache +++ b/lib/gollum/templates/searchbar.mustache @@ -1,10 +1,3 @@ - \ No newline at end of file +
+ +
\ No newline at end of file diff --git a/lib/gollum/templates/wiki_content.mustache b/lib/gollum/templates/wiki_content.mustache new file mode 100644 index 00000000..1ed0fa34 --- /dev/null +++ b/lib/gollum/templates/wiki_content.mustache @@ -0,0 +1,56 @@ +
+

{{page_header}}

+ + + +
+ {{#has_toc}} +
+ {{{toc_content}}} +
+ {{/has_toc}} + {{#has_sidebar}} +
+ +
+ {{/has_sidebar}} +
+ {{#has_header}} +
+
+ {{{header_content}}} +
+
+ {{/has_header}} +
+ {{{rendered_metadata}}} + {{{content}}} +
+
+ {{#has_footer}} + + {{/has_footer}} +
+ +
+ + + + + +
\ No newline at end of file diff --git a/lib/gollum/views/has_page.rb b/lib/gollum/views/has_page.rb index f287ea28..b4a3e50c 100644 --- a/lib/gollum/views/has_page.rb +++ b/lib/gollum/views/has_page.rb @@ -1,7 +1,7 @@ module Precious module HasPage def path - @page.path + @page.url_path end def escaped_url_path diff --git a/lib/gollum/views/helpers.rb b/lib/gollum/views/helpers.rb index 1465afaf..b76761e2 100644 --- a/lib/gollum/views/helpers.rb +++ b/lib/gollum/views/helpers.rb @@ -12,7 +12,7 @@ module Precious create: 'create', delete: 'delete', edit: 'edit', - pages: 'pages', + overview: 'overview', history: 'history', rename: 'rename', revert: 'revert', @@ -45,6 +45,26 @@ module Precious end end + module OcticonHelpers + def self.included(base) + + def rocticon(symbol, parameters = {}) + Octicons::Octicon.new(symbol, parameters).to_svg + end + + def octicon + lambda do |args| + symbol, height, width = args.split(' ') + parameters = {} + parameters[:height] = height if height + parameters[:width] = width if width + Octicons::Octicon.new(symbol, parameters).to_svg + end + end + end + end + + module SprocketsHelpers def self.included(base) diff --git a/lib/gollum/views/history.rb b/lib/gollum/views/history.rb index 16c563f3..5c384f90 100644 --- a/lib/gollum/views/history.rb +++ b/lib/gollum/views/history.rb @@ -65,6 +65,10 @@ module Precious super end end + + def editable + @editable + end def previous_link label = "« Previous" diff --git a/lib/gollum/views/layout.rb b/lib/gollum/views/layout.rb index 8cd75688..f35fc277 100644 --- a/lib/gollum/views/layout.rb +++ b/lib/gollum/views/layout.rb @@ -1,4 +1,5 @@ require 'cgi' +require 'octicons' module Precious module Views @@ -7,6 +8,7 @@ module Precious include Sprockets::Helpers include Precious::Views::SprocketsHelpers include Precious::Views::RouteHelpers + include Precious::Views::OcticonHelpers alias_method :h, :escape_html @@ -48,6 +50,23 @@ module Precious @per_page_uploads end + # Navigation bar + def search + false + end + + def history + false + end + + def overview + false + end + + def latest_changes + false + end + end end end diff --git a/lib/gollum/views/overview.rb b/lib/gollum/views/overview.rb new file mode 100644 index 00000000..963492bb --- /dev/null +++ b/lib/gollum/views/overview.rb @@ -0,0 +1,80 @@ +require "pathname" + +module Precious + module Views + class Overview < Layout + attr_reader :results, :ref, :allow_editing, :newable + + def title + "Overview of #{@ref}" + end + + # def editable + # false + # end + + def current_path + @path ? @path : '/' + end + + def breadcrumb + if @path + path = Pathname.new(@path) + breadcrumb = [%{Home}] + path.descend do |crumb| + title = crumb.basename + + if title == path.basename + breadcrumb << title + else + breadcrumb << %{#{title}} + end + end + + breadcrumb.join(' / ') + else + 'Home' + end + end + + + def files_folders + if has_results + files_and_folders = [] + + @results.each do |result| + result_path = result.url_path + result_path = result_path.sub(/^#{Regexp.escape(@path)}\//, '') unless @path.nil? + if result_path.include?('/') + # result contains a folder + folder_name = result_path.split('/').first + folder_path = @path ? "#{@path}/#{folder_name}" : folder_name + folder_url = "#{overview_path}/#{folder_path}/" + files_and_folders << {name: folder_name, icon: rocticon('file-directory'), type: 'dir', url: folder_url, is_file: false} + elsif result_path != '.gitkeep' + file_url = "#{@base_url}/#{result.escaped_url_path}" + files_and_folders << {name: result.filename, icon: rocticon('file'), type: 'file', url: file_url, is_file: true} + end + end + # 1012: Overview should list folders first, followed by files and pages sorted alphabetically + files_and_folders.uniq{|f| f[:name]}.sort_by!{|f| [f[:type], f[:name]]} + end + end + + + def has_results + !@results.empty? + end + + def no_results + @results.empty? + end + + def latest_changes + true + end + + + end + end +end diff --git a/lib/gollum/views/page.rb b/lib/gollum/views/page.rb index 9875fdf3..facfe5aa 100644 --- a/lib/gollum/views/page.rb +++ b/lib/gollum/views/page.rb @@ -3,7 +3,7 @@ module Precious class Page < Layout include HasPage - attr_reader :content, :page, :header, :footer + attr_reader :content, :page, :header, :footer, :preview VALID_COUNTER_STYLES = ['decimal', 'decimal-leading-zero', 'arabic-indic', 'armenian', 'upper-armenian', 'lower-armenian', 'bengali', 'cambodian', 'khmer', 'cjk-decimal', 'devanagari', 'georgian', 'gujarati', 'gurmukhi', @@ -24,14 +24,15 @@ module Precious def page_header title end - + def breadcrumb path = Pathname.new(@page.url_path).parent return '' if path.to_s == '.' breadcrumb = [] path.descend do |crumb| element = "#{crumb.basename}" - breadcrumb << %{#{element}} + next if element == @page.title + breadcrumb << %{#{element}} end breadcrumb.join(' / ') << ' /' end @@ -59,7 +60,23 @@ module Precious def editable @editable end + + def search + true + end + + def history + true + end + def latest_changes + true + end + + def overview + true + end + def allow_editing @allow_editing end @@ -143,6 +160,10 @@ module Precious @page.wiki.user_icons == 'identicon' end + def navbar? + @navbar + end + # Access to embedded metadata. # # Returns Hash. diff --git a/lib/gollum/views/pages.rb b/lib/gollum/views/pages.rb deleted file mode 100644 index cc7eee86..00000000 --- a/lib/gollum/views/pages.rb +++ /dev/null @@ -1,87 +0,0 @@ -require "pathname" - -module Precious - module Views - class Pages < Layout - attr_reader :results, :ref, :allow_editing - - def title - "Overview of #{@ref}" - end - - def current_path - @path ? @path : '/' - end - - def breadcrumb - if @path - path = Pathname.new(@path) - breadcrumb = [%{Home}] - path.descend do |crumb| - title = crumb.basename - - if title == path.basename - breadcrumb << title - else - breadcrumb << %{#{title}} - end - end - - breadcrumb.join(' / ') - else - 'Home' - end - end - - - def delete_file(path) - %Q(
) - end - - def files_folders - if has_results - folders = {} - files = {} - - # 1012: Folders and Pages need to be separated - @results.each do |result| - result_path = result.url_path - result_path = result_path.sub(/^#{Regexp.escape(@path)}\//, '') unless @path.nil? - - if result_path.include?('/') - # result contains a folder - folder = result_path.split('/').first - folder_path = @path ? "#{@path}/#{folder}" : folder - folder_link = %{
  • #{folder}
  • } - - folders[folder] = folder_link unless folders.key?(folder) - elsif result_path != '.gitkeep' - # result is either a valid gollum page or another type of file - klass = (defined? result.format) ? 'page' : 'file' - url = "#{@base_url}/#{result.escaped_url_path}" - - file_link = %{
  • #{result.filename}#{delete_file(result.url_path) if @allow_editing}
  • } - files[result.name] = file_link - end - end - - # 1012: All Pages should be rendered as Folders first, then Pages, each sorted alphabetically - result = Hash[folders.sort_by{| key, value | key.downcase} ].values.join("\n") + "\n" - result += Hash[files.sort_by{ | key, value | key.downcase } ].values.join("\n") - - result - else - '' - end - end - - def has_results - !@results.empty? - end - - def no_results - @results.empty? - end - end - end -end diff --git a/test/test_allow_editing.rb b/test/test_allow_editing.rb index 0d2a8d35..0ef0be6d 100644 --- a/test/test_allow_editing.rb +++ b/test/test_allow_editing.rb @@ -36,17 +36,17 @@ context "Precious::Views::Editing" do assert_match /Rename/, last_response.body, "'Rename' link is blocked in page template" assert_match /Edit/, last_response.body, "'Edit' link is blocked in page template" - get '/gollum/pages' + get '/gollum/overview' assert_match /New/, last_response.body, "'New' link is blocked in pages template" get '/gollum/history/A' - assert_match /Edit/, last_response.body, "'Edit' link is blocked in history template" + assert_no_match /Edit/, last_response.body, "'Edit' link is not blocked in history template" get '/gollum/compare/A/fc66539528eb96f21b2bbdbf557788fe8a1196ac..b26b791cb7917c4f37dd9cb4d1e0efb24ac4d26f' - assert_match /Edit Page/, last_response.body, "'Edit Page' link is blocked in compare template" + assert_no_match /Edit Page/, last_response.body, "'Edit Page' link is not blocked in compare template" assert_match /Revert Changes/, last_response.body, "'Revert Changes' link is blocked in compare template" end @@ -60,7 +60,7 @@ context "Precious::Views::Editing" do assert_no_match /Rename/, last_response.body, "'Rename' link not blocked in page template" assert_no_match /Edit/, last_response.body, "'Edit' link not blocked in page template" - get '/gollum/pages' + get '/gollum/overview' assert_no_match /New/, last_response.body, "'New' link not blocked in pages template" diff --git a/test/test_app.rb b/test/test_app.rb index 8e553401..5b560988 100644 --- a/test/test_app.rb +++ b/test/test_app.rb @@ -605,34 +605,35 @@ context "Frontend with lotr" do # │   ├── eye.jpg # │   └── todo.txt # ├── My-Precious.md + # ├── roast-mutton.md # ├── Samwise\ Gamgee.mediawiki # ├── _Footer.md # ├── _Header.md # └── _Sidebar.md - # + # ├── Zamin.md - test "/pages" do - get "/gollum/pages" + test "/overview" do + get "/gollum/overview" assert last_response.ok? body = last_response.body - assert body.include?("Bilbo-Baggins"), "/pages should include the page 'Bilbo Baggins'" - assert body.include?("Gondor"), "/pages should include the folder 'Gondor'" - assert !body.include?("Boromir"), "/pages should NOT include the page 'Boromir'" - assert body.include?("Mordor"), "/pages should include the folder 'Mordor'" - assert !body.include?("Eye-Of-Sauron"), "/pages should NOT include the page 'Eye Of Sauron'" - assert !body.match(/(Zamin).+(roast\-mutton)/m), "/pages should be sorted alphabetically" + assert body.include?("Bilbo-Baggins"), "/overview should include the page 'Bilbo Baggins'" + assert body.include?("Gondor"), "/overview should include the folder 'Gondor'" + assert !body.include?("Boromir"), "/overview should NOT include the page 'Boromir'" + assert body.include?("Mordor"), "/overview should include the folder 'Mordor'" + assert !body.include?("Eye-Of-Sauron"), "/overview should NOT include the page 'Eye Of Sauron'" + assert !body.match(/(Zamin).+(Bilbo\-Baggins)/m), "/overview should be sorted alphabetically" end - test "/gollum/pages/Mordor/" do - get "/gollum/pages/Mordor/" - assert last_response.ok?, "/pages/Mordor/ did not respond ok" + test "/gollum/overview/Mordor/" do + get "/gollum/overview/Mordor/" + assert last_response.ok?, "/overview/Mordor/ did not respond ok" body = last_response.body - assert !body.include?("Bilbo-Baggins"), "/pages/Mordor/ should NOT include the page 'Bilbo Baggins'" - assert body.include?("Eye-Of-Sauron"), "/pages/Mordor/ should include the page 'Eye Of Sauron'" + assert !body.include?("Bilbo-Baggins"), "/overview/Mordor/ should NOT include the page 'Bilbo Baggins'" + assert body.include?("Eye-Of-Sauron"), "/overview/Mordor/ should include the page 'Eye Of Sauron'" end test "symbolic link pages" do diff --git a/test/test_latest_changes_view.rb b/test/test_latest_changes_view.rb index ff58fa80..5ab7dcdd 100644 --- a/test/test_latest_changes_view.rb +++ b/test/test_latest_changes_view.rb @@ -19,8 +19,8 @@ context "Precious::Views::LatestChanges" do test "displays_latest_changes" do get('/gollum/latest_changes') body = last_response.body - - assert body.include?('Charles Pence'), "/latest_changes should include the Author Charles Pence" + + assert body.include?("\n Charles Pence\n\n"), "/latest_changes should include Author Charles Pence" assert body.include?('1db89eb'), "/latest_changes should include the :latest_changes_count commit" assert !body.include?('a8ad3c0'), "/latest_changes should not include more than latest_changes_count commits" assert body.include?('Data-Two.csv'), "/latest_changes include links to modified files in #{body}" diff --git a/test/test_pages_view.rb b/test/test_overview_view.rb similarity index 60% rename from test/test_pages_view.rb rename to test/test_overview_view.rb index 522cf5fe..a709489b 100644 --- a/test/test_pages_view.rb +++ b/test/test_overview_view.rb @@ -1,6 +1,6 @@ # ~*~ encoding: utf-8 ~*~ require File.expand_path(File.join(File.dirname(__FILE__), 'helper')) -require File.expand_path '../../lib/gollum/views/pages', __FILE__ +require File.expand_path '../../lib/gollum/views/overview', __FILE__ FakePageResult = Struct.new(:path) do def name @@ -33,15 +33,15 @@ FakeFileResult = Struct.new(:path) do end end -context "Precious::Views::Pages" do +context "Precious::Views::Overview" do setup do - @page = Precious::Views::Pages.new + @page = Precious::Views::Overview.new end test "breadcrumb" do @page.instance_variable_set("@path", "Mordor/Eye-Of-Sauron/Saruman") @page.instance_variable_set("@base_url", "") - assert_equal 'Home / Mordor / Eye-Of-Sauron / Saruman', @page.breadcrumb + assert_equal 'Home / Mordor / Eye-Of-Sauron / Saruman', @page.breadcrumb end test "breadcrumb with no path" do @@ -52,7 +52,11 @@ context "Precious::Views::Pages" do @page.instance_variable_set("@base_url", "") results = [FakePageResult.new("Gondor/Bromir.md"), FakePageResult.new("Hobbit.md"), FakePageResult.new("Home.md"), FakePageResult.new("Mordor/Eye-Of-Sauron.md"), FakePageResult.new("Mordor/todo.md"), FakePageResult.new("Rivendell/Elrond.md"), FakePageResult.new("My-Precious.md"), FakePageResult.new("Zamin.md"), FakePageResult.new("Samwise-Gamgee.md"), FakePageResult.new("roast-mutton.md"), FakePageResult.new("Bilbo-Baggins.md")] @page.instance_variable_set("@results", results) - assert_equal %{
  • Gondor
  • \n
  • Mordor
  • \n
  • Rivendell
  • \n
  • Bilbo Baggins
  • \n
  • Hobbit
  • \n
  • Home
  • \n
  • My Precious
  • \n
  • roast mutton
  • \n
  • Samwise Gamgee
  • \n
  • Zamin
  • }, @page.files_folders + files = 0 + folders = 0 + results = @page.files_folders + results[0..2].each { |r| assert r[:type] == 'dir' } + results[3..-1].each { |r| assert r[:type] == 'file' } end test "files_folders from subdir" do @@ -60,7 +64,12 @@ context "Precious::Views::Pages" do @page.instance_variable_set("@base_url", "") results = [FakePageResult.new("Mordor/Eye-Of-Sauron.md"), FakeFileResult.new("Mordor/Aragorn.pdf"), FakePageResult.new("Mordor/Orc/Saruman.md"), FakeFileResult.new("Mordor/.gitkeep")] @page.instance_variable_set("@results", results) - assert_equal %{
  • Orc
  • \n
  • Aragorn.pdf
  • \n
  • Eye Of Sauron
  • }, @page.files_folders + result = @page.files_folders.first + assert_equal result[:icon].start_with?('Orc\n
  • Aragorn.pdf
  • \n
  • Eye Of Sauron
  • }, @page.files_folders + assert_equal @page.files_folders.first[:url], '/wiki/gollum/overview/Mordor/Orc/' end end diff --git a/test/test_page_view.rb b/test/test_page_view.rb index d7f689e6..f8d16f92 100644 --- a/test/test_page_view.rb +++ b/test/test_page_view.rb @@ -117,7 +117,7 @@ EOS @view = Precious::Views::Page.new @view.instance_variable_set :@page, page @view.instance_variable_set :@content, page.formatted_data - assert_equal @view.breadcrumb, 'subdir /' + assert_equal @view.breadcrumb, 'subdir /' # No breadcrumb on unnested page @wiki.write_page('BC Test 2', :markdown, 'Test', commit_details)