diff --git a/.gitignore b/.gitignore index b903977..9ce3160 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,6 @@ geoserver/ uploaded/ development.db development.db-journal + +# PyCharm +.idea diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/charts-prj/__init__.py b/charts-prj/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/charts-prj/settings.py b/charts-prj/settings.py new file mode 100644 index 0000000..19b5894 --- /dev/null +++ b/charts-prj/settings.py @@ -0,0 +1,58 @@ +""" +Django settings for charts project. + +Generated by 'django-admin startproject' using Django 1.8.7. + +For more information on this file, see +https://docs.djangoproject.com/en/1.8/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/1.8/ref/settings/ +""" + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +import os +from geonode.settings import * + +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +SITENAME = 'charts-prj' + +LOCAL_ROOT = os.path.abspath(os.path.dirname(__file__)) + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = '*u(5zzp_wjj!^!w4$h@e#jv!*y02z17lb8gu-l)j+*79p^r8%(' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +# Application definition + +INSTALLED_APPS = INSTALLED_APPS + ( + 'charts_app', + 'wfs_harvest' +) + +WSGI_APPLICATION = 'charts-prj.wsgi.application' + +# Additional directories which hold static files +STATICFILES_DIRS.append( + os.path.join(LOCAL_ROOT, "static"), +) + +# Location of url mappings +ROOT_URLCONF = 'charts-prj.urls' + +# Location of locale files +LOCALE_PATHS = ( + os.path.join(LOCAL_ROOT, 'locale'), + ) + LOCALE_PATHS + +TEMPLATES[0]['DIRS'].insert(0, os.path.join(LOCAL_ROOT, "templates")) + +MAX_CSV_RECORDS = 20000 + +ALLOWED_HOSTS = ['*'] +PROXY_ALLOWED_HOSTS = ['*'] diff --git a/charts-prj/static/README b/charts-prj/static/README new file mode 100644 index 0000000..a0fd00c --- /dev/null +++ b/charts-prj/static/README @@ -0,0 +1,8 @@ +This directory is used to store static assets for your project. User media files +(FileFields/ImageFields) are not stored here. + +The convention for this directory is: + + * css/ — stores CSS files + * js/ — stores Javascript files + * img/ — stores image files diff --git a/charts-prj/static/css/site_base.css b/charts-prj/static/css/site_base.css new file mode 100644 index 0000000..e69de29 diff --git a/charts-prj/static/img/README b/charts-prj/static/img/README new file mode 100644 index 0000000..e69de29 diff --git a/charts-prj/static/js/README b/charts-prj/static/js/README new file mode 100644 index 0000000..e69de29 diff --git a/charts-prj/templates/_actions.html b/charts-prj/templates/_actions.html new file mode 100644 index 0000000..7e96144 --- /dev/null +++ b/charts-prj/templates/_actions.html @@ -0,0 +1,24 @@ +{% load i18n %} + diff --git a/charts-prj/templates/geonode_base.html b/charts-prj/templates/geonode_base.html new file mode 100644 index 0000000..80d77ad --- /dev/null +++ b/charts-prj/templates/geonode_base.html @@ -0,0 +1,4 @@ +{% extends "site_base.html" %} + +{% load i18n %} +{% load staticfiles %} diff --git a/charts-prj/templates/site_base.html b/charts-prj/templates/site_base.html new file mode 100644 index 0000000..e6eab01 --- /dev/null +++ b/charts-prj/templates/site_base.html @@ -0,0 +1,12 @@ +{% extends "base.html" %} +{% block extra_head %} + +{% endblock %} +{% block extra_tab %} +{% comment %} +Add Tab for Third Party Apps +
  • + App +
  • +{% endcomment %} +{% endblock %} diff --git a/charts-prj/templates/site_index.html b/charts-prj/templates/site_index.html new file mode 100644 index 0000000..b0d3f4e --- /dev/null +++ b/charts-prj/templates/site_index.html @@ -0,0 +1,15 @@ +{% extends 'index.html' %} +{% load i18n %} +{% comment %} +This is where you can override the hero area block. You can simply modify the content below or replace it wholesale to meet your own needs. +{% endcomment %} + {% block hero %} +
    +
    +

    {% trans "Welcome to the charts GeoNode" %}

    +

    {% blocktrans %}GeoNode is an open source platform for sharing geospatial data and maps.{% endblocktrans %}

    +

    {% blocktrans %}If you have any questions about the software or service, join our mailing list.{% endblocktrans %}

    + {% trans 'Need help?' %} {% trans 'Getting Started' %} +
    +
    + {% endblock %} diff --git a/charts-prj/testing_settings.py b/charts-prj/testing_settings.py new file mode 100644 index 0000000..cb93e74 --- /dev/null +++ b/charts-prj/testing_settings.py @@ -0,0 +1,109 @@ +""" +Django settings for pippo project. + +Generated by 'django-admin startproject' using Django 1.8.7. + +For more information on this file, see +https://docs.djangoproject.com/en/1.8/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/1.8/ref/settings/ +""" + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +import os + +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = '5i81&t!#h$4ie!-kg$&@5b-1j*)d9@(6)8g8o4kg*xw3i2e=@t' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = ( + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', +) + +MIDDLEWARE_CLASSES = ( + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'django.middleware.security.SecurityMiddleware', +) + +ROOT_URLCONF = 'charts-prj.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +WSGI_APPLICATION = 'charts-prj.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/1.8/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), + } +} + + +# Internationalization +# https://docs.djangoproject.com/en/1.8/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/1.8/howto/static-files/ + +STATIC_URL = '/static/' + +ANONYMOUS_USER_ID = 1 + +LOCAL_MEDIA_URL = '' +API_INCLUDE_REGIONS_COUNT = '' +HAYSTACK_SEARCH = '' +RESOURCE_PUBLISHING = '' \ No newline at end of file diff --git a/charts-prj/urls.py b/charts-prj/urls.py new file mode 100644 index 0000000..ee7151d --- /dev/null +++ b/charts-prj/urls.py @@ -0,0 +1,13 @@ +from django.conf.urls import patterns, url +from django.views.generic import TemplateView + +from geonode.urls import * + +urlpatterns = patterns('', + url(r'^/?$', + TemplateView.as_view(template_name='site_index.html'), + name='home'), + ) + urlpatterns + [ + url(r'^chart/', include('charts_app.urls')), + url(r'^table/', include('wfs_harvest.urls')), + ] diff --git a/charts-prj/wsgi.py b/charts-prj/wsgi.py new file mode 100644 index 0000000..6147efb --- /dev/null +++ b/charts-prj/wsgi.py @@ -0,0 +1,31 @@ +""" +WSGI config for charts project. + +This module contains the WSGI application used by Django's development server +and any production WSGI deployments. It should expose a module-level variable +named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover +this application via the ``WSGI_APPLICATION`` setting. + +Usually you will have the standard Django WSGI application here, but it also +might make sense to replace the whole Django WSGI application with a custom one +that later delegates to the Django one. For example, you could introduce WSGI +middleware here, or combine a Django application with an application of another +framework. + +""" +import os +import sys + +sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "charts-prj.settings") + +# This application object is used by any WSGI server configured to use this +# file. This includes Django's development server, if the WSGI_APPLICATION +# setting points here. +from django.core.wsgi import get_wsgi_application +application = get_wsgi_application() + +# Apply WSGI middleware here. +# from helloworld.wsgi import HelloWorldApplication +# application = HelloWorldApplication(application) diff --git a/charts_app/__init__.py b/charts_app/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/charts_app/admin.py b/charts_app/admin.py new file mode 100644 index 0000000..05e7ad9 --- /dev/null +++ b/charts_app/admin.py @@ -0,0 +1,10 @@ +from django.contrib import admin + +from .models import Chart + + +class ChartAdmin(admin.ModelAdmin): + list_display = ['id', 'title'] + + +admin.site.register(Chart, ChartAdmin) diff --git a/charts_app/migrations/0001_initial.py b/charts_app/migrations/0001_initial.py new file mode 100644 index 0000000..04f3248 --- /dev/null +++ b/charts_app/migrations/0001_initial.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('layers', '24_to_26'), + ] + + operations = [ + migrations.CreateModel( + name='Chart', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('title', models.CharField(max_length=128, blank=True)), + ('category', models.CharField(max_length=200)), + ('quantity', models.CharField(max_length=200)), + ('type', models.SmallIntegerField(default=0, choices=[(0, b'Bar chart'), (1, b'Pie chart'), (2, b'Donut chart')])), + ('aggr_type', models.SmallIntegerField(default=3, choices=[(0, b'Sum'), (1, b'Mean'), (2, b'Category count'), (3, b'Max'), (4, b'Min')])), + ('abstract', models.TextField(blank=True)), + ('layer', models.ForeignKey(to='layers.Layer')), + ], + ), + ] diff --git a/charts_app/migrations/0002_auto_20170705_0742.py b/charts_app/migrations/0002_auto_20170705_0742.py new file mode 100644 index 0000000..646fed7 --- /dev/null +++ b/charts_app/migrations/0002_auto_20170705_0742.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models +from django.conf import settings +import charts_app.models + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('charts_app', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='chart', + name='created_by', + field=models.ForeignKey(blank=True, to=settings.AUTH_USER_MODEL, null=True), + ), + migrations.AlterField( + model_name='chart', + name='layer', + field=models.ForeignKey(to='layers.Layer', validators=[charts_app.models.validate_wfs]), + ), + migrations.AlterField( + model_name='chart', + name='type', + field=models.SmallIntegerField(default=0, choices=[(0, b'Bar chart'), (1, b'Pie chart'), (2, b'Donut chart'), (3, b'Line chart')]), + ), + ] diff --git a/charts_app/migrations/__init__.py b/charts_app/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/charts_app/models.py b/charts_app/models.py new file mode 100644 index 0000000..13c2131 --- /dev/null +++ b/charts_app/models.py @@ -0,0 +1,80 @@ +from django.db import models +from django.core.urlresolvers import reverse +from django.core.exceptions import ValidationError +from django.utils.translation import ugettext_lazy as _ +from django.conf import settings +from django.forms import ModelForm, ValidationError as VE + +from geonode.layers.models import Layer + +from wfs_harvest.utils import get_featno, get_fields + + +def validate_wfs(value): + lyr = Layer.objects.get(pk=value) + if lyr.service_type != 'WFS': + raise ValidationError(_('%(lyr_title)s is not a WFS layer'), + code='not_a_wfs', + params={'lyr_title': lyr.title}) + + feat_no = get_featno(value) + if feat_no > settings.MAX_CSV_RECORDS: + raise ValidationError(_('%(lyr_title)s has too many features; ' + 'chart functionality is not available ' + 'for very large datasets'), + code='too_many_records', + params={'lyr_title': lyr.title}) + + +class Chart(models.Model): + CHART_TYPES = ( + (0, 'Bar chart'), + (1, 'Pie chart'), + (2, 'Donut chart'), + (3, 'Line chart') + ) + + AGGREGATION_TYPES = ( + (0, 'Sum'), + (1, 'Mean'), + (2, 'Category count'), + (3, 'Max'), + (4, 'Min'), + ) + + layer = models.ForeignKey(Layer, validators=[validate_wfs]) + title = models.CharField(max_length=128, blank=True) + category = models.CharField(max_length=200) + quantity = models.CharField(max_length=200) + type = models.SmallIntegerField(choices=CHART_TYPES, default=0) + aggr_type = models.SmallIntegerField(choices=AGGREGATION_TYPES, default=3) + abstract = models.TextField(blank=True) + created_by = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null = True) + + def get_absolute_url(self): + return reverse('chart_detail', kwargs={'pk': self.pk}) + +class ChartForm(ModelForm): + def clean(self): + cleaned_data = super(ChartForm, self).clean() + layer = cleaned_data.get('layer') + category = cleaned_data.get('category') + quantity = cleaned_data.get('quantity') + + categories, quantities = get_fields(layer) + + if category not in categories: + lyr = Layer.objects.get(pk=layer) + raise VE(_('%(lyr_title)s does not contain the field %(category)s'), + code='non_extant_category_field', + params={'lyr_title': lyr.title, 'category': category}) + + if quantity not in quantities: + lyr = Layer.objects.get(pk=layer) + raise VE(_('%(lyr_title)s does not contain the field %(quantity)s'), + code='non_extant_quantity_field', + params={'lyr_title': lyr.title, 'quantity': quantity}) + + class Meta: + model = Chart + fields = '__all__' \ No newline at end of file diff --git a/charts_app/templates/donut_chart_v1.html b/charts_app/templates/donut_chart_v1.html new file mode 100644 index 0000000..286f532 --- /dev/null +++ b/charts_app/templates/donut_chart_v1.html @@ -0,0 +1,68 @@ + + +Donut Chart v1 +

    Simple Donut Chart v1

    +

    Zero values excluded

    +

    D3js version 4, use canvas

    + + + + \ No newline at end of file diff --git a/charts_app/templates/donut_chart_v2.html b/charts_app/templates/donut_chart_v2.html new file mode 100644 index 0000000..c371272 --- /dev/null +++ b/charts_app/templates/donut_chart_v2.html @@ -0,0 +1,169 @@ + + +Donut Chart v2 +

    Simple Donut Chart v2

    +

    Zero values excluded, label with ticks

    +

    D3js version 3, use svg

    + + + + + \ No newline at end of file diff --git a/charts_app/templates/pie_chart_v1.html b/charts_app/templates/pie_chart_v1.html new file mode 100644 index 0000000..10e08c5 --- /dev/null +++ b/charts_app/templates/pie_chart_v1.html @@ -0,0 +1,65 @@ + + +Pie Chart v1 +

    Simple Pie Chart v1

    +

    All data

    +

    D3js version 4, use svg

    + + + + diff --git a/charts_app/templates/pie_chart_v2.html b/charts_app/templates/pie_chart_v2.html new file mode 100644 index 0000000..7a93002 --- /dev/null +++ b/charts_app/templates/pie_chart_v2.html @@ -0,0 +1,67 @@ + + +Pie Chart v2 +

    Simple Pie Chart v2

    +

    Zero values excluded

    +

    D3js version 4, use svg

    + + + + diff --git a/charts_app/tests.py b/charts_app/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/charts_app/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/charts_app/urls.py b/charts_app/urls.py new file mode 100644 index 0000000..2923a2d --- /dev/null +++ b/charts_app/urls.py @@ -0,0 +1,10 @@ +from django.conf.urls import url + +from . import views + +urlpatterns = [url(r'^(?P[0-9]+)/$', views.ChartDetail.as_view(), name='chart_detail'), + url(r'^add/(?P[0-9]+)/$', views.ChartCreate.as_view(), name='chart_add'), + url(r'^(?P[0-9]+)/update/$', views.ChartUpdate.as_view(), name='chart_update'), + url(r'^(?P[0-9]+)/delete/$', views.ChartDelete.as_view(), name='chart_delete'), + url(r'^$', views.ChartList.as_view(), name='chart_list') + ] diff --git a/charts_app/views.py b/charts_app/views.py new file mode 100644 index 0000000..34df86b --- /dev/null +++ b/charts_app/views.py @@ -0,0 +1,105 @@ +from django.views.generic.detail import DetailView +from django.views.generic.edit import CreateView, UpdateView, DeleteView +from django.views.generic.list import ListView +from django.contrib.auth.decorators import login_required +from django.core.exceptions import PermissionDenied + + +from geonode.layers.models import Layer + +from .models import Chart, ChartForm +from wfs_harvest.utils import get_fields + + +class LoginRequiredMixin(object): + @classmethod + def as_view(cls, **initkwargs): + view = super(LoginRequiredMixin, cls).as_view(**initkwargs) + return login_required(view) + + +class ChartDetail(DetailView): + model = Chart + + def get_object(self, queryset=None): + obj = super(ChartDetail, self).get_object(queryset=queryset) + lyr_obj = Layer.objects.get(pk=obj.layer) + if not self.request.user.has_perm('download_resourcebase', lyr_obj.get_self_resource()): + raise PermissionDenied + return obj + + def get_context_data(self, **kwargs): + context = super(ChartDetail, self).get_context_data(**kwargs) + return context + + +class ChartCreate(LoginRequiredMixin, CreateView): + form_class = ChartForm + template_name_suffix = 'charts_app/chart_update_form.html' + + def get_initial(self): + layer_id = self.kwargs['layer_id'] + initial = self.initial.copy() + initial['layer'] = layer_id + return initial + + def get_context_data(self, **kwargs): + layer_id = self.kwargs['layer_id'] + layer = Layer.objects.get(pk=layer_id) + if not self.request.user.has_perm('download_resourcebase', layer.get_self_resource()): + raise PermissionDenied + fieldnames, num_fieldnames = get_fields(layer_id) + ctx = super(ChartCreate, self).get_context_data(**kwargs) + ctx['fieldnames'] = fieldnames + ctx['num_fieldnames'] = num_fieldnames + ctx['layer'] = layer + return ctx + + def form_valid(self, form): + if not self.request.user.has_perm('download_resourcebase', form.instance.layer.get_self_resource()): + raise PermissionDenied + form.instance.created_by = self.request.user + return super(ChartCreate, self).form_valid(form) + + +class ChartUpdate(LoginRequiredMixin, UpdateView): + model = Chart + fields = '__all__' + template_name = 'charts_app/chart_update_form.html' + + def get_object(self, queryset=None): + obj = super(ChartUpdate, self).get_object(queryset=queryset) + is_chart_owner = (self.request.user == obj.created_by) + lyr_obj = Layer.objects.get(pk=obj.layer) + is_lyr_owner = (self.request.user == lyr_obj.owner) + if not (self.request.user.is_superuser or is_chart_owner or is_lyr_owner): + raise PermissionDenied + return obj + + def form_valid(self, form): + form.instance.created_by = self.request.user + return super(ChartUpdate, self).form_valid(form) + + +class ChartDelete(LoginRequiredMixin, DeleteView): + model = Chart + success_url = '/layers/' + + def get_object(self, queryset=None): + obj = super(ChartDelete, self).get_object(queryset=queryset) + is_chart_owner = (self.request.user == obj.created_by) + lyr_obj = Layer.objects.get(pk=obj.layer) + is_lyr_owner = (self.request.user == lyr_obj.owner) + if not (self.request.user.is_superuser or is_chart_owner or is_lyr_owner): + raise PermissionDenied + return obj + + +class ChartList(ListView): + model = Chart + fields = '__all__' + template_name = 'charts_app/chart_list.html' + + def get_context_data(self, **kwargs): + context = super(ChartList, self).get_context_data(**kwargs) + return context diff --git a/haitidata/settings.py b/haitidata/settings.py index f747c50..d48ac9b 100644 --- a/haitidata/settings.py +++ b/haitidata/settings.py @@ -53,7 +53,7 @@ LOCALE_PATHS = ( os.path.join(LOCAL_ROOT, 'locale'), ) + LOCALE_PATHS -INSTALLED_APPS = INSTALLED_APPS + ('haitidata', 'osgeo_importer', 'geonode-client') +INSTALLED_APPS = INSTALLED_APPS + ('haitidata', 'osgeo_importer', 'geonode-client', 'charts_app', 'wfs_harvest') LAYER_PREVIEW_LIBRARY = 'react' @@ -111,6 +111,9 @@ BROKER_URL = "amqp://guest@localhost:5672" CELERY_ALWAYS_EAGER = True IMPORT_TASK_SOFT_TIME_LIMIT = 90 +MAX_CSV_RECORDS = 20000 +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True SOCIAL_ORIGINS = [{ "label":"paper-plane-o", diff --git a/haitidata/static/css/haitidata.css b/haitidata/static/css/haitidata.css index f8b16d4..e832b5d 100644 --- a/haitidata/static/css/haitidata.css +++ b/haitidata/static/css/haitidata.css @@ -1,8328 +1,5 @@ -@import "../css/font-awesome.min.css"; -@import "../css/thinkhazard.css"; -/*! +@import "../css/font-awesome.min.css";@import "../css/thinkhazard.css";/*! * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ -html { - font-family: sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} -body { - margin: 0; -} -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} -audio:not([controls]) { - display: none; - height: 0; -} -[hidden], -template { - display: none; -} -a { - background-color: transparent; -} -a:active, -a:hover { - outline: 0; -} -abbr[title] { - border-bottom: 1px dotted; -} -b, -strong { - font-weight: bold; -} -dfn { - font-style: italic; -} -h1 { - font-size: 2em; - margin: 0.67em 0; -} -mark { - background: #ff0; - color: #000; -} -small { - font-size: 80%; -} -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - border: 0; -} -svg:not(:root) { - overflow: hidden; -} -figure { - margin: 1em 40px; -} -hr { - box-sizing: content-box; - height: 0; -} -pre { - overflow: auto; -} -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; -} -button { - overflow: visible; -} -button, -select { - text-transform: none; -} -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} -button[disabled], -html input[disabled] { - cursor: default; -} -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - padding: 0; -} -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} -input[type="search"] { - -webkit-appearance: textfield; - box-sizing: content-box; -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} -legend { - border: 0; - padding: 0; -} -textarea { - overflow: auto; -} -optgroup { - font-weight: bold; -} -table { - border-collapse: collapse; - border-spacing: 0; -} -td, -th { - padding: 0; -} -/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ -@media print { - *, - *:before, - *:after { - background: transparent !important; - color: #000 !important; - box-shadow: none !important; - text-shadow: none !important; - } - a, - a:visited { - text-decoration: underline; - } - a[href]:after { - content: " (" attr(href) ")"; - } - abbr[title]:after { - content: " (" attr(title) ")"; - } - a[href^="#"]:after, - a[href^="javascript:"]:after { - content: ""; - } - pre, - blockquote { - border: 1px solid #999; - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100% !important; - } - p, - h2, - h3 { - orphans: 3; - widows: 3; - } - h2, - h3 { - page-break-after: avoid; - } - .navbar { - display: none; - } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; - } - .label { - 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; - } -} -@font-face { - font-family: 'Glyphicons Halflings'; - src: url('../fonts/glyphicons-halflings-regular.eot'); - src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.glyphicon-asterisk:before { - content: "\002a"; -} -.glyphicon-plus:before { - content: "\002b"; -} -.glyphicon-euro:before, -.glyphicon-eur:before { - content: "\20ac"; -} -.glyphicon-minus:before { - content: "\2212"; -} -.glyphicon-cloud:before { - content: "\2601"; -} -.glyphicon-envelope:before { - content: "\2709"; -} -.glyphicon-pencil:before { - content: "\270f"; -} -.glyphicon-glass:before { - content: "\e001"; -} -.glyphicon-music:before { - content: "\e002"; -} -.glyphicon-search:before { - content: "\e003"; -} -.glyphicon-heart:before { - content: "\e005"; -} -.glyphicon-star:before { - content: "\e006"; -} -.glyphicon-star-empty:before { - content: "\e007"; -} -.glyphicon-user:before { - content: "\e008"; -} -.glyphicon-film:before { - content: "\e009"; -} -.glyphicon-th-large:before { - content: "\e010"; -} -.glyphicon-th:before { - content: "\e011"; -} -.glyphicon-th-list:before { - content: "\e012"; -} -.glyphicon-ok:before { - content: "\e013"; -} -.glyphicon-remove:before { - content: "\e014"; -} -.glyphicon-zoom-in:before { - content: "\e015"; -} -.glyphicon-zoom-out:before { - content: "\e016"; -} -.glyphicon-off:before { - content: "\e017"; -} -.glyphicon-signal:before { - content: "\e018"; -} -.glyphicon-cog:before { - content: "\e019"; -} -.glyphicon-trash:before { - content: "\e020"; -} -.glyphicon-home:before { - content: "\e021"; -} -.glyphicon-file:before { - content: "\e022"; -} -.glyphicon-time:before { - content: "\e023"; -} -.glyphicon-road:before { - content: "\e024"; -} -.glyphicon-download-alt:before { - content: "\e025"; -} -.glyphicon-download:before { - content: "\e026"; -} -.glyphicon-upload:before { - content: "\e027"; -} -.glyphicon-inbox:before { - content: "\e028"; -} -.glyphicon-play-circle:before { - content: "\e029"; -} -.glyphicon-repeat:before { - content: "\e030"; -} -.glyphicon-refresh:before { - content: "\e031"; -} -.glyphicon-list-alt:before { - content: "\e032"; -} -.glyphicon-lock:before { - content: "\e033"; -} -.glyphicon-flag:before { - content: "\e034"; -} -.glyphicon-headphones:before { - content: "\e035"; -} -.glyphicon-volume-off:before { - content: "\e036"; -} -.glyphicon-volume-down:before { - content: "\e037"; -} -.glyphicon-volume-up:before { - content: "\e038"; -} -.glyphicon-qrcode:before { - content: "\e039"; -} -.glyphicon-barcode:before { - content: "\e040"; -} -.glyphicon-tag:before { - content: "\e041"; -} -.glyphicon-tags:before { - content: "\e042"; -} -.glyphicon-book:before { - content: "\e043"; -} -.glyphicon-bookmark:before { - content: "\e044"; -} -.glyphicon-print:before { - content: "\e045"; -} -.glyphicon-camera:before { - content: "\e046"; -} -.glyphicon-font:before { - content: "\e047"; -} -.glyphicon-bold:before { - content: "\e048"; -} -.glyphicon-italic:before { - content: "\e049"; -} -.glyphicon-text-height:before { - content: "\e050"; -} -.glyphicon-text-width:before { - content: "\e051"; -} -.glyphicon-align-left:before { - content: "\e052"; -} -.glyphicon-align-center:before { - content: "\e053"; -} -.glyphicon-align-right:before { - content: "\e054"; -} -.glyphicon-align-justify:before { - content: "\e055"; -} -.glyphicon-list:before { - content: "\e056"; -} -.glyphicon-indent-left:before { - content: "\e057"; -} -.glyphicon-indent-right:before { - content: "\e058"; -} -.glyphicon-facetime-video:before { - content: "\e059"; -} -.glyphicon-picture:before { - content: "\e060"; -} -.glyphicon-map-marker:before { - content: "\e062"; -} -.glyphicon-adjust:before { - content: "\e063"; -} -.glyphicon-tint:before { - content: "\e064"; -} -.glyphicon-edit:before { - content: "\e065"; -} -.glyphicon-share:before { - content: "\e066"; -} -.glyphicon-check:before { - content: "\e067"; -} -.glyphicon-move:before { - content: "\e068"; -} -.glyphicon-step-backward:before { - content: "\e069"; -} -.glyphicon-fast-backward:before { - content: "\e070"; -} -.glyphicon-backward:before { - content: "\e071"; -} -.glyphicon-play:before { - content: "\e072"; -} -.glyphicon-pause:before { - content: "\e073"; -} -.glyphicon-stop:before { - content: "\e074"; -} -.glyphicon-forward:before { - content: "\e075"; -} -.glyphicon-fast-forward:before { - content: "\e076"; -} -.glyphicon-step-forward:before { - content: "\e077"; -} -.glyphicon-eject:before { - content: "\e078"; -} -.glyphicon-chevron-left:before { - content: "\e079"; -} -.glyphicon-chevron-right:before { - content: "\e080"; -} -.glyphicon-plus-sign:before { - content: "\e081"; -} -.glyphicon-minus-sign:before { - content: "\e082"; -} -.glyphicon-remove-sign:before { - content: "\e083"; -} -.glyphicon-ok-sign:before { - content: "\e084"; -} -.glyphicon-question-sign:before { - content: "\e085"; -} -.glyphicon-info-sign:before { - content: "\e086"; -} -.glyphicon-screenshot:before { - content: "\e087"; -} -.glyphicon-remove-circle:before { - content: "\e088"; -} -.glyphicon-ok-circle:before { - content: "\e089"; -} -.glyphicon-ban-circle:before { - content: "\e090"; -} -.glyphicon-arrow-left:before { - content: "\e091"; -} -.glyphicon-arrow-right:before { - content: "\e092"; -} -.glyphicon-arrow-up:before { - content: "\e093"; -} -.glyphicon-arrow-down:before { - content: "\e094"; -} -.glyphicon-share-alt:before { - content: "\e095"; -} -.glyphicon-resize-full:before { - content: "\e096"; -} -.glyphicon-resize-small:before { - content: "\e097"; -} -.glyphicon-exclamation-sign:before { - content: "\e101"; -} -.glyphicon-gift:before { - content: "\e102"; -} -.glyphicon-leaf:before { - content: "\e103"; -} -.glyphicon-fire:before { - content: "\e104"; -} -.glyphicon-eye-open:before { - content: "\e105"; -} -.glyphicon-eye-close:before { - content: "\e106"; -} -.glyphicon-warning-sign:before { - content: "\e107"; -} -.glyphicon-plane:before { - content: "\e108"; -} -.glyphicon-calendar:before { - content: "\e109"; -} -.glyphicon-random:before { - content: "\e110"; -} -.glyphicon-comment:before { - content: "\e111"; -} -.glyphicon-magnet:before { - content: "\e112"; -} -.glyphicon-chevron-up:before { - content: "\e113"; -} -.glyphicon-chevron-down:before { - content: "\e114"; -} -.glyphicon-retweet:before { - content: "\e115"; -} -.glyphicon-shopping-cart:before { - content: "\e116"; -} -.glyphicon-folder-close:before { - content: "\e117"; -} -.glyphicon-folder-open:before { - content: "\e118"; -} -.glyphicon-resize-vertical:before { - content: "\e119"; -} -.glyphicon-resize-horizontal:before { - content: "\e120"; -} -.glyphicon-hdd:before { - content: "\e121"; -} -.glyphicon-bullhorn:before { - content: "\e122"; -} -.glyphicon-bell:before { - content: "\e123"; -} -.glyphicon-certificate:before { - content: "\e124"; -} -.glyphicon-thumbs-up:before { - content: "\e125"; -} -.glyphicon-thumbs-down:before { - content: "\e126"; -} -.glyphicon-hand-right:before { - content: "\e127"; -} -.glyphicon-hand-left:before { - content: "\e128"; -} -.glyphicon-hand-up:before { - content: "\e129"; -} -.glyphicon-hand-down:before { - content: "\e130"; -} -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} -.glyphicon-globe:before { - content: "\e135"; -} -.glyphicon-wrench:before { - content: "\e136"; -} -.glyphicon-tasks:before { - content: "\e137"; -} -.glyphicon-filter:before { - content: "\e138"; -} -.glyphicon-briefcase:before { - content: "\e139"; -} -.glyphicon-fullscreen:before { - content: "\e140"; -} -.glyphicon-dashboard:before { - content: "\e141"; -} -.glyphicon-paperclip:before { - content: "\e142"; -} -.glyphicon-heart-empty:before { - content: "\e143"; -} -.glyphicon-link:before { - content: "\e144"; -} -.glyphicon-phone:before { - content: "\e145"; -} -.glyphicon-pushpin:before { - content: "\e146"; -} -.glyphicon-usd:before { - content: "\e148"; -} -.glyphicon-gbp:before { - content: "\e149"; -} -.glyphicon-sort:before { - content: "\e150"; -} -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} -.glyphicon-sort-by-order:before { - content: "\e153"; -} -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} -.glyphicon-unchecked:before { - content: "\e157"; -} -.glyphicon-expand:before { - content: "\e158"; -} -.glyphicon-collapse-down:before { - content: "\e159"; -} -.glyphicon-collapse-up:before { - content: "\e160"; -} -.glyphicon-log-in:before { - content: "\e161"; -} -.glyphicon-flash:before { - content: "\e162"; -} -.glyphicon-log-out:before { - content: "\e163"; -} -.glyphicon-new-window:before { - content: "\e164"; -} -.glyphicon-record:before { - content: "\e165"; -} -.glyphicon-save:before { - content: "\e166"; -} -.glyphicon-open:before { - content: "\e167"; -} -.glyphicon-saved:before { - content: "\e168"; -} -.glyphicon-import:before { - content: "\e169"; -} -.glyphicon-export:before { - content: "\e170"; -} -.glyphicon-send:before { - content: "\e171"; -} -.glyphicon-floppy-disk:before { - content: "\e172"; -} -.glyphicon-floppy-saved:before { - content: "\e173"; -} -.glyphicon-floppy-remove:before { - content: "\e174"; -} -.glyphicon-floppy-save:before { - content: "\e175"; -} -.glyphicon-floppy-open:before { - content: "\e176"; -} -.glyphicon-credit-card:before { - content: "\e177"; -} -.glyphicon-transfer:before { - content: "\e178"; -} -.glyphicon-cutlery:before { - content: "\e179"; -} -.glyphicon-header:before { - content: "\e180"; -} -.glyphicon-compressed:before { - content: "\e181"; -} -.glyphicon-earphone:before { - content: "\e182"; -} -.glyphicon-phone-alt:before { - content: "\e183"; -} -.glyphicon-tower:before { - content: "\e184"; -} -.glyphicon-stats:before { - content: "\e185"; -} -.glyphicon-sd-video:before { - content: "\e186"; -} -.glyphicon-hd-video:before { - content: "\e187"; -} -.glyphicon-subtitles:before { - content: "\e188"; -} -.glyphicon-sound-stereo:before { - content: "\e189"; -} -.glyphicon-sound-dolby:before { - content: "\e190"; -} -.glyphicon-sound-5-1:before { - content: "\e191"; -} -.glyphicon-sound-6-1:before { - content: "\e192"; -} -.glyphicon-sound-7-1:before { - content: "\e193"; -} -.glyphicon-copyright-mark:before { - content: "\e194"; -} -.glyphicon-registration-mark:before { - content: "\e195"; -} -.glyphicon-cloud-download:before { - content: "\e197"; -} -.glyphicon-cloud-upload:before { - content: "\e198"; -} -.glyphicon-tree-conifer:before { - content: "\e199"; -} -.glyphicon-tree-deciduous:before { - content: "\e200"; -} -.glyphicon-cd:before { - content: "\e201"; -} -.glyphicon-save-file:before { - content: "\e202"; -} -.glyphicon-open-file:before { - content: "\e203"; -} -.glyphicon-level-up:before { - content: "\e204"; -} -.glyphicon-copy:before { - content: "\e205"; -} -.glyphicon-paste:before { - content: "\e206"; -} -.glyphicon-alert:before { - content: "\e209"; -} -.glyphicon-equalizer:before { - content: "\e210"; -} -.glyphicon-king:before { - content: "\e211"; -} -.glyphicon-queen:before { - content: "\e212"; -} -.glyphicon-pawn:before { - content: "\e213"; -} -.glyphicon-bishop:before { - content: "\e214"; -} -.glyphicon-knight:before { - content: "\e215"; -} -.glyphicon-baby-formula:before { - content: "\e216"; -} -.glyphicon-tent:before { - content: "\26fa"; -} -.glyphicon-blackboard:before { - content: "\e218"; -} -.glyphicon-bed:before { - content: "\e219"; -} -.glyphicon-apple:before { - content: "\f8ff"; -} -.glyphicon-erase:before { - content: "\e221"; -} -.glyphicon-hourglass:before { - content: "\231b"; -} -.glyphicon-lamp:before { - content: "\e223"; -} -.glyphicon-duplicate:before { - content: "\e224"; -} -.glyphicon-piggy-bank:before { - content: "\e225"; -} -.glyphicon-scissors:before { - content: "\e226"; -} -.glyphicon-bitcoin:before { - content: "\e227"; -} -.glyphicon-btc:before { - content: "\e227"; -} -.glyphicon-xbt:before { - content: "\e227"; -} -.glyphicon-yen:before { - content: "\00a5"; -} -.glyphicon-jpy:before { - content: "\00a5"; -} -.glyphicon-ruble:before { - content: "\20bd"; -} -.glyphicon-rub:before { - content: "\20bd"; -} -.glyphicon-scale:before { - content: "\e230"; -} -.glyphicon-ice-lolly:before { - content: "\e231"; -} -.glyphicon-ice-lolly-tasted:before { - content: "\e232"; -} -.glyphicon-education:before { - content: "\e233"; -} -.glyphicon-option-horizontal:before { - content: "\e234"; -} -.glyphicon-option-vertical:before { - content: "\e235"; -} -.glyphicon-menu-hamburger:before { - content: "\e236"; -} -.glyphicon-modal-window:before { - content: "\e237"; -} -.glyphicon-oil:before { - content: "\e238"; -} -.glyphicon-grain:before { - content: "\e239"; -} -.glyphicon-sunglasses:before { - content: "\e240"; -} -.glyphicon-text-size:before { - content: "\e241"; -} -.glyphicon-text-color:before { - content: "\e242"; -} -.glyphicon-text-background:before { - content: "\e243"; -} -.glyphicon-object-align-top:before { - content: "\e244"; -} -.glyphicon-object-align-bottom:before { - content: "\e245"; -} -.glyphicon-object-align-horizontal:before { - content: "\e246"; -} -.glyphicon-object-align-left:before { - content: "\e247"; -} -.glyphicon-object-align-vertical:before { - content: "\e248"; -} -.glyphicon-object-align-right:before { - content: "\e249"; -} -.glyphicon-triangle-right:before { - content: "\e250"; -} -.glyphicon-triangle-left:before { - content: "\e251"; -} -.glyphicon-triangle-bottom:before { - content: "\e252"; -} -.glyphicon-triangle-top:before { - content: "\e253"; -} -.glyphicon-console:before { - content: "\e254"; -} -.glyphicon-superscript:before { - content: "\e255"; -} -.glyphicon-subscript:before { - content: "\e256"; -} -.glyphicon-menu-left:before { - content: "\e257"; -} -.glyphicon-menu-right:before { - content: "\e258"; -} -.glyphicon-menu-down:before { - content: "\e259"; -} -.glyphicon-menu-up:before { - content: "\e260"; -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 10px; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-family: 'Fira Sans', sans-serif; - font-size: 16px; - line-height: 1.42857143; - color: #37474f; - background-color: #eceff1; -} -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -a { - color: #ff5722; - text-decoration: none; -} -a:hover, -a:focus { - color: #d43300; - text-decoration: underline; -} -a:focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -figure { - margin: 0; -} -img { - vertical-align: middle; -} -.img-responsive, -.thumbnail > img, -.thumbnail a > img, -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - display: block; - max-width: 100%; - height: auto; -} -.img-rounded { - border-radius: 6px; -} -.img-thumbnail { - padding: 4px; - line-height: 1.42857143; - background-color: #eceff1; - border: 1px solid #dddddd; - border-radius: 4px; - -webkit-transition: all 0.2s ease-in-out; - -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - display: inline-block; - max-width: 100%; - height: auto; -} -.img-circle { - border-radius: 50%; -} -hr { - margin-top: 22px; - margin-bottom: 22px; - border: 0; - border-top: 1px solid #eceff1; -} -.sr-only { - position: absolute; - width: 1px; - height: 1px; - margin: -1px; - padding: 0; - 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; -} -[role="button"] { - cursor: pointer; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: inherit; - font-weight: 700; - line-height: 1.1; - color: inherit; -} -h1 small, -h2 small, -h3 small, -h4 small, -h5 small, -h6 small, -.h1 small, -.h2 small, -.h3 small, -.h4 small, -.h5 small, -.h6 small, -h1 .small, -h2 .small, -h3 .small, -h4 .small, -h5 .small, -h6 .small, -.h1 .small, -.h2 .small, -.h3 .small, -.h4 .small, -.h5 .small, -.h6 .small { - font-weight: normal; - line-height: 1; - color: #b0bec5; -} -h1, -.h1, -h2, -.h2, -h3, -.h3 { - margin-top: 22px; - margin-bottom: 11px; -} -h1 small, -.h1 small, -h2 small, -.h2 small, -h3 small, -.h3 small, -h1 .small, -.h1 .small, -h2 .small, -.h2 .small, -h3 .small, -.h3 .small { - font-size: 65%; -} -h4, -.h4, -h5, -.h5, -h6, -.h6 { - margin-top: 11px; - margin-bottom: 11px; -} -h4 small, -.h4 small, -h5 small, -.h5 small, -h6 small, -.h6 small, -h4 .small, -.h4 .small, -h5 .small, -.h5 .small, -h6 .small, -.h6 .small { - font-size: 75%; -} -h1, -.h1 { - font-size: 41px; -} -h2, -.h2 { - font-size: 34px; -} -h3, -.h3 { - font-size: 28px; -} -h4, -.h4 { - font-size: 20px; -} -h5, -.h5 { - font-size: 16px; -} -h6, -.h6 { - font-size: 14px; -} -p { - margin: 0 0 11px; -} -.lead { - margin-bottom: 22px; - font-size: 18px; - font-weight: 300; - line-height: 1.4; -} -@media (min-width: 768px) { - .lead { - font-size: 24px; - } -} -small, -.small { - font-size: 87%; -} -mark, -.mark { - background-color: #fcf8e3; - padding: .2em; -} -.text-left { - text-align: left; -} -.text-right { - text-align: right; -} -.text-center { - text-align: center; -} -.text-justify { - text-align: justify; -} -.text-nowrap { - white-space: nowrap; -} -.text-lowercase { - text-transform: lowercase; -} -.text-uppercase { - text-transform: uppercase; -} -.text-capitalize { - text-transform: capitalize; -} -.text-muted { - color: #b0bec5; -} -.text-primary { - color: #ff5722; -} -a.text-primary:hover, -a.text-primary:focus { - color: #ee3900; -} -.text-success { - color: #3c763d; -} -a.text-success:hover, -a.text-success:focus { - color: #2b542c; -} -.text-info { - color: #31708f; -} -a.text-info:hover, -a.text-info:focus { - color: #245269; -} -.text-warning { - color: #8a6d3b; -} -a.text-warning:hover, -a.text-warning:focus { - color: #66512c; -} -.text-danger { - color: #a94442; -} -a.text-danger:hover, -a.text-danger:focus { - color: #843534; -} -.bg-primary { - color: #fff; - background-color: #ff5722; -} -a.bg-primary:hover, -a.bg-primary:focus { - background-color: #ee3900; -} -.bg-success { - background-color: #dff0d8; -} -a.bg-success:hover, -a.bg-success:focus { - background-color: #c1e2b3; -} -.bg-info { - background-color: #d9edf7; -} -a.bg-info:hover, -a.bg-info:focus { - background-color: #afd9ee; -} -.bg-warning { - background-color: #fcf8e3; -} -a.bg-warning:hover, -a.bg-warning:focus { - background-color: #f7ecb5; -} -.bg-danger { - background-color: #f2dede; -} -a.bg-danger:hover, -a.bg-danger:focus { - background-color: #e4b9b9; -} -.page-header { - padding-bottom: 10px; - margin: 44px 0 22px; - border-bottom: 1px solid #eceff1; -} -ul, -ol { - margin-top: 0; - margin-bottom: 11px; -} -ul ul, -ol ul, -ul ol, -ol ol { - margin-bottom: 0; -} -.list-unstyled { - padding-left: 0; - list-style: none; -} -.list-inline { - padding-left: 0; - list-style: none; - margin-left: -5px; -} -.list-inline > li { - display: inline-block; - padding-left: 5px; - padding-right: 5px; -} -dl { - margin-top: 0; - margin-bottom: 22px; -} -dt, -dd { - line-height: 1.42857143; -} -dt { - font-weight: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - clear: left; - text-align: right; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - .dl-horizontal dd { - margin-left: 180px; - } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #b0bec5; -} -.initialism { - font-size: 90%; - text-transform: uppercase; -} -blockquote { - padding: 11px 22px; - margin: 0 0 22px; - font-size: 20px; - border-left: 5px solid #eceff1; -} -blockquote p:last-child, -blockquote ul:last-child, -blockquote ol:last-child { - margin-bottom: 0; -} -blockquote footer, -blockquote small, -blockquote .small { - display: block; - font-size: 80%; - line-height: 1.42857143; - color: #b0bec5; -} -blockquote footer:before, -blockquote small:before, -blockquote .small:before { - content: '\2014 \00A0'; -} -.blockquote-reverse, -blockquote.pull-right { - padding-right: 15px; - padding-left: 0; - border-right: 5px solid #eceff1; - border-left: 0; - text-align: right; -} -.blockquote-reverse footer:before, -blockquote.pull-right footer:before, -.blockquote-reverse small:before, -blockquote.pull-right small:before, -.blockquote-reverse .small:before, -blockquote.pull-right .small:before { - content: ''; -} -.blockquote-reverse footer:after, -blockquote.pull-right footer:after, -.blockquote-reverse small:after, -blockquote.pull-right small:after, -.blockquote-reverse .small:after, -blockquote.pull-right .small:after { - content: '\00A0 \2014'; -} -address { - margin-bottom: 22px; - font-style: normal; - line-height: 1.42857143; -} -code, -kbd, -pre, -samp { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; -} -code { - padding: 2px 4px; - font-size: 90%; - color: #c7254e; - background-color: #f9f2f4; - border-radius: 4px; -} -kbd { - padding: 2px 4px; - font-size: 90%; - color: #ffffff; - background-color: #333333; - border-radius: 3px; - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); -} -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - box-shadow: none; -} -pre { - display: block; - padding: 10.5px; - margin: 0 0 11px; - font-size: 15px; - line-height: 1.42857143; - word-break: break-all; - word-wrap: break-word; - color: #546e7a; - background-color: #f5f5f5; - border: 1px solid #cccccc; - border-radius: 4px; -} -pre code { - padding: 0; - font-size: inherit; - color: inherit; - white-space: pre-wrap; - background-color: transparent; - border-radius: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -.container { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} -@media (min-width: 768px) { - .container { - width: 750px; - } -} -@media (min-width: 992px) { - .container { - width: 970px; - } -} -@media (min-width: 1200px) { - .container { - width: 1170px; - } -} -.container-fluid { - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} -.row { - margin-left: -15px; - margin-right: -15px; -} -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { - position: relative; - min-height: 1px; - padding-left: 15px; - padding-right: 15px; -} -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { - float: left; -} -.col-xs-12 { - width: 100%; -} -.col-xs-11 { - width: 91.66666667%; -} -.col-xs-10 { - width: 83.33333333%; -} -.col-xs-9 { - width: 75%; -} -.col-xs-8 { - width: 66.66666667%; -} -.col-xs-7 { - width: 58.33333333%; -} -.col-xs-6 { - width: 50%; -} -.col-xs-5 { - width: 41.66666667%; -} -.col-xs-4 { - width: 33.33333333%; -} -.col-xs-3 { - width: 25%; -} -.col-xs-2 { - width: 16.66666667%; -} -.col-xs-1 { - width: 8.33333333%; -} -.col-xs-pull-12 { - right: 100%; -} -.col-xs-pull-11 { - right: 91.66666667%; -} -.col-xs-pull-10 { - right: 83.33333333%; -} -.col-xs-pull-9 { - right: 75%; -} -.col-xs-pull-8 { - right: 66.66666667%; -} -.col-xs-pull-7 { - right: 58.33333333%; -} -.col-xs-pull-6 { - right: 50%; -} -.col-xs-pull-5 { - right: 41.66666667%; -} -.col-xs-pull-4 { - right: 33.33333333%; -} -.col-xs-pull-3 { - right: 25%; -} -.col-xs-pull-2 { - right: 16.66666667%; -} -.col-xs-pull-1 { - right: 8.33333333%; -} -.col-xs-pull-0 { - right: auto; -} -.col-xs-push-12 { - left: 100%; -} -.col-xs-push-11 { - left: 91.66666667%; -} -.col-xs-push-10 { - left: 83.33333333%; -} -.col-xs-push-9 { - left: 75%; -} -.col-xs-push-8 { - left: 66.66666667%; -} -.col-xs-push-7 { - left: 58.33333333%; -} -.col-xs-push-6 { - left: 50%; -} -.col-xs-push-5 { - left: 41.66666667%; -} -.col-xs-push-4 { - left: 33.33333333%; -} -.col-xs-push-3 { - left: 25%; -} -.col-xs-push-2 { - left: 16.66666667%; -} -.col-xs-push-1 { - left: 8.33333333%; -} -.col-xs-push-0 { - left: auto; -} -.col-xs-offset-12 { - margin-left: 100%; -} -.col-xs-offset-11 { - margin-left: 91.66666667%; -} -.col-xs-offset-10 { - margin-left: 83.33333333%; -} -.col-xs-offset-9 { - margin-left: 75%; -} -.col-xs-offset-8 { - margin-left: 66.66666667%; -} -.col-xs-offset-7 { - margin-left: 58.33333333%; -} -.col-xs-offset-6 { - margin-left: 50%; -} -.col-xs-offset-5 { - margin-left: 41.66666667%; -} -.col-xs-offset-4 { - margin-left: 33.33333333%; -} -.col-xs-offset-3 { - margin-left: 25%; -} -.col-xs-offset-2 { - margin-left: 16.66666667%; -} -.col-xs-offset-1 { - margin-left: 8.33333333%; -} -.col-xs-offset-0 { - margin-left: 0%; -} -@media (min-width: 768px) { - .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 { - float: left; - } - .col-sm-12 { - width: 100%; - } - .col-sm-11 { - width: 91.66666667%; - } - .col-sm-10 { - width: 83.33333333%; - } - .col-sm-9 { - width: 75%; - } - .col-sm-8 { - width: 66.66666667%; - } - .col-sm-7 { - width: 58.33333333%; - } - .col-sm-6 { - width: 50%; - } - .col-sm-5 { - width: 41.66666667%; - } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; - } - .col-sm-2 { - width: 16.66666667%; - } - .col-sm-1 { - width: 8.33333333%; - } - .col-sm-pull-12 { - right: 100%; - } - .col-sm-pull-11 { - right: 91.66666667%; - } - .col-sm-pull-10 { - right: 83.33333333%; - } - .col-sm-pull-9 { - right: 75%; - } - .col-sm-pull-8 { - right: 66.66666667%; - } - .col-sm-pull-7 { - right: 58.33333333%; - } - .col-sm-pull-6 { - right: 50%; - } - .col-sm-pull-5 { - right: 41.66666667%; - } - .col-sm-pull-4 { - right: 33.33333333%; - } - .col-sm-pull-3 { - right: 25%; - } - .col-sm-pull-2 { - right: 16.66666667%; - } - .col-sm-pull-1 { - right: 8.33333333%; - } - .col-sm-pull-0 { - right: auto; - } - .col-sm-push-12 { - left: 100%; - } - .col-sm-push-11 { - left: 91.66666667%; - } - .col-sm-push-10 { - left: 83.33333333%; - } - .col-sm-push-9 { - left: 75%; - } - .col-sm-push-8 { - left: 66.66666667%; - } - .col-sm-push-7 { - left: 58.33333333%; - } - .col-sm-push-6 { - left: 50%; - } - .col-sm-push-5 { - left: 41.66666667%; - } - .col-sm-push-4 { - left: 33.33333333%; - } - .col-sm-push-3 { - left: 25%; - } - .col-sm-push-2 { - left: 16.66666667%; - } - .col-sm-push-1 { - left: 8.33333333%; - } - .col-sm-push-0 { - left: auto; - } - .col-sm-offset-12 { - margin-left: 100%; - } - .col-sm-offset-11 { - margin-left: 91.66666667%; - } - .col-sm-offset-10 { - margin-left: 83.33333333%; - } - .col-sm-offset-9 { - margin-left: 75%; - } - .col-sm-offset-8 { - margin-left: 66.66666667%; - } - .col-sm-offset-7 { - margin-left: 58.33333333%; - } - .col-sm-offset-6 { - margin-left: 50%; - } - .col-sm-offset-5 { - margin-left: 41.66666667%; - } - .col-sm-offset-4 { - margin-left: 33.33333333%; - } - .col-sm-offset-3 { - margin-left: 25%; - } - .col-sm-offset-2 { - margin-left: 16.66666667%; - } - .col-sm-offset-1 { - margin-left: 8.33333333%; - } - .col-sm-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 992px) { - .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 { - float: left; - } - .col-md-12 { - width: 100%; - } - .col-md-11 { - width: 91.66666667%; - } - .col-md-10 { - width: 83.33333333%; - } - .col-md-9 { - width: 75%; - } - .col-md-8 { - width: 66.66666667%; - } - .col-md-7 { - width: 58.33333333%; - } - .col-md-6 { - width: 50%; - } - .col-md-5 { - width: 41.66666667%; - } - .col-md-4 { - width: 33.33333333%; - } - .col-md-3 { - width: 25%; - } - .col-md-2 { - width: 16.66666667%; - } - .col-md-1 { - width: 8.33333333%; - } - .col-md-pull-12 { - right: 100%; - } - .col-md-pull-11 { - right: 91.66666667%; - } - .col-md-pull-10 { - right: 83.33333333%; - } - .col-md-pull-9 { - right: 75%; - } - .col-md-pull-8 { - right: 66.66666667%; - } - .col-md-pull-7 { - right: 58.33333333%; - } - .col-md-pull-6 { - right: 50%; - } - .col-md-pull-5 { - right: 41.66666667%; - } - .col-md-pull-4 { - right: 33.33333333%; - } - .col-md-pull-3 { - right: 25%; - } - .col-md-pull-2 { - right: 16.66666667%; - } - .col-md-pull-1 { - right: 8.33333333%; - } - .col-md-pull-0 { - right: auto; - } - .col-md-push-12 { - left: 100%; - } - .col-md-push-11 { - left: 91.66666667%; - } - .col-md-push-10 { - left: 83.33333333%; - } - .col-md-push-9 { - left: 75%; - } - .col-md-push-8 { - left: 66.66666667%; - } - .col-md-push-7 { - left: 58.33333333%; - } - .col-md-push-6 { - left: 50%; - } - .col-md-push-5 { - left: 41.66666667%; - } - .col-md-push-4 { - left: 33.33333333%; - } - .col-md-push-3 { - left: 25%; - } - .col-md-push-2 { - left: 16.66666667%; - } - .col-md-push-1 { - left: 8.33333333%; - } - .col-md-push-0 { - left: auto; - } - .col-md-offset-12 { - margin-left: 100%; - } - .col-md-offset-11 { - margin-left: 91.66666667%; - } - .col-md-offset-10 { - margin-left: 83.33333333%; - } - .col-md-offset-9 { - margin-left: 75%; - } - .col-md-offset-8 { - margin-left: 66.66666667%; - } - .col-md-offset-7 { - margin-left: 58.33333333%; - } - .col-md-offset-6 { - margin-left: 50%; - } - .col-md-offset-5 { - margin-left: 41.66666667%; - } - .col-md-offset-4 { - margin-left: 33.33333333%; - } - .col-md-offset-3 { - margin-left: 25%; - } - .col-md-offset-2 { - margin-left: 16.66666667%; - } - .col-md-offset-1 { - margin-left: 8.33333333%; - } - .col-md-offset-0 { - margin-left: 0%; - } -} -@media (min-width: 1200px) { - .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 { - float: left; - } - .col-lg-12 { - width: 100%; - } - .col-lg-11 { - width: 91.66666667%; - } - .col-lg-10 { - width: 83.33333333%; - } - .col-lg-9 { - width: 75%; - } - .col-lg-8 { - width: 66.66666667%; - } - .col-lg-7 { - width: 58.33333333%; - } - .col-lg-6 { - width: 50%; - } - .col-lg-5 { - width: 41.66666667%; - } - .col-lg-4 { - width: 33.33333333%; - } - .col-lg-3 { - width: 25%; - } - .col-lg-2 { - width: 16.66666667%; - } - .col-lg-1 { - width: 8.33333333%; - } - .col-lg-pull-12 { - right: 100%; - } - .col-lg-pull-11 { - right: 91.66666667%; - } - .col-lg-pull-10 { - right: 83.33333333%; - } - .col-lg-pull-9 { - right: 75%; - } - .col-lg-pull-8 { - right: 66.66666667%; - } - .col-lg-pull-7 { - right: 58.33333333%; - } - .col-lg-pull-6 { - right: 50%; - } - .col-lg-pull-5 { - right: 41.66666667%; - } - .col-lg-pull-4 { - right: 33.33333333%; - } - .col-lg-pull-3 { - right: 25%; - } - .col-lg-pull-2 { - right: 16.66666667%; - } - .col-lg-pull-1 { - right: 8.33333333%; - } - .col-lg-pull-0 { - right: auto; - } - .col-lg-push-12 { - left: 100%; - } - .col-lg-push-11 { - left: 91.66666667%; - } - .col-lg-push-10 { - left: 83.33333333%; - } - .col-lg-push-9 { - left: 75%; - } - .col-lg-push-8 { - left: 66.66666667%; - } - .col-lg-push-7 { - left: 58.33333333%; - } - .col-lg-push-6 { - left: 50%; - } - .col-lg-push-5 { - left: 41.66666667%; - } - .col-lg-push-4 { - left: 33.33333333%; - } - .col-lg-push-3 { - left: 25%; - } - .col-lg-push-2 { - left: 16.66666667%; - } - .col-lg-push-1 { - left: 8.33333333%; - } - .col-lg-push-0 { - left: auto; - } - .col-lg-offset-12 { - margin-left: 100%; - } - .col-lg-offset-11 { - margin-left: 91.66666667%; - } - .col-lg-offset-10 { - margin-left: 83.33333333%; - } - .col-lg-offset-9 { - margin-left: 75%; - } - .col-lg-offset-8 { - margin-left: 66.66666667%; - } - .col-lg-offset-7 { - margin-left: 58.33333333%; - } - .col-lg-offset-6 { - margin-left: 50%; - } - .col-lg-offset-5 { - margin-left: 41.66666667%; - } - .col-lg-offset-4 { - margin-left: 33.33333333%; - } - .col-lg-offset-3 { - margin-left: 25%; - } - .col-lg-offset-2 { - margin-left: 16.66666667%; - } - .col-lg-offset-1 { - margin-left: 8.33333333%; - } - .col-lg-offset-0 { - margin-left: 0%; - } -} -table { - background-color: transparent; -} -caption { - padding-top: 8px; - padding-bottom: 8px; - color: #b0bec5; - text-align: left; -} -th { - text-align: left; -} -.table { - width: 100%; - max-width: 100%; - margin-bottom: 22px; -} -.table > thead > tr > th, -.table > tbody > tr > th, -.table > tfoot > tr > th, -.table > thead > tr > td, -.table > tbody > tr > td, -.table > tfoot > tr > td { - padding: 8px; - line-height: 1.42857143; - vertical-align: top; - border-top: 1px solid #dddddd; -} -.table > thead > tr > th { - vertical-align: bottom; - border-bottom: 2px solid #dddddd; -} -.table > caption + thead > tr:first-child > th, -.table > colgroup + thead > tr:first-child > th, -.table > thead:first-child > tr:first-child > th, -.table > caption + thead > tr:first-child > td, -.table > colgroup + thead > tr:first-child > td, -.table > thead:first-child > tr:first-child > td { - border-top: 0; -} -.table > tbody + tbody { - border-top: 2px solid #dddddd; -} -.table .table { - background-color: #eceff1; -} -.table-condensed > thead > tr > th, -.table-condensed > tbody > tr > th, -.table-condensed > tfoot > tr > th, -.table-condensed > thead > tr > td, -.table-condensed > tbody > tr > td, -.table-condensed > tfoot > tr > td { - padding: 5px; -} -.table-bordered { - border: 1px solid #dddddd; -} -.table-bordered > thead > tr > th, -.table-bordered > tbody > tr > th, -.table-bordered > tfoot > tr > th, -.table-bordered > thead > tr > td, -.table-bordered > tbody > tr > td, -.table-bordered > tfoot > tr > td { - border: 1px solid #dddddd; -} -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; -} -.table-striped > tbody > tr:nth-of-type(odd) { - background-color: #f9f9f9; -} -.table-hover > tbody > tr:hover { - background-color: #f5f5f5; -} -table col[class*="col-"] { - position: static; - float: none; - display: table-column; -} -table td[class*="col-"], -table th[class*="col-"] { - position: static; - float: none; - display: table-cell; -} -.table > thead > tr > td.active, -.table > tbody > tr > td.active, -.table > tfoot > tr > td.active, -.table > thead > tr > th.active, -.table > tbody > tr > th.active, -.table > tfoot > tr > th.active, -.table > thead > tr.active > td, -.table > tbody > tr.active > td, -.table > tfoot > tr.active > td, -.table > thead > tr.active > th, -.table > tbody > tr.active > th, -.table > tfoot > tr.active > th { - background-color: #f5f5f5; -} -.table-hover > tbody > tr > td.active:hover, -.table-hover > tbody > tr > th.active:hover, -.table-hover > tbody > tr.active:hover > td, -.table-hover > tbody > tr:hover > .active, -.table-hover > tbody > tr.active:hover > th { - background-color: #e8e8e8; -} -.table > thead > tr > td.success, -.table > tbody > tr > td.success, -.table > tfoot > tr > td.success, -.table > thead > tr > th.success, -.table > tbody > tr > th.success, -.table > tfoot > tr > th.success, -.table > thead > tr.success > td, -.table > tbody > tr.success > td, -.table > tfoot > tr.success > td, -.table > thead > tr.success > th, -.table > tbody > tr.success > th, -.table > tfoot > tr.success > th { - background-color: #dff0d8; -} -.table-hover > tbody > tr > td.success:hover, -.table-hover > tbody > tr > th.success:hover, -.table-hover > tbody > tr.success:hover > td, -.table-hover > tbody > tr:hover > .success, -.table-hover > tbody > tr.success:hover > th { - background-color: #d0e9c6; -} -.table > thead > tr > td.info, -.table > tbody > tr > td.info, -.table > tfoot > tr > td.info, -.table > thead > tr > th.info, -.table > tbody > tr > th.info, -.table > tfoot > tr > th.info, -.table > thead > tr.info > td, -.table > tbody > tr.info > td, -.table > tfoot > tr.info > td, -.table > thead > tr.info > th, -.table > tbody > tr.info > th, -.table > tfoot > tr.info > th { - background-color: #d9edf7; -} -.table-hover > tbody > tr > td.info:hover, -.table-hover > tbody > tr > th.info:hover, -.table-hover > tbody > tr.info:hover > td, -.table-hover > tbody > tr:hover > .info, -.table-hover > tbody > tr.info:hover > th { - background-color: #c4e3f3; -} -.table > thead > tr > td.warning, -.table > tbody > tr > td.warning, -.table > tfoot > tr > td.warning, -.table > thead > tr > th.warning, -.table > tbody > tr > th.warning, -.table > tfoot > tr > th.warning, -.table > thead > tr.warning > td, -.table > tbody > tr.warning > td, -.table > tfoot > tr.warning > td, -.table > thead > tr.warning > th, -.table > tbody > tr.warning > th, -.table > tfoot > tr.warning > th { - background-color: #fcf8e3; -} -.table-hover > tbody > tr > td.warning:hover, -.table-hover > tbody > tr > th.warning:hover, -.table-hover > tbody > tr.warning:hover > td, -.table-hover > tbody > tr:hover > .warning, -.table-hover > tbody > tr.warning:hover > th { - background-color: #faf2cc; -} -.table > thead > tr > td.danger, -.table > tbody > tr > td.danger, -.table > tfoot > tr > td.danger, -.table > thead > tr > th.danger, -.table > tbody > tr > th.danger, -.table > tfoot > tr > th.danger, -.table > thead > tr.danger > td, -.table > tbody > tr.danger > td, -.table > tfoot > tr.danger > td, -.table > thead > tr.danger > th, -.table > tbody > tr.danger > th, -.table > tfoot > tr.danger > th { - background-color: #f2dede; -} -.table-hover > tbody > tr > td.danger:hover, -.table-hover > tbody > tr > th.danger:hover, -.table-hover > tbody > tr.danger:hover > td, -.table-hover > tbody > tr:hover > .danger, -.table-hover > tbody > tr.danger:hover > th { - background-color: #ebcccc; -} -.table-responsive { - overflow-x: auto; - min-height: 0.01%; -} -@media screen and (max-width: 767px) { - .table-responsive { - width: 100%; - margin-bottom: 16.5px; - overflow-y: hidden; - -ms-overflow-style: -ms-autohiding-scrollbar; - border: 1px solid #dddddd; - } - .table-responsive > .table { - margin-bottom: 0; - } - .table-responsive > .table > thead > tr > th, - .table-responsive > .table > tbody > tr > th, - .table-responsive > .table > tfoot > tr > th, - .table-responsive > .table > thead > tr > td, - .table-responsive > .table > tbody > tr > td, - .table-responsive > .table > tfoot > tr > td { - white-space: nowrap; - } - .table-responsive > .table-bordered { - border: 0; - } - .table-responsive > .table-bordered > thead > tr > th:first-child, - .table-responsive > .table-bordered > tbody > tr > th:first-child, - .table-responsive > .table-bordered > tfoot > tr > th:first-child, - .table-responsive > .table-bordered > thead > tr > td:first-child, - .table-responsive > .table-bordered > tbody > tr > td:first-child, - .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; - } - .table-responsive > .table-bordered > thead > tr > th:last-child, - .table-responsive > .table-bordered > tbody > tr > th:last-child, - .table-responsive > .table-bordered > tfoot > tr > th:last-child, - .table-responsive > .table-bordered > thead > tr > td:last-child, - .table-responsive > .table-bordered > tbody > tr > td:last-child, - .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; - } - .table-responsive > .table-bordered > tbody > tr:last-child > th, - .table-responsive > .table-bordered > tfoot > tr:last-child > th, - .table-responsive > .table-bordered > tbody > tr:last-child > td, - .table-responsive > .table-bordered > tfoot > tr:last-child > td { - border-bottom: 0; - } -} -fieldset { - padding: 0; - margin: 0; - border: 0; - min-width: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 22px; - font-size: 24px; - line-height: inherit; - color: #546e7a; - border: 0; - border-bottom: 1px solid #e5e5e5; -} -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; -} -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; -} -input[type="file"] { - display: block; -} -input[type="range"] { - display: block; - width: 100%; -} -select[multiple], -select[size] { - height: auto; -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -output { - display: block; - padding-top: 7px; - font-size: 16px; - line-height: 1.42857143; - color: #78909c; -} -.form-control { - display: block; - width: 100%; - height: 36px; - padding: 6px 12px; - font-size: 16px; - line-height: 1.42857143; - color: #78909c; - background-color: #ffffff; - background-image: none; - border: 1px solid #cccccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -} -.form-control:focus { - border-color: #66afe9; - outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6); -} -.form-control::-moz-placeholder { - color: #999999; - opacity: 1; -} -.form-control:-ms-input-placeholder { - color: #999999; -} -.form-control::-webkit-input-placeholder { - color: #999999; -} -.form-control::-ms-expand { - border: 0; - background-color: transparent; -} -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - background-color: #eceff1; - opacity: 1; -} -.form-control[disabled], -fieldset[disabled] .form-control { - cursor: not-allowed; -} -textarea.form-control { - height: auto; -} -input[type="search"] { - -webkit-appearance: none; -} -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"].form-control, - input[type="time"].form-control, - input[type="datetime-local"].form-control, - input[type="month"].form-control { - line-height: 36px; - } - input[type="date"].input-sm, - input[type="time"].input-sm, - input[type="datetime-local"].input-sm, - input[type="month"].input-sm, - .input-group-sm input[type="date"], - .input-group-sm input[type="time"], - .input-group-sm input[type="datetime-local"], - .input-group-sm input[type="month"] { - line-height: 33px; - } - input[type="date"].input-lg, - input[type="time"].input-lg, - input[type="datetime-local"].input-lg, - input[type="month"].input-lg, - .input-group-lg input[type="date"], - .input-group-lg input[type="time"], - .input-group-lg input[type="datetime-local"], - .input-group-lg input[type="month"] { - line-height: 49px; - } -} -.form-group { - margin-bottom: 15px; -} -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; -} -.radio label, -.checkbox label { - min-height: 22px; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - cursor: pointer; -} -.radio input[type="radio"], -.radio-inline input[type="radio"], -.checkbox input[type="checkbox"], -.checkbox-inline input[type="checkbox"] { - position: absolute; - margin-left: -20px; - margin-top: 4px \9; -} -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; -} -.radio-inline, -.checkbox-inline { - position: relative; - display: inline-block; - padding-left: 20px; - margin-bottom: 0; - vertical-align: middle; - font-weight: normal; - cursor: pointer; -} -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"].disabled, -input[type="checkbox"].disabled, -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; -} -.radio-inline.disabled, -.checkbox-inline.disabled, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.radio.disabled label, -.checkbox.disabled label, -fieldset[disabled] .radio label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; -} -.form-control-static { - padding-top: 7px; - padding-bottom: 7px; - margin-bottom: 0; - min-height: 38px; -} -.form-control-static.input-lg, -.form-control-static.input-sm { - padding-left: 0; - padding-right: 0; -} -.input-sm { - height: 33px; - padding: 5px 10px; - font-size: 14px; - line-height: 1.5; - border-radius: 3px; -} -select.input-sm { - height: 33px; - line-height: 33px; -} -textarea.input-sm, -select[multiple].input-sm { - height: auto; -} -.form-group-sm .form-control { - height: 33px; - padding: 5px 10px; - font-size: 14px; - line-height: 1.5; - border-radius: 3px; -} -.form-group-sm select.form-control { - height: 33px; - line-height: 33px; -} -.form-group-sm textarea.form-control, -.form-group-sm select[multiple].form-control { - height: auto; -} -.form-group-sm .form-control-static { - height: 33px; - min-height: 36px; - padding: 6px 10px; - font-size: 14px; - line-height: 1.5; -} -.input-lg { - height: 49px; - padding: 10px 16px; - font-size: 20px; - line-height: 1.3333333; - border-radius: 6px; -} -select.input-lg { - height: 49px; - line-height: 49px; -} -textarea.input-lg, -select[multiple].input-lg { - height: auto; -} -.form-group-lg .form-control { - height: 49px; - padding: 10px 16px; - font-size: 20px; - line-height: 1.3333333; - border-radius: 6px; -} -.form-group-lg select.form-control { - height: 49px; - line-height: 49px; -} -.form-group-lg textarea.form-control, -.form-group-lg select[multiple].form-control { - height: auto; -} -.form-group-lg .form-control-static { - height: 49px; - min-height: 42px; - padding: 11px 16px; - font-size: 20px; - line-height: 1.3333333; -} -.has-feedback { - position: relative; -} -.has-feedback .form-control { - padding-right: 45px; -} -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 36px; - height: 36px; - line-height: 36px; - text-align: center; - pointer-events: none; -} -.input-lg + .form-control-feedback, -.input-group-lg + .form-control-feedback, -.form-group-lg .form-control + .form-control-feedback { - width: 49px; - height: 49px; - line-height: 49px; -} -.input-sm + .form-control-feedback, -.input-group-sm + .form-control-feedback, -.form-group-sm .form-control + .form-control-feedback { - width: 33px; - height: 33px; - line-height: 33px; -} -.has-success .help-block, -.has-success .control-label, -.has-success .radio, -.has-success .checkbox, -.has-success .radio-inline, -.has-success .checkbox-inline, -.has-success.radio label, -.has-success.checkbox label, -.has-success.radio-inline label, -.has-success.checkbox-inline label { - color: #3c763d; -} -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; -} -.has-success .input-group-addon { - color: #3c763d; - border-color: #3c763d; - background-color: #dff0d8; -} -.has-success .form-control-feedback { - color: #3c763d; -} -.has-warning .help-block, -.has-warning .control-label, -.has-warning .radio, -.has-warning .checkbox, -.has-warning .radio-inline, -.has-warning .checkbox-inline, -.has-warning.radio label, -.has-warning.checkbox label, -.has-warning.radio-inline label, -.has-warning.checkbox-inline label { - color: #8a6d3b; -} -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; -} -.has-warning .input-group-addon { - color: #8a6d3b; - border-color: #8a6d3b; - background-color: #fcf8e3; -} -.has-warning .form-control-feedback { - color: #8a6d3b; -} -.has-error .help-block, -.has-error .control-label, -.has-error .radio, -.has-error .checkbox, -.has-error .radio-inline, -.has-error .checkbox-inline, -.has-error.radio label, -.has-error.checkbox label, -.has-error.radio-inline label, -.has-error.checkbox-inline label { - color: #a94442; -} -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); -} -.has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; -} -.has-error .input-group-addon { - color: #a94442; - border-color: #a94442; - background-color: #f2dede; -} -.has-error .form-control-feedback { - color: #a94442; -} -.has-feedback label ~ .form-control-feedback { - top: 27px; -} -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #6c8a99; -} -@media (min-width: 768px) { - .form-inline .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .form-inline .form-control-static { - display: inline-block; - } - .form-inline .input-group { - display: inline-table; - vertical-align: middle; - } - .form-inline .input-group .input-group-addon, - .form-inline .input-group .input-group-btn, - .form-inline .input-group .form-control { - width: auto; - } - .form-inline .input-group > .form-control { - width: 100%; - } - .form-inline .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio, - .form-inline .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .form-inline .radio label, - .form-inline .checkbox label { - padding-left: 0; - } - .form-inline .radio input[type="radio"], - .form-inline .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .form-inline .has-feedback .form-control-feedback { - top: 0; - } -} -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - margin-top: 0; - margin-bottom: 0; - padding-top: 7px; -} -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 29px; -} -.form-horizontal .form-group { - margin-left: -15px; - margin-right: -15px; -} -@media (min-width: 768px) { - .form-horizontal .control-label { - text-align: right; - margin-bottom: 0; - padding-top: 7px; - } -} -.form-horizontal .has-feedback .form-control-feedback { - right: 15px; -} -@media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 11px; - font-size: 20px; - } -} -@media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 6px; - font-size: 14px; - } -} -.btn { - display: inline-block; - margin-bottom: 0; - font-weight: normal; - text-align: center; - vertical-align: middle; - touch-action: manipulation; - cursor: pointer; - background-image: none; - border: 1px solid transparent; - white-space: nowrap; - padding: 6px 12px; - font-size: 16px; - line-height: 1.42857143; - border-radius: 4px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.btn:focus, -.btn:active:focus, -.btn.active:focus, -.btn.focus, -.btn:active.focus, -.btn.active.focus { - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn:hover, -.btn:focus, -.btn.focus { - color: #333333; - text-decoration: none; -} -.btn:active, -.btn.active { - outline: 0; - background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - cursor: not-allowed; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; -} -a.btn.disabled, -fieldset[disabled] a.btn { - pointer-events: none; -} -.btn-default { - color: #333333; - background-color: #ffffff; - border-color: #cccccc; -} -.btn-default:focus, -.btn-default.focus { - color: #333333; - background-color: #e6e6e6; - border-color: #8c8c8c; -} -.btn-default:hover { - color: #333333; - background-color: #e6e6e6; - border-color: #adadad; -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - color: #333333; - background-color: #e6e6e6; - border-color: #adadad; -} -.btn-default:active:hover, -.btn-default.active:hover, -.open > .dropdown-toggle.btn-default:hover, -.btn-default:active:focus, -.btn-default.active:focus, -.open > .dropdown-toggle.btn-default:focus, -.btn-default:active.focus, -.btn-default.active.focus, -.open > .dropdown-toggle.btn-default.focus { - color: #333333; - background-color: #d4d4d4; - border-color: #8c8c8c; -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - background-image: none; -} -.btn-default.disabled:hover, -.btn-default[disabled]:hover, -fieldset[disabled] .btn-default:hover, -.btn-default.disabled:focus, -.btn-default[disabled]:focus, -fieldset[disabled] .btn-default:focus, -.btn-default.disabled.focus, -.btn-default[disabled].focus, -fieldset[disabled] .btn-default.focus { - background-color: #ffffff; - border-color: #cccccc; -} -.btn-default .badge { - color: #ffffff; - background-color: #333333; -} -.btn-primary { - color: #ffffff; - background-color: #ff5722; - border-color: #ff4408; -} -.btn-primary:focus, -.btn-primary.focus { - color: #ffffff; - background-color: #ee3900; - border-color: #882100; -} -.btn-primary:hover { - color: #ffffff; - background-color: #ee3900; - border-color: #ca3100; -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - color: #ffffff; - background-color: #ee3900; - border-color: #ca3100; -} -.btn-primary:active:hover, -.btn-primary.active:hover, -.open > .dropdown-toggle.btn-primary:hover, -.btn-primary:active:focus, -.btn-primary.active:focus, -.open > .dropdown-toggle.btn-primary:focus, -.btn-primary:active.focus, -.btn-primary.active.focus, -.open > .dropdown-toggle.btn-primary.focus { - color: #ffffff; - background-color: #ca3100; - border-color: #882100; -} -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - background-image: none; -} -.btn-primary.disabled:hover, -.btn-primary[disabled]:hover, -fieldset[disabled] .btn-primary:hover, -.btn-primary.disabled:focus, -.btn-primary[disabled]:focus, -fieldset[disabled] .btn-primary:focus, -.btn-primary.disabled.focus, -.btn-primary[disabled].focus, -fieldset[disabled] .btn-primary.focus { - background-color: #ff5722; - border-color: #ff4408; -} -.btn-primary .badge { - color: #ff5722; - background-color: #ffffff; -} -.btn-success { - color: #ffffff; - background-color: #27ca3b; - border-color: #23b535; -} -.btn-success:focus, -.btn-success.focus { - color: #ffffff; - background-color: #1f9f2f; - border-color: #0e4a16; -} -.btn-success:hover { - color: #ffffff; - background-color: #1f9f2f; - border-color: #198126; -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - color: #ffffff; - background-color: #1f9f2f; - border-color: #198126; -} -.btn-success:active:hover, -.btn-success.active:hover, -.open > .dropdown-toggle.btn-success:hover, -.btn-success:active:focus, -.btn-success.active:focus, -.open > .dropdown-toggle.btn-success:focus, -.btn-success:active.focus, -.btn-success.active.focus, -.open > .dropdown-toggle.btn-success.focus { - color: #ffffff; - background-color: #198126; - border-color: #0e4a16; -} -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - background-image: none; -} -.btn-success.disabled:hover, -.btn-success[disabled]:hover, -fieldset[disabled] .btn-success:hover, -.btn-success.disabled:focus, -.btn-success[disabled]:focus, -fieldset[disabled] .btn-success:focus, -.btn-success.disabled.focus, -.btn-success[disabled].focus, -fieldset[disabled] .btn-success.focus { - background-color: #27ca3b; - border-color: #23b535; -} -.btn-success .badge { - color: #27ca3b; - background-color: #ffffff; -} -.btn-info { - color: #ffffff; - background-color: #1fa0a0; - border-color: #1b8b8b; -} -.btn-info:focus, -.btn-info.focus { - color: #ffffff; - background-color: #177575; - border-color: #062020; -} -.btn-info:hover { - color: #ffffff; - background-color: #177575; - border-color: #115757; -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - color: #ffffff; - background-color: #177575; - border-color: #115757; -} -.btn-info:active:hover, -.btn-info.active:hover, -.open > .dropdown-toggle.btn-info:hover, -.btn-info:active:focus, -.btn-info.active:focus, -.open > .dropdown-toggle.btn-info:focus, -.btn-info:active.focus, -.btn-info.active.focus, -.open > .dropdown-toggle.btn-info.focus { - color: #ffffff; - background-color: #115757; - border-color: #062020; -} -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - background-image: none; -} -.btn-info.disabled:hover, -.btn-info[disabled]:hover, -fieldset[disabled] .btn-info:hover, -.btn-info.disabled:focus, -.btn-info[disabled]:focus, -fieldset[disabled] .btn-info:focus, -.btn-info.disabled.focus, -.btn-info[disabled].focus, -fieldset[disabled] .btn-info.focus { - background-color: #1fa0a0; - border-color: #1b8b8b; -} -.btn-info .badge { - color: #1fa0a0; - background-color: #ffffff; -} -.btn-warning { - color: #ffffff; - background-color: #ff8f31; - border-color: #ff8118; -} -.btn-warning:focus, -.btn-warning.focus { - color: #ffffff; - background-color: #fd7300; - border-color: #974500; -} -.btn-warning:hover { - color: #ffffff; - background-color: #fd7300; - border-color: #d96300; -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - color: #ffffff; - background-color: #fd7300; - border-color: #d96300; -} -.btn-warning:active:hover, -.btn-warning.active:hover, -.open > .dropdown-toggle.btn-warning:hover, -.btn-warning:active:focus, -.btn-warning.active:focus, -.open > .dropdown-toggle.btn-warning:focus, -.btn-warning:active.focus, -.btn-warning.active.focus, -.open > .dropdown-toggle.btn-warning.focus { - color: #ffffff; - background-color: #d96300; - border-color: #974500; -} -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - background-image: none; -} -.btn-warning.disabled:hover, -.btn-warning[disabled]:hover, -fieldset[disabled] .btn-warning:hover, -.btn-warning.disabled:focus, -.btn-warning[disabled]:focus, -fieldset[disabled] .btn-warning:focus, -.btn-warning.disabled.focus, -.btn-warning[disabled].focus, -fieldset[disabled] .btn-warning.focus { - background-color: #ff8f31; - border-color: #ff8118; -} -.btn-warning .badge { - color: #ff8f31; - background-color: #ffffff; -} -.btn-danger { - color: #ffffff; - background-color: #af0900; - border-color: #960800; -} -.btn-danger:focus, -.btn-danger.focus { - color: #ffffff; - background-color: #7c0600; - border-color: #160100; -} -.btn-danger:hover { - color: #ffffff; - background-color: #7c0600; - border-color: #580500; -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - color: #ffffff; - background-color: #7c0600; - border-color: #580500; -} -.btn-danger:active:hover, -.btn-danger.active:hover, -.open > .dropdown-toggle.btn-danger:hover, -.btn-danger:active:focus, -.btn-danger.active:focus, -.open > .dropdown-toggle.btn-danger:focus, -.btn-danger:active.focus, -.btn-danger.active.focus, -.open > .dropdown-toggle.btn-danger.focus { - color: #ffffff; - background-color: #580500; - border-color: #160100; -} -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - background-image: none; -} -.btn-danger.disabled:hover, -.btn-danger[disabled]:hover, -fieldset[disabled] .btn-danger:hover, -.btn-danger.disabled:focus, -.btn-danger[disabled]:focus, -fieldset[disabled] .btn-danger:focus, -.btn-danger.disabled.focus, -.btn-danger[disabled].focus, -fieldset[disabled] .btn-danger.focus { - background-color: #af0900; - border-color: #960800; -} -.btn-danger .badge { - color: #af0900; - background-color: #ffffff; -} -.btn-link { - color: #ff5722; - font-weight: normal; - border-radius: 0; -} -.btn-link, -.btn-link:active, -.btn-link.active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} -.btn-link:hover, -.btn-link:focus { - color: #d43300; - text-decoration: underline; - background-color: transparent; -} -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #b0bec5; - text-decoration: none; -} -.btn-lg, -.btn-group-lg > .btn { - padding: 10px 16px; - font-size: 20px; - line-height: 1.3333333; - border-radius: 6px; -} -.btn-sm, -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 14px; - line-height: 1.5; - border-radius: 3px; -} -.btn-xs, -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 14px; - line-height: 1.5; - border-radius: 3px; -} -.btn-block { - display: block; - width: 100%; -} -.btn-block + .btn-block { - margin-top: 5px; -} -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; -} -.fade { - opacity: 0; - -webkit-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} -.fade.in { - opacity: 1; -} -.collapse { - display: none; -} -.collapse.in { - display: block; -} -tr.collapse.in { - display: table-row; -} -tbody.collapse.in { - display: table-row-group; -} -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-property: height, visibility; - transition-property: height, visibility; - -webkit-transition-duration: 0.35s; - transition-duration: 0.35s; - -webkit-transition-timing-function: ease; - transition-timing-function: ease; -} -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px dashed; - border-top: 4px solid \9; - border-right: 4px solid transparent; - border-left: 4px solid transparent; -} -.dropup, -.dropdown { - position: relative; -} -.dropdown-toggle:focus { - outline: 0; -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 5px 0; - margin: 2px 0 0; - list-style: none; - font-size: 16px; - text-align: left; - background-color: #ffffff; - border: 1px solid #cccccc; - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-clip: padding-box; -} -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - height: 1px; - margin: 10px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #546e7a; - white-space: nowrap; -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - text-decoration: none; - color: #4a606b; - background-color: #f5f5f5; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #ffffff; - text-decoration: none; - outline: 0; - background-color: #ff5722; -} -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #b0bec5; -} -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - background-color: transparent; - background-image: none; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - cursor: not-allowed; -} -.open > .dropdown-menu { - display: block; -} -.open > a { - outline: 0; -} -.dropdown-menu-right { - left: auto; - right: 0; -} -.dropdown-menu-left { - left: 0; - right: auto; -} -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 14px; - line-height: 1.42857143; - color: #b0bec5; - white-space: nowrap; -} -.dropdown-backdrop { - position: fixed; - left: 0; - right: 0; - bottom: 0; - top: 0; - z-index: 990; -} -.pull-right > .dropdown-menu { - right: 0; - left: auto; -} -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px dashed; - border-bottom: 4px solid \9; - content: ""; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 2px; -} -@media (min-width: 768px) { - .navbar-right .dropdown-menu { - left: auto; - right: 0; - } - .navbar-right .dropdown-menu-left { - left: 0; - right: auto; - } -} -.btn-group, -.btn-group-vertical { - position: relative; - display: inline-block; - vertical-align: middle; -} -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; -} -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover, -.btn-group > .btn:focus, -.btn-group-vertical > .btn:focus, -.btn-group > .btn:active, -.btn-group-vertical > .btn:active, -.btn-group > .btn.active, -.btn-group-vertical > .btn.active { - z-index: 2; -} -.btn-group .btn + .btn, -.btn-group .btn + .btn-group, -.btn-group .btn-group + .btn, -.btn-group .btn-group + .btn-group { - margin-left: -1px; -} -.btn-toolbar { - margin-left: -5px; -} -.btn-toolbar .btn, -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; -} -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; -} -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; -} -.btn-group > .btn:first-child { - margin-left: 0; -} -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { - border-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-group > .btn + .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; -} -.btn-group > .btn-lg + .dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); -} -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; -} -.btn .caret { - margin-left: 0; -} -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; -} -.dropup .btn-lg .caret { - border-width: 0 5px 5px; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; -} -.btn-group-vertical > .btn-group > .btn { - float: none; -} -.btn-group-vertical > .btn + .btn, -.btn-group-vertical > .btn + .btn-group, -.btn-group-vertical > .btn-group + .btn, -.btn-group-vertical > .btn-group + .btn-group { - margin-top: -1px; - margin-left: 0; -} -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-right-radius: 0; - border-top-left-radius: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -.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; -} -.btn-group-justified { - display: table; - width: 100%; - table-layout: fixed; - border-collapse: separate; -} -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - float: none; - display: table-cell; - width: 1%; -} -.btn-group-justified > .btn-group .btn { - width: 100%; -} -.btn-group-justified > .btn-group .dropdown-menu { - left: auto; -} -[data-toggle="buttons"] > .btn input[type="radio"], -[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], -[data-toggle="buttons"] > .btn input[type="checkbox"], -[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: table; - border-collapse: separate; -} -.input-group[class*="col-"] { - float: none; - padding-left: 0; - padding-right: 0; -} -.input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; -} -.input-group .form-control:focus { - z-index: 3; -} -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 49px; - padding: 10px 16px; - font-size: 20px; - line-height: 1.3333333; - border-radius: 6px; -} -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 49px; - line-height: 49px; -} -textarea.input-group-lg > .form-control, -textarea.input-group-lg > .input-group-addon, -textarea.input-group-lg > .input-group-btn > .btn, -select[multiple].input-group-lg > .form-control, -select[multiple].input-group-lg > .input-group-addon, -select[multiple].input-group-lg > .input-group-btn > .btn { - height: auto; -} -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 33px; - padding: 5px 10px; - font-size: 14px; - line-height: 1.5; - border-radius: 3px; -} -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 33px; - line-height: 33px; -} -textarea.input-group-sm > .form-control, -textarea.input-group-sm > .input-group-addon, -textarea.input-group-sm > .input-group-btn > .btn, -select[multiple].input-group-sm > .form-control, -select[multiple].input-group-sm > .input-group-addon, -select[multiple].input-group-sm > .input-group-btn > .btn { - height: auto; -} -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; -} -.input-group-addon:not(:first-child):not(:last-child), -.input-group-btn:not(:first-child):not(:last-child), -.input-group .form-control:not(:first-child):not(:last-child) { - border-radius: 0; -} -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; -} -.input-group-addon { - padding: 6px 12px; - font-size: 16px; - font-weight: normal; - line-height: 1; - color: #78909c; - text-align: center; - background-color: #eceff1; - border: 1px solid #cccccc; - border-radius: 4px; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 14px; - border-radius: 3px; -} -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 20px; - border-radius: 6px; -} -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 0; -} -.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group > .btn, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { - border-bottom-right-radius: 0; - border-top-right-radius: 0; -} -.input-group-addon:first-child { - border-right: 0; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group > .btn, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child), -.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { - border-bottom-left-radius: 0; - border-top-left-radius: 0; -} -.input-group-addon:last-child { - border-left: 0; -} -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; -} -.input-group-btn > .btn { - position: relative; -} -.input-group-btn > .btn + .btn { - margin-left: -1px; -} -.input-group-btn > .btn:hover, -.input-group-btn > .btn:focus, -.input-group-btn > .btn:active { - z-index: 2; -} -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group { - margin-right: -1px; -} -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group { - z-index: 2; - margin-left: -1px; -} -.nav { - margin-bottom: 0; - padding-left: 0; - list-style: none; -} -.nav > li { - position: relative; - display: block; -} -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; -} -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #eceff1; -} -.nav > li.disabled > a { - color: #b0bec5; -} -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #b0bec5; - text-decoration: none; - background-color: transparent; - cursor: not-allowed; -} -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #eceff1; - border-color: #ff5722; -} -.nav .nav-divider { - height: 1px; - margin: 10px 0; - overflow: hidden; - background-color: #e5e5e5; -} -.nav > li > a > img { - max-width: none; -} -.nav-tabs { - border-bottom: 1px solid #dddddd; -} -.nav-tabs > li { - float: left; - margin-bottom: -1px; -} -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; -} -.nav-tabs > li > a:hover { - border-color: #eceff1 #eceff1 #dddddd; -} -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #78909c; - background-color: #eceff1; - border: 1px solid #dddddd; - border-bottom-color: transparent; - cursor: default; -} -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; -} -.nav-tabs.nav-justified > li { - float: none; -} -.nav-tabs.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #dddddd; -} -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #dddddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs.nav-justified > .active > a, - .nav-tabs.nav-justified > .active > a:hover, - .nav-tabs.nav-justified > .active > a:focus { - border-bottom-color: #eceff1; - } -} -.nav-pills > li { - float: left; -} -.nav-pills > li > a { - border-radius: 4px; -} -.nav-pills > li + li { - margin-left: 2px; -} -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #ffffff; - background-color: #ff5722; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li + li { - margin-top: 2px; - margin-left: 0; -} -.nav-justified { - width: 100%; -} -.nav-justified > li { - float: none; -} -.nav-justified > li > a { - text-align: center; - margin-bottom: 5px; -} -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; -} -@media (min-width: 768px) { - .nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-justified > li > a { - margin-bottom: 0; - } -} -.nav-tabs-justified { - border-bottom: 0; -} -.nav-tabs-justified > li > a { - margin-right: 0; - border-radius: 4px; -} -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #dddddd; -} -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #dddddd; - border-radius: 4px 4px 0 0; - } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #eceff1; - } -} -.tab-content > .tab-pane { - display: none; -} -.tab-content > .active { - display: block; -} -.nav-tabs .dropdown-menu { - margin-top: -1px; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.navbar { - position: relative; - min-height: 50px; - margin-bottom: 22px; - border: 1px solid transparent; -} -@media (min-width: 768px) { - .navbar { - border-radius: 4px; - } -} -@media (min-width: 768px) { - .navbar-header { - float: left; - } -} -.navbar-collapse { - overflow-x: visible; - padding-right: 15px; - padding-left: 15px; - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - -webkit-overflow-scrolling: touch; -} -.navbar-collapse.in { - overflow-y: auto; -} -@media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; - } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-left: 0; - padding-right: 0; - } -} -.navbar-fixed-top .navbar-collapse, -.navbar-fixed-bottom .navbar-collapse { - max-height: 340px; -} -@media (max-device-width: 480px) and (orientation: landscape) { - .navbar-fixed-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - max-height: 200px; - } -} -.container > .navbar-header, -.container-fluid > .navbar-header, -.container > .navbar-collapse, -.container-fluid > .navbar-collapse { - margin-right: -15px; - margin-left: -15px; -} -@media (min-width: 768px) { - .container > .navbar-header, - .container-fluid > .navbar-header, - .container > .navbar-collapse, - .container-fluid > .navbar-collapse { - margin-right: 0; - margin-left: 0; - } -} -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; - } -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} -.navbar-brand { - float: left; - padding: 14px 15px; - font-size: 20px; - line-height: 22px; - height: 50px; -} -.navbar-brand:hover, -.navbar-brand:focus { - text-decoration: none; -} -.navbar-brand > img { - display: block; -} -@media (min-width: 768px) { - .navbar > .container .navbar-brand, - .navbar > .container-fluid .navbar-brand { - margin-left: -15px; - } -} -.navbar-toggle { - position: relative; - float: right; - margin-right: 15px; - padding: 9px 10px; - margin-top: 8px; - margin-bottom: 8px; - background-color: transparent; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.navbar-toggle:focus { - outline: 0; -} -.navbar-toggle .icon-bar { - display: block; - width: 22px; - height: 2px; - border-radius: 1px; -} -.navbar-toggle .icon-bar + .icon-bar { - margin-top: 4px; -} -@media (min-width: 768px) { - .navbar-toggle { - display: none; - } -} -.navbar-nav { - margin: 7px -15px; -} -.navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - line-height: 22px; -} -@media (max-width: 767px) { - .navbar-nav .open .dropdown-menu { - position: static; - float: none; - width: auto; - margin-top: 0; - background-color: transparent; - border: 0; - box-shadow: none; - } - .navbar-nav .open .dropdown-menu > li > a, - .navbar-nav .open .dropdown-menu .dropdown-header { - padding: 5px 15px 5px 25px; - } - .navbar-nav .open .dropdown-menu > li > a { - line-height: 22px; - } - .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-nav .open .dropdown-menu > li > a:focus { - background-image: none; - } -} -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; - } - .navbar-nav > li { - float: left; - } - .navbar-nav > li > a { - padding-top: 14px; - padding-bottom: 14px; - } -} -.navbar-form { - margin-left: -15px; - margin-right: -15px; - padding: 10px 15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - margin-top: 7px; - margin-bottom: 7px; -} -@media (min-width: 768px) { - .navbar-form .form-group { - display: inline-block; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .form-control { - display: inline-block; - width: auto; - vertical-align: middle; - } - .navbar-form .form-control-static { - display: inline-block; - } - .navbar-form .input-group { - display: inline-table; - vertical-align: middle; - } - .navbar-form .input-group .input-group-addon, - .navbar-form .input-group .input-group-btn, - .navbar-form .input-group .form-control { - width: auto; - } - .navbar-form .input-group > .form-control { - width: 100%; - } - .navbar-form .control-label { - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio, - .navbar-form .checkbox { - display: inline-block; - margin-top: 0; - margin-bottom: 0; - vertical-align: middle; - } - .navbar-form .radio label, - .navbar-form .checkbox label { - padding-left: 0; - } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; - } - .navbar-form .has-feedback .form-control-feedback { - top: 0; - } -} -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } - .navbar-form .form-group:last-child { - margin-bottom: 0; - } -} -@media (min-width: 768px) { - .navbar-form { - width: auto; - border: 0; - margin-left: 0; - margin-right: 0; - padding-top: 0; - padding-bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; - } -} -.navbar-nav > li > .dropdown-menu { - margin-top: 0; - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - margin-bottom: 0; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.navbar-btn { - margin-top: 7px; - margin-bottom: 7px; -} -.navbar-btn.btn-sm { - margin-top: 8.5px; - margin-bottom: 8.5px; -} -.navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; -} -.navbar-text { - margin-top: 14px; - margin-bottom: 14px; -} -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-left: 15px; - margin-right: 15px; - } -} -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - margin-right: -15px; - } - .navbar-right ~ .navbar-right { - margin-right: 0; - } -} -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; -} -.navbar-default .navbar-brand { - color: #777777; -} -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #5e5e5e; - background-color: transparent; -} -.navbar-default .navbar-text { - color: #777777; -} -.navbar-default .navbar-nav > li > a { - color: #777777; -} -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #333333; - background-color: transparent; -} -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555555; - background-color: #e7e7e7; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #cccccc; - background-color: transparent; -} -.navbar-default .navbar-toggle { - border-color: #dddddd; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #dddddd; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #888888; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - background-color: #e7e7e7; - color: #555555; -} -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777777; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333333; - background-color: transparent; - } - .navbar-default .navbar-nav .open .dropdown-menu > .active > a, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #555555; - background-color: #e7e7e7; - } - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #cccccc; - background-color: transparent; - } -} -.navbar-default .navbar-link { - color: #777777; -} -.navbar-default .navbar-link:hover { - color: #333333; -} -.navbar-default .btn-link { - color: #777777; -} -.navbar-default .btn-link:hover, -.navbar-default .btn-link:focus { - color: #333333; -} -.navbar-default .btn-link[disabled]:hover, -fieldset[disabled] .navbar-default .btn-link:hover, -.navbar-default .btn-link[disabled]:focus, -fieldset[disabled] .navbar-default .btn-link:focus { - color: #cccccc; -} -.navbar-inverse { - background-color: #222222; - border-color: #080808; -} -.navbar-inverse .navbar-brand { - color: #dce2e5; -} -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #ffffff; - background-color: transparent; -} -.navbar-inverse .navbar-text { - color: #dce2e5; -} -.navbar-inverse .navbar-nav > li > a { - color: #dce2e5; -} -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: #ffffff; - background-color: transparent; -} -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #ffffff; - background-color: #080808; -} -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444444; - background-color: transparent; -} -.navbar-inverse .navbar-toggle { - border-color: #333333; -} -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #333333; -} -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #ffffff; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #101010; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - background-color: #080808; - color: #ffffff; -} -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #dce2e5; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #ffffff; - background-color: transparent; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #ffffff; - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { - color: #444444; - background-color: transparent; - } -} -.navbar-inverse .navbar-link { - color: #dce2e5; -} -.navbar-inverse .navbar-link:hover { - color: #ffffff; -} -.navbar-inverse .btn-link { - color: #dce2e5; -} -.navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link:focus { - color: #ffffff; -} -.navbar-inverse .btn-link[disabled]:hover, -fieldset[disabled] .navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link[disabled]:focus, -fieldset[disabled] .navbar-inverse .btn-link:focus { - color: #444444; -} -.breadcrumb { - padding: 8px 15px; - margin-bottom: 22px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; -} -.breadcrumb > li { - display: inline-block; -} -.breadcrumb > li + li:before { - content: "/\00a0"; - padding: 0 5px; - color: #cccccc; -} -.breadcrumb > .active { - color: #b0bec5; -} -.pagination { - display: inline-block; - padding-left: 0; - margin: 22px 0; - border-radius: 4px; -} -.pagination > li { - display: inline; -} -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - line-height: 1.42857143; - text-decoration: none; - color: #ff5722; - background-color: #ffffff; - border: 1px solid #dddddd; - margin-left: -1px; -} -.pagination > li:first-child > a, -.pagination > li:first-child > span { - margin-left: 0; - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; -} -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-bottom-right-radius: 4px; - border-top-right-radius: 4px; -} -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - z-index: 2; - color: #d43300; - background-color: #eceff1; - border-color: #dddddd; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 3; - color: #ffffff; - background-color: #ff5722; - border-color: #ff5722; - cursor: default; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #b0bec5; - background-color: #ffffff; - border-color: #dddddd; - cursor: not-allowed; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 20px; - line-height: 1.3333333; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-bottom-left-radius: 6px; - border-top-left-radius: 6px; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-bottom-right-radius: 6px; - border-top-right-radius: 6px; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 14px; - line-height: 1.5; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; -} -.pager { - padding-left: 0; - margin: 22px 0; - list-style: none; - text-align: center; -} -.pager li { - display: inline; -} -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #ffffff; - border: 1px solid #dddddd; - border-radius: 15px; -} -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #eceff1; -} -.pager .next > a, -.pager .next > span { - float: right; -} -.pager .previous > a, -.pager .previous > span { - float: left; -} -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #b0bec5; - background-color: #ffffff; - cursor: not-allowed; -} -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #ffffff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; -} -a.label:hover, -a.label:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} -.label:empty { - display: none; -} -.btn .label { - position: relative; - top: -1px; -} -.label-default { - background-color: #b0bec5; -} -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #93a6af; -} -.label-primary { - background-color: #ff5722; -} -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #ee3900; -} -.label-success { - background-color: #27ca3b; -} -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #1f9f2f; -} -.label-info { - background-color: #1fa0a0; -} -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #177575; -} -.label-warning { - background-color: #ff8f31; -} -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #fd7300; -} -.label-danger { - background-color: #af0900; -} -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #7c0600; -} -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 14px; - font-weight: bold; - color: #ffffff; - line-height: 1; - vertical-align: middle; - white-space: nowrap; - text-align: center; - background-color: #b0bec5; - border-radius: 10px; -} -.badge:empty { - display: none; -} -.btn .badge { - position: relative; - top: -1px; -} -.btn-xs .badge, -.btn-group-xs > .btn .badge { - top: 0; - padding: 1px 5px; -} -a.badge:hover, -a.badge:focus { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} -.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #ff5722; - background-color: #ffffff; -} -.list-group-item > .badge { - float: right; -} -.list-group-item > .badge + .badge { - margin-right: 5px; -} -.nav-pills > li > a > .badge { - margin-left: 3px; -} -.jumbotron { - padding-top: 2em; - padding-bottom: 2em; - margin-bottom: 2em; - color: inherit; - background-color: #ff5722; -} -.jumbotron h1, -.jumbotron .h1 { - color: inherit; -} -.jumbotron p { - margin-bottom: 1em; - font-size: 24px; - font-weight: 200; -} -.jumbotron > hr { - border-top-color: #ee3900; -} -.container .jumbotron, -.container-fluid .jumbotron { - border-radius: 6px; - padding-left: 15px; - padding-right: 15px; -} -.jumbotron .container { - max-width: 100%; -} -@media screen and (min-width: 768px) { - .jumbotron { - padding-top: 3.2em; - padding-bottom: 3.2em; - } - .container .jumbotron, - .container-fluid .jumbotron { - padding-left: 4em; - padding-right: 4em; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 72px; - } -} -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 22px; - line-height: 1.42857143; - background-color: #eceff1; - border: 1px solid #dddddd; - border-radius: 4px; - -webkit-transition: border 0.2s ease-in-out; - -o-transition: border 0.2s ease-in-out; - transition: border 0.2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - margin-left: auto; - margin-right: auto; -} -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #ff5722; -} -.thumbnail .caption { - padding: 9px; - color: #37474f; -} -.alert { - padding: 15px; - margin-bottom: 22px; - border: 1px solid transparent; - border-radius: 4px; -} -.alert h4 { - margin-top: 0; - color: inherit; -} -.alert .alert-link { - font-weight: bold; -} -.alert > p, -.alert > ul { - margin-bottom: 0; -} -.alert > p + p { - margin-top: 5px; -} -.alert-dismissable, -.alert-dismissible { - padding-right: 35px; -} -.alert-dismissable .close, -.alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; -} -.alert-success { - background-color: #dff0d8; - border-color: #d6e9c6; - color: #3c763d; -} -.alert-success hr { - border-top-color: #c9e2b3; -} -.alert-success .alert-link { - color: #2b542c; -} -.alert-info { - background-color: #d9edf7; - border-color: #bce8f1; - color: #31708f; -} -.alert-info hr { - border-top-color: #a6e1ec; -} -.alert-info .alert-link { - color: #245269; -} -.alert-warning { - background-color: #fcf8e3; - border-color: #faebcc; - color: #8a6d3b; -} -.alert-warning hr { - border-top-color: #f7e1b5; -} -.alert-warning .alert-link { - color: #66512c; -} -.alert-danger { - background-color: #f2dede; - border-color: #ebccd1; - color: #a94442; -} -.alert-danger hr { - border-top-color: #e4b9c0; -} -.alert-danger .alert-link { - color: #843534; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -.progress { - overflow: hidden; - height: 22px; - margin-bottom: 22px; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); -} -.progress-bar { - float: left; - width: 0%; - height: 100%; - font-size: 14px; - line-height: 22px; - color: #ffffff; - text-align: center; - background-color: #ff5722; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} -.progress-striped .progress-bar, -.progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size: 40px 40px; -} -.progress.active .progress-bar, -.progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-bar-success { - background-color: #27ca3b; -} -.progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-info { - background-color: #1fa0a0; -} -.progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-warning { - background-color: #ff8f31; -} -.progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-bar-danger { - background-color: #af0900; -} -.progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.media { - margin-top: 15px; -} -.media:first-child { - margin-top: 0; -} -.media, -.media-body { - zoom: 1; - overflow: hidden; -} -.media-body { - width: 10000px; -} -.media-object { - display: block; -} -.media-object.img-thumbnail { - max-width: none; -} -.media-right, -.media > .pull-right { - padding-left: 10px; -} -.media-left, -.media > .pull-left { - padding-right: 10px; -} -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; -} -.media-middle { - vertical-align: middle; -} -.media-bottom { - vertical-align: bottom; -} -.media-heading { - margin-top: 0; - margin-bottom: 5px; -} -.media-list { - padding-left: 0; - list-style: none; -} -.list-group { - margin-bottom: 20px; - padding-left: 0; -} -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #ffffff; - border: 1px solid #dddddd; -} -.list-group-item:first-child { - border-top-right-radius: 4px; - border-top-left-radius: 4px; -} -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} -a.list-group-item, -button.list-group-item { - color: #555555; -} -a.list-group-item .list-group-item-heading, -button.list-group-item .list-group-item-heading { - color: #333333; -} -a.list-group-item:hover, -button.list-group-item:hover, -a.list-group-item:focus, -button.list-group-item:focus { - text-decoration: none; - color: #555555; - background-color: #f5f5f5; -} -button.list-group-item { - width: 100%; - text-align: left; -} -.list-group-item.disabled, -.list-group-item.disabled:hover, -.list-group-item.disabled:focus { - background-color: #eceff1; - color: #b0bec5; - cursor: not-allowed; -} -.list-group-item.disabled .list-group-item-heading, -.list-group-item.disabled:hover .list-group-item-heading, -.list-group-item.disabled:focus .list-group-item-heading { - color: inherit; -} -.list-group-item.disabled .list-group-item-text, -.list-group-item.disabled:hover .list-group-item-text, -.list-group-item.disabled:focus .list-group-item-text { - color: #b0bec5; -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - z-index: 2; - color: #ffffff; - background-color: #ff5722; - border-color: #ff5722; -} -.list-group-item.active .list-group-item-heading, -.list-group-item.active:hover .list-group-item-heading, -.list-group-item.active:focus .list-group-item-heading, -.list-group-item.active .list-group-item-heading > small, -.list-group-item.active:hover .list-group-item-heading > small, -.list-group-item.active:focus .list-group-item-heading > small, -.list-group-item.active .list-group-item-heading > .small, -.list-group-item.active:hover .list-group-item-heading > .small, -.list-group-item.active:focus .list-group-item-heading > .small { - color: inherit; -} -.list-group-item.active .list-group-item-text, -.list-group-item.active:hover .list-group-item-text, -.list-group-item.active:focus .list-group-item-text { - color: #fff2ee; -} -.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:hover, -button.list-group-item-success:hover, -a.list-group-item-success:focus, -button.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; -} -a.list-group-item-success.active, -button.list-group-item-success.active, -a.list-group-item-success.active:hover, -button.list-group-item-success.active:hover, -a.list-group-item-success.active:focus, -button.list-group-item-success.active:focus { - 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:hover, -button.list-group-item-info:hover, -a.list-group-item-info:focus, -button.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; -} -a.list-group-item-info.active, -button.list-group-item-info.active, -a.list-group-item-info.active:hover, -button.list-group-item-info.active:hover, -a.list-group-item-info.active:focus, -button.list-group-item-info.active:focus { - 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:hover, -button.list-group-item-warning:hover, -a.list-group-item-warning:focus, -button.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; -} -a.list-group-item-warning.active, -button.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -button.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus, -button.list-group-item-warning.active:focus { - 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:hover, -button.list-group-item-danger:hover, -a.list-group-item-danger:focus, -button.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; -} -a.list-group-item-danger.active, -button.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -button.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus, -button.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; -} -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; -} -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; -} -.panel { - margin-bottom: 22px; - background-color: #ffffff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); -} -.panel-body { - padding: 15px; -} -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.panel-heading > .dropdown .dropdown-toggle { - color: inherit; -} -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 18px; - color: inherit; -} -.panel-title > a, -.panel-title > small, -.panel-title > .small, -.panel-title > small > a, -.panel-title > .small > a { - color: inherit; -} -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #dddddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .list-group, -.panel > .panel-collapse > .list-group { - margin-bottom: 0; -} -.panel > .list-group .list-group-item, -.panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; -} -.panel > .list-group:first-child .list-group-item:first-child, -.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { - border-top: 0; - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.panel > .list-group:last-child .list-group-item:last-child, -.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { - border-bottom: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { - border-top-right-radius: 0; - border-top-left-radius: 0; -} -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; -} -.list-group + .panel-footer { - border-top-width: 0; -} -.panel > .table, -.panel > .table-responsive > .table, -.panel > .panel-collapse > .table { - margin-bottom: 0; -} -.panel > .table caption, -.panel > .table-responsive > .table caption, -.panel > .panel-collapse > .table caption { - padding-left: 15px; - padding-right: 15px; -} -.panel > .table:first-child, -.panel > .table-responsive:first-child > .table:first-child { - border-top-right-radius: 3px; - border-top-left-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { - border-top-left-radius: 3px; - border-top-right-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { - border-top-left-radius: 3px; -} -.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, -.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, -.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, -.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { - border-top-right-radius: 3px; -} -.panel > .table:last-child, -.panel > .table-responsive:last-child > .table:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { - border-bottom-left-radius: 3px; - border-bottom-right-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { - border-bottom-left-radius: 3px; -} -.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, -.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, -.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, -.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { - border-bottom-right-radius: 3px; -} -.panel > .panel-body + .table, -.panel > .panel-body + .table-responsive, -.panel > .table + .panel-body, -.panel > .table-responsive + .panel-body { - border-top: 1px solid #dddddd; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; -} -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; -} -.panel > .table-bordered > thead > tr > th:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, -.panel > .table-bordered > tbody > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, -.panel > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, -.panel > .table-bordered > thead > tr > td:first-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, -.panel > .table-bordered > tbody > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, -.panel > .table-bordered > tfoot > tr > td:first-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { - border-left: 0; -} -.panel > .table-bordered > thead > tr > th:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, -.panel > .table-bordered > tbody > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, -.panel > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, -.panel > .table-bordered > thead > tr > td:last-child, -.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, -.panel > .table-bordered > tbody > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, -.panel > .table-bordered > tfoot > tr > td:last-child, -.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { - border-right: 0; -} -.panel > .table-bordered > thead > tr:first-child > td, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, -.panel > .table-bordered > tbody > tr:first-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, -.panel > .table-bordered > thead > tr:first-child > th, -.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, -.panel > .table-bordered > tbody > tr:first-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { - border-bottom: 0; -} -.panel > .table-bordered > tbody > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, -.panel > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, -.panel > .table-bordered > tbody > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, -.panel > .table-bordered > tfoot > tr:last-child > th, -.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { - border-bottom: 0; -} -.panel > .table-responsive { - border: 0; - margin-bottom: 0; -} -.panel-group { - margin-bottom: 22px; -} -.panel-group .panel { - margin-bottom: 0; - border-radius: 4px; -} -.panel-group .panel + .panel { - margin-top: 5px; -} -.panel-group .panel-heading { - border-bottom: 0; -} -.panel-group .panel-heading + .panel-collapse > .panel-body, -.panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #dddddd; -} -.panel-group .panel-footer { - border-top: 0; -} -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #dddddd; -} -.panel-default { - border-color: #dddddd; -} -.panel-default > .panel-heading { - color: #546e7a; - background-color: #f5f5f5; - border-color: #dddddd; -} -.panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #dddddd; -} -.panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #546e7a; -} -.panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #dddddd; -} -.panel-primary { - border-color: #ff5722; -} -.panel-primary > .panel-heading { - color: #ffffff; - background-color: #ff5722; - border-color: #ff5722; -} -.panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ff5722; -} -.panel-primary > .panel-heading .badge { - color: #ff5722; - background-color: #ffffff; -} -.panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ff5722; -} -.panel-success { - border-color: #d6e9c6; -} -.panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; -} -.panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #d6e9c6; -} -.panel-success > .panel-heading .badge { - color: #dff0d8; - background-color: #3c763d; -} -.panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #d6e9c6; -} -.panel-info { - border-color: #bce8f1; -} -.panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; -} -.panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #bce8f1; -} -.panel-info > .panel-heading .badge { - color: #d9edf7; - background-color: #31708f; -} -.panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #bce8f1; -} -.panel-warning { - border-color: #faebcc; -} -.panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #faebcc; -} -.panel-warning > .panel-heading .badge { - color: #fcf8e3; - background-color: #8a6d3b; -} -.panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #faebcc; -} -.panel-danger { - border-color: #ebccd1; -} -.panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; -} -.panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ebccd1; -} -.panel-danger > .panel-heading .badge { - color: #f2dede; - background-color: #a94442; -} -.panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ebccd1; -} -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; -} -.embed-responsive .embed-responsive-item, -.embed-responsive iframe, -.embed-responsive embed, -.embed-responsive object, -.embed-responsive video { - position: absolute; - top: 0; - left: 0; - bottom: 0; - height: 100%; - width: 100%; - border: 0; -} -.embed-responsive-16by9 { - padding-bottom: 56.25%; -} -.embed-responsive-4by3 { - padding-bottom: 75%; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} -.well-lg { - padding: 24px; - border-radius: 6px; -} -.well-sm { - padding: 9px; - border-radius: 3px; -} -.close { - float: right; - font-size: 24px; - font-weight: bold; - line-height: 1; - color: #000000; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); -} -.close:hover, -.close:focus { - color: #000000; - text-decoration: none; - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); -} -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} -.modal-open { - overflow: hidden; -} -.modal { - display: none; - overflow: hidden; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1050; - -webkit-overflow-scrolling: touch; - outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); - -webkit-transition: -webkit-transform 0.3s ease-out; - -moz-transition: -moz-transform 0.3s ease-out; - -o-transition: -o-transform 0.3s ease-out; - transition: transform 0.3s ease-out; -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - 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; - background-color: #ffffff; - border: 1px solid #999999; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); - background-clip: padding-box; - outline: 0; -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000000; -} -.modal-backdrop.fade { - opacity: 0; - filter: alpha(opacity=0); -} -.modal-backdrop.in { - opacity: 0.5; - filter: alpha(opacity=50); -} -.modal-header { - padding: 15px; - border-bottom: 1px solid #e5e5e5; -} -.modal-header .close { - margin-top: -2px; -} -.modal-title { - margin: 0; - line-height: 1.42857143; -} -.modal-body { - position: relative; - padding: 15px; -} -.modal-footer { - padding: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; -} -.modal-footer .btn + .btn { - margin-left: 5px; - margin-bottom: 0; -} -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} -.modal-footer .btn-block + .btn-block { - margin-left: 0; -} -.modal-scrollbar-measure { - position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; -} -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; - } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); - } - .modal-sm { - width: 300px; - } -} -@media (min-width: 992px) { - .modal-lg { - width: 900px; - } -} -.tooltip { - position: absolute; - z-index: 1070; - display: block; - font-family: 'Fira Sans', sans-serif; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.42857143; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 14px; - opacity: 0; - filter: alpha(opacity=0); -} -.tooltip.in { - opacity: 0.9; - filter: alpha(opacity=90); -} -.tooltip.top { - margin-top: -3px; - padding: 5px 0; -} -.tooltip.right { - margin-left: 3px; - padding: 0 5px; -} -.tooltip.bottom { - margin-top: 3px; - padding: 5px 0; -} -.tooltip.left { - margin-left: -3px; - padding: 0 5px; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #ffffff; - text-align: center; - background-color: #000000; - border-radius: 4px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-width: 5px 5px 0; - border-top-color: #000000; -} -.tooltip.top-left .tooltip-arrow { - bottom: 0; - right: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000000; -} -.tooltip.top-right .tooltip-arrow { - bottom: 0; - left: 5px; - margin-bottom: -5px; - border-width: 5px 5px 0; - border-top-color: #000000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-width: 5px 5px 5px 0; - border-right-color: #000000; -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-width: 5px 0 5px 5px; - border-left-color: #000000; -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} -.tooltip.bottom-left .tooltip-arrow { - top: 0; - right: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} -.tooltip.bottom-right .tooltip-arrow { - top: 0; - left: 5px; - margin-top: -5px; - border-width: 0 5px 5px; - border-bottom-color: #000000; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: 'Fira Sans', sans-serif; - font-style: normal; - font-weight: normal; - letter-spacing: normal; - line-break: auto; - line-height: 1.42857143; - text-align: left; - text-align: start; - text-decoration: none; - text-shadow: none; - text-transform: none; - white-space: normal; - word-break: normal; - word-spacing: normal; - word-wrap: normal; - font-size: 16px; - background-color: #ffffff; - background-clip: padding-box; - border: 1px solid #cccccc; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); -} -.popover.top { - margin-top: -10px; -} -.popover.right { - margin-left: 10px; -} -.popover.bottom { - margin-top: 10px; -} -.popover.left { - margin-left: -10px; -} -.popover-title { - margin: 0; - padding: 8px 14px; - font-size: 16px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; -} -.popover-content { - padding: 9px 14px; -} -.popover > .arrow, -.popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.popover > .arrow { - border-width: 11px; -} -.popover > .arrow:after { - border-width: 10px; - content: ""; -} -.popover.top > .arrow { - left: 50%; - margin-left: -11px; - border-bottom-width: 0; - border-top-color: #999999; - border-top-color: rgba(0, 0, 0, 0.25); - bottom: -11px; -} -.popover.top > .arrow:after { - content: " "; - bottom: 1px; - margin-left: -10px; - border-bottom-width: 0; - border-top-color: #ffffff; -} -.popover.right > .arrow { - top: 50%; - left: -11px; - margin-top: -11px; - border-left-width: 0; - border-right-color: #999999; - border-right-color: rgba(0, 0, 0, 0.25); -} -.popover.right > .arrow:after { - content: " "; - left: 1px; - bottom: -10px; - border-left-width: 0; - border-right-color: #ffffff; -} -.popover.bottom > .arrow { - left: 50%; - margin-left: -11px; - border-top-width: 0; - border-bottom-color: #999999; - border-bottom-color: rgba(0, 0, 0, 0.25); - top: -11px; -} -.popover.bottom > .arrow:after { - content: " "; - top: 1px; - margin-left: -10px; - border-top-width: 0; - border-bottom-color: #ffffff; -} -.popover.left > .arrow { - top: 50%; - right: -11px; - margin-top: -11px; - border-right-width: 0; - border-left-color: #999999; - border-left-color: rgba(0, 0, 0, 0.25); -} -.popover.left > .arrow:after { - content: " "; - right: 1px; - border-right-width: 0; - border-left-color: #ffffff; - bottom: -10px; -} -.carousel { - position: relative; -} -.carousel-inner { - position: relative; - overflow: hidden; - width: 100%; -} -.carousel-inner > .item { - display: none; - position: relative; - -webkit-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} -.carousel-inner > .item > img, -.carousel-inner > .item > a > img { - line-height: 1; -} -@media all and (transform-3d), (-webkit-transform-3d) { - .carousel-inner > .item { - -webkit-transition: -webkit-transform 0.6s ease-in-out; - -moz-transition: -moz-transform 0.6s ease-in-out; - -o-transition: -o-transform 0.6s ease-in-out; - transition: transform 0.6s ease-in-out; - -webkit-backface-visibility: hidden; - -moz-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000px; - -moz-perspective: 1000px; - perspective: 1000px; - } - .carousel-inner > .item.next, - .carousel-inner > .item.active.right { - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - left: 0; - } - .carousel-inner > .item.prev, - .carousel-inner > .item.active.left { - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - left: 0; - } - .carousel-inner > .item.next.left, - .carousel-inner > .item.prev.right, - .carousel-inner > .item.active { - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - left: 0; - } -} -.carousel-inner > .active, -.carousel-inner > .next, -.carousel-inner > .prev { - display: block; -} -.carousel-inner > .active { - left: 0; -} -.carousel-inner > .next, -.carousel-inner > .prev { - position: absolute; - top: 0; - width: 100%; -} -.carousel-inner > .next { - left: 100%; -} -.carousel-inner > .prev { - left: -100%; -} -.carousel-inner > .next.left, -.carousel-inner > .prev.right { - left: 0; -} -.carousel-inner > .active.left { - left: -100%; -} -.carousel-inner > .active.right { - left: 100%; -} -.carousel-control { - position: absolute; - top: 0; - left: 0; - bottom: 0; - width: 15%; - opacity: 0.5; - filter: alpha(opacity=50); - font-size: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); - background-color: rgba(0, 0, 0, 0); -} -.carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); -} -.carousel-control.right { - left: auto; - right: 0; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); -} -.carousel-control:hover, -.carousel-control:focus { - outline: 0; - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} -.carousel-control .icon-prev, -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-left, -.carousel-control .glyphicon-chevron-right { - position: absolute; - top: 50%; - margin-top: -10px; - z-index: 5; - display: inline-block; -} -.carousel-control .icon-prev, -.carousel-control .glyphicon-chevron-left { - left: 50%; - margin-left: -10px; -} -.carousel-control .icon-next, -.carousel-control .glyphicon-chevron-right { - right: 50%; - margin-right: -10px; -} -.carousel-control .icon-prev, -.carousel-control .icon-next { - width: 20px; - height: 20px; - line-height: 1; - font-family: serif; -} -.carousel-control .icon-prev:before { - content: '\2039'; -} -.carousel-control .icon-next:before { - content: '\203a'; -} -.carousel-indicators { - position: absolute; - bottom: 10px; - left: 50%; - z-index: 15; - width: 60%; - margin-left: -30%; - padding-left: 0; - list-style: none; - text-align: center; -} -.carousel-indicators li { - display: inline-block; - width: 10px; - height: 10px; - margin: 1px; - text-indent: -999px; - border: 1px solid #ffffff; - border-radius: 10px; - cursor: pointer; - background-color: #000 \9; - background-color: rgba(0, 0, 0, 0); -} -.carousel-indicators .active { - margin: 0; - width: 12px; - height: 12px; - background-color: #ffffff; -} -.carousel-caption { - position: absolute; - left: 15%; - right: 15%; - bottom: 20px; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #ffffff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); -} -.carousel-caption .btn { - text-shadow: none; -} -@media screen and (min-width: 768px) { - .carousel-control .glyphicon-chevron-left, - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-prev, - .carousel-control .icon-next { - width: 30px; - height: 30px; - margin-top: -10px; - font-size: 30px; - } - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -10px; - } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -10px; - } - .carousel-caption { - left: 20%; - right: 20%; - padding-bottom: 30px; - } - .carousel-indicators { - bottom: 20px; - } -} -.clearfix:before, -.clearfix:after, -.dl-horizontal dd:before, -.dl-horizontal dd:after, -.container:before, -.container:after, -.container-fluid:before, -.container-fluid:after, -.row:before, -.row:after, -.form-horizontal .form-group:before, -.form-horizontal .form-group:after, -.btn-toolbar:before, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:before, -.btn-group-vertical > .btn-group:after, -.nav:before, -.nav:after, -.navbar:before, -.navbar:after, -.navbar-header:before, -.navbar-header:after, -.navbar-collapse:before, -.navbar-collapse:after, -.pager:before, -.pager:after, -.panel-body:before, -.panel-body:after, -.modal-header:before, -.modal-header:after, -.modal-footer:before, -.modal-footer:after { - content: " "; - display: table; -} -.clearfix:after, -.dl-horizontal dd:after, -.container:after, -.container-fluid:after, -.row:after, -.form-horizontal .form-group:after, -.btn-toolbar:after, -.btn-group-vertical > .btn-group:after, -.nav:after, -.navbar:after, -.navbar-header:after, -.navbar-collapse:after, -.pager:after, -.panel-body:after, -.modal-header:after, -.modal-footer:after { - clear: both; -} -.center-block { - display: block; - margin-left: auto; - margin-right: auto; -} -.pull-right { - float: right !important; -} -.pull-left { - float: left !important; -} -.hide { - display: none !important; -} -.show { - display: block !important; -} -.invisible { - visibility: hidden; -} -.text-hide { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} -.hidden { - display: none !important; -} -.affix { - position: fixed; -} -@-ms-viewport { - width: device-width; -} -.visible-xs, -.visible-sm, -.visible-md, -.visible-lg { - display: none !important; -} -.visible-xs-block, -.visible-xs-inline, -.visible-xs-inline-block, -.visible-sm-block, -.visible-sm-inline, -.visible-sm-inline-block, -.visible-md-block, -.visible-md-inline, -.visible-md-inline-block, -.visible-lg-block, -.visible-lg-inline, -.visible-lg-inline-block { - display: none !important; -} -@media (max-width: 767px) { - .visible-xs { - display: block !important; - } - table.visible-xs { - display: table !important; - } - tr.visible-xs { - display: table-row !important; - } - th.visible-xs, - td.visible-xs { - display: table-cell !important; - } -} -@media (max-width: 767px) { - .visible-xs-block { - display: block !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline { - display: inline !important; - } -} -@media (max-width: 767px) { - .visible-xs-inline-block { - display: inline-block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; - } - table.visible-sm { - display: table !important; - } - tr.visible-sm { - display: table-row !important; - } - th.visible-sm, - td.visible-sm { - display: table-cell !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { - display: inline !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { - display: inline-block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; - } - table.visible-md { - display: table !important; - } - tr.visible-md { - display: table-row !important; - } - th.visible-md, - td.visible-md { - display: table-cell !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { - display: inline !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { - display: inline-block !important; - } -} -@media (min-width: 1200px) { - .visible-lg { - display: block !important; - } - table.visible-lg { - display: table !important; - } - tr.visible-lg { - display: table-row !important; - } - th.visible-lg, - td.visible-lg { - display: table-cell !important; - } -} -@media (min-width: 1200px) { - .visible-lg-block { - display: block !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline { - display: inline !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline-block { - display: inline-block !important; - } -} -@media (max-width: 767px) { - .hidden-xs { - display: none !important; - } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; - } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; - } -} -@media (min-width: 1200px) { - .hidden-lg { - display: none !important; - } -} -.visible-print { - display: none !important; -} -@media print { - .visible-print { - display: block !important; - } - table.visible-print { - display: table !important; - } - tr.visible-print { - display: table-row !important; - } - th.visible-print, - td.visible-print { - display: table-cell !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; - } -} -/*! Generated by Font Squirrel (https://www.fontsquirrel.com) on June 1, 2017 */ -@font-face { - font-family: 'Fira Sans'; - src: url('../fonts/firasans-light-webfont.woff2') format('woff2'), url('../fonts/firasans-light-webfont.woff') format('woff'), url('../fonts/firasans-light.otf') format("opentype"); - font-weight: 200; - font-style: normal; -} -@font-face { - font-family: 'Fira Sans'; - src: url('../fonts/firasans-book-webfont.woff2') format('woff2'), url('../fonts/firasans-book-webfont.woff') format('woff'), url('../fonts/firasans-book.otf') format("opentype"); - font-weight: 400; - font-style: normal; -} -@font-face { - font-family: 'Fira Sans'; - src: url('../fonts/firasans-bold-webfont.woff2') format('woff2'), url('../fonts/firasans-bold-webfont.woff') format('woff'), url('../fonts/firasans-bold.otf') format("opentype"); - font-weight: 700; - font-style: normal; -} -/* Basics ------------------------ */ -html { - -webkit-font-smoothing: antialiased !important; -} -body { - background: #37474f; - font-family: 'Fira Sans', sans-serif; - font-size: 16px; - padding-top: 60px; -} -a { - color: #ff5722; -} -h1, -h2, -h3, -h4, -h5, -h6 { - font-weight: 700; -} -select { - background: white; - border: 1px solid #b0bec5; - height: 30px; - line-height: 30px; -} -code { - background-color: #eceff1; - color: #1fa0a0; - white-space: pre-wrap; - /* css-3 */ - white-space: -moz-pre-wrap; - /* Mozilla, since 1999 */ - white-space: -pre-wrap; - /* Opera 4-6 */ - white-space: -o-pre-wrap; - /* Opera 7 */ - word-wrap: break-word; - /* Internet Explorer 5.5+ */ -} -form label { - margin-right: 2.5em; -} -form input { - /*border: 1px solid @gray;*/ - padding: 5px; -} -/* ------ Nav ------------------------------- */ -.navbar { - margin-bottom: 0; -} -.navbar .toolbar { - margin-left: 1em; -} -.navbar-default { - background: white; - border: 0; - box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); -} -.navbar-default .navbar-nav > li > a { - color: #546e7a; - font-weight: 400; - padding-top: 25px; - padding-bottom: 25px; -} -.navbar-default .navbar-nav > li > a:hover { - color: #ff5722; -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:focus, -.navbar-default .navbar-nav > .open > a:hover { - background-color: #ff5722; - color: white; -} -.navbar-nav .dropdown-menu { - background-color: #ff5722; - border-top: 1px solid #ff5722; -} -.navbar-nav .dropdown-menu a { - color: white; -} -.navbar-nav .dropdown-menu li a:hover { - background-color: #ee3900; - color: white; -} -.navbar-nav .dropdown-menu .divider { - background-color: #ee3900; -} -.navbar-nav .search { - left: 15px; - position: relative; - color: #444; - top: 20px; - margin-right: 25px; -} -.navbar-nav .search .fa-search { - position: absolute; - top: 8px; - left: 10px; -} -.navbar-nav .search input { - background: #eceff1; - width: 120px; - height: 32px; - border: 1px solid #eceff1; - border-radius: 5px; - outline-width: 0; - text-indent: 32px; - -webkit-transition: width 0.2s; - transition: width 0.2s; -} -.navbar-nav .search input:focus { - width: 240px; -} -.navbar-nav .avatar img { - border-radius: 50%; - margin-bottom: -15px; - margin-right: 10px; - margin-top: -15px; - height: 42px; - width: 42px; -} -.navbar-nav .fa-angle-down { - margin-left: 10px; -} -.navbar-brand { - background: url("../img/logo.png") 0 12px no-repeat; - background-size: 100%; - margin-right: 2em; - text-indent: -9999px; - height: 65px; - width: 200px; -} -.navbar-collapse { - max-height: none; -} -.navbar-header i { - color: white; - font-size: 2em; -} -.navbar-header button { - border: 0; - margin-top: 0.75em; -} -/* ------ Layout ------------------------------- */ -header { - background: #ff5722; - color: white; - margin-bottom: 2em; - padding-top: 1em; - padding-bottom: 1em; -} -header .btn-primary { - background: #ee3900; - border: 1px solid #ee3900; -} -header .btn-primary:hover { - background: #d43300; -} -header .btn-icon { - background: #d43300; - border: 1px solid #d43300; -} -header .btn-icon:hover { - background: #bb2d00; -} -#wrap { - background: #fbfbfc; - padding-bottom: 2.5em; - width: 100%; -} -/* ------ Article ------------------------------- */ -article.tab-pane { - padding: 20px 0; -} -.no-style-list { - list-style-type: none; - margin-top: 20px; -} -.dl-horizontal dt { - text-overflow: clip; - white-space: normal; - overflow: hidden; -} -.page-title { - display: block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -section#subheader { - background: white; - /*box-shadow: 1px 1px 2px rgba(0,0,0,0.1);*/ - border-bottom: 1px solid #eceff1; - margin-bottom: 1em; - margin-top: -2em; - padding-bottom: 0.4em; - padding-top: 0; -} -section#subheader p { - color: #b0bec5; - display: inline-block; -} -section#subheader .btn-group { - margin-top: -1em; -} -/* ------ Footer ------------------------------- */ -section#contact { - background: #0e4b4b; - color: white; - padding-bottom: 3em; - padding-top: 1em; -} -section#contact h3 { - font-weight: 400; -} -footer { - background: #37474f; - color: white; - padding-bottom: 3em; - padding-top: 2em; -} -footer a { - color: #ff5722; -} -footer img { - margin-right: -10px; - width: 50%; -} -footer select { - color: #37474f; -} -/* ------ Home ------------------------------- */ -.home #wrap { - margin-top: 0; - padding-bottom: 0; -} -.home .jumbotron { - background: #ff5722; - /*background: linear-gradient( rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2) ), url('../img/jumbotron.jpg') no-repeat;*/ - /*background: @brand-primary url('../img/haiti.png') no-repeat; - background-position: right center; - background-size: 50%; */ - color: white; - margin-bottom: 0; - padding: 5em 0; - text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.4); -} -.home .jumbotron a { - color: #37474f; -} -.home .jumbotron p { - font-weight: 400; - margin-bottom: 0; -} -.home .jumbotron .btn-default { - background: rgba(0, 0, 0, 0.4); - border: 2px solid white; - color: white; - font-weight: 600; - margin-top: 1em; - min-width: 320px; -} -.home .jumbotron .btn-default:hover { - background: rgba(128, 0, 0, 0.4); -} -.home .big-search { - background: #546e7a; - color: white; - padding-bottom: 3em; - padding-top: 1em; -} -.home .big-search h1, -.home .big-search p { - text-align: center; -} -.home .big-search a { - color: #ff5722; -} -.home .big-search .search { - left: 0; - position: relative; - color: #444; - top: 20px; - padding-bottom: 2em; - margin: auto; - width: 50%; -} -.home .big-search .search input { - width: 100%; - height: 56px; - border: 1px solid #546e7a; - border-radius: 5px; - outline-width: 0; - font-size: 1.5em; -} -.home .big-search .search input { - text-indent: 64px; -} -.home .big-search .search .fa-search { - position: absolute; - top: 10px; - left: 15px; -} -.home .big-search .btn-default { - background: transparent; - border: none; -} -.home .big-search .btn-default:hover { - text-decoration: underline; -} -.home #datasets { - background: #ff5722; - color: white; - padding: 1em 0; -} -.home #datasets p { - font-size: 14px; -} -.home #datasets h4 { - text-transform: uppercase; - font-size: 14px; -} -.home #datasets a { - color: white; -} -.home #datasets a:hover { - text-decoration: none; -} -.home #datasets a .category { - background: #ff5722; - border-radius: 4px; - margin: 0 -15px; - padding: 2em 0; -} -.home #datasets a .category:hover { - background: #d43300; -} -.home #datasets a span { - font-size: 4em; -} -.home #hazards { - background: #37474f; - color: white; - padding: 2em 0 3em; - text-align: center; -} -.home #hazards h2 { - margin-bottom: 1em; -} -.home #hazards a { - color: white; -} -.home #hazards a:hover { - background: #ee3900; - text-decoration: none; -} -.home #hazards span { - font-size: 4em; -} -.home #imagery { - background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.2)), url('../img/jumbotron.jpg') no-repeat; - background-position: center; - background-size: cover; - color: white; - margin-bottom: 0; - padding: 5em 0; - text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.4); -} -.home #imagery h3 { - padding-top: 2em; -} -.home #imagery a { - color: #37474f; -} -.home #imagery p { - font-weight: 400; - margin-bottom: 0; -} -.home #showcase { - background: #eceff1; - padding-bottom: 2em; - padding-top: 1em; - text-align: center; -} -.home #showcase .col-md-3 { - padding: 2em 1em; -} -.home #showcase .col-md-3 img { - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.125); - height: 180px; - width: 100%; -} -.home #showcase p { - font-size: 18px; -} -.home #osm { - background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 50%, #ff5722 50%, #ff5722 100%), url("../img/osm-02.jpg") no-repeat; - /*background-size: cover;*/ - min-height: 320px; - padding: 0; -} -.home #osm .col-md-8 { - background: #ff5722; - color: white; - min-height: 320px; - padding: 1em 2em; -} -.home #osm .col-md-8 .btn-primary { - border-color: white; - width: 160px; -} -.home #osm p { - font-size: 18px; -} -/* autocomplete -------------------------*/ -.yourlabs-autocomplete { - top: 100%; -} -.input-group .yourlabs-autocomplete { - top: 30px !important; -} -/* Items ------------------------ */ -.actions .fa, -.filter .fa { - margin-right: 8px; -} -.items-list { - padding: 10px 0; -} -.items-list .btn { - margin-right: 5px; - margin-top: 10px; -} -.items-list .item-info { - border-top: 1px solid #eceff1; -} -.items-list h4 { - font-weight: 400; - display: block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.items-list h4 a { - color: #37474f; -} -.items-list h4 a:hover { - color: #af0900; - text-decoration: none; -} -.items-list .owner { - color: #37474f; - font-size: 14px; -} -.items-list .owner a { - color: #37474f; -} -.items-list .owner a:hover { - color: #af0900; - text-decoration: none; -} -.items-list .thumb img { - border: 1px solid #eceff1; - width: 100%; -} -.items-list .abstract { - color: #b0bec5; - font-weight: 300; - min-height: 80px; -} -.items-list .actions { - color: #b0bec5; - font-weight: 300; -} -.items-list .actions i { - margin-right: 0.75em; -} -.items-list .actions a { - color: #b0bec5; - margin-right: 0.5em; -} -.items-list .actions a:hover { - color: #78909c; - text-decoration: none; -} -/* Layers ------------------------ */ -.item-container { - padding: 1em; -} -.profile-avatar { - background: white; - border: 1px solid #b0bec5; - padding: 0; -} -.profile-avatar h5 a { - color: #37474f; - display: block; - margin-bottom: -0.5em; - margin-top: 1em; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.profile-avatar h5 a:hover { - color: #af0900; - text-decoration: none; -} -.profile-avatar h5 a i { - margin-left: 0.75em; -} -.profile-avatar h5 a i:hover { - color: #af0900; - text-decoration: none; -} -.profile-avatar .list-inline { - margin: 0.5em 0; -} -.item-thumb { - padding-left: 0; - padding-right: 0; -} -.item-thumb img { - width: 100%; -} -.item-details { - background: white; - color: #37474f; -} -.item-details .item-meta { - margin-top: 1em; -} -.item-details .item-meta .item-category { - font-size: 12px; - text-transform: uppercase; -} -.item-details .btn-sm { - margin-right: -17px; - margin-top: -1px; - padding: 0.5em 1em; -} -.item-details .item-items { - border-top: 1px solid #eceff1; -} -.item-details .item-items ul { - margin: 0 0 0 -15px; - padding: 0.5em; -} -.item-details .item-items ul i { - margin-right: 0.5em; -} -.detail-page-actions { - margin-top: 20px; -} -.detail-page-actions i { - padding-right: 3px; -} -.layer-actions { - margin-top: 20px; -} -.layer-actions i { - padding-right: 3px; -} -.edit-modal { - text-align: center; -} -.arcgis-legend > li { - text-align: right; -} -.arcgis-legend > li > img { - padding-right: 25px; -} -.grid-spacer { - margin-top: 30px; -} -/* ------ OSGeo Importer ------------------------------- */ -body.importer h4 { - margin-bottom: 1.5em; -} -body.importer .well { - background: white; - border: 1px solid #b0bec5; - padding: 1.25em 1.5em 0.5em 1em; -} -body.importer .well p { - line-height: 0.5em; -} -body.importer .well hr { - margin: 0.5em 0; -} -body.importer .well .layer-in-upload { - background-color: white; - padding: 0.5em; -} -body.importer .well .table-condensed { - font-size: 0.75em; -} -/* Control items ------------------------ */ -.controls { - width: 320px; -} -.controls > div, -.controls > input, -.controls > select, -.controls > textarea { - width: 320px; -} -/* Maps ------------------------ */ -.map-actions { - margin-top: 20px; -} -.map-actions i { - padding-right: 3px; -} -/* Documents ------------------------ */ -.documents-actions { - margin-top: 20px; -} -.documents-actions i { - padding-right: 3px; -} -/* People ------------------------ */ -.profile-container { - padding: 1em; -} -.profile-avatar { - background: white; - border: 1px solid #eceff1; - padding: 0; -} -.profile-avatar h5 a { - color: #37474f; - display: block; - margin-bottom: -0.5em; - margin-top: 1em; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.profile-avatar h5 a:hover { - color: #af0900; - text-decoration: none; -} -.profile-avatar h5 a i { - margin-left: 0.75em; -} -.profile-avatar h5 a i:hover { - color: #af0900; - text-decoration: none; -} -.profile-avatar .profile-items { - border-top: 1px solid #eceff1; - color: #78909c; -} -.profile-avatar .profile-items i { - margin-left: 0; - margin-right: 0.125em; -} -.profile-avatar .profile-items i a:hover { - color: #af0900; - text-decoration: none; -} -.profile-avatar .profile-items .list-inline { - margin: 0.5em 0; -} -.profile-avatar li a { - color: #78909c; - margin-right: 0.5em; -} -.profile-avatar li a:hover { - color: #af0900; - text-decoration: none; -} -.profile-avatar img { - margin: 0; - width: 100%; -} -.profile-image { - padding-left: 0; - padding-right: 0; -} -.profile-image img { - width: 100%; -} -.profile-details { - background: white; - color: #37474f; -} -.profile-details .group-logo { - margin: 0.5em; - padding: 0; -} -.profile-details .group-logo img { - width: 60px; -} -/* ------ Search ------------------------------- */ -nav.filter h4 { - background: #546e7a; - font-size: 14px; - font-weight: 600; - padding: 10px 0; - text-transform: uppercase; - border-radius: 3px; -} -nav.filter h4 a { - color: white; -} -nav.filter h4 a.toggle { - text-decoration: none; -} -nav.filter h4 i { - margin-left: 8px; -} -nav.filter .active { - color: #1fa0a0; -} -nav.filter .active .badge { - background: #1fa0a0; -} -nav.filter .closed { - display: none; -} -nav.filter li a { - border-bottom: 1px solid #eceff1; - cursor: pointer; - padding: 5px 10px; -} -.selections h5 { - font-weight: 400; -} -.selections .thumb { - float: left; -} -#sort { - cursor: pointer; -} -#sort a { - color: #b0bec5; -} -#sort .selected { - font-weight: 700; -} -/* Groups ------------------------ */ -.group-container { - padding: 1em; -} -.group-avatar { - border: 1px solid #eceff1; - padding: 0; -} -.group-avatar h5 a { - color: #37474f; - display: block; - margin-bottom: -0.5em; - margin-top: 1em; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.group-avatar h5 a:hover { - color: #af0900; - text-decoration: none; -} -.group-avatar h5 a i { - margin-left: 0.75em; -} -.group-avatar h5 a i:hover { - color: #af0900; - text-decoration: none; -} -.group-items { - border-top: 1px solid #eceff1; - color: #78909c; -} -.group-items i { - margin-left: 0; - margin-right: 0.125em; -} -.group-items i a:hover { - color: #af0900; - text-decoration: none; -} -.group-items .list-inline { - margin: 0.5em 0; -} -.group-image { - height: 120px; - overflow: hidden; -} -.group-container .group-logo { - padding: 1em 0; - width: 100%; -} -.group-details .group-logo img { - width: 100%; -} -/* Upload Layers ------------------------ */ -#drop-zone { - background: #eceff1; - margin-bottom: 10px; - padding: 5px; - border: 2px dashed #b0bec5; -} -#drop-zone h3 { - color: #b0bec5; - margin: 20px 0; - text-align: center; -} -#drop-zone h3 i { - font-size: 3em; -} -#clear-button, -#upload-button { - margin-top: 20px; -} -/* Upload Documents ------------------------ */ -#upload_form input[type="text"] { - display: block; - margin: 0; - width: 480px; - appearance: none; - box-shadow: none; - border-radius: none; - transition: box-shadow 0.3s, border 0.3s; -} -#upload_form input[type="text"]:focus { - border: solid 1px #707070; - box-shadow: 0 0 5px 1px #969696; - outline: none; -} -#upload_form #id_doc_file { - padding: 0.5em; - width: 480px; -} -#upload_form #id_doc_url { - display: block; - width: 480px; -} -#upload_form #s2id_resource { - display: block; - width: 480px; -} -@media (max-width: 991px) { - #upload_form input[type="text"] { - width: 360px; - } - #upload_form #id_doc_file, - #upload_form #id_doc_url, - #upload_form #s2id_resource { - width: 360px; - } -} -/* Upload Time ------------------------ */ -/*#timeForm label { - display: inline; - } -.formSection { - margin-bottom: 1em; - } - .right input, .right select { - } - .left input { - line-height: 2em; - } - form input, form select { - font-size: small; - } - form label { - line-height: 2em; - } - .clearfix:after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; - } - .clearfix { - display: inline-block; - } - * html .clearfix { - height: 1%; - } /* Hides from IE-mac \*/ -/*.clearfix { - display: block; - } - #format_input input { - width:8em; - } - #timehelp p { - color: black !important; - } - #timehelp code { - background: @gray-light; - }*/ -/* Etc ------------------------ */ -.rotate-45 { - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); - /*filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);*/ -} -.select2-container-multi .select2-choices .select2-search-field input { - font-family: 'Fira Sans', sans-serif; - height: auto; -} -.datepicker { - border-radius: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; -} -.filter input.datepicker { - width: 100%; -} -#composerCart .list-group i { - margin-right: 0; -} -.selections { - margin-top: 1em; -} -.form-horizontal .form-group { - margin-left: 0; - margin-right: 0; -} -.comment { - padding: 1em 0 0.5em; -} -.comment .avatar img { - border-radius: 50%; -} -.comment small { - font-weight: bold; - color: #777; - margin-left: 10px; -} -.comment button, -.comment p { - margin-left: 58px; - margin-top: -0.5em; -} -.list-group-item .avatar img { - border-radius: 50%; - margin-right: 0.5em; -} -/* Activity - ----------------------------- */ -.no-style-list { - list-style-type: none; - margin-top: 20px; -} -.activity-item { - border-bottom: 1px solid #b0bec5; - border-left: 1px solid #b0bec5; - color: #b0bec5; - margin-top: -10px; - padding: 20px 18px; -} -.activity-item .comment { - content: "\f086"; -} -.activity-item .comment:before { - content: "\f086"; -} -.activity-item .delete { - content: "\f014"; -} -.activity-item .delete:before { - content: "\f014"; -} -.activity-item .edit { - content: "\f14b"; -} -.activity-item .edit:before { - content: "\f14b"; -} -.activity-item .layer { - content: "\f096"; - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); - /*filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);*/ -} -.activity-item .layer:before { - content: "\f096"; -} -.activity-item .map { - content: "\f041"; -} -.activity-item .map:before { - content: "\f041"; -} -.activity-item .upload { - content: "\f093"; -} -.activity-item .upload:before { - content: "\f093"; -} -.icon-activity { - background: #b0bec5; - -moz-border-radius: 20px; - -webkit-border-radius: 20px; - border-radius: 20px; - border: 2px solid white; - color: white; - float: left; - font-family: FontAwesome; - font-weight: normal; - font-size: 1.30em; - font-style: normal; - height: 35px; - line-height: 1.25em; - margin: 0 10px 10px -35px; - padding: 4px; - text-align: center; - text-decoration: inherit; - width: 35px; -} -.thumb-activity { - clear: both; - height: 60px; -} -.thumb-activity img { - border: 1px solid #78909c; - float: left; - margin-right: 5px; - width: 60px; -} -.activity { - content: "\f045"; -} -.activity:before { - content: "\f045"; -} -.activity-timestamp { - margin-top: -10px; -} -#permission_form .select2-container { - width: 250px; -} -/* Sign In Modal ------------------------ */ -.form-signin { - max-width: 330px; - padding: 15px; - margin: 0 auto; -} -.form-signin .checkbox, -.form-signin .form-signin-heading { - margin-bottom: 10px; -} -.form-signin .checkbox { - font-weight: normal; -} -.form-signin .form-control { - position: relative; - height: auto; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 10px; - font-size: 1em; -} -.form-signin .form-control:focus { - z-index: 2; -} -.form-signin input[type="username"] { - margin-bottom: -1px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; -} -.form-signin input[type="password"] { - margin-bottom: 10px; - border-top-left-radius: 0; - border-top-right-radius: 0; -} -.modal-body .list-unstyled a { - color: #37474f; - font-size: 1.14285714em; - line-height: 2em; -} -.modal-body .list-unstyled a i { - margin-right: 8px; -} -.modal-body .list-unstyled a:hover { - color: #1fa0a0; - text-decoration: none; -} -.modal-divider { - padding-top: 1px; - margin: 5px 1px 6px; - border-bottom: 1px solid #e1e8ed; -} -.list-group i { - margin-right: 8px; -} -/* Media Queries - ----------------------------- */ -@media (max-width: 991px) { - .navbar-header { - float: none; - } - .navbar-toggle { - display: block; - } - .navbar-collapse { - border-top: 1px solid transparent; - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - } - .navbar-collapse.collapse { - display: none!important; - } - .navbar-nav { - float: none!important; - margin: 7.5px -15px; - } - .navbar-nav > li { - float: none; - } - .navbar-nav > li > a { - padding-top: 10px; - padding-bottom: 10px; - } - /* since 3.1.0 */ - .navbar-collapse.collapse.in { - display: block!important; - } - .collapsing { - overflow: hidden!important; - } - .home .navbar-inverse { - background-color: #546e7a; - } - .navbar-inverse .navbar-nav > li > a { - padding-bottom: 0.75em; - padding-top: 0.75em; - } - .navbar-inverse .navbar-nav .search { - padding-bottom: 0.75em; - top: 0; - } - .navbar-inverse .navbar-nav .search input { - width: 100%; - } -} -#member_form_container .select2-container { - padding: 0; -} -.table-user-profile-attribute { - font-weight: bold; -} -/* Blog - ----------------------------- */ -body.blog h1 { - margin-top: -0.5em; -} -.page-content p { - font-size: 1.125em; - line-height: 1.5em; -} -ul.links { - margin: 0 0 1.5em; - padding: 5px 0; -} -ul.links .category { - text-transform: uppercase; -} -ul.links li { - color: #b0bec5; - font-size: 1em; - margin-right: 0.875em; - display: inline-block; -} -ul.links li ul { - display: inline; - padding: 0; -} -ul.sidebar { - border-bottom: 1px solid #eceff1; - border-left: 1px solid #eceff1; - padding: 1.5em; - margin-bottom: 0; - list-style: none; -} -ul.sidebar h4 { - font-size: 1em; - color: #37474f; - margin-bottom: 1.25em; - margin-top: 0; -} -ul.sidebar li { - margin: 0 4px 10px 0; - list-style: none; -} -ul.sidebar li.tag { - display: inline-block; - background-color: #ff5722; - padding: 3px 10px; -} -ul.sidebar li.tag a { - color: white; - font-size: 0.875em; -} -ul.sidebar li a { - font-size: 0.875em; - color: #546e7a; -} -ul.sidebar ul li i { - color: #546e7a; -} -ul.sidebar li > ul { - padding-left: 0; -} -ul.sidebar ul li > ul li { - padding-left: 1.25em; -} -a { - transition: 0.5s all; - -webkit-transition: 0.5s all; - -moz-transition: 0.5s all; - -o-transition: 0.5s all; - -ms-transition: 0.5s all; -} -a:hover { - color: #ff5722; -} -.blog_btn { - border-radius: 0; -} -.blog_btn.continue { - display: block; - margin-bottom: 50px; - text-align: right; - background-color: transparent; - color: #ff5722; - padding: 10px 0; -} -.blog_btn.continue:focus, -.blog_btn.continue:hover { - text-decoration: none; -} -.blog_btn.continue:active { - outline: inherit; -} -span img { - width: 100%; - margin-bottom: 2em; -} -.responsive-object { - padding-bottom: 10px !important; -} -/* -.about { - background: @brand-primary none repeat scroll 0 0; - margin-bottom: 4em; -} - -.about .title-section { - padding: 30px 0 20px; -} - -.about .title-section h1 { - font-weight: 400; -} - -.about .title-section h2 { - color: #ededed; -} - -.about .title-header a { - color: #FFF; -} - -.about .title-header a:focus, -.about .title-header a:hover { - color: #FFF; - text-decoration: none; -} -*/ -.blog_sidebar { - padding: 0 1.5em 0 0; -} -.blog_sidebar ul > ul { - padding: 0; -} -.blog_sidebar form.search_form { - margin-bottom: 0; -} -.blog_sidebar form.search_form input[type="search"] { - width: 100%; - border: 1px solid #eceff1; - padding: 6px 10px; -} -.blog_sidebar .input-group-btn { - background: #ff5722; - -webkit-border-radius: 0 5px 5px 0; - -moz-border-radius: 0 5px 5px 0; - border-radius: 0 5px 5px 0; -} -.blog_sidebar .input-group-btn .btn.btn-default { - border-color: transparent; - background-color: transparent; -} -.blog_sidebar .input-group-btn .btn.btn-default i { - color: white; -} -.blog_sidebar .rss-sitemap { - margin-bottom: 1em; - text-align: right; -} -.blog_sidebar .rss-sitemap a { - color: #b0bec5; - font-size: 0.875em; - text-decoration: none; -} -.blog_sidebar .rss-sitemap i { - color: #ff5722; -} -.blog_sidebar .rss-sitemap span { - font-size: 0.875em; - color: #b0bec5; -} -.post-summary { - margin-bottom: 1.25em; -} -.post-summary ul { - margin-top: -0.5em; - padding: 0; -} -.post-summary ul li { - margin-bottom: 0; -} -.relatedPosts { - margin: 50px 0 100px; -} -.relatedPosts img { - width: 100%; - height: auto; - margin-bottom: 15px; -} -/*RIGHT SIDE*/ -.lateralPosts h4 { - margin: 0; -} -.lateralPosts .boxCircle { - width: 80px; - height: 80px; - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - border-radius: 50%; -} -.lateralPosts li { - font-size: 0.875em; - display: inline-block; - color: #78909c; -} -.searchTerm { - margin: 10px 0 30px; - padding: 20px; - background-color: #ededed; - color: #666; -} -.blog_grid { - position: relative; - border-bottom: 0; -} -.blog_grid p { - color: #546e7a; - font-size: 1em; - line-height: 1.5em; - margin-top: 1em; -} -.rich-text { - margin-bottom: 5%; - margin-top: 10px; -} -.rich-text h3 { - margin-bottom: 10px; -} -.itemPosts { - margin-top: 10px; - padding-top: 1em; - border-top: 1px solid #eceff1; -} -.itemPosts h3 { - font-size: 16px; - margin-bottom: 5px; -} -.itemPosts p { - font-size: 15px; -} -.itemPosts .box.feature a { - color: #ff5722; -} -.pagination { - width: 100%; - margin: 30px 0; - text-align: center; -} -.pagination .endless_separator { - background: transparent; - color: #358c8b; - font-size: 18px; -} -.pagination .endless_page_link, -.pagination span.endless_page_current { - padding: 7px 11px; - color: #ff5722; -} -.pagination .endless_page_current:active, -.pagination .endless_page_link:active { - /*background: @brand-primary;*/ -} -.pagination span { - /*background: @brand-primary;*/ -} -.pagination span strong { - /*color: #FFF;*/ -} -/* Menu */ -.menu li { - margin: 0 0 3px; -} -.menu ul { - padding-left: 0; -} -.menu li a { - background-color: #f2f2f2; - background-color: rgba(0, 0, 0, 0.05); - color: #1e1e1e; - display: block; - padding: 9px 9px 9px 60px; - position: relative; - text-decoration: none; - -webkit-transition: all 0.2s linear; - transition: all 0.2s linear; -} -.menu li a:before { - background: #e1e1e1; - background: rgba(255, 255, 255, 0.4); - bottom: 0; - content: ""; - display: block; - left: 45px; - position: absolute; - top: 0; - width: 1px; -} -.menu li a:hover { - background-color: #e9e9e9; - background-color: rgba(0, 0, 0, 0.1); - -webkit-transition: all 0.2s linear; - transition: all 0.2s linear; -} -.menu li.active > a { - background-color: #ff5722; - color: #fff; - -webkit-transition: all 0.2s linear; - transition: all 0.2s linear; -} -.menu li.active > a:before { - background: #444; - background: rgba(255, 255, 255, 0.2); -} -.menu li.parent > a .open-sub { - bottom: 0; - display: block; - left: 0; - position: absolute; - top: 0; - width: 45px; -} -.menu li.parent > a .open-sub:after, -.menu li.parent > a .open-sub:before { - background: #ff5722; - content: ""; - display: block; - height: 2px; - left: 0; - margin: 19px 0 0 15px; - position: absolute; - top: 0; - width: 16px; -} -.menu li.parent > a .open-sub:after { - height: 16px; - margin: 12px 0 0 22px; - width: 2px; -} -.menu li.parent.active > a .open-sub:after, -.menu li.parent.active > a .open-sub:before { - background: #fff; -} -.menu li.parent.active > a .open-sub:after { - display: none; -} -.menu .sub { - background-color: #f2f2f2; - background-color: rgba(0, 0, 0, 0.05); - padding: 7px 0 4px 5px; -} -.menu .sub li { - margin: 0; -} -.menu .sub a { - background: none; - color: #7f7f7f; - margin: 0; - padding: 4px 9px 4px 60px; -} -.menu .sub a:before { - display: none; -} -.menu .sub a:hover { - background-color: #e9e9e9; - background-color: rgba(0, 0, 0, 0.05); -} -.menu .sub .active > a { - background: none; - color: #000; -} -.menu .sub .sub { - background: none; -} -.menu .sub li.parent > a .open-sub { - left: 10px; -} -.menu .sub li.parent > a .open-sub:after, -.menu .sub li.parent > a .open-sub:before { - background: #7f7f7f; - margin: 14px 0 0 22px; - width: 12px; -} -.menu .sub li.parent > a .open-sub:after { - height: 12px; - margin: 9px 0 0 27px; - width: 2px; -} -.menu .sub li { - padding: 0; -} -.menu li > a .item-icon { - left: 15px; - position: absolute; - top: 13px; -} -.menu li:not(.active) > a .item-icon { - opacity: 0.5; - filter: alpha(opacity=50); -} -@media (max-width: 991px) { - .blog_sidebar { - padding: 5px 5px 0 20px; - } -} -@media (max-width: 768px) { - .blog_sidebar { - padding: 5px 10px 0; - } -} + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{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}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:'Fira Sans',sans-serif;font-size:16px;line-height:1.42857143;color:#37474f;background-color:#eceff1}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#ff5722;text-decoration:none}a:hover,a:focus{color:#d43300;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#eceff1;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:22px;margin-bottom:22px;border:0;border-top:1px solid #eceff1}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;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}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:700;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#b0bec5}h1,.h1,h2,.h2,h3,.h3{margin-top:22px;margin-bottom:11px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:11px;margin-bottom:11px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:41px}h2,.h2{font-size:34px}h3,.h3{font-size:28px}h4,.h4{font-size:20px}h5,.h5{font-size:16px}h6,.h6{font-size:14px}p{margin:0 0 11px}.lead{margin-bottom:22px;font-size:18px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:24px}}small,.small{font-size:87%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#b0bec5}.text-primary{color:#ff5722}a.text-primary:hover,a.text-primary:focus{color:#ee3900}.text-success{color:#3c763d}a.text-success:hover,a.text-success:focus{color:#2b542c}.text-info{color:#31708f}a.text-info:hover,a.text-info:focus{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover,a.text-warning:focus{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover,a.text-danger:focus{color:#843534}.bg-primary{color:#fff;background-color:#ff5722}a.bg-primary:hover,a.bg-primary:focus{background-color:#ee3900}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:10px;margin:44px 0 22px;border-bottom:1px solid #eceff1}ul,ol{margin-top:0;margin-bottom:11px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:22px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #b0bec5}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:11px 22px;margin:0 0 22px;font-size:20px;border-left:5px solid #eceff1}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#b0bec5}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eceff1;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:22px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;box-shadow:none}pre{display:block;padding:10.5px;margin:0 0 11px;font-size:15px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#546e7a;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.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{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.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{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.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{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#b0bec5;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:22px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#eceff1}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:16.5px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:22px;font-size:24px;line-height:inherit;color:#546e7a;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:16px;line-height:1.42857143;color:#78909c}.form-control{display:block;width:100%;height:36px;padding:6px 12px;font-size:16px;line-height:1.42857143;color:#78909c;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eceff1;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:36px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:33px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:49px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:22px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:38px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:33px;padding:5px 10px;font-size:14px;line-height:1.5;border-radius:3px}select.input-sm{height:33px;line-height:33px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:33px;padding:5px 10px;font-size:14px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:33px;line-height:33px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:33px;min-height:36px;padding:6px 10px;font-size:14px;line-height:1.5}.input-lg{height:49px;padding:10px 16px;font-size:20px;line-height:1.3333333;border-radius:6px}select.input-lg{height:49px;line-height:49px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:49px;padding:10px 16px;font-size:20px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:49px;line-height:49px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:49px;min-height:42px;padding:11px 16px;font-size:20px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:45px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:36px;height:36px;line-height:36px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:49px;height:49px;line-height:49px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:33px;height:33px;line-height:33px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:27px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#6c8a99}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:29px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:20px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:14px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:16px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:focus,.btn-default.focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#ff5722;border-color:#ff4408}.btn-primary:focus,.btn-primary.focus{color:#fff;background-color:#ee3900;border-color:#882100}.btn-primary:hover{color:#fff;background-color:#ee3900;border-color:#ca3100}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#ee3900;border-color:#ca3100}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#fff;background-color:#ca3100;border-color:#882100}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus{background-color:#ff5722;border-color:#ff4408}.btn-primary .badge{color:#ff5722;background-color:#fff}.btn-success{color:#fff;background-color:#27ca3b;border-color:#23b535}.btn-success:focus,.btn-success.focus{color:#fff;background-color:#1f9f2f;border-color:#0e4a16}.btn-success:hover{color:#fff;background-color:#1f9f2f;border-color:#198126}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#1f9f2f;border-color:#198126}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#fff;background-color:#198126;border-color:#0e4a16}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus{background-color:#27ca3b;border-color:#23b535}.btn-success .badge{color:#27ca3b;background-color:#fff}.btn-info{color:#fff;background-color:#1fa0a0;border-color:#1b8b8b}.btn-info:focus,.btn-info.focus{color:#fff;background-color:#177575;border-color:#062020}.btn-info:hover{color:#fff;background-color:#177575;border-color:#115757}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#177575;border-color:#115757}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#fff;background-color:#115757;border-color:#062020}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus{background-color:#1fa0a0;border-color:#1b8b8b}.btn-info .badge{color:#1fa0a0;background-color:#fff}.btn-warning{color:#fff;background-color:#ff8f31;border-color:#ff8118}.btn-warning:focus,.btn-warning.focus{color:#fff;background-color:#fd7300;border-color:#974500}.btn-warning:hover{color:#fff;background-color:#fd7300;border-color:#d96300}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#fd7300;border-color:#d96300}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#fff;background-color:#d96300;border-color:#974500}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus{background-color:#ff8f31;border-color:#ff8118}.btn-warning .badge{color:#ff8f31;background-color:#fff}.btn-danger{color:#fff;background-color:#af0900;border-color:#960800}.btn-danger:focus,.btn-danger.focus{color:#fff;background-color:#7c0600;border-color:#160100}.btn-danger:hover{color:#fff;background-color:#7c0600;border-color:#580500}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#7c0600;border-color:#580500}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#fff;background-color:#580500;border-color:#160100}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus{background-color:#af0900;border-color:#960800}.btn-danger .badge{color:#af0900;background-color:#fff}.btn-link{color:#ff5722;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#d43300;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#b0bec5;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:20px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:14px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:14px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:16px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:10px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#546e7a;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#4a606b;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#ff5722}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#b0bec5}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:14px;line-height:1.42857143;color:#b0bec5;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-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-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.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}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[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:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:49px;padding:10px 16px;font-size:20px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:49px;line-height:49px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:33px;padding:5px 10px;font-size:14px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:33px;line-height:33px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:16px;font-weight:normal;line-height:1;color:#78909c;text-align:center;background-color:#eceff1;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:14px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:20px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eceff1}.nav>li.disabled>a{color:#b0bec5}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#b0bec5;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eceff1;border-color:#ff5722}.nav .nav-divider{height:1px;margin:10px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eceff1 #eceff1 #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#78909c;background-color:#eceff1;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#eceff1}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#ff5722}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#eceff1}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:22px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:14px 15px;font-size:20px;line-height:22px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:22px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:22px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:14px;padding-bottom:14px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:7px;margin-bottom:7px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:7px;margin-bottom:7px}.navbar-btn.btn-sm{margin-top:8.5px;margin-bottom:8.5px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:14px;margin-bottom:14px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#dce2e5}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#dce2e5}.navbar-inverse .navbar-nav>li>a{color:#dce2e5}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#dce2e5}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#dce2e5}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#dce2e5}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:22px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#b0bec5}.pagination{display:inline-block;padding-left:0;margin:22px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#ff5722;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:2;color:#d43300;background-color:#eceff1;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:3;color:#fff;background-color:#ff5722;border-color:#ff5722;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#b0bec5;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:20px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:14px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:22px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eceff1}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#b0bec5;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#b0bec5}.label-default[href]:hover,.label-default[href]:focus{background-color:#93a6af}.label-primary{background-color:#ff5722}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#ee3900}.label-success{background-color:#27ca3b}.label-success[href]:hover,.label-success[href]:focus{background-color:#1f9f2f}.label-info{background-color:#1fa0a0}.label-info[href]:hover,.label-info[href]:focus{background-color:#177575}.label-warning{background-color:#ff8f31}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#fd7300}.label-danger{background-color:#af0900}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#7c0600}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:14px;font-weight:bold;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#b0bec5;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#ff5722;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:2em;padding-bottom:2em;margin-bottom:2em;color:inherit;background-color:#ff5722}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:1em;font-size:24px;font-weight:200}.jumbotron>hr{border-top-color:#ee3900}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px;padding-left:15px;padding-right:15px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:3.2em;padding-bottom:3.2em}.container .jumbotron,.container-fluid .jumbotron{padding-left:4em;padding-right:4em}.jumbotron h1,.jumbotron .h1{font-size:72px}}.thumbnail{display:block;padding:4px;margin-bottom:22px;line-height:1.42857143;background-color:#eceff1;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#ff5722}.thumbnail .caption{padding:9px;color:#37474f}.alert{padding:15px;margin-bottom:22px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:22px;margin-bottom:22px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:14px;line-height:22px;color:#fff;text-align:center;background-color:#ff5722;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#27ca3b}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#1fa0a0}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#ff8f31}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#af0900}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eceff1;color:#b0bec5;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#b0bec5}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#ff5722;border-color:#ff5722}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#fff2ee}.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:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{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:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{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:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{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:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:22px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:18px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:22px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#546e7a;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#546e7a}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#ff5722}.panel-primary>.panel-heading{color:#fff;background-color:#ff5722;border-color:#ff5722}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ff5722}.panel-primary>.panel-heading .badge{color:#ff5722;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ff5722}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:24px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);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;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box;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;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:'Fira Sans',sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:'Fira Sans',sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:16px;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:16px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform 0.6s ease-in-out;-moz-transition:-moz-transform 0.6s ease-in-out;-o-transition:-o-transform 0.6s ease-in-out;transition:transform 0.6s ease-in-out;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;-moz-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);background-color:rgba(0,0,0,0)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-header:before,.modal-header:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-header:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !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}}/*! Generated by Font Squirrel (https://www.fontsquirrel.com) on June 1, 2017 */@font-face{font-family:'Fira Sans';src:url('../fonts/firasans-light-webfont.woff2') format('woff2'),url('../fonts/firasans-light-webfont.woff') format('woff'),url('../fonts/firasans-light.otf') format("opentype");font-weight:200;font-style:normal}@font-face{font-family:'Fira Sans';src:url('../fonts/firasans-book-webfont.woff2') format('woff2'),url('../fonts/firasans-book-webfont.woff') format('woff'),url('../fonts/firasans-book.otf') format("opentype");font-weight:400;font-style:normal}@font-face{font-family:'Fira Sans';src:url('../fonts/firasans-bold-webfont.woff2') format('woff2'),url('../fonts/firasans-bold-webfont.woff') format('woff'),url('../fonts/firasans-bold.otf') format("opentype");font-weight:700;font-style:normal}html{-webkit-font-smoothing:antialiased !important}body{background:#37474f;font-family:'Fira Sans',sans-serif;font-size:16px;padding-top:60px}a{color:#ff5722}h1,h2,h3,h4,h5,h6{font-weight:700}select{background:#fff;border:1px solid #b0bec5;height:30px;line-height:30px}code{background-color:#eceff1;color:#1fa0a0;white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}form label{margin-right:2.5em}form input{padding:5px}.navbar{margin-bottom:0}.navbar .toolbar{margin-left:1em}.navbar-default{background:#fff;border:0;box-shadow:1px 1px 2px rgba(0,0,0,0.1)}.navbar-default .navbar-nav>li>a{color:#546e7a;font-weight:400;padding-top:25px;padding-bottom:25px}.navbar-default .navbar-nav>li>a:hover{color:#ff5722}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#ff5722;color:#fff}.navbar-nav .dropdown-menu{background-color:#ff5722;border-top:1px solid #ff5722}.navbar-nav .dropdown-menu a{color:#fff}.navbar-nav .dropdown-menu li a:hover{background-color:#ee3900;color:#fff}.navbar-nav .dropdown-menu .divider{background-color:#ee3900}.navbar-nav .search{left:15px;position:relative;color:#444;top:20px;margin-right:25px}.navbar-nav .search .fa-search{position:absolute;top:8px;left:10px}.navbar-nav .search input{background:#eceff1;width:120px;height:32px;border:1px solid #eceff1;border-radius:5px;outline-width:0;text-indent:32px;-webkit-transition:width .2s;transition:width .2s}.navbar-nav .search input:focus{width:240px}.navbar-nav .avatar img{border-radius:50%;margin-bottom:-15px;margin-right:10px;margin-top:-15px;height:42px;width:42px}.navbar-nav .fa-angle-down{margin-left:10px}.navbar-brand{background:url("../img/logo.png") 0 12px no-repeat;background-size:100%;margin-right:2em;text-indent:-9999px;height:65px;width:200px}.navbar-collapse{max-height:none}.navbar-header i{color:#ff5722;font-size:2em}.navbar-header button{border:0;margin-top:.75em}header{background:#ff5722;color:#fff;margin-bottom:2em;padding-top:1em;padding-bottom:1em}header .btn-primary{background:#ee3900;border:1px solid #ee3900}header .btn-primary:hover{background:#d43300}header .btn-icon{background:#d43300;border:1px solid #d43300}header .btn-icon:hover{background:#bb2d00}#wrap{background:#fbfbfc;padding-bottom:2.5em;width:100%}article.tab-pane{padding:20px 0}.no-style-list{list-style-type:none;margin-top:20px}.dl-horizontal dt{text-overflow:clip;white-space:normal;overflow:hidden}.page-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}section#subheader{background:#fff;border-bottom:1px solid #eceff1;margin-bottom:1em;margin-top:-2em;padding-bottom:.4em;padding-top:0}section#subheader p{color:#b0bec5;display:inline-block}section#subheader .btn-group{margin-top:-1em}section#contact{background:#0e4b4b;color:#fff;padding-bottom:3em;padding-top:1em}section#contact h3{font-weight:400}footer{background:#37474f;color:#fff;padding-bottom:3em;padding-top:2em}footer a{color:#ff5722}footer img{margin-right:-10px;width:50%}footer select{color:#37474f}.home #wrap{margin-top:0;padding-bottom:0}.home .jumbotron{background:#ff5722;color:#fff;margin-bottom:0;padding:5em 0;text-shadow:2px 2px 2px rgba(0,0,0,0.4)}.home .jumbotron a{color:#37474f}.home .jumbotron p{font-weight:400;margin-bottom:0}.home .jumbotron .btn-default{background:rgba(0,0,0,0.4);border:2px solid #fff;color:#fff;font-weight:600;margin-top:1em;min-width:320px}.home .jumbotron .btn-default:hover{background:rgba(128,0,0,0.4)}.home .big-search{background:#546e7a;color:#fff;padding-bottom:3em;padding-top:1em}.home .big-search h1,.home .big-search p{text-align:center}.home .big-search a{color:#ff5722}.home .big-search .search{left:0;position:relative;color:#444;top:20px;padding-bottom:2em;margin:auto;width:50%}.home .big-search .search input{width:100%;height:56px;border:1px solid #546e7a;border-radius:5px;outline-width:0;font-size:1.5em}.home .big-search .search input{text-indent:64px}.home .big-search .search .fa-search{position:absolute;top:10px;left:15px}.home .big-search .btn-default{background:transparent;border:none}.home .big-search .btn-default:hover{text-decoration:underline}.home #datasets{background:#ff5722;color:#fff;padding:1em 0}.home #datasets p{font-size:14px}.home #datasets h4{text-transform:uppercase;font-size:14px}.home #datasets a{color:#fff}.home #datasets a:hover{text-decoration:none}.home #datasets a .category{background:#ff5722;border-radius:4px;margin:0 -15px;padding:2em 0}.home #datasets a .category:hover{background:#d43300}.home #datasets a span{font-size:4em}.home #hazards{background:#37474f;color:#fff;padding:2em 0 3em;text-align:center}.home #hazards h2{margin-bottom:1em}.home #hazards a{color:#fff}.home #hazards a:hover{background:#ee3900;text-decoration:none}.home #hazards span{font-size:4em}.home #imagery{background:linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.2)),url('../img/jumbotron.jpg') no-repeat;background-position:center;background-size:cover;color:#fff;margin-bottom:0;padding:5em 0;text-shadow:2px 2px 2px rgba(0,0,0,0.4)}.home #imagery h3{padding-top:2em}.home #imagery a{color:#37474f}.home #imagery p{font-weight:400;margin-bottom:0}.home #showcase{background:#eceff1;padding-bottom:2em;padding-top:1em;text-align:center}.home #showcase .col-md-3{padding:2em 1em}.home #showcase .col-md-3 img{box-shadow:2px 2px 2px rgba(0,0,0,0.125);height:180px;width:100%}.home #showcase p{font-size:18px}.home #osm{background:linear-gradient(to right, rgba(0,0,0,0) 0, rgba(0,0,0,0) 50%, #ff5722 50%, #ff5722 100%),url("../img/osm-02.jpg") no-repeat;min-height:320px;padding:0}.home #osm .col-md-8{background:#ff5722;color:#fff;min-height:320px;padding:1em 2em}.home #osm .col-md-8 .btn-primary{border-color:#fff;width:160px}.home #osm p{font-size:18px}.yourlabs-autocomplete{top:100%}.input-group .yourlabs-autocomplete{top:30px !important}.actions .fa,.filter .fa{margin-right:8px}.items-list{padding:10px 0}.items-list .btn{margin-right:5px;margin-top:10px}.items-list .item-info{border-top:1px solid #eceff1}.items-list h4{font-weight:400;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.items-list h4 a{color:#37474f}.items-list h4 a:hover{color:#af0900;text-decoration:none}.items-list .owner{color:#37474f;font-size:14px}.items-list .owner a{color:#37474f}.items-list .owner a:hover{color:#af0900;text-decoration:none}.items-list .thumb img{border:1px solid #eceff1;width:100%}.items-list .abstract{color:#b0bec5;font-weight:300;min-height:80px}.items-list .actions{color:#b0bec5;font-weight:300}.items-list .actions i{margin-right:.75em}.items-list .actions a{color:#b0bec5;margin-right:.5em}.items-list .actions a:hover{color:#78909c;text-decoration:none}.item-container{padding:1em}.profile-avatar{background:#fff;border:1px solid #b0bec5;padding:0}.profile-avatar h5 a{color:#37474f;display:block;margin-bottom:-0.5em;margin-top:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-avatar h5 a:hover{color:#af0900;text-decoration:none}.profile-avatar h5 a i{margin-left:.75em}.profile-avatar h5 a i:hover{color:#af0900;text-decoration:none}.profile-avatar .list-inline{margin:.5em 0}.item-thumb{padding-left:0;padding-right:0}.item-thumb img{width:100%}.item-details{background:#fff;color:#37474f}.item-details .item-meta{margin-top:1em}.item-details .item-meta .item-category{font-size:12px;text-transform:uppercase}.item-details .btn-sm{margin-right:-17px;margin-top:-1px;padding:.5em 1em}.item-details .item-items{border-top:1px solid #eceff1}.item-details .item-items ul{margin:0 0 0 -15px;padding:.5em}.item-details .item-items ul i{margin-right:.5em}.detail-page-actions{margin-top:20px}.detail-page-actions i{padding-right:3px}.layer-actions{margin-top:20px}.layer-actions i{padding-right:3px}.edit-modal{text-align:center}.arcgis-legend>li{text-align:right}.arcgis-legend>li>img{padding-right:25px}.grid-spacer{margin-top:30px}#accordion .panel{border-radius:0;border-top:2px solid #b0bec5;line-height:1em}#accordion .panel-heading{background:none;border:0}#accordion .panel-body img{margin-bottom:1em}#accordion .panel-body small{color:#78909c;font-size:.825em}#accordion .panel-body form{font-size:.825em}#accordion .panel-body form .form-control{background:none;color:#546e7a;font-size:.825em;height:24px;line-height:1;-webkit-box-shadow:none;box-shadow:none}#create-chart small{color:#78909c;font-size:.825em}#create-chart form{font-size:.825em}#create-chart form .form-control{background:none;color:#546e7a;font-size:.825em;height:24px;line-height:1;-webkit-box-shadow:none;box-shadow:none}body.importer h4{margin-bottom:1.5em}body.importer .well{background:#fff;border:1px solid #b0bec5;padding:1.25em 1.5em .5em 1em}body.importer .well p{line-height:.5em}body.importer .well hr{margin:.5em 0}body.importer .well .layer-in-upload{background-color:#fff;padding:.5em}body.importer .well .table-condensed{font-size:.75em}.controls{width:320px}.controls>div,.controls>input,.controls>select,.controls>textarea{width:320px}.map-actions{margin-top:20px}.map-actions i{padding-right:3px}.documents-actions{margin-top:20px}.documents-actions i{padding-right:3px}.profile-container{padding:1em}.profile-avatar{background:#fff;border:1px solid #eceff1;padding:0}.profile-avatar h5 a{color:#37474f;display:block;margin-bottom:-0.5em;margin-top:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-avatar h5 a:hover{color:#af0900;text-decoration:none}.profile-avatar h5 a i{margin-left:.75em}.profile-avatar h5 a i:hover{color:#af0900;text-decoration:none}.profile-avatar .profile-items{border-top:1px solid #eceff1;color:#78909c}.profile-avatar .profile-items i{margin-left:0;margin-right:.125em}.profile-avatar .profile-items i a:hover{color:#af0900;text-decoration:none}.profile-avatar .profile-items .list-inline{margin:.5em 0}.profile-avatar li a{color:#78909c;margin-right:.5em}.profile-avatar li a:hover{color:#af0900;text-decoration:none}.profile-avatar img{margin:0;width:100%}.profile-image{padding-left:0;padding-right:0}.profile-image img{width:100%}.profile-details{background:#fff;color:#37474f}.profile-details .group-logo{margin:.5em;padding:0}.profile-details .group-logo img{width:60px}nav.filter h4{background:#546e7a;font-size:14px;font-weight:600;padding:10px 0;text-transform:uppercase;border-radius:3px}nav.filter h4 a{color:#fff}nav.filter h4 a.toggle{text-decoration:none}nav.filter h4 i{margin-left:8px}nav.filter .active{color:#1fa0a0}nav.filter .active .badge{background:#1fa0a0}nav.filter .closed{display:none}nav.filter li a{border-bottom:1px solid #eceff1;cursor:pointer;padding:5px 10px}.selections h5{font-weight:400}.selections .thumb{float:left}#sort{cursor:pointer}#sort a{color:#b0bec5}#sort .selected{font-weight:700}.group-container{padding:1em}.group-avatar{border:1px solid #eceff1;padding:0}.group-avatar h5 a{color:#37474f;display:block;margin-bottom:-0.5em;margin-top:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-avatar h5 a:hover{color:#af0900;text-decoration:none}.group-avatar h5 a i{margin-left:.75em}.group-avatar h5 a i:hover{color:#af0900;text-decoration:none}.group-items{border-top:1px solid #eceff1;color:#78909c}.group-items i{margin-left:0;margin-right:.125em}.group-items i a:hover{color:#af0900;text-decoration:none}.group-items .list-inline{margin:.5em 0}.group-image{height:120px;overflow:hidden}.group-container .group-logo{padding:1em 0;width:100%}.group-details .group-logo img{width:100%}#drop-zone{background:#eceff1;margin-bottom:10px;padding:5px;border:2px dashed #b0bec5}#drop-zone h3{color:#b0bec5;margin:20px 0;text-align:center}#drop-zone h3 i{font-size:3em}#clear-button,#upload-button{margin-top:20px}#upload_form input[type="text"]{display:block;margin:0;width:480px;appearance:none;box-shadow:none;border-radius:none;transition:box-shadow .3s,border .3s}#upload_form input[type="text"]:focus{border:solid 1px #707070;box-shadow:0 0 5px 1px #969696;outline:none}#upload_form #id_doc_file{padding:.5em;width:480px}#upload_form #id_doc_url{display:block;width:480px}#upload_form #s2id_resource{display:block;width:480px}@media (max-width:991px){#upload_form input[type="text"]{width:360px}#upload_form #id_doc_file,#upload_form #id_doc_url,#upload_form #s2id_resource{width:360px}}.rotate-45{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.select2-container-multi .select2-choices .select2-search-field input{font-family:'Fira Sans',sans-serif;height:auto}.datepicker{border-radius:0;-webkit-border-radius:0;-moz-border-radius:0}.filter input.datepicker{width:100%}#composerCart .list-group i{margin-right:0}.selections{margin-top:1em}.form-horizontal .form-group{margin-left:0;margin-right:0}.comment{padding:1em 0 .5em}.comment .avatar img{border-radius:50%}.comment small{font-weight:bold;color:#777;margin-left:10px}.comment button,.comment p{margin-left:58px;margin-top:-0.5em}.list-group-item .avatar img{border-radius:50%;margin-right:.5em}.no-style-list{list-style-type:none;margin-top:20px}.activity-item{border-bottom:1px solid #b0bec5;border-left:1px solid #b0bec5;color:#b0bec5;margin-top:-10px;padding:20px 18px}.activity-item .comment{content:"\f086"}.activity-item .comment:before{content:"\f086"}.activity-item .delete{content:"\f014"}.activity-item .delete:before{content:"\f014"}.activity-item .edit{content:"\f14b"}.activity-item .edit:before{content:"\f14b"}.activity-item .layer{content:"\f096";-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.activity-item .layer:before{content:"\f096"}.activity-item .map{content:"\f041"}.activity-item .map:before{content:"\f041"}.activity-item .upload{content:"\f093"}.activity-item .upload:before{content:"\f093"}.icon-activity{background:#b0bec5;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;border:2px solid #fff;color:#fff;float:left;font-family:FontAwesome;font-weight:normal;font-size:1.3em;font-style:normal;height:35px;line-height:1.25em;margin:0 10px 10px -35px;padding:4px;text-align:center;text-decoration:inherit;width:35px}.thumb-activity{clear:both;height:60px}.thumb-activity img{border:1px solid #78909c;float:left;margin-right:5px;width:60px}.activity{content:"\f045"}.activity:before{content:"\f045"}.activity-timestamp{margin-top:-10px}#permission_form .select2-container{width:250px}.form-signin{max-width:330px;padding:15px;margin:0 auto}.form-signin .checkbox,.form-signin .form-signin-heading{margin-bottom:10px}.form-signin .checkbox{font-weight:normal}.form-signin .form-control{position:relative;height:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:10px;font-size:1em}.form-signin .form-control:focus{z-index:2}.form-signin input[type="username"]{margin-bottom:-1px;border-bottom-right-radius:0;border-bottom-left-radius:0}.form-signin input[type="password"]{margin-bottom:10px;border-top-left-radius:0;border-top-right-radius:0}.modal-body .list-unstyled a{color:#37474f;font-size:1.14285714em;line-height:2em}.modal-body .list-unstyled a i{margin-right:8px}.modal-body .list-unstyled a:hover{color:#1fa0a0;text-decoration:none}.modal-divider{padding-top:1px;margin:5px 1px 6px;border-bottom:1px solid #e1e8ed}.list-group i{margin-right:8px}@media (max-width:991px){.navbar-header{float:none}.navbar-toggle{display:block}.navbar-collapse{border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1)}.navbar-collapse.collapse{display:none !important}.navbar-nav{float:none !important;margin:7.5px -15px}.navbar-nav>li{float:none}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px}.navbar-collapse.collapse.in{display:block !important}.collapsing{overflow:hidden !important}.home .navbar-inverse{background-color:#546e7a}.navbar-inverse .navbar-nav>li>a{padding-bottom:.75em;padding-top:.75em}.navbar-inverse .navbar-nav .search{padding-bottom:.75em;top:0}.navbar-inverse .navbar-nav .search input{width:100%}}#member_form_container .select2-container{padding:0}.table-user-profile-attribute{font-weight:bold}body.blog h1{margin-top:-0.5em}.page-content p{font-size:1.125em;line-height:1.5em}ul.links{margin:0 0 1.5em;padding:5px 0}ul.links .category{text-transform:uppercase}ul.links li{color:#b0bec5;font-size:1em;margin-right:.875em;display:inline-block}ul.links li ul{display:inline;padding:0}ul.sidebar{border-bottom:1px solid #eceff1;border-left:1px solid #eceff1;padding:1.5em;margin-bottom:0;list-style:none}ul.sidebar h4{font-size:1em;color:#37474f;margin-bottom:1.25em;margin-top:0}ul.sidebar li{margin:0 4px 10px 0;list-style:none}ul.sidebar li.tag{display:inline-block;background-color:#ff5722;padding:3px 10px}ul.sidebar li.tag a{color:#fff;font-size:.875em}ul.sidebar li a{font-size:.875em;color:#546e7a}ul.sidebar ul li i{color:#546e7a}ul.sidebar li>ul{padding-left:0}ul.sidebar ul li>ul li{padding-left:1.25em}a{transition:.5s all;-webkit-transition:.5s all;-moz-transition:.5s all;-o-transition:.5s all;-ms-transition:.5s all}a:hover{color:#ff5722}.blog_btn{border-radius:0}.blog_btn.continue{display:block;margin-bottom:50px;text-align:right;background-color:transparent;color:#ff5722;padding:10px 0}.blog_btn.continue:focus,.blog_btn.continue:hover{text-decoration:none}.blog_btn.continue:active{outline:inherit}span img{width:100%;margin-bottom:2em}.responsive-object{padding-bottom:10px !important}.blog_sidebar{padding:0 1.5em 0 0}.blog_sidebar ul>ul{padding:0}.blog_sidebar form.search_form{margin-bottom:0}.blog_sidebar form.search_form input[type="search"]{width:100%;border:1px solid #eceff1;padding:6px 10px}.blog_sidebar .input-group-btn{background:#ff5722;-webkit-border-radius:0 5px 5px 0;-moz-border-radius:0 5px 5px 0;border-radius:0 5px 5px 0}.blog_sidebar .input-group-btn .btn.btn-default{border-color:transparent;background-color:transparent}.blog_sidebar .input-group-btn .btn.btn-default i{color:#fff}.blog_sidebar .rss-sitemap{margin-bottom:1em;text-align:right}.blog_sidebar .rss-sitemap a{color:#b0bec5;font-size:.875em;text-decoration:none}.blog_sidebar .rss-sitemap i{color:#ff5722}.blog_sidebar .rss-sitemap span{font-size:.875em;color:#b0bec5}.post-summary{margin-bottom:1.25em}.post-summary ul{margin-top:-0.5em;padding:0}.post-summary ul li{margin-bottom:0}.relatedPosts{margin:50px 0 100px}.relatedPosts img{width:100%;height:auto;margin-bottom:15px}.lateralPosts h4{margin:0}.lateralPosts .boxCircle{width:80px;height:80px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%}.lateralPosts li{font-size:.875em;display:inline-block;color:#78909c}.searchTerm{margin:10px 0 30px;padding:20px;background-color:#ededed;color:#666}.blog_grid{position:relative;border-bottom:0}.blog_grid p{color:#546e7a;font-size:1em;line-height:1.5em;margin-top:1em}.rich-text{margin-bottom:5%;margin-top:10px}.rich-text h3{margin-bottom:10px}.itemPosts{margin-top:10px;padding-top:1em;border-top:1px solid #eceff1}.itemPosts h3{font-size:16px;margin-bottom:5px}.itemPosts p{font-size:15px}.itemPosts .box.feature a{color:#ff5722}.pagination{width:100%;margin:30px 0;text-align:center}.pagination .endless_separator{background:transparent;color:#358c8b;font-size:18px}.pagination .endless_page_link,.pagination span.endless_page_current{padding:7px 11px;color:#ff5722}.menu li{margin:0 0 3px}.menu ul{padding-left:0}.menu li a{background-color:#f2f2f2;background-color:rgba(0,0,0,0.05);color:#1e1e1e;display:block;padding:9px 9px 9px 60px;position:relative;text-decoration:none;-webkit-transition:all .2s linear;transition:all .2s linear}.menu li a:before{background:#e1e1e1;background:rgba(255,255,255,0.4);bottom:0;content:"";display:block;left:45px;position:absolute;top:0;width:1px}.menu li a:hover{background-color:#e9e9e9;background-color:rgba(0,0,0,0.1);-webkit-transition:all .2s linear;transition:all .2s linear}.menu li.active>a{background-color:#ff5722;color:#fff;-webkit-transition:all .2s linear;transition:all .2s linear}.menu li.active>a:before{background:#444;background:rgba(255,255,255,0.2)}.menu li.parent>a .open-sub{bottom:0;display:block;left:0;position:absolute;top:0;width:45px}.menu li.parent>a .open-sub:after,.menu li.parent>a .open-sub:before{background:#ff5722;content:"";display:block;height:2px;left:0;margin:19px 0 0 15px;position:absolute;top:0;width:16px}.menu li.parent>a .open-sub:after{height:16px;margin:12px 0 0 22px;width:2px}.menu li.parent.active>a .open-sub:after,.menu li.parent.active>a .open-sub:before{background:#fff}.menu li.parent.active>a .open-sub:after{display:none}.menu .sub{background-color:#f2f2f2;background-color:rgba(0,0,0,0.05);padding:7px 0 4px 5px}.menu .sub li{margin:0}.menu .sub a{background:none;color:#7f7f7f;margin:0;padding:4px 9px 4px 60px}.menu .sub a:before{display:none}.menu .sub a:hover{background-color:#e9e9e9;background-color:rgba(0,0,0,0.05)}.menu .sub .active>a{background:none;color:#000}.menu .sub .sub{background:none}.menu .sub li.parent>a .open-sub{left:10px}.menu .sub li.parent>a .open-sub:after,.menu .sub li.parent>a .open-sub:before{background:#7f7f7f;margin:14px 0 0 22px;width:12px}.menu .sub li.parent>a .open-sub:after{height:12px;margin:9px 0 0 27px;width:2px}.menu .sub li{padding:0}.menu li>a .item-icon{left:15px;position:absolute;top:13px}.menu li:not(.active)>a .item-icon{opacity:.5;filter:alpha(opacity=50)}@media (max-width:991px){.blog_sidebar{padding:5px 5px 0 20px}}@media (max-width:768px){.blog_sidebar{padding:5px 10px 0}} \ No newline at end of file diff --git a/haitidata/static/css/index.css b/haitidata/static/css/index.css new file mode 100644 index 0000000..5a958c2 --- /dev/null +++ b/haitidata/static/css/index.css @@ -0,0 +1,39 @@ +/* Add shadow effect to chart. If you don't like it, get rid of it. */ +svg { + -webkit-filter: drop-shadow( 0px 3px 3px rgba(0,0,0,.3) ); + filter: drop-shadow( 0px 3px 3px rgba(0,0,0,.25) ); +} + +/*Styling for the lines connecting the labels to the slices*/ +polyline{ + opacity: .3; + stroke: black; + stroke-width: 2px; + fill: none; +} + +/* Make the percentage on the text labels bold*/ +.labelName tspan { + font-style: normal; + font-weight: 700; +} + +/* In biology we generally italicise species names. */ +.labelName { + font-size: 0.9em; + font-style: italic; +} + +/* Tooltip for line chart */ + +div.tooltip { + position: absolute; + text-align: center; + width: 60px; + height: 28px; + padding: 2px; + background: lightsteelblue; + border: 0px; + border-radius: 8px; + pointer-events: none; +} \ No newline at end of file diff --git a/haitidata/static/js/bar.js b/haitidata/static/js/bar.js new file mode 100644 index 0000000..29b6eb6 --- /dev/null +++ b/haitidata/static/js/bar.js @@ -0,0 +1,185 @@ +function barChart(cat, qnt, title,id){ + var width = function(){ return document.getElementById(id).offsetWidth}, + height = 500, + padding = 5, + xScale = d3.scaleBand(), + yScale = d3.scaleLinear(), + colour = d3.scaleOrdinal(d3.schemeCategory20), + x, + y, + margin = { top: 30, bottom: 30, left: 30, right: 120 }, + floatFormat = d3.format("." + d3.precisionFixed(0.5) + "f"), + xAxis = d3.axisBottom(xScale), + yAxis = d3.axisLeft(yScale); + + function my(selection){ + + selection.each(function(data) { + + var svg_name = "chart_svg" + id; + var svg = selection.append('svg') + .attr("id", svg_name) + .attr("width", width()) + .attr("height", height); + + var g = svg.selectAll("g") + .data([1]); + g = g.enter().append("g") + .merge(g) + .attr("class", svg_name) + .attr("transform", + "translate(" + margin.left + "," + margin.top +")"); + + + var innerWidth = width() - margin.left - margin.right ; + var innerHeight = function(){ return height - margin.top - margin.bottom} ; + + + xScale + .domain(data.map(function (d){ return d[x]; })) + .range([0, (innerWidth - margin.right)]); + + + // X axis + var xAxis_name = "x-axis_" + id; + var xAxis_call = "." + xAxis_name; + var xAxisG = g.selectAll(xAxis_call).data([1]); + xAxisG.enter().append("g") + .attr("class", xAxis_name) + .merge(xAxisG) + .attr("transform", "translate(0," + innerHeight() +")") + .call(xAxis); + + // labels X axis + // rotate text if is longer than... + var rotate = 0; + d3.select(this).select(xAxis_call).selectAll("text").each(function(){ + if (this.getBBox().width > (xScale.bandwidth() - (padding*2))){ + rotate = 1; + d3.select(xAxis_call).selectAll("text").attr("transform", "rotate(-90)") + .attr("y", 0) + .attr("x", -10) + .attr("dy", ".35em") + .style("text-anchor", "end"); + }}); + + // adjust margin and x axis title + var maxh = 15; + if (rotate == 1) { + d3.select(this).select(xAxis_call).selectAll("text").each(function(){ + if (this.getBBox().width > maxh) + maxh = this.getBBox().width; + });}; + margin.bottom = margin.bottom + maxh; + d3.select(xAxis_call).attr("transform", "translate(0," + (innerHeight()) + ")"); + + var text_name = "text_" + id; + g.append("text") + .attr("class", text_name) + .attr("transform", "translate(" + (innerWidth/2) + ", " + (innerHeight() + margin.bottom - 5) + ")") + .style("font-size", "12px") + .style("text-anchor", "middle") + .text(cat); + + yScale + .domain([0, d3.max(data, function (d){ return d[y] ;})]) + .range([innerHeight(), 0]); + + // Y axis + var yAxis_name = "y-axis_" + id; + var yAxis_call = "." + yAxis_name; + var yAxisG = g.selectAll(yAxis_call).data([1]); + yAxisG.enter().append("g") + .attr("class", yAxis_name) + .merge(yAxisG) + .call(yAxis); + + //labels Y axis + var maxw = 0; + d3.select(this).select(yAxis_call).selectAll("text").each(function(){ + if (this.getBBox().width > maxw) { + maxw = this.getBBox().width; + } + }); + margin.left = margin.left + maxw; + g.attr("transform", "translate(" + margin.left + "," + margin.top + ")"); + + var yLabel = function(){ + if (title == "Count"){ + return "Count"; + } else { + return qnt; + }}; + + g.append("text") + .attr("class", text_name) + .attr("transform", "rotate(-90)") + .attr("x", 0 - (innerHeight()/2)) + .attr("y", 0 - (margin.left)) + .attr("dy", "1em") + .style("font-size", "12px") + .style("text-anchor", "middle") + .text(yLabel); + + // bars + var rects = g.selectAll("rect") + .data(data); + rects.exit().remove(); + rects.enter().append("rect") + .merge(rects) + .attr("x", function (d){ return xScale(d[x]) + padding; }) + .attr("y", function (d){ return yScale(d[y]); }) + .attr("fill", function(d) { return colour(xScale(d[x])); }) + .attr("width", xScale.bandwidth() - (padding*2)) + .attr("height", function (d){ + return innerHeight() - yScale(d.value); + }); + + //chart legend + var leg_name = "legend" + id; + var leg_call = "." + leg_name; + var legend = svg.selectAll("leg_call") + .data(data) + .enter().append("g") + .attr("class", leg_name) + .attr("transform", function(d, i) { return "translate(0," + i * 20 + ")"; }); + + legend.append("rect") + .attr("x", width() - 18) + .attr("width", 18) + .attr("height", 18) + .style("fill", function(d) { return colour(xScale(d[x]))} ); + + legend.append("text") + .attr("class", text_name) + .attr("x", width() - 24) + .attr("y", 9) + .attr("dy", ".35em") + .style("text-anchor", "end") + .text(function (d){ return d[x] + ": " + floatFormat(d[y]); }); + + }); + } + + my.x = function (_){ + return arguments.length ? (x = _, my) : x; + }; + + my.y = function (_){ + return arguments.length ? (y = _, my) : y; + }; + + my.width = function (_){ + return arguments.length ? (width = _, my) : width; + }; + + my.height = function (_){ + return arguments.length ? (height = _, my) : height; + }; + + my.padding = function (_){ + return arguments.length ? (xScale.padding(_), my) : xScale.padding(); + }; + + return my; + } diff --git a/haitidata/static/js/csv.js b/haitidata/static/js/csv.js new file mode 100644 index 0000000..373a620 --- /dev/null +++ b/haitidata/static/js/csv.js @@ -0,0 +1,163 @@ +var getCsv = function(csv_link, category, quantity, agg, chartType, id){ + var data = []; + d3.csv(csv_link, function(error, csv) { + if (error) throw error; + csv.forEach(function(row){ + var qnty_v; var ctgy_v; var i = 0; + while (i < Object.keys(row).length){ + if (Object.keys(row)[i] == quantity){ + qnty_v = +Object.values(row)[i] + } else if (Object.keys(row)[i] == category){ + if (Object.values(row)[i].length >= 20){ + + ctgy_v = Object.values(row)[i].substring(0, 17) + "..."; + } else { + ctgy_v = Object.values(row)[i]; + }; + } + i++; + }; + data.push({qnty : qnty_v , ctgy : ctgy_v }); + }) + + + var dropZeros = function(dato){ + return dato.filter(function(d){ + if (d.qnty !== 0){ + return d.qnty; + }}) + }; + + function groupData_sum(dato){ + return d3.nest().key(function(d) {return d.ctgy;}) + .rollup(function(v) {return d3.sum(v, function(d) {return d.qnty;});}) + .entries(dato); + }; + + function groupData_mean(dato){ + return d3.nest().key(function(d) {return d.ctgy;}) + .rollup(function(v) {return d3.mean(v, function(d) {return d.qnty;});}) + .entries(dato); + }; + + function groupData_min(dato){ + return d3.nest().key(function(d) {return d.ctgy;}) + .rollup(function(v) {return d3.min(v, function(d) {return d.qnty;});}) + .entries(dato); + }; + + function groupData_max(dato){ + return d3.nest().key(function(d) {return d.ctgy;}) + .rollup(function(v) {return d3.max(v, function(d) {return d.qnty;});}) + .entries(dato); + }; + + function groupData_count(dato){ + return d3.nest().key(function(d) {return d.ctgy;}) + .rollup(function(v) { return v.length;}) + .entries(dato); + }; + + function descendent(a,b){ + if (a.value < b.value) return 1; + if (a.value > b.value) return -1; + return 0; + } + + + var title; + var dati; + function aggregateData(data, agg){ + + if (agg == 0){ + dati = groupData_sum(dropZeros(data)).sort(descendent); + title = "Sum"; + } else if (agg == 1){ + dati = groupData_mean(data).sort(descendent); + title = "Mean"; + } else if (agg == 2){ + dati = groupData_count(data).sort(descendent); + title = "Count"; + } else if (agg == 3){ + dati = groupData_max(dropZeros(data)).sort(descendent); + title = "Maximum"; + } else if (agg == 4){ + dati = groupData_min(dropZeros(data)).sort(descendent);; + title = "Minimum"; + }; + return dati; + }; + + function create(chartType){ + if (chartType == 0){ + aggregateData(data, agg); + if (dati.length > 20){ + var firstSet = dati.slice(0,19); + var lastSet = dati.slice(19,).reduce(function(a, b){ return {key: 'others', value: a.value + b.value }}); + firstSet.push(lastSet); + dati = firstSet; + }; + var chartArea = "#" + id; + var bar = barChart(category, quantity, title, id) + .x('key') + .y('value') + d3.select(chartArea) + .datum(dati) + .call(bar); + } else if (chartType == 1){ + aggregateData(data, agg) + if (dati.length > 10){ + var firstSet = dati.slice(0,9); + var lastSet = dati.slice(9,).reduce(function(a, b){ return {key: 'others', value: a.value + b.value }}); + firstSet.push(lastSet); + dati = firstSet; + }; + var chartArea = "#" + id; + var pie = pieChart(category, quantity, title, id) + .variable('value') + .category('key') + d3.select(chartArea) + .datum(dati) + .call(pie); + } else if (chartType == 2){ + aggregateData(data, agg) + if (dati.length > 10){ + var firstSet = dati.slice(0,9); + var lastSet = dati.slice(9,).reduce(function(a, b){ return {key: 'others', value: a.value + b.value }}); + firstSet.push(lastSet); + dati = firstSet; + }; + var chartArea = "#" + id; + var donut = donutChart(category, quantity, title, id) + .variable('value') + .category('key') + d3.select(chartArea) + .datum(dati) + .call(donut); + } else if (chartType == 3){ + aggregateData(data, agg) + if (dati.length > 20){ + var firstSet = dati.slice(0,19); + var lastSet = dati.slice(19,).reduce(function(a, b){ return {key: 'others', value: a.value + b.value }}); + firstSet.push(lastSet); + dati = firstSet; + }; + var chartArea = "#" + id; + var line = lineChart(category, quantity, title, id) + .x('key') + .y('value') + d3.select(chartArea) + .datum(dati) + .call(line); + } + }; + + create(chartType); + }); +}; + + + + + + diff --git a/haitidata/static/js/donut.js b/haitidata/static/js/donut.js new file mode 100644 index 0000000..03348e2 --- /dev/null +++ b/haitidata/static/js/donut.js @@ -0,0 +1,415 @@ +function donutChart(cat, qnt, title, id){ + var width = function(){ return document.getElementById(id).parentNode.offsetWidth}, + height = 500, + margin = {top: 80, right: 10, bottom: 10, left: 10}, + colour = d3.scaleOrdinal(d3.schemeCategory20c), // colour scheme + variable, // value in data that will dictate proportions on chart + category, // compare data by + padAngle = 0.015, // effectively dictates the gap between slices + transTime, // transition time + updateData, + floatFormat = d3.format("." + d3.precisionFixed(0.5) + "f"), + cornerRadius = 3; // sets how rounded the corners are on each slice + + function chart(selection){ + selection.each(function() { + // generate chart + // =========================================================================================== + // Set up constructors for making donut. See https://github.com/d3/d3-shape/blob/master/README.md + var radius = Math.min(width(), (height - margin.top)) / 2; + + // creates a new pie generator + var pie = d3.pie() + .value(function(d) { return floatFormat(d[variable]); }) + .sort(null); + + // contructs and arc generator. This will be used for the donut. The difference between outer and inner + // radius will dictate the thickness of the donut + var arc = d3.arc() + .outerRadius(radius * 0.8) + .innerRadius(radius * 0.6) + .cornerRadius(cornerRadius) + .padAngle(padAngle); + + // this arc is used for aligning the text labels + var outerArc = d3.arc() + .outerRadius(radius * 0.83) + .innerRadius(radius * 0.83); + // =========================================================================================== + + // =========================================================================================== + // append the svg object to the selection + // var svg = selection.append('svg') + var svg = selection.append('svg') + .attr("id", "chart_svg") + .attr('width', width() + margin.left + margin.right) + .attr('height', height + margin.top + margin.bottom) + .append('g') + .attr('transform', 'translate(' + width() / 2 + ',' + height / 2 + ')'); + // =========================================================================================== + + // =========================================================================================== + // g elements to keep elements within svg modular + svg.append('g').attr('class', 'slices'); + svg.append('g').attr('class', 'labelName'); + svg.append('g').attr('class', 'lines'); + // =========================================================================================== + + // =========================================================================================== + // add and colour the donut slices + var path = svg.select('.slices') + .selectAll('path') + .data(pie) + .enter().append('path') + .attr('fill', function(d) { return colour(d.data[category]); }) + .attr('d', arc); + // =========================================================================================== + + // =========================================================================================== + // add text labels + var occupedLabel = []; + var label = svg.select('.labelName').selectAll('text') + .data(pie) + .enter().append('text') + .attr('dy', '.35em') + .html(updateLabelText) + .attr('transform', labelTransform) + .style('text-anchor', function(d) { + // if slice centre is on the left, anchor text to start, otherwise anchor to end + return (midAngle(d)) < Math.PI ? 'start' : 'end'; + }); + // =========================================================================================== + + // =========================================================================================== + // add lines connecting labels to slice. A polyline creates straight lines connecting several points + var occupedPoint = []; + var polyline = svg.select('.lines') + .selectAll('polyline') + .data(pie) + .enter().append('polyline') + .attr('points', calculatePoints); + // =========================================================================================== + + // =========================================================================================== + // add tooltip to mouse events on slices and labels + d3.selectAll('.labelName text, .slices path').call(toolTip); + // =========================================================================================== + + // =========================================================================================== + // FUNCTION TO UPDATE CHART + updateData = function() { + + var updatePath = d3.select('.slices').selectAll('path'); + var updateLines = d3.select('.lines').selectAll('polyline'); + var updateLabels = d3.select('.labelName').selectAll('text'); + + var data0 = path.data(), // store the current data before updating to the new + data1 = pie(data); + + // update data attached to the slices, labels, and polylines. the key function assigns the data to + // the correct element, rather than in order of how the data appears. This means that if a category + // already exists in the chart, it will have its data updated rather than removed and re-added. + updatePath = updatePath.data(data1, key); + updateLines = updateLines.data(data1, key); + updateLabels = updateLabels.data(data1, key); + + // adds new slices/lines/labels + updatePath.enter().append('path') + .each(function(d, i) { this._current = findNeighborArc(i, data0, data1, key) || d; }) + .attr('fill', function(d) { return colour(d.data[category]); }) + .attr('d', arc); + + updateLines.enter().append('polyline') + .each(function(d, i) { this._current = findNeighborArc(i, data0, data1, key) || d; }) + .attr('points', calculatePoints); + + updateLabels.enter().append('text') + .each(function(d, i) { this._current = findNeighborArc(i, data0, data1, key) || d; }) + .html(updateLabelText) + .attr('transform', labelTransform) + .style('text-anchor', function(d) { return (midAngle(d)) < Math.PI ? 'start' : 'end'; }); + + // removes slices/labels/lines that are not in the current dataset + updatePath.exit() + .transition() + .duration(transTime) + .attrTween("d", arcTween) + .remove(); + + updateLines.exit() + .transition() + .duration(transTime) + .attrTween("points", pointTween) + .remove(); + + updateLabels.exit() + .remove(); + + // animates the transition from old angle to new angle for slices/lines/labels + updatePath.transition().duration(transTime) + .attrTween('d', arcTween); + + updateLines.transition().duration(transTime) + .attrTween('points', pointTween); + + updateLabels.transition().duration(transTime) + .attrTween('transform', labelTween) + .styleTween('text-anchor', labelStyleTween); + + updateLabels.html(updateLabelText); // update the label text + + // add tooltip to mouse events on slices and labels + d3.selectAll('.labelName text, .slices path').call(toolTip); + + }; + // =========================================================================================== + // Functions + // calculates the angle for the middle of a slice + function midAngle(d) { return d.startAngle + (d.endAngle - d.startAngle) / 2; } + + // function that creates and adds the tool tip to a selected element + function toolTip(selection) { + + // add tooltip (svg circle element) when mouse enters label or slice + selection.on('mouseenter', function (data) { + + svg.append('text') + .attr('class', 'toolCircle') + .attr('dy', -15) // hard-coded. can adjust this to adjust text vertical alignment in tooltip + .html(toolTipHTML(data)) // add text to the circle. + .style('font-size', '.9em') + .style('text-anchor', 'middle'); // centres text in tooltip + + svg.append('circle') + .attr('class', 'toolCircle') + .attr('r', radius * 0.55) // radius of tooltip circle + .style('fill', colour(data.data[category])) // colour based on category mouse is over + .style('fill-opacity', 0.35); + + }); + + // remove the tooltip when mouse leaves the slice/label + selection.on('mouseout', function () { + d3.selectAll('.toolCircle').remove(); + }); + } + + // function to create the HTML string for the tool tip. Loops through each key in data object + // and returns the html string key: value + function toolTipHTML(data) { + + var tip = '', + i = 0; + + for (var key in data.data) { + + // if value is a number, format it as float + var value = (!isNaN(parseFloat(data.data[key]))) ? parseFloat(data.data[key]) : data.data[key]; + qnt = (title == "Count" ? "Count" : qnt); + + // leave off 'dy' attr for first tspan so the 'dy' attr on text element works. The 'dy' attr on + // tspan effectively imitates a line break. + if (i === 0) tip += '' + cat + ': ' + value + ''; + else tip += '' + qnt + ': ' + value + ''; + i++; + } + + return tip; + } + + // calculate the points for the polyline to pass through + function calculatePoints(d) { + // see label transform function for explanations of these three lines. + var pos = outerArc.centroid(d); + var rev_pos = outerArc.centroid(d); + pos[0] = radius * 0.95 * (midAngle(d) < Math.PI ? 1 : -1); + // verify label conflict: if overlaps move up of 10 + if (pos[0] < 0 && pos[1] < 0) { + var i = 0; + if (occupedPoint.length >= 1){ + for (i = 0; i < occupedPoint.length; i++){ + if (pos[1] <= (occupedPoint[i] + 10) && (pos[1] >= (occupedPoint[i] - 10))){ + pos[1] = pos[1] - 20; + rev_pos[1] = rev_pos[1] - 20; + } + } + } occupedPoint.push(pos[1]); + } + return [arc.centroid(d), rev_pos, pos] + } + + function labelTransform(d) { + // effectively computes the centre of the slice. + // see https://github.com/d3/d3-shape/blob/master/README.md#arc_centroid + var pos = outerArc.centroid(d); + // verify label conflict: if overlaps move up of 10 + if (pos[0] < 0 && pos[1] < 0) { + var i = 0; + if (occupedLabel.length >= 1){ + for (i = 0; i < occupedLabel.length; i++){ + if (pos[1] <= (occupedLabel[i] + 10) && (pos[1] >= (occupedLabel[i] - 10))){ + pos[1] = pos[1] - 20; + } + } + } occupedLabel.push(pos[1]); + } + // changes the point to be on left or right depending on where label is. + pos[0] = radius * 0.95 * (midAngle(d) < Math.PI ? 1 : -1); + return 'translate(' + pos + ')'; + } + + function updateLabelText(d) { + return d.data[category] + ': ' + floatFormat(d.data[variable]) + ''; + } + + // function that calculates transition path for label and also it's text anchoring + function labelStyleTween(d) { + this._current = this._current || d; + var interpolate = d3.interpolate(this._current, d); + this._current = interpolate(0); + return function(t){ + var d2 = interpolate(t); + return midAngle(d2) < Math.PI ? 'start':'end'; + }; + } + + function labelTween(d) { + this._current = this._current || d; + var interpolate = d3.interpolate(this._current, d); + this._current = interpolate(0); + return function(t){ + var d2 = interpolate(t), + pos = outerArc.centroid(d2); // computes the midpoint [x,y] of the centre line that would be + // generated by the given arguments. It is defined as startangle + endangle/2 and innerR + outerR/2 + pos[0] = radius * (midAngle(d2) < Math.PI ? 1 : -1); // aligns the labels on the sides + return 'translate(' + pos + ')'; + }; + } + + function pointTween(d) { + this._current = this._current || d; + var interpolate = d3.interpolate(this._current, d); + this._current = interpolate(0); + return function(t){ + var d2 = interpolate(t), + pos = outerArc.centroid(d2); + pos[0] = radius * 0.95 * (midAngle(d2) < Math.PI ? 1 : -1); + return [arc.centroid(d2), outerArc.centroid(d2), pos]; + }; + } + + // function to calculate the tween for an arc's transition. + // see http://bl.ocks.org/mbostock/5100636 for a thorough explanation. + function arcTween(d) { + var i = d3.interpolate(this._current, d); + this._current = i(0); + return function(t) { return arc(i(t)); }; + } + + function findNeighborArc(i, data0, data1, key) { + var d; + return (d = findPreceding(i, data0, data1, key)) ? {startAngle: d.endAngle, endAngle: d.endAngle} + : (d = findFollowing(i, data0, data1, key)) ? {startAngle: d.startAngle, endAngle: d.startAngle} + : null; + } + // Find the element in data0 that joins the highest preceding element in data1. + function findPreceding(i, data0, data1, key) { + var m = data0.length; + while (--i >= 0) { + var k = key(data1[i]); + for (var j = 0; j < m; ++j) { + if (key(data0[j]) === k) return data0[j]; + } + } + } + + function key(d) { + return d.data[category]; + } + + // Find the element in data0 that joins the lowest following element in data1. + function findFollowing(i, data0, data1, key) { + var n = data1.length, m = data0.length; + while (++i < n) { + var k = key(data1[i]); + for (var j = 0; j < m; ++j) { + if (key(data0[j]) === k) return data0[j]; + } + } + } + + // =========================================================================================== + + }); + } + + // getter and setter functions. See Mike Bostocks post "Towards Reusable Charts" for a tutorial on how this works. + chart.width = function(value) { + if (!arguments.length) return width; + width = value; + return chart; + }; + + chart.height = function(value) { + if (!arguments.length) return height; + height = value; + return chart; + }; + + chart.margin = function(value) { + if (!arguments.length) return margin; + margin = value; + return chart; + }; + + chart.radius = function(value) { + if (!arguments.length) return radius; + radius = value; + return chart; + }; + + chart.padAngle = function(value) { + if (!arguments.length) return padAngle; + padAngle = value; + return chart; + }; + + chart.cornerRadius = function(value) { + if (!arguments.length) return cornerRadius; + cornerRadius = value; + return chart; + }; + + chart.colour = function(value) { + if (!arguments.length) return colour; + colour = value; + return chart; + }; + + chart.variable = function(value) { + if (!arguments.length) return variable; + variable = value; + return chart; + }; + + chart.category = function(value) { + if (!arguments.length) return category; + category = value; + return chart; + }; + + chart.transTime = function(value) { + if (!arguments.length) return transTime; + transTime = value; + return chart; + }; + + chart.data = function(value) { + if (!arguments.length) return data; + data = value; + if (typeof updateData === 'function') updateData(); + return chart; + }; + + return chart; +} \ No newline at end of file diff --git a/haitidata/static/js/getChart.js b/haitidata/static/js/getChart.js new file mode 100644 index 0000000..4c0f007 --- /dev/null +++ b/haitidata/static/js/getChart.js @@ -0,0 +1,56 @@ +var dict_title_tc = {0:"Bar",1:"Pie", 2:"Donut", 3:"Line"}; +var dict_title_agg = {0:"Sum",1:"Mean",2:"Count", 3:"Max", 4:"Min"}; + +function get_chart_detail(){ + var id = "chart_area_plain" + //create area for chart + var createChartArea = function() { + var chartArea = document.getElementById(id); + chartArea.style= "display:table; height:100%"; + }; + + // update chart + var replaceChart = function(){ + doc_chart = document.getElementById(id); + if(doc_chart.childElementCount >= 1){ + doc_chart.removeChild(doc_chart.childNodes[1]); + createChartArea(); + }; + }; + + var chartArea = document.getElementById(id); + createChartArea(); + replaceChart(); + console.log("son qui") + getCsv(csv_url, category, quantity, agg, chart_type, id); +} + +function title_detail(){ + + chart_type = dict_title_tc[chart_type] + return document.getElementById("title_detail").innerHTML = chart_type + " chart based on " + lyr + " layer (Category field: " + category + ", Quantity field: " + quantity + ")"; +} + +function get_chart_popup(){ + var id = "chart_area"; + //create area for chart + var createChartArea = function() { + var chartArea = document.getElementById(id); + chartArea.style= "display:table"; + }; + // update chart + var replaceChart = function(){ + doc_chart = document.getElementById(id); + if(doc_chart.childElementCount >= 1){ + doc_chart.removeChild(doc_chart.childNodes[1]); + createChartArea(); + }; + }; + if (document.getElementById("id_title").value == ""){ + document.getElementById("chart_title").innerHTML = suggestedTitle; + }else document.getElementById("chart_title").innerHTML = document.getElementById("id_title").value; + createChartArea(); + replaceChart(); + attachAbstract(); + getCsv(csv_url, category, quantity, agg, chart_type, id); +} diff --git a/haitidata/static/js/line.js b/haitidata/static/js/line.js new file mode 100644 index 0000000..7eb3266 --- /dev/null +++ b/haitidata/static/js/line.js @@ -0,0 +1,192 @@ +function lineChart(cat, qnt, title, id){ + var width = function(){ return document.getElementById(id).offsetWidth}, + height = 500, + xScale = d3.scaleBand(), + yScale = d3.scaleLinear(), + colour = "steelblue", + x, + y, + margin = { top: 30, bottom: 30, left: 30, right: 30 }, + floatFormat = d3.format("." + d3.precisionFixed(0.5) + "f"), + xAxis = d3.axisBottom(xScale), + yAxis = d3.axisLeft(yScale); + + function my(selection){ + + selection.each(function(data) { + + var svg_name = "chart_svg" + id; + var svg = selection.append('svg') + .attr("id", svg_name) + .attr("width", width()) + .attr("height", height); + + var g = svg.selectAll("g") + .data([1]); + g = g.enter().append("g") + .merge(g) + .attr("class", svg_name) + .attr("transform", + "translate(" + margin.left + "," + margin.top +")"); + + + var innerWidth = width() - margin.left - margin.right ; + var innerHeight = function(){ return height - margin.top - margin.bottom} ; + + + xScale + .domain(data.map(function (d){ return d[x]; })) + .range([0, (innerWidth - margin.right)]); + + + // X axis + var xAxis_name = "x-axis_" + id; + var xAxis_call = "." + xAxis_name; + var xAxisG = g.selectAll(xAxis_call).data([1]); + xAxisG.enter().append("g") + .attr("class", xAxis_name) + .merge(xAxisG) + .attr("transform", "translate(0," + innerHeight() +")") + .call(xAxis); + + // labels X ax,is + // rotate text if is longer than... + var rotate = 0; + d3.select(this).select(xAxis_call).selectAll("text").each(function(){ + if (this.getBBox().width > xScale.bandwidth()){ + rotate = 1 + d3.select(xAxis_call).selectAll("text").attr("transform", "rotate(-90)") + .attr("y", 0) + .attr("x", -10) + .attr("dy", ".35em") + .style("text-anchor", "end"); + }}); + + // adjust margin and x axis title + var maxh = 15; + if (rotate == 1) { + d3.select(this).select(".x-axis").selectAll("text").each(function(){ + if (this.getBBox().width > maxh) + maxh = this.getBBox().width; + });}; + margin.bottom = margin.bottom + maxh; + d3.select(xAxis_call).attr("transform", "translate(0," + (innerHeight()) + ")"); + + var text_name = "text_" + id; + g.append("text") + .attr("class", text_name) + .attr("transform", "translate(" + (innerWidth/2) + ", " + (innerHeight() + margin.bottom - 5) + ")") + .style("font-size", "12px") + .style("text-anchor", "middle") + .text(cat); + + yScale + .domain([0, d3.max(data, function (d){ return d[y] ;})]) + .range([innerHeight(), 0]); + + // Y axis + var yAxis_name = "y-axis_" + id; + var yAxis_call = "." + yAxis_name; + var yAxisG = g.selectAll(yAxis_call).data([1]); + yAxisG.enter().append("g") + .attr("class", yAxis_name) + .merge(yAxisG) + .call(yAxis); + + //labels Y axis + var maxw = 0; + d3.select(this).select(yAxis_call).selectAll("text").each(function(){ + if (this.getBBox().width > maxw) { + maxw = this.getBBox().width; + } + }); + margin.left = margin.left + maxw; + g.attr("transform", "translate(" + margin.left + "," + margin.top + ")"); + + var yLabel = function(){ + if (title == "Count"){ + return "Count"; + } else { + return qnt; + }}; + + g.append("text") + .attr("class", text_name) + .attr("transform", "rotate(-90)") + .attr("x", 0 - (innerHeight()/2)) + .attr("y", 0 - (margin.left)) + .attr("dy", "1em") + .style("font-size", "12px") + .style("text-anchor", "middle") + .text(yLabel); + + //div for tooltip + var div = d3.select("body").append("div") + .style("width","auto") + .style("height", "auto") + .attr("class", "tooltip") + .style("opacity", 0); + + + // lines + var line = d3.line() + .x(function(d) { return xScale(d[x]); }) + .y(function(d) { return yScale(d[y]); }); + + + g.append("path") + .data([data]) + .attr("fill", "none") + .attr("stroke", "steelblue") + .attr("stroke-linejoin", "round") + .attr("stroke-linecap", "round") + .attr("stroke-width", 1.5) + .attr("transform", "translate(" + (xScale.bandwidth() /2) + ", 0)") + .attr("d", line); + + g.selectAll("dot") + .data(data) + .enter().append("circle") + .attr("r", 3.5) + .attr("transform", "translate(" + (xScale.bandwidth() /2) + ", 0)") + .attr("cx", function(d) { return xScale(d[x]); }) + .attr("cy", function(d) { return yScale(d[y]); }) + .on("mouseover", function(d){ + div.transition() + .duration(200) + .style("opacity", 1); + div.html(cat + ": " + d.key + "
    " + yLabel() + ": " + d.value) + .style("left", (d3.event.pageX) + "px") + .style("top", (d3.event.pageY - 40) + "px"); + }) + .on("mouseout", function(d) { + div.transition() + .duration(500) + .style("opacity", 0); + }); + + }); + } + + my.x = function (_){ + return arguments.length ? (x = _, my) : x; + }; + + my.y = function (_){ + return arguments.length ? (y = _, my) : y; + }; + + my.width = function (_){ + return arguments.length ? (width = _, my) : width; + }; + + my.height = function (_){ + return arguments.length ? (height = _, my) : height; + }; + + my.padding = function (_){ + return arguments.length ? (xScale.padding(_), my) : xScale.padding(); + }; + + return my; + } \ No newline at end of file diff --git a/haitidata/static/js/pie.js b/haitidata/static/js/pie.js new file mode 100644 index 0000000..ea9478b --- /dev/null +++ b/haitidata/static/js/pie.js @@ -0,0 +1,415 @@ +function pieChart(cat, qnt, title, id){ + var width = function(){ return document.getElementById(id).parentNode.offsetWidth}, + height = 500, + margin = {top: 80, right: 100, bottom: 10, left: 10}, + colour = d3.scaleOrdinal(d3.schemeCategory20c), // colour scheme + variable, // value in data that will dictate proportions on chart + category, // compare data by + padAngle = 0.015, // effectively dictates the gap between slices + transTime, // transition time + updateData, + floatFormat = d3.format("." + d3.precisionFixed(0.5) + "f"), + cornerRadius = 3; // sets how rounded the corners are on each slice + + function chart(selection){ + selection.each(function() { + // generate chart + // =========================================================================================== + // Set up constructors for making donut. See https://github.com/d3/d3-shape/blob/master/README.md + var radius = Math.min(width(), (height - margin.top)) / 2; + + // creates a new pie generator + var pie = d3.pie() + .value(function(d) { return floatFormat(d[variable]); }) + .sort(null); + + // contructs and arc generator. This will be used for the donut. The difference between outer and inner + // radius will dictate the thickness of the donut + var arc = d3.arc() + .outerRadius(radius * 0.8) + .innerRadius(2) + .cornerRadius(cornerRadius) + .padAngle(padAngle); + + // this arc is used for aligning the text labels + var outerArc = d3.arc() + .outerRadius(radius * 0.83) + .innerRadius(radius * 0.83); + // =========================================================================================== + + // =========================================================================================== + // append the svg object to the selection + var svg = selection.append('svg') + .attr("id", "chart_svg") + .attr('width', width() + margin.left + margin.right) + .attr('height', height + margin.top + margin.bottom) + .append('g') + .attr('transform', 'translate(' + width() / 2 + ',' + height / 2 + ')'); + // =========================================================================================== + + // =========================================================================================== + // g elements to keep elements within svg modular + svg.append('g').attr('class', 'slices'); + svg.append('g').attr('class', 'labelName'); + svg.append('g').attr('class', 'lines'); + // =========================================================================================== + + // =========================================================================================== + // add and colour the donut slices + var path = svg.select('.slices') + .selectAll('path') + .data(pie) + .enter().append('path') + .attr('fill', function(d) { return colour(d.data[category]); }) + .attr('d', arc); + // =========================================================================================== + + // =========================================================================================== + // add text labels + var occupedLabel = []; + var label = svg.select('.labelName').selectAll('text') + .data(pie) + .enter().append('text') + .attr('dy', '.35em') + .html(updateLabelText) + .attr('transform', labelTransform) + .style('text-anchor', function(d) { + // if slice centre is on the left, anchor text to start, otherwise anchor to end + return (midAngle(d)) < Math.PI ? 'start' : 'end'; + }); + // =========================================================================================== + + // =========================================================================================== + // add lines connecting labels to slice. A polyline creates straight lines connecting several points + var occupedPoint = []; + var polyline = svg.select('.lines') + .selectAll('polyline') + .data(pie) + .enter().append('polyline') + .attr('points', calculatePoints); + // =========================================================================================== + + // =========================================================================================== + // add tooltip to mouse events on slices and labels + d3.selectAll('.labelName text, .slices path').call(toolTip); + // =========================================================================================== + + // =========================================================================================== + // FUNCTION TO UPDATE CHART + updateData = function() { + + var updatePath = d3.select('.slices').selectAll('path'); + var updateLines = d3.select('.lines').selectAll('polyline'); + var updateLabels = d3.select('.labelName').selectAll('text'); + + var data0 = path.data(), // store the current data before updating to the new + data1 = pie(data); + + // update data attached to the slices, labels, and polylines. the key function assigns the data to + // the correct element, rather than in order of how the data appears. This means that if a category + // already exists in the chart, it will have its data updated rather than removed and re-added. + updatePath = updatePath.data(data1, key); + updateLines = updateLines.data(data1, key); + updateLabels = updateLabels.data(data1, key); + + // adds new slices/lines/labels + updatePath.enter().append('path') + .each(function(d, i) { this._current = findNeighborArc(i, data0, data1, key) || d; }) + .attr('fill', function(d) { return colour(d.data[category]); }) + .attr('d', arc); + + updateLines.enter().append('polyline') + .each(function(d, i) { this._current = findNeighborArc(i, data0, data1, key) || d; }) + .attr('points', calculatePoints); + + updateLabels.enter().append('text') + .each(function(d, i) { this._current = findNeighborArc(i, data0, data1, key) || d; }) + .html(updateLabelText) + .attr('transform', labelTransform) + .style('text-anchor', function(d) { return (midAngle(d)) < Math.PI ? 'start' : 'end'; }); + + // removes slices/labels/lines that are not in the current dataset + updatePath.exit() + .transition() + .duration(transTime) + .attrTween("d", arcTween) + .remove(); + + updateLines.exit() + .transition() + .duration(transTime) + .attrTween("points", pointTween) + .remove(); + + updateLabels.exit() + .remove(); + + // animates the transition from old angle to new angle for slices/lines/labels + updatePath.transition().duration(transTime) + .attrTween('d', arcTween); + + updateLines.transition().duration(transTime) + .attrTween('points', pointTween); + + updateLabels.transition().duration(transTime) + .attrTween('transform', labelTween) + .styleTween('text-anchor', labelStyleTween); + + updateLabels.html(updateLabelText); // update the label text + + // add tooltip to mouse events on slices and labels + d3.selectAll('.labelName text, .slices path').call(toolTip); + + }; + // =========================================================================================== + // Functions + // calculates the angle for the middle of a slice + function midAngle(d) { return d.startAngle + (d.endAngle - d.startAngle) / 2}; + + // function that creates and adds the tool tip to a selected element + function toolTip(selection) { + + // add tooltip (svg circle element) when mouse enters label or slice + selection.on('mouseenter', function (data) { + + svg.append('rect') + .attr('transform', "translate(-320, 230)") + .attr('class', 'toolRect') + .attr("width", 190) + .attr("height", 60) + .style('fill', colour(data.data[category])) // colour based on category mouse is over + .style('fill-opacity', 0.35); + + svg.append('text') + .attr('transform', "translate(-310, 255)") + .attr('class', 'toolRect') + .html(toolTipHTML(data)) // add text to the rect + .style('font-size', '.9em'); // centres text in tooltip + }); + + // remove the tooltip when mouse leaves the slice/label + selection.on('mouseout', function () { + d3.selectAll('.toolRect').remove(); + }); + } + + // function to create the HTML string for the tool tip. Loops through each key in data object + // and returns the html string key: value + function toolTipHTML(data) { + + var tip = '', + i = 0; + + for (var key in data.data) { + + // if value is a number, format it as a float + var value = (!isNaN(data.data[key])) ? parseFloat(data.data[key]) : data.data[key]; + qnt = (title == "Count" ? "Count" : qnt); + + // leave off 'dy' attr for first tspan so the 'dy' attr on text element works. The 'dy' attr on + // tspan effectively imitates a line break. + if (i === 0) tip += '' + cat + ': ' + value + ''; + else tip += '' + qnt + ': ' + floatFormat(value) + ''; + i++; + } + + return tip; + } + + // calculate the points for the polyline to pass through + function calculatePoints(d) { + // see label transform function for explanations of these three lines. + var pos = outerArc.centroid(d); + var rev_pos = outerArc.centroid(d); + pos[0] = radius * 0.95 * (midAngle(d) < Math.PI ? 1 : -1); + // verify label conflict: if overlaps move up of 10 + if (pos[0] < 0 && pos[1] < 0) { + var i = 0; + if (occupedPoint.length >= 1){ + for (i = 0; i < occupedPoint.length; i++){ + if (pos[1] <= (occupedPoint[i] + 10) && (pos[1] >= (occupedPoint[i] - 10))){ + pos[1] = pos[1] - 20; + rev_pos[1] = rev_pos[1] - 20; + } + } + } occupedPoint.push(pos[1]); + } + return [arc.centroid(d), rev_pos, pos] + } + + + function labelTransform(d) { + // effectively computes the centre of the slice. + // see https://github.com/d3/d3-shape/blob/master/README.md#arc_centroid + var pos = outerArc.centroid(d); + // verify label conflict: if overlaps move up of 10 + if (pos[0] < 0 && pos[1] < 0) { + var i = 0; + if (occupedLabel.length >= 1){ + for (i = 0; i < occupedLabel.length; i++){ + if (pos[1] <= (occupedLabel[i] + 10) && (pos[1] >= (occupedLabel[i] - 10))){ + pos[1] = pos[1] - 20; + } + } + } occupedLabel.push(pos[1]); + } + // changes the point to be on left or right depending on where label is. + pos[0] = radius * 0.95 * (midAngle(d) < Math.PI ? 1 : -1); + return 'translate(' + pos + ')'; + } + + function updateLabelText(d) { + return d.data[category] + ': ' + floatFormat(d.data[variable]) + ''; + } + + // function that calculates transition path for label and also it's text anchoring + function labelStyleTween(d) { + this._current = this._current || d; + var interpolate = d3.interpolate(this._current, d); + this._current = interpolate(0); + return function(t){ + var d2 = interpolate(t); + return midAngle(d2) < Math.PI ? 'start':'end'; + }; + } + + function labelTween(d) { + this._current = this._current || d; + var interpolate = d3.interpolate(this._current, d); + this._current = interpolate(0); + return function(t){ + var d2 = interpolate(t), + pos = outerArc.centroid(d2); // computes the midpoint [x,y] of the centre line that would be + // generated by the given arguments. It is defined as startangle + endangle/2 and innerR + outerR/2 + pos[0] = radius * (midAngle(d2) < Math.PI ? 1 : -1); // aligns the labels on the sides + return 'translate(' + pos + ')'; + }; + } + + function pointTween(d) { + this._current = this._current || d; + var interpolate = d3.interpolate(this._current, d); + this._current = interpolate(0); + return function(t){ + var d2 = interpolate(t), + pos = outerArc.centroid(d2); + pos[0] = radius * 0.95 * (midAngle(d2) < Math.PI ? 1 : -1); + return [arc.centroid(d2), outerArc.centroid(d2), pos]; + }; + } + + // function to calculate the tween for an arc's transition. + // see http://bl.ocks.org/mbostock/5100636 for a thorough explanation. + function arcTween(d) { + var i = d3.interpolate(this._current, d); + this._current = i(0); + return function(t) { return arc(i(t)); }; + } + + function findNeighborArc(i, data0, data1, key) { + var d; + return (d = findPreceding(i, data0, data1, key)) ? {startAngle: d.endAngle, endAngle: d.endAngle} + : (d = findFollowing(i, data0, data1, key)) ? {startAngle: d.startAngle, endAngle: d.startAngle} + : null; + } + // Find the element in data0 that joins the highest preceding element in data1. + function findPreceding(i, data0, data1, key) { + var m = data0.length; + while (--i >= 0) { + var k = key(data1[i]); + for (var j = 0; j < m; ++j) { + if (key(data0[j]) === k) return data0[j]; + } + } + } + + function key(d) { + return d.data[category]; + } + + // Find the element in data0 that joins the lowest following element in data1. + function findFollowing(i, data0, data1, key) { + var n = data1.length, m = data0.length; + while (++i < n) { + var k = key(data1[i]); + for (var j = 0; j < m; ++j) { + if (key(data0[j]) === k) return data0[j]; + } + } + } + + // =========================================================================================== + + }); + } + + // getter and setter functions. See Mike Bostocks post "Towards Reusable Charts" for a tutorial on how this works. + chart.width = function(value) { + if (!arguments.length) return width; + width = value; + return chart; + }; + + chart.height = function(value) { + if (!arguments.length) return height; + height = value; + return chart; + }; + + chart.margin = function(value) { + if (!arguments.length) return margin; + margin = value; + return chart; + }; + + chart.radius = function(value) { + if (!arguments.length) return radius; + radius = value; + return chart; + }; + + chart.padAngle = function(value) { + if (!arguments.length) return padAngle; + padAngle = value; + return chart; + }; + + chart.cornerRadius = function(value) { + if (!arguments.length) return cornerRadius; + cornerRadius = value; + return chart; + }; + + chart.colour = function(value) { + if (!arguments.length) return colour; + colour = value; + return chart; + }; + + chart.variable = function(value) { + if (!arguments.length) return variable; + variable = value; + return chart; + }; + + chart.category = function(value) { + if (!arguments.length) return category; + category = value; + return chart; + }; + + chart.transTime = function(value) { + if (!arguments.length) return transTime; + transTime = value; + return chart; + }; + + chart.data = function(value) { + if (!arguments.length) return data; + data = value; + if (typeof updateData === 'function') updateData(); + return chart; + }; + + return chart; +} \ No newline at end of file diff --git a/haitidata/static/less/haitidata.less b/haitidata/static/less/haitidata.less index bfb7224..80cea58 100755 --- a/haitidata/static/less/haitidata.less +++ b/haitidata/static/less/haitidata.less @@ -175,7 +175,7 @@ form { .navbar-header { i { - color: white; + color: @brand-primary; font-size: 2em; } @@ -712,6 +712,60 @@ footer { .grid-spacer { margin-top: 30px; } + +#accordion { + .panel { + border-radius: 0; + border-top: 2px solid @gray-light; + line-height: 1em; + } + .panel-heading { + background: none; + border: 0; + } + .panel-body { + img { + margin-bottom: 1em; + } + small { + color: @gray; + font-size: 0.825em; + } + form { + font-size: 0.825em; + .form-control { + background: none; + color: @gray-dark; + font-size: 0.825em; + height: 24px; + line-height: 1; + -webkit-box-shadow: none; + box-shadow: none; + } + } + } +} + +#create-chart { + small { + color: @gray; + font-size: 0.825em; + } + form { + font-size: 0.825em; + .form-control { + background: none; + color: @gray-dark; + font-size: 0.825em; + height: 24px; + line-height: 1; + -webkit-box-shadow: none; + box-shadow: none; + } + } +} + + /* ------ OSGeo Importer ------------------------------ */ body.importer { diff --git a/haitidata/templates/charts_app/chart_base.html b/haitidata/templates/charts_app/chart_base.html new file mode 100644 index 0000000..63868a1 --- /dev/null +++ b/haitidata/templates/charts_app/chart_base.html @@ -0,0 +1,12 @@ +{% extends "site_base.html" %} +{% load i18n %} +{% load url from future %} + +{% block title %} {{ block.super }} {% endblock %} + +{% block body_class %}Charts{% endblock %} + +{% block body_outer %} +{% block body %}{% endblock body %} +{% block sidebar %}{% endblock sidebar %} +{% endblock body_outer %} diff --git a/haitidata/templates/charts_app/chart_confirm_delete.html b/haitidata/templates/charts_app/chart_confirm_delete.html new file mode 100644 index 0000000..7baa790 --- /dev/null +++ b/haitidata/templates/charts_app/chart_confirm_delete.html @@ -0,0 +1,26 @@ +{% extends "charts_app/chart_base.html" %} +{% load i18n %} + +{% block title %}{% trans "Deleting" %} {{ object.title }} — {{ block.super }}{% endblock %} + +{% block body %} + +
    +
    +

    + {% blocktrans with object.title as object_title %} + Are you sure you want to remove {{ object_title }} chart? + {% endblocktrans %} +

    +
    + {% csrf_token %} + +
    +
    +
    +{% endblock %} \ No newline at end of file diff --git a/haitidata/templates/charts_app/chart_detail.html b/haitidata/templates/charts_app/chart_detail.html new file mode 100644 index 0000000..bf72025 --- /dev/null +++ b/haitidata/templates/charts_app/chart_detail.html @@ -0,0 +1,368 @@ +{% extends "charts_app/chart_base.html" %} +{% load i18n %} +{% load dialogos_tags %} +{% load agon_ratings_tags %} +{% load bootstrap_tags %} +{% load url from future %} +{% load base_tags %} +{% load guardian_tags %} + +{% block page-title %} + {% trans "Explore Charts" %} + +{% endblock %} + +{% block subheader %} +
    +
    +
    +
    +

    {{ object.title }}

    +

    + +

    + {% block social_links %} + {% if SOCIAL_BUTTONS %} + {% include "social_links.html" %} + {% endif %} + {% endblock %} +
    +
    +
    +
    +{% endblock %} + + + +{% block body_outer %} + + + + + + + + + +
    +
    +
    +

    Abstract

    +

    {{ object.abstract }}

    +
    + {% include "_actions.html" %} +
    + +
    + +
    + +
    + +
    + +
    + +
    + + +

    {% trans "Rate this document" %}

    + +
    + +

    {% trans 'Average Rating' %}

    + +
    ({{num_votes}}) + +
    +
    +
    + +
    +
  • + + + +
  • +
  • +

    {% trans "Modify this Chart" %}

    +

    {% trans "Change type of the chart or type of aggregation." %}

    + + + +
    +
    + {% csrf_token %} +
    + +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +

    Suggested title:

    +

    Testo di prova

    +
    +
    +
    + +
    + + +
    +
    + + +
    +
    +
  • +
  • + + + +
  • +
  • + +
  • +
    +
    + + + + + + + + + + + +{% endblock %} diff --git a/haitidata/templates/charts_app/chart_list.html b/haitidata/templates/charts_app/chart_list.html new file mode 100644 index 0000000..4003d26 --- /dev/null +++ b/haitidata/templates/charts_app/chart_list.html @@ -0,0 +1,65 @@ +{% extends "charts_app/chart_base.html" %} +{% load i18n %} +{% load staticfiles %} +{% load url from future %} + +{% block title %}{{ block.super }} {% trans "Charts" %}{% endblock %} +{% block page-title %} + {% trans "Explore Charts" %} + {% if user.is_authenticated %} + + {% endif %} +{% endblock %} + +{% block body_class %}charts + +{% endblock %} + +{% block body %} + + {% with include_type_filter='true' %} + {% with facet_type='charts' %} + {% with header='Chart Type' %} + {% with filter='doc_type__in' %} + {% include "search/_search_content.html" %} + + {% endwith %} + {% endwith %} + {% endwith %} + {% endwith %} +
    +

    CHARTS

    +
      + {% for chart in object_list %} +
    • {{ chart.title }}
    • +
    • {{ chart.layer }} - {{ chart.category }} - {{ chart.quantity }}
    • +
    • {{ chart.type }} - {{ chart.agg_type }}
    • +
    • {{ chart.abstract }}
    • +
      + {% empty %} +
    • No Charts yet!
    • + {% endfor %} +
    +
    + {% include "_bulk_permissions_form.html" %} + + + +{% endblock %} + +{% block extra_script %} + {% if GEONODE_SECURITY_ENABLED %} + {% include "_permissions_form_js.html" %} + {% endif %} + + {% with include_spatial='true' %} + {% endwith %} +{% endblock extra_script %} diff --git a/haitidata/templates/charts_app/chart_update_form.html b/haitidata/templates/charts_app/chart_update_form.html new file mode 100644 index 0000000..f30fd8e --- /dev/null +++ b/haitidata/templates/charts_app/chart_update_form.html @@ -0,0 +1,356 @@ +{% extends "charts_app/chart_base.html" %} +{% load i18n %} +{% load dialogos_tags %} +{% load agon_ratings_tags %} +{% load bootstrap_tags %} +{% load url from future %} +{% load base_tags %} +{% load guardian_tags %} + +{% block page-title %} + {% trans "Explore Charts" %} + +{% endblock %} + +{% block subheader %} +
    +
    +
    +
    +

    {{ object.title }}

    +

    + +

    + {% block social_links %} + {% if SOCIAL_BUTTONS %} + {% include "social_links.html" %} + {% endif %} + {% endblock %} +
    +
    +
    +
    +{% endblock %} + + + +{% block body_outer %} + + + + + + + + + +
    +
    +
    +

    Abstract

    +

    {{ object.abstract }}

    +
    + {% include "_actions.html" %} +
    + +
    + +
    + +
    + +
    + +
    + +
    + + +

    {% trans "Rate this document" %}

    + +
    + +

    {% trans 'Average Rating' %}

    + +
    ({{num_votes}}) + +
    +
    +
    + +
    +
  • + + + +
  • +
  • +

    {% trans "Modify this Chart" %}

    +

    {% trans "Change type of the chart or type of aggregation." %}

    + + + +
    +
    + {% csrf_token %} + {{ form.non_field_errors }} +
    + {{ form.layer.as_hidden }} +
    +
    + {{ form.category.as_hidden }} +
    +
    + {{ form.quantity.as_hidden }} +
    +
    + {{ form.title.errors }} + + {{ form.title }} +
    +
    + {{ form.type.errors }} + + {{ form.type }} +
    +
    + {{ form.aggr_type.errors }} + + {{ form.aggr_type }} +
    +
    + {{ form.abstract.errors }} + + {{ form.abstract }} +
    + + +
    +
    +
  • +
  • + + + +
  • +
    +
    + + + + + +
    + +
    + + + + + +{% endblock %} diff --git a/haitidata/templates/geonode-client/layer_map.html b/haitidata/templates/geonode-client/layer_map.html index 2ba679b..6af8bc2 100644 --- a/haitidata/templates/geonode-client/layer_map.html +++ b/haitidata/templates/geonode-client/layer_map.html @@ -20,8 +20,8 @@ {% else %} printService: "", {% endif %} - /* The URL to a REST map configuration service. This service - * provides listing and, with an authenticated user, saving of + /* The URL to a REST map configuration service. This service + * provides listing and, with an authenticated user, saving of * maps on the server for sharing and editing. */ rest: "{% url "maps_browse" %}", diff --git a/haitidata/templates/layers-paolo/layer_detail.html b/haitidata/templates/layers-paolo/layer_detail.html new file mode 100644 index 0000000..17d24a8 --- /dev/null +++ b/haitidata/templates/layers-paolo/layer_detail.html @@ -0,0 +1,708 @@ +{% extends "layers/layer_base.html" %} +{% load i18n %} +{% load dialogos_tags %} +{% load agon_ratings_tags %} +{% load bootstrap_tags %} +{% load pagination_tags %} +{% load url from future %} +{% load base_tags %} +{% load guardian_tags %} + +{% block title %}{{ block.super }} {% trans "Layers" %} | {{ resource.title|default:resource.typename }}{% endblock %} +{% block page-title %} + {% trans "Explore Layers" %} + +{% endblock %} + +{% block head %} + + {% if TWITTER_CARD %} + {% include "base/_resourcebase_twittercard.html" %} + {% endif %} + + {% if OPENGRAPH_ENABLED %} + {% include "base/_resourcebase_opengraph.html" %} + {% endif %} + + {% if preview == 'geoext' %} + {% include "layers/layer_geoext_map.html" %} + {% elif preview == 'OL3' %} + {% include "layers/layer_ol3_map.html" %} + {% elif preview == 'react' %} + {% include 'geonode-client/layer_map.html' %} + {% else %} + {% include "layers/layer_leaflet_map.html" %} + {% endif %} +{{ block.super }} +{% endblock %} + + +{% block body_class %}layers{% endblock %} + +{% block subheader %} +
    +
    +
    +
    +

    {{ resource.title|default:resource.typename }}

    +

    + {{ resource.service_type }} + {% if resource.category %} + {% trans "in" %} {{ resource.category }} | + {% endif %} + {% if resource.date %} + {% if resource.date_type == 'creation' %} {% trans "Created on" %} {{ resource.date }} + {% elif resource.date_type == 'publication' %} {% trans "Published on" %} {{ resource.date }} + {% else %} {% trans "Updated on" %} {{ resource.date }} + {% endif %} + {% endif %} +

    + {% block social_links %} + {% if SOCIAL_BUTTONS %} + {% include "social_links.html" %} + {% endif %} + {% endblock %} +
    +
    +
    +
    +{% endblock %} + +{% block body_outer %} +
    + + + +
    +
    +
    +
    + + + + + + + + +
    + {% include "_actions.html" %} +
    + +
    + +
    + {% include "base/resourcebase_info_panel.html" %} +
    + + {% if resource.is_mosaic %} +
    +
    + +
    + {% csrf_token %} +   +
    + {% if filter %} + {% trans "Active Filter:" %} {{ filter }} + {% endif %} +
    + + + + + + + + + + + + {% autopaginate all_granules.features 10 %} + {% for feature in granules.features %} + + + + + + + + {% endfor %} + +
    {% trans "Bounding Box" %} (minX,minY,maxX,maxY){% trans "Time" %}{% trans "Actions" %}
    {% if feature.properties.time %}{{ feature.properties.time }}{% endif %} + Granule Preview + Granule Remove + +
    +
    + {% paginate %} +
    + {% endif %} + +
    + {% if resource.is_mosaic %} + + + + + + + + + + + + + + + + +
    {% trans "Dimension" %}{% trans "Enabled" %}{% trans "Regex" %}
    {% trans "TIME" %}{% if resource.has_time %}{% trans "True" %}{% else %}{% trans "False" %}{% endif %}{% if resource.time_regex %}{{ resource.time_regex }}{% else %} {% endif %}
    + {% endif %} + {% if resource.attribute_set.all %} + + + + + + + {% if wps_enabled %} + + + + + {% endif %} + + + + {% for attribute in resource.attributes %} + + + + + {% if wps_enabled %} + {% if attribute.unique_values == "NA" %} + + {% else %} + + {% endif %} + + + + {% endif %} + + {% endfor %} + +
    {% trans "Attribute Name" %}{% trans "Label" %}{% trans "Description" %}{% trans "Range" %}{% trans "Average" %}{% trans "Median" %}{% trans "Standard Deviation" %}
    {{ attribute }}{{ attribute.attribute_label|default:"" }}{{ attribute.description|default:"" }}{{ attribute.unique_values }} + + {{ attribute.average|floatformat:"2" }}{{ attribute.median|floatformat:"2" }}{{ attribute.stddev|floatformat:"2" }}
    + {% endif %} +
    + +
    + {% with resource as obj %} + {% include "_comments.html" %} + {% endwith %} +
    + + {% if GEOGIG_ENABLED and resource.link_set.geogig %} + {% with "_geogig_layer_detail.html" as geogig_template %} +
    + {% with resource as obj %} + {% include geogig_template %} + {% endwith %} +
    + {% endwith %} + {% endif %} + +
    + + {% if request.user.is_authenticated %} +

    {% trans "Rate this layer" %}

    + {% user_rating request.user resource "layer" as user_layer_rating %} +
    + {% endif %} +

    {% trans 'Average Rating' %}

    + {% overall_rating resource "layer" as layer_rating %} + {% num_ratings resource as num_votes %} +
    ({{num_votes}}) +
    + +
    + +
    + +
    + +
    +
    + +
    +
    + + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. +
    +
    +
    +
    + +
    +
    + Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS. +
    +
    +
    +
    + +
    +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +
    + + +
    +
    +
    +
    + +
      + {% if resource.storeType != "remoteStore" %} +
    • + {% if links or links_download %} + + {% else %} + {% if request.user.is_authenticated %} + + {% endif %} + {% endif %} +
    • + {% endif %} + + + {% if GEOSERVER_BASE_URL %} + {% get_obj_perms request.user for resource.layer as "layer_perms" %} + {% endif %} + +
    • + + + +
    • + + {% if "change_resourcebase_metadata" in perms_list or "change_resourcebase" in perms_list or "delete_resourcebase" in perms_list or "change_layer_style" in layer_perms %} +
    • + +
    • + + {% endif %} + +
    • + +
    • + + + + {% if resource.get_legend %} +
    • +

      {%trans "Legend" %}

      +

      {{ style.sld_title }}

      + {% if resource.get_legend.link_type == 'image' %} + {% if request.user.is_authenticated and 'access_token' in request.session %} +

      + {% else %} +

      + {% endif %} + {% else %} +
      + {% endif %} +
    • + {% endif %} +
    • +

      {% trans "Maps using this layer" %}

      + {% if resource.maps %} +

      {% trans "List of maps using this layer:" %}

      + {% endif %} +
        + {% for maplayer in resource.maps %} +
      • {{ maplayer.map.title }}
      • + {% empty %} +
      • {% trans "This layer is not currently used in any maps." %}
      • + {% endfor %} +
      +
    • +
    • +

      {% trans "Create a map using this layer" %}

      +

      {% trans "Click the button below to generate a new map based on this layer." %}

      + {% trans "Create a Map" %} +
    • + + {% if documents.count > 0 %} +
    • +

      {% trans "Documents related to this layer" %}

      +

      {% trans "List of documents related to this layer:" %}

      + +
    • + {% endif %} + + {% if user.is_authenticated %} +
    • +

      {% trans "Styles" %}

      +

      {% trans "The following styles are associated with this layer. Choose a style to view it in the preview map." %}

      +
        + {% for style in resource.styles.all %} +
      • + {% if resource.default_style == style %} + + (default style) + {% else %} + + {% endif %} + {{ style.sld_title }} +
      • + {% empty %} +
      • {% trans "No styles associated with this layer" %}
      • + {% endfor %} +
      +
    • + {% endif %} + + {% if GEONODE_SECURITY_ENABLED %} + {% if "change_resourcebase_permissions" in perms_list %} +
    • +

      {% trans "Permissions" %}

      +

      {% trans "Click the button below to change the permissions of this layer." %}

      +

      {% trans "Change Layer Permissions" %}

      +
    • + {% endif %} + {% endif %} + + {% if resource.storeType == "remoteStore" %} +
    • +

      {% trans "External service layer" %}

      +
      {% trans "Source" %}: {{ resource.service.title }}
      +
      {% trans "Type" %}: {{ resource.service.type }}
      +
    • + {% endif %} + + {% include "base/_resourcebase_contact_snippet.html" %} +
    + + + {% if GEONODE_SECURITY_ENABLED %} + {% include "_permissions_form.html" %} + {% endif %} + +
    +
    +{% endblock %} + +{% block extra_script %} + + {% if GEOGIG_ENABLED and resource.link_set.geogig %} + {% with "_geogig_scripts.html" as geogig_scripts_template %} + {% include geogig_scripts_template %} + {% endwith %} + {% endif %} + + {% if request.user.is_authenticated %} + {% user_rating_js request.user resource "layer" %} + {% else %} + {% overall_rating resource 'layer' as the_layer_rating %} + {% endif %} + {% include 'rating.html' %} + {% include 'request_download.html' %} + + + {% if GEONODE_SECURITY_ENABLED %} + {% include "_permissions_form_js.html" %} + {% endif %} +{% endblock extra_script %} diff --git a/haitidata/templates/layers-paolo/layer_detail.save.html b/haitidata/templates/layers-paolo/layer_detail.save.html new file mode 100644 index 0000000..9662e80 --- /dev/null +++ b/haitidata/templates/layers-paolo/layer_detail.save.html @@ -0,0 +1,601 @@ +{% extends "layers/layer_base.html" %} +{% load i18n %} +{% load dialogos_tags %} +{% load agon_ratings_tags %} +{% load bootstrap_tags %} +{% load pagination_tags %} +{% load url from future %} +{% load base_tags %} +{% load guardian_tags %} + +{% block title %}{{ block.super }} {% trans "Layers" %} | {{ resource.title|default:resource.typename }}{% endblock %} +{% block page-title %}{% trans "Explore Layers" %}{% endblock %} + +{% block head %} + + {% if TWITTER_CARD %} + {% include "base/_resourcebase_twittercard.html" %} + {% endif %} + + {% if OPENGRAPH_ENABLED %} + {% include "base/_resourcebase_opengraph.html" %} + {% endif %} + + {% if preview == 'geoext' %} + {% include "layers/layer_geoext_map.html" %} + {% elif preview == 'OL3' %} + {% include "layers/layer_ol3_map.html" %} + {% elif preview == 'react' %} + {% include 'geonode-client/layer_map.html' %} + {% else %} + {% include "layers/layer_leaflet_map.html" %} + {% endif %} +{{ block.super }} +{% endblock %} + + +{% block body_class %}layers{% endblock %} + +{% block subheader %} +
    +
    +
    +
    +

    {{ resource.title|default:resource.typename }}

    +

    + {{ resource.service_type }} + {% if resource.category %} + {% trans "in" %} {{ resource.category }} | + {% endif %} + {% if resource.date %} + {% if resource.date_type == 'creation' %} {% trans "Created on" %} {{ resource.date }} + {% elif resource.date_type == 'publication' %} {% trans "Published on" %} {{ resource.date }} + {% else %} {% trans "Updated on" %} {{ resource.date }} + {% endif %} + {% endif %} +

    + {% block social_links %} + {% if SOCIAL_BUTTONS %} + {% include "social_links.html" %} + {% endif %} + {% endblock %} +
    +
    +
    +
    +{% endblock %} + +{% block body_outer %} +
    +
    + +
    +
    +
    + +
    + {% include "_actions.html" %} +
    + +
    + +
    + {% include "base/resourcebase_info_panel.html" %} +
    + + {% if resource.is_mosaic %} +
    +
    + +
    + {% csrf_token %} +   +
    + {% if filter %} + {% trans "Active Filter:" %} {{ filter }} + {% endif %} +
    + + + + + + + + + + + + {% autopaginate all_granules.features 10 %} + {% for feature in granules.features %} + + + + + + + + {% endfor %} + +
    {% trans "Bounding Box" %} (minX,minY,maxX,maxY){% trans "Time" %}{% trans "Actions" %}
    {% if feature.properties.time %}{{ feature.properties.time }}{% endif %} + Granule Preview + Granule Remove + +
    +
    + {% paginate %} +
    + {% endif %} + +
    + {% if resource.is_mosaic %} + + + + + + + + + + + + + + + + +
    {% trans "Dimension" %}{% trans "Enabled" %}{% trans "Regex" %}
    {% trans "TIME" %}{% if resource.has_time %}{% trans "True" %}{% else %}{% trans "False" %}{% endif %}{% if resource.time_regex %}{{ resource.time_regex }}{% else %} {% endif %}
    + {% endif %} + {% if resource.attribute_set.all %} + + + + + + + {% if wps_enabled %} + + + + + {% endif %} + + + + {% for attribute in resource.attributes %} + + + + + {% if wps_enabled %} + {% if attribute.unique_values == "NA" %} + + {% else %} + + {% endif %} + + + + {% endif %} + + {% endfor %} + +
    {% trans "Attribute Name" %}{% trans "Label" %}{% trans "Description" %}{% trans "Range" %}{% trans "Average" %}{% trans "Median" %}{% trans "Standard Deviation" %}
    {{ attribute }}{{ attribute.attribute_label|default:"" }}{{ attribute.description|default:"" }}{{ attribute.unique_values }} + + {{ attribute.average|floatformat:"2" }}{{ attribute.median|floatformat:"2" }}{{ attribute.stddev|floatformat:"2" }}
    + {% endif %} +
    + +
    + {% with resource as obj %} + {% include "_comments.html" %} + {% endwith %} +
    + + {% if GEOGIG_ENABLED and resource.link_set.geogig %} + {% with "_geogig_layer_detail.html" as geogig_template %} +
    + {% with resource as obj %} + {% include geogig_template %} + {% endwith %} +
    + {% endwith %} + {% endif %} + +
    + + {% if request.user.is_authenticated %} +

    {% trans "Rate this layer" %}

    + {% user_rating request.user resource "layer" as user_layer_rating %} +
    + {% endif %} +

    {% trans 'Average Rating' %}

    + {% overall_rating resource "layer" as layer_rating %} + {% num_ratings resource as num_votes %} +
    ({{num_votes}}) +
    + +
    + +
    + +
    + +
      + {% if resource.storeType != "remoteStore" %} +
    • + {% if links or links_download %} + + {% else %} + {% if request.user.is_authenticated %} + + {% endif %} + {% endif %} +
    • + {% endif %} + + + {% if GEOSERVER_BASE_URL %} + {% get_obj_perms request.user for resource.layer as "layer_perms" %} + {% endif %} + +
    • + + + +
    • + + {% if "change_resourcebase_metadata" in perms_list or "change_resourcebase" in perms_list or "delete_resourcebase" in perms_list or "change_layer_style" in layer_perms %} +
    • + +
    • + + {% endif %} + +
    • + +
    • + + + + {% if resource.get_legend %} +
    • +

      {%trans "Legend" %}

      +

      {{ style.sld_title }}

      + {% if resource.get_legend.link_type == 'image' %} + {% if request.user.is_authenticated and 'access_token' in request.session %} +

      + {% else %} +

      + {% endif %} + {% else %} +
      + {% endif %} +
    • + {% endif %} +
    • +

      {% trans "Maps using this layer" %}

      + {% if resource.maps %} +

      {% trans "List of maps using this layer:" %}

      + {% endif %} +
        + {% for maplayer in resource.maps %} +
      • {{ maplayer.map.title }}
      • + {% empty %} +
      • {% trans "This layer is not currently used in any maps." %}
      • + {% endfor %} +
      +
    • +
    • +

      {% trans "Create a map using this layer" %}

      +

      {% trans "Click the button below to generate a new map based on this layer." %}

      + {% trans "Create a Map" %} +
    • + + {% if documents.count > 0 %} +
    • +

      {% trans "Documents related to this layer" %}

      +

      {% trans "List of documents related to this layer:" %}

      + +
    • + {% endif %} + + {% if user.is_authenticated %} +
    • +

      {% trans "Styles" %}

      +

      {% trans "The following styles are associated with this layer. Choose a style to view it in the preview map." %}

      +
        + {% for style in resource.styles.all %} +
      • + {% if resource.default_style == style %} + + (default style) + {% else %} + + {% endif %} + {{ style.sld_title }} +
      • + {% empty %} +
      • {% trans "No styles associated with this layer" %}
      • + {% endfor %} +
      +
    • + {% endif %} + + {% if GEONODE_SECURITY_ENABLED %} + {% if "change_resourcebase_permissions" in perms_list %} +
    • +

      {% trans "Permissions" %}

      +

      {% trans "Click the button below to change the permissions of this layer." %}

      +

      {% trans "Change Layer Permissions" %}

      +
    • + {% endif %} + {% endif %} + + {% if resource.storeType == "remoteStore" %} +
    • +

      {% trans "External service layer" %}

      +
      {% trans "Source" %}: {{ resource.service.title }}
      +
      {% trans "Type" %}: {{ resource.service.type }}
      +
    • + {% endif %} + + {% include "base/_resourcebase_contact_snippet.html" %} +
    + + + {% if GEONODE_SECURITY_ENABLED %} + {% include "_permissions_form.html" %} + {% endif %} + +
    +
    +{% endblock %} + +{% block extra_script %} + + {% if GEOGIG_ENABLED and resource.link_set.geogig %} + {% with "_geogig_scripts.html" as geogig_scripts_template %} + {% include geogig_scripts_template %} + {% endwith %} + {% endif %} + + {% if request.user.is_authenticated %} + {% user_rating_js request.user resource "layer" %} + {% else %} + {% overall_rating resource 'layer' as the_layer_rating %} + {% endif %} + {% include 'rating.html' %} + {% include 'request_download.html' %} + + + {% if GEONODE_SECURITY_ENABLED %} + {% include "_permissions_form_js.html" %} + {% endif %} +{% endblock extra_script %} diff --git a/haitidata/templates/layers/layer_detail.html b/haitidata/templates/layers/layer_detail.html index 2dff65a..88bbe5b 100644 --- a/haitidata/templates/layers/layer_detail.html +++ b/haitidata/templates/layers/layer_detail.html @@ -9,7 +9,17 @@ {% load guardian_tags %} {% block title %}{{ block.super }} {% trans "Layers" %} | {{ resource.title|default:resource.typename }}{% endblock %} -{% block page-title %}{% trans "Explore Layers" %}{% endblock %} +{% block page-title %} + {% trans "Explore Layers" %} + +{% endblock %} {% block head %} @@ -38,16 +48,16 @@ {% block subheader %}
    -
    -
    -
    -

    {{ resource.title|default:resource.typename }}

    -

    +

    +
    +
    +

    {{ resource.title|default:resource.typename }}

    +

    {{ resource.service_type }} {% if resource.category %} - {% trans "in" %} {{ resource.category }} | + {% trans "in" %} {{ resource.category }} | {% endif %} - {% if resource.date %} + {% if resource.date %} {% if resource.date_type == 'creation' %} {% trans "Created on" %} {{ resource.date }} {% elif resource.date_type == 'publication' %} {% trans "Published on" %} {{ resource.date }} {% else %} {% trans "Updated on" %} {{ resource.date }} @@ -59,13 +69,14 @@ {% include "social_links.html" %} {% endif %} {% endblock %} -

    -
    +
    +
    {% endblock %} {% block body_outer %} +
    @@ -227,11 +238,6 @@ {% endif %} - -
    {% with resource as obj %} {% include "_comments.html" %} @@ -271,8 +277,8 @@ {% if resource.storeType != "remoteStore" %}
  • {% if links or links_download %} - - {% else %} + + {% else %} {% if request.user.is_authenticated %} {% endif %} @@ -482,6 +488,186 @@ {% trans "Create a Map" %}
  • + +
  • +

    {% trans "Charts using this layer" %}

    + {% if resource.maps %} +

    {% trans "List of charts with this layer:" %}

    + {% endif %} +
      + {% for chart in resource.chart_set.all %} +
    • {{ chart.get_type_display }}, Category field = {{chart.category}}, Quantity field = {{chart.quantity}}
    • + {% empty %} +
    • No charts available at this time

    • + {% endfor %} +
    +
  • + {% if "download_resourcebase" in perms_list %} +
  • +

    {% trans "Create a chart using this layer" %}

    +

    {% trans "Click the button below to generate a new chart based on this layer, choosing a quantity and a category field." %}

    + +
    +
    + {% csrf_token %} +
    + +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +

    Suggested title:

    +

    Testo di prova

    +
    +
    +
    + +
    + + +
    +
    + + +
    +
    +
  • + {% endif %} + + + + + {% if documents.count > 0 %}
  • {% trans "Documents related to this layer" %}

    @@ -547,6 +733,7 @@ {% endblock %} {% block extra_script %} +{{ block.super }} {% if GEOGIG_ENABLED and resource.link_set.geogig %} {% with "_geogig_scripts.html" as geogig_scripts_template %} diff --git a/haitidata/templates/site_base.html b/haitidata/templates/site_base.html index ace650b..982bdbb 100644 --- a/haitidata/templates/site_base.html +++ b/haitidata/templates/site_base.html @@ -36,6 +36,7 @@
  • -
  • - - -
  • - {% block extra_tab %} - {% endblock %} - {% endblock %} - - -
    -
    - - {% endblock header %} - + +
  • + + +
  • + {% block extra_tab %} + {% endblock %} + {% endblock %} + + +
    + + +{% endblock header %} + - {% block middle %} +{% block middle %}

    {% block page-title %}{% endblock %}

    @@ -132,12 +133,12 @@ {% include "_messages.html" %} {% block body_outer %}
    -
    - {% block body %}{% endblock %} -
    -
    - {% block sidebar %}{% endblock %} -
    +
    + {% block body %}{% endblock %} +
    +
    + {% block sidebar %}{% endblock %} +
    {% endblock %}
    diff --git a/haitidata/urls.py b/haitidata/urls.py index 2d53e1e..6acf437 100644 --- a/haitidata/urls.py +++ b/haitidata/urls.py @@ -8,6 +8,9 @@ urlpatterns = patterns('', url(r'^/?$', TemplateView.as_view(template_name='site_index.html'), name='home'), - ) + urlpatterns + ) + urlpatterns + [ + url(r'^chart/', include('charts_app.urls')), + url(r'^table/', include('wfs_harvest.urls')) + ] urlpatterns += importer_urlpatterns diff --git a/wfs_harvest/__init__.py b/wfs_harvest/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/wfs_harvest/admin.py b/wfs_harvest/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/wfs_harvest/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/wfs_harvest/migrations/__init__.py b/wfs_harvest/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/wfs_harvest/models.py b/wfs_harvest/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/wfs_harvest/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/wfs_harvest/templates/wfs-harvest/field_choice.html b/wfs_harvest/templates/wfs-harvest/field_choice.html new file mode 100644 index 0000000..b9312ef --- /dev/null +++ b/wfs_harvest/templates/wfs-harvest/field_choice.html @@ -0,0 +1,41 @@ +

    Field choice

    +

    Choose category field

    + +
    + +

    Choose quantity field

    + +
    +
    + Build Chart + Add Chart +
    + \ No newline at end of file diff --git a/wfs_harvest/tests.py b/wfs_harvest/tests.py new file mode 100644 index 0000000..fb01967 --- /dev/null +++ b/wfs_harvest/tests.py @@ -0,0 +1,20 @@ +import urllib + +from django.test import SimpleTestCase +from django.core.urlresolvers import reverse + +from . import views + +# Create your tests here. +class GetFieldsView(SimpleTestCase): + def test_non_existing_lyr(self): + # url = reverse(views.get_fields) + enc_lyrname = urllib.urlencode({'lyrname': 'idontexist'}) + # complete_url = url + '?' + enc_lyrname + # self.client.get('/table') + # self.client.get(complete_url) + self.assertTrue(False) + + def test_non_existing_field(self): + # self.client.get(reverse('wfs_harvest:get_fields')) + self.assertTrue(False) \ No newline at end of file diff --git a/wfs_harvest/urls.py b/wfs_harvest/urls.py new file mode 100644 index 0000000..c29d41e --- /dev/null +++ b/wfs_harvest/urls.py @@ -0,0 +1,8 @@ +from django.conf.urls import url + +from . import views + +urlpatterns = [ + url(r'^$', views.get_wfs_csv), + url(r'^fields$', views.get_fields) + ] diff --git a/wfs_harvest/utils.py b/wfs_harvest/utils.py new file mode 100644 index 0000000..c599214 --- /dev/null +++ b/wfs_harvest/utils.py @@ -0,0 +1,56 @@ +import urllib +import xml.etree.ElementTree as ET + +from geonode.layers.models import Layer + + +def get_fields(layer_id): + layer = Layer.objects.get(pk=layer_id) + lyrname = layer.typename + params = urllib.urlencode({ + 'service':'WFS', + 'version':'1.1.0', + 'request':'DescribeFeatureType', + 'typename':lyrname + }) + + wfs_request = urllib.urlopen('http://localhost/geoserver/ows?%s' + % params) + content = wfs_request.read() + + root = ET.fromstring(content) + namespace = root.tag.split('}')[0] + '}' + xpath = ('./{0}complexType/{0}complexContent/' + '{0}extension/{0}sequence/{0}element').format(namespace) + numeric_types = ['byte', 'decimal', 'int', 'integer', 'long', 'short', + 'boolean', 'double', 'float'] + fields = {} + for element in root.findall(xpath): + type = element.attrib['type'] + if not type.startswith('gml:'): + fields[element.attrib['name']] = type[4:] + + fieldnames = fields.keys() + num_fieldnames = [k for k, v in fields.iteritems() if v in numeric_types] + + return fieldnames, num_fieldnames + + +def get_featno(layer_id): + lyr = Layer.objects.get(pk=layer_id) + wfs_baseurl = lyr.link_set.get(link_type='OGC:WFS').url + + params = urllib.urlencode({ + 'service': 'WFS', + 'version': '1.1.0', + 'request': 'GetFeature', + 'typename': lyr.typename, + 'resultType': 'hits' + }) + + wfs_count_request = urllib.urlopen(wfs_baseurl + '?%s' % params) + content = wfs_count_request.read() + + root = ET.fromstring(content) + + return int(root.attrib['numberOfFeatures']) diff --git a/wfs_harvest/views.py b/wfs_harvest/views.py new file mode 100644 index 0000000..6c4330e --- /dev/null +++ b/wfs_harvest/views.py @@ -0,0 +1,80 @@ +import urllib +import xml.etree.ElementTree as ET + +from django.http import HttpResponse +from django.shortcuts import render +from django.conf import settings + +from geonode.layers.models import Layer + +from utils import get_featno + + +def get_fields(request): + lyrname = request.GET['lyrname'] + params = urllib.urlencode({ + 'service':'WFS', + 'version':'1.1.0', + 'request':'DescribeFeatureType', + 'typename':lyrname + }) + + wfs_request = urllib.urlopen('http://localhost/geoserver/ows?%s' + % params) + content = wfs_request.read() + + root = ET.fromstring(content) + namespace = root.tag.split('}')[0] + '}' + xpath = ('./{0}complexType/{0}complexContent/' + '{0}extension/{0}sequence/{0}element').format(namespace) + numeric_types = ['byte', 'decimal', 'int', 'integer', 'long', 'short', + 'boolean', 'double', 'float'] + fields = {} + for element in root.findall(xpath): + type = element.attrib['type'] + if not type.startswith('gml:'): + fields[element.attrib['name']] = type[4:] + + fieldnames = fields.keys() + num_fieldnames = [k for k, v in fields.iteritems() if v in numeric_types] + + context = { + 'lyrname': lyrname, + 'fieldnames': fieldnames, + 'num_fieldnames': num_fieldnames + } + return render(request, 'wfs_harvest/field_choice.html', context) + + +def get_wfs_csv(request): + qdict = request.GET + typename = qdict['lyrname'] + category_field = qdict['category'] + quantity_field = qdict['quantity'] + + lyr = Layer.objects.get(typename=typename) + featno = get_featno(lyr.id) + if featno > settings.MAX_CSV_RECORDS: + response = HttpResponse('{0} has too many records; csv download' + ' is not available for very large ' + 'datasets'.format(lyr.title)) + response.status_code = 413 + response.reason_phrase = 'REQUEST ENTITY TOO LARGE' + return response + + params = urllib.urlencode({ + 'service':'WFS', + 'version':'1.1.0', + 'request':'GetFeature', + 'typename':typename, + 'propertyName':category_field + ',' + quantity_field, + 'outputFormat':'csv', + 'maxFeatures': str(settings.MAX_CSV_RECORDS) + }) + + wfs_baseurl = lyr.link_set.get(link_type='OGC:WFS').url + wfs_request = urllib.urlopen(wfs_baseurl + '?%s' % params) + content = wfs_request.read() + response = HttpResponse(content, content_type='text/csv') + response['Content-Disposition'] = 'attachment; filename="myfile.csv"' + return response