From 2a116715945b3f27f3fe5c765420ee5aa3676fb0 Mon Sep 17 00:00:00 2001 From: Ryan Lerch Date: Apr 09 2018 20:30:41 +0000 Subject: add pelican test output scripts --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1897e6f --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.pyc +pelican.pid +srv.pid +output/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..2264c01 --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# packaging docs + +## Running the server for writing new articles + +Running the pelican development server is useful when writing new articles. The steps to +get it running are: + +1. Install pelican: `sudo dnf install pelican GitPython` +2. Check out the packagin docs source (from your fork or the main repo) +3. In the main folder of the checked out repo, run `./develop_server.sh start` +and your local copy of the Docs Fedora will be at http://localhost:8000/ diff --git a/develop_server.sh b/develop_server.sh new file mode 100755 index 0000000..8c2f27f --- /dev/null +++ b/develop_server.sh @@ -0,0 +1,103 @@ +#!/usr/bin/env bash +## +# This section should match your Makefile +## +PY=${PY:-python} +PELICAN=${PELICAN:-pelican} +PELICANOPTS= + +BASEDIR=$(pwd) +INPUTDIR=$BASEDIR/content +OUTPUTDIR=$BASEDIR/output +CONFFILE=$BASEDIR/pelicanconf.py + +### +# Don't change stuff below here unless you are sure +### + +SRV_PID=$BASEDIR/srv.pid +PELICAN_PID=$BASEDIR/pelican.pid + +function usage(){ + echo "usage: $0 (stop) (start) (restart) [port]" + echo "This starts Pelican in debug and reload mode and then launches" + echo "an HTTP server to help site development. It doesn't read" + echo "your Pelican settings, so if you edit any paths in your Makefile" + echo "you will need to edit your settings as well." + exit 3 +} + +function alive() { + kill -0 $1 >/dev/null 2>&1 +} + +function shut_down(){ + PID=$(cat $SRV_PID) + if [[ $? -eq 0 ]]; then + if alive $PID; then + echo "Stopping HTTP server" + kill $PID + else + echo "Stale PID, deleting" + fi + rm $SRV_PID + else + echo "HTTP server PIDFile not found" + fi + + PID=$(cat $PELICAN_PID) + if [[ $? -eq 0 ]]; then + if alive $PID; then + echo "Killing Pelican" + kill $PID + else + echo "Stale PID, deleting" + fi + rm $PELICAN_PID + else + echo "Pelican PIDFile not found" + fi +} + +function start_up(){ + local port=$1 + echo "Starting up Pelican and HTTP server" + shift + $PELICAN --debug --autoreload -r $INPUTDIR -o $OUTPUTDIR -s $CONFFILE $PELICANOPTS & + pelican_pid=$! + echo $pelican_pid > $PELICAN_PID + cd $OUTPUTDIR + $PY -m pelican.server $port & + srv_pid=$! + echo $srv_pid > $SRV_PID + cd $BASEDIR + sleep 1 + if ! alive $pelican_pid ; then + echo "Pelican didn't start. Is the Pelican package installed?" + return 1 + elif ! alive $srv_pid ; then + echo "The HTTP server didn't start. Is there another service using port" $port "?" + return 1 + fi + echo 'Pelican and HTTP server processes now running in background.' +} + +### +# MAIN +### +[[ ($# -eq 0) || ($# -gt 2) ]] && usage +port='' +[[ $# -eq 2 ]] && port=$2 + +if [[ $1 == "stop" ]]; then + shut_down +elif [[ $1 == "restart" ]]; then + shut_down + start_up $port +elif [[ $1 == "start" ]]; then + if ! start_up $port; then + shut_down + fi +else + usage +fi diff --git a/pelicanconf.py b/pelicanconf.py new file mode 100644 index 0000000..1f73324 --- /dev/null +++ b/pelicanconf.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- # +from __future__ import unicode_literals + +AUTHOR = u'The Fedora Project' +SITENAME = u'Fedora Documentation' +SITEURL = 'https://docs.pagure.org/docs-fedora/' + +PATH = 'content' +ARTICLE_EXCLUDES = ['modules'] +TIMEZONE = 'Europe/Paris' + +DEFAULT_LANG = u'en' + +THEME = 'theme' + +# Feed generation is usually not desired when developing +FEED_ALL_ATOM = None +CATEGORY_FEED_ATOM = None +TRANSLATION_FEED_ATOM = None +AUTHOR_FEED_ATOM = None +AUTHOR_FEED_RSS = None + +# Blogroll +LINKS = (('Pelican', 'http://getpelican.com/'), + ('Python.org', 'http://python.org/'), + ('Jinja2', 'http://jinja.pocoo.org/'), + ('You can modify those links in your config file', '#'),) + +# Social widget +SOCIAL = (('You can add links in your config file', '#'), + ('Another social link', '#'),) + +DEFAULT_PAGINATION = False + +PLUGIN_PATHS = ['plugins'] +PLUGINS = ['asciidoc_reader', 'filetime_from_git', 'tipue_search', 'related_posts'] + +STATIC_PATHS = ['images'] + +DIRECT_TEMPLATES = (('index', 'tags', 'categories', 'authors', 'archives', 'search', 'all_articles')) + +PAGINATED_DIRECT_TEMPLATES = ['index', 'all_articles'] + +# Uncomment following line if you want document-relative URLs when developing +RELATIVE_URLS = True + diff --git a/plugins/asciidoc_reader/README.rst b/plugins/asciidoc_reader/README.rst new file mode 100644 index 0000000..a14bd2d --- /dev/null +++ b/plugins/asciidoc_reader/README.rst @@ -0,0 +1,49 @@ +AsciiDoc Reader +############### + +This plugin allows you to use `AsciiDoc `_ +to write your posts. File extension should be ``.asc``, ``.adoc``, +or ``.asciidoc``. + +Dependency +---------- + +There are two command line utilities commonly used to render AsciiDoc: +``asciidoc`` and ``asciidoctor``. One of the two will need to be installed and +on the PATH. + +**Note**: The ``asciidoctor`` utility is recommended since the original +``asciidoc`` is no longer maintained. + +Settings +-------- + +======================================== ======================================================= +Setting name (followed by default value) What does it do? +======================================== ======================================================= +``ASCIIDOC_CMD = asciidoc`` Selects which utility to use for rendering. Will + autodetect utility if not provided. +``ASCIIDOC_OPTIONS = []`` A list of options to pass to AsciiDoc. See the `manpage + `_. +======================================== ======================================================= + +Example file header +------------------- + +Following the `example `_ in the main pelican documentation: + +.. code-block:: none + + = My super title + + :date: 2010-10-03 10:20 + :modified: 2010-10-04 18:40 + :tags: thats, awesome + :category: yeah + :slug: my-super-post + :authors: Alexis Metaireau, Conan Doyle + :summary: Short version for index and feeds + + == title level 2 + + and so on... diff --git a/plugins/asciidoc_reader/__init__.py b/plugins/asciidoc_reader/__init__.py new file mode 100644 index 0000000..5752357 --- /dev/null +++ b/plugins/asciidoc_reader/__init__.py @@ -0,0 +1 @@ +from .asciidoc_reader import * diff --git a/plugins/asciidoc_reader/asciidoc_reader.py b/plugins/asciidoc_reader/asciidoc_reader.py new file mode 100644 index 0000000..8aedbab --- /dev/null +++ b/plugins/asciidoc_reader/asciidoc_reader.py @@ -0,0 +1,89 @@ +# -*- coding: utf-8 -*- +""" +AsciiDoc Reader +=============== + +This plugin allows you to use AsciiDoc to write your posts. +File extension should be ``.asc``, ``.adoc``, or ``asciidoc``. +""" + +from pelican.readers import BaseReader +from pelican import signals +import os +import re +import subprocess + +def call(cmd): + """Calls a CLI command and returns the stdout as string.""" + return subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).communicate()[0].decode('utf-8') + +def default(): + """Attempt to find the default AsciiDoc utility.""" + for cmd in ALLOWED_CMDS: + if len(call(cmd + " --help")): + return cmd + +ALLOWED_CMDS = ["asciidoc", "asciidoctor"] + +ENABLED = None != default() + +class AsciiDocReader(BaseReader): + """Reader for AsciiDoc files.""" + + enabled = ENABLED + file_extensions = ['asc', 'adoc', 'asciidoc'] + default_options = ['--no-header-footer'] + + def read(self, source_path): + """Parse content and metadata of AsciiDoc files.""" + cmd = self._get_cmd() + content = "" + if cmd: + optlist = self.settings.get('ASCIIDOC_OPTIONS', []) + self.default_options + options = " ".join(optlist) + content = call("%s %s -o - %s" % (cmd, options, source_path)) + metadata = self._read_metadata(source_path) + return content, metadata + + def _get_cmd(self): + """Returns the AsciiDoc utility command to use for rendering or None if + one cannot be found.""" + if self.settings.get('ASCIIDOC_CMD') in ALLOWED_CMDS: + return self.settings.get('ASCIIDOC_CMD') + return default() + + def _read_metadata(self, source_path): + """Parses the AsciiDoc file at the given `source_path` and returns found + metadata.""" + metadata = {} + with open(source_path) as fi: + prev = "" + for line in fi.readlines(): + # Parse for doc title. + if 'title' not in metadata.keys(): + title = "" + if line.startswith("= "): + title = line[2:].strip() + elif line.count("=") == len(prev.strip()): + title = prev.strip() + if title: + metadata['title'] = self.process_metadata('title', title) + + # Parse for other metadata. + regexp = re.compile(r"^:[A-z]+:\s*[A-z0-9]") + if regexp.search(line): + toks = line.split(":", 2) + key = toks[1].strip().lower() + val = toks[2].strip() + if key == 'tags' or key == 'fedoraversions': + val = val.split(',') + metadata[key] = self.process_metadata(key, val) + prev = line + return metadata + +def add_reader(readers): + for ext in AsciiDocReader.file_extensions: + readers.reader_classes[ext] = AsciiDocReader + +def register(): + signals.readers_init.connect(add_reader) diff --git a/plugins/asciidoc_reader/test_asciidoc_reader.py b/plugins/asciidoc_reader/test_asciidoc_reader.py new file mode 100644 index 0000000..46a4dac --- /dev/null +++ b/plugins/asciidoc_reader/test_asciidoc_reader.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +import datetime +import os + +from pelican.readers import Readers +from pelican.tests.support import unittest, get_settings + +from .asciidoc_reader import ENABLED + +CUR_DIR = os.path.dirname(__file__) +CONTENT_PATH = os.path.join(CUR_DIR, 'test_data') + +@unittest.skipUnless(ENABLED, "asciidoc isn't installed") +class AsciiDocReaderTest(unittest.TestCase): + def read_file(self, path, **kwargs): + # Isolate from future API changes to readers.read_file + r = Readers(settings=get_settings(**kwargs)) + return r.read_file(base_path=CONTENT_PATH, path=path) + + def test_article_with_asc_extension(self): + # Ensure the asc extension is being processed by the correct reader + page = self.read_file( + path='article_with_asc_extension.asc') + expected = ('
' + '

' + 'Used for pelican test

' + '
' + '
' + '

The quick brown fox jumped over ' + 'the lazy dog’s back.

' + '
') + actual = "".join(page.content.splitlines()) + expected = "".join(expected.splitlines()) + self.assertEqual(actual, expected) + expected = { + 'category': 'Blog', + 'author': 'Author O. Article', + 'title': 'Test AsciiDoc File Header', + 'date': datetime.datetime(2011, 9, 15, 9, 5), + 'tags': ['Linux', 'Python', 'Pelican'], + } + for key, value in expected.items(): + self.assertEqual(value, page.metadata[key], ( + 'Metadata attribute \'%s\' does not match expected value.\n' + 'Expected: %s\n' + 'Actual: %s') % (key, value, page.metadata[key])) + + def test_article_with_asc_options(self): + # test to ensure the ASCIIDOC_OPTIONS is being used + page = self.read_file(path='article_with_asc_options.asc', + ASCIIDOC_OPTIONS=["-a revision=1.0.42"]) + expected = ('
' + '

' + 'Used for pelican test

' + '
' + '
' + '

version 1.0.42

' + '
' + '

The quick brown fox jumped over ' + 'the lazy dog’s back.

' + '
') + actual = "".join(page.content.splitlines()) + expected = "".join(expected.splitlines()) + self.assertEqual(actual, expected) + + +if __name__ == '__main__': + unittest.main() diff --git a/plugins/asciidoc_reader/test_data/article_with_asc_extension.asc b/plugins/asciidoc_reader/test_data/article_with_asc_extension.asc new file mode 100644 index 0000000..3204d8f --- /dev/null +++ b/plugins/asciidoc_reader/test_data/article_with_asc_extension.asc @@ -0,0 +1,11 @@ +Test AsciiDoc File Header +========================= +:Author: Author O. Article +:Email: +:Date: 2011-09-15 09:05 +:Category: Blog +:Tags: Linux, Python, Pelican + +== Used for pelican test + +The quick brown fox jumped over the lazy dog's back. diff --git a/plugins/asciidoc_reader/test_data/article_with_asc_options.asc b/plugins/asciidoc_reader/test_data/article_with_asc_options.asc new file mode 100644 index 0000000..620abba --- /dev/null +++ b/plugins/asciidoc_reader/test_data/article_with_asc_options.asc @@ -0,0 +1,7 @@ += Test AsciiDoc File Header + +== Used for pelican test + +version {revision} + +The quick brown fox jumped over the lazy dog's back. diff --git a/plugins/category_meta/README.md b/plugins/category_meta/README.md new file mode 100644 index 0000000..02f909c --- /dev/null +++ b/plugins/category_meta/README.md @@ -0,0 +1,22 @@ +Category Metadata +----------------- + +A plugin to read metadata for each category from an index file in that +category's directory. + +For this plugin to work properly, your articles should not have a +Category: tag in their metadata; instead, they should be stored in +(subdirectories of) per-category directories. Each per-category +directory must have a file named 'index.ext' at its top level, where +.ext is any extension that will be picked up by an article reader. +The metadata of that article becomes the metadata for the category, +copied over verbatim, with three special cases: + + * The category's name is set to the article's title. + * The category's slug is set to the name of the parent directory + of the index.ext file. + * The _text_ of the article is stored as category.description. + +You can use this, for example, to control the slug used for each +category independently of its name, or to add a description at the top +of each category page. diff --git a/plugins/category_meta/__init__.py b/plugins/category_meta/__init__.py new file mode 100644 index 0000000..aa50e46 --- /dev/null +++ b/plugins/category_meta/__init__.py @@ -0,0 +1 @@ +from .category_meta import * diff --git a/plugins/category_meta/category_meta.py b/plugins/category_meta/category_meta.py new file mode 100644 index 0000000..d3dc35a --- /dev/null +++ b/plugins/category_meta/category_meta.py @@ -0,0 +1,130 @@ +'''Copyright 2014, 2015 Zack Weinberg + +Category Metadata +----------------- + +A plugin to read metadata for each category from an index file in that +category's directory. + +For this plugin to work properly, your articles should not have a +Category: tag in their metadata; instead, they should be stored in +(subdirectories of) per-category directories. Each per-category +directory must have a file named 'index.ext' at its top level, where +.ext is any extension that will be picked up by an article reader. +The metadata of that article becomes the metadata for the category, +copied over verbatim, with three special cases: + + * The category's name is set to the article's title. + * The category's slug is set to the name of the parent directory + of the index.ext file. + * The _text_ of the article is stored as category.description. +''' + +from pelican import signals +import os +import re + +import logging +logger = logging.getLogger(__name__) + +### CORE BUG: https://github.com/getpelican/pelican/issues/1547 +### Content.url_format does not honor category.slug (or author.slug). +### The sanest way to work around this is to dynamically redefine each +### article's class to a subclass of itself with the bug fixed. +### +### Core was fixed in rev 822fb134e041c6938c253dd4db71813c4d0dc74a, +### which is not yet in any release, so we dynamically detect whether +### the installed version of Pelican still has the bug. + +patched_subclasses = {} +def make_patched_subclass(klass): + if klass.__name__ not in patched_subclasses: + class PatchedContent(klass): + @property + def url_format(self): + metadata = super(PatchedContent, self).url_format + if hasattr(self, 'author'): + metadata['author'] = self.author.slug + if hasattr(self, 'category'): + metadata['category'] = self.category.slug + + return metadata + # Code in core uses Content class names as keys for things. + PatchedContent.__name__ = klass.__name__ + patched_subclasses[klass.__name__] = PatchedContent + return patched_subclasses[klass.__name__] + +def patch_urlformat(cont): + # Test whether this content object needs to be patched. + md = cont.url_format + if ((hasattr(cont, 'author') and cont.author.slug != md['author']) or + (hasattr(cont, 'category') and cont.category.slug != md['category'])): + logger.debug("Detected bug 1547, applying workaround.") + cont.__class__ = make_patched_subclass(cont.__class__) + +### END OF BUG WORKAROUND + +def make_category(article, slug): + # Reuse the article's existing category object. + category = article.category + + # Setting a category's name resets its slug, so do that first. + category.name = article.title + category.slug = slug + category.summary = article.summary + + # Description from article text. + # XXX Relative URLs in the article content may not be handled correctly. + setattr(category, 'description', article.content) + + # Metadata, to the extent that this makes sense. + for k, v in article.metadata.items(): + if k not in ('path', 'slug', 'category', 'name', 'title', + 'description', 'reader'): + setattr(category, k, v) + + logger.debug("Category: %s -> %s", category.slug, category.name) + return category + +def pretaxonomy_hook(generator): + """This hook is invoked before the generator's .categories property is + filled in. Each article has already been assigned a category + object, but these objects are _not_ unique per category and so are + not safe to tack metadata onto (as is). + + The category metadata we're looking for is represented as an + Article object, one per directory, whose filename is 'index.ext'. + """ + + category_objects = {} + real_articles = [] + + for article in generator.articles: + dirname, fname = os.path.split(article.source_path) + fname, _ = os.path.splitext(fname) + if fname == 'index': + category_objects[dirname] = \ + make_category(article, os.path.basename(dirname)) + else: + real_articles.append(article) + + category_assignment = \ + re.compile("^(" + + "|".join(re.escape(prefix) + for prefix in category_objects.keys()) + + ")/") + + for article in real_articles: + m = category_assignment.match(article.source_path) + if not m or m.group(1) not in category_objects: + logger.error("No category assignment for %s (%s)", + article, article.source_path) + continue + + article.category = category_objects[m.group(1)] + patch_urlformat(article) + + generator.articles = real_articles + +def register(): + signals.article_generator_pretaxonomy.connect(pretaxonomy_hook) diff --git a/plugins/filetime_from_git/README.rst b/plugins/filetime_from_git/README.rst new file mode 100644 index 0000000..9290cb2 --- /dev/null +++ b/plugins/filetime_from_git/README.rst @@ -0,0 +1,60 @@ +Use Git commit to determine page date +====================================== +If the blog content is managed by git repo, this plugin will set articles' +and pages' ``metadata['date']`` according to git commit. This plugin depends +on python package ``gitpython``, install:: + + pip install gitpython + +The date is determined via the following logic: + +* if a file is not tracked by Git, or a file is staged but never committed + - metadata['date'] = filesystem time + - metadata['modified'] = filesystem time +* if a file is tracked, but no changes in staging area or working directory + - metadata['date'] = first commit time + - metadata['modified'] = last commit time +* if a file is tracked, and has changes in stage area or working directory + - metadata['date'] = first commit time + - metadata['modified'] = filesystem time + +When this module is enabled, ``date`` and ``modified`` will be determined +by Git status; no need to manually set in article/page metadata. And +operations like copy and move will not affect the generated results. + +If you don't want a given article or page to use the Git time, set the +metadata to ``gittime: off`` to disable it. + +Other options +------------- + +### GIT_HISTORY_FOLLOWS_RENAME (default True) +You can also set GIT_HISTORY_FOLLOWS_RENAME to True in your pelican config to +make the plugin follow file renames i.e. ensure the creation date matches +the original file creation date, not the date is was renamed. + +### GIT_GENERATE_PERMALINK (default False) +Use in combination with permalink plugin to generate permalinks using the original +commit sha + +### GIT_SHA_METADATA (default True) +Adds sha of current and oldest commit to metadata + +### GIT_FILETIME_FROM_GIT (default True) +Enable filetime from git behaviour + +Content specific options +------------------------ +Adding metadata `gittime` = False will prevent the plugin trying to setting filetime for this +content. + +Adding metadata `git_permalink` = False will prevent the plugin from adding permalink for this +content. + +FAQ +--- + +### Q. I get a GitCommandError: 'git rev-list ...' when I run the plugin. What's up? +Be sure to use the correct gitpython module for your distros git binary. +Using the GIT_HISTORY_FOLLOWS_RENAME option to True may also make your problem go away as it uses +a different method to find commits. diff --git a/plugins/filetime_from_git/__init__.py b/plugins/filetime_from_git/__init__.py new file mode 100644 index 0000000..b7281c8 --- /dev/null +++ b/plugins/filetime_from_git/__init__.py @@ -0,0 +1 @@ +from .registration import * diff --git a/plugins/filetime_from_git/actions.py b/plugins/filetime_from_git/actions.py new file mode 100755 index 0000000..c9ac0a8 --- /dev/null +++ b/plugins/filetime_from_git/actions.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- +import base64 +import hashlib +import os +import logging +from pelican.utils import strftime +from .utils import string_to_bool +from .utils import datetime_from_timestamp +from .registration import content_git_object_init + + +logger = logging.getLogger(__name__) + + +@content_git_object_init.connect +def filetime_from_git(content, git_content): + ''' + Update modification and creation times from git + ''' + if not content.settings['GIT_FILETIME_FROM_GIT']: + # Disabled for everything + return + + if not string_to_bool(content.metadata.get('gittime', 'yes')): + # Disable for this content + return + + path = content.source_path + fs_creation_time = datetime_from_timestamp(os.stat(path).st_ctime, content) + fs_modified_time = datetime_from_timestamp(os.stat(path).st_mtime, content) + + # 1. file is not managed by git + # date: fs time + # 2. file is staged, but has no commits + # date: fs time + # 3. file is managed, and clean + # date: first commit time, update: last commit time or None + # 4. file is managed, but dirty + # date: first commit time, update: fs time + if git_content.is_managed_by_git(): + if git_content.is_committed(): + content.date = git_content.get_oldest_commit_date() + + if git_content.is_modified(): + content.modified = fs_modified_time + else: + content.modified = git_content.get_newest_commit_date() + else: + # File isn't committed + content.date = fs_creation_time + else: + # file is not managed by git + content.date = fs_creation_time + + # Clean up content attributes + if not hasattr(content, 'modified'): + content.modified = content.date + + if hasattr(content, 'date'): + content.locale_date = strftime(content.date, content.date_format) + + if hasattr(content, 'modified'): + content.locale_modified = strftime( + content.modified, content.date_format) + + +@content_git_object_init.connect +def git_sha_metadata(content, git_content): + ''' + Add sha metadata to content + ''' + if not content.settings['GIT_SHA_METADATA']: + return + + if not git_content.is_committed(): + return + + content.metadata['gitsha_newest'] = str(git_content.get_newest_commit()) + content.metadata['gitsha_oldest'] = str(git_content.get_oldest_commit()) + + +@content_git_object_init.connect +def git_permalink(content, git_content): + ''' + Add git based permalink id to content metadata + ''' + if not content.settings['GIT_GENERATE_PERMALINK']: + return + + if not string_to_bool(content.metadata.get('git_permalink', 'yes')): + # Disable for this content + return + + if not git_content.is_committed(): + return + + permalink_hash = hashlib.sha1() + permalink_hash.update(str(git_content.get_oldest_commit())) + permalink_hash.update(str(git_content.get_oldest_filename())) + git_permalink_id = base64.urlsafe_b64encode(permalink_hash.digest()) + permalink_id_metadata_key = content.settings['PERMALINK_ID_METADATA_KEY'] + + if permalink_id_metadata_key in content.metadata: + content.metadata[permalink_id_metadata_key] = ( + ','.join(( + content.metadata[permalink_id_metadata_key], git_permalink_id))) + else: + content.metadata[permalink_id_metadata_key] = git_permalink_id diff --git a/plugins/filetime_from_git/content_adapter.py b/plugins/filetime_from_git/content_adapter.py new file mode 100644 index 0000000..1584d17 --- /dev/null +++ b/plugins/filetime_from_git/content_adapter.py @@ -0,0 +1,99 @@ +# -*- coding: utf-8 -*- +""" +Wraps a content object to provide some git information +""" +import logging +from pelican.utils import memoized +from .git_wrapper import git_wrapper + +DEV_LOGGER = logging.getLogger(__name__) + + +class GitContentAdapter(object): + """ + Wraps a content object to provide some git information + """ + def __init__(self, content): + self.content = content + self.git = git_wrapper('.') + self.tz_name = content.settings.get('TIMEZONE', None) + self.follow = content.settings['GIT_HISTORY_FOLLOWS_RENAME'] + + @memoized + def is_committed(self): + ''' + Is committed + ''' + return len(self.get_commits()) > 0 + + @memoized + def is_modified(self): + ''' + Has content been modified since last commit + ''' + return self.git.is_file_modified(self.content.source_path) + + @memoized + def is_managed_by_git(self): + ''' + Is content stored in a file managed by git + ''' + return self.git.is_file_managed_by_git(self.content.source_path) + + @memoized + def get_commits(self): + ''' + Get all commits involving this filename + :returns: List of commits newest to oldest + ''' + if not self.is_managed_by_git(): + return [] + return self.git.get_commits(self.content.source_path, self.follow) + + @memoized + def get_oldest_commit(self): + ''' + Get oldest commit involving this file + + :returns: Oldest commit + ''' + return self.git.get_commits(self.content.source_path, self.follow)[-1] + + @memoized + def get_newest_commit(self): + ''' + Get oldest commit involving this file + + :returns: Newest commit + ''' + return self.git.get_commits(self.content.source_path, follow=False)[0] + + @memoized + def get_oldest_filename(self): + ''' + Get the original filename of this content. Implies follow + ''' + commit_and_name_iter = self.git.get_commits_and_names_iter( + self.content.source_path) + _commit, name = commit_and_name_iter.next() + return name + + @memoized + def get_oldest_commit_date(self): + ''' + Get datetime of oldest commit involving this file + + :returns: Datetime of oldest commit + ''' + oldest_commit = self.get_oldest_commit() + return self.git.get_commit_date(oldest_commit, self.tz_name) + + @memoized + def get_newest_commit_date(self): + ''' + Get datetime of newest commit involving this file + + :returns: Datetime of newest commit + ''' + newest_commit = self.get_newest_commit() + return self.git.get_commit_date(newest_commit, self.tz_name) diff --git a/plugins/filetime_from_git/git_wrapper.py b/plugins/filetime_from_git/git_wrapper.py new file mode 100644 index 0000000..238e65e --- /dev/null +++ b/plugins/filetime_from_git/git_wrapper.py @@ -0,0 +1,162 @@ +# -*- coding: utf-8 -*- +""" +Wrap python git interface for compatibility with older/newer version +""" +try: + from itertools import zip_longest +except ImportError: + from six.moves import zip_longest +import logging +import os +from time import mktime +from datetime import datetime +from pelican.utils import set_date_tzinfo +from git import Git, Repo + +DEV_LOGGER = logging.getLogger(__name__) + + +def grouper(iterable, n, fillvalue=None): + ''' + Collect data into fixed-length chunks or blocks + ''' + # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx + args = [iter(iterable)] * n + return zip_longest(fillvalue=fillvalue, *args) + + +class _GitWrapperCommon(object): + ''' + Wrap git module to provide a more stable interface across versions + ''' + def __init__(self, repo_path): + self.git = Git() + self.repo = Repo(os.path.abspath('.')) + + def is_file_managed_by_git(self, path): + ''' + :param path: Path to check + :returns: True if path is managed by git + ''' + status, _stdout, _stderr = self.git.execute( + ['git', 'ls-files', path, '--error-unmatch'], + with_extended_output=True, + with_exceptions=False) + return status == 0 + + def is_file_modified(self, path): + ''' + Does a file have local changes not yet committed + + :returns: True if file has local changes + ''' + status, _stdout, _stderr = self.git.execute( + ['git', 'diff', '--quiet', 'HEAD', path], + with_extended_output=True, + with_exceptions=False) + return status != 0 + + def get_commits_following(self, path): + ''' + Get all commits including path following the file through + renames + + :param path: Path which we will find commits for + :returns: Sequence of commit objects. Newest to oldest + ''' + return [ + commit for commit, _ in self.get_commits_and_names_iter( + path)] + + def get_commits_and_names_iter(self, path): + ''' + Get all commits including a given path following renames + ''' + log_result = self.git.log( + '--pretty=%H', + '--follow', + '--name-only', + '--', + path).splitlines() + + for commit_sha, _, filename in grouper(log_result, 3): + yield self.repo.commit(commit_sha), filename + + def get_commits(self, path, follow=False): + ''' + Get all commits including path + + :param path: Path which we will find commits for + :param bool follow: If True we will follow path through renames + + :returns: Sequence of commit objects. Newest to oldest + ''' + if follow: + return self.get_commits_following(path) + else: + return self._get_commits(path) + + +class _GitWrapperLegacy(_GitWrapperCommon): + def _get_commits(self, path): + ''' + Get all commits including path without following renames + + :param path: Path which we will find commits for + + :returns: Sequence of commit objects. Newest to oldest + ''' + return self.repo.commits(path=path) + + @staticmethod + def get_commit_date(commit, tz_name): + ''' + Get datetime of commit comitted_date + ''' + return set_date_tzinfo( + datetime.fromtimestamp(mktime(commit.committed_date)), + tz_name=tz_name) + + +class _GitWrapper(_GitWrapperCommon): + def _get_commits(self, path): + ''' + Get all commits including path without following renames + + :param path: Path which we will find commits for + + :returns: Sequence of commit objects. Newest to oldest + + .. NOTE :: + If this fails it could be that your gitpython version is out of sync with the git + binary on your distro. Make sure you use the correct gitpython version. + + Alternatively enabling GIT_FILETIME_FOLLOW may also make your problem go away. + ''' + return list(self.repo.iter_commits(paths=path)) + + @staticmethod + def get_commit_date(commit, tz_name): + ''' + Get datetime of commit comitted_date + ''' + return set_date_tzinfo( + datetime.fromtimestamp(commit.committed_date), + tz_name=tz_name) + + +_wrapper_cache = {} + + +def git_wrapper(path): + ''' + Get appropriate wrapper factory and cache instance for path + ''' + path = os.path.abspath(path) + if path not in _wrapper_cache: + if hasattr(Repo, 'commits'): + _wrapper_cache[path] = _GitWrapperLegacy(path) + else: + _wrapper_cache[path] = _GitWrapper(path) + + return _wrapper_cache[path] diff --git a/plugins/filetime_from_git/registration.py b/plugins/filetime_from_git/registration.py new file mode 100644 index 0000000..e91d254 --- /dev/null +++ b/plugins/filetime_from_git/registration.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +""" +Handle registration and setup for plugin +""" +import logging +from blinker import signal +from .content_adapter import GitContentAdapter +from pelican import signals + +DEV_LOGGER = logging.getLogger(__name__) + +content_git_object_init = signal('content_git_object_init') + +def send_content_git_object_init(content): + content_git_object_init.send(content, git_content=GitContentAdapter(content)) + + +def setup_option_defaults(pelican_inst): + pelican_inst.settings.setdefault('GIT_FILETIME_FROM_GIT', True) + pelican_inst.settings.setdefault('GIT_HISTORY_FOLLOWS_RENAME', True) + pelican_inst.settings.setdefault('GIT_SHA_METADATA', True) + pelican_inst.settings.setdefault('GIT_GENERATE_PERMALINK', False) + + +def register(): + signals.content_object_init.connect(send_content_git_object_init) + signals.initialized.connect(setup_option_defaults) + + # Import actions + from . import actions diff --git a/plugins/filetime_from_git/utils.py b/plugins/filetime_from_git/utils.py new file mode 100644 index 0000000..d5bd52f --- /dev/null +++ b/plugins/filetime_from_git/utils.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +""" +Utility functions +""" +from datetime import datetime +import logging +from pelican.utils import set_date_tzinfo + +DEV_LOGGER = logging.getLogger(__name__) + + +STRING_BOOLS = { + 'yes': True, + 'no': False, + 'true': True, + 'false': False, + '0': False, + '1': True, + 'on': True, + 'off': False, +} + + +def string_to_bool(string): + ''' + Convert a string to a bool based + ''' + return STRING_BOOLS[string.strip().lower()] + + +def datetime_from_timestamp(timestamp, content): + """ + Helper function to add timezone information to datetime, + so that datetime is comparable to other datetime objects in recent versions + that now also have timezone information. + """ + return set_date_tzinfo( + datetime.fromtimestamp(timestamp), + tz_name=content.settings.get('TIMEZONE', None)) diff --git a/plugins/related_posts/Readme.rst b/plugins/related_posts/Readme.rst new file mode 100644 index 0000000..f0456fc --- /dev/null +++ b/plugins/related_posts/Readme.rst @@ -0,0 +1,34 @@ +Related posts +------------- + +This plugin adds the ``related_posts`` variable to the article's context. +By default, up to 5 articles are listed. You can customize this value by +defining ``RELATED_POSTS_MAX`` in your settings file:: + + RELATED_POSTS_MAX = 10 + +You can then use the ``article.related_posts`` variable in your templates. +For example:: + + {% if article.related_posts %} + + {% endif %} + + +Your related posts should share a common tag. You can also use ``related_posts:`` in your post's meta data. +The 'related_posts:' meta data works together with your existing slugs:: + + related_posts: slug1, slug2, slug3, ... slugN + +``N`` represents the ``RELATED_POSTS_MAX``. + +Additionally, you can specify:: + + RELATED_POSTS_SKIP_SAME_CATEGORY = True + +in your settings file. With this setting, ``article.related_posts`` will +contain only related posts from categories other than the original article's. diff --git a/plugins/related_posts/__init__.py b/plugins/related_posts/__init__.py new file mode 100644 index 0000000..057540e --- /dev/null +++ b/plugins/related_posts/__init__.py @@ -0,0 +1 @@ +from .related_posts import * diff --git a/plugins/related_posts/related_posts.py b/plugins/related_posts/related_posts.py new file mode 100644 index 0000000..fbb2426 --- /dev/null +++ b/plugins/related_posts/related_posts.py @@ -0,0 +1,56 @@ +""" +Related posts plugin for Pelican +================================ + +Adds related_posts variable to article's context +""" + +from pelican import signals +from collections import Counter +from itertools import chain + + +def add_related_posts(generator): + # get the max number of entries from settings + # or fall back to default (5) + numentries = generator.settings.get('RELATED_POSTS_MAX', 5) + # Skip all posts in the same category as the article + skipcategory = generator.settings.get('RELATED_POSTS_SKIP_SAME_CATEGORY', False) + for article in chain(generator.articles, generator.drafts): + # set priority in case of forced related posts + if hasattr(article,'related_posts'): + # split slugs + related_posts = article.related_posts.split(',') + posts = [] + # get related articles + for slug in related_posts: + i = 0 + slug = slug.strip() + for a in generator.articles: + if i >= numentries: # break in case there are max related psots + break + if a.slug == slug: + posts.append(a) + i += 1 + + article.related_posts = posts + else: + # no tag, no relation + if not hasattr(article, 'tags'): + continue + + # score = number of common tags + related = chain(*(generator.tags[tag] for tag in article.tags)) + if skipcategory: + related = (other for other in related + if other.category != article.category) + scores = Counter(related) + + # remove itself + scores.pop(article, None) + + article.related_posts = [other for other, count + in scores.most_common(numentries)] + +def register(): + signals.article_generator_finalized.connect(add_related_posts) diff --git a/plugins/tipue_search/README.md b/plugins/tipue_search/README.md new file mode 100644 index 0000000..1a2d615 --- /dev/null +++ b/plugins/tipue_search/README.md @@ -0,0 +1,67 @@ +Tipue Search +============ + +A Pelican plugin to serialize generated HTML to JSON that can be used by jQuery plugin - Tipue Search. + +Copyright (c) Talha Mansoor + +Author | Talha Mansoor +----------------|----- +Author Email | talha131@gmail.com +Author Homepage | http://onCrashReboot.com +Github Account | https://github.com/talha131 + +Why do you need it? +=================== + +Static sites do not offer search feature out of the box. [Tipue Search](http://www.tipue.com/search/) +is a jQuery plugin that search the static site without using any third party service, like DuckDuckGo or Google. + +Tipue Search offers 4 search modes. Its [JSON search mode](http://www.tipue.com/search/docs/json/) is the best search mode +especially for large sites. + +Tipue's JSON search mode requires the textual content of site in JSON format. + +Requirements +============ + +Tipue Search requires BeautifulSoup. + +```bash +pip install beautifulsoup4 +``` + +How Tipue Search works +========================= + +Tipue Search serializes the generated HTML into JSON. Format of JSON is as follows + +```python +{ + "pages": [ + { + "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur sodales ligula in libero.", + "tags": "Example Category", + "url" : "http://oncrashreboot.com/plugin-example.html", + "title": "Everything you want to know about Lorem Ipsum" + }, + { + "text": "Sed dignissim lacinia nunc. Curabitur tortor. Pellentesque nibh. Aenean quam. In scelerisque sem at dolor. Maecenas mattis. Sed convallis tristique sem. Proin ut ligula vel nunc egestas porttitor. Morbi lectus risus, iaculis vel, suscipit quis, luctus non, massa. Fusce ac turpis quis ligula lacinia aliquet. Mauris ipsum. Nulla metus metus, ullamcorper vel, tincidunt sed, euismod in, nibh.", + "tags": "Example Category", + "url" : "http://oncrashreboot.com/plugin-example-2.html", + "title": "Review of the book Lorem Ipsum" + } + ] +} +``` + +JSON is written to file `tipuesearch_content.json` which is created in the root of `output` directory. + +How to use +========== + +To utilize JSON Search mode, your theme needs to have Tipue Search properly configured in it. [Official documentation](http://www.tipue.com/search/docs/#json) has the required details. + +Pelican [Elegant Theme](https://github.com/talha131/pelican-elegant) and [Plumage +theme](https://github.com/kdeldycke/plumage) have Tipue Search configured. You can view their +code to understand the configuration. diff --git a/plugins/tipue_search/__init__.py b/plugins/tipue_search/__init__.py new file mode 100644 index 0000000..ebd6c06 --- /dev/null +++ b/plugins/tipue_search/__init__.py @@ -0,0 +1 @@ +from .tipue_search import * diff --git a/plugins/tipue_search/tipue_search.py b/plugins/tipue_search/tipue_search.py new file mode 100644 index 0000000..a54e9da --- /dev/null +++ b/plugins/tipue_search/tipue_search.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- +""" +Tipue Search +============ + +A Pelican plugin to serialize generated HTML to JSON +that can be used by jQuery plugin - Tipue Search. + +Copyright (c) Talha Mansoor +""" + +from __future__ import unicode_literals + +import os.path +import json +from bs4 import BeautifulSoup +from codecs import open +try: + from urlparse import urljoin +except ImportError: + from urllib.parse import urljoin + +from pelican import signals + + +class Tipue_Search_JSON_Generator(object): + + def __init__(self, context, settings, path, theme, output_path, *null): + + self.output_path = output_path + self.context = context + self.siteurl = settings.get('SITEURL') + self.tpages = settings.get('TEMPLATE_PAGES') + self.output_path = output_path + self.json_nodes = [] + + + def create_json_node(self, page): + + if getattr(page, 'status', 'published') != 'published': + return + + soup_title = BeautifulSoup(page.title.replace(' ', ' '), 'html.parser') + page_title = soup_title.get_text(' ', strip=True).replace('“', '"').replace('”', '"').replace('’', "'").replace('^', '^') + + soup_text = BeautifulSoup(page.content, 'html.parser') + page_text = soup_text.get_text(' ', strip=True).replace('“', '"').replace('”', '"').replace('’', "'").replace('¶', ' ').replace('^', '^') + page_text = ' '.join(page_text.split()) + + if getattr(page, 'category', 'None') == 'None': + page_category = '' + else: + page_category = page.category.name + + page_url = self.siteurl + '/' + page.url + + node = {'title': page_title, + 'text': page_text, + 'tags': page_category, + 'url': page_url} + + self.json_nodes.append(node) + + + def create_tpage_node(self, srclink): + + srcfile = open(os.path.join(self.output_path, self.tpages[srclink]), encoding='utf-8') + soup = BeautifulSoup(srcfile, 'html.parser') + page_text = soup.get_text() + + # What happens if there is not a title. + if soup.title is not None: + page_title = soup.title.string + else: + page_title = '' + + # Should set default category? + page_category = '' + + page_url = urljoin(self.siteurl, self.tpages[srclink]) + + node = {'title': page_title, + 'text': page_text, + 'tags': page_category, + 'url': page_url} + + self.json_nodes.append(node) + + + def generate_output(self, writer): + path = os.path.join(self.output_path, 'tipuesearch_content.json') + + pages = self.context['pages'] + self.context['articles'] + + for article in self.context['articles']: + pages += article.translations + + for srclink in self.tpages: + self.create_tpage_node(srclink) + + for page in pages: + self.create_json_node(page) + root_node = {'pages': self.json_nodes} + + with open(path, 'w', encoding='utf-8') as fd: + json.dump(root_node, fd, separators=(',', ':'), ensure_ascii=False) + + +def get_generators(generators): + return Tipue_Search_JSON_Generator + + +def register(): + signals.get_generators.connect(get_generators) diff --git a/publishconf.py b/publishconf.py new file mode 100644 index 0000000..85ff8ef --- /dev/null +++ b/publishconf.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- # +from __future__ import unicode_literals + +# This file is only used if you use `make publish` or +# explicitly specify it as your config file. + +import os +import sys +sys.path.append(os.curdir) +from pelicanconf import * + +SITEURL = '' +RELATIVE_URLS = False + +FEED_ALL_ATOM = 'feeds/all.atom.xml' +CATEGORY_FEED_ATOM = 'feeds/%s.atom.xml' + +DELETE_OUTPUT_DIRECTORY = True + +# Following items are often useful when publishing + +#DISQUS_SITENAME = "" +#GOOGLE_ANALYTICS = "" diff --git a/theme/static/asciibinder.css b/theme/static/asciibinder.css new file mode 100644 index 0000000..f5a220c --- /dev/null +++ b/theme/static/asciibinder.css @@ -0,0 +1,590 @@ +@import url(https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css); +/* ------------------------------------------------------------ +Image: "Spin" https://www.flickr.com/photos/eflon/3655695161/ +Author: eflon https://www.flickr.com/photos/eflon/ +License: https://creativecommons.org/licenses/by/2.0/ +---------------------------------------------------------------*/ +.attribution { + text-align: center; + position: relative; + bottom: -20px; +} +.attribution .btn { + color: #808080; + color: rgba(175,175,175, .65); + font-size: 11px; +} +.attribution .btn:hover { + text-decoration: none; + color: #aaa; +} +.popover-content { + font-size: 12px; + line-height: 1.3; + font-weight: normal; +} + +@media screen and (max-width: 980px) { + body { + margin-bottom: 200px; + } + footer { + text-align: center; + } + footer .text-right { + text-align: center !important; + } + #footer_social .first { + margin-left: 0; + } + #footer_social > a { + top: 24px; + } +} + +.fa-inverse:hover { + color: #ccc; +} + +.collapse a.active { + background-color: #DEEAF4; + color: #000; + position: relative; +} + +.collapse a.active:hover { + text-decoration: none; +} + +.collapse a.active:before { + background-color: #A0C3E5; + content: ""; + display: inline-block; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 3px; +} + +.main h2, .main .h2 { + border-top: 0px; + padding-top: 10px; + font-size: 28px; +} + +.page-header .img-responsive { + display: inline; +} + +.docs-content h1, +.docs-content h2, +.docs-content h3, +.docs-content h4, +.docs-content h5, +.docs-content h6 + { + font-weight: bold; + color: #444; +} + +.docs-content h1{ + font-size: 1.5rem +} +.docs-content h2{ + font-size: 1.3rem +} +.docs-content h3{ + font-size: 1.1rem +} +.docs-content h4, +.docs-content h5, +.docs-content h6{ + font-size: 1rem; +} + +.docs-content .page-header h1 { + line-height: 1.5rem; + padding-bottom: 0.2em; + margin-bottom: 0.7em; + border-bottom: 1px solid #ccc; + +} + + +nav .breadcrumb{ + background: none; + font-size:0.8em; + padding-left:10px; + padding-bottom:0px; +} + +.nav > li > a.hover{ + background-color: none; +} + +.breadcrumb-item + .breadcrumb-item::before{ + content: '\f054'; + font-family: FontAwesome; + font-size: 0.8em; +} + +h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { + position: relative; +} + +h2 > a.anchor, h3 > a.anchor, h4 > a.anchor, h5 > a.anchor, h6 > a.anchor { + display: block; + font-weight: normal; + margin-left: -1.5ex; + position: absolute; + text-align: center; + text-decoration: none !important; + visibility: hidden; + width: 1.5ex; + z-index: 1001; +} + +h2 > a.anchor:before, h3 > a.anchor:before, h4 > a.anchor:before, h5 > a.anchor:before, h6 > a.anchor:before { + content: "\f0c1"; + display: block; + font-family: FontAwesome; + font-size: 0.7em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + padding-top: 0.2em; +} + +h4 > a.anchor:before, h5 > a.anchor:before, h6 > a.anchor:before { + font-size: 1em; +} + +h2:hover > a.anchor, +h2 > a.anchor:hover, +h3:hover > a.anchor, +h3 > a.anchor:hover, +h4:hover > a.anchor, +h4 > a.anchor:hover, +h5:hover > a.anchor, +h5 > a.anchor:hover, +h6:hover > a.anchor, +h6 > a.anchor:hover { + visibility: visible; +} + +.main { + border-left: 1px solid #e7e7e7; + margin-left: -1px; + padding-left: 25px; +} + + +@media (min-width: 768px) { + .main { + padding-left: 30px; + } +} + +.masthead, .footer{ + position: relative; + z-index: 1; +} + +.footer a{ + color:#aaa +} + +.footer{ + font-size:0.8em; +} + +.footer h3{ + font-size:1.3em; + font-weight: bold; + text-transform: uppercase; +} + +/* + * Sidebar + */ + + .docs-sidebar{ + background: #eee; + box-shadow: -3000px 0 0 3000px #eee; + } + +.nav-header { + font-size: 16px; +} + +.nav-header ul { + font-size: 14px; + padding-left:1em; +} + +.nav-header ul li a { + display: block; + padding: 3px 0px 4px 7px; + font-size: 13px; + font-weight: normal; +} + +.nav-sidebar .fa { + text-align: center; + top: -1px; + width: 14px; +} + +.docs-sidebar li a { + color: #555; +} + +.nav-sidebar li a:hover { + color: #000; +} + +.nav-sidebar ul li ul.nav-tertiary li a { + padding-left: 50px; +} + +.nav-sidebar > li > a { + padding: 7px 0; +} + +.nav-sidebar > li > a:focus, .nav-sidebar > li > a:hover { + background: transparent; +} + +.sidebar { + font-weight: 300; + display: none; + padding-top: 13px; +} + +@media screen and (max-width: 767px) { + .sidebar { + padding-left: 30px; + padding-right: 0; + } +} + +@media screen and (min-width: 768px) { + .sidebar { + border-right: 1px solid #e7e7e7; + display: block; + } +} + + /* Remnants of Asciidoctor default stylesheet - remove styles as needed */ + +#map_canvas img, #map_canvas embed, #map_canvas object, .map_canvas img, .map_canvas embed, .map_canvas object { max-width: none !important; } +.left { float: left !important; } +.right { float: right !important; } +.text-left { text-align: left !important; } +.text-right { text-align: right !important; } +.text-center { text-align: center !important; } +.text-justify { text-align: justify !important; } +.hide { display: none; } +.subheader, #content #toctitle, .admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { line-height: 1.4; color: #7a2518; font-weight: 300; margin-top: 0.2em; margin-bottom: 0.5em; } +abbr, acronym { text-transform: uppercase; font-size: 90%; color: #333333; border-bottom: 1px dotted #dddddd; cursor: help; } +abbr { text-transform: none; } +blockquote { margin: 0 0 1.25em; padding: 0.5625em 1.25em 0 1.1875em; border-left: 3px solid #487c58; } +blockquote cite { display: block; font-size: inherit; color: #454545; } +blockquote cite:before { content: "\2014 \0020"; } +blockquote cite a, blockquote cite a:visited { color: #454545; } +blockquote, blockquote p { line-height: 1.6; color: #6e6e6e; } +@media only screen and (min-width: 768px) { + #toctitle, .sidebarblock > .content > .title { line-height: 1.4; } + #toctitle, .sidebarblock > .content > .title { font-size: 1.6875em; } +} +table { background: white; margin-bottom: 1.25em; border: solid 1px #dddddd; } +table thead, table tfoot { background: whitesmoke; font-weight: bold; } +table thead tr th, table thead tr td, table tfoot tr th, table tfoot tr td { padding: 0.5em 0.625em 0.625em; font-size: inherit; color: #333333; text-align: left; } +table tr th, table tr td { padding: 0.5625em 0.625em; font-size: inherit; color: #333333; } +table tr.even, table tr.alt, table tr:nth-of-type(even) { background: #f9f9f9; } +table thead tr th, table tfoot tr th, table tbody tr td, table tr td, table tfoot tr td { display: table-cell; line-height: 1.6; } +.clearfix:before, .clearfix:after, .float-group:before, .float-group:after { content: " "; display: table; } +.clearfix:after, .float-group:after { clear: both; } +*:not(pre) > code { font-size: inherit; padding: 0; white-space: nowrap; background-color: inherit; border: 0 solid #dddddd; -webkit-border-radius: 4px; border-radius: 4px; text-shadow: none; line-height: 1; } +.keyseq { color: #666666; } +kbd:not(.keyseq) { display: inline-block; color: #333333; font-size: 0.75em; line-height: 1.4; background-color: #f7f7f7; border: 1px solid #ccc; -webkit-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 0 0 0 2px white inset; margin: -0.15em 0.15em 0 0.15em; padding: 0.2em 0.6em 0.2em 0.5em; vertical-align: middle; white-space: nowrap; } +.keyseq kbd:first-child { margin-left: 0; } +.keyseq kbd:last-child { margin-right: 0; } +.menuseq, .menu { color: #1a1a1a; } +b.button:before, b.button:after { position: relative; top: -1px; font-weight: normal; } +b.button:before { content: "["; padding: 0 3px 0 2px; } +b.button:after { content: "]"; padding: 0 2px 0 3px; } +p a > code:hover { color: #561309; } +#header, #content, #footnotes, #footer { width: 100%; margin-left: auto; margin-right: auto; margin-top: 0; margin-bottom: 0; max-width: 62.5em; *zoom: 1; position: relative; padding-left: 0.9375em; padding-right: 0.9375em; } +#header:before, #header:after, #content:before, #content:after, #footnotes:before, #footnotes:after, #footer:before, #footer:after { content: " "; display: table; } +#header:after, #content:after, #footnotes:after, #footer:after { clear: both; } +#content:before { content: none; } +#header { margin-bottom: 2.5em; } +#header > h1 { color: black; font-weight: 300; border-bottom: 1px solid #d8d8d8; margin-bottom: -28px; padding-bottom: 32px; } +#header span { color: #6e6e6e; } +#header #revnumber { text-transform: capitalize; } +#header br { display: none; } +#header br + span { padding-left: 3px; } +#header br + span:before { content: "\2013 \0020"; } +#header br + span.author { padding-left: 0; } +#header br + span.author:before { content: ", "; } +#toc { border-bottom: 3px double #e5e5e5; padding-top: 1em; padding-bottom: 1.25em; } +#toc > ul { margin-left: 0.25em; } +#toc ul.sectlevel0 > li > a { font-style: italic; } +#toc ul.sectlevel0 ul.sectlevel1 { margin-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; } +#toc ul { font-family: "Open Sans", "DejaVu Sans", "Sans", sans-serif; list-style-type: none; } +#toc a { text-decoration: none; } +#toc a:active { text-decoration: underline; } +#toctitle { color: #7a2518; } +@media only screen and (min-width: 768px) { body.toc2 { padding-left: 15em; padding-right: 0; } + #toc.toc2 { background-color: #fafaf9; position: fixed; width: 15em; left: 0; top: 0; border-right: 1px solid #e5e5e5; border-bottom: 0; z-index: 1000; padding: 1.25em 1em; height: 100%; overflow: auto; } + #toc.toc2 #toctitle { margin-top: 0; font-size: 1.2em; } + #toc.toc2 > ul { font-size: .90em; margin-bottom: 0; } + #toc.toc2 ul ul { margin-left: 0; padding-left: 1em; } + #toc.toc2 ul.sectlevel0 ul.sectlevel1 { padding-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; } + body.toc2.toc-right { padding-left: 0; padding-right: 15em; } + body.toc2.toc-right #toc.toc2 { border-right: 0; border-left: 1px solid #e5e5e5; left: auto; right: 0; } } +@media only screen and (min-width: 1280px) { body.toc2 { padding-left: 20em; padding-right: 0; } + #toc.toc2 { width: 20em; } + #toc.toc2 #toctitle { font-size: 1.375em; } + #toc.toc2 > ul { font-size: 0.95em; } + #toc.toc2 ul ul { padding-left: 1.25em; } + body.toc2.toc-right { padding-left: 0; padding-right: 20em; } } +#content #toc { border-style: solid; border-width: 1px; border-color: #e3e3dd; margin-bottom: 1.25em; padding: 1.25em; background: #fafaf9; border-width: 0; -webkit-border-radius: 4px; border-radius: 4px; } +#content #toc > :first-child { margin-top: 0; } +#content #toc > :last-child { margin-bottom: 0; } +#content #toctitle { font-size: 1.375em; } +#footer { max-width: 100%; background-color: #333333; padding: 1.25em; } +#footer-text { color: #cccccc; line-height: 1.44; } +.audioblock, .imageblock, .literalblock, .listingblock, .stemblock, .verseblock, .videoblock { margin-bottom: 2.5em; } +.admonitionblock td.content > .title, .audioblock > .title, .exampleblock > .title, .imageblock > .title, .listingblock > .title, .literalblock > .title, .stemblock > .title, .openblock > .title, .paragraph > .title, .quoteblock > .title, table.tableblock > .title, .verseblock > .title, .videoblock > .title, .dlist > .title, .olist > .title, .ulist > .title, .qlist > .title, .hdlist > .title { text-rendering: optimizeLegibility; text-align: left; font-family: "Noto Serif", "DejaVu Serif", "Serif", serif; font-weight: normal; font-style: italic; } +table.tableblock > caption.title { white-space: nowrap; overflow: visible; max-width: 0; } +table.tableblock #preamble > .sectionbody > .paragraph:first-of-type p { font-size: inherit; } +.admonitionblock > table { border: 0; background: none; width: 100%; } +.admonitionblock > table td.icon { text-align: center; width: 80px; } +.admonitionblock > table td.icon img { max-width: none; } +.admonitionblock > table td.icon .title { font-weight: 300; text-transform: uppercase; } +.admonitionblock > table td.content { padding-left: 0; padding-right: 1.25em; color: #6e6e6e; } +.admonitionblock > table td.content > :last-child > :last-child { margin-bottom: 0; } +.exampleblock > .content { border-style: solid; border-width: 1px; border-color: #e6e6e6; margin-bottom: 1.25em; padding: 1.25em; background: white; -webkit-border-radius: 4px; border-radius: 4px; } +.exampleblock > .content > :first-child { margin-top: 0; } +.exampleblock > .content > :last-child { margin-bottom: 0; } +.exampleblock > .content h1, .exampleblock > .content h2, .exampleblock > .content h3, .exampleblock > .content #toctitle, .sidebarblock.exampleblock > .content > .title, .exampleblock > .content h4, .exampleblock > .content h5, .exampleblock > .content h6, .exampleblock > .content p { color: #333333; } +.exampleblock > .content h1, .exampleblock > .content h2, .exampleblock > .content h3, .exampleblock > .content #toctitle, .sidebarblock.exampleblock > .content > .title, .exampleblock > .content h4, .exampleblock > .content h5, .exampleblock > .content h6 { line-height: 1; margin-bottom: 0.625em; } +.exampleblock > .content h1.subheader, .exampleblock > .content h2.subheader, .exampleblock > .content h3.subheader, .exampleblock > .content .subheader#toctitle, .sidebarblock.exampleblock > .content > .subheader.title, .exampleblock > .content h4.subheader, .exampleblock > .content h5.subheader, .exampleblock > .content h6.subheader { line-height: 1.4; } +.exampleblock.result > .content { -webkit-box-shadow: 0 1px 8px #e3e3dd; box-shadow: 0 1px 8px #e3e3dd; } +.sidebarblock { border-style: solid; border-width: 1px; border-color: #e3e3dd; margin-top: -1.0em; margin-bottom: 1.6em; margin-left: 1em; padding: .5em; background: #F1F3F5; -webkit-border-radius: 4px; border-radius: 4px; overflow-x: auto; float: right; width: 40%; } +.sidebarblock > :first-child { margin-top: 0; } +.sidebarblock > :last-child { margin-bottom: 0; } +.sidebarblock h1, .sidebarblock h2, .sidebarblock h3, .sidebarblock #toctitle, .sidebarblock > .content > .title, .sidebarblock h4, .sidebarblock h5, .sidebarblock h6, .sidebarblock p { color: #333333; } +.sidebarblock h1, .sidebarblock h2, .sidebarblock h3, .sidebarblock #toctitle, .sidebarblock > .content > .title, .sidebarblock h4, .sidebarblock h5, .sidebarblock h6 { line-height: 1; margin-bottom: 0.625em; } +.sidebarblock h1.subheader, .sidebarblock h2.subheader, .sidebarblock h3.subheader, .sidebarblock .subheader#toctitle, .sidebarblock > .content > .subheader.title, .sidebarblock h4.subheader, .sidebarblock h5.subheader, .sidebarblock h6.subheader { line-height: 1.4; } +.sidebarblock > .content > .title { color: inherit; font-size: 28px; font-weight: 500; margin-top: 0; line-height: 1.6; } +.width50 { width: 50% ! important} +.exampleblock > .content > :last-child > :last-child, .exampleblock > .content .olist > ol > li:last-child > :last-child, .exampleblock > .content .ulist > ul > li:last-child > :last-child, .exampleblock > .content .qlist > ol > li:last-child > :last-child, .sidebarblock > .content > :last-child > :last-child, .sidebarblock > .content .olist > ol > li:last-child > :last-child, .sidebarblock > .content .ulist > ul > li:last-child > :last-child, .sidebarblock > .content .qlist > ol > li:last-child > :last-child { margin-bottom: 0; } +.literalblock pre, .literalblock pre[class], .listingblock pre, .listingblock pre[class] { border: 0px; background-color: #F0F3F5; -webkit-border-radius: 5px; border-radius: 5px; padding: 1.5em 2.5em; word-wrap: break-word; } +.literalblock pre.nowrap, .literalblock pre[class].nowrap, .listingblock pre.nowrap, .listingblock pre[class].nowrap { overflow-x: auto; white-space: pre; word-wrap: normal; } +.literalblock pre > code, .literalblock pre[class] > code, .listingblock pre > code, .listingblock pre[class] > code { display: block; } +.listingblock > .content { position: relative; } +.listingblock:hover code[class*=" language-"]:before { text-transform: uppercase; font-size: 0.9em; color: #999; position: absolute; top: 0.375em; right: 0.375em; } +.listingblock:hover code.asciidoc:before { content: "asciidoc"; } +.listingblock:hover code.clojure:before { content: "clojure"; } +.listingblock:hover code.css:before { content: "css"; } +.listingblock:hover code.go:before { content: "go"; } +.listingblock:hover code.groovy:before { content: "groovy"; } +.listingblock:hover code.html:before { content: "html"; } +.listingblock:hover code.java:before { content: "java"; } +.listingblock:hover code.javascript:before { content: "javascript"; } +.listingblock:hover code.python:before { content: "python"; } +.listingblock:hover code.ruby:before { content: "ruby"; } +.listingblock:hover code.sass:before { content: "sass"; } +.listingblock:hover code.scss:before { content: "scss"; } +.listingblock:hover code.xml:before { content: "xml"; } +.listingblock:hover code.yaml:before { content: "yaml"; } +.listingblock.terminal pre .command:before { content: attr(data-prompt); padding-right: 0.5em; color: #999; } +.listingblock.terminal pre .command:not([data-prompt]):before { content: '$'; } +table.pyhltable { border: 0; margin-bottom: 0; } +table.pyhltable td { vertical-align: top; padding-top: 0; padding-bottom: 0; } +table.pyhltable td.code { padding-left: .75em; padding-right: 0; } +.highlight.pygments .lineno, table.pyhltable td:not(.code) { color: #999; padding-left: 0; padding-right: .5em; border-right: 1px solid #d8d8d8; } +.highlight.pygments .lineno { display: inline-block; margin-right: .25em; } +table.pyhltable .linenodiv { background-color: transparent !important; padding-right: 0 !important; } +.quoteblock { margin: 0 0 1.25em 0; padding: 0.5625em 1.25em 0 1.1875em; border-left: 3px solid #487c58; } +.quoteblock blockquote { margin: 0 0 1.25em 0; padding: 0 0 0.625em 0; border: 0; } +.quoteblock blockquote > .paragraph:last-child p { margin-bottom: 0; } +.quoteblock .attribution { margin-top: -0.625em; padding-bottom: 0.625em; font-size: inherit; color: #454545; line-height: 1.6; } +.quoteblock .attribution br { display: none; } +.quoteblock .attribution cite { display: block; } +table.tableblock { max-width: 100%; } +table.tableblock td .paragraph:last-child p > p:last-child, table.tableblock th > p:last-child, table.tableblock td > p:last-child { margin-bottom: 0; } +table.spread { width: 100%; } +table.tableblock, th.tableblock, td.tableblock { border: 0 solid #dddddd; } +table.grid-all th.tableblock, table.grid-all td.tableblock { border-width: 0 1px 1px 0; } +table.grid-all tfoot > tr > th.tableblock, table.grid-all tfoot > tr > td.tableblock { border-width: 1px 1px 0 0; } +table.grid-cols th.tableblock, table.grid-cols td.tableblock { border-width: 0 1px 0 0; } +table.grid-all * > tr > .tableblock:last-child, table.grid-cols * > tr > .tableblock:last-child { border-right-width: 0; } +table.grid-rows th.tableblock, table.grid-rows td.tableblock { border-width: 0 0 1px 0; } +table.grid-all tbody > tr:last-child > th.tableblock, table.grid-all tbody > tr:last-child > td.tableblock, table.grid-all thead:last-child > tr > th.tableblock, table.grid-rows tbody > tr:last-child > th.tableblock, table.grid-rows tbody > tr:last-child > td.tableblock, table.grid-rows thead:last-child > tr > th.tableblock { border-bottom-width: 0; } +table.grid-rows tfoot > tr > th.tableblock, table.grid-rows tfoot > tr > td.tableblock { border-width: 1px 0 0 0; } +table.frame-all { border-width: 1px; } +table.frame-sides { border-width: 0 1px; } +table.frame-topbot { border-width: 1px 0; } +th.halign-left, td.halign-left { text-align: left; } +th.halign-right, td.halign-right { text-align: right; } +th.halign-center, td.halign-center { text-align: center; } +th.valign-top, td.valign-top { vertical-align: top; } +th.valign-bottom, td.valign-bottom { vertical-align: bottom; } +th.valign-middle, td.valign-middle { vertical-align: middle; } +table thead th, table tfoot th { font-weight: bold; } +tbody tr th { display: table-cell; line-height: 1.6; background: whitesmoke; } +tbody tr th, tbody tr th p, tfoot tr th, tfoot tr th p { color: #333333; font-weight: bold; } +td > div.verse { white-space: pre; } +ul.unstyled, ol.unnumbered, ul.checklist, ul.none { list-style-type: none; } +ul.unstyled, ol.unnumbered, ul.checklist { margin-left: 0.625em; } +ul.checklist li > p:first-child > .fa-check-square-o:first-child, ul.checklist li > p:first-child > input[type="checkbox"]:first-child { margin-right: 0.25em; } +ul.checklist li > p:first-child > input[type="checkbox"]:first-child { position: relative; top: 1px; } +ul.inline { margin: 0 auto 0.625em auto; margin-left: -1.375em; margin-right: 0; padding: 0; list-style: none; overflow: hidden; } +ul.inline > li { list-style: none; float: left; margin-left: 1.375em; display: block; } +ul.inline > li > * { display: block; } +.unstyled dl dt { font-weight: normal; font-style: normal; } +ol.arabic { list-style-type: decimal; } +ol.decimal { list-style-type: decimal-leading-zero; } +ol.loweralpha { list-style-type: lower-alpha; } +ol.upperalpha { list-style-type: upper-alpha; } +ol.lowerroman { list-style-type: lower-roman; } +ol.upperroman { list-style-type: upper-roman; } +ol.lowergreek { list-style-type: lower-greek; } +.hdlist > table, .colist > table { border: 0; background: none; } +.hdlist > table > tbody > tr, .colist > table > tbody > tr { background: none; } +td.hdlist1 { padding-right: .75em; font-weight: bold; } +td.hdlist1, td.hdlist2 { vertical-align: top; } +.literalblock + .colist, .listingblock + .colist { margin-top: -0.5em; } +.colist > table tr > td:first-of-type { padding: 0 .75em; line-height: 1; } +.colist > table tr > td:last-of-type { padding: 0.25em 0; } +.qanda > ol > li > p > em:only-child { color: #1d4b8f; } +.thumb, .th { line-height: 0; display: inline-block; border: solid 4px white; -webkit-box-shadow: 0 0 0 1px #dddddd; box-shadow: 0 0 0 1px #dddddd; } +.imageblock.left, .imageblock[style*="float: left"] { margin: 0.25em 0.625em 1.25em 0; } +.imageblock.right, .imageblock[style*="float: right"] { margin: 0.25em 0 1.25em 0.625em; } +.imageblock > .title { margin-bottom: 0; } +.imageblock.thumb, .imageblock.th { border-width: 6px; } +.imageblock.thumb > .title, .imageblock.th > .title { padding: 0 0.125em; } +.image.left, .image.right { margin-top: 0.25em; margin-bottom: 0.25em; display: inline-block; line-height: 0; } +.image.left { margin-right: 0.625em; } +.image.right { margin-left: 0.625em; } +a.image { text-decoration: none; } +span.footnote, span.footnoteref { vertical-align: super; font-size: 0.875em; } +span.footnote a, span.footnoteref a { text-decoration: none; } +span.footnote a:active, span.footnoteref a:active { text-decoration: underline; } +#footnotes { padding-top: 0.75em; padding-bottom: 0.75em; margin-bottom: 0.625em; } +#footnotes hr { width: 20%; min-width: 6.25em; margin: -.25em 0 .75em 0; border-width: 1px 0 0 0; } +#footnotes .footnote { padding: 0 0.375em; line-height: 1.3; font-size: 0.875em; margin-left: 1.2em; text-indent: -1.2em; margin-bottom: .2em; } +#footnotes .footnote a:first-of-type { font-weight: bold; text-decoration: none; } +#footnotes .footnote:last-of-type { margin-bottom: 0; } +#content #footnotes { margin-top: -0.625em; margin-bottom: 0; padding: 0.75em 0; } +.gist .file-data > table { border: none; background: #fff; width: 100%; margin-bottom: 0; } +.gist .file-data > table td.line-data { width: 99%; } +div.unbreakable { page-break-inside: avoid; } +.replaceable { font-style: italic; font-color: inherit; font-family: inherit; } +.parameter { font-style: italic; font-family: monospace; } +.userinput { font-weight: bold; font-family: monospace; } +.envar { font-weight: bold; font-family: monospace; font-size: 90%; } +.sysitem { font-weight: bold; font-size: 90%; } +.package { font-weight: bold; font-size: 90%; } +.filename { font-weight: bold; font-style: italic; font-size: 90%; } +.big { font-size: larger; } +.small { font-size: smaller; } +.underline { text-decoration: underline; } +.overline { text-decoration: overline; } +.line-through { text-decoration: line-through; } +.aqua { color: #00bfbf; } +.aqua-background { background-color: #00fafa; } +.black { color: black; } +.black-background { background-color: black; } +.blue { color: #0000bf; } +.blue-background { background-color: #0000fa; } +.fuchsia { color: #bf00bf; } +.fuchsia-background { background-color: #fa00fa; } +.gray { color: #606060; } +.gray-background { background-color: #7d7d7d; } +.green { color: #006000; } +.green-background { background-color: #007d00; } +.lime { color: #00bf00; } +.lime-background { background-color: #00fa00; } +.maroon { color: #600000; } +.maroon-background { background-color: #7d0000; } +.navy { color: #000060; } +.navy-background { background-color: #00007d; } +.olive { color: #606000; } +.olive-background { background-color: #7d7d00; } +.purple { color: #600060; } +.purple-background { background-color: #7d007d; } +.red { color: #bf0000; } +.red-background { background-color: #fa0000; } +.silver { color: #909090; } +.silver-background { background-color: #bcbcbc; } +.teal { color: #006060; } +.teal-background { background-color: #007d7d; } +.white { color: #bfbfbf; } +.white-background { background-color: #fafafa; } +.yellow { color: #bfbf00; } +.yellow-background { background-color: #fafa00; } +span.icon > .fa { cursor: default; } +.admonitionblock td.icon [class^="fa icon-"] { font-size: 2.5em; cursor: default; } +.admonitionblock td.icon .icon-note:before { content: "\f05a"; color: #4E9FDD; } +.admonitionblock td.icon .icon-tip:before { content: "\f0eb"; color: #2C8596; } +.admonitionblock td.icon .icon-warning:before { content: "\f071"; color: #ec7a08; } +.admonitionblock td.icon .icon-caution:before { content: "\f06d"; color: #ec7a08; } +.admonitionblock td.icon .icon-important:before { content: "\f06a"; color: #c00; } +.conum[data-value] { display: inline-block; color: white !important; background-color: #333333; -webkit-border-radius: 100px; border-radius: 100px; text-align: center; width: 20px; height: 20px; font-size: 12px; line-height: 20px; font-family: "Open Sans", "Sans", sans-serif; font-style: normal; font-weight: bold; text-indent: -1px; } +.conum[data-value] * { color: white !important; } +.conum[data-value] + b { display: none; } +.conum[data-value]:after { content: attr(data-value); } +pre .conum[data-value] { position: relative; top: -2px; } +b.conum * { color: inherit !important; } +.conum:not([data-value]):empty { display: none; } +.print-only { display: none !important; } +@media print { @page { margin: 1.25cm 0.75cm; } + * { -webkit-box-shadow: none !important; box-shadow: none !important; text-shadow: none !important; } + a, a:visited { color: inherit !important; text-decoration: underline !important; } + a[href^="http:"]:after, a[href^="https:"]:after { content: " (" attr(href) ")"; } + a[href^="#"], a[href^="#"]:visited, a[href^="mailto:"], a[href^="mailto:"]:visited { text-decoration: none !important; } + abbr[title]:after { content: " (" attr(title) ")"; } + pre, blockquote { page-break-inside: avoid; } + code { color: #191919; } + thead { display: table-header-group; } + tr, img { page-break-inside: avoid; } + img { max-width: 100% !important; } + p { orphans: 3; widows: 3; } + h2, h3, #toctitle, .sidebarblock > .content > .title, #toctitle, .sidebarblock > .content > .title { page-break-after: avoid; } + #toc, .sidebarblock { background: none !important; } + #toc { border-bottom: 1px solid #d8d8d8 !important; padding-bottom: 0 !important; } + .sect1 { padding-bottom: 0 !important; } + .sect1 + .sect1 { border: none !important; } + body.book #header { text-align: center; } + body.book #header > h1 { border: none !important; margin: 2.5em 0 1em 0; padding: 0; } + body.book #header span { line-height: 1.6; } + body.book #header br { display: block; } + body.book #header br + span { padding-left: 0; } + body.book #header br + span:before { content: none !important; } + body.book #toc { border: none !important; text-align: left !important; padding: 0 !important; } + #footer { background: none !important; } + #footer-text { color: #333333 !important; } + .hide-on-print { display: none !important; } + .print-only { display: block !important; } + .hide-for-print { display: none !important; } + .show-for-print { display: inherit !important; } } + +.corner-ribbon{ + width: 16em; + background: #3c6eb4 ; + position: absolute; + top: 3em; + right: -4em; + text-align: center; + line-height: 5ex; + color: #dedede; + transform: rotate(45deg); + -webkit-transform: rotate(45deg); + z-index: 999; +} +.corner-ribbon a { color: #FFFFFF; } diff --git a/theme/static/docs-fedora-logo.png b/theme/static/docs-fedora-logo.png new file mode 100644 index 0000000..5e6ff6f Binary files /dev/null and b/theme/static/docs-fedora-logo.png differ diff --git a/theme/static/docs-fedora-logo.svg b/theme/static/docs-fedora-logo.svg new file mode 100644 index 0000000..5570116 --- /dev/null +++ b/theme/static/docs-fedora-logo.svg @@ -0,0 +1,133 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + DOCUMENTATION + + + + + + + + + + + + + + + + diff --git a/theme/static/docs-fedora.css b/theme/static/docs-fedora.css new file mode 100644 index 0000000..62eb15b --- /dev/null +++ b/theme/static/docs-fedora.css @@ -0,0 +1,115 @@ +.tipue_search_content_title{ + margin-top:1em; +} + + +.tipue_search_content_url{ + display:none; +} + +.tipue_search_content_text{ + font-size:0.8em; +} + +.tipue_search_content_bold{ + font-weight:bold; + background-color: #4fcafa +} + +.entry-content img {max-width:100%;} +.entry-content h1 {font-size:1.3em; font-weight: bold;} + +.bodycontent-sidebar{ + background: linear-gradient(90deg, #FFF 50%, #EEE 50%); +} + +.bodycontent, .left-pane{ + min-height:500px; +} + +.badge-sidebar{ + width:100%; + font-size:1em; + margin-top:0.3em; + text-align:left; +} + +.badge-tagfilter{ + font-size:0.9em; + margin:0.1em; +} + +.badge-default{ + color: #666; +} + +.badge{ +padding: 0.5em; +} +.sidebar{ + font-size:0.8em; +} + +.header-sidebar{ + font-weight:bold; + color:#555; +} + +.notblue, .entry-title a{ + color:inherit; +} + +.entry-title{ + font-weight:bold; +} + +.tagsort-active{ + background-color: #5cb85c; + color: white; +} + +.tagsort-tag{ + cursor:pointer; +} + +.footer a{ + color:#aaa + } + + .footer{ + font-size:0.8em; + } + + .footer h3{ + font-size:1.3em; + font-weight: bold; + text-transform: uppercase; + } + + nav .breadcrumb{ + background: none; + font-size:0.8em; + padding-left:10px; + padding-bottom:0px; + } + + .nav > li > a.hover{ + background-color: none; + } + + .breadcrumb-item + .breadcrumb-item::before{ + content: '\f054'; + font-family: FontAwesome; + font-size: 0.8em; + color: #868e96; + } + + .qd-toc li{ + line-height:1em; + padding-top: 0.6em; + } + + .qd-toc li a{ + color:#444; + font-weight: 400; + } \ No newline at end of file diff --git a/theme/static/docs_logo.png b/theme/static/docs_logo.png new file mode 100644 index 0000000..90421ec Binary files /dev/null and b/theme/static/docs_logo.png differ diff --git a/theme/static/fedora-bootstrap.css b/theme/static/fedora-bootstrap.css new file mode 100644 index 0000000..9022466 --- /dev/null +++ b/theme/static/fedora-bootstrap.css @@ -0,0 +1,6340 @@ +/*fedora-bootstrap v1.0.3 -- https://pagure.io/fedora-bootstrap */ +/*! + * Bootstrap v4.0.0-alpha.6 (https://getbootstrap.com) + * Copyright 2011-2017 The Bootstrap Authors + * Copyright 2011-2017 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + line-height: 1.15; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; } + +body { + margin: 0; } + +article, +aside, +footer, +header, +nav, +section { + display: block; } + +h1 { + font-size: 2em; + margin: 0.67em 0; } + +figcaption, +figure, +main { + display: block; } + +figure { + margin: 1em 40px; } + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; } + +pre { + font-family: monospace, monospace; + font-size: 1em; } + +a { + background-color: transparent; + -webkit-text-decoration-skip: objects; } + +a:active, +a:hover { + outline-width: 0; } + +abbr[title] { + border-bottom: none; + text-decoration: underline; + text-decoration: underline dotted; } + +b, +strong { + font-weight: inherit; } + +b, +strong { + font-weight: bolder; } + +code, +kbd, +samp { + font-family: monospace, monospace; + font-size: 1em; } + +dfn { + font-style: italic; } + +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; } + +audio, +video { + display: inline-block; } + +audio:not([controls]) { + display: none; + height: 0; } + +img { + border-style: none; } + +svg:not(:root) { + overflow: hidden; } + +button, +input, +optgroup, +select, +textarea { + font-family: sans-serif; + font-size: 100%; + line-height: 1.15; + margin: 0; } + +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; } + +progress { + display: inline-block; + vertical-align: baseline; } + +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-file-upload-button { + -webkit-appearance: button; + font: inherit; } + +details, +menu { + display: block; } + +summary { + display: list-item; } + +canvas { + display: inline-block; } + +template { + display: none; } + +[hidden] { + display: none; } + +@media print { + *, + *::before, + *::after, + p::first-letter, + div::first-letter, + blockquote::first-letter, + li::first-letter, + p::first-line, + div::first-line, + blockquote::first-line, + li::first-line { + text-shadow: none !important; + box-shadow: none !important; } + a, + a:visited { + text-decoration: underline; } + abbr[title]::after { + content: " (" attr(title) ")"; } + pre { + white-space: pre-wrap !important; } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; } + thead { + display: table-header-group; } + tr, + img { + page-break-inside: avoid; } + p, + h2, + h3 { + orphans: 3; + widows: 3; } + h2, + h3 { + page-break-after: avoid; } + .navbar { + display: none; } + .badge { + border: 1px solid #000; } + .table { + border-collapse: collapse !important; } + .table td, + .table th { + background-color: #fff !important; } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; } } + +html { + box-sizing: border-box; } + +*, +*::before, +*::after { + box-sizing: inherit; } + +@-ms-viewport { + width: device-width; } + +html { + -ms-overflow-style: scrollbar; + -webkit-tap-highlight-color: transparent; } + +body { + font-family: "Open Sans"; + font-size: 1rem; + font-weight: normal; + line-height: 1.5; + color: #373a3c; + background-color: #fff; } + +[tabindex="-1"]:focus { + outline: none !important; } + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: .5rem; } + +p { + margin-top: 0; + margin-bottom: 1rem; } + +abbr[title], +abbr[data-original-title] { + cursor: help; } + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; } + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; } + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; } + +dt { + font-weight: bold; } + +dd { + margin-bottom: .5rem; + margin-left: 0; } + +blockquote { + margin: 0 0 1rem; } + +a { + color: #0275d8; + text-decoration: none; } + a:focus, a:hover { + color: #014c8c; + text-decoration: underline; } + +a:not([href]):not([tabindex]) { + color: inherit; + text-decoration: none; } + a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover { + color: inherit; + text-decoration: none; } + a:not([href]):not([tabindex]):focus { + outline: 0; } + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; } + +figure { + margin: 0 0 1rem; } + +img { + vertical-align: middle; } + +[role="button"] { + cursor: pointer; } + +a, +area, +button, +[role="button"], +input, +label, +select, +summary, +textarea { + touch-action: manipulation; } + +table { + border-collapse: collapse; + background-color: transparent; } + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #d5d5d5; + text-align: left; + caption-side: bottom; } + +th { + text-align: left; } + +label { + display: inline-block; + margin-bottom: .5rem; } + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; } + +input, +button, +select, +textarea { + line-height: inherit; } + +input[type="radio"]:disabled, +input[type="checkbox"]:disabled { + cursor: not-allowed; } + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; } + +textarea { + resize: vertical; } + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; } + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; } + +input[type="search"] { + -webkit-appearance: none; } + +output { + display: inline-block; } + +[hidden] { + display: none !important; } + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + margin-bottom: 0.5rem; + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; } + +h1, .h1 { + font-size: 2rem; } + +h2, .h2 { + font-size: 1.75rem; } + +h3, .h3 { + font-size: 1.5rem; } + +h4, .h4 { + font-size: 1.25rem; } + +h5, .h5 { + font-size: 1rem; } + +h6, .h6 { + font-size: 1rem; } + +.lead { + font-size: 1.25rem; + font-weight: 300; } + +.display-1 { + font-size: 6rem; + font-weight: 300; + line-height: 1.1; } + +.display-2 { + font-size: 5.5rem; + font-weight: 300; + line-height: 1.1; } + +.display-3 { + font-size: 4.5rem; + font-weight: 300; + line-height: 1.1; } + +.display-4 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.1; } + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); } + +small, +.small { + font-size: 80%; + font-weight: normal; } + +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3; } + +.list-unstyled { + padding-left: 0; + list-style: none; } + +.list-inline { + padding-left: 0; + list-style: none; } + +.list-inline-item { + display: inline-block; } + .list-inline-item:not(:last-child) { + margin-right: 5px; } + +.initialism { + font-size: 90%; + text-transform: uppercase; } + +.blockquote { + padding: 0.5rem 1rem; + margin-bottom: 1rem; + font-size: 1.25rem; + border-left: 0.25rem solid #eceeef; } + +.blockquote-footer { + display: block; + font-size: 80%; + color: #d5d5d5; } + .blockquote-footer::before { + content: "\2014 \A0"; } + +.blockquote-reverse { + padding-right: 1rem; + padding-left: 0; + text-align: right; + border-right: 0.25rem solid #eceeef; + border-left: 0; } + +.blockquote-reverse .blockquote-footer::before { + content: ""; } + +.blockquote-reverse .blockquote-footer::after { + content: "\A0 \2014"; } + +.img-fluid { + max-width: 100%; + height: auto; } + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 0.25rem; + transition: all 0.2s ease-in-out; + max-width: 100%; + height: auto; } + +.figure { + display: inline-block; } + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; } + +.figure-caption { + font-size: 90%; + color: #d5d5d5; } + +code, +kbd, +pre, +samp { + font-family: "Hack", monospace; } + +code { + padding: 0.2rem 0.4rem; + font-size: 90%; + color: #bd4147; + background-color: #f3f3f3; + border-radius: 0.25rem; } + a > code { + padding: 0; + color: inherit; + background-color: inherit; } + +kbd { + padding: 0.2rem 0.4rem; + font-size: 90%; + color: #fff; + background-color: #373a3c; + border-radius: 0.2rem; } + kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; } + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + font-size: 90%; + color: #586e75; } + pre code { + padding: 0; + font-size: inherit; + color: inherit; + background-color: transparent; + border-radius: 0; } + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; } + +.container { + position: relative; + margin-left: auto; + margin-right: auto; + padding-right: 15px; + padding-left: 15px; } + @media (min-width: 576px) { + .container { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 768px) { + .container { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 992px) { + .container { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 1200px) { + .container { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 576px) { + .container { + width: 540px; + max-width: 100%; } } + @media (min-width: 768px) { + .container { + width: 720px; + max-width: 100%; } } + @media (min-width: 992px) { + .container { + width: 960px; + max-width: 100%; } } + @media (min-width: 1200px) { + .container { + width: 1140px; + max-width: 100%; } } + +.container-fluid { + position: relative; + margin-left: auto; + margin-right: auto; + padding-right: 15px; + padding-left: 15px; } + @media (min-width: 576px) { + .container-fluid { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 768px) { + .container-fluid { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 992px) { + .container-fluid { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 1200px) { + .container-fluid { + padding-right: 15px; + padding-left: 15px; } } + +.row { + display: flex; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; } + @media (min-width: 576px) { + .row { + margin-right: -15px; + margin-left: -15px; } } + @media (min-width: 768px) { + .row { + margin-right: -15px; + margin-left: -15px; } } + @media (min-width: 992px) { + .row { + margin-right: -15px; + margin-left: -15px; } } + @media (min-width: 1200px) { + .row { + margin-right: -15px; + margin-left: -15px; } } + +.no-gutters { + margin-right: 0; + margin-left: 0; } + .no-gutters > .col, + .no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; } + +.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl { + position: relative; + width: 100%; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; } + @media (min-width: 576px) { + .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 768px) { + .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 992px) { + .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 1200px) { + .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl { + padding-right: 15px; + padding-left: 15px; } } + +.col { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; } + +.col-auto { + flex: 0 0 auto; + width: auto; } + +.col-1 { + flex: 0 0 8.33333%; + max-width: 8.33333%; } + +.col-2 { + flex: 0 0 16.66667%; + max-width: 16.66667%; } + +.col-3 { + flex: 0 0 25%; + max-width: 25%; } + +.col-4 { + flex: 0 0 33.33333%; + max-width: 33.33333%; } + +.col-5 { + flex: 0 0 41.66667%; + max-width: 41.66667%; } + +.col-6 { + flex: 0 0 50%; + max-width: 50%; } + +.col-7 { + flex: 0 0 58.33333%; + max-width: 58.33333%; } + +.col-8 { + flex: 0 0 66.66667%; + max-width: 66.66667%; } + +.col-9 { + flex: 0 0 75%; + max-width: 75%; } + +.col-10 { + flex: 0 0 83.33333%; + max-width: 83.33333%; } + +.col-11 { + flex: 0 0 91.66667%; + max-width: 91.66667%; } + +.col-12 { + flex: 0 0 100%; + max-width: 100%; } + +.pull-0 { + right: auto; } + +.pull-1 { + right: 8.33333%; } + +.pull-2 { + right: 16.66667%; } + +.pull-3 { + right: 25%; } + +.pull-4 { + right: 33.33333%; } + +.pull-5 { + right: 41.66667%; } + +.pull-6 { + right: 50%; } + +.pull-7 { + right: 58.33333%; } + +.pull-8 { + right: 66.66667%; } + +.pull-9 { + right: 75%; } + +.pull-10 { + right: 83.33333%; } + +.pull-11 { + right: 91.66667%; } + +.pull-12 { + right: 100%; } + +.push-0 { + left: auto; } + +.push-1 { + left: 8.33333%; } + +.push-2 { + left: 16.66667%; } + +.push-3 { + left: 25%; } + +.push-4 { + left: 33.33333%; } + +.push-5 { + left: 41.66667%; } + +.push-6 { + left: 50%; } + +.push-7 { + left: 58.33333%; } + +.push-8 { + left: 66.66667%; } + +.push-9 { + left: 75%; } + +.push-10 { + left: 83.33333%; } + +.push-11 { + left: 91.66667%; } + +.push-12 { + left: 100%; } + +.offset-1 { + margin-left: 8.33333%; } + +.offset-2 { + margin-left: 16.66667%; } + +.offset-3 { + margin-left: 25%; } + +.offset-4 { + margin-left: 33.33333%; } + +.offset-5 { + margin-left: 41.66667%; } + +.offset-6 { + margin-left: 50%; } + +.offset-7 { + margin-left: 58.33333%; } + +.offset-8 { + margin-left: 66.66667%; } + +.offset-9 { + margin-left: 75%; } + +.offset-10 { + margin-left: 83.33333%; } + +.offset-11 { + margin-left: 91.66667%; } + +@media (min-width: 576px) { + .col-sm { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; } + .col-sm-auto { + flex: 0 0 auto; + width: auto; } + .col-sm-1 { + flex: 0 0 8.33333%; + max-width: 8.33333%; } + .col-sm-2 { + flex: 0 0 16.66667%; + max-width: 16.66667%; } + .col-sm-3 { + flex: 0 0 25%; + max-width: 25%; } + .col-sm-4 { + flex: 0 0 33.33333%; + max-width: 33.33333%; } + .col-sm-5 { + flex: 0 0 41.66667%; + max-width: 41.66667%; } + .col-sm-6 { + flex: 0 0 50%; + max-width: 50%; } + .col-sm-7 { + flex: 0 0 58.33333%; + max-width: 58.33333%; } + .col-sm-8 { + flex: 0 0 66.66667%; + max-width: 66.66667%; } + .col-sm-9 { + flex: 0 0 75%; + max-width: 75%; } + .col-sm-10 { + flex: 0 0 83.33333%; + max-width: 83.33333%; } + .col-sm-11 { + flex: 0 0 91.66667%; + max-width: 91.66667%; } + .col-sm-12 { + flex: 0 0 100%; + max-width: 100%; } + .pull-sm-0 { + right: auto; } + .pull-sm-1 { + right: 8.33333%; } + .pull-sm-2 { + right: 16.66667%; } + .pull-sm-3 { + right: 25%; } + .pull-sm-4 { + right: 33.33333%; } + .pull-sm-5 { + right: 41.66667%; } + .pull-sm-6 { + right: 50%; } + .pull-sm-7 { + right: 58.33333%; } + .pull-sm-8 { + right: 66.66667%; } + .pull-sm-9 { + right: 75%; } + .pull-sm-10 { + right: 83.33333%; } + .pull-sm-11 { + right: 91.66667%; } + .pull-sm-12 { + right: 100%; } + .push-sm-0 { + left: auto; } + .push-sm-1 { + left: 8.33333%; } + .push-sm-2 { + left: 16.66667%; } + .push-sm-3 { + left: 25%; } + .push-sm-4 { + left: 33.33333%; } + .push-sm-5 { + left: 41.66667%; } + .push-sm-6 { + left: 50%; } + .push-sm-7 { + left: 58.33333%; } + .push-sm-8 { + left: 66.66667%; } + .push-sm-9 { + left: 75%; } + .push-sm-10 { + left: 83.33333%; } + .push-sm-11 { + left: 91.66667%; } + .push-sm-12 { + left: 100%; } + .offset-sm-0 { + margin-left: 0%; } + .offset-sm-1 { + margin-left: 8.33333%; } + .offset-sm-2 { + margin-left: 16.66667%; } + .offset-sm-3 { + margin-left: 25%; } + .offset-sm-4 { + margin-left: 33.33333%; } + .offset-sm-5 { + margin-left: 41.66667%; } + .offset-sm-6 { + margin-left: 50%; } + .offset-sm-7 { + margin-left: 58.33333%; } + .offset-sm-8 { + margin-left: 66.66667%; } + .offset-sm-9 { + margin-left: 75%; } + .offset-sm-10 { + margin-left: 83.33333%; } + .offset-sm-11 { + margin-left: 91.66667%; } } + +@media (min-width: 768px) { + .col-md { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; } + .col-md-auto { + flex: 0 0 auto; + width: auto; } + .col-md-1 { + flex: 0 0 8.33333%; + max-width: 8.33333%; } + .col-md-2 { + flex: 0 0 16.66667%; + max-width: 16.66667%; } + .col-md-3 { + flex: 0 0 25%; + max-width: 25%; } + .col-md-4 { + flex: 0 0 33.33333%; + max-width: 33.33333%; } + .col-md-5 { + flex: 0 0 41.66667%; + max-width: 41.66667%; } + .col-md-6 { + flex: 0 0 50%; + max-width: 50%; } + .col-md-7 { + flex: 0 0 58.33333%; + max-width: 58.33333%; } + .col-md-8 { + flex: 0 0 66.66667%; + max-width: 66.66667%; } + .col-md-9 { + flex: 0 0 75%; + max-width: 75%; } + .col-md-10 { + flex: 0 0 83.33333%; + max-width: 83.33333%; } + .col-md-11 { + flex: 0 0 91.66667%; + max-width: 91.66667%; } + .col-md-12 { + flex: 0 0 100%; + max-width: 100%; } + .pull-md-0 { + right: auto; } + .pull-md-1 { + right: 8.33333%; } + .pull-md-2 { + right: 16.66667%; } + .pull-md-3 { + right: 25%; } + .pull-md-4 { + right: 33.33333%; } + .pull-md-5 { + right: 41.66667%; } + .pull-md-6 { + right: 50%; } + .pull-md-7 { + right: 58.33333%; } + .pull-md-8 { + right: 66.66667%; } + .pull-md-9 { + right: 75%; } + .pull-md-10 { + right: 83.33333%; } + .pull-md-11 { + right: 91.66667%; } + .pull-md-12 { + right: 100%; } + .push-md-0 { + left: auto; } + .push-md-1 { + left: 8.33333%; } + .push-md-2 { + left: 16.66667%; } + .push-md-3 { + left: 25%; } + .push-md-4 { + left: 33.33333%; } + .push-md-5 { + left: 41.66667%; } + .push-md-6 { + left: 50%; } + .push-md-7 { + left: 58.33333%; } + .push-md-8 { + left: 66.66667%; } + .push-md-9 { + left: 75%; } + .push-md-10 { + left: 83.33333%; } + .push-md-11 { + left: 91.66667%; } + .push-md-12 { + left: 100%; } + .offset-md-0 { + margin-left: 0%; } + .offset-md-1 { + margin-left: 8.33333%; } + .offset-md-2 { + margin-left: 16.66667%; } + .offset-md-3 { + margin-left: 25%; } + .offset-md-4 { + margin-left: 33.33333%; } + .offset-md-5 { + margin-left: 41.66667%; } + .offset-md-6 { + margin-left: 50%; } + .offset-md-7 { + margin-left: 58.33333%; } + .offset-md-8 { + margin-left: 66.66667%; } + .offset-md-9 { + margin-left: 75%; } + .offset-md-10 { + margin-left: 83.33333%; } + .offset-md-11 { + margin-left: 91.66667%; } } + +@media (min-width: 992px) { + .col-lg { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; } + .col-lg-auto { + flex: 0 0 auto; + width: auto; } + .col-lg-1 { + flex: 0 0 8.33333%; + max-width: 8.33333%; } + .col-lg-2 { + flex: 0 0 16.66667%; + max-width: 16.66667%; } + .col-lg-3 { + flex: 0 0 25%; + max-width: 25%; } + .col-lg-4 { + flex: 0 0 33.33333%; + max-width: 33.33333%; } + .col-lg-5 { + flex: 0 0 41.66667%; + max-width: 41.66667%; } + .col-lg-6 { + flex: 0 0 50%; + max-width: 50%; } + .col-lg-7 { + flex: 0 0 58.33333%; + max-width: 58.33333%; } + .col-lg-8 { + flex: 0 0 66.66667%; + max-width: 66.66667%; } + .col-lg-9 { + flex: 0 0 75%; + max-width: 75%; } + .col-lg-10 { + flex: 0 0 83.33333%; + max-width: 83.33333%; } + .col-lg-11 { + flex: 0 0 91.66667%; + max-width: 91.66667%; } + .col-lg-12 { + flex: 0 0 100%; + max-width: 100%; } + .pull-lg-0 { + right: auto; } + .pull-lg-1 { + right: 8.33333%; } + .pull-lg-2 { + right: 16.66667%; } + .pull-lg-3 { + right: 25%; } + .pull-lg-4 { + right: 33.33333%; } + .pull-lg-5 { + right: 41.66667%; } + .pull-lg-6 { + right: 50%; } + .pull-lg-7 { + right: 58.33333%; } + .pull-lg-8 { + right: 66.66667%; } + .pull-lg-9 { + right: 75%; } + .pull-lg-10 { + right: 83.33333%; } + .pull-lg-11 { + right: 91.66667%; } + .pull-lg-12 { + right: 100%; } + .push-lg-0 { + left: auto; } + .push-lg-1 { + left: 8.33333%; } + .push-lg-2 { + left: 16.66667%; } + .push-lg-3 { + left: 25%; } + .push-lg-4 { + left: 33.33333%; } + .push-lg-5 { + left: 41.66667%; } + .push-lg-6 { + left: 50%; } + .push-lg-7 { + left: 58.33333%; } + .push-lg-8 { + left: 66.66667%; } + .push-lg-9 { + left: 75%; } + .push-lg-10 { + left: 83.33333%; } + .push-lg-11 { + left: 91.66667%; } + .push-lg-12 { + left: 100%; } + .offset-lg-0 { + margin-left: 0%; } + .offset-lg-1 { + margin-left: 8.33333%; } + .offset-lg-2 { + margin-left: 16.66667%; } + .offset-lg-3 { + margin-left: 25%; } + .offset-lg-4 { + margin-left: 33.33333%; } + .offset-lg-5 { + margin-left: 41.66667%; } + .offset-lg-6 { + margin-left: 50%; } + .offset-lg-7 { + margin-left: 58.33333%; } + .offset-lg-8 { + margin-left: 66.66667%; } + .offset-lg-9 { + margin-left: 75%; } + .offset-lg-10 { + margin-left: 83.33333%; } + .offset-lg-11 { + margin-left: 91.66667%; } } + +@media (min-width: 1200px) { + .col-xl { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; } + .col-xl-auto { + flex: 0 0 auto; + width: auto; } + .col-xl-1 { + flex: 0 0 8.33333%; + max-width: 8.33333%; } + .col-xl-2 { + flex: 0 0 16.66667%; + max-width: 16.66667%; } + .col-xl-3 { + flex: 0 0 25%; + max-width: 25%; } + .col-xl-4 { + flex: 0 0 33.33333%; + max-width: 33.33333%; } + .col-xl-5 { + flex: 0 0 41.66667%; + max-width: 41.66667%; } + .col-xl-6 { + flex: 0 0 50%; + max-width: 50%; } + .col-xl-7 { + flex: 0 0 58.33333%; + max-width: 58.33333%; } + .col-xl-8 { + flex: 0 0 66.66667%; + max-width: 66.66667%; } + .col-xl-9 { + flex: 0 0 75%; + max-width: 75%; } + .col-xl-10 { + flex: 0 0 83.33333%; + max-width: 83.33333%; } + .col-xl-11 { + flex: 0 0 91.66667%; + max-width: 91.66667%; } + .col-xl-12 { + flex: 0 0 100%; + max-width: 100%; } + .pull-xl-0 { + right: auto; } + .pull-xl-1 { + right: 8.33333%; } + .pull-xl-2 { + right: 16.66667%; } + .pull-xl-3 { + right: 25%; } + .pull-xl-4 { + right: 33.33333%; } + .pull-xl-5 { + right: 41.66667%; } + .pull-xl-6 { + right: 50%; } + .pull-xl-7 { + right: 58.33333%; } + .pull-xl-8 { + right: 66.66667%; } + .pull-xl-9 { + right: 75%; } + .pull-xl-10 { + right: 83.33333%; } + .pull-xl-11 { + right: 91.66667%; } + .pull-xl-12 { + right: 100%; } + .push-xl-0 { + left: auto; } + .push-xl-1 { + left: 8.33333%; } + .push-xl-2 { + left: 16.66667%; } + .push-xl-3 { + left: 25%; } + .push-xl-4 { + left: 33.33333%; } + .push-xl-5 { + left: 41.66667%; } + .push-xl-6 { + left: 50%; } + .push-xl-7 { + left: 58.33333%; } + .push-xl-8 { + left: 66.66667%; } + .push-xl-9 { + left: 75%; } + .push-xl-10 { + left: 83.33333%; } + .push-xl-11 { + left: 91.66667%; } + .push-xl-12 { + left: 100%; } + .offset-xl-0 { + margin-left: 0%; } + .offset-xl-1 { + margin-left: 8.33333%; } + .offset-xl-2 { + margin-left: 16.66667%; } + .offset-xl-3 { + margin-left: 25%; } + .offset-xl-4 { + margin-left: 33.33333%; } + .offset-xl-5 { + margin-left: 41.66667%; } + .offset-xl-6 { + margin-left: 50%; } + .offset-xl-7 { + margin-left: 58.33333%; } + .offset-xl-8 { + margin-left: 66.66667%; } + .offset-xl-9 { + margin-left: 75%; } + .offset-xl-10 { + margin-left: 83.33333%; } + .offset-xl-11 { + margin-left: 91.66667%; } } + +.table { + width: 100%; + max-width: 100%; + margin-bottom: 1rem; } + .table th, + .table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #eceeef; } + .table thead th { + vertical-align: bottom; + border-bottom: 2px solid #eceeef; } + .table tbody + tbody { + border-top: 2px solid #eceeef; } + .table .table { + background-color: #fff; } + +.table-sm th, +.table-sm td { + padding: 0.3rem; } + +.table-bordered { + border: 1px solid #eceeef; } + .table-bordered th, + .table-bordered td { + border: 1px solid #eceeef; } + .table-bordered thead th, + .table-bordered thead td { + border-bottom-width: 2px; } + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); } + +.table-hover tbody tr:hover { + background-color: rgba(0, 0, 0, 0.075); } + +.table-active, +.table-active > th, +.table-active > td { + background-color: rgba(0, 0, 0, 0.075); } + +.table-hover .table-active:hover { + background-color: rgba(0, 0, 0, 0.075); } + .table-hover .table-active:hover > td, + .table-hover .table-active:hover > th { + background-color: rgba(0, 0, 0, 0.075); } + +.table-success, +.table-success > th, +.table-success > td { + background-color: #dff0d8; } + +.table-hover .table-success:hover { + background-color: #d0e9c6; } + .table-hover .table-success:hover > td, + .table-hover .table-success:hover > th { + background-color: #d0e9c6; } + +.table-info, +.table-info > th, +.table-info > td { + background-color: #d9edf7; } + +.table-hover .table-info:hover { + background-color: #c4e3f3; } + .table-hover .table-info:hover > td, + .table-hover .table-info:hover > th { + background-color: #c4e3f3; } + +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #fcf8e3; } + +.table-hover .table-warning:hover { + background-color: #faf2cc; } + .table-hover .table-warning:hover > td, + .table-hover .table-warning:hover > th { + background-color: #faf2cc; } + +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #f2dede; } + +.table-hover .table-danger:hover { + background-color: #ebcccc; } + .table-hover .table-danger:hover > td, + .table-hover .table-danger:hover > th { + background-color: #ebcccc; } + +.thead-inverse th { + color: #fff; + background-color: #373a3c; } + +.thead-default th { + color: #55595c; + background-color: #eceeef; } + +.table-inverse { + color: #fff; + background-color: #373a3c; } + .table-inverse th, + .table-inverse td, + .table-inverse thead th { + border-color: #fff; } + .table-inverse.table-bordered { + border: 0; } + +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -ms-overflow-style: -ms-autohiding-scrollbar; } + .table-responsive.table-bordered { + border: 0; } + +.form-control { + display: block; + width: 100%; + padding: 0.5rem 0.75rem; + font-size: 1rem; + line-height: 1.25; + color: #55595c; + background-color: #fff; + background-image: none; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; } + .form-control::-ms-expand { + background-color: transparent; + border: 0; } + .form-control:focus { + color: #55595c; + background-color: #fff; + border-color: #5cb3fd; + outline: none; } + .form-control::placeholder { + color: #d5d5d5; + opacity: 1; } + .form-control:disabled, .form-control[readonly] { + background-color: #eceeef; + opacity: 1; } + .form-control:disabled { + cursor: not-allowed; } + +select.form-control:not([size]):not([multiple]) { + height: calc(2.25rem + 2px); } + +select.form-control:focus::-ms-value { + color: #55595c; + background-color: #fff; } + +.form-control-file, +.form-control-range { + display: block; } + +.col-form-label { + padding-top: calc(0.5rem - 1px * 2); + padding-bottom: calc(0.5rem - 1px * 2); + margin-bottom: 0; } + +.col-form-label-lg { + padding-top: calc(0.75rem - 1px * 2); + padding-bottom: calc(0.75rem - 1px * 2); + font-size: 1.25rem; } + +.col-form-label-sm { + padding-top: calc(0.25rem - 1px * 2); + padding-bottom: calc(0.25rem - 1px * 2); + font-size: 0.875rem; } + +.col-form-legend { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + margin-bottom: 0; + font-size: 1rem; } + +.form-control-static { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + margin-bottom: 0; + line-height: 1.25; + border: solid transparent; + border-width: 1px 0; } + .form-control-static.form-control-sm, .input-group-sm > .form-control-static.form-control, + .input-group-sm > .form-control-static.input-group-addon, + .input-group-sm > .input-group-btn > .form-control-static.btn, .form-control-static.form-control-lg, .input-group-lg > .form-control-static.form-control, + .input-group-lg > .form-control-static.input-group-addon, + .input-group-lg > .input-group-btn > .form-control-static.btn { + padding-right: 0; + padding-left: 0; } + +.form-control-sm, .input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.2rem; } + +select.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]), +.input-group-sm > select.input-group-addon:not([size]):not([multiple]), +.input-group-sm > .input-group-btn > select.btn:not([size]):not([multiple]) { + height: 1.8125rem; } + +.form-control-lg, .input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + border-radius: 0.3rem; } + +select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]), +.input-group-lg > select.input-group-addon:not([size]):not([multiple]), +.input-group-lg > .input-group-btn > select.btn:not([size]):not([multiple]) { + height: 3.16667rem; } + +.form-group { + margin-bottom: 1rem; } + +.form-text { + display: block; + margin-top: 0.25rem; } + +.form-check { + position: relative; + display: block; + margin-bottom: 0.5rem; } + .form-check.disabled .form-check-label { + color: #d5d5d5; + cursor: not-allowed; } + +.form-check-label { + padding-left: 1.25rem; + margin-bottom: 0; + cursor: pointer; } + +.form-check-input { + position: absolute; + margin-top: 0.25rem; + margin-left: -1.25rem; } + .form-check-input:only-child { + position: static; } + +.form-check-inline { + display: inline-block; } + .form-check-inline .form-check-label { + vertical-align: middle; } + .form-check-inline + .form-check-inline { + margin-left: 0.75rem; } + +.form-control-feedback { + margin-top: 0.25rem; } + +.form-control-success, +.form-control-warning, +.form-control-danger { + padding-right: 2.25rem; + background-repeat: no-repeat; + background-position: center right 0.5625rem; + background-size: 1.125rem 1.125rem; } + +.has-success .form-control-feedback, +.has-success .form-control-label, +.has-success .col-form-label, +.has-success .form-check-label, +.has-success .custom-control { + color: #5cb85c; } + +.has-success .form-control { + border-color: #5cb85c; } + +.has-success .input-group-addon { + color: #5cb85c; + border-color: #5cb85c; + background-color: #eaf6ea; } + +.has-success .form-control-success { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%235cb85c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E"); } + +.has-warning .form-control-feedback, +.has-warning .form-control-label, +.has-warning .col-form-label, +.has-warning .form-check-label, +.has-warning .custom-control { + color: #f0ad4e; } + +.has-warning .form-control { + border-color: #f0ad4e; } + +.has-warning .input-group-addon { + color: #f0ad4e; + border-color: #f0ad4e; + background-color: white; } + +.has-warning .form-control-warning { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f0ad4e' d='M4.4 5.324h-.8v-2.46h.8zm0 1.42h-.8V5.89h.8zM3.76.63L.04 7.075c-.115.2.016.425.26.426h7.397c.242 0 .372-.226.258-.426C6.726 4.924 5.47 2.79 4.253.63c-.113-.174-.39-.174-.494 0z'/%3E%3C/svg%3E"); } + +.has-danger .form-control-feedback, +.has-danger .form-control-label, +.has-danger .col-form-label, +.has-danger .form-check-label, +.has-danger .custom-control { + color: #d9534f; } + +.has-danger .form-control { + border-color: #d9534f; } + +.has-danger .input-group-addon { + color: #d9534f; + border-color: #d9534f; + background-color: #fdf7f7; } + +.has-danger .form-control-danger { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E"); } + +.form-inline { + display: flex; + flex-flow: row wrap; + align-items: center; } + .form-inline .form-check { + width: 100%; } + @media (min-width: 576px) { + .form-inline label { + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 0; } + .form-inline .form-group { + display: flex; + flex: 0 0 auto; + flex-flow: row wrap; + align-items: center; + margin-bottom: 0; } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; } + .form-inline .form-control-static { + display: inline-block; } + .form-inline .input-group { + width: auto; } + .form-inline .form-control-label { + margin-bottom: 0; + vertical-align: middle; } + .form-inline .form-check { + display: flex; + align-items: center; + justify-content: center; + width: auto; + margin-top: 0; + margin-bottom: 0; } + .form-inline .form-check-label { + padding-left: 0; } + .form-inline .form-check-input { + position: relative; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; } + .form-inline .custom-control { + display: flex; + align-items: center; + justify-content: center; + padding-left: 0; } + .form-inline .custom-control-indicator { + position: static; + display: inline-block; + margin-right: 0.25rem; + vertical-align: text-bottom; } + .form-inline .has-feedback .form-control-feedback { + top: 0; } } + +.btn { + display: inline-block; + font-weight: normal; + line-height: 1.25; + text-align: center; + white-space: nowrap; + vertical-align: middle; + user-select: none; + border: 1px solid transparent; + padding: 0.5rem 1rem; + font-size: 1rem; + border-radius: 0.25rem; + transition: all 0.2s ease-in-out; } + .btn:focus, .btn:hover { + text-decoration: none; } + .btn:focus, .btn.focus { + outline: 0; + box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.25); } + .btn.disabled, .btn:disabled { + cursor: not-allowed; + opacity: .65; } + .btn:active, .btn.active { + background-image: none; } + +a.btn.disabled, +fieldset[disabled] a.btn { + pointer-events: none; } + +.btn-primary { + color: #fff; + background-color: #0275d8; + border-color: #0275d8; } + .btn-primary:hover { + color: #fff; + background-color: #025aa5; + border-color: #01549b; } + .btn-primary:focus, .btn-primary.focus { + box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.5); } + .btn-primary.disabled, .btn-primary:disabled { + background-color: #0275d8; + border-color: #0275d8; } + .btn-primary:active, .btn-primary.active, + .show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #025aa5; + background-image: none; + border-color: #01549b; } + +.btn-secondary { + color: #373a3c; + background-color: #fff; + border-color: #ccc; } + .btn-secondary:hover { + color: #373a3c; + background-color: #e6e6e6; + border-color: #adadad; } + .btn-secondary:focus, .btn-secondary.focus { + box-shadow: 0 0 0 2px rgba(204, 204, 204, 0.5); } + .btn-secondary.disabled, .btn-secondary:disabled { + background-color: #fff; + border-color: #ccc; } + .btn-secondary:active, .btn-secondary.active, + .show > .btn-secondary.dropdown-toggle { + color: #373a3c; + background-color: #e6e6e6; + background-image: none; + border-color: #adadad; } + +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #5bc0de; } + .btn-info:hover { + color: #fff; + background-color: #31b0d5; + border-color: #2aabd2; } + .btn-info:focus, .btn-info.focus { + box-shadow: 0 0 0 2px rgba(91, 192, 222, 0.5); } + .btn-info.disabled, .btn-info:disabled { + background-color: #5bc0de; + border-color: #5bc0de; } + .btn-info:active, .btn-info.active, + .show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #31b0d5; + background-image: none; + border-color: #2aabd2; } + +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #5cb85c; } + .btn-success:hover { + color: #fff; + background-color: #449d44; + border-color: #419641; } + .btn-success:focus, .btn-success.focus { + box-shadow: 0 0 0 2px rgba(92, 184, 92, 0.5); } + .btn-success.disabled, .btn-success:disabled { + background-color: #5cb85c; + border-color: #5cb85c; } + .btn-success:active, .btn-success.active, + .show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #449d44; + background-image: none; + border-color: #419641; } + +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #f0ad4e; } + .btn-warning:hover { + color: #fff; + background-color: #ec971f; + border-color: #eb9316; } + .btn-warning:focus, .btn-warning.focus { + box-shadow: 0 0 0 2px rgba(240, 173, 78, 0.5); } + .btn-warning.disabled, .btn-warning:disabled { + background-color: #f0ad4e; + border-color: #f0ad4e; } + .btn-warning:active, .btn-warning.active, + .show > .btn-warning.dropdown-toggle { + color: #fff; + background-color: #ec971f; + background-image: none; + border-color: #eb9316; } + +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d9534f; } + .btn-danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #c12e2a; } + .btn-danger:focus, .btn-danger.focus { + box-shadow: 0 0 0 2px rgba(217, 83, 79, 0.5); } + .btn-danger.disabled, .btn-danger:disabled { + background-color: #d9534f; + border-color: #d9534f; } + .btn-danger:active, .btn-danger.active, + .show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #c9302c; + background-image: none; + border-color: #c12e2a; } + +.btn-outline-primary { + color: #0275d8; + background-image: none; + background-color: transparent; + border-color: #0275d8; } + .btn-outline-primary:hover { + color: #fff; + background-color: #0275d8; + border-color: #0275d8; } + .btn-outline-primary:focus, .btn-outline-primary.focus { + box-shadow: 0 0 0 2px rgba(2, 117, 216, 0.5); } + .btn-outline-primary.disabled, .btn-outline-primary:disabled { + color: #0275d8; + background-color: transparent; } + .btn-outline-primary:active, .btn-outline-primary.active, + .show > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #0275d8; + border-color: #0275d8; } + +.btn-outline-secondary { + color: #ccc; + background-image: none; + background-color: transparent; + border-color: #ccc; } + .btn-outline-secondary:hover { + color: #fff; + background-color: #ccc; + border-color: #ccc; } + .btn-outline-secondary:focus, .btn-outline-secondary.focus { + box-shadow: 0 0 0 2px rgba(204, 204, 204, 0.5); } + .btn-outline-secondary.disabled, .btn-outline-secondary:disabled { + color: #ccc; + background-color: transparent; } + .btn-outline-secondary:active, .btn-outline-secondary.active, + .show > .btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #ccc; + border-color: #ccc; } + +.btn-outline-info { + color: #5bc0de; + background-image: none; + background-color: transparent; + border-color: #5bc0de; } + .btn-outline-info:hover { + color: #fff; + background-color: #5bc0de; + border-color: #5bc0de; } + .btn-outline-info:focus, .btn-outline-info.focus { + box-shadow: 0 0 0 2px rgba(91, 192, 222, 0.5); } + .btn-outline-info.disabled, .btn-outline-info:disabled { + color: #5bc0de; + background-color: transparent; } + .btn-outline-info:active, .btn-outline-info.active, + .show > .btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #5bc0de; + border-color: #5bc0de; } + +.btn-outline-success { + color: #5cb85c; + background-image: none; + background-color: transparent; + border-color: #5cb85c; } + .btn-outline-success:hover { + color: #fff; + background-color: #5cb85c; + border-color: #5cb85c; } + .btn-outline-success:focus, .btn-outline-success.focus { + box-shadow: 0 0 0 2px rgba(92, 184, 92, 0.5); } + .btn-outline-success.disabled, .btn-outline-success:disabled { + color: #5cb85c; + background-color: transparent; } + .btn-outline-success:active, .btn-outline-success.active, + .show > .btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #5cb85c; + border-color: #5cb85c; } + +.btn-outline-warning { + color: #f0ad4e; + background-image: none; + background-color: transparent; + border-color: #f0ad4e; } + .btn-outline-warning:hover { + color: #fff; + background-color: #f0ad4e; + border-color: #f0ad4e; } + .btn-outline-warning:focus, .btn-outline-warning.focus { + box-shadow: 0 0 0 2px rgba(240, 173, 78, 0.5); } + .btn-outline-warning.disabled, .btn-outline-warning:disabled { + color: #f0ad4e; + background-color: transparent; } + .btn-outline-warning:active, .btn-outline-warning.active, + .show > .btn-outline-warning.dropdown-toggle { + color: #fff; + background-color: #f0ad4e; + border-color: #f0ad4e; } + +.btn-outline-danger { + color: #d9534f; + background-image: none; + background-color: transparent; + border-color: #d9534f; } + .btn-outline-danger:hover { + color: #fff; + background-color: #d9534f; + border-color: #d9534f; } + .btn-outline-danger:focus, .btn-outline-danger.focus { + box-shadow: 0 0 0 2px rgba(217, 83, 79, 0.5); } + .btn-outline-danger.disabled, .btn-outline-danger:disabled { + color: #d9534f; + background-color: transparent; } + .btn-outline-danger:active, .btn-outline-danger.active, + .show > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #d9534f; + border-color: #d9534f; } + +.btn-link { + font-weight: normal; + color: #0275d8; + border-radius: 0; } + .btn-link, .btn-link:active, .btn-link.active, .btn-link:disabled { + background-color: transparent; } + .btn-link, .btn-link:focus, .btn-link:active { + border-color: transparent; } + .btn-link:hover { + border-color: transparent; } + .btn-link:focus, .btn-link:hover { + color: #014c8c; + text-decoration: underline; + background-color: transparent; } + .btn-link:disabled { + color: #d5d5d5; } + .btn-link:disabled:focus, .btn-link:disabled:hover { + text-decoration: none; } + +.btn-lg, .btn-group-lg > .btn { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + border-radius: 0.3rem; } + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.2rem; } + +.btn-block { + display: block; + width: 100%; } + +.btn-block + .btn-block { + margin-top: 0.5rem; } + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; } + +.fade { + opacity: 0; + transition: opacity 0.15s linear; } + .fade.show { + opacity: 1; } + +.collapse { + display: none; } + .collapse.show { + display: block; } + +tr.collapse.show { + display: table-row; } + +tbody.collapse.show { + display: table-row-group; } + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; } + +.dropup, +.dropdown { + position: relative; } + +.dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.3em; + vertical-align: middle; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-left: 0.3em solid transparent; } + +.dropdown-toggle:focus { + outline: 0; } + +.dropup .dropdown-toggle::after { + border-top: 0; + border-bottom: 0.3em solid; } + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 1rem; + color: #373a3c; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; } + +.dropdown-divider { + height: 1px; + margin: 0.5rem 0; + overflow: hidden; + background-color: #eceeef; } + +.dropdown-item { + display: block; + width: 100%; + padding: 3px 1.5rem; + clear: both; + font-weight: normal; + color: #373a3c; + text-align: inherit; + white-space: nowrap; + background: none; + border: 0; } + .dropdown-item:focus, .dropdown-item:hover { + color: #2b2d2f; + text-decoration: none; + background-color: #f3f3f3; } + .dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #0275d8; } + .dropdown-item.disabled, .dropdown-item:disabled { + color: #d5d5d5; + cursor: not-allowed; + background-color: transparent; } + +.show > .dropdown-menu { + display: block; } + +.show > a { + outline: 0; } + +.dropdown-menu-right { + right: 0; + left: auto; } + +.dropdown-menu-left { + right: auto; + left: 0; } + +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #d5d5d5; + white-space: nowrap; } + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; } + +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 0.125rem; } + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; } + .btn-group > .btn, + .btn-group-vertical > .btn { + position: relative; + flex: 0 1 auto; } + .btn-group > .btn:hover, + .btn-group-vertical > .btn:hover { + z-index: 2; } + .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, + .btn-group-vertical > .btn:focus, + .btn-group-vertical > .btn:active, + .btn-group-vertical > .btn.active { + z-index: 2; } + .btn-group .btn + .btn, + .btn-group .btn + .btn-group, + .btn-group .btn-group + .btn, + .btn-group .btn-group + .btn-group, + .btn-group-vertical .btn + .btn, + .btn-group-vertical .btn + .btn-group, + .btn-group-vertical .btn-group + .btn, + .btn-group-vertical .btn-group + .btn-group { + margin-left: -1px; } + +.btn-toolbar { + display: flex; + justify-content: flex-start; } + .btn-toolbar .input-group { + width: auto; } + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; } + +.btn-group > .btn:first-child { + margin-left: 0; } + .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + +.btn-group > .btn-group { + float: left; } + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; } + +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; } + +.btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; } + .btn + .dropdown-toggle-split::after { + margin-left: 0; } + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; } + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 1.125rem; + padding-left: 1.125rem; } + +.btn-group-vertical { + display: inline-flex; + flex-direction: column; + align-items: flex-start; + justify-content: center; } + .btn-group-vertical .btn, + .btn-group-vertical .btn-group { + width: 100%; } + .btn-group-vertical > .btn + .btn, + .btn-group-vertical > .btn + .btn-group, + .btn-group-vertical > .btn-group + .btn, + .btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; } + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; } + +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } + +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-right-radius: 0; + border-top-left-radius: 0; } + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; } + +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } + +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; } + +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; } + +.input-group { + position: relative; + display: flex; + width: 100%; } + .input-group .form-control { + position: relative; + z-index: 2; + flex: 1 1 auto; + width: 1%; + margin-bottom: 0; } + .input-group .form-control:focus, .input-group .form-control:active, .input-group .form-control:hover { + z-index: 3; } + +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: flex; + flex-direction: column; + justify-content: center; } + .input-group-addon:not(:first-child):not(:last-child), + .input-group-btn:not(:first-child):not(:last-child), + .input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; } + +.input-group-addon, +.input-group-btn { + white-space: nowrap; + vertical-align: middle; } + +.input-group-addon { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: normal; + line-height: 1.25; + color: #55595c; + text-align: center; + background-color: #eceeef; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; } + .input-group-addon.form-control-sm, + .input-group-sm > .input-group-addon, + .input-group-sm > .input-group-btn > .input-group-addon.btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: 0.2rem; } + .input-group-addon.form-control-lg, + .input-group-lg > .input-group-addon, + .input-group-lg > .input-group-btn > .input-group-addon.btn { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + border-radius: 0.3rem; } + .input-group-addon input[type="radio"], + .input-group-addon input[type="checkbox"] { + margin-top: 0; } + +.input-group .form-control:not(:last-child), +.input-group-addon:not(:last-child), +.input-group-btn:not(:last-child) > .btn, +.input-group-btn:not(:last-child) > .btn-group > .btn, +.input-group-btn:not(:last-child) > .dropdown-toggle, +.input-group-btn:not(:first-child) > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:not(:first-child) > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.input-group-addon:not(:last-child) { + border-right: 0; } + +.input-group .form-control:not(:first-child), +.input-group-addon:not(:first-child), +.input-group-btn:not(:first-child) > .btn, +.input-group-btn:not(:first-child) > .btn-group > .btn, +.input-group-btn:not(:first-child) > .dropdown-toggle, +.input-group-btn:not(:last-child) > .btn:not(:first-child), +.input-group-btn:not(:last-child) > .btn-group:not(:first-child) > .btn { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + +.form-control + .input-group-addon:not(:first-child) { + border-left: 0; } + +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; } + .input-group-btn > .btn { + position: relative; + flex: 1; } + .input-group-btn > .btn + .btn { + margin-left: -1px; } + .input-group-btn > .btn:focus, .input-group-btn > .btn:active, .input-group-btn > .btn:hover { + z-index: 3; } + .input-group-btn:not(:last-child) > .btn, + .input-group-btn:not(:last-child) > .btn-group { + margin-right: -1px; } + .input-group-btn:not(:first-child) > .btn, + .input-group-btn:not(:first-child) > .btn-group { + z-index: 2; + margin-left: -1px; } + .input-group-btn:not(:first-child) > .btn:focus, .input-group-btn:not(:first-child) > .btn:active, .input-group-btn:not(:first-child) > .btn:hover, + .input-group-btn:not(:first-child) > .btn-group:focus, + .input-group-btn:not(:first-child) > .btn-group:active, + .input-group-btn:not(:first-child) > .btn-group:hover { + z-index: 3; } + +.custom-control { + position: relative; + display: inline-flex; + min-height: 1.5rem; + padding-left: 1.5rem; + margin-right: 1rem; + cursor: pointer; } + +.custom-control-input { + position: absolute; + z-index: -1; + opacity: 0; } + .custom-control-input:checked ~ .custom-control-indicator { + color: #fff; + background-color: #0275d8; } + .custom-control-input:focus ~ .custom-control-indicator { + box-shadow: 0 0 0 1px #fff, 0 0 0 3px #0275d8; } + .custom-control-input:active ~ .custom-control-indicator { + color: #fff; + background-color: #8fcafe; } + .custom-control-input:disabled ~ .custom-control-indicator { + cursor: not-allowed; + background-color: #eceeef; } + .custom-control-input:disabled ~ .custom-control-description { + color: #d5d5d5; + cursor: not-allowed; } + +.custom-control-indicator { + position: absolute; + top: 0.25rem; + left: 0; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + user-select: none; + background-color: #ddd; + background-repeat: no-repeat; + background-position: center center; + background-size: 50% 50%; } + +.custom-checkbox .custom-control-indicator { + border-radius: 0.25rem; } + +.custom-checkbox .custom-control-input:checked ~ .custom-control-indicator { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"); } + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-indicator { + background-color: #0275d8; + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E"); } + +.custom-radio .custom-control-indicator { + border-radius: 50%; } + +.custom-radio .custom-control-input:checked ~ .custom-control-indicator { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E"); } + +.custom-controls-stacked { + display: flex; + flex-direction: column; } + .custom-controls-stacked .custom-control { + margin-bottom: 0.25rem; } + .custom-controls-stacked .custom-control + .custom-control { + margin-left: 0; } + +.custom-select { + display: inline-block; + max-width: 100%; + height: calc(2.25rem + 2px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + line-height: 1.25; + color: #55595c; + vertical-align: middle; + background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23333' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right 0.75rem center; + background-size: 8px 10px; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; + -moz-appearance: none; + -webkit-appearance: none; } + .custom-select:focus { + border-color: #5cb3fd; + outline: none; } + .custom-select:focus::-ms-value { + color: #55595c; + background-color: #fff; } + .custom-select:disabled { + color: #d5d5d5; + cursor: not-allowed; + background-color: #eceeef; } + .custom-select::-ms-expand { + opacity: 0; } + +.custom-select-sm { + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 75%; } + +.custom-file { + position: relative; + display: inline-block; + max-width: 100%; + height: 2.5rem; + margin-bottom: 0; + cursor: pointer; } + +.custom-file-input { + min-width: 14rem; + max-width: 100%; + height: 2.5rem; + margin: 0; + filter: alpha(opacity=0); + opacity: 0; } + +.custom-file-control { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 5; + height: 2.5rem; + padding: 0.5rem 1rem; + line-height: 1.5; + color: #55595c; + pointer-events: none; + user-select: none; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0.25rem; } + .custom-file-control:lang(en)::after { + content: "Choose file..."; } + .custom-file-control::before { + position: absolute; + top: -1px; + right: -1px; + bottom: -1px; + z-index: 6; + display: block; + height: 2.5rem; + padding: 0.5rem 1rem; + line-height: 1.5; + color: #55595c; + background-color: #eceeef; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0 0.25rem 0.25rem 0; } + .custom-file-control:lang(en)::before { + content: "Browse"; } + +.nav { + display: flex; + padding-left: 0; + margin-bottom: 0; + list-style: none; } + +.nav-link { + display: block; + padding: 0.5em 1em; } + .nav-link:focus, .nav-link:hover { + text-decoration: none; } + .nav-link.disabled { + color: #d5d5d5; + cursor: not-allowed; } + +.nav-tabs { + border-bottom: 1px solid #ddd; } + .nav-tabs .nav-item { + margin-bottom: -1px; } + .nav-tabs .nav-link { + border: 1px solid transparent; + border-top-right-radius: 0.25rem; + border-top-left-radius: 0.25rem; } + .nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover { + border-color: #eceeef #eceeef #ddd; } + .nav-tabs .nav-link.disabled { + color: #d5d5d5; + background-color: transparent; + border-color: transparent; } + .nav-tabs .nav-link.active, + .nav-tabs .nav-item.show .nav-link { + color: #55595c; + background-color: #fff; + border-color: #ddd #ddd #fff; } + .nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; } + +.nav-pills .nav-link { + border-radius: 0.25rem; } + +.nav-pills .nav-link.active, +.nav-pills .nav-item.show .nav-link { + color: #fff; + cursor: default; + background-color: #0275d8; } + +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; } + +.nav-justified .nav-item { + flex: 1 1 100%; + text-align: center; } + +.tab-content > .tab-pane { + display: none; } + +.tab-content > .active { + display: block; } + +.navbar { + position: relative; + display: flex; + flex-direction: column; + padding: 0.5rem 1rem; } + +.navbar-brand { + display: inline-block; + padding-top: .25rem; + padding-bottom: .25rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap; } + .navbar-brand:focus, .navbar-brand:hover { + text-decoration: none; } + +.navbar-nav { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; } + .navbar-nav .nav-link { + padding-right: 0; + padding-left: 0; } + +.navbar-text { + display: inline-block; + padding-top: .425rem; + padding-bottom: .425rem; } + +.navbar-toggler { + align-self: flex-start; + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; } + .navbar-toggler:focus, .navbar-toggler:hover { + text-decoration: none; } + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat center center; + background-size: 100% 100%; } + +.navbar-toggler-left { + position: absolute; + left: 1rem; } + +.navbar-toggler-right { + position: absolute; + right: 1rem; } + +@media (max-width: 575px) { + .navbar-toggleable .navbar-nav .dropdown-menu { + position: static; + float: none; } + .navbar-toggleable > .container { + padding-right: 0; + padding-left: 0; } } + +@media (min-width: 576px) { + .navbar-toggleable { + flex-direction: row; + flex-wrap: nowrap; + align-items: center; } + .navbar-toggleable .navbar-nav { + flex-direction: row; } + .navbar-toggleable .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem; } + .navbar-toggleable > .container { + display: flex; + flex-wrap: nowrap; + align-items: center; } + .navbar-toggleable .navbar-collapse { + display: flex !important; + width: 100%; } + .navbar-toggleable .navbar-toggler { + display: none; } } + +@media (max-width: 767px) { + .navbar-toggleable-sm .navbar-nav .dropdown-menu { + position: static; + float: none; } + .navbar-toggleable-sm > .container { + padding-right: 0; + padding-left: 0; } } + +@media (min-width: 768px) { + .navbar-toggleable-sm { + flex-direction: row; + flex-wrap: nowrap; + align-items: center; } + .navbar-toggleable-sm .navbar-nav { + flex-direction: row; } + .navbar-toggleable-sm .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem; } + .navbar-toggleable-sm > .container { + display: flex; + flex-wrap: nowrap; + align-items: center; } + .navbar-toggleable-sm .navbar-collapse { + display: flex !important; + width: 100%; } + .navbar-toggleable-sm .navbar-toggler { + display: none; } } + +@media (max-width: 991px) { + .navbar-toggleable-md .navbar-nav .dropdown-menu { + position: static; + float: none; } + .navbar-toggleable-md > .container { + padding-right: 0; + padding-left: 0; } } + +@media (min-width: 992px) { + .navbar-toggleable-md { + flex-direction: row; + flex-wrap: nowrap; + align-items: center; } + .navbar-toggleable-md .navbar-nav { + flex-direction: row; } + .navbar-toggleable-md .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem; } + .navbar-toggleable-md > .container { + display: flex; + flex-wrap: nowrap; + align-items: center; } + .navbar-toggleable-md .navbar-collapse { + display: flex !important; + width: 100%; } + .navbar-toggleable-md .navbar-toggler { + display: none; } } + +@media (max-width: 1199px) { + .navbar-toggleable-lg .navbar-nav .dropdown-menu { + position: static; + float: none; } + .navbar-toggleable-lg > .container { + padding-right: 0; + padding-left: 0; } } + +@media (min-width: 1200px) { + .navbar-toggleable-lg { + flex-direction: row; + flex-wrap: nowrap; + align-items: center; } + .navbar-toggleable-lg .navbar-nav { + flex-direction: row; } + .navbar-toggleable-lg .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem; } + .navbar-toggleable-lg > .container { + display: flex; + flex-wrap: nowrap; + align-items: center; } + .navbar-toggleable-lg .navbar-collapse { + display: flex !important; + width: 100%; } + .navbar-toggleable-lg .navbar-toggler { + display: none; } } + +.navbar-toggleable-xl { + flex-direction: row; + flex-wrap: nowrap; + align-items: center; } + .navbar-toggleable-xl .navbar-nav .dropdown-menu { + position: static; + float: none; } + .navbar-toggleable-xl > .container { + padding-right: 0; + padding-left: 0; } + .navbar-toggleable-xl .navbar-nav { + flex-direction: row; } + .navbar-toggleable-xl .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem; } + .navbar-toggleable-xl > .container { + display: flex; + flex-wrap: nowrap; + align-items: center; } + .navbar-toggleable-xl .navbar-collapse { + display: flex !important; + width: 100%; } + .navbar-toggleable-xl .navbar-toggler { + display: none; } + +.navbar-light .navbar-brand, +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.9); } + .navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover, + .navbar-light .navbar-toggler:focus, + .navbar-light .navbar-toggler:hover { + color: rgba(0, 0, 0, 0.9); } + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5); } + .navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover { + color: rgba(0, 0, 0, 0.7); } + .navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); } + +.navbar-light .navbar-nav .open > .nav-link, +.navbar-light .navbar-nav .active > .nav-link, +.navbar-light .navbar-nav .nav-link.open, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); } + +.navbar-light .navbar-toggler { + border-color: rgba(0, 0, 0, 0.1); } + +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E"); } + +.navbar-light .navbar-text { + color: rgba(0, 0, 0, 0.5); } + +.navbar-inverse .navbar-brand, +.navbar-inverse .navbar-toggler { + color: white; } + .navbar-inverse .navbar-brand:focus, .navbar-inverse .navbar-brand:hover, + .navbar-inverse .navbar-toggler:focus, + .navbar-inverse .navbar-toggler:hover { + color: white; } + +.navbar-inverse .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5); } + .navbar-inverse .navbar-nav .nav-link:focus, .navbar-inverse .navbar-nav .nav-link:hover { + color: rgba(255, 255, 255, 0.75); } + .navbar-inverse .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); } + +.navbar-inverse .navbar-nav .open > .nav-link, +.navbar-inverse .navbar-nav .active > .nav-link, +.navbar-inverse .navbar-nav .nav-link.open, +.navbar-inverse .navbar-nav .nav-link.active { + color: white; } + +.navbar-inverse .navbar-toggler { + border-color: rgba(255, 255, 255, 0.1); } + +.navbar-inverse .navbar-toggler-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E"); } + +.navbar-inverse .navbar-text { + color: rgba(255, 255, 255, 0.5); } + +.card { + position: relative; + display: flex; + flex-direction: column; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; } + +.card-block { + flex: 1 1 auto; + padding: 1.25rem; } + +.card-title { + margin-bottom: 0.75rem; } + +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0; } + +.card-text:last-child { + margin-bottom: 0; } + +.card-link:hover { + text-decoration: none; } + +.card-link + .card-link { + margin-left: 1.25rem; } + +.card > .list-group:first-child .list-group-item:first-child { + border-top-right-radius: 0.25rem; + border-top-left-radius: 0.25rem; } + +.card > .list-group:last-child .list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; } + +.card-header { + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: #f3f3f3; + border-bottom: 1px solid rgba(0, 0, 0, 0.125); } + .card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; } + +.card-footer { + padding: 0.75rem 1.25rem; + background-color: #f3f3f3; + border-top: 1px solid rgba(0, 0, 0, 0.125); } + .card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); } + +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0; } + +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem; } + +.card-primary { + background-color: #0275d8; + border-color: #0275d8; } + .card-primary .card-header, + .card-primary .card-footer { + background-color: transparent; } + +.card-success { + background-color: #5cb85c; + border-color: #5cb85c; } + .card-success .card-header, + .card-success .card-footer { + background-color: transparent; } + +.card-info { + background-color: #5bc0de; + border-color: #5bc0de; } + .card-info .card-header, + .card-info .card-footer { + background-color: transparent; } + +.card-warning { + background-color: #f0ad4e; + border-color: #f0ad4e; } + .card-warning .card-header, + .card-warning .card-footer { + background-color: transparent; } + +.card-danger { + background-color: #d9534f; + border-color: #d9534f; } + .card-danger .card-header, + .card-danger .card-footer { + background-color: transparent; } + +.card-outline-primary { + background-color: transparent; + border-color: #0275d8; } + +.card-outline-secondary { + background-color: transparent; + border-color: #ccc; } + +.card-outline-info { + background-color: transparent; + border-color: #5bc0de; } + +.card-outline-success { + background-color: transparent; + border-color: #5cb85c; } + +.card-outline-warning { + background-color: transparent; + border-color: #f0ad4e; } + +.card-outline-danger { + background-color: transparent; + border-color: #d9534f; } + +.card-inverse { + color: rgba(255, 255, 255, 0.65); } + .card-inverse .card-header, + .card-inverse .card-footer { + background-color: transparent; + border-color: rgba(255, 255, 255, 0.2); } + .card-inverse .card-header, + .card-inverse .card-footer, + .card-inverse .card-title, + .card-inverse .card-blockquote { + color: #fff; } + .card-inverse .card-link, + .card-inverse .card-text, + .card-inverse .card-subtitle, + .card-inverse .card-blockquote .blockquote-footer { + color: rgba(255, 255, 255, 0.65); } + .card-inverse .card-link:focus, .card-inverse .card-link:hover { + color: #fff; } + +.card-blockquote { + padding: 0; + margin-bottom: 0; + border-left: 0; } + +.card-img { + border-radius: calc(0.25rem - 1px); } + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; } + +.card-img-top { + border-top-right-radius: calc(0.25rem - 1px); + border-top-left-radius: calc(0.25rem - 1px); } + +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); } + +@media (min-width: 576px) { + .card-deck { + display: flex; + flex-flow: row wrap; } + .card-deck .card { + display: flex; + flex: 1 0 0; + flex-direction: column; } + .card-deck .card:not(:first-child) { + margin-left: 15px; } + .card-deck .card:not(:last-child) { + margin-right: 15px; } } + +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; } + .card-group .card { + flex: 1 0 0; } + .card-group .card + .card { + margin-left: 0; + border-left: 0; } + .card-group .card:first-child { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .card-group .card:first-child .card-img-top { + border-top-right-radius: 0; } + .card-group .card:first-child .card-img-bottom { + border-bottom-right-radius: 0; } + .card-group .card:last-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .card-group .card:last-child .card-img-top { + border-top-left-radius: 0; } + .card-group .card:last-child .card-img-bottom { + border-bottom-left-radius: 0; } + .card-group .card:not(:first-child):not(:last-child) { + border-radius: 0; } + .card-group .card:not(:first-child):not(:last-child) .card-img-top, + .card-group .card:not(:first-child):not(:last-child) .card-img-bottom { + border-radius: 0; } } + +@media (min-width: 576px) { + .card-columns { + column-count: 3; + column-gap: 1.25rem; } + .card-columns .card { + display: inline-block; + width: 100%; + margin-bottom: 0.75rem; } } + +.breadcrumb { + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #eceeef; + border-radius: 0.25rem; } + .breadcrumb::after { + display: block; + content: ""; + clear: both; } + +.breadcrumb-item { + float: left; } + .breadcrumb-item + .breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + padding-left: 0.5rem; + color: #d5d5d5; + content: "/"; } + .breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; } + .breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; } + .breadcrumb-item.active { + color: #d5d5d5; } + +.pagination { + display: flex; + padding-left: 0; + list-style: none; + border-radius: 0.25rem; } + +.page-item:first-child .page-link { + margin-left: 0; + border-bottom-left-radius: 0.25rem; + border-top-left-radius: 0.25rem; } + +.page-item:last-child .page-link { + border-bottom-right-radius: 0.25rem; + border-top-right-radius: 0.25rem; } + +.page-item.active .page-link { + z-index: 2; + color: #fff; + background-color: #0275d8; + border-color: #0275d8; } + +.page-item.disabled .page-link { + color: #d5d5d5; + pointer-events: none; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; } + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #0275d8; + background-color: #fff; + border: 1px solid #ddd; } + .page-link:focus, .page-link:hover { + color: #014c8c; + text-decoration: none; + background-color: #eceeef; + border-color: #ddd; } + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; } + +.pagination-lg .page-item:first-child .page-link { + border-bottom-left-radius: 0.3rem; + border-top-left-radius: 0.3rem; } + +.pagination-lg .page-item:last-child .page-link { + border-bottom-right-radius: 0.3rem; + border-top-right-radius: 0.3rem; } + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; } + +.pagination-sm .page-item:first-child .page-link { + border-bottom-left-radius: 0.2rem; + border-top-left-radius: 0.2rem; } + +.pagination-sm .page-item:last-child .page-link { + border-bottom-right-radius: 0.2rem; + border-top-right-radius: 0.2rem; } + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; } + .badge:empty { + display: none; } + +.btn .badge { + position: relative; + top: -1px; } + +a.badge:focus, a.badge:hover { + color: #fff; + text-decoration: none; + cursor: pointer; } + +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem; } + +.badge-default { + background-color: #d5d5d5; } + .badge-default[href]:focus, .badge-default[href]:hover { + background-color: #bcbcbc; } + +.badge-primary { + background-color: #0275d8; } + .badge-primary[href]:focus, .badge-primary[href]:hover { + background-color: #025aa5; } + +.badge-success { + background-color: #5cb85c; } + .badge-success[href]:focus, .badge-success[href]:hover { + background-color: #449d44; } + +.badge-info { + background-color: #5bc0de; } + .badge-info[href]:focus, .badge-info[href]:hover { + background-color: #31b0d5; } + +.badge-warning { + background-color: #f0ad4e; } + .badge-warning[href]:focus, .badge-warning[href]:hover { + background-color: #ec971f; } + +.badge-danger { + background-color: #d9534f; } + .badge-danger[href]:focus, .badge-danger[href]:hover { + background-color: #c9302c; } + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #eceeef; + border-radius: 0.3rem; } + @media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem; } } + +.jumbotron-hr { + border-top-color: #d0d5d8; } + +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; } + +.alert { + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; } + +.alert-heading { + color: inherit; } + +.alert-link { + font-weight: bold; } + +.alert-dismissible .close { + position: relative; + top: -0.75rem; + right: -1.25rem; + padding: 0.75rem 1.25rem; + color: inherit; } + +.alert-success { + background-color: #dff0d8; + border-color: #d0e9c6; + color: #3c763d; } + .alert-success hr { + border-top-color: #c1e2b3; } + .alert-success .alert-link { + color: #2b542c; } + +.alert-info { + background-color: #d9edf7; + border-color: #bcdff1; + color: #31708f; } + .alert-info hr { + border-top-color: #a6d5ec; } + .alert-info .alert-link { + color: #245269; } + +.alert-warning { + background-color: #fcf8e3; + border-color: #faf2cc; + color: #8a6d3b; } + .alert-warning hr { + border-top-color: #f7ecb5; } + .alert-warning .alert-link { + color: #66512c; } + +.alert-danger { + background-color: #f2dede; + border-color: #ebcccc; + color: #a94442; } + .alert-danger hr { + border-top-color: #e4b9b9; } + .alert-danger .alert-link { + color: #843534; } + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; } + to { + background-position: 0 0; } } + +.progress { + display: flex; + overflow: hidden; + font-size: 0.75rem; + line-height: 1rem; + text-align: center; + background-color: #eceeef; + border-radius: 0.25rem; } + +.progress-bar { + height: 1rem; + color: #fff; + background-color: #0275d8; } + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; } + +.progress-bar-animated { + animation: progress-bar-stripes 1s linear infinite; } + +.media { + display: flex; + align-items: flex-start; } + +.media-body { + flex: 1; } + +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; } + +.list-group-item-action { + width: 100%; + color: #55595c; + text-align: inherit; } + .list-group-item-action .list-group-item-heading { + color: #373a3c; } + .list-group-item-action:focus, .list-group-item-action:hover { + color: #55595c; + text-decoration: none; + background-color: #f3f3f3; } + .list-group-item-action:active { + color: #373a3c; + background-color: #eceeef; } + +.list-group-item { + position: relative; + display: flex; + flex-flow: row wrap; + align-items: center; + padding: 0.75rem 1.25rem; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); } + .list-group-item:first-child { + border-top-right-radius: 0.25rem; + border-top-left-radius: 0.25rem; } + .list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; } + .list-group-item:focus, .list-group-item:hover { + text-decoration: none; } + .list-group-item.disabled, .list-group-item:disabled { + color: #d5d5d5; + cursor: not-allowed; + background-color: #fff; } + .list-group-item.disabled .list-group-item-heading, .list-group-item:disabled .list-group-item-heading { + color: inherit; } + .list-group-item.disabled .list-group-item-text, .list-group-item:disabled .list-group-item-text { + color: #d5d5d5; } + .list-group-item.active { + z-index: 2; + color: #fff; + background-color: #0275d8; + border-color: #0275d8; } + .list-group-item.active .list-group-item-heading, + .list-group-item.active .list-group-item-heading > small, + .list-group-item.active .list-group-item-heading > .small { + color: inherit; } + .list-group-item.active .list-group-item-text { + color: #daeeff; } + +.list-group-flush .list-group-item { + border-right: 0; + border-left: 0; + border-radius: 0; } + +.list-group-flush:first-child .list-group-item:first-child { + border-top: 0; } + +.list-group-flush:last-child .list-group-item:last-child { + border-bottom: 0; } + +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; } + +a.list-group-item-success, +button.list-group-item-success { + color: #3c763d; } + a.list-group-item-success .list-group-item-heading, + button.list-group-item-success .list-group-item-heading { + color: inherit; } + a.list-group-item-success:focus, a.list-group-item-success:hover, + button.list-group-item-success:focus, + button.list-group-item-success:hover { + color: #3c763d; + background-color: #d0e9c6; } + a.list-group-item-success.active, + button.list-group-item-success.active { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; } + +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; } + +a.list-group-item-info, +button.list-group-item-info { + color: #31708f; } + a.list-group-item-info .list-group-item-heading, + button.list-group-item-info .list-group-item-heading { + color: inherit; } + a.list-group-item-info:focus, a.list-group-item-info:hover, + button.list-group-item-info:focus, + button.list-group-item-info:hover { + color: #31708f; + background-color: #c4e3f3; } + a.list-group-item-info.active, + button.list-group-item-info.active { + color: #fff; + background-color: #31708f; + border-color: #31708f; } + +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; } + +a.list-group-item-warning, +button.list-group-item-warning { + color: #8a6d3b; } + a.list-group-item-warning .list-group-item-heading, + button.list-group-item-warning .list-group-item-heading { + color: inherit; } + a.list-group-item-warning:focus, a.list-group-item-warning:hover, + button.list-group-item-warning:focus, + button.list-group-item-warning:hover { + color: #8a6d3b; + background-color: #faf2cc; } + a.list-group-item-warning.active, + button.list-group-item-warning.active { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; } + +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; } + +a.list-group-item-danger, +button.list-group-item-danger { + color: #a94442; } + a.list-group-item-danger .list-group-item-heading, + button.list-group-item-danger .list-group-item-heading { + color: inherit; } + a.list-group-item-danger:focus, a.list-group-item-danger:hover, + button.list-group-item-danger:focus, + button.list-group-item-danger:hover { + color: #a94442; + background-color: #ebcccc; } + a.list-group-item-danger.active, + button.list-group-item-danger.active { + color: #fff; + background-color: #a94442; + border-color: #a94442; } + +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; } + .embed-responsive::before { + display: block; + content: ""; } + .embed-responsive .embed-responsive-item, + .embed-responsive iframe, + .embed-responsive embed, + .embed-responsive object, + .embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; } + +.embed-responsive-21by9::before { + padding-top: 42.85714%; } + +.embed-responsive-16by9::before { + padding-top: 56.25%; } + +.embed-responsive-4by3::before { + padding-top: 75%; } + +.embed-responsive-1by1::before { + padding-top: 100%; } + +.close { + float: right; + font-size: 1.5rem; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .5; } + .close:focus, .close:hover { + color: #000; + text-decoration: none; + cursor: pointer; + opacity: .75; } + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; } + +.modal-open { + overflow: hidden; } + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + outline: 0; } + .modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -25%); } + .modal.show .modal-dialog { + transform: translate(0, 0); } + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; } + +.modal-dialog { + position: relative; + width: auto; + margin: 10px; } + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; } + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; } + .modal-backdrop.fade { + opacity: 0; } + .modal-backdrop.show { + opacity: 0.5; } + +.modal-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 15px; + border-bottom: 1px solid #eceeef; } + +.modal-title { + margin-bottom: 0; + line-height: 1.5; } + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 15px; } + +.modal-footer { + display: flex; + align-items: center; + justify-content: flex-end; + padding: 15px; + border-top: 1px solid #eceeef; } + .modal-footer > :not(:first-child) { + margin-left: .25rem; } + .modal-footer > :not(:last-child) { + margin-right: .25rem; } + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; } + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 30px auto; } + .modal-sm { + max-width: 300px; } } + +@media (min-width: 992px) { + .modal-lg { + max-width: 800px; } } + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Open Sans"; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-break: auto; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + white-space: normal; + word-break: normal; + word-spacing: normal; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; } + .tooltip.show { + opacity: 0.9; } + .tooltip.tooltip-top, .tooltip.bs-tether-element-attached-bottom { + padding: 5px 0; + margin-top: -3px; } + .tooltip.tooltip-top .tooltip-inner::before, .tooltip.bs-tether-element-attached-bottom .tooltip-inner::before { + bottom: 0; + left: 50%; + margin-left: -5px; + content: ""; + border-width: 5px 5px 0; + border-top-color: #000; } + .tooltip.tooltip-right, .tooltip.bs-tether-element-attached-left { + padding: 0 5px; + margin-left: 3px; } + .tooltip.tooltip-right .tooltip-inner::before, .tooltip.bs-tether-element-attached-left .tooltip-inner::before { + top: 50%; + left: 0; + margin-top: -5px; + content: ""; + border-width: 5px 5px 5px 0; + border-right-color: #000; } + .tooltip.tooltip-bottom, .tooltip.bs-tether-element-attached-top { + padding: 5px 0; + margin-top: 3px; } + .tooltip.tooltip-bottom .tooltip-inner::before, .tooltip.bs-tether-element-attached-top .tooltip-inner::before { + top: 0; + left: 50%; + margin-left: -5px; + content: ""; + border-width: 0 5px 5px; + border-bottom-color: #000; } + .tooltip.tooltip-left, .tooltip.bs-tether-element-attached-right { + padding: 0 5px; + margin-left: -3px; } + .tooltip.tooltip-left .tooltip-inner::before, .tooltip.bs-tether-element-attached-right .tooltip-inner::before { + top: 50%; + right: 0; + margin-top: -5px; + content: ""; + border-width: 5px 0 5px 5px; + border-left-color: #000; } + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; } + .tooltip-inner::before { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; } + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + padding: 1px; + font-family: "Open Sans"; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-break: auto; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + white-space: normal; + word-break: normal; + word-spacing: normal; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; } + .popover.popover-top, .popover.bs-tether-element-attached-bottom { + margin-top: -10px; } + .popover.popover-top::before, .popover.popover-top::after, .popover.bs-tether-element-attached-bottom::before, .popover.bs-tether-element-attached-bottom::after { + left: 50%; + border-bottom-width: 0; } + .popover.popover-top::before, .popover.bs-tether-element-attached-bottom::before { + bottom: -11px; + margin-left: -11px; + border-top-color: rgba(0, 0, 0, 0.25); } + .popover.popover-top::after, .popover.bs-tether-element-attached-bottom::after { + bottom: -10px; + margin-left: -10px; + border-top-color: #fff; } + .popover.popover-right, .popover.bs-tether-element-attached-left { + margin-left: 10px; } + .popover.popover-right::before, .popover.popover-right::after, .popover.bs-tether-element-attached-left::before, .popover.bs-tether-element-attached-left::after { + top: 50%; + border-left-width: 0; } + .popover.popover-right::before, .popover.bs-tether-element-attached-left::before { + left: -11px; + margin-top: -11px; + border-right-color: rgba(0, 0, 0, 0.25); } + .popover.popover-right::after, .popover.bs-tether-element-attached-left::after { + left: -10px; + margin-top: -10px; + border-right-color: #fff; } + .popover.popover-bottom, .popover.bs-tether-element-attached-top { + margin-top: 10px; } + .popover.popover-bottom::before, .popover.popover-bottom::after, .popover.bs-tether-element-attached-top::before, .popover.bs-tether-element-attached-top::after { + left: 50%; + border-top-width: 0; } + .popover.popover-bottom::before, .popover.bs-tether-element-attached-top::before { + top: -11px; + margin-left: -11px; + border-bottom-color: rgba(0, 0, 0, 0.25); } + .popover.popover-bottom::after, .popover.bs-tether-element-attached-top::after { + top: -10px; + margin-left: -10px; + border-bottom-color: #f7f7f7; } + .popover.popover-bottom .popover-title::before, .popover.bs-tether-element-attached-top .popover-title::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 20px; + margin-left: -10px; + content: ""; + border-bottom: 1px solid #f7f7f7; } + .popover.popover-left, .popover.bs-tether-element-attached-right { + margin-left: -10px; } + .popover.popover-left::before, .popover.popover-left::after, .popover.bs-tether-element-attached-right::before, .popover.bs-tether-element-attached-right::after { + top: 50%; + border-right-width: 0; } + .popover.popover-left::before, .popover.bs-tether-element-attached-right::before { + right: -11px; + margin-top: -11px; + border-left-color: rgba(0, 0, 0, 0.25); } + .popover.popover-left::after, .popover.bs-tether-element-attached-right::after { + right: -10px; + margin-top: -10px; + border-left-color: #fff; } + +.popover-title { + padding: 8px 14px; + margin-bottom: 0; + font-size: 1rem; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-right-radius: calc(0.3rem - 1px); + border-top-left-radius: calc(0.3rem - 1px); } + .popover-title:empty { + display: none; } + +.popover-content { + padding: 9px 14px; } + +.popover::before, +.popover::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; } + +.popover::before { + content: ""; + border-width: 11px; } + +.popover::after { + content: ""; + border-width: 10px; } + +.carousel { + position: relative; } + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; } + +.carousel-item { + position: relative; + display: none; + width: 100%; } + @media (-webkit-transform-3d) { + .carousel-item { + transition: transform 0.6s ease-in-out; + backface-visibility: hidden; + perspective: 1000px; } } + @supports (transform: translate3d(0, 0, 0)) { + .carousel-item { + transition: transform 0.6s ease-in-out; + backface-visibility: hidden; + perspective: 1000px; } } + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: flex; } + +.carousel-item-next, +.carousel-item-prev { + position: absolute; + top: 0; } + +@media (-webkit-transform-3d) { + .carousel-item-next.carousel-item-left, + .carousel-item-prev.carousel-item-right { + transform: translate3d(0, 0, 0); } + .carousel-item-next, + .active.carousel-item-right { + transform: translate3d(100%, 0, 0); } + .carousel-item-prev, + .active.carousel-item-left { + transform: translate3d(-100%, 0, 0); } } + +@supports (transform: translate3d(0, 0, 0)) { + .carousel-item-next.carousel-item-left, + .carousel-item-prev.carousel-item-right { + transform: translate3d(0, 0, 0); } + .carousel-item-next, + .active.carousel-item-right { + transform: translate3d(100%, 0, 0); } + .carousel-item-prev, + .active.carousel-item-left { + transform: translate3d(-100%, 0, 0); } } + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; } + .carousel-control-prev:focus, .carousel-control-prev:hover, + .carousel-control-next:focus, + .carousel-control-next:hover { + color: #fff; + text-decoration: none; + outline: 0; + opacity: .9; } + +.carousel-control-prev { + left: 0; } + +.carousel-control-next { + right: 0; } + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: transparent no-repeat center center; + background-size: 100% 100%; } + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M4 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"); } + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M1.5 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"); } + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 10px; + left: 0; + z-index: 15; + display: flex; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; } + .carousel-indicators li { + position: relative; + flex: 1 0 auto; + max-width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: rgba(255, 255, 255, 0.5); } + .carousel-indicators li::before { + position: absolute; + top: -10px; + left: 0; + display: inline-block; + width: 100%; + height: 10px; + content: ""; } + .carousel-indicators li::after { + position: absolute; + bottom: -10px; + left: 0; + display: inline-block; + width: 100%; + height: 10px; + content: ""; } + .carousel-indicators .active { + background-color: #fff; } + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; } + +.align-baseline { + vertical-align: baseline !important; } + +.align-top { + vertical-align: top !important; } + +.align-middle { + vertical-align: middle !important; } + +.align-bottom { + vertical-align: bottom !important; } + +.align-text-bottom { + vertical-align: text-bottom !important; } + +.align-text-top { + vertical-align: text-top !important; } + +.bg-faded { + background-color: #f7f7f7; } + +.bg-primary { + background-color: #0275d8 !important; } + +a.bg-primary:focus, a.bg-primary:hover { + background-color: #025aa5 !important; } + +.bg-success { + background-color: #5cb85c !important; } + +a.bg-success:focus, a.bg-success:hover { + background-color: #449d44 !important; } + +.bg-info { + background-color: #5bc0de !important; } + +a.bg-info:focus, a.bg-info:hover { + background-color: #31b0d5 !important; } + +.bg-warning { + background-color: #f0ad4e !important; } + +a.bg-warning:focus, a.bg-warning:hover { + background-color: #ec971f !important; } + +.bg-danger { + background-color: #d9534f !important; } + +a.bg-danger:focus, a.bg-danger:hover { + background-color: #c9302c !important; } + +.bg-inverse { + background-color: #373a3c !important; } + +a.bg-inverse:focus, a.bg-inverse:hover { + background-color: #1f2021 !important; } + +.border-0 { + border: 0 !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 { + border-radius: 0.25rem; } + +.rounded-top { + border-top-right-radius: 0.25rem; + border-top-left-radius: 0.25rem; } + +.rounded-right { + border-bottom-right-radius: 0.25rem; + border-top-right-radius: 0.25rem; } + +.rounded-bottom { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; } + +.rounded-left { + border-bottom-left-radius: 0.25rem; + border-top-left-radius: 0.25rem; } + +.rounded-circle { + border-radius: 50%; } + +.rounded-0 { + border-radius: 0; } + +.clearfix::after { + display: block; + content: ""; + clear: both; } + +.d-none { + display: none !important; } + +.d-inline { + display: inline !important; } + +.d-inline-block { + display: inline-block !important; } + +.d-block { + display: block !important; } + +.d-table { + display: table !important; } + +.d-table-cell { + display: table-cell !important; } + +.d-flex { + display: flex !important; } + +.d-inline-flex { + display: inline-flex !important; } + +@media (min-width: 576px) { + .d-sm-none { + display: none !important; } + .d-sm-inline { + display: inline !important; } + .d-sm-inline-block { + display: inline-block !important; } + .d-sm-block { + display: block !important; } + .d-sm-table { + display: table !important; } + .d-sm-table-cell { + display: table-cell !important; } + .d-sm-flex { + display: flex !important; } + .d-sm-inline-flex { + display: inline-flex !important; } } + +@media (min-width: 768px) { + .d-md-none { + display: none !important; } + .d-md-inline { + display: inline !important; } + .d-md-inline-block { + display: inline-block !important; } + .d-md-block { + display: block !important; } + .d-md-table { + display: table !important; } + .d-md-table-cell { + display: table-cell !important; } + .d-md-flex { + display: flex !important; } + .d-md-inline-flex { + display: inline-flex !important; } } + +@media (min-width: 992px) { + .d-lg-none { + display: none !important; } + .d-lg-inline { + display: inline !important; } + .d-lg-inline-block { + display: inline-block !important; } + .d-lg-block { + display: block !important; } + .d-lg-table { + display: table !important; } + .d-lg-table-cell { + display: table-cell !important; } + .d-lg-flex { + display: flex !important; } + .d-lg-inline-flex { + display: inline-flex !important; } } + +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; } + .d-xl-inline { + display: inline !important; } + .d-xl-inline-block { + display: inline-block !important; } + .d-xl-block { + display: block !important; } + .d-xl-table { + display: table !important; } + .d-xl-table-cell { + display: table-cell !important; } + .d-xl-flex { + display: flex !important; } + .d-xl-inline-flex { + display: inline-flex !important; } } + +.flex-first { + order: -1; } + +.flex-last { + order: 1; } + +.flex-unordered { + order: 0; } + +.flex-row { + flex-direction: row !important; } + +.flex-column { + flex-direction: column !important; } + +.flex-row-reverse { + flex-direction: row-reverse !important; } + +.flex-column-reverse { + flex-direction: column-reverse !important; } + +.flex-wrap { + flex-wrap: wrap !important; } + +.flex-nowrap { + flex-wrap: nowrap !important; } + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; } + +.justify-content-start { + justify-content: flex-start !important; } + +.justify-content-end { + justify-content: flex-end !important; } + +.justify-content-center { + justify-content: center !important; } + +.justify-content-between { + justify-content: space-between !important; } + +.justify-content-around { + justify-content: space-around !important; } + +.align-items-start { + align-items: flex-start !important; } + +.align-items-end { + align-items: flex-end !important; } + +.align-items-center { + align-items: center !important; } + +.align-items-baseline { + align-items: baseline !important; } + +.align-items-stretch { + align-items: stretch !important; } + +.align-content-start { + align-content: flex-start !important; } + +.align-content-end { + align-content: flex-end !important; } + +.align-content-center { + align-content: center !important; } + +.align-content-between { + align-content: space-between !important; } + +.align-content-around { + align-content: space-around !important; } + +.align-content-stretch { + align-content: stretch !important; } + +.align-self-auto { + align-self: auto !important; } + +.align-self-start { + align-self: flex-start !important; } + +.align-self-end { + align-self: flex-end !important; } + +.align-self-center { + align-self: center !important; } + +.align-self-baseline { + align-self: baseline !important; } + +.align-self-stretch { + align-self: stretch !important; } + +@media (min-width: 576px) { + .flex-sm-first { + order: -1; } + .flex-sm-last { + order: 1; } + .flex-sm-unordered { + order: 0; } + .flex-sm-row { + flex-direction: row !important; } + .flex-sm-column { + flex-direction: column !important; } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; } + .flex-sm-wrap { + flex-wrap: wrap !important; } + .flex-sm-nowrap { + flex-wrap: nowrap !important; } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; } + .justify-content-sm-start { + justify-content: flex-start !important; } + .justify-content-sm-end { + justify-content: flex-end !important; } + .justify-content-sm-center { + justify-content: center !important; } + .justify-content-sm-between { + justify-content: space-between !important; } + .justify-content-sm-around { + justify-content: space-around !important; } + .align-items-sm-start { + align-items: flex-start !important; } + .align-items-sm-end { + align-items: flex-end !important; } + .align-items-sm-center { + align-items: center !important; } + .align-items-sm-baseline { + align-items: baseline !important; } + .align-items-sm-stretch { + align-items: stretch !important; } + .align-content-sm-start { + align-content: flex-start !important; } + .align-content-sm-end { + align-content: flex-end !important; } + .align-content-sm-center { + align-content: center !important; } + .align-content-sm-between { + align-content: space-between !important; } + .align-content-sm-around { + align-content: space-around !important; } + .align-content-sm-stretch { + align-content: stretch !important; } + .align-self-sm-auto { + align-self: auto !important; } + .align-self-sm-start { + align-self: flex-start !important; } + .align-self-sm-end { + align-self: flex-end !important; } + .align-self-sm-center { + align-self: center !important; } + .align-self-sm-baseline { + align-self: baseline !important; } + .align-self-sm-stretch { + align-self: stretch !important; } } + +@media (min-width: 768px) { + .flex-md-first { + order: -1; } + .flex-md-last { + order: 1; } + .flex-md-unordered { + order: 0; } + .flex-md-row { + flex-direction: row !important; } + .flex-md-column { + flex-direction: column !important; } + .flex-md-row-reverse { + flex-direction: row-reverse !important; } + .flex-md-column-reverse { + flex-direction: column-reverse !important; } + .flex-md-wrap { + flex-wrap: wrap !important; } + .flex-md-nowrap { + flex-wrap: nowrap !important; } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; } + .justify-content-md-start { + justify-content: flex-start !important; } + .justify-content-md-end { + justify-content: flex-end !important; } + .justify-content-md-center { + justify-content: center !important; } + .justify-content-md-between { + justify-content: space-between !important; } + .justify-content-md-around { + justify-content: space-around !important; } + .align-items-md-start { + align-items: flex-start !important; } + .align-items-md-end { + align-items: flex-end !important; } + .align-items-md-center { + align-items: center !important; } + .align-items-md-baseline { + align-items: baseline !important; } + .align-items-md-stretch { + align-items: stretch !important; } + .align-content-md-start { + align-content: flex-start !important; } + .align-content-md-end { + align-content: flex-end !important; } + .align-content-md-center { + align-content: center !important; } + .align-content-md-between { + align-content: space-between !important; } + .align-content-md-around { + align-content: space-around !important; } + .align-content-md-stretch { + align-content: stretch !important; } + .align-self-md-auto { + align-self: auto !important; } + .align-self-md-start { + align-self: flex-start !important; } + .align-self-md-end { + align-self: flex-end !important; } + .align-self-md-center { + align-self: center !important; } + .align-self-md-baseline { + align-self: baseline !important; } + .align-self-md-stretch { + align-self: stretch !important; } } + +@media (min-width: 992px) { + .flex-lg-first { + order: -1; } + .flex-lg-last { + order: 1; } + .flex-lg-unordered { + order: 0; } + .flex-lg-row { + flex-direction: row !important; } + .flex-lg-column { + flex-direction: column !important; } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; } + .flex-lg-wrap { + flex-wrap: wrap !important; } + .flex-lg-nowrap { + flex-wrap: nowrap !important; } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; } + .justify-content-lg-start { + justify-content: flex-start !important; } + .justify-content-lg-end { + justify-content: flex-end !important; } + .justify-content-lg-center { + justify-content: center !important; } + .justify-content-lg-between { + justify-content: space-between !important; } + .justify-content-lg-around { + justify-content: space-around !important; } + .align-items-lg-start { + align-items: flex-start !important; } + .align-items-lg-end { + align-items: flex-end !important; } + .align-items-lg-center { + align-items: center !important; } + .align-items-lg-baseline { + align-items: baseline !important; } + .align-items-lg-stretch { + align-items: stretch !important; } + .align-content-lg-start { + align-content: flex-start !important; } + .align-content-lg-end { + align-content: flex-end !important; } + .align-content-lg-center { + align-content: center !important; } + .align-content-lg-between { + align-content: space-between !important; } + .align-content-lg-around { + align-content: space-around !important; } + .align-content-lg-stretch { + align-content: stretch !important; } + .align-self-lg-auto { + align-self: auto !important; } + .align-self-lg-start { + align-self: flex-start !important; } + .align-self-lg-end { + align-self: flex-end !important; } + .align-self-lg-center { + align-self: center !important; } + .align-self-lg-baseline { + align-self: baseline !important; } + .align-self-lg-stretch { + align-self: stretch !important; } } + +@media (min-width: 1200px) { + .flex-xl-first { + order: -1; } + .flex-xl-last { + order: 1; } + .flex-xl-unordered { + order: 0; } + .flex-xl-row { + flex-direction: row !important; } + .flex-xl-column { + flex-direction: column !important; } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; } + .flex-xl-wrap { + flex-wrap: wrap !important; } + .flex-xl-nowrap { + flex-wrap: nowrap !important; } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; } + .justify-content-xl-start { + justify-content: flex-start !important; } + .justify-content-xl-end { + justify-content: flex-end !important; } + .justify-content-xl-center { + justify-content: center !important; } + .justify-content-xl-between { + justify-content: space-between !important; } + .justify-content-xl-around { + justify-content: space-around !important; } + .align-items-xl-start { + align-items: flex-start !important; } + .align-items-xl-end { + align-items: flex-end !important; } + .align-items-xl-center { + align-items: center !important; } + .align-items-xl-baseline { + align-items: baseline !important; } + .align-items-xl-stretch { + align-items: stretch !important; } + .align-content-xl-start { + align-content: flex-start !important; } + .align-content-xl-end { + align-content: flex-end !important; } + .align-content-xl-center { + align-content: center !important; } + .align-content-xl-between { + align-content: space-between !important; } + .align-content-xl-around { + align-content: space-around !important; } + .align-content-xl-stretch { + align-content: stretch !important; } + .align-self-xl-auto { + align-self: auto !important; } + .align-self-xl-start { + align-self: flex-start !important; } + .align-self-xl-end { + align-self: flex-end !important; } + .align-self-xl-center { + align-self: center !important; } + .align-self-xl-baseline { + align-self: baseline !important; } + .align-self-xl-stretch { + align-self: stretch !important; } } + +.float-left { + float: left !important; } + +.float-right { + float: right !important; } + +.float-none { + float: none !important; } + +@media (min-width: 576px) { + .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: 992px) { + .float-lg-left { + float: left !important; } + .float-lg-right { + float: right !important; } + .float-lg-none { + float: none !important; } } + +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; } + .float-xl-right { + float: right !important; } + .float-xl-none { + float: none !important; } } + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; } + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; } + +.sticky-top { + position: sticky; + top: 0; + z-index: 1030; } + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; } + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; } + +.w-25 { + width: 25% !important; } + +.w-50 { + width: 50% !important; } + +.w-75 { + width: 75% !important; } + +.w-100 { + width: 100% !important; } + +.h-25 { + height: 25% !important; } + +.h-50 { + height: 50% !important; } + +.h-75 { + height: 75% !important; } + +.h-100 { + height: 100% !important; } + +.mw-100 { + max-width: 100% !important; } + +.mh-100 { + max-height: 100% !important; } + +.m-0 { + margin: 0 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: 0.25rem 0.25rem !important; } + +.mt-1 { + margin-top: 0.25rem !important; } + +.mr-1 { + margin-right: 0.25rem !important; } + +.mb-1 { + margin-bottom: 0.25rem !important; } + +.ml-1 { + margin-left: 0.25rem !important; } + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + +.m-2 { + margin: 0.5rem 0.5rem !important; } + +.mt-2 { + margin-top: 0.5rem !important; } + +.mr-2 { + margin-right: 0.5rem !important; } + +.mb-2 { + margin-bottom: 0.5rem !important; } + +.ml-2 { + margin-left: 0.5rem !important; } + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + +.m-3 { + margin: 1rem 1rem !important; } + +.mt-3 { + margin-top: 1rem !important; } + +.mr-3 { + margin-right: 1rem !important; } + +.mb-3 { + margin-bottom: 1rem !important; } + +.ml-3 { + margin-left: 1rem !important; } + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + +.m-4 { + margin: 1.5rem 1.5rem !important; } + +.mt-4 { + margin-top: 1.5rem !important; } + +.mr-4 { + margin-right: 1.5rem !important; } + +.mb-4 { + margin-bottom: 1.5rem !important; } + +.ml-4 { + margin-left: 1.5rem !important; } + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + +.m-5 { + margin: 3rem 3rem !important; } + +.mt-5 { + margin-top: 3rem !important; } + +.mr-5 { + margin-right: 3rem !important; } + +.mb-5 { + margin-bottom: 3rem !important; } + +.ml-5 { + margin-left: 3rem !important; } + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + +.p-0 { + padding: 0 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: 0.25rem 0.25rem !important; } + +.pt-1 { + padding-top: 0.25rem !important; } + +.pr-1 { + padding-right: 0.25rem !important; } + +.pb-1 { + padding-bottom: 0.25rem !important; } + +.pl-1 { + padding-left: 0.25rem !important; } + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + +.p-2 { + padding: 0.5rem 0.5rem !important; } + +.pt-2 { + padding-top: 0.5rem !important; } + +.pr-2 { + padding-right: 0.5rem !important; } + +.pb-2 { + padding-bottom: 0.5rem !important; } + +.pl-2 { + padding-left: 0.5rem !important; } + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + +.p-3 { + padding: 1rem 1rem !important; } + +.pt-3 { + padding-top: 1rem !important; } + +.pr-3 { + padding-right: 1rem !important; } + +.pb-3 { + padding-bottom: 1rem !important; } + +.pl-3 { + padding-left: 1rem !important; } + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + +.p-4 { + padding: 1.5rem 1.5rem !important; } + +.pt-4 { + padding-top: 1.5rem !important; } + +.pr-4 { + padding-right: 1.5rem !important; } + +.pb-4 { + padding-bottom: 1.5rem !important; } + +.pl-4 { + padding-left: 1.5rem !important; } + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + +.p-5 { + padding: 3rem 3rem !important; } + +.pt-5 { + padding-top: 3rem !important; } + +.pr-5 { + padding-right: 3rem !important; } + +.pb-5 { + padding-bottom: 3rem !important; } + +.pl-5 { + padding-left: 3rem !important; } + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + +.m-auto { + margin: auto !important; } + +.mt-auto { + margin-top: auto !important; } + +.mr-auto { + margin-right: auto !important; } + +.mb-auto { + margin-bottom: auto !important; } + +.ml-auto { + margin-left: auto !important; } + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; } + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; } + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 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: 0.25rem 0.25rem !important; } + .mt-sm-1 { + margin-top: 0.25rem !important; } + .mr-sm-1 { + margin-right: 0.25rem !important; } + .mb-sm-1 { + margin-bottom: 0.25rem !important; } + .ml-sm-1 { + margin-left: 0.25rem !important; } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + .m-sm-2 { + margin: 0.5rem 0.5rem !important; } + .mt-sm-2 { + margin-top: 0.5rem !important; } + .mr-sm-2 { + margin-right: 0.5rem !important; } + .mb-sm-2 { + margin-bottom: 0.5rem !important; } + .ml-sm-2 { + margin-left: 0.5rem !important; } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + .m-sm-3 { + margin: 1rem 1rem !important; } + .mt-sm-3 { + margin-top: 1rem !important; } + .mr-sm-3 { + margin-right: 1rem !important; } + .mb-sm-3 { + margin-bottom: 1rem !important; } + .ml-sm-3 { + margin-left: 1rem !important; } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + .m-sm-4 { + margin: 1.5rem 1.5rem !important; } + .mt-sm-4 { + margin-top: 1.5rem !important; } + .mr-sm-4 { + margin-right: 1.5rem !important; } + .mb-sm-4 { + margin-bottom: 1.5rem !important; } + .ml-sm-4 { + margin-left: 1.5rem !important; } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + .m-sm-5 { + margin: 3rem 3rem !important; } + .mt-sm-5 { + margin-top: 3rem !important; } + .mr-sm-5 { + margin-right: 3rem !important; } + .mb-sm-5 { + margin-bottom: 3rem !important; } + .ml-sm-5 { + margin-left: 3rem !important; } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + .p-sm-0 { + padding: 0 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: 0.25rem 0.25rem !important; } + .pt-sm-1 { + padding-top: 0.25rem !important; } + .pr-sm-1 { + padding-right: 0.25rem !important; } + .pb-sm-1 { + padding-bottom: 0.25rem !important; } + .pl-sm-1 { + padding-left: 0.25rem !important; } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + .p-sm-2 { + padding: 0.5rem 0.5rem !important; } + .pt-sm-2 { + padding-top: 0.5rem !important; } + .pr-sm-2 { + padding-right: 0.5rem !important; } + .pb-sm-2 { + padding-bottom: 0.5rem !important; } + .pl-sm-2 { + padding-left: 0.5rem !important; } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + .p-sm-3 { + padding: 1rem 1rem !important; } + .pt-sm-3 { + padding-top: 1rem !important; } + .pr-sm-3 { + padding-right: 1rem !important; } + .pb-sm-3 { + padding-bottom: 1rem !important; } + .pl-sm-3 { + padding-left: 1rem !important; } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + .p-sm-4 { + padding: 1.5rem 1.5rem !important; } + .pt-sm-4 { + padding-top: 1.5rem !important; } + .pr-sm-4 { + padding-right: 1.5rem !important; } + .pb-sm-4 { + padding-bottom: 1.5rem !important; } + .pl-sm-4 { + padding-left: 1.5rem !important; } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + .p-sm-5 { + padding: 3rem 3rem !important; } + .pt-sm-5 { + padding-top: 3rem !important; } + .pr-sm-5 { + padding-right: 3rem !important; } + .pb-sm-5 { + padding-bottom: 3rem !important; } + .pl-sm-5 { + padding-left: 3rem !important; } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + .m-sm-auto { + margin: auto !important; } + .mt-sm-auto { + margin-top: auto !important; } + .mr-sm-auto { + margin-right: auto !important; } + .mb-sm-auto { + margin-bottom: auto !important; } + .ml-sm-auto { + margin-left: auto !important; } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; } } + +@media (min-width: 768px) { + .m-md-0 { + margin: 0 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: 0.25rem 0.25rem !important; } + .mt-md-1 { + margin-top: 0.25rem !important; } + .mr-md-1 { + margin-right: 0.25rem !important; } + .mb-md-1 { + margin-bottom: 0.25rem !important; } + .ml-md-1 { + margin-left: 0.25rem !important; } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + .m-md-2 { + margin: 0.5rem 0.5rem !important; } + .mt-md-2 { + margin-top: 0.5rem !important; } + .mr-md-2 { + margin-right: 0.5rem !important; } + .mb-md-2 { + margin-bottom: 0.5rem !important; } + .ml-md-2 { + margin-left: 0.5rem !important; } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + .m-md-3 { + margin: 1rem 1rem !important; } + .mt-md-3 { + margin-top: 1rem !important; } + .mr-md-3 { + margin-right: 1rem !important; } + .mb-md-3 { + margin-bottom: 1rem !important; } + .ml-md-3 { + margin-left: 1rem !important; } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + .m-md-4 { + margin: 1.5rem 1.5rem !important; } + .mt-md-4 { + margin-top: 1.5rem !important; } + .mr-md-4 { + margin-right: 1.5rem !important; } + .mb-md-4 { + margin-bottom: 1.5rem !important; } + .ml-md-4 { + margin-left: 1.5rem !important; } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + .m-md-5 { + margin: 3rem 3rem !important; } + .mt-md-5 { + margin-top: 3rem !important; } + .mr-md-5 { + margin-right: 3rem !important; } + .mb-md-5 { + margin-bottom: 3rem !important; } + .ml-md-5 { + margin-left: 3rem !important; } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + .p-md-0 { + padding: 0 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: 0.25rem 0.25rem !important; } + .pt-md-1 { + padding-top: 0.25rem !important; } + .pr-md-1 { + padding-right: 0.25rem !important; } + .pb-md-1 { + padding-bottom: 0.25rem !important; } + .pl-md-1 { + padding-left: 0.25rem !important; } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + .p-md-2 { + padding: 0.5rem 0.5rem !important; } + .pt-md-2 { + padding-top: 0.5rem !important; } + .pr-md-2 { + padding-right: 0.5rem !important; } + .pb-md-2 { + padding-bottom: 0.5rem !important; } + .pl-md-2 { + padding-left: 0.5rem !important; } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + .p-md-3 { + padding: 1rem 1rem !important; } + .pt-md-3 { + padding-top: 1rem !important; } + .pr-md-3 { + padding-right: 1rem !important; } + .pb-md-3 { + padding-bottom: 1rem !important; } + .pl-md-3 { + padding-left: 1rem !important; } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + .p-md-4 { + padding: 1.5rem 1.5rem !important; } + .pt-md-4 { + padding-top: 1.5rem !important; } + .pr-md-4 { + padding-right: 1.5rem !important; } + .pb-md-4 { + padding-bottom: 1.5rem !important; } + .pl-md-4 { + padding-left: 1.5rem !important; } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + .p-md-5 { + padding: 3rem 3rem !important; } + .pt-md-5 { + padding-top: 3rem !important; } + .pr-md-5 { + padding-right: 3rem !important; } + .pb-md-5 { + padding-bottom: 3rem !important; } + .pl-md-5 { + padding-left: 3rem !important; } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + .m-md-auto { + margin: auto !important; } + .mt-md-auto { + margin-top: auto !important; } + .mr-md-auto { + margin-right: auto !important; } + .mb-md-auto { + margin-bottom: auto !important; } + .ml-md-auto { + margin-left: auto !important; } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; } } + +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 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: 0.25rem 0.25rem !important; } + .mt-lg-1 { + margin-top: 0.25rem !important; } + .mr-lg-1 { + margin-right: 0.25rem !important; } + .mb-lg-1 { + margin-bottom: 0.25rem !important; } + .ml-lg-1 { + margin-left: 0.25rem !important; } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + .m-lg-2 { + margin: 0.5rem 0.5rem !important; } + .mt-lg-2 { + margin-top: 0.5rem !important; } + .mr-lg-2 { + margin-right: 0.5rem !important; } + .mb-lg-2 { + margin-bottom: 0.5rem !important; } + .ml-lg-2 { + margin-left: 0.5rem !important; } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + .m-lg-3 { + margin: 1rem 1rem !important; } + .mt-lg-3 { + margin-top: 1rem !important; } + .mr-lg-3 { + margin-right: 1rem !important; } + .mb-lg-3 { + margin-bottom: 1rem !important; } + .ml-lg-3 { + margin-left: 1rem !important; } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + .m-lg-4 { + margin: 1.5rem 1.5rem !important; } + .mt-lg-4 { + margin-top: 1.5rem !important; } + .mr-lg-4 { + margin-right: 1.5rem !important; } + .mb-lg-4 { + margin-bottom: 1.5rem !important; } + .ml-lg-4 { + margin-left: 1.5rem !important; } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + .m-lg-5 { + margin: 3rem 3rem !important; } + .mt-lg-5 { + margin-top: 3rem !important; } + .mr-lg-5 { + margin-right: 3rem !important; } + .mb-lg-5 { + margin-bottom: 3rem !important; } + .ml-lg-5 { + margin-left: 3rem !important; } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + .p-lg-0 { + padding: 0 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: 0.25rem 0.25rem !important; } + .pt-lg-1 { + padding-top: 0.25rem !important; } + .pr-lg-1 { + padding-right: 0.25rem !important; } + .pb-lg-1 { + padding-bottom: 0.25rem !important; } + .pl-lg-1 { + padding-left: 0.25rem !important; } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + .p-lg-2 { + padding: 0.5rem 0.5rem !important; } + .pt-lg-2 { + padding-top: 0.5rem !important; } + .pr-lg-2 { + padding-right: 0.5rem !important; } + .pb-lg-2 { + padding-bottom: 0.5rem !important; } + .pl-lg-2 { + padding-left: 0.5rem !important; } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + .p-lg-3 { + padding: 1rem 1rem !important; } + .pt-lg-3 { + padding-top: 1rem !important; } + .pr-lg-3 { + padding-right: 1rem !important; } + .pb-lg-3 { + padding-bottom: 1rem !important; } + .pl-lg-3 { + padding-left: 1rem !important; } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + .p-lg-4 { + padding: 1.5rem 1.5rem !important; } + .pt-lg-4 { + padding-top: 1.5rem !important; } + .pr-lg-4 { + padding-right: 1.5rem !important; } + .pb-lg-4 { + padding-bottom: 1.5rem !important; } + .pl-lg-4 { + padding-left: 1.5rem !important; } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + .p-lg-5 { + padding: 3rem 3rem !important; } + .pt-lg-5 { + padding-top: 3rem !important; } + .pr-lg-5 { + padding-right: 3rem !important; } + .pb-lg-5 { + padding-bottom: 3rem !important; } + .pl-lg-5 { + padding-left: 3rem !important; } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + .m-lg-auto { + margin: auto !important; } + .mt-lg-auto { + margin-top: auto !important; } + .mr-lg-auto { + margin-right: auto !important; } + .mb-lg-auto { + margin-bottom: auto !important; } + .ml-lg-auto { + margin-left: auto !important; } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; } } + +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 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: 0.25rem 0.25rem !important; } + .mt-xl-1 { + margin-top: 0.25rem !important; } + .mr-xl-1 { + margin-right: 0.25rem !important; } + .mb-xl-1 { + margin-bottom: 0.25rem !important; } + .ml-xl-1 { + margin-left: 0.25rem !important; } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + .m-xl-2 { + margin: 0.5rem 0.5rem !important; } + .mt-xl-2 { + margin-top: 0.5rem !important; } + .mr-xl-2 { + margin-right: 0.5rem !important; } + .mb-xl-2 { + margin-bottom: 0.5rem !important; } + .ml-xl-2 { + margin-left: 0.5rem !important; } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + .m-xl-3 { + margin: 1rem 1rem !important; } + .mt-xl-3 { + margin-top: 1rem !important; } + .mr-xl-3 { + margin-right: 1rem !important; } + .mb-xl-3 { + margin-bottom: 1rem !important; } + .ml-xl-3 { + margin-left: 1rem !important; } + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + .m-xl-4 { + margin: 1.5rem 1.5rem !important; } + .mt-xl-4 { + margin-top: 1.5rem !important; } + .mr-xl-4 { + margin-right: 1.5rem !important; } + .mb-xl-4 { + margin-bottom: 1.5rem !important; } + .ml-xl-4 { + margin-left: 1.5rem !important; } + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + .m-xl-5 { + margin: 3rem 3rem !important; } + .mt-xl-5 { + margin-top: 3rem !important; } + .mr-xl-5 { + margin-right: 3rem !important; } + .mb-xl-5 { + margin-bottom: 3rem !important; } + .ml-xl-5 { + margin-left: 3rem !important; } + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + .p-xl-0 { + padding: 0 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: 0.25rem 0.25rem !important; } + .pt-xl-1 { + padding-top: 0.25rem !important; } + .pr-xl-1 { + padding-right: 0.25rem !important; } + .pb-xl-1 { + padding-bottom: 0.25rem !important; } + .pl-xl-1 { + padding-left: 0.25rem !important; } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + .p-xl-2 { + padding: 0.5rem 0.5rem !important; } + .pt-xl-2 { + padding-top: 0.5rem !important; } + .pr-xl-2 { + padding-right: 0.5rem !important; } + .pb-xl-2 { + padding-bottom: 0.5rem !important; } + .pl-xl-2 { + padding-left: 0.5rem !important; } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + .p-xl-3 { + padding: 1rem 1rem !important; } + .pt-xl-3 { + padding-top: 1rem !important; } + .pr-xl-3 { + padding-right: 1rem !important; } + .pb-xl-3 { + padding-bottom: 1rem !important; } + .pl-xl-3 { + padding-left: 1rem !important; } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + .p-xl-4 { + padding: 1.5rem 1.5rem !important; } + .pt-xl-4 { + padding-top: 1.5rem !important; } + .pr-xl-4 { + padding-right: 1.5rem !important; } + .pb-xl-4 { + padding-bottom: 1.5rem !important; } + .pl-xl-4 { + padding-left: 1.5rem !important; } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + .p-xl-5 { + padding: 3rem 3rem !important; } + .pt-xl-5 { + padding-top: 3rem !important; } + .pr-xl-5 { + padding-right: 3rem !important; } + .pb-xl-5 { + padding-bottom: 3rem !important; } + .pl-xl-5 { + padding-left: 3rem !important; } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + .m-xl-auto { + margin: auto !important; } + .mt-xl-auto { + margin-top: auto !important; } + .mr-xl-auto { + margin-right: auto !important; } + .mb-xl-auto { + margin-bottom: auto !important; } + .ml-xl-auto { + margin-left: auto !important; } + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; } } + +.text-justify { + text-align: justify !important; } + +.text-nowrap { + white-space: nowrap !important; } + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + +.text-left { + text-align: left !important; } + +.text-right { + text-align: right !important; } + +.text-center { + text-align: center !important; } + +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important; } + .text-sm-right { + text-align: right !important; } + .text-sm-center { + text-align: center !important; } } + +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; } + .text-md-right { + text-align: right !important; } + .text-md-center { + text-align: center !important; } } + +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; } + .text-lg-right { + text-align: right !important; } + .text-lg-center { + text-align: center !important; } } + +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; } + .text-xl-right { + text-align: right !important; } + .text-xl-center { + text-align: center !important; } } + +.text-lowercase { + text-transform: lowercase !important; } + +.text-uppercase { + text-transform: uppercase !important; } + +.text-capitalize { + text-transform: capitalize !important; } + +.font-weight-normal { + font-weight: normal; } + +.font-weight-bold { + font-weight: bold; } + +.font-italic { + font-style: italic; } + +.text-white { + color: #fff !important; } + +.text-muted { + color: #d5d5d5 !important; } + +a.text-muted:focus, a.text-muted:hover { + color: #bcbcbc !important; } + +.text-primary { + color: #0275d8 !important; } + +a.text-primary:focus, a.text-primary:hover { + color: #025aa5 !important; } + +.text-success { + color: #5cb85c !important; } + +a.text-success:focus, a.text-success:hover { + color: #449d44 !important; } + +.text-info { + color: #5bc0de !important; } + +a.text-info:focus, a.text-info:hover { + color: #31b0d5 !important; } + +.text-warning { + color: #f0ad4e !important; } + +a.text-warning:focus, a.text-warning:hover { + color: #ec971f !important; } + +.text-danger { + color: #d9534f !important; } + +a.text-danger:focus, a.text-danger:hover { + color: #c9302c !important; } + +.text-gray-dark { + color: #373a3c !important; } + +a.text-gray-dark:focus, a.text-gray-dark:hover { + color: #1f2021 !important; } + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; } + +.invisible { + visibility: hidden !important; } + +.hidden-xs-up { + display: none !important; } + +@media (max-width: 575px) { + .hidden-xs-down { + display: none !important; } } + +@media (min-width: 576px) { + .hidden-sm-up { + display: none !important; } } + +@media (max-width: 767px) { + .hidden-sm-down { + display: none !important; } } + +@media (min-width: 768px) { + .hidden-md-up { + display: none !important; } } + +@media (max-width: 991px) { + .hidden-md-down { + display: none !important; } } + +@media (min-width: 992px) { + .hidden-lg-up { + display: none !important; } } + +@media (max-width: 1199px) { + .hidden-lg-down { + display: none !important; } } + +@media (min-width: 1200px) { + .hidden-xl-up { + display: none !important; } } + +.hidden-xl-down { + display: none !important; } + +.visible-print-block { + display: none !important; } + @media print { + .visible-print-block { + display: block !important; } } + +.visible-print-inline { + display: none !important; } + @media print { + .visible-print-inline { + display: inline !important; } } + +.visible-print-inline-block { + display: none !important; } + @media print { + .visible-print-inline-block { + display: inline-block !important; } } + +@media print { + .hidden-print { + display: none !important; } } + +.container-narrow { + position: relative; + margin-left: auto; + margin-right: auto; + padding-right: 15px; + padding-left: 15px; } + @media (min-width: 576px) { + .container-narrow { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 768px) { + .container-narrow { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 992px) { + .container-narrow { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 1200px) { + .container-narrow { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 576px) { + .container-narrow { + max-width: 34rem; } } + @media (min-width: 768px) { + .container-narrow { + max-width: 45rem; } } + @media (min-width: 992px) { + .container-narrow { + max-width: 45rem; } } + @media (min-width: 1200px) { + .container-narrow { + max-width: 45rem; } } + +.nav-underline .nav-item.active, .nav-underline .nav-item.active:hover { + box-shadow: 0px -3px 0 0 #0275d8 inset; } + .nav-underline .nav-item.active .nav-link, .nav-underline .nav-item.active:hover .nav-link { + color: #0275d8; } + +.nav-underline li:hover { + box-shadow: 0px -3px 0 0 #ddd inset; } + +.nav-underline li { + padding-top: 0.2rem; + padding-bottom: 0.2rem; } + +.navbar-underline { + background-color: #d5d5d5; + border-top: 1px solid #c8c8c8; } + +pre { + background-color: #fdf6e3; + padding: 1rem; } + +.table-expand-col { + min-width: 100%; } + +body { + background-color: #373a3c; } + +.card-success { + background-color: #dff0d8; + border-color: #d0e9c6; + color: #3c763d; } + .card-success hr { + border-top-color: #c1e2b3; } + .card-success .alert-link { + color: #2b542c; } + .card-success .card-header { + background-color: #d0e9c6; + border-bottom: 1px solid #c1e2b3; } + +.card-info { + background-color: #d9edf7; + border-color: #bcdff1; + color: #31708f; } + .card-info hr { + border-top-color: #a6d5ec; } + .card-info .alert-link { + color: #245269; } + .card-info .card-header { + background-color: #c4e3f3; + border-bottom: 1px solid #afd9ee; } + +.card-primary { + background-color: #d9edf7; + border-color: #bcdff1; + color: #31708f; } + .card-primary hr { + border-top-color: #a6d5ec; } + .card-primary .alert-link { + color: #245269; } + .card-primary .card-header { + background-color: #c4e3f3; + border-bottom: 1px solid #afd9ee; } + +.card-warning { + background-color: #fcf8e3; + border-color: #faf2cc; + color: #8a6d3b; } + .card-warning hr { + border-top-color: #f7ecb5; } + .card-warning .alert-link { + color: #66512c; } + .card-warning .card-header { + background-color: #faf2cc; + border-bottom: 1px solid #f7ecb5; } + +.card-danger { + background-color: #f2dede; + border-color: #ebcccc; + color: #a94442; } + .card-danger hr { + border-top-color: #e4b9b9; } + .card-danger .alert-link { + color: #843534; } + .card-danger .card-header { + background-color: #ebcccc; + border-bottom: 1px solid #e4b9b9; } + +.masthead { + background-image: linear-gradient(to bottom, #eee 0%, #ddd 100%); + background-repeat: repeat-x; + padding-top: 10px; + padding-bottom: 10px; } + +.subheader { + background: #f3f3f3; + border-bottom: 1px solid #d5d5d5; } + .subheader .nav-tabs { + margin-bottom: -1px; } + +.footer { + background-color: #373a3c; } + +.bodycontent { + background: #fff; } + +/*Overrides for content generated by python docutils*/ +.document-docutils > .section { + padding-bottom: 1rem; } + +.document-docutils pre { + /* Comment */ + /* Error */ + /* Generic */ + /* Keyword */ + /* Literal */ + /* Name */ + /* Operator */ + /* Other */ + /* Punctuation */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Emph */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Output */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Namespace */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Date */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Decorator */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Label */ + /* Name.Namespace */ + /* Name.Other */ + /* Name.Property */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Text.Whitespace */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Literal.Number.Integer.Long */ } + .document-docutils pre .comment { + color: #586e75; } + .document-docutils pre .error { + color: #93a1a1; } + .document-docutils pre .generic { + color: #93a1a1; } + .document-docutils pre .keyword { + color: #859900; } + .document-docutils pre .literal { + color: #93a1a1; } + .document-docutils pre .name { + color: #93a1a1; } + .document-docutils pre .operator { + color: #859900; } + .document-docutils pre .other { + color: #cb4b16; } + .document-docutils pre .punctuation { + color: #93a1a1; } + .document-docutils pre .comment.multiline { + color: #586e75; } + .document-docutils pre .comment.preproc { + color: #859900; } + .document-docutils pre .comment.single { + color: #586e75; } + .document-docutils pre .comment.special { + color: #859900; } + .document-docutils pre .generic.deleted { + color: #2aa198; } + .document-docutils pre .generic.emph { + color: #93a1a1; + font-style: italic; } + .document-docutils pre .generic.error { + color: #dc322f; } + .document-docutils pre .generic.heading { + color: #cb4b16; } + .document-docutils pre .generic.inserted { + color: #859900; } + .document-docutils pre .generic.output { + color: #93a1a1; } + .document-docutils pre .generic.prompt { + color: #93a1a1; } + .document-docutils pre .generic.strong { + color: #93a1a1; + font-weight: bold; } + .document-docutils pre .generic.subheading { + color: #cb4b16; } + .document-docutils pre .generic.traceback { + color: #93a1a1; } + .document-docutils pre .keyword.constant { + color: #cb4b16; } + .document-docutils pre .keyword.declaration { + color: #268bd2; } + .document-docutils pre .keyword.namespace { + color: #859900; } + .document-docutils pre .keyword.pseudo { + color: #859900; } + .document-docutils pre .keyword.reserved { + color: #268bd2; } + .document-docutils pre .keyword.type { + color: #dc322f; } + .document-docutils pre .literal.date { + color: #93a1a1; } + .document-docutils pre .literal.number { + color: #2aa198; } + .document-docutils pre .literal.string { + color: #2aa198; } + .document-docutils pre .name.attribute { + color: #93a1a1; } + .document-docutils pre .name.builtin { + color: #B58900; } + .document-docutils pre .name.class { + color: #268bd2; } + .document-docutils pre .name.constant { + color: #cb4b16; } + .document-docutils pre .name.decorator { + color: #268bd2; } + .document-docutils pre .name.entity { + color: #cb4b16; } + .document-docutils pre .name.exception { + color: #cb4b16; } + .document-docutils pre .name.function { + color: #268bd2; } + .document-docutils pre .name.label { + color: #93a1a1; } + .document-docutils pre .name.namespace { + color: #93a1a1; } + .document-docutils pre .name.other { + color: #93a1a1; } + .document-docutils pre .name.property { + color: #93a1a1; } + .document-docutils pre .name.tag { + color: #268bd2; } + .document-docutils pre .name.variable { + color: #268bd2; } + .document-docutils pre .operator.word { + color: #859900; } + .document-docutils pre .text.whitespace { + color: #93a1a1; } + .document-docutils pre .literal.number.float { + color: #2aa198; } + .document-docutils pre .literal.number.hex { + color: #2aa198; } + .document-docutils pre .literal.number.integer { + color: #2aa198; } + .document-docutils pre .literal.number.oct { + color: #2aa198; } + .document-docutils pre .literal.string.backtick { + color: #586e75; } + .document-docutils pre .literal.string.char { + color: #2aa198; } + .document-docutils pre .literal.string.doc { + color: #93a1a1; } + .document-docutils pre .literal.string.double { + color: #2aa198; } + .document-docutils pre .literal.string.escape { + color: #cb4b16; } + .document-docutils pre .literal.string.heredoc { + color: #93a1a1; } + .document-docutils pre .literal.string.interpol { + color: #2aa198; } + .document-docutils pre .literal.string.other { + color: #2aa198; } + .document-docutils pre .literal.string.regex { + color: #dc322f; } + .document-docutils pre .literal.string.single { + color: #2aa198; } + .document-docutils pre .literal.string.symbol { + color: #2aa198; } + .document-docutils pre .name.builtin.pseudo { + color: #268bd2; } + .document-docutils pre .name.variable.class { + color: #268bd2; } + .document-docutils pre .name.variable.global { + color: #268bd2; } + .document-docutils pre .name.variable.instance { + color: #268bd2; } + .document-docutils pre .literal.number.integer.long { + color: #2aa198; } diff --git a/theme/static/fedora-bootstrap.js b/theme/static/fedora-bootstrap.js new file mode 100644 index 0000000..90013fa --- /dev/null +++ b/theme/static/fedora-bootstrap.js @@ -0,0 +1,5422 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __webpack_require__) { + + /*fedora-bootstrap v1.0.3 -- https://pagure.io/fedora-bootstrap */ + 'use strict'; + + __webpack_require__(1); + + __webpack_require__(2); + + __webpack_require__(3); + +/***/ }, +/* 1 */ +/***/ function(module, exports, __webpack_require__) { + + var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! tether 1.4.0 */ + + (function(root, factory) { + if (true) { + !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else if (typeof exports === 'object') { + module.exports = factory(require, exports, module); + } else { + root.Tether = factory(); + } + }(this, function(require, exports, module) { + + 'use strict'; + + var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + var TetherBase = undefined; + if (typeof TetherBase === 'undefined') { + TetherBase = { modules: [] }; + } + + var zeroElement = null; + + // Same as native getBoundingClientRect, except it takes into account parent offsets + // if the element lies within a nested document ( or