diff --git a/.env.docker b/.env.docker new file mode 100644 index 0000000..bd3ead6 --- /dev/null +++ b/.env.docker @@ -0,0 +1,18 @@ +SECRET_KEY=s3cr3t +DEBUG=True +DB_NAME=django +DB_USER=root +DB_PASSWORD=root +DB_HOST=db +DB_PORT=3306 +ALLOWED_HOSTS= localhost, 10.129.132.146 +GOOGLE_RECAPTCHA_SECRET_KEY=s3cr3t +EMAIL_HOST=localhost +EMAIL_HOST_USER= +EMAIL_HOST_PASSWORD= +EMAIL_PORT=25 +EMAIL_USE_TLS=False +DEFAULT_FROM_EMAIL=collaboratingcommunity@example.com +SOCIAL_AUTH_GOOGLE_OAUTH2_KEY=s3cr3t.apps.googleusercontent.com +SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET=s3cr3t + diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..44ac2eb --- /dev/null +++ b/.env.example @@ -0,0 +1,18 @@ +SECRET_KEY=s3cr3t +DEBUG=True +DB_NAME=django +DB_USER=root +DB_PASSWORD=root +DB_HOST=localhost +DB_PORT=3306 +ALLOWED_HOSTS= localhost, 10.129.132.146 +GOOGLE_RECAPTCHA_SECRET_KEY=s3cr3t +EMAIL_HOST=localhost +EMAIL_HOST_USER= +EMAIL_HOST_PASSWORD= +EMAIL_PORT=25 +EMAIL_USE_TLS=False +DEFAULT_FROM_EMAIL=collaboratingcommunity@example.com +SOCIAL_AUTH_GOOGLE_OAUTH2_KEY=s3cr3t.apps.googleusercontent.com +SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET=s3cr3t + diff --git a/.evn b/.evn new file mode 100644 index 0000000..44ac2eb --- /dev/null +++ b/.evn @@ -0,0 +1,18 @@ +SECRET_KEY=s3cr3t +DEBUG=True +DB_NAME=django +DB_USER=root +DB_PASSWORD=root +DB_HOST=localhost +DB_PORT=3306 +ALLOWED_HOSTS= localhost, 10.129.132.146 +GOOGLE_RECAPTCHA_SECRET_KEY=s3cr3t +EMAIL_HOST=localhost +EMAIL_HOST_USER= +EMAIL_HOST_PASSWORD= +EMAIL_PORT=25 +EMAIL_USE_TLS=False +DEFAULT_FROM_EMAIL=collaboratingcommunity@example.com +SOCIAL_AUTH_GOOGLE_OAUTH2_KEY=s3cr3t.apps.googleusercontent.com +SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET=s3cr3t + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..261fbe3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +__pycache__/ +*.py[cod] +.env +venv/ +media/article +media/community +media/group +media/profile +media/course + +# SQLite database files + +*.sqlite3 diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..c6ae000 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,22 @@ + language: python # => 1 + + python: # => 2 + - "3.6" + + services: # => 3 + - mysql + + env: # => 4 + -DJANGO=1.11.7 DB=mysql + + install: # => 5 + - pip3 install -r requirements.txt + + before_script: # => 6 + - mysql -u root -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root')" + - mysql -e 'create database django;' -u root -proot + - cp .env.example .env + + script: # => 7 + - python3 manage.py test --keepdb Community Group BasicArticle + diff --git a/BasicArticle/__init__.py b/BasicArticle/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/BasicArticle/admin.py b/BasicArticle/admin.py new file mode 100644 index 0000000..0a20698 --- /dev/null +++ b/BasicArticle/admin.py @@ -0,0 +1,31 @@ +from django.contrib import admin +from .models import Articles, ArticleViewLogs +# Register your models here. +from reversion_compare.admin import CompareVersionAdmin +from reversion_compare.mixins import CompareMixin +from django.db.models import Manager + + +_old_compare = CompareMixin.compare + + +def compare(self, obj, version1, version2): + def replace_taggit_field(version_ins): + for fieldname in version_ins.field_dict: + if isinstance(version_ins.field_dict[fieldname], Manager): + version_ins.field_dict[fieldname] = [] + replace_taggit_field(version1) + replace_taggit_field(version2) + return _old_compare(self, obj, version1, version2) + + +CompareMixin.compare = compare + + + +class VersionedArticleAdmin(CompareVersionAdmin): + pass + + +admin.site.register(Articles, VersionedArticleAdmin) +admin.site.register(ArticleViewLogs, VersionedArticleAdmin) \ No newline at end of file diff --git a/BasicArticle/apps.py b/BasicArticle/apps.py new file mode 100644 index 0000000..a00950f --- /dev/null +++ b/BasicArticle/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class BasicarticleConfig(AppConfig): + name = 'BasicArticle' diff --git a/BasicArticle/forms.py b/BasicArticle/forms.py new file mode 100644 index 0000000..ae24d59 --- /dev/null +++ b/BasicArticle/forms.py @@ -0,0 +1,5 @@ +from django import forms + +class NewArticleForm(forms.Form): + title = forms.CharField() + body = forms.CharField(widget=forms.Textarea) diff --git a/BasicArticle/migrations/0001_initial.py b/BasicArticle/migrations/0001_initial.py new file mode 100644 index 0000000..117cd21 --- /dev/null +++ b/BasicArticle/migrations/0001_initial.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.6 on 2017-11-01 12:02 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Articles', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=100)), + ('body', models.TextField()), + ('created_at', models.DateTimeField(auto_now_add=True)), + ], + ), + ] diff --git a/BasicArticle/migrations/0002_articles_created_by.py b/BasicArticle/migrations/0002_articles_created_by.py new file mode 100644 index 0000000..eafc612 --- /dev/null +++ b/BasicArticle/migrations/0002_articles_created_by.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.6 on 2017-11-01 12:14 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('BasicArticle', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='articles', + name='created_by', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='articles', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/BasicArticle/migrations/0003_remove_articles_created_by.py b/BasicArticle/migrations/0003_remove_articles_created_by.py new file mode 100644 index 0000000..6f62728 --- /dev/null +++ b/BasicArticle/migrations/0003_remove_articles_created_by.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2017-11-22 07:40 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('BasicArticle', '0002_articles_created_by'), + ] + + operations = [ + migrations.RemoveField( + model_name='articles', + name='created_by', + ), + ] diff --git a/BasicArticle/migrations/0004_articles_state.py b/BasicArticle/migrations/0004_articles_state.py new file mode 100644 index 0000000..451f7ac --- /dev/null +++ b/BasicArticle/migrations/0004_articles_state.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-04 13:42 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('workflow', '0001_initial'), + ('BasicArticle', '0003_remove_articles_created_by'), + ] + + operations = [ + migrations.AddField( + model_name='articles', + name='state', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='articleworkflow', to='workflow.Transitions'), + ), + ] diff --git a/BasicArticle/migrations/0005_remove_articles_state.py b/BasicArticle/migrations/0005_remove_articles_state.py new file mode 100644 index 0000000..01b36cc --- /dev/null +++ b/BasicArticle/migrations/0005_remove_articles_state.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-07 11:39 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('BasicArticle', '0004_articles_state'), + ] + + operations = [ + migrations.RemoveField( + model_name='articles', + name='state', + ), + ] diff --git a/BasicArticle/migrations/0006_articles_created_by.py b/BasicArticle/migrations/0006_articles_created_by.py new file mode 100644 index 0000000..2cc6c9b --- /dev/null +++ b/BasicArticle/migrations/0006_articles_created_by.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-07 11:44 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('BasicArticle', '0005_remove_articles_state'), + ] + + operations = [ + migrations.AddField( + model_name='articles', + name='created_by', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='article_author', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/BasicArticle/migrations/0007_articles_views.py b/BasicArticle/migrations/0007_articles_views.py new file mode 100644 index 0000000..1c71763 --- /dev/null +++ b/BasicArticle/migrations/0007_articles_views.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-07 13:20 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('BasicArticle', '0006_articles_created_by'), + ] + + operations = [ + migrations.AddField( + model_name='articles', + name='views', + field=models.PositiveIntegerField(default=0), + ), + ] diff --git a/BasicArticle/migrations/0008_articleviewlogs.py b/BasicArticle/migrations/0008_articleviewlogs.py new file mode 100644 index 0000000..46accab --- /dev/null +++ b/BasicArticle/migrations/0008_articleviewlogs.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-07 14:37 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('BasicArticle', '0007_articles_views'), + ] + + operations = [ + migrations.CreateModel( + name='ArticleViewLogs', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('ip', models.CharField(max_length=40)), + ('session', models.CharField(max_length=40)), + ('created', models.DateTimeField(auto_now_add=True)), + ('article', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='articleviews', to='BasicArticle.Articles')), + ], + ), + ] diff --git a/BasicArticle/migrations/0009_articles_state.py b/BasicArticle/migrations/0009_articles_state.py new file mode 100644 index 0000000..b07dfb2 --- /dev/null +++ b/BasicArticle/migrations/0009_articles_state.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-08 10:36 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('workflow', '0001_initial'), + ('BasicArticle', '0008_articleviewlogs'), + ] + + operations = [ + migrations.AddField( + model_name='articles', + name='state', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='articleworkflow', to='workflow.States'), + ), + ] diff --git a/BasicArticle/migrations/0010_articles_image.py b/BasicArticle/migrations/0010_articles_image.py new file mode 100644 index 0000000..2158107 --- /dev/null +++ b/BasicArticle/migrations/0010_articles_image.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-18 08:34 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('BasicArticle', '0009_articles_state'), + ] + + operations = [ + migrations.AddField( + model_name='articles', + name='image', + field=models.ImageField(null=True, upload_to='articles'), + ), + ] diff --git a/BasicArticle/migrations/0011_auto_20180118_0858.py b/BasicArticle/migrations/0011_auto_20180118_0858.py new file mode 100644 index 0000000..a5f44d6 --- /dev/null +++ b/BasicArticle/migrations/0011_auto_20180118_0858.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-18 08:58 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('BasicArticle', '0010_articles_image'), + ] + + operations = [ + migrations.AlterField( + model_name='articles', + name='image', + field=models.ImageField(null=True, upload_to='article'), + ), + ] diff --git a/BasicArticle/migrations/0012_auto_20180123_0846.py b/BasicArticle/migrations/0012_auto_20180123_0846.py new file mode 100644 index 0000000..87d9b2f --- /dev/null +++ b/BasicArticle/migrations/0012_auto_20180123_0846.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-23 08:46 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('BasicArticle', '0011_auto_20180118_0858'), + ] + + operations = [ + migrations.AlterField( + model_name='articles', + name='body', + field=models.TextField(null=True), + ), + ] diff --git a/BasicArticle/migrations/0013_auto_20180227_1136.py b/BasicArticle/migrations/0013_auto_20180227_1136.py new file mode 100644 index 0000000..f5a0d43 --- /dev/null +++ b/BasicArticle/migrations/0013_auto_20180227_1136.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-02-27 11:36 +from __future__ import unicode_literals + +import BasicArticle.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('BasicArticle', '0012_auto_20180123_0846'), + ] + + operations = [ + migrations.AlterField( + model_name='articles', + name='image', + field=models.ImageField(null=True, upload_to=BasicArticle.models.get_file_path), + ), + ] diff --git a/BasicArticle/migrations/0014_auto_20180530_0735.py b/BasicArticle/migrations/0014_auto_20180530_0735.py new file mode 100644 index 0000000..e259d8f --- /dev/null +++ b/BasicArticle/migrations/0014_auto_20180530_0735.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2018-05-30 07:35 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('BasicArticle', '0013_auto_20180227_1136'), + ] + + operations = [ + migrations.AlterField( + model_name='articles', + name='created_by', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='articles', + name='state', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='workflow.States'), + ), + migrations.AlterField( + model_name='articleviewlogs', + name='article', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='BasicArticle.Articles'), + ), + ] diff --git a/BasicArticle/migrations/__init__.py b/BasicArticle/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/BasicArticle/models.py b/BasicArticle/models.py new file mode 100644 index 0000000..8669927 --- /dev/null +++ b/BasicArticle/models.py @@ -0,0 +1,27 @@ +from django.db import models +from django.contrib.auth.models import User +from workflow.models import States +import os, uuid + +def get_file_path(instance, filename): + ext = filename.split('.')[-1] + filename = "%s.%s" % (uuid.uuid4(), ext) + return os.path.join('article', filename) + +class Articles(models.Model): + title = models.CharField(max_length=100) + body = models.TextField(null=True) + image = models.ImageField(null=True,upload_to=get_file_path) + created_at = models.DateTimeField(auto_now_add=True) + created_by = models.ForeignKey(User,null=True,related_name='article_author') + views = models.PositiveIntegerField(default=0) + state = models.ForeignKey(States, null=True,related_name='articleworkflow') + + def __str__(self): + return self.title + +class ArticleViewLogs(models.Model): + article = models.ForeignKey(Articles,related_name='articleviews') + ip = models.CharField(max_length=40) + session = models.CharField(max_length=40) + created = models.DateTimeField(auto_now_add=True) diff --git a/BasicArticle/serializers.py b/BasicArticle/serializers.py new file mode 100644 index 0000000..c3e960c --- /dev/null +++ b/BasicArticle/serializers.py @@ -0,0 +1,13 @@ +from rest_framework import serializers +from .models import Articles +from voting.models import Voting + +class ArticleSerializer(serializers.HyperlinkedModelSerializer): + class Meta: + model = Articles + fields = ('id','title', 'body') + +class VotingSerializer(serializers.HyperlinkedModelSerializer): + class Meta: + model = Voting + fields = ('upvote', 'downvote') diff --git a/BasicArticle/tests.py b/BasicArticle/tests.py new file mode 100644 index 0000000..5d641be --- /dev/null +++ b/BasicArticle/tests.py @@ -0,0 +1,109 @@ +from django.core.urlresolvers import reverse +from django.urls import resolve +from django.test import TestCase +from django.contrib.auth.models import User +from .views import display_articles,view_article,create_article,edit_article,delete_article,article_watch +from .models import Articles + +class ArticleViewsTestCase(TestCase): + def test_index(self): + resp = self.client.get('/articles/') + self.assertEqual(resp.status_code,200) + +class Articlestests(TestCase): + def test_display_articles_view_status_code(self): + url = reverse('display_articles') + response = self.client.get(url) + self.assertEquals(response.status_code, 200) + + def test_display_articles_url_resolves_display_articles(self): + view = resolve('/') + self.assertTrue(view.func, display_articles) + + +class ArticleTests(TestCase): + def test_view_article_success_status_code(self): + url = reverse('article_view', kwargs={'pk': 1}) + response = self.client.get(url) + self.assertTrue(response.status_code, 200) + + def test_view_article_view_not_found_status_code(self): + url = reverse('article_view', kwargs={'pk': 99}) + response = self.client.get(url) + self.assertEquals(response.status_code, 404) + + def test_view_article_url_resolves_view_article(self): + view = resolve('/article-view/1/') + self.assertEquals(view.func, view_article) + + +class article_createtests(TestCase): + def test_community_article_create_valid_post_data(self): + url = reverse('community_article_create') + data={ + 'status':'ALL CATEGORY', + 'cid':'1' + } + response = self.client.post(url,data) + self.assertTrue(response.status_code, 200) + + def test_create_article_url_resolves_create_article(self): + view = resolve('/') + self.assertTrue(view.func, create_article) + + +class article_edittests(TestCase): + def test_article_edit_valid_post(self): + url = reverse('article_edit', kwargs={'pk': 1}) + data={ + 'title':'IAS', + 'body':'Indian Administrative Service(IAS) officer.' + } + response=self.client.post(url,data) + self.assertFalse(Articles.objects.exists()) + + def test_edit_article_view_not_found_status_code(self): + url = reverse('article_edit', kwargs={'pk': 99}) + response = self.client.get(url) + self.assertTrue(response.status_code, 404) + + def test_edit_article_url_resolves_edit_article(self): + view = resolve('/article-edit/1/') + self.assertEquals(view.func, edit_article) + + + +class article_deletetests(TestCase): + def test_delete_article_valid_post_data(self): + url = reverse('article_delete', kwargs={'pk': 1}) + data={ + 'status':'1' + } + response=self.client.post(url,data) + self.assertFalse(Articles.objects.exists()) + + def test_delete_article_view_not_found_status_code(self): + url = reverse('article_delete', kwargs={'pk': 99}) + response = self.client.get(url) + self.assertTrue(response.status_code, 404) + + + def test_article_url_resolves_article_delete(self): + view = resolve('/article-delete/1/') + self.assertEquals(view.func, delete_article) + + +class article_watchTests(TestCase): + def test_article_watch_success_status_code(self): + url = reverse('article_revision', kwargs={'pk': 1}) + response = self.client.get(url) + self.assertTrue(response.status_code, 200) + + def test_watch_article_view_not_found_status_code(self): + url = reverse('article_revision', kwargs={'pk': 99}) + response = self.client.get(url) + self.assertTrue(response.status_code, 404) + + def test_watch_article_url_resolves_watch_article(self): + view = resolve('/article-revision/1/') + self.assertTrue(view.func, article_watch) diff --git a/BasicArticle/views.py b/BasicArticle/views.py new file mode 100644 index 0000000..9b1f5d7 --- /dev/null +++ b/BasicArticle/views.py @@ -0,0 +1,321 @@ +from django.shortcuts import render, redirect +from .forms import NewArticleForm +from django.http import Http404, HttpResponse +from .models import Articles, ArticleViewLogs +from django.views.generic.edit import UpdateView +from reversion_compare.views import HistoryCompareDetailView +from Community.models import CommunityArticles, CommunityMembership, CommunityGroups +from Group.models import GroupArticles, GroupMembership +from django.contrib.auth.models import Group as Roles +from workflow.models import States, Transitions +from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger +from search.views import IndexDocuments +from UserRolesPermission.models import favourite +from voting.models import Voting,Law +from reputation.models import DefaultValues,SystemRep,CommunityRep + +def display_articles(request): + """ + display list of articles in article list page. + """ + articlelist=Articles.objects.raw('select o.id,title,username,views,o.created_at,g.name GNAME,c.name CNAME from (select id,title,username,views,created_at,GID,CID COMMID from ( select ba.id,ba.title , username,views,created_at ,(select group_id from Group_grouparticles where article_id=ba.id) GID , (select community_id from Community_communityarticles where article_id=ba.id) CID from (select * from BasicArticle_articles where id in (select article_id from Group_grouparticles) or id in (select article_id from Community_communityarticles)) ba join auth_user au on ba.created_by_id=au.id join workflow_states ws on ws.id=ba.state_id where ws.name="publish") t ) o left join Community_community c on c.id=COMMID left join Group_group g on g.id=GID order by views desc;') + page = request.GET.get('page', 1) + paginator = Paginator(list(articlelist), 5) + try: + articles = paginator.page(page) + except PageNotAnInteger: + articles = paginator.page(1) + except EmptyPage: + articles = paginator.page(paginator.num_pages) + fav_articles = '' + if request.user.is_authenticated: + fav_articles = favourite.objects.raw('select ba.id as id , title from BasicArticle_articles as ba ,UserRolesPermission_favourite as uf where ba.id=resource and user_id =%s;', [request.user.id]) + return render(request, 'articles.html',{'articles':articles, 'favs':fav_articles}) + +def create_article(request): + """ + create a new article. This function will be called for creating an + article in community or group. + """ + if request.user.is_authenticated: + if request.method == 'POST': + state = States.objects.get(name='draft') + title = request.POST['title'] + body = request.POST['body'] + try: + image = request.FILES['article_image'] + except: + image = None + article = Articles.objects.create( + title = title, + body = body, + image = image, + created_by = request.user, + state = state + ) + return article + else: + return redirect('login') + +def view_article(request, pk): + """ + A function to view an article. The function will check if the article belongs to group or + community before displaying it. It displays whether the article belongs + to group or community + """ + law = Law.objects.filter(article_id=pk) + if(law.count() == 0): + law = Law(article_id = pk) + law.save() + law = Law.objects.get(article_id=pk) + if request.user.is_authenticated: + voting = Voting.objects.filter(article_id=pk,user_id=request.user.id) + if(voting.count() == 0): + voting = Voting() + voting.article_id = pk + voting.user = request.user + voting.upflag = False + voting.downflag = False + voting.save() + voting = Voting.objects.get(article_id=pk,user_id=request.user.id) + else: + voting = Voting() + voting.article_id = pk + voting.upflag = False + voting.downflag = False + try: + article = CommunityArticles.objects.get(article_id=pk) + if article.article.state == States.objects.get(name='draft') and article.article.created_by != request.user: + return redirect('home') + count = article_watch(request, article.article) + except CommunityArticles.DoesNotExist: + try: + article = GroupArticles.objects.get(article_id=pk) + if article.article.state == States.objects.get(name='draft') and article.article.created_by != request.user: + return redirect('home') + count = article_watch(request, article.article) + except GroupArticles.DoesNotExist: + raise Http404 + is_fav ='' + if request.user.is_authenticated: + is_fav = favourite.objects.filter(user = request.user, resource = pk, category= 'article').exists() + + return render(request, 'view_article.html', {'article': article, 'count':count, 'is_fav':is_fav, 'art':voting, 'law':law}) + + +def edit_article(request, pk): + """ + A function to edit an article. The function check whether the method is post, + if not it will check if the article belong to group or community and + whether the user is a member of that group or cummunity. If the user is not a member, + he will not be allowed to edit this article. If the user is a member of the group and not the community + than he will not be allowed to edit this article + """ + if request.user.is_authenticated: + if request.method == 'POST': + if 'state' in request.POST and request.POST['state'] == 'save': + article = Articles.objects.get(pk=pk) + article.title = request.POST['title'] + article.body = request.POST['body'] + try: + article.image = request.FILES['article_image'] + article.save(update_fields=["title","body","image"]) + except: + article.save(update_fields=["title","body"]) + return redirect('article_view',pk=article.pk) + else: + article = Articles.objects.get(pk=pk) + title = request.POST['title'] + body = request.POST['body'] + current_state = request.POST['current'] + try: + current_state = States.objects.get(name=current_state) + if 'private' in request.POST: + to_state = States.objects.get(name='private') + article.state = to_state + else: + to_state = request.POST['state'] + to_state = States.objects.get(name=to_state) + if current_state.name == 'draft' and to_state.name == 'visible' and 'belongs_to' in request.POST: + article.state = to_state + elif current_state.name == 'visible' and to_state.name == 'publish' and 'belongs_to' in request.POST: + article.state = to_state + else: + transitions = Transitions.objects.get(from_state=current_state, to_state=to_state) + article.state = to_state + article.title = title + article.body = body + try: + article.image = request.FILES['article_image'] + article.save(update_fields=["title","body", "image", "state"]) + except: + article.save(update_fields=["title","body", "state"]) + except Transitions.DoesNotExist: + message = "transition doesn' exist" + except States.DoesNotExist: + message = "state doesn' exist" + if to_state.name == 'publish': + commart = CommunityArticles.objects.filter(article_id=pk).exists() + art = Articles.objects.get(pk=pk) + author = art.created_by + publisher = request.user + if(commart is False): + grpart = GroupArticles.objects.get(article_id=pk) + grp = grpart.group + community = CommunityGroups.objects.get(group_id=grp.id) + else: + commart = CommunityArticles.objects.get(article_id=pk) + community = commart.community + + author_crep = CommunityRep.objects.get(community_id=community.id, user_id=author.id) + author_srep = SystemRep.objects.get(user_id=author.id) + publisher_crep = CommunityRep.objects.get(community_id=community.id,user_id=publisher.id) + publisher_srep = SystemRep.objects.get(user_id=publisher.id) + defaultval = DefaultValues.objects.get(pk=1) + author_srep.sysrep+=defaultval.published_author + author_crep.rep+=defaultval.published_author + publisher_crep.rep+=defaultval.published_publisher + publisher_srep.sysrep+=defaultval.published_publisher + if(author_crep.rep >= defaultval.threshold_cadmin): + community_membership = CommunityMembership.objects.get(user_id=author.id,community_id=community.id) + community_membership.role = Roles.objects.get(name='community_admin') + community_membership.save() + elif(author_crep >= defaultval.threshold_publisher): + community_membership = CommunityMembership.objects.get(user_id=author.id,community_id=community.id) + community_membership.role = Roles.objects.get(name='community_admin') + community_membership.save() + + if(publisher_crep.rep >= defaultval.threshold_cadmin): + community_membership = CommunityMembership.objects.get(user_id=author.id,community_id=community.id) + community_membership.role = Roles.objects.get(name='community_admin') + community_membership.save() + author_srep.save() + author_crep.save() + publisher_crep.save() + publisher_srep.save() + #IndexDocuments(article.pk, article.title, article.body, article.created_at) + return redirect('article_view',pk=pk) + else: + message="" + transition ="" + cmember = "" + gmember = "" + private = "" + try: + article = CommunityArticles.objects.get(article=pk) + if article.article.state == States.objects.get(name='draft') and article.article.created_by != request.user: + return redirect('home') + if article.article.state == States.objects.get(name='publish'): + return redirect('article_view',pk=pk) + belongs_to = 'community' + try: + cmember = CommunityMembership.objects.get(user =request.user.id, community = article.community.pk) + try: + transition = Transitions.objects.get(from_state=article.article.state) + state1 = States.objects.get(name='draft') + state2 = States.objects.get(name='private') + if transition.from_state == state1 and transition.to_state ==state2: + transition.to_state = States.objects.get(name='visible') + except Transitions.DoesNotExist: + message = "transition doesn't exist" + except States.DoesNotExist: + message = "state does n't exist" + except CommunityMembership.DoesNotExist: + cmember = 'FALSE' + except CommunityArticles.DoesNotExist: + try: + article = GroupArticles.objects.get(article=pk) + if article.article.state == States.objects.get(name='publish'): + return redirect('article_view',pk=pk) + if article.article.state == States.objects.get(name='draft') and article.article.created_by != request.user: + return redirect('home') + belongs_to = 'group' + private ='' + try: + communitygroup = CommunityGroups.objects.get(group=article.group.pk) + cmember = CommunityMembership.objects.get(user=request.user.id, community = communitygroup.community.pk) + try: + gmember =GroupMembership.objects.get(user=request.user.id, group = article.group.pk) + except GroupMembership.DoesNotExist: + gmember = 'FALSE' + try: + transition = Transitions.objects.get(from_state=article.article.state) + state1 = States.objects.get(name='visible') + state2 = States.objects.get(name='publishable') + if transition.from_state == state1 and transition.to_state ==state2: + transition.to_state = States.objects.get(name='publish') + private = States.objects.get(name='private') + except Transitions.DoesNotExist: + message = "transition doesn't exist" + except CommunityMembership.DoesNotExist: + message = 'You are not a member of

%s

community. Please subscribe to the community.'%(communitygroup.community.name) + except GroupArticles.DoesNotExist: + raise Http404 + return render(request, 'edit_article.html', {'article': article, 'cmember':cmember,'gmember':gmember,'message':message, 'belongs_to':belongs_to,'transition': transition, 'private':private,}) + else: + return redirect('login') + + + +def delete_article(request, pk): + """ + a function to delete an article. + The business logic is not yet implemented for deleting an article. + It just displays a message + + """ + if request.user.is_authenticated: + article = Articles.objects.get(pk=pk) + if article.state != States.objects.get(name='publish'): + if request.method=='POST': + status = request.POST['status'] + if status == '0': + return redirect('article_view',pk=pk) + elif status == '1': + article.delete() + return redirect('display_articles') + else: + message="" + try: + article = CommunityArticles.objects.get(article=pk) + try: + membership = CommunityMembership.objects.get(user =request.user.id, community = article.community.pk) + except CommunityMembership.DoesNotExist: + membership = 'FALSE' + except CommunityArticles.DoesNotExist: + try: + article = GroupArticles.objects.get(article=pk) + try: + membership =GroupMembership.objects.get(user=request.user.id, group = article.group.pk) + try: + communitygroup = CommunityGroups.objects.get(group=article.group.pk) + membership = CommunityMembership.objects.get(user=request.user.id, community = communitygroup.community.pk) + except CommunityMembership.DoesNotExist: + membership = 'FALSE' + message = 'You are not a member of

%s

community. Please subscribe to the community.'%(communitygroup.community.name) + except GroupMembership.DoesNotExist: + membership ='FALSE' + except GroupArticles.DoesNotExist: + raise Http404 + return render(request, 'delete_article.html', {'article': article,'membership':membership}) + else: + return redirect('article_view',pk=pk) + else: + return redirect('login') + + +def article_watch(request, article): + if not ArticleViewLogs.objects.filter(article=article,session=request.session.session_key): + view = ArticleViewLogs( + article=article,ip=request.META['REMOTE_ADDR'], + session=request.session.session_key + ) + view.save() + article = Articles.objects.get(pk=article.pk) + article.views += 1 + article.save() + + return article.views + +class SimpleModelHistoryCompareView(HistoryCompareDetailView): + model = Articles diff --git a/BasicArticle/viewsets.py b/BasicArticle/viewsets.py new file mode 100644 index 0000000..21354de --- /dev/null +++ b/BasicArticle/viewsets.py @@ -0,0 +1,16 @@ +from .models import Articles +from voting.models import Voting +from django.views.generic.edit import UpdateView +from rest_framework import viewsets +from .serializers import ArticleSerializer,VotingSerializer + + +# Create your views here. + +#this is a rest api serializer class for accessing article models +class ArticleViewSet(viewsets.ModelViewSet): + queryset = Articles.objects.all().order_by('-title') + serializer_class = ArticleSerializer +class VotingViewSet(viewsets.ModelViewSet): + queryset = Voting.objects.all() + serializer_class1 = VotingSerializer diff --git a/CollaborationSystem/__init__.py b/CollaborationSystem/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/CollaborationSystem/settings.py b/CollaborationSystem/settings.py new file mode 100644 index 0000000..8695f68 --- /dev/null +++ b/CollaborationSystem/settings.py @@ -0,0 +1,252 @@ +""" +Django settings for CollaborationSystem project. + +Generated by 'django-admin startproject' using Django 1.11.5. + +For more information on this file, see +https://docs.djangoproject.com/en/1.11/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/1.11/ref/settings/ +""" + +import os +from machina import get_apps as get_machina_apps +from machina import MACHINA_MAIN_TEMPLATE_DIR +from machina import MACHINA_MAIN_STATIC_DIR +from decouple import config, Csv + +# Build paths inside the project like this: os.path.join(BASE_DIR, ...) +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.11/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = config('SECRET_KEY') + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = config('DEBUG', cast=bool) + +ALLOWED_HOSTS = ['127.0.0.1', 'localhost' , '127.0.0.1'] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'django.contrib.sites', + 'django_comments_xtd', + 'django_comments', + 'Community', + 'UserRolesPermission', + 'BasicArticle', + 'Group', + 'rest_framework', + 'widget_tweaks', + 'reversion', + 'reversion_compare', + 'haystack', + 'mptt', + 'corsheaders', + 'rolepermissions', + 'rest_framework.authtoken', + 'workflow', + 'social_django', + 'pysolr', + 'search', + 'webcontent', + 'Course', + 'voting', + 'reputation', +] + get_machina_apps() + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'reversion.middleware.RevisionMiddleware', + 'corsheaders.middleware.CorsMiddleware', + 'machina.apps.forum_permission.middleware.ForumPermissionMiddleware', + 'social_django.middleware.SocialAuthExceptionMiddleware', +] + +ROOT_URLCONF = 'CollaborationSystem.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [os.path.join(BASE_DIR, 'templates'), MACHINA_MAIN_TEMPLATE_DIR], + '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', + 'machina.core.context_processors.metadata', + 'django.template.context_processors.media', + 'social_django.context_processors.backends', + 'social_django.context_processors.login_redirect', + ], + }, + }, +] + +AUTHENTICATION_BACKENDS = ( + 'social_core.backends.open_id.OpenIdAuth', # for Google authentication + 'social_core.backends.google.GoogleOpenId', # for Google authentication + 'social_core.backends.google.GoogleOAuth2', # for Google authentication + 'social_core.backends.github.GithubOAuth2', # for Github authentication + 'social_core.backends.facebook.FacebookOAuth2', # for Facebook authentication + + 'django.contrib.auth.backends.ModelBackend', +) + + + +WSGI_APPLICATION = 'CollaborationSystem.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/1.11/ref/settings/#databases + + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.mysql', + 'NAME': 'collaboration', + 'USER': 'root', + 'PASSWORD': '', + 'HOST': config('DB_HOST'), + 'PORT': config('DB_PORT'), + } +} + + +# Password validation +# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/1.11/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.11/howto/static-files/ + +STATIC_URL = '/static/' +STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'), MACHINA_MAIN_STATIC_DIR] + +LOGIN_URL = 'login/' +LOGOUT_REDIRECT_URL = 'home' +LOGIN_REDIRECT_URL = 'user_dashboard' + +CORS_ORIGIN_ALLOW_ALL=True + +SOCIAL_AUTH_GOOGLE_OAUTH2_KEY =config('SOCIAL_AUTH_GOOGLE_OAUTH2_KEY') #Paste CLient Key +SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = config('SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET') #Paste Secret Key + +EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend" +EMAIL_HOST =config('EMAIL_HOST'), +EMAIL_HOST_USER = config('EMAIL_HOST_USER'), +EMAIL_HOST_PASSWORD =config('EMAIL_HOST_PASSWORD'), +EMAIL_PORT = config('EMAIL_PORT', cast=int), +EMAIL_USE_TLS = config('EMAIL_USE_TLS', cast=bool), +DEFAULT_FROM_EMAIL=config('DEFAULT_FROM_EMAIL'), + + + +CACHES = { + 'default': { + 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', + }, + 'machina_attachments': { + 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', + 'LOCATION': '/tmp', + } +} + +HAYSTACK_CONNECTIONS = { + 'default': { + 'ENGINE': 'haystack.backends.simple_backend.SimpleEngine', + }, +} +SITE_ID=1 + +COMMENTS_APP='django_comments_xtd' + +COMMENTS_XTD_MAX_THREAD_LEVEL = 1 # default is 0 + +COMMENTS_XTD_LIST_ORDER = ('-thread_id', 'order') + +COMMENTS_XTD_APP_MODEL_OPTIONS = { + 'Group.grouparticles': { + 'allow_flagging': True, + 'allow_feedback': True, + 'show_feedback': True, + } +} + +COMMENTS_XTD_APP_MODEL_OPTIONS = { + 'Community.communityarticles': { + 'allow_flagging': True, + 'allow_feedback': True, + 'show_feedback': True, + } +} + +ROLEPERMISSIONS_MODULE = 'UserRolesPermission.roles' + +REST_FRAMEWORK = { + 'DEFAULT_AUTHENTICATION_CLASSES': ( + 'rest_framework.authentication.TokenAuthentication', + 'rest_framework.authentication.BasicAuthentication', + 'rest_framework.authentication.SessionAuthentication', + ) +} + + +MEDIA_URL = '/media/' +MEDIA_ROOT = os.path.join(BASE_DIR, 'media') + +GOOGLE_RECAPTCHA_SECRET_KEY = config('GOOGLE_RECAPTCHA_SECRET_KEY') + +SESSION_COOKIE_AGE = 7200 +SESSION_SAVE_EVERY_REQUEST = True +SESSION_EXPIRE_AT_BROWSER_CLOSE = True diff --git a/CollaborationSystem/up.png b/CollaborationSystem/up.png new file mode 100644 index 0000000..74bb274 Binary files /dev/null and b/CollaborationSystem/up.png differ diff --git a/CollaborationSystem/urls.py b/CollaborationSystem/urls.py new file mode 100644 index 0000000..984207a --- /dev/null +++ b/CollaborationSystem/urls.py @@ -0,0 +1,149 @@ +"""CollaborationSystem URL Configuration + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/1.11/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.conf.urls import url, include + 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) +""" +from django.conf.urls import url, include +from django.contrib import admin +from django.contrib.auth import views as auth_views +from BasicArticle import viewsets +from BasicArticle import views as articleview +from rest_framework import routers +from UserRolesPermission import views as user_views +from Community import views as communityview +from Community import viewsets as communityviewsets +from Group import views as group_views +from machina.app import board +from UserRolesPermission import viewsets as user_viewsets +from django.conf import settings +from django.conf.urls.static import static +from webcontent import views as web +from search import views as search +from Course import views as courseview +from voting.views import updown +from reputation.views import defaultval +router = routers.DefaultRouter() +router.register(r'articleapi', viewsets.ArticleViewSet) +router.register(r'communityapi', communityviewsets.CommunityViewSet) + +urlpatterns = [ + url(r'^$', user_views.home, name='home'), + url(r'^admin/', admin.site.urls), + url(r'^login/$', auth_views.LoginView.as_view(template_name='login.html', redirect_authenticated_user=True), name='login'), + url(r'^logout/$', auth_views.LogoutView.as_view(), name='logout'), + url(r'^signup/$', user_views.signup, name ='signup' ), + url(r'^', include(router.urls)), + url(r'^api/', include('rest_framework.urls', namespace='rest_framework')), + + + + url(r'^auth/', include('social_django.urls', namespace='social')), + + url(r'^communities/$', communityview.display_communities, name ='display_communities'), + url(r'^community-view/(?P\d+)/$', communityview.community_view, name='community_view'), + url(r'^community-subscribe/$', communityview.community_subscribe, name='community_subscribe'), + url(r'^community-unsubscribe/$', communityview.community_unsubscribe, name='community_unsubscribe'), + url(r'^community-article-create/$', communityview.community_article_create, name='community_article_create'), + + url(r'^comments/', include('django_comments_xtd.urls')), + + url(r'^articles/$', articleview.display_articles, name='display_articles'), + url(r'^article-view/(?P\d*)/$', articleview.view_article, name='article_view'), + url(r'^article-edit/(?P\d*)/$', articleview.edit_article, name='article_edit'), + url(r'^article-delete/(?P\d*)/$', articleview.delete_article, name='article_delete'), + url(r'^article-revision/(?P\d*)/$', articleview.SimpleModelHistoryCompareView.as_view(template_name='revision_article.html'), name='article_revision' ), + + url(r'^mydashboard/$', user_views.user_dashboard, name='user_dashboard'), + url(r'^community-group-create/$', communityview.community_group, name='community_group'), + + url(r'^group-view/(?P\d+)/$', group_views.group_view, name='group_view'), + url(r'^group-subscribe/$', group_views.group_subscribe, name='group_subscribe'), + url(r'^group-unsubscribe/$', group_views.group_unsubscribe, name='group_unsubscribe'), + url(r'^group-article-create/$', group_views.group_article_create, name='group_article_create'), + url(r'^handle-group-invitations/$', group_views.handle_group_invitations, name='handle_group_invitations'), + + url(r'^forum/', include(board.urls)), + url(r'^registrationapi/$', user_viewsets.RegistrationViewsets.as_view(), name='account-create'), + + url(r'^request_community_creation/$', communityview.request_community_creation, name='request_community_creation'), + url(r'^handle_community_creation_requests/$', communityview.handle_community_creation_requests, name='handle_community_creation_requests'), + + url(r'^updateprofile/$', user_views.update_profile, name='update_profile'), + url(r'^uploadphoto/$', user_views.upload_image, name='upload_photo'), + + url(r'^manage_community/(?P\d+)/$', communityview.manage_community, name='manage_community'), + + url(r'^manage_group/(?P\d+)/$', group_views.manage_group, name='manage_group'), + + url(r'^myprofile/$', user_views.view_profile, name='view_profile'), + + url(r'^userprofile/(?P[\w.@+-]+)/$', user_views.display_user_profile, name='display_user_profile'), + + url(r'^update_group_info/(?P\d+)/$', group_views.update_group_info, name='update_group_info'), + url(r'^update_community_info/(?P\d+)/$', communityview.update_community_info, name='update_community_info'), + + url(r'^create_community/$', communityview.create_community, name='create_community'), + + url(r'^community_content/(?P\d+)/$', communityview.community_content, name='community_content'), + + url(r'^reset/$', + auth_views.PasswordResetView.as_view( + template_name='password_reset.html', + email_template_name='password_reset_email.html', + subject_template_name='password_reset_subject.txt' + ), + name='password_reset'), + url(r'^reset/done/$', + auth_views.PasswordResetDoneView.as_view(template_name='password_reset_done.html'), + name='password_reset_done'), + url(r'^reset/(?P[0-9A-Za-z_\-]+)/(?P[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', + auth_views.PasswordResetConfirmView.as_view(template_name='password_reset_confirm.html'), + name='password_reset_confirm'), + url(r'^reset/complete/$', + auth_views.PasswordResetCompleteView.as_view(template_name='password_reset_complete.html'), + name='password_reset_complete'), + url(r'^reset/complete/$', auth_views.PasswordResetCompleteView.as_view + (template_name='password_reset_complete.html') ,name='password_reset_complete'), + + url(r'^settings/password/$', auth_views.PasswordChangeView.as_view(template_name='password_change.html'), + name='password_change'), + url(r'^settings/password/done/$', auth_views.PasswordChangeDoneView.as_view(template_name='password_change_done.html'), + name='password_change_done'), + + url(r'^group_content/(?P\d+)/$', group_views.group_content, name='group_content'), + url(r'^FAQs/$', web.FAQs, name ='FAQs' ), + url(r'^search_articles/$', search.search_articles, name ='search_articles' ), + + url(r'^feedback/$', web.provide_feedback, name ='provide_feedback' ), + url(r'^contact_us/$', web.contact_us, name ='contact_us' ), + url(r'^community_group_content/(?P\d+)/$', communityview.community_group_content, name='community_group_content'), + url(r'^create_faq/$', web.create_faq, name ='create_faq' ), + + url(r'^check_user/$', user_views.username_exist, name ='check_user' ), + url(r'^favourites/$', user_views.favourites, name ='favourites' ), + url(r'^group-invitations/$', user_views.group_invitations, name='group_invitations'), + + url(r'^community-course-create/$', communityview.community_course_create, name='community_course_create'), + url(r'^course-view/(?P\d*)/$', courseview.course_view, name='course_view'), + url(r'^course-edit/(?P\d*)/$', courseview.course_edit, name='course_edit'), + url(r'^manage-resource/(?P\d+)/$', courseview.manage_resource, name='manage_resource'), + url(r'^update-course-info/(?P\d+)/$', courseview.update_course_info, name='update_course_info'), + + url(r'api/course/', include('Course.api.urls', namespace = 'api-course')), + url(r'',include('voting.urls')), + url(r'^vote/', updown, name='updown'), + url(r'^reputationmodel/' , defaultval , name='defaultval'), +] + +if settings.DEBUG: + urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/CollaborationSystem/wsgi.py b/CollaborationSystem/wsgi.py new file mode 100644 index 0000000..bbed1e7 --- /dev/null +++ b/CollaborationSystem/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for CollaborationSystem project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CollaborationSystem.settings") + +application = get_wsgi_application() diff --git a/Community/__init__.py b/Community/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Community/admin.py b/Community/admin.py new file mode 100644 index 0000000..0657da8 --- /dev/null +++ b/Community/admin.py @@ -0,0 +1,35 @@ +from django.contrib import admin +from .models import Community, CommunityMembership, CommunityArticles, CommunityGroups, RequestCommunityCreation, CommunityCourses +from reversion_compare.admin import CompareVersionAdmin +from reversion_compare.mixins import CompareMixin +from django.db.models import Manager +# Register your models here. + +admin.site.register(Community) +admin.site.register( CommunityMembership) +admin.site.register( CommunityGroups) +admin.site.register( RequestCommunityCreation) +admin.site.register(CommunityCourses) + + +_old_compare = CompareMixin.compare + + +def compare(self, obj, version1, version2): + def replace_taggit_field(version_ins): + for fieldname in version_ins.field_dict: + if isinstance(version_ins.field_dict[fieldname], Manager): + version_ins.field_dict[fieldname] = [] + replace_taggit_field(version1) + replace_taggit_field(version2) + return _old_compare(self, obj, version1, version2) + + +CompareMixin.compare = compare + + +class CommunityArticlesAdmin(CompareVersionAdmin): + pass + + +admin.site.register(CommunityArticles, CommunityArticlesAdmin) diff --git a/Community/apps.py b/Community/apps.py new file mode 100644 index 0000000..dc4077a --- /dev/null +++ b/Community/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class CommunityConfig(AppConfig): + name = 'Community' diff --git a/Community/migrations/0001_initial.py b/Community/migrations/0001_initial.py new file mode 100644 index 0000000..ebb07bf --- /dev/null +++ b/Community/migrations/0001_initial.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2017-11-20 10:45 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('BasicArticle', '0002_articles_created_by'), + ('auth', '0008_alter_user_username_max_length'), + ] + + operations = [ + migrations.CreateModel( + name='Community', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('desc', models.TextField()), + ('category', models.CharField(max_length=100)), + ], + ), + migrations.CreateModel( + name='CommunityArticles', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('article', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='communityarticles', to='BasicArticle.Articles')), + ('community', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='communityarticles', to='Community.Community')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='communityarticles', to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='CommunityMembership', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('community', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='communitymembership', to='Community.Community')), + ('role', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitymembership', to='auth.Group')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='communitymembership', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/Community/migrations/0002_auto_20171120_1202.py b/Community/migrations/0002_auto_20171120_1202.py new file mode 100644 index 0000000..14c0978 --- /dev/null +++ b/Community/migrations/0002_auto_20171120_1202.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2017-11-20 12:02 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='community', + name='created_at', + field=models.DateTimeField(auto_now_add=True, null=True), + ), + migrations.AddField( + model_name='community', + name='tag_line', + field=models.CharField(max_length=500, null=True), + ), + ] diff --git a/Community/migrations/0003_communitygroups.py b/Community/migrations/0003_communitygroups.py new file mode 100644 index 0000000..2dcd2c3 --- /dev/null +++ b/Community/migrations/0003_communitygroups.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2017-11-22 14:32 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('Group', '0002_auto_20171122_1432'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('Community', '0002_auto_20171120_1202'), + ] + + operations = [ + migrations.CreateModel( + name='CommunityGroups', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('community', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitygroups', to='Community.Community')), + ('group', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitygroups', to='Group.Group')), + ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitygroups', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/Community/migrations/0004_suggestcommunity.py b/Community/migrations/0004_suggestcommunity.py new file mode 100644 index 0000000..25bd575 --- /dev/null +++ b/Community/migrations/0004_suggestcommunity.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-02 08:23 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0003_communitygroups'), + ] + + operations = [ + migrations.CreateModel( + name='SuggestCommunity', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('desc', models.TextField()), + ('category', models.CharField(max_length=100)), + ('tag_line', models.CharField(max_length=500, null=True)), + ('purpose', models.TextField()), + ], + ), + ] diff --git a/Community/migrations/0005_auto_20180102_0842.py b/Community/migrations/0005_auto_20180102_0842.py new file mode 100644 index 0000000..77151a4 --- /dev/null +++ b/Community/migrations/0005_auto_20180102_0842.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-02 08:42 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0004_suggestcommunity'), + ] + + operations = [ + migrations.AlterField( + model_name='suggestcommunity', + name='name', + field=models.CharField(max_length=100, null=True), + ), + ] diff --git a/Community/migrations/0006_auto_20180102_0902.py b/Community/migrations/0006_auto_20180102_0902.py new file mode 100644 index 0000000..1ca70d4 --- /dev/null +++ b/Community/migrations/0006_auto_20180102_0902.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-02 09:02 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0005_auto_20180102_0842'), + ] + + operations = [ + migrations.RenameModel( + old_name='SuggestCommunity', + new_name='RequestCommunityCreation', + ), + ] diff --git a/Community/migrations/0007_requestcommunitycreation_user.py b/Community/migrations/0007_requestcommunitycreation_user.py new file mode 100644 index 0000000..3f7ad79 --- /dev/null +++ b/Community/migrations/0007_requestcommunitycreation_user.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-02 09:42 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0006_auto_20180102_0902'), + ] + + operations = [ + migrations.AddField( + model_name='requestcommunitycreation', + name='user', + field=models.CharField(max_length=100, null=True), + ), + ] diff --git a/Community/migrations/0008_auto_20180102_0951.py b/Community/migrations/0008_auto_20180102_0951.py new file mode 100644 index 0000000..1bdfef1 --- /dev/null +++ b/Community/migrations/0008_auto_20180102_0951.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-02 09:51 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0007_requestcommunitycreation_user'), + ] + + operations = [ + migrations.AlterField( + model_name='requestcommunitycreation', + name='user', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/Community/migrations/0009_auto_20180102_1007.py b/Community/migrations/0009_auto_20180102_1007.py new file mode 100644 index 0000000..8d24573 --- /dev/null +++ b/Community/migrations/0009_auto_20180102_1007.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-02 10:07 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0008_auto_20180102_0951'), + ] + + operations = [ + migrations.RemoveField( + model_name='requestcommunitycreation', + name='user', + ), + migrations.AddField( + model_name='requestcommunitycreation', + name='email', + field=models.CharField(max_length=100, null=True), + ), + migrations.AddField( + model_name='requestcommunitycreation', + name='requestedby', + field=models.CharField(max_length=100, null=True), + ), + ] diff --git a/Community/migrations/0010_requestcommunitycreation_status.py b/Community/migrations/0010_requestcommunitycreation_status.py new file mode 100644 index 0000000..033586c --- /dev/null +++ b/Community/migrations/0010_requestcommunitycreation_status.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-02 10:24 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0009_auto_20180102_1007'), + ] + + operations = [ + migrations.AddField( + model_name='requestcommunitycreation', + name='status', + field=models.CharField(max_length=100, null=True), + ), + ] diff --git a/Community/migrations/0011_auto_20180102_1027.py b/Community/migrations/0011_auto_20180102_1027.py new file mode 100644 index 0000000..187981a --- /dev/null +++ b/Community/migrations/0011_auto_20180102_1027.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-02 10:27 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0010_requestcommunitycreation_status'), + ] + + operations = [ + migrations.AlterField( + model_name='requestcommunitycreation', + name='requestedby', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/Community/migrations/0012_community_image.py b/Community/migrations/0012_community_image.py new file mode 100644 index 0000000..20e7f64 --- /dev/null +++ b/Community/migrations/0012_community_image.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-17 09:26 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0011_auto_20180102_1027'), + ] + + operations = [ + migrations.AddField( + model_name='community', + name='image', + field=models.ImageField(null=True, upload_to='group'), + ), + ] diff --git a/Community/migrations/0013_remove_community_image.py b/Community/migrations/0013_remove_community_image.py new file mode 100644 index 0000000..42f9c3e --- /dev/null +++ b/Community/migrations/0013_remove_community_image.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-17 09:30 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0012_community_image'), + ] + + operations = [ + migrations.RemoveField( + model_name='community', + name='image', + ), + ] diff --git a/Community/migrations/0014_community_image.py b/Community/migrations/0014_community_image.py new file mode 100644 index 0000000..74ba327 --- /dev/null +++ b/Community/migrations/0014_community_image.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-17 09:31 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0013_remove_community_image'), + ] + + operations = [ + migrations.AddField( + model_name='community', + name='image', + field=models.ImageField(null=True, upload_to='community'), + ), + ] diff --git a/Community/migrations/0015_auto_20180125_1103.py b/Community/migrations/0015_auto_20180125_1103.py new file mode 100644 index 0000000..0d0a2d1 --- /dev/null +++ b/Community/migrations/0015_auto_20180125_1103.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-25 11:03 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0014_community_image'), + ] + + operations = [ + migrations.RemoveField( + model_name='community', + name='image', + ), + migrations.AddField( + model_name='community', + name='forum_link', + field=models.CharField(max_length=100, null=True), + ), + ] diff --git a/Community/migrations/0016_auto_20180125_1147.py b/Community/migrations/0016_auto_20180125_1147.py new file mode 100644 index 0000000..44f5ea2 --- /dev/null +++ b/Community/migrations/0016_auto_20180125_1147.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-25 11:47 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0015_auto_20180125_1103'), + ] + + operations = [ + migrations.RemoveField( + model_name='community', + name='forum_link', + ), + migrations.AddField( + model_name='community', + name='image', + field=models.ImageField(null=True, upload_to='community'), + ), + ] diff --git a/Community/migrations/0017_community_forum_link.py b/Community/migrations/0017_community_forum_link.py new file mode 100644 index 0000000..548f95b --- /dev/null +++ b/Community/migrations/0017_community_forum_link.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-25 11:52 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0016_auto_20180125_1147'), + ] + + operations = [ + migrations.AddField( + model_name='community', + name='forum_link', + field=models.CharField(max_length=100, null=True), + ), + ] diff --git a/Community/migrations/0018_community_created_by.py b/Community/migrations/0018_community_created_by.py new file mode 100644 index 0000000..c635977 --- /dev/null +++ b/Community/migrations/0018_community_created_by.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-29 13:10 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('Community', '0017_community_forum_link'), + ] + + operations = [ + migrations.AddField( + model_name='community', + name='created_by', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitycreator', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/Community/migrations/0019_auto_20180227_1138.py b/Community/migrations/0019_auto_20180227_1138.py new file mode 100644 index 0000000..c714082 --- /dev/null +++ b/Community/migrations/0019_auto_20180227_1138.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-02-27 11:38 +from __future__ import unicode_literals + +import Community.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0018_community_created_by'), + ] + + operations = [ + migrations.AlterField( + model_name='community', + name='image', + field=models.ImageField(null=True, upload_to=Community.models.get_file_path), + ), + ] diff --git a/Community/migrations/0020_communitycoure.py b/Community/migrations/0020_communitycoure.py new file mode 100644 index 0000000..ae7e8f5 --- /dev/null +++ b/Community/migrations/0020_communitycoure.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-03-16 09:29 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('Course', '0005_auto_20180316_0929'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('Community', '0019_auto_20180227_1138'), + ] + + operations = [ + migrations.CreateModel( + name='CommunityCoure', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('community', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitycourses', to='Community.Community')), + ('course', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitycourses', to='Course.Course')), + ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitycourses', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/Community/migrations/0021_auto_20180316_0930.py b/Community/migrations/0021_auto_20180316_0930.py new file mode 100644 index 0000000..29b12b5 --- /dev/null +++ b/Community/migrations/0021_auto_20180316_0930.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-03-16 09:30 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0020_communitycoure'), + ] + + operations = [ + migrations.RenameModel( + old_name='CommunityCoure', + new_name='CommunityCourse', + ), + ] diff --git a/Community/migrations/0022_auto_20180316_1028.py b/Community/migrations/0022_auto_20180316_1028.py new file mode 100644 index 0000000..dd28492 --- /dev/null +++ b/Community/migrations/0022_auto_20180316_1028.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-03-16 10:28 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0021_auto_20180316_0930'), + ] + + operations = [ + migrations.RenameModel( + old_name='CommunityCourse', + new_name='CommunityCourses', + ), + ] diff --git a/Community/migrations/0023_auto_20180530_0735.py b/Community/migrations/0023_auto_20180530_0735.py new file mode 100644 index 0000000..993c903 --- /dev/null +++ b/Community/migrations/0023_auto_20180530_0735.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2018-05-30 07:35 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0022_auto_20180316_1028'), + ] + + operations = [ + migrations.AlterField( + model_name='community', + name='created_by', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='communityarticles', + name='article', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='rtyu', to='BasicArticle.Articles'), + ), + migrations.AlterField( + model_name='communityarticles', + name='community', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='rty', to='Community.Community'), + ), + migrations.AlterField( + model_name='communityarticles', + name='user', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='rt', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='communitycourses', + name='community', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='Community.Community'), + ), + migrations.AlterField( + model_name='communitycourses', + name='course', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='hkg', to='Course.Course'), + ), + migrations.AlterField( + model_name='communitycourses', + name='user', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='uy', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='communitygroups', + name='community', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='Community.Community'), + ), + migrations.AlterField( + model_name='communitygroups', + name='group', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='jbvhgch', to='Group.Group'), + ), + migrations.AlterField( + model_name='communitygroups', + name='user', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='jiugyug', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='communitymembership', + name='community', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='jnkhk', to='Community.Community'), + ), + migrations.AlterField( + model_name='communitymembership', + name='role', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='fuc', to='auth.Group'), + ), + migrations.AlterField( + model_name='communitymembership', + name='user', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='gyyuggguy', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='requestcommunitycreation', + name='requestedby', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='nhyfdtdgtd', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/Community/migrations/0024_auto_20180530_0853.py b/Community/migrations/0024_auto_20180530_0853.py new file mode 100644 index 0000000..85d8715 --- /dev/null +++ b/Community/migrations/0024_auto_20180530_0853.py @@ -0,0 +1,86 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2018-05-30 08:53 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0023_auto_20180530_0735'), + ] + + operations = [ + migrations.RemoveField( + model_name='communitycourses', + name='community', + ), + migrations.AlterField( + model_name='community', + name='created_by', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitycreator', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='communityarticles', + name='article', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='communityarticles', to='BasicArticle.Articles'), + ), + migrations.AlterField( + model_name='communityarticles', + name='community', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='communityarticles', to='Community.Community'), + ), + migrations.AlterField( + model_name='communityarticles', + name='user', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='communityarticles', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='communitycourses', + name='course', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitycourses', to='Course.Course'), + ), + migrations.AlterField( + model_name='communitycourses', + name='user', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitycourses', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='communitygroups', + name='community', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitygroups', to='Community.Community'), + ), + migrations.AlterField( + model_name='communitygroups', + name='group', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitygroups', to='Group.Group'), + ), + migrations.AlterField( + model_name='communitygroups', + name='user', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitygroups', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='communitymembership', + name='community', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='communitymembership', to='Community.Community'), + ), + migrations.AlterField( + model_name='communitymembership', + name='role', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitymembership', to='auth.Group'), + ), + migrations.AlterField( + model_name='communitymembership', + name='user', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='communitymembership', to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='requestcommunitycreation', + name='requestedby', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/Community/migrations/0025_communitycourses_community.py b/Community/migrations/0025_communitycourses_community.py new file mode 100644 index 0000000..aca4e24 --- /dev/null +++ b/Community/migrations/0025_communitycourses_community.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2018-06-05 05:07 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0024_auto_20180530_0853'), + ] + + operations = [ + migrations.AddField( + model_name='communitycourses', + name='community', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='communitycourses', to='Community.Community'), + ), + ] diff --git a/Community/migrations/__init__.py b/Community/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Community/models.py b/Community/models.py new file mode 100644 index 0000000..8279a46 --- /dev/null +++ b/Community/models.py @@ -0,0 +1,65 @@ +from django.db import models +from django.contrib.auth.models import User +from django.contrib.auth.models import Group as Roles +from BasicArticle.models import Articles +from Group.models import Group +from Course.models import Course +import os, uuid + +def get_file_path(instance, filename): + ext = filename.split('.')[-1] + filename = "%s.%s" % (uuid.uuid4(), ext) + return os.path.join('community', filename) + +class Community(models.Model): + + name = models.CharField(max_length=100) + desc = models.TextField() + image = models.ImageField(null=True, upload_to=get_file_path) + category = models.CharField(max_length=100) + tag_line = models.CharField(null=True, max_length=500) + created_at = models.DateTimeField(null=True, auto_now_add=True) + created_by = models.ForeignKey(User,null =True, related_name='communitycreator') + forum_link = models.CharField(null=True, max_length=100) + + def __str__(self): + return self.name + + +class CommunityMembership(models.Model): + user = models.ForeignKey(User, related_name='communitymembership') + community = models.ForeignKey(Community, related_name='communitymembership') + role = models.ForeignKey(Roles, null=True, related_name='communitymembership') + +class CommunityArticles(models.Model): + article = models.ForeignKey(Articles, related_name='communityarticles') + user = models.ForeignKey(User, related_name='communityarticles') + community = models.ForeignKey(Community, related_name='communityarticles') + + def get_absolute_url(self): + from django.urls import reverse + return reverse('article_view', kwargs={'pk': self.article_id}) + +class CommunityGroups(models.Model): + group = models.ForeignKey(Group, null=True, related_name='communitygroups') + user = models.ForeignKey(User, null=True, related_name='communitygroups') + community = models.ForeignKey(Community, null=True, related_name='communitygroups') + +class RequestCommunityCreation(models.Model): + name = models.CharField(null=True, max_length=100) + desc = models.TextField() + category = models.CharField(max_length=100) + tag_line = models.CharField(null=True, max_length=500) + purpose = models.TextField() + requestedby = models.ForeignKey(User, null=True) + email = models.CharField(null=True, max_length=100) + status = models.CharField(null=True, max_length=100) + + def __str__(self): + return self.name + +class CommunityCourses(models.Model): + course = models.ForeignKey(Course, null=True, related_name='communitycourses') + user = models.ForeignKey(User, null=True, related_name='communitycourses') + community = models.ForeignKey(Community, null=True, related_name='communitycourses') + \ No newline at end of file diff --git a/Community/serializers.py b/Community/serializers.py new file mode 100644 index 0000000..e8cdcdb --- /dev/null +++ b/Community/serializers.py @@ -0,0 +1,7 @@ +from rest_framework import serializers +from .models import Community + +class CommunitySerializer(serializers.HyperlinkedModelSerializer): + class Meta: + model = Community + fields = ('name', 'desc','category') diff --git a/Community/tests.py b/Community/tests.py new file mode 100644 index 0000000..9e61db9 --- /dev/null +++ b/Community/tests.py @@ -0,0 +1,154 @@ +# Create your tests here. +from django.core.urlresolvers import reverse +from django.urls import resolve +from django.test import TestCase +from django.contrib.auth.models import User +from .views import display_communities, request_community_creation, create_community, community_view, community_subscribe, community_unsubscribe +from .models import Community, RequestCommunityCreation, CommunityArticles, CommunityGroups + +class DisplayCommunityTest(TestCase): + def test_display_community_view_status_code(self): + url = reverse('display_communities') + response = self.client.get(url) + self.assertEquals(response.status_code, 200) + + def test_display_communities_url_resloves_display_communities_view(self): + view = resolve('/communities/') + self.assertEquals(view.func, display_communities) + + +class CommunityViewTest(TestCase): + def community_view_success_status_code(self): + url = reverse('community_view', kwargs={'pk': 1}) + response =self.client.get(url) + self.assertEquals(response.status_code, 200) + + def test_community_view_url_resolves_community_view(self): + view = resolve('/community-view/1/') + self.assertEquals(view.func, community_view) + + +class CommunitySubscribeTest(TestCase): + def test_community_subscribe_valid_post(self): + url = reverse('community_subscribe') + data = { + 'cid': '1' + } + response = self.client.post(url, data) + self.assertFalse(Community.objects.exists()) + + def test_community_subscribe_url_resolves_community_subscribe_view(self): + view = resolve('/community-subscribe/') + self.assertEquals(view.func, community_subscribe) + + +class CommunityUnsubscribeTest(TestCase): + def test_community_unsubscribe_valid_post(self): + url = reverse('community_unsubscribe') + data = { + 'cid': '1' + } + response = self.client.post(url, data) + self.assertFalse(Community.objects.exists()) + + def test_community_unsubscribe_url_resolves_community_unsubscribe_view(self): + view = resolve('/community-unsubscribe/') + self.assertEquals(view.func, community_unsubscribe) + + +class CommunityArticleCreateTest(TestCase): + def test_community_article_create_valid_post(self): + url = reverse('community_article_create') + data = { + 'cid': '1' + } + response = self.client.post(url, data) + self.assertFalse(CommunityArticles.objects.exists()) + + +class CommunityGroupTest(TestCase): + def test_community_group_valid_post(self): + url = reverse('community_group') + data = { + 'cid': '1' + } + response = self.client.post(url, data) + self.assertFalse(CommunityGroups.objects.exists()) + + +class RequestCommunityCreationTest(TestCase): + def test_request_community_creation_status(self): + url = reverse('request_community_creation') + self.response = self.client.get(url) + self.assertEquals(self.response.status_code, 302) + + def test_request_community_creation_valid_post(self): + url = reverse('request_community_creation') + data = { + 'name': 'Indian Festivals', + 'category': 'festival' + } + response = self.client.post(url, data) + self.assertFalse(RequestCommunityCreation.objects.exists()) + + def test_request_community_creation_url_resolves_request_community_creation_view(self): + view = resolve('/request_community_creation/') + self.assertEquals(view.func, request_community_creation) + + +class HandleCommunityCreationRequestsTest(TestCase): + def test_handle_community_creation_requests_valid_post(self): + url = reverse('handle_community_creation_requests') + data = { + 'name': 'Indian Festivals', + 'category': 'festival' + } + response = self.client.post(url, data) + self.assertFalse(Community.objects.exists()) + + +class ManageCommunityTest(TestCase): + def test_manage_community_status(self): + url = reverse('manage_community', kwargs={'pk': 1}) + self.response = self.client.get(url) + self.assertEquals(self.response.status_code, 302) + + def test_manage_community_valid_post(self): + url = reverse('manage_community', kwargs={'pk': 1}) + data = { + 'name': 'Indian Festivals', + 'category': 'festival' + } + response = self.client.post(url, data) + self.assertFalse(Community.objects.exists()) + + +class UpdateCommunityInfoTest(TestCase): + def test_update_community_info_valid_post(self): + url = reverse('update_community_info', kwargs={'pk': 2}) + data = { + 'name': 'Indian Festivals', + 'category': 'festival' + } + response = self.client.post(url, data) + self.assertFalse(Community.objects.exists()) + + +class CreateCommunityTest(TestCase): + def test_create_community_status(self): + url = reverse('create_community') + response = self.client.get(url) + self.assertEquals(response.status_code, 302) + + def test_create_community_valid_post(self): + url = reverse('create_community') + data = { + 'name': 'Indian Festivals', + 'category': 'festival' + } + response = self.client.post(url, data) + self.assertFalse(Community.objects.exists()) + + def test_create_community_url_resolves_request_community_view(self): + view = resolve('/create_community/') + self.assertEquals(view.func, create_community) diff --git a/Community/views.py b/Community/views.py new file mode 100644 index 0000000..aa6baf6 --- /dev/null +++ b/Community/views.py @@ -0,0 +1,442 @@ +from django.shortcuts import render, redirect +from BasicArticle.views import create_article, view_article +# Create your views here. +from django.http import Http404, HttpResponse +from django.shortcuts import render +from BasicArticle.models import Articles +from .models import Community, CommunityMembership, CommunityArticles, RequestCommunityCreation, CommunityGroups, CommunityCourses +from rest_framework import viewsets +from .models import CommunityGroups +from Group.views import create_group +from django.contrib.auth.models import Group as Roles +from UserRolesPermission.views import user_dashboard +from django.contrib.auth.models import Group as Roles +from rolepermissions.roles import assign_role +from UserRolesPermission.roles import CommunityAdmin +from django.contrib.auth.models import User +from workflow.models import States +from django.db.models import Q +from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger +from Course.views import course_view, create_course +from reputation.models import CommunityRep,SystemRep,DefaultValues +# Create your views here. + + +def display_communities(request): + if request.method == 'POST': + sortby = request.POST['sortby'] + if sortby == 'a_to_z': + communities=Community.objects.all().order_by('name') + if sortby == 'z_to_a': + communities=Community.objects.all().order_by('-name') + if sortby == 'oldest': + communities=Community.objects.all().order_by('created_at') + if sortby == 'latest': + communities=Community.objects.all().order_by('-created_at') + else: + communities=Community.objects.all().order_by('name') + return render(request, 'communities.html',{'communities':communities}) + +def community_view(request, pk): + try: + message = 0 + community = Community.objects.get(pk=pk) + uid = request.user.id + membership = CommunityMembership.objects.get(user =uid, community = community.pk) + role = Roles.objects.get(name='community_admin') + if membership.role == role: + count = CommunityMembership.objects.filter(community=community,role=role).count() + if count < 2: + message = 1 + except CommunityMembership.DoesNotExist: + membership = 'FALSE' + subscribers = CommunityMembership.objects.filter(community = pk).count() + pubarticles = CommunityArticles.objects.raw('select ba.id, ba.body, ba.title, workflow_states.name as state from workflow_states, BasicArticle_articles as ba , Community_communityarticles as ca where ba.state_id=workflow_states.id and ca.article_id =ba.id and ca.community_id=%s and ba.state_id in (select id from workflow_states as w where w.name = "publish");', [community.pk]) + pubarticlescount = len(list(pubarticles)) + users = CommunityArticles.objects.raw('select u.id,username from auth_user u join Community_communityarticles c on u.id = c.user_id where c.community_id=%s group by u.id order by count(*) desc limit 2;', [pk]) + groups = CommunityGroups.objects.filter(community = pk, group__visibility='1') + groupcount = groups.count() + communitymem=CommunityMembership.objects.filter(community = pk).order_by('?')[:10] + return render(request, 'communityview.html', {'community': community, 'membership':membership, 'subscribers':subscribers, 'groups':groups, 'users':users, 'groupcount':groupcount, 'pubarticlescount':pubarticlescount, 'message':message, 'pubarticles':pubarticles, 'communitymem':communitymem}) + +def community_subscribe(request): + cid = request.POST['cid'] + if request.user.is_authenticated: + if request.method == 'POST': + community=Community.objects.get(pk=cid) + role = Roles.objects.get(name='author') + user = request.user + commrep = CommunityRep() + commrep.user=user + commrep.community = community + commrep.rep = 0 + commrep.save() + if CommunityMembership.objects.filter(user=user, community=community).exists(): + return redirect('community_view',pk=cid) + obj = CommunityMembership.objects.create(user=user, community=community, role=role) + return redirect('community_view',pk=cid) + return render(request, 'communityview.html') + else: + return redirect('/login/?next=/community-view/%d' % int(cid) ) + +def community_unsubscribe(request): + if request.user.is_authenticated: + if request.method == 'POST': + cid = request.POST['cid'] + community=Community.objects.get(pk=cid) + user = request.user + CommunityRep.objects.get(community=community,user=user).delete() + if CommunityMembership.objects.filter(user=user, community=community).exists(): + obj = CommunityMembership.objects.filter(user=user, community=community).delete() + return redirect('community_view',pk=cid) + return render(request, 'communityview.html') + else: + return redirect('login') + +def community_article_create(request): + if request.user.is_authenticated: + if request.method == 'POST': + status = request.POST['status'] + cid = request.POST['cid'] + community = Community.objects.get(pk=cid) + commrep = CommunityRep.objects.get(community = community, user=request.user) + crep =commrep.rep + defaultval = DefaultValues.objects.get(pk=1) + if (crep>defaultval.min_crep_for_art): + if status=='1': + article = create_article(request) + obj = CommunityArticles.objects.create(article=article, user = request.user , community =community ) + return redirect('article_view', article.pk) + else: + return render(request, 'new_article.html', {'community':community, 'status':1}) + return render(request,'lowrep.html') + else: + return redirect('home') + else: + return redirect('login') + + +def community_group(request): + if request.user.is_authenticated: + if request.method == 'POST': + status = request.POST['status'] + cid = request.POST['cid'] + community = Community.objects.get(pk=cid) + if status=='1': + group = create_group(request) + obj = CommunityGroups.objects.create(group=group, user=request.user, community=community) + return redirect('group_view', group.pk) + else: + return render(request, 'new_group.html', {'community':community, 'status':1}) + else: + return redirect('home') + else: + return redirect('login') + +def request_community_creation(request): + if request.user.is_authenticated: + if request.method == 'POST': + name = request.POST['name'] + desc = request.POST['desc'] + category = request.POST['category'] + tag_line = request.POST['tag_line'] + purpose = request.POST['purpose'] + status = request.POST['status'] + requestcommunitycreation = RequestCommunityCreation.objects.create( + name = name, + desc = desc, + category = category, + tag_line = tag_line, + purpose = purpose, + requestedby = request.user, + email = request.user.email, + status = status + ) + return redirect('user_dashboard') + else: + sysrep = SystemRep.objects.get(user=request.user) + defaultval = DefaultValues.objects.get(pk=1) + srep = sysrep.sysrep + if(srep > defaultval.min_srep_for_comm): + return render(request, 'request_community_creation.html') + return render(request,'lowrepcom.html') + else: + return redirect('login') + + +def handle_community_creation_requests(request): + + if request.user.is_superuser: + if request.method == 'POST': + pk = request.POST['pk'] + rcommunity=RequestCommunityCreation.objects.get(pk=pk) + user=rcommunity.requestedby + status = request.POST['status'] + if status=='approve' and rcommunity.status!='approved': + + # Create Forum for this community + from django.db import connection + cursor = connection.cursor() + cursor.execute(''' select tree_id from forum_forum order by tree_id DESC limit 1''') + tree_id = cursor.fetchone()[0] + 1 + slug = "-".join(rcommunity.name.lower().split()) + #return HttpResponse(str(tree_id)) + insert_stmt = ( + "INSERT INTO forum_forum (created,updated,name,slug,description,link_redirects,type,link_redirects_count,display_sub_forum_list,lft,rght,tree_id,level,direct_posts_count,direct_topics_count) " + "VALUES (NOW(), NOW(), %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" + ) + data = (rcommunity.name, slug, rcommunity.desc, 0,0,0,1,1,2,tree_id,0,0,0) + try: + cursor.execute(insert_stmt, data) + cursor.execute(''' select id from forum_forum order by id desc limit 1''') + forum_link = slug + '-' + str(cursor.fetchone()[0]) + except: + errormessage = 'Can not create default forum for this community' + return render(request, 'new_community.html', {'errormessage':errormessage}) + + communitycreation = Community.objects.create( + name = rcommunity.name, + desc = rcommunity.desc, + tag_line = rcommunity.tag_line, + category = rcommunity.category, + created_by = rcommunity.requestedby, + forum_link = forum_link + + ) + communityadmin = Roles.objects.get(name='community_admin') + communitymembership = CommunityMembership.objects.create( + user = rcommunity.requestedby, + community = communitycreation, + role = communityadmin + ) + rcommunity.status = 'approved' + rcommunity.save() + commrep = CommunityRep() + commrep.user = rcommunity.requestedby + commrep.community = communitycreation + sysrep = SystemRep.objects.get(user=rcommunity.requestedby) + defaultval = DefaultValues.objects.get(pk=1) + sysrep.sysrep+=defaultval.srep_for_comm_creation + sysrep.save() + commrep.save() + if status=='reject' and rcommunity.status!='rejected': + rcommunity.status = 'rejected' + rcommunity.save() + + + requestcommunitycreation=RequestCommunityCreation.objects.filter(status='Request') + return render(request, 'community_creation_requests.html',{'requestcommunitycreation':requestcommunitycreation}) + else: + return redirect('login') + +def manage_community(request,pk): + if request.user.is_authenticated: + community = Community.objects.get(pk=pk) + uid = request.user.id + errormessage = '' + membership = None + try: + membership = CommunityMembership.objects.get(user =uid, community = community.pk) + if membership.role.name == 'community_admin': + count = CommunityMembership.objects.filter(community = community.pk, role=membership.role).count() + members = CommunityMembership.objects.filter(community = community.pk) + if request.method == 'POST': + try: + username = request.POST['username'] + rolename = request.POST['role'] + user = User.objects.get(username = username) + role = Roles.objects.get(name=rolename) + status = request.POST['status'] + + if status == 'add': + try: + is_member = CommunityMembership.objects.get(user =user, community = community.pk) + except CommunityMembership.DoesNotExist: + obj = CommunityMembership.objects.create(user=user, community=community, role=role) + CommunityRep.objects.create(user=user,community=community) + else: + errormessage = 'user exists in community' + if status == 'update': + if count > 1 or count == 1 and username != request.user.username: + try: + is_member = CommunityMembership.objects.get(user =user, community = community.pk) + is_member.role = role + is_member.save() + except CommunityMembership.DoesNotExist: + errormessage = 'no such user in the community' + else: + errormessage = 'cannot update this user' + if status == 'remove': + if count > 1 or count == 1 and username != request.user.username: + try: + obj = CommunityMembership.objects.filter(user=user, community=community).delete() + CommunityRep.objects.get(user=user,community=community).delete() + except CommunityMembership.DoesNotExist: + errormessage = 'no such user in the community' + else: + errormessage = 'cannot remove this user' + return render(request, 'managecommunity.html', {'community': community, 'members':members,'membership':membership, 'errormessage':errormessage}) + # return redirect('manage_community',pk=pk) + except User.DoesNotExist: + errormessage = "no such user in the system" + + return render(request, 'managecommunity.html', {'community': community, 'members':members,'membership':membership, 'errormessage':errormessage}) + else: + return redirect('community_view',pk=pk) + except CommunityMembership.DoesNotExist: + return redirect('community_view',pk=pk) + else: + return redirect('login') + +def update_community_info(request,pk): + if request.user.is_authenticated: + community = Community.objects.get(pk=pk) + errormessage = '' + membership = None + uid = request.user.id + try: + membership = CommunityMembership.objects.get(user=uid, community=community.pk) + if membership.role.name == 'community_admin': + if request.method == 'POST': + desc = request.POST['desc'] + category = request.POST['category'] + tag_line = request.POST['tag_line'] + community.desc = desc + community.category = category + community.tag_line = tag_line + try: + image = request.FILES['community_image'] + community.image = image + except: + errormessage = 'image not uploaded' + community.save() + return redirect('community_view',pk=pk) + else: + return render(request, 'updatecommunityinfo.html', {'community':community, 'membership':membership}) + else: + return redirect('community_view',pk=pk) + except CommunityMembership.DoesNotExist: + return redirect('community_view',pk=pk) + else: + return redirect('login') + +def create_community(request): + errormessage = '' + if request.user.is_superuser: + if request.method == 'POST': + username = request.POST['username'] + try: + usr = User.objects.get(username=username) + name = request.POST['name'] + desc = request.POST['desc'] + category = request.POST['category'] + tag_line = request.POST['tag_line'] + role = Roles.objects.get(name='community_admin') + + # Create Forum for this community + from django.db import connection + cursor = connection.cursor() + cursor.execute(''' select tree_id from forum_forum order by tree_id DESC limit 1''') + tree_id = cursor.fetchone()[0] + 1 + slug = "-".join(name.lower().split()) + #return HttpResponse(str(tree_id)) + insert_stmt = ( + "INSERT INTO forum_forum (created,updated,name,slug,description,link_redirects,type,link_redirects_count,display_sub_forum_list,lft,rght,tree_id,level,direct_posts_count,direct_topics_count) " + "VALUES (NOW(), NOW(), %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" + ) + data = (name, slug, desc, 0,0,0,1,1,2,tree_id,0,0,0) + try: + cursor.execute(insert_stmt, data) + cursor.execute(''' select id from forum_forum order by id desc limit 1''') + forum_link = slug + '-' + str(cursor.fetchone()[0]) + except: + errormessage = 'Can not create default forum for this community' + return render(request, 'new_community.html', {'errormessage':errormessage}) + + + community = Community.objects.create( + name=name, + desc=desc, + category = category, + image = request.FILES['community_image'], + tag_line = tag_line, + created_by = usr, + forum_link = forum_link + ) + communitymembership = CommunityMembership.objects.create( + user = usr, + community = community, + role = role + ) + + + return redirect('community_view', community.pk) + except User.DoesNotExist: + errormessage = 'user does not exist' + return render(request, 'new_community.html', {'errormessage':errormessage}) + else: + return render(request, 'new_community.html') + else: + return redirect('home') + +def community_content(request, pk): + commarticles = '' + try: + community = Community.objects.get(pk=pk) + uid = request.user.id + membership = CommunityMembership.objects.get(user=uid, community=community.pk) + if membership: + carticles = CommunityArticles.objects.raw('select "article" as type, ba.id, ba.title, ba.body, ba.image, ba.views, ba.created_at, username, workflow_states.name as state from workflow_states, auth_user au, BasicArticle_articles as ba , Community_communityarticles as ca where au.id=ba.created_by_id and ba.state_id=workflow_states.id and ca.article_id =ba.id and ca.community_id=%s and ba.state_id in (select id from workflow_states as w where w.name = "visible" or w.name="publishable");', [community.pk]) + ccourse = CommunityCourses.objects.raw('select "course" as type, course.id, course.title, course.body, course.image, course.created_at, username from Course_course as course, Community_communitycourses as ccourses, auth_user au where au.id=course.created_by_id and course.id=ccourses.course_id and ccourses.community_id=%s;', [community.pk]) + lstfinal = list(carticles) + list(ccourse) + + page = request.GET.get('page', 1) + paginator = Paginator(list(lstfinal), 5) + try: + commarticles = paginator.page(page) + except PageNotAnInteger: + commarticles = paginator.page(1) + except EmptyPage: + commarticles = paginator.page(paginator.num_pages) + + except CommunityMembership.DoesNotExist: + return redirect('community_view', community.pk) + return render(request, 'communitycontent.html', {'community': community, 'membership':membership, 'commarticles':commarticles}) + +def community_group_content(request, pk): + commgrparticles = '' + try: + community = Community.objects.get(pk=pk) + uid = request.user.id + membership = CommunityMembership.objects.get(user=uid, community=community.pk) + if membership: + cgarticles = CommunityGroups.objects.raw('select username, bs.id, bs.title, bs.body, bs.image, bs.views, bs.created_at, gg.name from auth_user au, BasicArticle_articles bs join (select * from Group_grouparticles where group_id in (select group_id from Community_communitygroups where community_id=%s)) t on bs.id=t.article_id join Group_group gg on gg.id=group_id and gg.visibility=1 where bs.state_id=2 and au.id=bs.created_by_id;', [community.pk]) + page = request.GET.get('page', 1) + paginator = Paginator(list(cgarticles), 5) + try: + commgrparticles = paginator.page(page) + except PageNotAnInteger: + commgrparticles = paginator.page(1) + except EmptyPage: + commgrparticles = paginator.page(paginator.num_pages) + + except CommunityMembership.DoesNotExist: + return redirect('community_view', community.pk) + return render(request, 'communitygroupcontent.html', {'community': community, 'membership':membership, 'commgrparticles':commgrparticles}) + +def community_course_create(request): + if request.user.is_authenticated: + if request.method == 'POST': + status = request.POST['status'] + cid = request.POST['cid'] + community = Community.objects.get(pk=cid) + if status=='1': + course = create_course(request) + obj = CommunityCourses.objects.create(course=course, user=request.user, community=community) + return redirect('course_view', course.pk) + else: + return render(request, 'new_course.html', {'community':community, 'status':1}) + else: + return redirect('home') + else: + return redirect('login') diff --git a/Community/viewsets.py b/Community/viewsets.py new file mode 100644 index 0000000..021214e --- /dev/null +++ b/Community/viewsets.py @@ -0,0 +1,9 @@ +from .models import Community +from .serializers import CommunitySerializer +from rest_framework import viewsets + +# Create your views here. + +class CommunityViewSet(viewsets.ModelViewSet): + queryset = Community.objects.all().order_by('name') + serializer_class = CommunitySerializer diff --git a/Course/__init__.py b/Course/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Course/admin.py b/Course/admin.py new file mode 100644 index 0000000..ac05c77 --- /dev/null +++ b/Course/admin.py @@ -0,0 +1,43 @@ +from django.contrib import admin +from mptt.admin import DraggableMPTTAdmin +from .models import Course, Topics, Links, TopicArticle +from reversion_compare.admin import CompareVersionAdmin +from reversion_compare.mixins import CompareMixin +from django.db.models import Manager +# Register your models here. + +_old_compare = CompareMixin.compare + + +def compare(self, obj, version1, version2): + def replace_taggit_field(version_ins): + for fieldname in version_ins.field_dict: + if isinstance(version_ins.field_dict[fieldname], Manager): + version_ins.field_dict[fieldname] = [] + replace_taggit_field(version1) + replace_taggit_field(version2) + return _old_compare(self, obj, version1, version2) + +CompareMixin.compare = compare + +class TopicArticleAdmin(CompareVersionAdmin): + pass + +admin.site.register(Course) +admin.site.register(Links) +admin.site.register(TopicArticle, TopicArticleAdmin) + + + +admin.site.register( + Topics, + DraggableMPTTAdmin, + list_display=( + 'tree_actions', + 'indented_title', + # ...more fields if you feel like it... + ), + list_display_links=( + 'indented_title', + ), +) diff --git a/Course/api/__init__.py b/Course/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Course/api/serializers.py b/Course/api/serializers.py new file mode 100644 index 0000000..4ec5aef --- /dev/null +++ b/Course/api/serializers.py @@ -0,0 +1,74 @@ +from rest_framework import serializers +from Course.models import Course, Links, TopicArticle, Topics +from Community.models import CommunityCourses, Community + +class CourseSerializer(serializers.ModelSerializer): + community = serializers.IntegerField( write_only=True) + class Meta: + model = Course + fields = [ + 'title', + 'body', + 'created_by', + 'community' + ] + read_only_fields = ('created_by',) + + + def create(self, validated_data): + + obj = Course.objects.create(title=validated_data.get('title'), + body =validated_data.get('body'), + created_by = self.context['request'].user + ) + community = Community.objects.get(pk=validated_data.get('community')) + CommunityCourses.objects.create(course=obj, user=self.context['request'].user, community=community) + return obj + + +class TopicsLinksSerializer(serializers.ModelSerializer): + class Meta: + model = Links + fields = [ + 'id', + 'link', + 'desc', + 'topics', + 'types' + ] + +class TopicArticleSerializer(serializers.ModelSerializer): + title = serializers.ReadOnlyField(source='article.title') + body = serializers.ReadOnlyField(source='article.body') + created_by = serializers.ReadOnlyField(source='article.created_by.username') + created_at = serializers.ReadOnlyField(source='article.created_at') + + class Meta: + model = TopicArticle + fields = [ + 'id', + 'article', + 'title', + 'body', + 'topics', + 'created_by', + 'created_at' + ] + + +class TopicsSerializer(serializers.ModelSerializer): + class Meta: + model = Topics + fields = [ + 'id', + 'name', + ] + + +class DestoryTopicArticleSerializer(serializers.ModelSerializer): + class Meta: + model = TopicArticle + fields = [ + 'article', + 'topics' + ] \ No newline at end of file diff --git a/Course/api/urls.py b/Course/api/urls.py new file mode 100644 index 0000000..b785320 --- /dev/null +++ b/Course/api/urls.py @@ -0,0 +1,12 @@ +from django.conf.urls import url +from .views import CourseRUDApiView, CourseCreateApiView, TopicsLinksApiView, TopicArticleApiView, LinksDetailsApiView, TopicsApiView, DestoyTopicArticleApiView + +urlpatterns = [ + url(r'^create$', CourseCreateApiView.as_view(), name='cousre-create-api'), + url(r'^(?P\d*)/$', CourseRUDApiView.as_view(), name='cousre-rud-api'), + url(r'^topics/links/(?P\d*)/$', TopicsLinksApiView.as_view(), name='topics-links-api'), + url(r'^topics/articles/(?P\d*)/$', TopicArticleApiView.as_view(), name='topics-article-api'), + url(r'^topics/link/(?P\d*)/$', LinksDetailsApiView.as_view(), name='topics-link-api'), + url(r'^topics/(?P\d*)/$', TopicsApiView.as_view(), name='course-topics-api'), + url(r'^topics/articles/delete/(?P\d*)/$', DestoyTopicArticleApiView.as_view(), name='destory-topics-article-api'), + ] diff --git a/Course/api/views.py b/Course/api/views.py new file mode 100644 index 0000000..3b599d7 --- /dev/null +++ b/Course/api/views.py @@ -0,0 +1,72 @@ +from rest_framework import generics +from Course.models import Course, Links, TopicArticle, Topics +from .serializers import CourseSerializer, TopicsLinksSerializer, TopicArticleSerializer , TopicsSerializer, DestoryTopicArticleSerializer +from Community.models import Community +from rest_framework.decorators import api_view +from rest_framework.response import Response +from rest_framework.permissions import IsAuthenticatedOrReadOnly +from rest_framework import status + +class CourseCreateApiView(generics.CreateAPIView): + lookup_field = 'pk' + serializer_class = CourseSerializer + + def get_queryset(self): + return Course.objects.all() + +class CourseRUDApiView(generics.RetrieveUpdateDestroyAPIView): + lookup_field = 'pk' + serializer_class = CourseSerializer + + def get_queryset(self): + return Course.objects.all() + + +class TopicsLinksApiView(generics.ListAPIView): + lookup_field = 'pk' + serializer_class = TopicsLinksSerializer + permission_classes = (IsAuthenticatedOrReadOnly,) + + def get_queryset(self): + topics = self.kwargs['pk'] + return Links.objects.filter(topics=topics) + +class TopicArticleApiView(generics.ListAPIView): + lookup_field = 'pk' + serializer_class = TopicArticleSerializer + permission_classes = (IsAuthenticatedOrReadOnly,) + + def get_queryset(self): + topics = self.kwargs['pk'] + return TopicArticle.objects.filter(topics=topics) + +class LinksDetailsApiView(generics.RetrieveUpdateDestroyAPIView): + lookup_field = 'pk' + serializer_class = TopicsLinksSerializer + permission_classes = (IsAuthenticatedOrReadOnly,) + + def get_queryset(self): + pk = self.kwargs['pk'] + return Links.objects.filter(pk=pk) + +class TopicsApiView(generics.ListAPIView): + lookup_field = 'pk' + serializer_class = TopicsSerializer + permission_classes = (IsAuthenticatedOrReadOnly,) + + def get_queryset(self): + course = self.kwargs['pk'] + return Topics.objects.filter(course=course) + +class DestoyTopicArticleApiView(generics.DestroyAPIView): + lookup_field = 'pk' + serializer_class = DestoryTopicArticleSerializer + + def get_queryset(self): + article = self.kwargs['pk'] + return TopicArticle.objects.filter(article=article) + + def destroy(self, request, *args, **kwargs): + article = self.kwargs['pk'] + TopicArticle.objects.filter(article=article).delete() + return Response(status=status.HTTP_204_NO_CONTENT) \ No newline at end of file diff --git a/Course/apps.py b/Course/apps.py new file mode 100644 index 0000000..8db3380 --- /dev/null +++ b/Course/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class CourseConfig(AppConfig): + name = 'Course' diff --git a/Course/forms.py b/Course/forms.py new file mode 100644 index 0000000..b365307 --- /dev/null +++ b/Course/forms.py @@ -0,0 +1,12 @@ +from django import forms +from .models import Course, Topics +from mptt.forms import * + +class TopicForm(forms.ModelForm): + class Meta: + model = Topics + fields = ('name', 'parent') + + def __init__(self, course, *args, **kwargs): + super(TopicForm, self).__init__(*args, **kwargs) + self.fields['parent'].queryset = Topics.objects.filter(course=course) diff --git a/Course/migrations/0001_initial.py b/Course/migrations/0001_initial.py new file mode 100644 index 0000000..7545b50 --- /dev/null +++ b/Course/migrations/0001_initial.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-03-14 13:37 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion +import mptt.fields + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Course', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('desc', models.TextField()), + ], + ), + migrations.CreateModel( + name='Links', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('link', models.CharField(max_length=300)), + ('desc', models.TextField()), + ], + ), + migrations.CreateModel( + name='Topics', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=50, unique=True)), + ('lft', models.PositiveIntegerField(db_index=True, editable=False)), + ('rght', models.PositiveIntegerField(db_index=True, editable=False)), + ('tree_id', models.PositiveIntegerField(db_index=True, editable=False)), + ('level', models.PositiveIntegerField(db_index=True, editable=False)), + ('parent', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='Course.Topics')), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/Course/migrations/0002_links_topics.py b/Course/migrations/0002_links_topics.py new file mode 100644 index 0000000..445433e --- /dev/null +++ b/Course/migrations/0002_links_topics.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-03-14 13:40 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('Course', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='links', + name='topics', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='topics_links', to='Course.Topics'), + ), + ] diff --git a/Course/migrations/0003_topics_course.py b/Course/migrations/0003_topics_course.py new file mode 100644 index 0000000..1ddd7a8 --- /dev/null +++ b/Course/migrations/0003_topics_course.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-03-14 13:43 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('Course', '0002_links_topics'), + ] + + operations = [ + migrations.AddField( + model_name='topics', + name='course', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='course_topics', to='Course.Course'), + ), + ] diff --git a/Course/migrations/0004_course_community.py b/Course/migrations/0004_course_community.py new file mode 100644 index 0000000..3a72f4f --- /dev/null +++ b/Course/migrations/0004_course_community.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-03-16 07:32 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('Community', '0019_auto_20180227_1138'), + ('Course', '0003_topics_course'), + ] + + operations = [ + migrations.AddField( + model_name='course', + name='community', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='community_course', to='Community.Community'), + ), + ] diff --git a/Course/migrations/0005_auto_20180316_0929.py b/Course/migrations/0005_auto_20180316_0929.py new file mode 100644 index 0000000..add338c --- /dev/null +++ b/Course/migrations/0005_auto_20180316_0929.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-03-16 09:29 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('Course', '0004_course_community'), + ] + + operations = [ + migrations.CreateModel( + name='videos', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('video', models.CharField(max_length=300)), + ('desc', models.TextField()), + ('topics', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='topics_videos', to='Course.Topics')), + ], + ), + migrations.RemoveField( + model_name='course', + name='community', + ), + ] diff --git a/Course/migrations/0006_auto_20180321_1206.py b/Course/migrations/0006_auto_20180321_1206.py new file mode 100644 index 0000000..1566ddf --- /dev/null +++ b/Course/migrations/0006_auto_20180321_1206.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-03-21 12:06 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Course', '0005_auto_20180316_0929'), + ] + + operations = [ + migrations.AlterField( + model_name='topics', + name='name', + field=models.CharField(max_length=50), + ), + ] diff --git a/Course/migrations/0007_links_types.py b/Course/migrations/0007_links_types.py new file mode 100644 index 0000000..0deb132 --- /dev/null +++ b/Course/migrations/0007_links_types.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-04-02 13:10 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Course', '0006_auto_20180321_1206'), + ] + + operations = [ + migrations.AddField( + model_name='links', + name='types', + field=models.CharField(max_length=300, null=True), + ), + ] diff --git a/Course/migrations/0008_auto_20180409_0547.py b/Course/migrations/0008_auto_20180409_0547.py new file mode 100644 index 0000000..1a9a6de --- /dev/null +++ b/Course/migrations/0008_auto_20180409_0547.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-04-09 05:47 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('Course', '0007_links_types'), + ] + + operations = [ + migrations.RenameField( + model_name='course', + old_name='desc', + new_name='description', + ), + migrations.RenameField( + model_name='course', + old_name='name', + new_name='title', + ), + migrations.AddField( + model_name='course', + name='created_at', + field=models.DateTimeField(auto_now_add=True, null=True), + ), + migrations.AddField( + model_name='course', + name='created_by', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='community_createdby', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/Course/migrations/0009_auto_20180409_0556.py b/Course/migrations/0009_auto_20180409_0556.py new file mode 100644 index 0000000..c4fde8c --- /dev/null +++ b/Course/migrations/0009_auto_20180409_0556.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-04-09 05:56 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('Course', '0008_auto_20180409_0547'), + ] + + operations = [ + migrations.RenameField( + model_name='course', + old_name='description', + new_name='body', + ), + ] diff --git a/Course/migrations/0010_topicarticle.py b/Course/migrations/0010_topicarticle.py new file mode 100644 index 0000000..1b2ba1a --- /dev/null +++ b/Course/migrations/0010_topicarticle.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-04-23 11:58 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('BasicArticle', '0013_auto_20180227_1136'), + ('Course', '0009_auto_20180409_0556'), + ] + + operations = [ + migrations.CreateModel( + name='TopicArticle', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('article', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='topics_articles', to='BasicArticle.Articles')), + ('topics', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='topics_articles', to='Course.Topics')), + ], + ), + ] diff --git a/Course/migrations/0011_course_image.py b/Course/migrations/0011_course_image.py new file mode 100644 index 0000000..b6e1cea --- /dev/null +++ b/Course/migrations/0011_course_image.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.3 on 2018-05-05 07:03 +from __future__ import unicode_literals + +import Course.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Course', '0010_topicarticle'), + ] + + operations = [ + migrations.AddField( + model_name='course', + name='image', + field=models.ImageField(null=True, upload_to=Course.models.get_file_path), + ), + ] diff --git a/Course/migrations/0012_auto_20180530_0742.py b/Course/migrations/0012_auto_20180530_0742.py new file mode 100644 index 0000000..379ac24 --- /dev/null +++ b/Course/migrations/0012_auto_20180530_0742.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2018-05-30 07:42 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('Course', '0011_course_image'), + ] + + operations = [ + migrations.AlterField( + model_name='topicarticle', + name='article', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='topics_artic', to='BasicArticle.Articles'), + ), + ] diff --git a/Course/migrations/__init__.py b/Course/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Course/models.py b/Course/models.py new file mode 100644 index 0000000..f81d5b3 --- /dev/null +++ b/Course/models.py @@ -0,0 +1,46 @@ +from django.db import models +from mptt.models import MPTTModel, TreeForeignKey +from django.contrib.auth.models import User +from BasicArticle.models import Articles +import os, uuid + +def get_file_path(instance, filename): + ext = filename.split('.')[-1] + filename = "%s.%s" % (uuid.uuid4(), ext) + return os.path.join('course', filename) + +class Course(models.Model): + title = models.CharField(max_length=100) + body = models.TextField() + image = models.ImageField(null=True,upload_to=get_file_path) + created_at = models.DateTimeField(auto_now_add=True,null=True) + created_by = models.ForeignKey(User,null=True,related_name='community_createdby') + + def __str__(self): + return self.title + +class Topics(MPTTModel): + name = models.CharField(max_length=50) + parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True) + course = models.ForeignKey(Course,null=True, related_name='course_topics') + + class MPTTMeta: + order_insertion_by = ['name'] + + def __str__(self): + return self.name + +class Links(models.Model): + link = models.CharField(max_length=300) + desc = models.TextField() + topics = models.ForeignKey(Topics,null=True, related_name='topics_links') + types = models.CharField(max_length=300 ,null=True) + +class Videos(models.Model): + video = models.CharField(max_length=300) + desc = models.TextField() + topics = models.ForeignKey(Topics,null=True, related_name='topics_videos') + +class TopicArticle(models.Model): + article = models.ForeignKey(Articles, related_name='topics_artic') + topics = models.ForeignKey(Topics,null=True, related_name='topics_articles') diff --git a/Course/tests.py b/Course/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/Course/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/Course/views.py b/Course/views.py new file mode 100644 index 0000000..30a42e0 --- /dev/null +++ b/Course/views.py @@ -0,0 +1,170 @@ +from django.shortcuts import render, redirect +from .models import Course, Topics, Links, TopicArticle +from Community.models import CommunityCourses, Community, CommunityMembership +from .forms import TopicForm +from workflow.models import States +from django.http import Http404, HttpResponse +from BasicArticle.models import Articles +from django.contrib.auth.models import User +from rest_framework.authtoken.models import Token + +def create_course(request): + title = request.POST['name'] + body = request.POST['desc'] + try: + course_image = request.FILES['course_image'] + except: + course_image = None + course = Course.objects.create(title=title, body=body, created_by=request.user, image=course_image) + return course + +def create_topics(request, pk): + course = Course.objects.get(pk=pk) + name = request.POST['name'] + parentid = request.POST['parent'] + if parentid == '': + parent = None + else: + parent = Topics.objects.get(pk=parentid) + topic = Topics.objects.create(name = name, parent=parent, course = course ) + return topic + +def course_view(request, pk): + try: + course = CommunityCourses.objects.get(course=pk) + topics = Topics.objects.filter(course=pk) + topic = topics.first() + links = Links.objects.filter(topics = topic) + token ="" + if request.user.is_authenticated: + token, created = Token.objects.get_or_create(user=request.user) + token = token.key +# count = course_watch(request, course.course) #Shall add this later + except CommunityCourses.DoesNotExist: + raise Http404 + return render(request, 'view_course.html', {'course':course, 'topics':topics, 'token':token}) + +def course_edit(request, pk): + if request.user.is_authenticated: + if request.method == 'POST': + status = request.POST['status'] + if status == 'addtopic': + create_topics(request,pk) + if status == 'update': + update_topic_name(request) + if status == 'movetopic': + isMoved = move_topic(request) + if isMoved == False: + message = 'A topic cannot be made a child of itself or any of its descendants.' + url = 'course_edit' + argument = pk + return render(request, 'error.html', {'message':message, 'url':url, 'argument':argument}) + if status == 'deletetopic': + delete_topic(request) + return redirect('course_edit',pk=pk) + else: + try: + course = CommunityCourses.objects.get(course=pk) + topics = Topics.objects.filter(course=pk) + form = TopicForm(course.course) + except CommunityCourses.DoesNotExist: + raise Http404 + return render(request, 'edit_course.html', {'course':course, 'topics':topics,'form':form}) + else: + return redirect('login') + +def update_topic_name(request): + nodeid = request.POST['nodeid'] + name = request.POST['name'+nodeid] + topic = Topics.objects.get(pk=nodeid) + topic.name = name + topic.save() + +def move_topic(request): + parent = request.POST['parent'] + if parent == '': + parent = None + else: + parent = Topics.objects.get(pk=parent) + topic = request.POST['topic'] + topic = Topics.objects.get(pk=topic) + if canMove(parent, topic): + topic.parent = parent + topic.save() + return True + else: + return False + +def canMove(parent, topic): + cpyParent = parent + if parent == None: #Root node + return True + while cpyParent.parent is not None: + if cpyParent.parent == topic: + return False + cpyParent = cpyParent.parent + return True + +def delete_topic(request): + deletenodeid = request.POST['deletenodeid'] + topic = Topics.objects.filter(pk=deletenodeid).delete() + +def manage_resource(request, pk): + if request.user.is_authenticated: + if request.method=='POST': + topicid =request.POST['topic'] + topic = Topics.objects.get(pk=topicid) + topic_type = request.POST['topic_type'] + if topic_type=='Youtube' or topic_type=='External': + topic_link=request.POST['topic_link'] + topic_description=request.POST['topic_description'] + link = Links.objects.create(link = topic_link, desc= topic_description, topics = topic, types=topic_type) + return redirect('course_view',pk=pk) + elif topic_type=='PublishedArticle': + article_id=request.POST['article_id'] + article = Articles.objects.get(pk=article_id) + topicarticle = TopicArticle.objects.create(topics=topic, article=article) + return redirect('course_view',pk=pk) + else: + try: + course = CommunityCourses.objects.get(course=pk) + topics = Topics.objects.filter(course=pk) + articles = Articles.objects.filter(state__name='publish') + except CommunityCourses.DoesNotExist: + raise Http404 + return render(request, 'manage_resource.html', {'course':course, 'topics':topics, 'articles':articles}) + else: + return redirect('course_view',pk=pk) + + +def update_course_info(request,pk): + if request.user.is_authenticated: + course = Course.objects.get(pk=pk) + community = CommunityCourses.objects.get(course=pk) + uid = request.user.id + membership = None + comm = Community.objects.get(pk=community.community.id) + errormessage = '' + try: + membership = CommunityMembership.objects.get(user=uid, community=comm.id) + if membership: + if request.method == 'POST': + title = request.POST['name'] + body = request.POST['desc'] + course.title = title + course.body = body + try: + image = request.FILES['course_image'] + course.image = image + except: + errormessage = 'image not uploaded' + course.save() + return redirect('course_view',pk=pk) + else: + return render(request, 'update_course_info.html', {'course':course, 'membership':membership, 'community':community, 'comm':comm}) + else: + return redirect('course_view',pk=pk) + except CommunityMembership.DoesNotExist: + return redirect('login') + else: + return redirect('login') diff --git a/Dockerfile b/Dockerfile new file mode 100755 index 0000000..fe35bcb --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM python:3 +ENV PYTHONUNBUFFERED 1 +RUN mkdir /code +WORKDIR /code +ADD requirements.txt /code/ +RUN pip install -r requirements.txt +RUN apt-get install libmysqlclient-dev +ADD . /code/ +RUN cp temp/patch_for_reversion_compare.py /usr/local/lib/python3.6/site-packages/reversion_compare/views.py +RUN cp temp/board_base.html /usr/local/lib/python3.6/site-packages/machina/templates/machina/board_base.html +RUN cp .env.docker .env diff --git a/Group/__init__.py b/Group/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Group/admin.py b/Group/admin.py new file mode 100644 index 0000000..6c40b35 --- /dev/null +++ b/Group/admin.py @@ -0,0 +1,34 @@ +from django.contrib import admin +from .models import Group, GroupArticles, GroupMembership +from reversion_compare.admin import CompareVersionAdmin +from reversion_compare.mixins import CompareMixin +from django.db.models import Manager +# Register your models here. + + +admin.site.register(Group) +admin.site.register(GroupMembership) + + +_old_compare = CompareMixin.compare + + +def compare(self, obj, version1, version2): + def replace_taggit_field(version_ins): + for fieldname in version_ins.field_dict: + if isinstance(version_ins.field_dict[fieldname], Manager): + version_ins.field_dict[fieldname] = [] + replace_taggit_field(version1) + replace_taggit_field(version2) + return _old_compare(self, obj, version1, version2) + + +CompareMixin.compare = compare + + + +class GroupArticlesAdmin(CompareVersionAdmin): + pass + + +admin.site.register(GroupArticles, GroupArticlesAdmin) diff --git a/Group/apps.py b/Group/apps.py new file mode 100644 index 0000000..108e81a --- /dev/null +++ b/Group/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class GroupConfig(AppConfig): + name = 'Group' diff --git a/Group/migrations/0001_initial.py b/Group/migrations/0001_initial.py new file mode 100644 index 0000000..15bcc23 --- /dev/null +++ b/Group/migrations/0001_initial.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2017-11-20 10:45 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('Community', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Group', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100)), + ('desc', models.TextField()), + ('visibility', models.BooleanField()), + ('community', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='group', to='Community.Community')), + ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='group', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/Group/migrations/0002_auto_20171122_1432.py b/Group/migrations/0002_auto_20171122_1432.py new file mode 100644 index 0000000..b5d6851 --- /dev/null +++ b/Group/migrations/0002_auto_20171122_1432.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2017-11-22 14:32 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('Group', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='group', + name='community', + ), + migrations.RemoveField( + model_name='group', + name='created_by', + ), + ] diff --git a/Group/migrations/0003_groupmembership.py b/Group/migrations/0003_groupmembership.py new file mode 100644 index 0000000..4201d9f --- /dev/null +++ b/Group/migrations/0003_groupmembership.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2017-11-23 16:12 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('auth', '0008_alter_user_username_max_length'), + ('Group', '0002_auto_20171122_1432'), + ] + + operations = [ + migrations.CreateModel( + name='GroupMembership', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='groupmembership', to='Group.Group')), + ('role', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='groupmembership', to='auth.Group')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='groupmembership', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/Group/migrations/0004_auto_20171123_1614.py b/Group/migrations/0004_auto_20171123_1614.py new file mode 100644 index 0000000..04bc419 --- /dev/null +++ b/Group/migrations/0004_auto_20171123_1614.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2017-11-23 16:14 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('Group', '0003_groupmembership'), + ] + + operations = [ + migrations.AlterField( + model_name='groupmembership', + name='role', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='groupmembership', to='auth.Group'), + ), + ] diff --git a/Group/migrations/0005_groupmembership_group_admin.py b/Group/migrations/0005_groupmembership_group_admin.py new file mode 100644 index 0000000..bfc400f --- /dev/null +++ b/Group/migrations/0005_groupmembership_group_admin.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2017-11-27 06:10 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Group', '0004_auto_20171123_1614'), + ] + + operations = [ + migrations.AddField( + model_name='groupmembership', + name='group_admin', + field=models.NullBooleanField(), + ), + ] diff --git a/Group/migrations/0006_grouparticles.py b/Group/migrations/0006_grouparticles.py new file mode 100644 index 0000000..a8147ed --- /dev/null +++ b/Group/migrations/0006_grouparticles.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2017-11-29 13:19 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('BasicArticle', '0003_remove_articles_created_by'), + ('Group', '0005_groupmembership_group_admin'), + ] + + operations = [ + migrations.CreateModel( + name='GroupArticles', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('article', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='grouparticles', to='BasicArticle.Articles')), + ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='grouparticles', to='Group.Group')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='grouparticles', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/Group/migrations/0007_auto_20171129_1330.py b/Group/migrations/0007_auto_20171129_1330.py new file mode 100644 index 0000000..807bf90 --- /dev/null +++ b/Group/migrations/0007_auto_20171129_1330.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2017-11-29 13:30 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('Group', '0006_grouparticles'), + ] + + operations = [ + migrations.AlterField( + model_name='grouparticles', + name='group', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='grouparticles', to='Group.Group'), + ), + ] diff --git a/Group/migrations/0008_remove_groupmembership_group_admin.py b/Group/migrations/0008_remove_groupmembership_group_admin.py new file mode 100644 index 0000000..fc409cc --- /dev/null +++ b/Group/migrations/0008_remove_groupmembership_group_admin.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-03 07:32 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('Group', '0007_auto_20171129_1330'), + ] + + operations = [ + migrations.RemoveField( + model_name='groupmembership', + name='group_admin', + ), + ] diff --git a/Group/migrations/0009_group_created_at.py b/Group/migrations/0009_group_created_at.py new file mode 100644 index 0000000..2a30ef9 --- /dev/null +++ b/Group/migrations/0009_group_created_at.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-11 19:07 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Group', '0008_remove_groupmembership_group_admin'), + ] + + operations = [ + migrations.AddField( + model_name='group', + name='created_at', + field=models.DateTimeField(auto_now_add=True, null=True), + ), + ] diff --git a/Group/migrations/0010_group_image.py b/Group/migrations/0010_group_image.py new file mode 100644 index 0000000..a48275d --- /dev/null +++ b/Group/migrations/0010_group_image.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-17 09:31 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Group', '0009_group_created_at'), + ] + + operations = [ + migrations.AddField( + model_name='group', + name='image', + field=models.ImageField(null=True, upload_to='group'), + ), + ] diff --git a/Group/migrations/0011_group_created_by.py b/Group/migrations/0011_group_created_by.py new file mode 100644 index 0000000..7303a87 --- /dev/null +++ b/Group/migrations/0011_group_created_by.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-29 13:10 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('Group', '0010_group_image'), + ] + + operations = [ + migrations.AddField( + model_name='group', + name='created_by', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='groupcreator', to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/Group/migrations/0012_auto_20180227_1134.py b/Group/migrations/0012_auto_20180227_1134.py new file mode 100644 index 0000000..910cbe2 --- /dev/null +++ b/Group/migrations/0012_auto_20180227_1134.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-02-27 11:34 +from __future__ import unicode_literals + +import Group.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('Group', '0011_group_created_by'), + ] + + operations = [ + migrations.AlterField( + model_name='group', + name='image', + field=models.ImageField(null=True, upload_to=Group.models.get_file_path), + ), + ] diff --git a/Group/migrations/0013_groupinvitations.py b/Group/migrations/0013_groupinvitations.py new file mode 100644 index 0000000..2ef2c36 --- /dev/null +++ b/Group/migrations/0013_groupinvitations.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-04-17 09:51 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('Group', '0012_auto_20180227_1134'), + ] + + operations = [ + migrations.CreateModel( + name='GroupInvitations', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('invitedat', models.DateTimeField(auto_now_add=True, null=True)), + ('status', models.CharField(max_length=100, null=True)), + ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='groupinvitations', to='Group.Group')), + ('invitedby', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='groupinvitationsinvitedby', to=settings.AUTH_USER_MODEL)), + ('role', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='groupinvitations', to='auth.Group')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='groupinvitations', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/Group/migrations/__init__.py b/Group/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Group/models.py b/Group/models.py new file mode 100644 index 0000000..4e8e4ec --- /dev/null +++ b/Group/models.py @@ -0,0 +1,43 @@ +from django.db import models +from django.contrib.auth.models import User +from django.contrib.auth.models import Group as Roles +from BasicArticle.models import Articles +import os, uuid + +# Create your models here. +def get_file_path(instance, filename): + ext = filename.split('.')[-1] + filename = "%s.%s" % (uuid.uuid4(), ext) + return os.path.join('group', filename) + +class Group(models.Model): + name = models.CharField(max_length=100) + desc = models.TextField() + image = models.ImageField(null=True,upload_to=get_file_path) + visibility = models.BooleanField() + created_at = models.DateTimeField(null=True, auto_now_add=True) + created_by = models.ForeignKey(User,null =True, related_name='groupcreator') + + def __str__(self): + return self.name + +class GroupMembership(models.Model): + group = models.ForeignKey(Group, related_name='groupmembership') + user = models.ForeignKey(User, related_name='groupmembership') + role = models.ForeignKey(Roles, null=True, related_name='groupmembership') + +class GroupArticles(models.Model): + article = models.ForeignKey(Articles, related_name='grouparticles') + user = models.ForeignKey(User, related_name='grouparticles') + group = models.ForeignKey(Group, null=True, related_name='grouparticles') + def get_absolute_url(self): + from django.urls import reverse + return reverse('article_view', kwargs={'pk': self.article_id}) + +class GroupInvitations(models.Model): + invitedby = models.ForeignKey(User, related_name='groupinvitationsinvitedby') + invitedat = models.DateTimeField(null=True, auto_now_add=True) + user = models.ForeignKey(User, related_name='groupinvitations') + role = models.ForeignKey(Roles, null=True, related_name='groupinvitations') + status = models.CharField(null=True, max_length=100) + group = models.ForeignKey(Group, related_name='groupinvitations') diff --git a/Group/tests.py b/Group/tests.py new file mode 100644 index 0000000..79f9e23 --- /dev/null +++ b/Group/tests.py @@ -0,0 +1,83 @@ +from django.core.urlresolvers import reverse +from django.urls import resolve +from django.test import TestCase +from .views import group_view ,group_article_create,group_subscribe +from .models import Group ,GroupMembership ,GroupArticles +class Grouptest(TestCase): + + + def test_group_subscribe_valid_post_data(self): + url = reverse('group_subscribe') + data = { + 'user':'kamleshsisodiya', + 'role':'author' + } + response = self.client.post(url, data) + self.assertFalse(GroupMembership.objects.exists()) + + + def test_create_group_valid_post_data(self): + url = reverse('community_group') + data = { + 'name':'Education Centre', + 'desc':'this is for better education' + } + response = self.client.post(url, data) + self.assertFalse(Group.objects.exists()) + + + + def test_update_group_info_valid_post_data(self): + url = reverse('update_group_info',kwargs={'pk': 1}) + data = { + 'name':'Education Centre', + 'desc':'this is for better education', + 'visibility': 'public' + } + response = self.client.post(url, data) + self.assertFalse(Group.objects.exists()) + + + def test_group_unsubscribe_valid_post_data(self): + url = reverse('group_unsubscribe') + data = { + 'gid ':'1', + 'user':'kamleshsisodiya' + } + response = self.client.post(url, data) + self.assertFalse(GroupMembership.objects.exists()) + + def test_manage_group_valid_post_data(self): + url = reverse('manage_group',kwargs={'pk': 2}) + data = { + 'user':'kamleshsisodiya', + 'role':'author' + } + response = self.client.post(url, data) + self.assertFalse(GroupMembership.objects.exists()) + + def test_group_article_create_valid_post_data(self): + url = reverse('group_article_create') + data={ + 'gid':'1', + 'status':'publishable', + 'group':'Education Centre' + } + response = self.client.post(url, data) + self.assertFalse(Group.objects.exists()) + + def group_view_success_status_code(self): + url = reverse('group_view', kwargs={'pk': 1}) + response = self.client.get(url) + self.assertEquals(response.status_code, 200) + + + def group_view_not_found_status_code(self): + url = reverse('group_view', kwargs={'pk': 99}) + response = self.client.get(url) + self.assertEquals(response.status_code, 404) + + + + +# Create your tests here. diff --git a/Group/views.py b/Group/views.py new file mode 100644 index 0000000..f57daf6 --- /dev/null +++ b/Group/views.py @@ -0,0 +1,263 @@ +from django.shortcuts import render, redirect +from django.http import Http404, HttpResponse +from .models import Group, GroupMembership, GroupArticles, GroupInvitations +from BasicArticle.models import Articles +from BasicArticle.views import create_article, view_article +from Community.models import CommunityMembership, CommunityGroups +from django.contrib.auth.models import Group as Roles +from django.contrib.auth.models import User +from rolepermissions.roles import assign_role +from UserRolesPermission.roles import GroupAdmin +from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger +from reputation.models import CommunityRep,SystemRep,DefaultValues + +def create_group(request): + if request.method == 'POST': + name = request.POST['name'] + desc = request.POST['desc'] + try: + image = request.FILES['group_image'] + except: + image = None + user = request.user + visibility = request.POST['visibility'] + group = Group.objects.create( + name = name, + desc = desc, + image = image, + visibility = visibility, + created_by = user + ) + role = Roles.objects.get(name='group_admin') + obj = GroupMembership.objects.create(user=user, group=group, role=role) + return group + +def group_view(request, pk): + invitereceived = 'FALSE' + try: + message = 0 + group = Group.objects.get(pk=pk) + uid = request.user.id + membership = GroupMembership.objects.get(user=uid, group=group.pk) + role = Roles.objects.get(name='group_admin') + if membership.role == role: + count = GroupMembership.objects.filter(group=group,role=role).count() + if count < 2: + message = 1 + except GroupMembership.DoesNotExist: + membership = 'FALSE' + try: + invitereceived = GroupInvitations.objects.filter(user=uid, group=group, status='Invited') + except GroupInvitations.DoesNotExist: + invitereceived = 'FALSE' + try: + community = CommunityGroups.objects.get(group=pk) + communitymembership = CommunityMembership.objects.get(user =uid, community = community.community.pk) + except CommunityMembership.DoesNotExist: + communitymembership = 'FALSE' + subscribers = GroupMembership.objects.filter(group = pk).count() + pubarticles = GroupArticles.objects.raw('select ba.id , ba.title, ba.body, workflow_states.name as state from workflow_states, BasicArticle_articles as ba , Group_grouparticles as ga where ba.state_id=workflow_states.id and ga.article_id=ba.id and ga.group_id=%s and ba.state_id in (select id from workflow_states as w where w.name = "publish");', [group.pk]) + pubarticlescount = len(list(pubarticles)) + users = GroupArticles.objects.raw('select u.id,username from auth_user u join Group_grouparticles g on u.id = g.user_id where g.group_id=%s group by u.id order by count(*) desc limit 2;', [pk]) + contributors = GroupMembership.objects.filter(group = pk) + othergroups = CommunityGroups.objects.filter(community = community.community.pk) + return render(request, 'groupview.html', {'group': group, 'communitymembership':communitymembership,'membership':membership, 'subscribers':subscribers, 'contributors':contributors, 'users':users, 'community':community,'message':message,'pubarticles':pubarticles,'pubarticlescount':pubarticlescount, 'othergroups':othergroups, 'invitereceived':invitereceived}) + +def group_subscribe(request): + if request.user.is_authenticated: + if request.method == 'POST': + gid = request.POST['gid'] + group = Group.objects.get(pk=gid) + user = request.user + role = Roles.objects.get(name='author') + if GroupMembership.objects.filter(user=user, group=group).exists(): + return redirect('group_view', pk=gid) + obj = GroupMembership.objects.create(user=user, group=group, role=role) + return redirect('group_view', pk=gid) + return render(request, 'groupview.html') + else: + return redirect('login') + +def group_unsubscribe(request): + if request.user.is_authenticated: + if request.method == 'POST': + gid = request.POST['gid'] + group = Group.objects.get(pk=gid) + user = request.user + if GroupMembership.objects.filter(user=user, group=group).exists(): + obj = GroupMembership.objects.filter(user=user, group=group).delete() + return redirect('group_view', pk=gid) + return render(request, 'groupview.html') + else: + return redirect('login') + +def group_article_create(request): + if request.user.is_authenticated: + if request.method == 'POST': + status = request.POST['status'] + gid = request.POST['gid'] + group = Group.objects.get(pk=gid) + community = CommunityGroups.objects.get(group=group) + community = community.community + commrep = CommunityRep.objects.get(community = community, user=request.user) + crep =commrep.rep + defaultval = DefaultValues.objects.get(pk=1) + if (crep>defaultval.min_crep_for_art): + if status=='1': + article = create_article(request) + obj = GroupArticles.objects.create(article=article, user=request.user, group=group) + return redirect('article_view', article.pk) + else: + return render(request, 'new_article.html', {'group':group, 'status':1}) + return render(request,'lowrep.html') + else: + return redirect('home') + else: + return redirect('login') + +def manage_group(request,pk): + if request.user.is_authenticated: + group = Group.objects.get(pk=pk) + community = CommunityGroups.objects.get(group=pk) + uid = request.user.id + errormessage = '' + membership = None + try: + membership = GroupMembership.objects.get(user=uid, group=group.pk) + if membership.role.name == 'group_admin': + count = GroupMembership.objects.filter( group=group.pk, role=membership.role).count() + members = GroupMembership.objects.filter(group=group.pk) + if request.method == 'POST': + try: + username = request.POST['username'] + rolename = request.POST['role'] + user = User.objects.get(username = username) + role = Roles.objects.get(name=rolename) + status = request.POST['status'] + + if status == 'add': + try: + is_community_member = CommunityMembership.objects.get(user=user, community=community.community.pk) + try: + is_member = GroupMembership.objects.get(user=user, group=group.pk) + errormessage = 'user exists in group' + except GroupMembership.DoesNotExist: + errormessage = inviteUser(request, group, user, role) + except CommunityMembership.DoesNotExist: + errormessage = 'user is not a part of the community' + if status == 'update': + if count > 1 or count == 1 and username != request.user.username: + try: + is_member = GroupMembership.objects.get(user=user, group=group.pk) + is_member.role = role + is_member.save() + except GroupMembership.DoesNotExist: + errormessage = 'no such user in the group' + else: + errormessage = 'cannot update this user' + if status == 'remove': + if count > 1 or count == 1 and username != request.user.username: + try: + obj = GroupMembership.objects.filter(user=user, group=group).delete() + except GroupMembership.DoesNotExist: + errormessage = 'no such user in the group' + else: + errormessage = 'cannot remove this user' + return render(request, 'managegroup.html', {'community':community, 'group':group, 'members':members, 'membership':membership, 'errormessage':errormessage}) + #return redirect('manage_group',pk=pk) + except User.DoesNotExist: + errormessage = "no such user in the system" + + return render(request, 'managegroup.html', {'community':community, 'group':group, 'members':members, 'membership':membership, 'errormessage':errormessage}) + else: + return redirect('group_view',pk=pk) + except GroupMembership.DoesNotExist: + return redirect('group_view',pk=pk) + else: + return redirect('login') + +def inviteUser(request, group, user, role): + if(isInvited(group, user)): + errormessage = user.username + ' is already invited to join this group' + else: + grpinvite = GroupInvitations.objects.create(invitedby=request.user, user=user, role=role, status='Invited', group=group) + errormessage = 'invitation sent sucessfully to ' + user.username + return errormessage + +def isInvited(group, user): + try: + is_invited = GroupInvitations.objects.get(user=user, group=group.pk, status='Invited') + return True + except GroupInvitations.DoesNotExist: + return False + +def update_group_info(request,pk): + if request.user.is_authenticated: + group = Group.objects.get(pk=pk) + errormessage = '' + membership = None + uid = request.user.id + try: + membership = GroupMembership.objects.get(user=uid, group=group.pk) + if membership.role.name == 'group_admin': + if request.method == 'POST': + name = request.POST['name'] + desc = request.POST['desc'] + visibility = request.POST['visibility'] + group.name = name + group.desc = desc + group.visibility = visibility + try: + image = request.FILES['group_image'] + group.image = image + except: + errormessage = 'image not uploaded' + group.save() + return redirect('group_view',pk=pk) + else: + return render(request, 'updategroupinfo.html', {'group':group,'membership':membership}) + else: + return redirect('group_view',pk=pk) + except GroupMembership.DoesNotExist: + return redirect('group_view',pk=pk) + else: + return redirect('login') + +def group_content(request, pk): + grparticles = '' + try: + group = Group.objects.get(pk=pk) + uid = request.user.id + membership = GroupMembership.objects.get(user=uid, group=group.pk) + if membership: + garticles = GroupArticles.objects.raw('select ba.id, ba.title, ba.body, ba.image, ba.views, ba.created_at, username, workflow_states.name as state from workflow_states, auth_user au, BasicArticle_articles as ba , Group_grouparticles as ga where au.id=ba.created_by_id and ba.state_id=workflow_states.id and ga.article_id =ba.id and ga.group_id=%s and ba.state_id in (select id from workflow_states as w where w.name = "visible" or w.name="private");', [group.pk]) + + page = request.GET.get('page', 1) + paginator = Paginator(list(garticles), 5) + try: + grparticles = paginator.page(page) + except PageNotAnInteger: + grparticles = paginator.page(1) + except EmptyPage: + grparticles = paginator.page(paginator.num_pages) + + except GroupMembership.DoesNotExist: + return redirect('group_view', group.pk) + return render(request, 'groupcontent.html', {'group': group, 'membership':membership, 'grparticles':grparticles}) + +def handle_group_invitations(request): + if request.method == 'POST': + pk = int(request.POST['pk']) + grpinivtation=GroupInvitations.objects.get(pk=pk) + status = request.POST['status'] + + if status=='Accept' and grpinivtation.status!='Accepted': + grpmmbership = GroupMembership.objects.create(user=grpinivtation.user, group=grpinivtation.group, role=grpinivtation.role) + grpinivtation.status = 'Accepted' + grpinivtation.save() + + if status=='Reject' and grpinivtation.status!='Rejected': + grpinivtation.status = 'Rejected' + grpinivtation.save() + + return redirect('user_dashboard') diff --git a/README.md b/README.md index 2264c82..d868adf 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,148 @@ +<<<<<<< HEAD +<<<<<<< HEAD +[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html) +[![CodeFactor](https://www.codefactor.io/repository/github/fresearchgroup/collaboration-system/badge)](https://www.codefactor.io/repository/github/fresearchgroup/collaboration-system) +[![Build Status](https://travis-ci.org/fresearchgroup/Collaboration-System.svg?branch=master)](https://travis-ci.org/fresearchgroup/Collaboration-System) + +COLLABORATION SYSTEM + + Requiremnets - + + Django - 1.11.7 LTS + python - 3.6 + Django Rest API + Mysql + + Django pakages installed - + + Django Rest Framework + Widget Tweaks + Django Reversion + Reversion Compare + MPTT + Haystack + Django Machina + Django-cors-headers + Django-role-permission + Django_comments_xtd + Django_comments + +For development installation - + + 1. Install virtualenv + + ``` sudo pip3 install virtualenv ``` + + 2. Clone the project from github + + ``` git clone https://github.com/fresearchgroup/Collaboration-System.git ``` + + 3. Create a virtual env --- + + ``` virtualenv collab -p python3 ``` + + 4. Activate the virtual environment -- + + ``` source collab/bin/activate ``` + + 5. Install the requirements.txt -- + + ``` pip3 install -r Collaboration-System/requirements.txt ``` + + 6. Install mysql server -- + + ```sudo apt-get update``` + + + ```$ sudo apt-get install mysql-server``` + + + ```sudo apt-get install libmysqlclient-dev``` + + ```$ mysql -u root -p``` + + Enter password=root + + ```mysql> create database collaboration; + mysql> use collaboration; + mysql> source collab.sql + ``` + + 7. Create a .env inside CollaborationSystem and paste the following - + + sudo nano .env + + ``` + SECRET_KEY=myf0)*es+lr_3l0i5$4^)^fb&4rcf(m28zven+oxkd6!(6gr*6 + DEBUG=True + DB_NAME=collaboration + DB_USER=root + DB_PASSWORD=root + DB_HOST=localhost + DB_PORT=3306 + ALLOWED_HOSTS= localhost + GOOGLE_RECAPTCHA_SECRET_KEY=6Lfsk0MUAAAAAFdhF-dAY-iTEpWaaCFWAc1tkqjK + EMAIL_HOST=localhost + EMAIL_HOST_USER= + EMAIL_HOST_PASSWORD= + EMAIL_PORT=25 + EMAIL_USE_TLS=False + DEFAULT_FROM_EMAIL=collaboratingcommunity@cse.iitb.ac.in + SOCIAL_AUTH_GOOGLE_OAUTH2_KEY=735919351499-ajre9us5dccvms36ilhrqb88ajv4ahl0.apps.googleusercontent.com + SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET=I1v-sHbsogVc0jAw9M9Xy1eM + + ``` + + 8. Do all the migrations -- + + ``` python3 manage.py migrate ``` + + 9. Runserver -- + + ``` python3 manage.py runserver ``` + + +For manual installtion -- https://fresearchgroup.github.io/docs-collaboration-system/ + +For automated installation using nginx and gunicorn- https://github.com/abhisgithub/django-nginx-installation-script + + +Steps for Docker -- + + -- Install Docker and Docker-Compose from - + + Docker - https://docs.docker.com/install/linux/docker-ce/ubuntu/#set-up-the-repository + + Docker Compose -- https://docs.docker.com/compose/install/ + +1. Clone the repository -- + + git clone https://github.com/fresearchgroup/Collaboration-System.git + +2. The run the following commands inside the repository -- + +``` + + docker-compose build + + docker-compose up db + + docker exec -i mysql -u -p django < collab.sql + + docker-compose run web python manage.py migrate + + docker-compose run web python manage.py createsuperuser + + docker-compose run web python manage.py loaddata workflow roles faq + + docker-compose up + +``` +======= # Community-Reputation Reputation of a user in a community or group +>>>>>>> 5528324bed5a6659735c4ebb6cf784b3794d3f85 +======= +# Community-Reputation +Reputation of a user in a community or group +>>>>>>> 5528324bed5a6659735c4ebb6cf784b3794d3f85 diff --git a/UserRolesPermission/__init__.py b/UserRolesPermission/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/UserRolesPermission/admin.py b/UserRolesPermission/admin.py new file mode 100644 index 0000000..cfca184 --- /dev/null +++ b/UserRolesPermission/admin.py @@ -0,0 +1,6 @@ +from django.contrib import admin +from .models import ProfileImage, favourite +# Register your models here. + +admin.site.register(ProfileImage) +admin.site.register(favourite) \ No newline at end of file diff --git a/UserRolesPermission/apps.py b/UserRolesPermission/apps.py new file mode 100644 index 0000000..2c7622f --- /dev/null +++ b/UserRolesPermission/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class UserrolespermissionConfig(AppConfig): + name = 'UserRolesPermission' diff --git a/UserRolesPermission/fixtures/roles.json b/UserRolesPermission/fixtures/roles.json new file mode 100644 index 0000000..31ada2f --- /dev/null +++ b/UserRolesPermission/fixtures/roles.json @@ -0,0 +1,31 @@ +[ + +{"model": "auth.group", + "pk": 1, + "fields": { + "name": "author", "permissions": [] + } + }, + + {"model": "auth.group", + "pk": 2, + "fields": { + "name": "publisher", "permissions": [] + } + }, + + {"model": "auth.group", + "pk": 3, + "fields": { + "name": "community_admin", "permissions": [] + } + }, + + {"model": "auth.group", + "pk": 4, + "fields": { + "name": "group_admin", "permissions": [] + } + } + +] \ No newline at end of file diff --git a/UserRolesPermission/forms.py b/UserRolesPermission/forms.py new file mode 100644 index 0000000..b3c59a3 --- /dev/null +++ b/UserRolesPermission/forms.py @@ -0,0 +1,16 @@ +from django import forms +from django.contrib.auth.forms import UserCreationForm +from django.contrib.auth.models import User + +class SignUpForm(UserCreationForm): + email = forms.CharField(max_length=254, required=True, widget=forms.EmailInput()) + class Meta: + model = User + fields = ('username', 'email', 'password1', 'password2') + + + def clean_email(self): + data = self.cleaned_data['email'] + if User.objects.filter(email=data).exists(): + raise forms.ValidationError("This email already used") + return data diff --git a/UserRolesPermission/helpers.py b/UserRolesPermission/helpers.py new file mode 100644 index 0000000..81ae5b7 --- /dev/null +++ b/UserRolesPermission/helpers.py @@ -0,0 +1,8 @@ +from django.utils.deconstruct import deconstructible +import os, uuid + + +def get_file_path(instance, filename): + ext = filename.split('.')[-1] + filename = "%s.%s" % (uuid.uuid4(), ext) + return os.path.join('profile', filename) \ No newline at end of file diff --git a/UserRolesPermission/migrations/0001_initial.py b/UserRolesPermission/migrations/0001_initial.py new file mode 100644 index 0000000..90ecd93 --- /dev/null +++ b/UserRolesPermission/migrations/0001_initial.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-02 14:21 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='UserProfile', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('mobile', models.CharField(blank=True, default='', max_length=20)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='user', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/UserRolesPermission/migrations/0002_auto_20180102_1430.py b/UserRolesPermission/migrations/0002_auto_20180102_1430.py new file mode 100644 index 0000000..03d3aea --- /dev/null +++ b/UserRolesPermission/migrations/0002_auto_20180102_1430.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-02 14:30 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('UserRolesPermission', '0001_initial'), + ] + + operations = [ + migrations.RemoveField( + model_name='userprofile', + name='user', + ), + migrations.DeleteModel( + name='UserProfile', + ), + ] diff --git a/UserRolesPermission/migrations/0003_profile.py b/UserRolesPermission/migrations/0003_profile.py new file mode 100644 index 0000000..6c0ec9d --- /dev/null +++ b/UserRolesPermission/migrations/0003_profile.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- + +# Generated by Django 1.11.7 on 2018-01-16 09:07 + +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('UserRolesPermission', '0002_auto_20180102_1430'), + ] + + operations = [ + migrations.CreateModel( + name='Profile', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('bio', models.TextField(blank=True, max_length=500, null=True)), + ('birth_date', models.DateField(blank=True, null=True)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/UserRolesPermission/migrations/0004_auto_20180116_0947.py b/UserRolesPermission/migrations/0004_auto_20180116_0947.py new file mode 100644 index 0000000..075b27d --- /dev/null +++ b/UserRolesPermission/migrations/0004_auto_20180116_0947.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-01-16 09:47 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('UserRolesPermission', '0003_profile'), + ] + + operations = [ + migrations.CreateModel( + name='ProfileImage', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('photo', models.ImageField(upload_to='profile')), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.RemoveField( + model_name='profile', + name='user', + ), + migrations.DeleteModel( + name='Profile', + ), + ] diff --git a/UserRolesPermission/migrations/0005_auto_20180227_1043.py b/UserRolesPermission/migrations/0005_auto_20180227_1043.py new file mode 100644 index 0000000..ad8c62a --- /dev/null +++ b/UserRolesPermission/migrations/0005_auto_20180227_1043.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-02-27 10:43 +from __future__ import unicode_literals + + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('UserRolesPermission', '0004_auto_20180116_0947'), + ] + + operations = [ + migrations.AlterField( + model_name='profileimage', + name='photo', + field=models.ImageField(upload_to='profile'), + ), + ] diff --git a/UserRolesPermission/migrations/0005_auto_20180227_1128.py b/UserRolesPermission/migrations/0005_auto_20180227_1128.py new file mode 100644 index 0000000..e1d3da8 --- /dev/null +++ b/UserRolesPermission/migrations/0005_auto_20180227_1128.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-02-27 11:28 +from __future__ import unicode_literals + +import UserRolesPermission.helpers +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('UserRolesPermission', '0004_auto_20180116_0947'), + ] + + operations = [ + migrations.AlterField( + model_name='profileimage', + name='photo', + field=models.ImageField(upload_to=UserRolesPermission.helpers.get_file_path), + ), + ] diff --git a/UserRolesPermission/migrations/0006_favourite.py b/UserRolesPermission/migrations/0006_favourite.py new file mode 100644 index 0000000..c40272b --- /dev/null +++ b/UserRolesPermission/migrations/0006_favourite.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-02-28 07:42 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('UserRolesPermission', '0005_auto_20180227_1128'), + ] + + operations = [ + migrations.CreateModel( + name='favourite', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('resource', models.PositiveIntegerField()), + ('category', models.CharField(max_length=20)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='userfav', to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/UserRolesPermission/migrations/0007_merge_20180321_1208.py b/UserRolesPermission/migrations/0007_merge_20180321_1208.py new file mode 100644 index 0000000..6641a9e --- /dev/null +++ b/UserRolesPermission/migrations/0007_merge_20180321_1208.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-03-21 12:08 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('UserRolesPermission', '0005_auto_20180227_1043'), + ('UserRolesPermission', '0006_favourite'), + ] + + operations = [ + ] diff --git a/UserRolesPermission/migrations/0008_auto_20180321_1224.py b/UserRolesPermission/migrations/0008_auto_20180321_1224.py new file mode 100644 index 0000000..5d4fd27 --- /dev/null +++ b/UserRolesPermission/migrations/0008_auto_20180321_1224.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2018-03-21 12:24 +from __future__ import unicode_literals + +import UserRolesPermission.helpers +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('UserRolesPermission', '0007_merge_20180321_1208'), + ] + + operations = [ + migrations.AlterField( + model_name='profileimage', + name='photo', + field=models.ImageField(upload_to=UserRolesPermission.helpers.get_file_path), + ), + ] diff --git a/UserRolesPermission/migrations/__init__.py b/UserRolesPermission/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/UserRolesPermission/models.py b/UserRolesPermission/models.py new file mode 100644 index 0000000..b5b509e --- /dev/null +++ b/UserRolesPermission/models.py @@ -0,0 +1,13 @@ +from django.db import models +from django.contrib.auth.models import User +from .helpers import get_file_path + + +class ProfileImage(models.Model): + user = models.OneToOneField(User, on_delete=models.CASCADE) + photo = models.ImageField(upload_to=get_file_path) + +class favourite(models.Model): + user = models.ForeignKey(User, related_name='userfav') + resource = models.PositiveIntegerField() + category = models.CharField(max_length = 20) \ No newline at end of file diff --git a/UserRolesPermission/roles.py b/UserRolesPermission/roles.py new file mode 100644 index 0000000..89a6bf5 --- /dev/null +++ b/UserRolesPermission/roles.py @@ -0,0 +1,33 @@ +from rolepermissions.roles import AbstractUserRole + +class Author(AbstractUserRole): + available_permissions = { + 'create_article': True, + 'edit_article':True, + } + +class Publisher(AbstractUserRole): + available_permissions = { + 'create_article': True, + 'edit_article':True, + 'publish_article':True, + 'delete_article':True, + } + +class CommunityAdmin(AbstractUserRole): + available_permissions = { + 'create_article': True, + 'edit_article':True, + 'publish_article':True, + 'delete_article':True, + 'add_community_roles':True, + 'delete_community_roles':True, + } + +class GroupAdmin(AbstractUserRole): + available_permissions = { + 'create_article': True, + 'edit_article':True, + 'publish_article':True, + 'delete_article':True, + } \ No newline at end of file diff --git a/UserRolesPermission/serializers.py b/UserRolesPermission/serializers.py new file mode 100644 index 0000000..bcf058f --- /dev/null +++ b/UserRolesPermission/serializers.py @@ -0,0 +1,23 @@ +from rest_framework import serializers +from rest_framework.validators import UniqueValidator +from django.contrib.auth.models import User + +class UserSerializer(serializers.ModelSerializer): + email = serializers.EmailField( + required=True, + validators=[UniqueValidator(queryset=User.objects.all())] + ) + username = serializers.CharField( + max_length=32, + validators=[UniqueValidator(queryset=User.objects.all())] + ) + password = serializers.CharField(min_length=8, write_only=True) + + def create(self, validated_data): + user = User.objects.create_user(validated_data['username'], validated_data['email'], + validated_data['password']) + return user + + class Meta: + model = User + fields = ('id', 'username', 'email', 'password') \ No newline at end of file diff --git a/UserRolesPermission/tests.py b/UserRolesPermission/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/UserRolesPermission/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/UserRolesPermission/validate.py b/UserRolesPermission/validate.py new file mode 100644 index 0000000..cb0194e --- /dev/null +++ b/UserRolesPermission/validate.py @@ -0,0 +1,29 @@ +from .models import * +from django.shortcuts import render_to_response, render, redirect +from django.core.exceptions import * +from django.contrib.auth.models import User + +##################Validate Email is existing or not in database####################### +def validateemailid(email): + try: + print(email) + email_obj = User.objects.get(email=email) + if email_obj: + + return email_obj.id + print("email:",email.obj.id) + else: + return -1 + except: + return -1 + + + + + +def validateEmail(email): + if len(email) > 4: + if re.match("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$", email) != None: + return 1 + return 0 + diff --git a/UserRolesPermission/views.py b/UserRolesPermission/views.py new file mode 100644 index 0000000..87a8527 --- /dev/null +++ b/UserRolesPermission/views.py @@ -0,0 +1,230 @@ +from django.contrib.auth import login as auth_login +from django.shortcuts import render, redirect +from Community.models import CommunityMembership, CommunityArticles, CommunityGroups, RequestCommunityCreation +from BasicArticle.models import Articles +from .forms import SignUpForm +from .roles import Author +from rolepermissions.roles import assign_role +from Group.models import GroupMembership, GroupArticles, Group, GroupInvitations +from django.contrib.auth.models import User +from workflow.models import States +from Community.models import Community +from .models import ProfileImage, favourite +from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger +from operator import add +from django.conf import settings +import urllib +import json +from django.http import JsonResponse +from django.views.decorators.csrf import csrf_exempt +from django.http import HttpResponse +from django.core import serializers +from datetime import date +from reputation.models import SystemRep + +def signup(request): + """ + this is a sign up function for new user in the system. The function takes + user input, validates it, register the user , and gives an Author role to the user. + """ + if request.method == 'POST': + form = SignUpForm(request.POST) + if form.is_valid(): + + ''' Begin reCAPTCHA validation ''' + recaptcha_response = request.POST.get('g-recaptcha-response') + url = 'https://www.google.com/recaptcha/api/siteverify' + values = { + 'secret': settings.GOOGLE_RECAPTCHA_SECRET_KEY, + 'response': recaptcha_response + } + data = urllib.parse.urlencode(values).encode() + req = urllib.request.Request(url, data=data) + response = urllib.request.urlopen(req) + result = json.loads(response.read().decode()) + ''' End reCAPTCHA validation ''' + + if result['success']: + user = form.save() + assign_role(user, Author) + auth_login(request, user, backend='django.contrib.auth.backends.ModelBackend') + sysrep = Systemrep() + sysrep.user = user + sysrep.sysrep = 0 + sysrep.save() + return redirect('user_dashboard') + else: + error = 'Captcha not verified' + return render(request, 'signup.html', {'form': form, 'error':error}) + else: + form = SignUpForm() + return render(request, 'signup.html', {'form': form}) + +def user_dashboard(request): + currentyear=date.today() + number =[] + for n in range (2017,currentyear.year+1): + number.append(n) + if request.method == 'POST': # If the form has been submitted... + yearby=request.POST['selectbyyear'] + else : + today=date.today() + yearby=today.year + + if request.user.is_authenticated: + + try: + user_profile = ProfileImage.objects.get(user=request.user) + except ProfileImage.DoesNotExist: + user_profile = "No Image available" + + mycommunities = CommunityMembership.objects.filter(user=request.user).order_by('community__name') + mygroups = GroupMembership.objects.filter(user=request.user).order_by('group__name') + + commarticles = CommunityArticles.objects.filter(user=request.user) + grparticles = GroupArticles.objects.filter(user=request.user) + + pendingcommunities=RequestCommunityCreation.objects.filter(status='Request', requestedby=request.user) + grpinvitations = GroupInvitations.objects.filter(status='Invited', user=request.user) + + ap = User.objects.raw( + 'Select 1 id, Year, Sum(JAN) JAN,sum(FEB) FEB,sum(MAR) MAR,sum(APR) APR,sum(MAY) MAY,sum(JUN) JUN,sum(JUL) JUL,sum(AUG) AUG,sum(SEP) SEP,sum(OCT) OCT,sum(NOV) NOV,sum(DECEM) DECE, Concat(Sum(JAN) , "," , sum(FEB) , "," ,sum(MAR),",",sum(APR),",",sum(MAY),",",sum(JUN),",",sum(JUL),",",sum(AUG),",", sum(SEP) ,",",sum(OCT),",",sum(NOV),",",sum(DECEM)) Data,state_id State from (Select Year, Case when Month=1 Then 1 else 0 END JAN, Case when Month=2 Then 1 else 0 END FEB, Case when Month=3 Then 1 else 0 END MAR, Case when Month=4 Then 1 else 0 END APR, Case when Month=5 Then 1 else 0 END MAY, Case when Month=6 Then 1 else 0 END JUN, Case when Month=7 Then 1 else 0 END JUL, Case when Month=8 Then 1 else 0 END AUG, Case when Month=9 Then 1 else 0 END SEP, Case when Month=10 Then 1 else 0 END OCT, Case when Month=11 Then 1 else 0 END NOV, Case when Month=12 Then 1 else 0 END DECEM, state_id from (select Month(created_at) Month ,Year(created_at) Year ,state_id from BasicArticle_articles where id in (select article_id from Community_communityarticles where user_id=%s) or id in (select article_id from Group_grouparticles where user_id=%s)) T ) P group by Year,state_id having Year=%s;', + [request.user.id,request.user.id, yearby] ) + visiblelist = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + publishablelist = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + articlespublished = '' + for a in ap: + if a.State == 3: #publsihed + articlespublished=a.Data + if a.State == 2: # visible + visiblelist = str(bytes.decode(a.Data)).split(',') + visiblelist = list(map(int, visiblelist)) + if a.State == 5: #publishable + publishablelist = str(bytes.decode(a.Data)).split(',') + publishablelist = list(map(int, publishablelist)) + + articlescontributed = map(add, visiblelist, publishablelist) + articlescontributed = list(map(str, articlescontributed)) + total = '' + for a in articlescontributed: + total = total + ',' + a + total=total[1:] + return render(request, 'userdashboard.html', {'mycommunities':mycommunities, 'mygroups':mygroups, 'commarticles':commarticles, 'grparticles':grparticles, 'pendingcommunities':pendingcommunities,'articlescontributed':list(articlescontributed),'articlespublished':articlespublished, 'total':total, 'user_profile':user_profile, 'grpinvitations':grpinvitations}) + else: + return redirect('login') + +def home(request): + state = States.objects.get(name='publish') + articles=Articles.objects.filter(state=state).order_by('-views')[:3] + articlesdate=Articles.objects.filter(state=state).order_by('-created_at')[:3] + community=Community.objects.all().order_by('?')[:4] + userphoto=ProfileImage.objects.all().order_by('?')[:15] + countcommunity = Community.objects.all().count() + countgroup = Group.objects.all().count() + countarticles = Articles.objects.filter(state=state).count() + countusers = User.objects.all().count() + return render(request, 'home.html', {'articles':articles, 'articlesdate':articlesdate, 'community':community, 'userphoto':userphoto, 'countcommunity':countcommunity, 'countgroup':countgroup, 'countarticles':countarticles, 'countusers':countusers}) + +def update_profile(request): + if request.user.is_authenticated: + if request.method == 'POST': + first_name = request.POST['first_name'] + last_name = request.POST['last_name'] + email = request.POST['email'] + uid = request.user.id + usr = User.objects.get(pk = request.user.id) + usr.email=email + usr.first_name=first_name + usr.last_name=last_name + usr.save() + return redirect('user_dashboard') + else: + try: + user_profile = ProfileImage.objects.get(user=request.user) + except ProfileImage.DoesNotExist: + user_profile = "No Image available" + return render(request, 'update_profile.html', {'user_profile':user_profile}) + else: + return redirect('login') + +def view_profile(request): + if request.user.is_authenticated: + try: + user_profile = ProfileImage.objects.get(user=request.user) + sysrep = SystemRep.objects.get(user_id=request.user.id) + except ProfileImage.DoesNotExist: + user_profile = "No Image available" + sysrep = SystemRep.objects.get(user_id=request.user.id) + return render(request, 'myprofile.html', {'user_profile':user_profile,'sysrep':sysrep}) + else: + return redirect('login') + +def display_user_profile(request, username): + if request.user.is_authenticated: + userinfo = User.objects.get(username=username) + communities = CommunityMembership.objects.filter(user=userinfo) + groups = GroupMembership.objects.filter(user=userinfo) + commarticles = CommunityArticles.objects.filter(user=userinfo) + grparticles = GroupArticles.objects.filter(user=userinfo) + try: + user_profile = ProfileImage.objects.get(user=userinfo) + except ProfileImage.DoesNotExist: + user_profile = "No Image available" + return render(request, 'userprofile.html', {'userinfo':userinfo, 'communities':communities, 'groups':groups, 'commarticles':commarticles, 'grparticles':grparticles, 'user_profile':user_profile}) + else: + return redirect('login') + + +def upload_image(request): + + if request.method == 'POST': + photo = request.FILES['profile_image'] + try: + user_profile = ProfileImage.objects.get(user=request.user) + user_profile.photo = photo + user_profile.save() + + except ProfileImage.DoesNotExist: + obj = ProfileImage.objects.create(user = request.user, photo=photo) + + return redirect('view_profile') + return redirect('view_profile') + + +def username_exist(request): + username = request.GET.get('username', None) + data = { + 'is_taken': User.objects.filter(username__iexact=username).exists() + } + if data['is_taken']: + data['error_message'] = 'A user with this username already exists.' + return JsonResponse(data) + +@csrf_exempt +def favourites(request): + if request.method == 'POST': + username = request.POST.get('username') + user= User.objects.get(username=username) + resource_id = request.POST.get('rid') + category = request.POST.get('category') + status = request.POST.get('status') + if status == 'add': + if not favourite.objects.filter(user = user, resource = resource_id, category= category).exists(): + obj = favourite.objects.create(user = user, resource = resource_id, category= category) + return HttpResponse('added') + if status == 'remove': + if favourite.objects.filter(user = user, resource = resource_id, category= category).exists(): + obj = favourite.objects.filter(user = user, resource = resource_id, category= category).delete() + return HttpResponse('removed') + return HttpResponse('ok') + +@csrf_exempt +def group_invitations(request): + userid = request.GET.get('userid', None) + try: + user = User.objects.get(id=userid) + grpinvitations = GroupInvitations.objects.filter(status='Invited', user=user).values('id', 'status', 'group__name', 'group__id', 'group__image') + grpinvitations_list = list(grpinvitations) + return JsonResponse(grpinvitations_list, safe=False) + except User.DoesNotExist: + return JsonResponse('', safe=False) diff --git a/UserRolesPermission/viewsets.py b/UserRolesPermission/viewsets.py new file mode 100644 index 0000000..27ef119 --- /dev/null +++ b/UserRolesPermission/viewsets.py @@ -0,0 +1,25 @@ +from rest_framework.views import APIView +from rest_framework.response import Response +from rest_framework import status +from UserRolesPermission.serializers import UserSerializer +from django.contrib.auth.models import User +from rest_framework.authtoken.models import Token + + + +class RegistrationViewsets(APIView): + """ + Creates the user. + """ + + def post(self, request, format='json'): + serializer = UserSerializer(data=request.data) + if serializer.is_valid(): + user = serializer.save() + if user: + token = Token.objects.create(user=user) + json = serializer.data + json['token'] = token.key + return Response(json, status=status.HTTP_201_CREATED) + + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) \ No newline at end of file diff --git a/ansible/ansible.sh b/ansible/ansible.sh new file mode 100755 index 0000000..e62a524 --- /dev/null +++ b/ansible/ansible.sh @@ -0,0 +1,2 @@ +#!/bin/bash +ansible-playbook -i ./hosts $1 --sudo diff --git a/ansible/host_vars/abhijeet-desktop b/ansible/host_vars/abhijeet-desktop new file mode 100644 index 0000000..2348f45 --- /dev/null +++ b/ansible/host_vars/abhijeet-desktop @@ -0,0 +1,12 @@ +--- +repo_url: https://github.com/fresearchgroup +repo: Collaboration-System +home_dir: /home/ubuntu +upass: 123456 +repo_dir: "{{ home_dir }}/{{ repo }}" +django_dir: "{{ repo_dir }}/" +static_dir: "{{ home_dir }}/static" +django_project: Collaboration-System +dbname: django +dbuser: root +dbpassword: root diff --git a/ansible/host_vars/edx b/ansible/host_vars/edx new file mode 100644 index 0000000..5e83e4f --- /dev/null +++ b/ansible/host_vars/edx @@ -0,0 +1,13 @@ +--- +repo_url: https://github.com/fresearchgroup +repo: Collaboration-System +home_dir: /home/edx +upass: 123456 +repo_dir: "{{ home_dir }}/{{ repo }}" +config_files_dir: /home/nithin/config +django_dir: "{{ repo_dir }}/" +static_dir: "{{ home_dir }}/static" +django_project: Collaboration-System +dbname: django +dbuser: root +dbpassword: root diff --git a/ansible/host_vars/glenn b/ansible/host_vars/glenn new file mode 100644 index 0000000..4b4089b --- /dev/null +++ b/ansible/host_vars/glenn @@ -0,0 +1,13 @@ +--- +repo_url: https://github.com/fresearchgroup +repo: Collaboration-System +home_dir: /home/edx +upass: edx +repo_dir: "{{ home_dir }}/{{ repo }}" +config_files_dir: /home/nithin/config +django_dir: "{{ repo_dir }}/" +static_dir: "{{ home_dir }}/static" +django_project: Collaboration-System +dbname: django +dbuser: root +dbpassword: root diff --git a/ansible/hosts b/ansible/hosts new file mode 100644 index 0000000..bf6af2a --- /dev/null +++ b/ansible/hosts @@ -0,0 +1,2 @@ +glenn +edx diff --git a/ansible/single.yaml b/ansible/single.yaml new file mode 100644 index 0000000..a146c5f --- /dev/null +++ b/ansible/single.yaml @@ -0,0 +1,159 @@ +- hosts: glenn + gather_facts: no + tasks: + - name: Create edx user + user: name=edx password={{ upass | password_hash('sha512') }} generate_ssh_key=yes ssh_key_bits=2048 ssh_key_file=.ssh/id_rsa groups=sudo shell=/bin/bash + + - name: Read SSH public key + slurp: src=/home/edx/.ssh/id_rsa.pub + register: public_key + +- hosts: edx + gather_facts: no + tasks: + + - name: Running apt update + apt: update_cache=yes + + - name: Installing required packages + apt: name={{item}} state=present + with_items: + - mysql-server + - python3-dev + - libmysqlclient-dev + - git + - python3-pip + - python-mysqldb + - nginx + - supervisor + + - name: Enable supervisor + shell: systemctl enable supervisor + - name: Start supervisor + shell: systemctl start supervisor + + - name: Install virtualenv + pip: name=virtualenv executable=pip3 + + - name: Create Virtual Environment + shell: virtualenv collab -p python3 + + - name: Activate Virtual Environment + shell: source collab/bin/activate executable=/bin/bash + + - name: Install gunicorn + pip: name=gunicorn executable=pip3 + + - name: Install psycopg2 + pip: name=psycopg2 executable=pip3 + + - name: Create User + mysql_user: name={{dbuser}} password={{dbpassword}} login_user=root login_password=root priv='*.*:ALL' state=present + + - name: ensure database is created + mysql_db: db={{dbname}} login_user=root login_password=root state=present + + + - name: pull branch master + git: + repo={{ repo_url }}/{{ repo }}.git + dest={{ repo_dir }} + accept_hostkey=yes + + - name: install python requirements + pip: requirements={{ repo_dir }}/requirements.txt executable=pip3 extra_args=--upgrade + + + - name: set STATIC_ROOT + shell: sed -i '170 a STATIC_ROOT = "/home/edx/static"' Collaboration-System/CollaborationSystem/settings.py + + - name: copy environment file + copy: + src={{ config_files_dir }}/.env + dest=/home/edx/Collaboration-System/.env + + - name: Collect Static + shell: python3 Collaboration-System/manage.py collectstatic + + - name: Copy gunicorn_start.bash + copy: + src={{ config_files_dir }}/gunicorn_start.bash + dest=/home/edx/gunicorn_start.bash + + - name: Give it execute permissions + shell: chmod +x gunicorn_start.bash + + - name: Make run and logs directories + shell: mkdir logs + + - name: Create log file for gunicorn + shell: touch logs/gunicorn.log + + - name: Copy config file + copy: + src={{ config_files_dir }}/edx.conf + dest=/etc/supervisor/conf.d/edx.conf + + - name: Restart Supervisor + shell: systemctl enable supervisor + + - name: Enable Supervisor + shell: systemctl enable supervisor + + - name: Copy gunicorn.service file + copy: + src={{ config_files_dir }}/gunicorn.service + dest=/etc/systemd/system/gunicorn.service + + - name: Start gunicorn + shell: systemctl start gunicorn + + - name: Enable gunicorn + shell: systemctl enable gunicorn + + - name: Copy nginx config file + copy: + src={{ config_files_dir }}/nginx.conf + dest=/etc/nginx/sites-available/nginx.conf + + - name: Create a symlink + shell: ln -sf /etc/nginx/sites-available/nginx.conf /etc/nginx/sites-enabled/nginx.conf + + - name: Allow Nginx + shell: ufw allow 'Nginx Full' + + - name: Restart nginx + shell: systemctl restart nginx + + - name: Restart supervisor + shell: supervisorctl restart edx + + - name: Restart gunicorn + shell: service gunicorn restart + + - name: Restart supervisor + shell: service supervisor restart + + - name: Create Directory for Reversion Compare + shell: mkdir -p /home/edx/collab/lib/python3.5/site-packages/reversion_compare/ + + - name: Copy patch + shell: cp Collaboration-System/temp/patch_for_reversion_compare.py /home/edx/collab/lib/python3.5/site-packages/reversion_compare/views.py + + - name: Migrate + shell: python3 Collaboration-System/manage.py migrate + + - name: loaddata workflow + shell: python3 Collaboration-System/manage.py loaddata workflow + + - name: loaddata roles + shell: python3 Collaboration-System/manage.py loaddata roles + + - name: loaddata faq + shell: python3 Collaboration-System/manage.py loaddata faq + + + # - name: Start Gunicorn + # shell: cd /home/edx/Collaboration-System && gunicorn CollaborationSystem.wsgi:application --name=CollaborationSystem --workers=3 --user=edx --group=edx --bind=unix:/home/edx/run/gunicorn.sock --log-level=debug --log-file=- + + diff --git a/collab.sql b/collab.sql new file mode 100644 index 0000000..7b6ac0d --- /dev/null +++ b/collab.sql @@ -0,0 +1,1814 @@ +-- MySQL dump 10.13 Distrib 5.7.21, for Linux (x86_64) +-- +-- Host: localhost Database: tempx +-- ------------------------------------------------------ +-- Server version 5.7.21-0ubuntu0.16.04.1 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `BasicArticle_articles` +-- + +DROP TABLE IF EXISTS `BasicArticle_articles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `BasicArticle_articles` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `title` varchar(100) NOT NULL, + `body` text CHARACTER SET utf8, + `created_at` datetime(6) NOT NULL, + `created_by_id` int(11) DEFAULT NULL, + `views` int(10) unsigned NOT NULL, + `state_id` int(11) DEFAULT NULL, + `image` varchar(100) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `BasicArticle_articles_created_by_id_8b76d84d_fk_auth_user_id` (`created_by_id`), + KEY `BasicArticle_articles_state_id_1a38551e_fk_workflow_states_id` (`state_id`), + CONSTRAINT `BasicArticle_articles_created_by_id_8b76d84d_fk_auth_user_id` FOREIGN KEY (`created_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `BasicArticle_articles_state_id_1a38551e_fk_workflow_states_id` FOREIGN KEY (`state_id`) REFERENCES `workflow_states` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `BasicArticle_articles` +-- + +LOCK TABLES `BasicArticle_articles` WRITE; +/*!40000 ALTER TABLE `BasicArticle_articles` DISABLE KEYS */; +/*!40000 ALTER TABLE `BasicArticle_articles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `BasicArticle_articleviewlogs` +-- + +DROP TABLE IF EXISTS `BasicArticle_articleviewlogs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `BasicArticle_articleviewlogs` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `ip` varchar(40) NOT NULL, + `session` varchar(40) NOT NULL, + `created` datetime(6) NOT NULL, + `article_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `BasicArticle_article_article_id_164e59b4_fk_BasicArti` (`article_id`), + CONSTRAINT `BasicArticle_article_article_id_164e59b4_fk_BasicArti` FOREIGN KEY (`article_id`) REFERENCES `BasicArticle_articles` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `BasicArticle_articleviewlogs` +-- + +LOCK TABLES `BasicArticle_articleviewlogs` WRITE; +/*!40000 ALTER TABLE `BasicArticle_articleviewlogs` DISABLE KEYS */; +/*!40000 ALTER TABLE `BasicArticle_articleviewlogs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Community_community` +-- + +DROP TABLE IF EXISTS `Community_community`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Community_community` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `desc` longtext NOT NULL, + `category` varchar(100) NOT NULL, + `created_at` datetime(6) DEFAULT NULL, + `tag_line` varchar(500) DEFAULT NULL, + `image` varchar(100) DEFAULT NULL, + `forum_link` varchar(100) DEFAULT NULL, + `created_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `Community_community_created_by_id_1080464d_fk_auth_user_id` (`created_by_id`), + CONSTRAINT `Community_community_created_by_id_1080464d_fk_auth_user_id` FOREIGN KEY (`created_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Community_community` +-- + +LOCK TABLES `Community_community` WRITE; +/*!40000 ALTER TABLE `Community_community` DISABLE KEYS */; +/*!40000 ALTER TABLE `Community_community` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Community_communityarticles` +-- + +DROP TABLE IF EXISTS `Community_communityarticles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Community_communityarticles` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `article_id` int(11) NOT NULL, + `community_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `Community_communitya_article_id_c9af3fed_fk_BasicArti` (`article_id`), + KEY `Community_communitya_community_id_39b5841f_fk_Community` (`community_id`), + KEY `Community_communityarticles_user_id_04d18793_fk_auth_user_id` (`user_id`), + CONSTRAINT `Community_communitya_article_id_c9af3fed_fk_BasicArti` FOREIGN KEY (`article_id`) REFERENCES `BasicArticle_articles` (`id`), + CONSTRAINT `Community_communitya_community_id_39b5841f_fk_Community` FOREIGN KEY (`community_id`) REFERENCES `Community_community` (`id`), + CONSTRAINT `Community_communityarticles_user_id_04d18793_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Community_communityarticles` +-- + +LOCK TABLES `Community_communityarticles` WRITE; +/*!40000 ALTER TABLE `Community_communityarticles` DISABLE KEYS */; +/*!40000 ALTER TABLE `Community_communityarticles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Community_communitycourses` +-- + +DROP TABLE IF EXISTS `Community_communitycourses`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Community_communitycourses` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `community_id` int(11) DEFAULT NULL, + `course_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `Community_communityc_community_id_f1b76f0f_fk_Community` (`community_id`), + KEY `Community_communitycoure_course_id_e2dda6e7_fk_Course_course_id` (`course_id`), + KEY `Community_communitycoure_user_id_69c835fe_fk_auth_user_id` (`user_id`), + CONSTRAINT `Community_communityc_community_id_f1b76f0f_fk_Community` FOREIGN KEY (`community_id`) REFERENCES `Community_community` (`id`), + CONSTRAINT `Community_communitycoure_course_id_e2dda6e7_fk_Course_course_id` FOREIGN KEY (`course_id`) REFERENCES `Course_course` (`id`), + CONSTRAINT `Community_communitycoure_user_id_69c835fe_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Community_communitycourses` +-- + +LOCK TABLES `Community_communitycourses` WRITE; +/*!40000 ALTER TABLE `Community_communitycourses` DISABLE KEYS */; +/*!40000 ALTER TABLE `Community_communitycourses` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Community_communitygroups` +-- + +DROP TABLE IF EXISTS `Community_communitygroups`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Community_communitygroups` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `community_id` int(11) DEFAULT NULL, + `group_id` int(11) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `Community_communityg_community_id_3e76934c_fk_Community` (`community_id`), + KEY `Community_communitygroups_group_id_a2ce7b35_fk_Group_group_id` (`group_id`), + KEY `Community_communitygroups_user_id_eaead89d_fk_auth_user_id` (`user_id`), + CONSTRAINT `Community_communityg_community_id_3e76934c_fk_Community` FOREIGN KEY (`community_id`) REFERENCES `Community_community` (`id`), + CONSTRAINT `Community_communitygroups_group_id_a2ce7b35_fk_Group_group_id` FOREIGN KEY (`group_id`) REFERENCES `Group_group` (`id`), + CONSTRAINT `Community_communitygroups_user_id_eaead89d_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Community_communitygroups` +-- + +LOCK TABLES `Community_communitygroups` WRITE; +/*!40000 ALTER TABLE `Community_communitygroups` DISABLE KEYS */; +/*!40000 ALTER TABLE `Community_communitygroups` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Community_communitymembership` +-- + +DROP TABLE IF EXISTS `Community_communitymembership`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Community_communitymembership` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `community_id` int(11) NOT NULL, + `role_id` int(11) DEFAULT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `Community_communitym_community_id_8a39991d_fk_Community` (`community_id`), + KEY `Community_communitymembership_role_id_9c581fd0_fk_auth_group_id` (`role_id`), + KEY `Community_communitymembership_user_id_5dd1c26b_fk_auth_user_id` (`user_id`), + CONSTRAINT `Community_communitym_community_id_8a39991d_fk_Community` FOREIGN KEY (`community_id`) REFERENCES `Community_community` (`id`), + CONSTRAINT `Community_communitymembership_role_id_9c581fd0_fk_auth_group_id` FOREIGN KEY (`role_id`) REFERENCES `auth_group` (`id`), + CONSTRAINT `Community_communitymembership_user_id_5dd1c26b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Community_communitymembership` +-- + +LOCK TABLES `Community_communitymembership` WRITE; +/*!40000 ALTER TABLE `Community_communitymembership` DISABLE KEYS */; +/*!40000 ALTER TABLE `Community_communitymembership` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Community_requestcommunitycreation` +-- + +DROP TABLE IF EXISTS `Community_requestcommunitycreation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Community_requestcommunitycreation` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) DEFAULT NULL, + `desc` longtext NOT NULL, + `category` varchar(100) NOT NULL, + `tag_line` varchar(500) DEFAULT NULL, + `purpose` longtext NOT NULL, + `email` varchar(100) DEFAULT NULL, + `requestedby_id` int(11) DEFAULT NULL, + `status` varchar(100) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `Community_requestcommunitycreation_requestedby_id_b3e83124` (`requestedby_id`), + CONSTRAINT `Community_requestcom_requestedby_id_b3e83124_fk_auth_user` FOREIGN KEY (`requestedby_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Community_requestcommunitycreation` +-- + +LOCK TABLES `Community_requestcommunitycreation` WRITE; +/*!40000 ALTER TABLE `Community_requestcommunitycreation` DISABLE KEYS */; +/*!40000 ALTER TABLE `Community_requestcommunitycreation` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Course_course` +-- + +DROP TABLE IF EXISTS `Course_course`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Course_course` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `desc` longtext NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Course_course` +-- + +LOCK TABLES `Course_course` WRITE; +/*!40000 ALTER TABLE `Course_course` DISABLE KEYS */; +/*!40000 ALTER TABLE `Course_course` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Course_links` +-- + +DROP TABLE IF EXISTS `Course_links`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Course_links` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `link` varchar(300) NOT NULL, + `desc` longtext NOT NULL, + `topics_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `Course_links_topics_id_096bf6bd_fk_Course_topics_id` (`topics_id`), + CONSTRAINT `Course_links_topics_id_096bf6bd_fk_Course_topics_id` FOREIGN KEY (`topics_id`) REFERENCES `Course_topics` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Course_links` +-- + +LOCK TABLES `Course_links` WRITE; +/*!40000 ALTER TABLE `Course_links` DISABLE KEYS */; +/*!40000 ALTER TABLE `Course_links` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Course_topics` +-- + +DROP TABLE IF EXISTS `Course_topics`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Course_topics` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `lft` int(10) unsigned NOT NULL, + `rght` int(10) unsigned NOT NULL, + `tree_id` int(10) unsigned NOT NULL, + `level` int(10) unsigned NOT NULL, + `parent_id` int(11) DEFAULT NULL, + `course_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `Course_topics_lft_90a2e5bc` (`lft`), + KEY `Course_topics_rght_01583e2c` (`rght`), + KEY `Course_topics_tree_id_b199de91` (`tree_id`), + KEY `Course_topics_level_a7ab2ea8` (`level`), + KEY `Course_topics_parent_id_adff4cae` (`parent_id`), + KEY `Course_topics_course_id_9e18b74c_fk_Course_course_id` (`course_id`), + CONSTRAINT `Course_topics_course_id_9e18b74c_fk_Course_course_id` FOREIGN KEY (`course_id`) REFERENCES `Course_course` (`id`), + CONSTRAINT `Course_topics_parent_id_adff4cae_fk_Course_topics_id` FOREIGN KEY (`parent_id`) REFERENCES `Course_topics` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Course_topics` +-- + +LOCK TABLES `Course_topics` WRITE; +/*!40000 ALTER TABLE `Course_topics` DISABLE KEYS */; +/*!40000 ALTER TABLE `Course_topics` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Course_videos` +-- + +DROP TABLE IF EXISTS `Course_videos`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Course_videos` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `video` varchar(300) NOT NULL, + `desc` longtext NOT NULL, + `topics_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `Course_videos_topics_id_568227cc_fk_Course_topics_id` (`topics_id`), + CONSTRAINT `Course_videos_topics_id_568227cc_fk_Course_topics_id` FOREIGN KEY (`topics_id`) REFERENCES `Course_topics` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Course_videos` +-- + +LOCK TABLES `Course_videos` WRITE; +/*!40000 ALTER TABLE `Course_videos` DISABLE KEYS */; +/*!40000 ALTER TABLE `Course_videos` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Group_group` +-- + +DROP TABLE IF EXISTS `Group_group`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Group_group` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `desc` longtext NOT NULL, + `visibility` tinyint(1) NOT NULL, + `created_at` datetime(6) DEFAULT NULL, + `image` varchar(100) DEFAULT NULL, + `created_by_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `Group_group_created_by_id_b1ee0c6d_fk_auth_user_id` (`created_by_id`), + CONSTRAINT `Group_group_created_by_id_b1ee0c6d_fk_auth_user_id` FOREIGN KEY (`created_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Group_group` +-- + +LOCK TABLES `Group_group` WRITE; +/*!40000 ALTER TABLE `Group_group` DISABLE KEYS */; +/*!40000 ALTER TABLE `Group_group` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Group_grouparticles` +-- + +DROP TABLE IF EXISTS `Group_grouparticles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Group_grouparticles` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `article_id` int(11) NOT NULL, + `group_id` int(11) DEFAULT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `Group_grouparticles_article_id_eac38398_fk_BasicArti` (`article_id`), + KEY `Group_grouparticles_user_id_12983c5c_fk_auth_user_id` (`user_id`), + KEY `Group_grouparticles_group_id_84ee212d_fk_Group_group_id` (`group_id`), + CONSTRAINT `Group_grouparticles_article_id_eac38398_fk_BasicArti` FOREIGN KEY (`article_id`) REFERENCES `BasicArticle_articles` (`id`), + CONSTRAINT `Group_grouparticles_group_id_84ee212d_fk_Group_group_id` FOREIGN KEY (`group_id`) REFERENCES `Group_group` (`id`), + CONSTRAINT `Group_grouparticles_user_id_12983c5c_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Group_grouparticles` +-- + +LOCK TABLES `Group_grouparticles` WRITE; +/*!40000 ALTER TABLE `Group_grouparticles` DISABLE KEYS */; +/*!40000 ALTER TABLE `Group_grouparticles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `Group_groupmembership` +-- + +DROP TABLE IF EXISTS `Group_groupmembership`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `Group_groupmembership` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `group_id` int(11) NOT NULL, + `role_id` int(11) DEFAULT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `Group_groupmembership_group_id_adce78b5_fk_Group_group_id` (`group_id`), + KEY `Group_groupmembership_user_id_e4f5757f_fk_auth_user_id` (`user_id`), + KEY `Group_groupmembership_role_id_bb865ffb_fk_auth_group_id` (`role_id`), + CONSTRAINT `Group_groupmembership_group_id_adce78b5_fk_Group_group_id` FOREIGN KEY (`group_id`) REFERENCES `Group_group` (`id`), + CONSTRAINT `Group_groupmembership_role_id_bb865ffb_fk_auth_group_id` FOREIGN KEY (`role_id`) REFERENCES `auth_group` (`id`), + CONSTRAINT `Group_groupmembership_user_id_e4f5757f_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `Group_groupmembership` +-- + +LOCK TABLES `Group_groupmembership` WRITE; +/*!40000 ALTER TABLE `Group_groupmembership` DISABLE KEYS */; +/*!40000 ALTER TABLE `Group_groupmembership` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `UserRolesPermission_favourite` +-- + +DROP TABLE IF EXISTS `UserRolesPermission_favourite`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `UserRolesPermission_favourite` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `resource` int(10) unsigned NOT NULL, + `category` varchar(20) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `UserRolesPermission_favourite_user_id_14680490_fk_auth_user_id` (`user_id`), + CONSTRAINT `UserRolesPermission_favourite_user_id_14680490_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `UserRolesPermission_favourite` +-- + +LOCK TABLES `UserRolesPermission_favourite` WRITE; +/*!40000 ALTER TABLE `UserRolesPermission_favourite` DISABLE KEYS */; +/*!40000 ALTER TABLE `UserRolesPermission_favourite` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `UserRolesPermission_profileimage` +-- + +DROP TABLE IF EXISTS `UserRolesPermission_profileimage`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `UserRolesPermission_profileimage` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `photo` varchar(100) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `user_id` (`user_id`), + CONSTRAINT `UserRolesPermission__user_id_2e95d164_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `UserRolesPermission_profileimage` +-- + +LOCK TABLES `UserRolesPermission_profileimage` WRITE; +/*!40000 ALTER TABLE `UserRolesPermission_profileimage` DISABLE KEYS */; +/*!40000 ALTER TABLE `UserRolesPermission_profileimage` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `auth_group` +-- + +DROP TABLE IF EXISTS `auth_group`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_group` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(80) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `auth_group` +-- + +LOCK TABLES `auth_group` WRITE; +/*!40000 ALTER TABLE `auth_group` DISABLE KEYS */; +INSERT INTO `auth_group` VALUES (1,'author'),(3,'community_admin'),(4,'group_admin'),(2,'publisher'); +/*!40000 ALTER TABLE `auth_group` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `auth_group_permissions` +-- + +DROP TABLE IF EXISTS `auth_group_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_group_permissions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `group_id` int(11) NOT NULL, + `permission_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `auth_group_permissions_group_id_permission_id_0cd325b0_uniq` (`group_id`,`permission_id`), + KEY `auth_group_permissio_permission_id_84c5c92e_fk_auth_perm` (`permission_id`), + CONSTRAINT `auth_group_permissio_permission_id_84c5c92e_fk_auth_perm` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`), + CONSTRAINT `auth_group_permissions_group_id_b120cbf9_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `auth_group_permissions` +-- + +LOCK TABLES `auth_group_permissions` WRITE; +/*!40000 ALTER TABLE `auth_group_permissions` DISABLE KEYS */; +/*!40000 ALTER TABLE `auth_group_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `auth_permission` +-- + +DROP TABLE IF EXISTS `auth_permission`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_permission` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `content_type_id` int(11) NOT NULL, + `codename` varchar(100) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `auth_permission_content_type_id_codename_01ab375a_uniq` (`content_type_id`,`codename`), + CONSTRAINT `auth_permission_content_type_id_2f476e4b_fk_django_co` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=165 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `auth_permission` +-- + +LOCK TABLES `auth_permission` WRITE; +/*!40000 ALTER TABLE `auth_permission` DISABLE KEYS */; +INSERT INTO `auth_permission` VALUES (1,'Can add log entry',1,'add_logentry'),(2,'Can change log entry',1,'change_logentry'),(3,'Can delete log entry',1,'delete_logentry'),(4,'Can add permission',2,'add_permission'),(5,'Can change permission',2,'change_permission'),(6,'Can delete permission',2,'delete_permission'),(7,'Can add user',3,'add_user'),(8,'Can change user',3,'change_user'),(9,'Can delete user',3,'delete_user'),(10,'Can add group',4,'add_group'),(11,'Can change group',4,'change_group'),(12,'Can delete group',4,'delete_group'),(13,'Can add content type',5,'add_contenttype'),(14,'Can change content type',5,'change_contenttype'),(15,'Can delete content type',5,'delete_contenttype'),(16,'Can add session',6,'add_session'),(17,'Can change session',6,'change_session'),(18,'Can delete session',6,'delete_session'),(19,'Can add site',7,'add_site'),(20,'Can change site',7,'change_site'),(21,'Can delete site',7,'delete_site'),(22,'Can add black listed domain',8,'add_blacklisteddomain'),(23,'Can change black listed domain',8,'change_blacklisteddomain'),(24,'Can delete black listed domain',8,'delete_blacklisteddomain'),(25,'Can add comment',9,'add_xtdcomment'),(26,'Can change comment',9,'change_xtdcomment'),(27,'Can delete comment',9,'delete_xtdcomment'),(28,'Can moderate comments',9,'can_moderate'),(29,'Can add comment',10,'add_comment'),(30,'Can change comment',10,'change_comment'),(31,'Can delete comment',10,'delete_comment'),(32,'Can moderate comments',10,'can_moderate'),(33,'Can add comment flag',11,'add_commentflag'),(34,'Can change comment flag',11,'change_commentflag'),(35,'Can delete comment flag',11,'delete_commentflag'),(36,'Can add community groups',12,'add_communitygroups'),(37,'Can change community groups',12,'change_communitygroups'),(38,'Can delete community groups',12,'delete_communitygroups'),(39,'Can add community articles',13,'add_communityarticles'),(40,'Can change community articles',13,'change_communityarticles'),(41,'Can delete community articles',13,'delete_communityarticles'),(42,'Can add request community creation',14,'add_requestcommunitycreation'),(43,'Can change request community creation',14,'change_requestcommunitycreation'),(44,'Can delete request community creation',14,'delete_requestcommunitycreation'),(45,'Can add community',15,'add_community'),(46,'Can change community',15,'change_community'),(47,'Can delete community',15,'delete_community'),(48,'Can add community membership',16,'add_communitymembership'),(49,'Can change community membership',16,'change_communitymembership'),(50,'Can delete community membership',16,'delete_communitymembership'),(51,'Can add community courses',17,'add_communitycourses'),(52,'Can change community courses',17,'change_communitycourses'),(53,'Can delete community courses',17,'delete_communitycourses'),(54,'Can add profile image',18,'add_profileimage'),(55,'Can change profile image',18,'change_profileimage'),(56,'Can delete profile image',18,'delete_profileimage'),(57,'Can add favourite',19,'add_favourite'),(58,'Can change favourite',19,'change_favourite'),(59,'Can delete favourite',19,'delete_favourite'),(60,'Can add article view logs',20,'add_articleviewlogs'),(61,'Can change article view logs',20,'change_articleviewlogs'),(62,'Can delete article view logs',20,'delete_articleviewlogs'),(63,'Can add articles',21,'add_articles'),(64,'Can change articles',21,'change_articles'),(65,'Can delete articles',21,'delete_articles'),(66,'Can add group articles',22,'add_grouparticles'),(67,'Can change group articles',22,'change_grouparticles'),(68,'Can delete group articles',22,'delete_grouparticles'),(69,'Can add group membership',23,'add_groupmembership'),(70,'Can change group membership',23,'change_groupmembership'),(71,'Can delete group membership',23,'delete_groupmembership'),(72,'Can add group',24,'add_group'),(73,'Can change group',24,'change_group'),(74,'Can delete group',24,'delete_group'),(75,'Can add revision',25,'add_revision'),(76,'Can change revision',25,'change_revision'),(77,'Can delete revision',25,'delete_revision'),(78,'Can add version',26,'add_version'),(79,'Can change version',26,'change_version'),(80,'Can delete version',26,'delete_version'),(81,'Can add Token',27,'add_token'),(82,'Can change Token',27,'change_token'),(83,'Can delete Token',27,'delete_token'),(84,'Can add states',28,'add_states'),(85,'Can change states',28,'change_states'),(86,'Can delete states',28,'delete_states'),(87,'Can add transitions',29,'add_transitions'),(88,'Can change transitions',29,'change_transitions'),(89,'Can delete transitions',29,'delete_transitions'),(90,'Can add association',30,'add_association'),(91,'Can change association',30,'change_association'),(92,'Can delete association',30,'delete_association'),(93,'Can add partial',31,'add_partial'),(94,'Can change partial',31,'change_partial'),(95,'Can delete partial',31,'delete_partial'),(96,'Can add nonce',32,'add_nonce'),(97,'Can change nonce',32,'change_nonce'),(98,'Can delete nonce',32,'delete_nonce'),(99,'Can add user social auth',33,'add_usersocialauth'),(100,'Can change user social auth',33,'change_usersocialauth'),(101,'Can delete user social auth',33,'delete_usersocialauth'),(102,'Can add code',34,'add_code'),(103,'Can change code',34,'change_code'),(104,'Can delete code',34,'delete_code'),(105,'Can add faq',35,'add_faq'),(106,'Can change faq',35,'change_faq'),(107,'Can delete faq',35,'delete_faq'),(108,'Can add faq category',36,'add_faqcategory'),(109,'Can change faq category',36,'change_faqcategory'),(110,'Can delete faq category',36,'delete_faqcategory'),(111,'Can add feedback',37,'add_feedback'),(112,'Can change feedback',37,'change_feedback'),(113,'Can delete feedback',37,'delete_feedback'),(114,'Can add links',38,'add_links'),(115,'Can change links',38,'change_links'),(116,'Can delete links',38,'delete_links'),(117,'Can add videos',39,'add_videos'),(118,'Can change videos',39,'change_videos'),(119,'Can delete videos',39,'delete_videos'),(120,'Can add course',40,'add_course'),(121,'Can change course',40,'change_course'),(122,'Can delete course',40,'delete_course'),(123,'Can add topics',41,'add_topics'),(124,'Can change topics',41,'change_topics'),(125,'Can delete topics',41,'delete_topics'),(126,'Can add Forum',42,'add_forum'),(127,'Can change Forum',42,'change_forum'),(128,'Can delete Forum',42,'delete_forum'),(129,'Can add Topic',43,'add_topic'),(130,'Can change Topic',43,'change_topic'),(131,'Can delete Topic',43,'delete_topic'),(132,'Can add Post',44,'add_post'),(133,'Can change Post',44,'change_post'),(134,'Can delete Post',44,'delete_post'),(135,'Can add Attachment',45,'add_attachment'),(136,'Can change Attachment',45,'change_attachment'),(137,'Can delete Attachment',45,'delete_attachment'),(138,'Can add Topic poll',46,'add_topicpoll'),(139,'Can change Topic poll',46,'change_topicpoll'),(140,'Can delete Topic poll',46,'delete_topicpoll'),(141,'Can add Topic poll vote',47,'add_topicpollvote'),(142,'Can change Topic poll vote',47,'change_topicpollvote'),(143,'Can delete Topic poll vote',47,'delete_topicpollvote'),(144,'Can add Topic poll option',48,'add_topicpolloption'),(145,'Can change Topic poll option',48,'change_topicpolloption'),(146,'Can delete Topic poll option',48,'delete_topicpolloption'),(147,'Can add Forum track',49,'add_forumreadtrack'),(148,'Can change Forum track',49,'change_forumreadtrack'),(149,'Can delete Forum track',49,'delete_forumreadtrack'),(150,'Can add Topic track',50,'add_topicreadtrack'),(151,'Can change Topic track',50,'change_topicreadtrack'),(152,'Can delete Topic track',50,'delete_topicreadtrack'),(153,'Can add Forum profile',51,'add_forumprofile'),(154,'Can change Forum profile',51,'change_forumprofile'),(155,'Can delete Forum profile',51,'delete_forumprofile'),(156,'Can add User forum permission',52,'add_userforumpermission'),(157,'Can change User forum permission',52,'change_userforumpermission'),(158,'Can delete User forum permission',52,'delete_userforumpermission'),(159,'Can add Group forum permission',53,'add_groupforumpermission'),(160,'Can change Group forum permission',53,'change_groupforumpermission'),(161,'Can delete Group forum permission',53,'delete_groupforumpermission'),(162,'Can add Forum permission',54,'add_forumpermission'),(163,'Can change Forum permission',54,'change_forumpermission'),(164,'Can delete Forum permission',54,'delete_forumpermission'); +/*!40000 ALTER TABLE `auth_permission` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `auth_user` +-- + +DROP TABLE IF EXISTS `auth_user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_user` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `password` varchar(128) NOT NULL, + `last_login` datetime(6) DEFAULT NULL, + `is_superuser` tinyint(1) NOT NULL, + `username` varchar(150) NOT NULL, + `first_name` varchar(30) NOT NULL, + `last_name` varchar(30) NOT NULL, + `email` varchar(254) NOT NULL, + `is_staff` tinyint(1) NOT NULL, + `is_active` tinyint(1) NOT NULL, + `date_joined` datetime(6) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `username` (`username`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `auth_user` +-- + +LOCK TABLES `auth_user` WRITE; +/*!40000 ALTER TABLE `auth_user` DISABLE KEYS */; +INSERT INTO `auth_user` VALUES (1,'pbkdf2_sha256$36000$d83Rwzcuvqo4$0WoDwnrEo+dYnvBz+uW6ISv/2GqHbvdOYL4hZAUaapk=','2018-04-06 13:28:39.603525',1,'admin','','','admin@mail.com',1,1,'2018-04-04 07:28:01.344285'); +/*!40000 ALTER TABLE `auth_user` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `auth_user_groups` +-- + +DROP TABLE IF EXISTS `auth_user_groups`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_user_groups` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `group_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `auth_user_groups_user_id_group_id_94350c0c_uniq` (`user_id`,`group_id`), + KEY `auth_user_groups_group_id_97559544_fk_auth_group_id` (`group_id`), + CONSTRAINT `auth_user_groups_group_id_97559544_fk_auth_group_id` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`), + CONSTRAINT `auth_user_groups_user_id_6a12ed8b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `auth_user_groups` +-- + +LOCK TABLES `auth_user_groups` WRITE; +/*!40000 ALTER TABLE `auth_user_groups` DISABLE KEYS */; +/*!40000 ALTER TABLE `auth_user_groups` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `auth_user_user_permissions` +-- + +DROP TABLE IF EXISTS `auth_user_user_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_user_user_permissions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `permission_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `auth_user_user_permissions_user_id_permission_id_14a6b632_uniq` (`user_id`,`permission_id`), + KEY `auth_user_user_permi_permission_id_1fbb5f2c_fk_auth_perm` (`permission_id`), + CONSTRAINT `auth_user_user_permi_permission_id_1fbb5f2c_fk_auth_perm` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`), + CONSTRAINT `auth_user_user_permissions_user_id_a95ead1b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `auth_user_user_permissions` +-- + +LOCK TABLES `auth_user_user_permissions` WRITE; +/*!40000 ALTER TABLE `auth_user_user_permissions` DISABLE KEYS */; +/*!40000 ALTER TABLE `auth_user_user_permissions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `authtoken_token` +-- + +DROP TABLE IF EXISTS `authtoken_token`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `authtoken_token` ( + `key` varchar(40) NOT NULL, + `created` datetime(6) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`key`), + UNIQUE KEY `user_id` (`user_id`), + CONSTRAINT `authtoken_token_user_id_35299eff_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `authtoken_token` +-- + +LOCK TABLES `authtoken_token` WRITE; +/*!40000 ALTER TABLE `authtoken_token` DISABLE KEYS */; +/*!40000 ALTER TABLE `authtoken_token` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `django_admin_log` +-- + +DROP TABLE IF EXISTS `django_admin_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_admin_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `action_time` datetime(6) NOT NULL, + `object_id` longtext, + `object_repr` varchar(200) NOT NULL, + `action_flag` smallint(5) unsigned NOT NULL, + `change_message` longtext NOT NULL, + `content_type_id` int(11) DEFAULT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `django_admin_log_content_type_id_c4bce8eb_fk_django_co` (`content_type_id`), + KEY `django_admin_log_user_id_c564eba6_fk_auth_user_id` (`user_id`), + CONSTRAINT `django_admin_log_content_type_id_c4bce8eb_fk_django_co` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`), + CONSTRAINT `django_admin_log_user_id_c564eba6_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `django_admin_log` +-- + +LOCK TABLES `django_admin_log` WRITE; +/*!40000 ALTER TABLE `django_admin_log` DISABLE KEYS */; +INSERT INTO `django_admin_log` VALUES (1,'2018-04-04 07:31:19.602176','1','Collabortaion System',1,'[{\"added\": {}}]',42,1); +/*!40000 ALTER TABLE `django_admin_log` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `django_comment_flags` +-- + +DROP TABLE IF EXISTS `django_comment_flags`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_comment_flags` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `flag` varchar(30) NOT NULL, + `flag_date` datetime(6) NOT NULL, + `comment_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `django_comment_flags_user_id_comment_id_flag_537f77a7_uniq` (`user_id`,`comment_id`,`flag`), + KEY `django_comment_flags_comment_id_d8054933_fk_django_comments_id` (`comment_id`), + KEY `django_comment_flags_flag_8b141fcb` (`flag`), + CONSTRAINT `django_comment_flags_comment_id_d8054933_fk_django_comments_id` FOREIGN KEY (`comment_id`) REFERENCES `django_comments` (`id`), + CONSTRAINT `django_comment_flags_user_id_f3f81f0a_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `django_comment_flags` +-- + +LOCK TABLES `django_comment_flags` WRITE; +/*!40000 ALTER TABLE `django_comment_flags` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_comment_flags` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `django_comments` +-- + +DROP TABLE IF EXISTS `django_comments`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_comments` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `object_pk` longtext NOT NULL, + `user_name` varchar(50) NOT NULL, + `user_email` varchar(254) NOT NULL, + `user_url` varchar(200) NOT NULL, + `comment` longtext NOT NULL, + `submit_date` datetime(6) NOT NULL, + `ip_address` char(39) DEFAULT NULL, + `is_public` tinyint(1) NOT NULL, + `is_removed` tinyint(1) NOT NULL, + `content_type_id` int(11) NOT NULL, + `site_id` int(11) NOT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `django_comments_content_type_id_c4afe962_fk_django_co` (`content_type_id`), + KEY `django_comments_site_id_9dcf666e_fk_django_site_id` (`site_id`), + KEY `django_comments_user_id_a0a440a1_fk_auth_user_id` (`user_id`), + KEY `django_comments_submit_date_514ed2d9` (`submit_date`), + CONSTRAINT `django_comments_content_type_id_c4afe962_fk_django_co` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`), + CONSTRAINT `django_comments_site_id_9dcf666e_fk_django_site_id` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`), + CONSTRAINT `django_comments_user_id_a0a440a1_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `django_comments` +-- + +LOCK TABLES `django_comments` WRITE; +/*!40000 ALTER TABLE `django_comments` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_comments` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `django_comments_xtd_blacklisteddomain` +-- + +DROP TABLE IF EXISTS `django_comments_xtd_blacklisteddomain`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_comments_xtd_blacklisteddomain` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `domain` varchar(200) NOT NULL, + PRIMARY KEY (`id`), + KEY `django_comments_xtd_blacklisteddomain_domain_43b81328` (`domain`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `django_comments_xtd_blacklisteddomain` +-- + +LOCK TABLES `django_comments_xtd_blacklisteddomain` WRITE; +/*!40000 ALTER TABLE `django_comments_xtd_blacklisteddomain` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_comments_xtd_blacklisteddomain` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `django_comments_xtd_xtdcomment` +-- + +DROP TABLE IF EXISTS `django_comments_xtd_xtdcomment`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_comments_xtd_xtdcomment` ( + `comment_ptr_id` int(11) NOT NULL, + `thread_id` int(11) NOT NULL, + `parent_id` int(11) NOT NULL, + `level` smallint(6) NOT NULL, + `order` int(11) NOT NULL, + `followup` tinyint(1) NOT NULL, + PRIMARY KEY (`comment_ptr_id`), + KEY `django_comments_xtd_xtdcomment_thread_id_e192a27a` (`thread_id`), + KEY `django_comments_xtd_xtdcomment_order_36db562d` (`order`), + CONSTRAINT `django_comments_xtd__comment_ptr_id_01d47130_fk_django_co` FOREIGN KEY (`comment_ptr_id`) REFERENCES `django_comments` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `django_comments_xtd_xtdcomment` +-- + +LOCK TABLES `django_comments_xtd_xtdcomment` WRITE; +/*!40000 ALTER TABLE `django_comments_xtd_xtdcomment` DISABLE KEYS */; +/*!40000 ALTER TABLE `django_comments_xtd_xtdcomment` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `django_content_type` +-- + +DROP TABLE IF EXISTS `django_content_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_content_type` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `app_label` varchar(100) NOT NULL, + `model` varchar(100) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `django_content_type_app_label_model_76bd3d3b_uniq` (`app_label`,`model`) +) ENGINE=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `django_content_type` +-- + +LOCK TABLES `django_content_type` WRITE; +/*!40000 ALTER TABLE `django_content_type` DISABLE KEYS */; +INSERT INTO `django_content_type` VALUES (1,'admin','logentry'),(4,'auth','group'),(2,'auth','permission'),(3,'auth','user'),(27,'authtoken','token'),(21,'BasicArticle','articles'),(20,'BasicArticle','articleviewlogs'),(15,'Community','community'),(13,'Community','communityarticles'),(17,'Community','communitycourses'),(12,'Community','communitygroups'),(16,'Community','communitymembership'),(14,'Community','requestcommunitycreation'),(5,'contenttypes','contenttype'),(40,'Course','course'),(38,'Course','links'),(41,'Course','topics'),(39,'Course','videos'),(10,'django_comments','comment'),(11,'django_comments','commentflag'),(8,'django_comments_xtd','blacklisteddomain'),(9,'django_comments_xtd','xtdcomment'),(42,'forum','forum'),(45,'forum_attachments','attachment'),(44,'forum_conversation','post'),(43,'forum_conversation','topic'),(51,'forum_member','forumprofile'),(54,'forum_permission','forumpermission'),(53,'forum_permission','groupforumpermission'),(52,'forum_permission','userforumpermission'),(46,'forum_polls','topicpoll'),(48,'forum_polls','topicpolloption'),(47,'forum_polls','topicpollvote'),(49,'forum_tracking','forumreadtrack'),(50,'forum_tracking','topicreadtrack'),(24,'Group','group'),(22,'Group','grouparticles'),(23,'Group','groupmembership'),(25,'reversion','revision'),(26,'reversion','version'),(6,'sessions','session'),(7,'sites','site'),(30,'social_django','association'),(34,'social_django','code'),(32,'social_django','nonce'),(31,'social_django','partial'),(33,'social_django','usersocialauth'),(19,'UserRolesPermission','favourite'),(18,'UserRolesPermission','profileimage'),(35,'webcontent','faq'),(36,'webcontent','faqcategory'),(37,'webcontent','feedback'),(28,'workflow','states'),(29,'workflow','transitions'); +/*!40000 ALTER TABLE `django_content_type` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `django_migrations` +-- + +DROP TABLE IF EXISTS `django_migrations`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_migrations` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `app` varchar(255) NOT NULL, + `name` varchar(255) NOT NULL, + `applied` datetime(6) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=159 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `django_migrations` +-- + +LOCK TABLES `django_migrations` WRITE; +/*!40000 ALTER TABLE `django_migrations` DISABLE KEYS */; +INSERT INTO `django_migrations` VALUES (1,'workflow','0001_initial','2018-04-04 07:23:35.283675'),(2,'contenttypes','0001_initial','2018-04-04 07:23:35.993220'),(3,'auth','0001_initial','2018-04-04 07:23:46.270496'),(4,'BasicArticle','0001_initial','2018-04-04 07:23:46.574373'),(5,'BasicArticle','0002_articles_created_by','2018-04-04 07:23:48.425674'),(6,'BasicArticle','0003_remove_articles_created_by','2018-04-04 07:23:49.052672'),(7,'BasicArticle','0004_articles_state','2018-04-04 07:23:50.233101'),(8,'BasicArticle','0005_remove_articles_state','2018-04-04 07:23:50.817665'),(9,'BasicArticle','0006_articles_created_by','2018-04-04 07:23:52.163897'),(10,'BasicArticle','0007_articles_views','2018-04-04 07:23:52.767180'),(11,'BasicArticle','0008_articleviewlogs','2018-04-04 07:23:54.043629'),(12,'BasicArticle','0009_articles_state','2018-04-04 07:23:55.573053'),(13,'BasicArticle','0010_articles_image','2018-04-04 07:23:56.109155'),(14,'BasicArticle','0011_auto_20180118_0858','2018-04-04 07:23:56.156798'),(15,'BasicArticle','0012_auto_20180123_0846','2018-04-04 07:23:56.851658'),(16,'BasicArticle','0013_auto_20180227_1136','2018-04-04 07:23:56.908565'),(17,'Course','0001_initial','2018-04-04 07:23:59.929361'),(18,'Course','0002_links_topics','2018-04-04 07:24:01.298423'),(19,'Course','0003_topics_course','2018-04-04 07:24:03.195903'),(20,'contenttypes','0002_remove_content_type_name','2018-04-04 07:24:04.282692'),(21,'auth','0002_alter_permission_name_max_length','2018-04-04 07:24:04.393824'),(22,'auth','0003_alter_user_email_max_length','2018-04-04 07:24:04.510883'),(23,'auth','0004_alter_user_username_opts','2018-04-04 07:24:04.558933'),(24,'auth','0005_alter_user_last_login_null','2018-04-04 07:24:05.112109'),(25,'auth','0006_require_contenttypes_0002','2018-04-04 07:24:05.153968'),(26,'auth','0007_alter_validators_add_error_messages','2018-04-04 07:24:05.209627'),(27,'auth','0008_alter_user_username_max_length','2018-04-04 07:24:05.588649'),(28,'Community','0001_initial','2018-04-04 07:24:12.322783'),(29,'Group','0001_initial','2018-04-04 07:24:14.536330'),(30,'Group','0002_auto_20171122_1432','2018-04-04 07:24:15.999228'),(31,'Community','0002_auto_20171120_1202','2018-04-04 07:24:17.227905'),(32,'Community','0003_communitygroups','2018-04-04 07:24:20.004229'),(33,'Community','0004_suggestcommunity','2018-04-04 07:24:20.293628'),(34,'Community','0005_auto_20180102_0842','2018-04-04 07:24:20.739530'),(35,'Community','0006_auto_20180102_0902','2018-04-04 07:24:20.911135'),(36,'Community','0007_requestcommunitycreation_user','2018-04-04 07:24:21.433957'),(37,'Community','0008_auto_20180102_0951','2018-04-04 07:24:23.414564'),(38,'Community','0009_auto_20180102_1007','2018-04-04 07:24:25.170783'),(39,'Community','0010_requestcommunitycreation_status','2018-04-04 07:24:25.688947'),(40,'Community','0011_auto_20180102_1027','2018-04-04 07:24:27.777831'),(41,'Community','0012_community_image','2018-04-04 07:24:28.346480'),(42,'Community','0013_remove_community_image','2018-04-04 07:24:29.122133'),(43,'Community','0014_community_image','2018-04-04 07:24:29.868768'),(44,'Community','0015_auto_20180125_1103','2018-04-04 07:24:31.338424'),(45,'Community','0016_auto_20180125_1147','2018-04-04 07:24:32.359735'),(46,'Community','0017_community_forum_link','2018-04-04 07:24:32.836035'),(47,'Community','0018_community_created_by','2018-04-04 07:24:34.379971'),(48,'Community','0019_auto_20180227_1138','2018-04-04 07:24:34.442627'),(49,'Course','0004_course_community','2018-04-04 07:24:35.659842'),(50,'Course','0005_auto_20180316_0929','2018-04-04 07:24:37.815453'),(51,'Community','0020_communitycoure','2018-04-04 07:24:40.824243'),(52,'Community','0021_auto_20180316_0930','2018-04-04 07:24:41.094634'),(53,'Community','0022_auto_20180316_1028','2018-04-04 07:24:41.316197'),(54,'Course','0006_auto_20180321_1206','2018-04-04 07:24:41.525070'),(55,'Group','0003_groupmembership','2018-04-04 07:24:44.775868'),(56,'Group','0004_auto_20171123_1614','2018-04-04 07:24:46.647306'),(57,'Group','0005_groupmembership_group_admin','2018-04-04 07:24:47.816426'),(58,'Group','0006_grouparticles','2018-04-04 07:24:50.733649'),(59,'Group','0007_auto_20171129_1330','2018-04-04 07:24:52.304638'),(60,'Group','0008_remove_groupmembership_group_admin','2018-04-04 07:24:53.149743'),(61,'Group','0009_group_created_at','2018-04-04 07:24:53.702644'),(62,'Group','0010_group_image','2018-04-04 07:24:54.278841'),(63,'Group','0011_group_created_by','2018-04-04 07:24:56.124765'),(64,'Group','0012_auto_20180227_1134','2018-04-04 07:24:56.223534'),(65,'UserRolesPermission','0001_initial','2018-04-04 07:24:57.352201'),(66,'UserRolesPermission','0002_auto_20180102_1430','2018-04-04 07:24:58.447235'),(67,'UserRolesPermission','0003_profile','2018-04-04 07:24:59.458386'),(68,'UserRolesPermission','0004_auto_20180116_0947','2018-04-04 07:25:01.606544'),(69,'UserRolesPermission','0005_auto_20180227_1128','2018-04-04 07:25:01.665938'),(70,'UserRolesPermission','0006_favourite','2018-04-04 07:25:02.850913'),(71,'UserRolesPermission','0005_auto_20180227_1043','2018-04-04 07:25:03.034826'),(72,'UserRolesPermission','0007_merge_20180321_1208','2018-04-04 07:25:03.101555'),(73,'UserRolesPermission','0008_auto_20180321_1224','2018-04-04 07:25:03.168592'),(74,'admin','0001_initial','2018-04-04 07:25:05.548946'),(75,'admin','0002_logentry_remove_auto_add','2018-04-04 07:25:05.683179'),(76,'authtoken','0001_initial','2018-04-04 07:25:06.787707'),(77,'authtoken','0002_auto_20160226_1747','2018-04-04 07:25:07.831313'),(78,'sites','0001_initial','2018-04-04 07:25:08.218815'),(79,'django_comments','0001_initial','2018-04-04 07:25:14.330318'),(80,'django_comments','0002_update_user_email_field_length','2018-04-04 07:25:14.624224'),(81,'django_comments','0003_add_submit_date_index','2018-04-04 07:25:14.974305'),(82,'django_comments_xtd','0001_initial','2018-04-04 07:25:16.710744'),(83,'django_comments_xtd','0002_blacklisteddomain','2018-04-04 07:25:17.305348'),(84,'django_comments_xtd','0003_auto_20170220_1333','2018-04-04 07:25:17.362431'),(85,'django_comments_xtd','0004_auto_20170221_1510','2018-04-04 07:25:17.418639'),(86,'django_comments_xtd','0005_auto_20170920_1247','2018-04-04 07:25:17.479251'),(87,'forum','0001_initial','2018-04-04 07:25:21.156469'),(88,'forum_conversation','0001_initial','2018-04-04 07:25:30.497896'),(89,'forum_conversation','0002_post_anonymous_key','2018-04-04 07:25:31.601384'),(90,'forum_conversation','0003_auto_20160228_2051','2018-04-04 07:25:31.666206'),(91,'forum_conversation','0004_auto_20160427_0502','2018-04-04 07:25:33.656587'),(92,'forum_conversation','0005_auto_20160607_0455','2018-04-04 07:25:34.249776'),(93,'forum_conversation','0006_post_enable_signature','2018-04-04 07:25:35.560595'),(94,'forum_conversation','0007_auto_20160903_0450','2018-04-04 07:25:39.567182'),(95,'forum_conversation','0008_auto_20160903_0512','2018-04-04 07:25:39.641987'),(96,'forum_conversation','0009_auto_20160925_2126','2018-04-04 07:25:39.805376'),(97,'forum_conversation','0010_auto_20170120_0224','2018-04-04 07:25:41.461324'),(98,'forum','0002_auto_20150725_0512','2018-04-04 07:25:41.515045'),(99,'forum','0003_remove_forum_is_active','2018-04-04 07:25:42.338341'),(100,'forum','0004_auto_20170504_2108','2018-04-04 07:25:44.195866'),(101,'forum','0005_auto_20170504_2113','2018-04-04 07:25:44.281628'),(102,'forum','0006_auto_20170523_2036','2018-04-04 07:25:45.840988'),(103,'forum','0007_auto_20170523_2140','2018-04-04 07:25:45.933914'),(104,'forum','0008_forum_last_post','2018-04-04 07:25:47.780581'),(105,'forum','0009_auto_20170928_2327','2018-04-04 07:25:47.866790'),(106,'forum_attachments','0001_initial','2018-04-04 07:25:49.102182'),(107,'forum_member','0001_initial','2018-04-04 07:25:50.130097'),(108,'forum_member','0002_auto_20160225_0515','2018-04-04 07:25:50.201956'),(109,'forum_member','0003_auto_20160227_2122','2018-04-04 07:25:50.277253'),(110,'forum_permission','0001_initial','2018-04-04 07:25:57.424527'),(111,'forum_permission','0002_auto_20160607_0500','2018-04-04 07:25:59.343077'),(112,'forum_permission','0003_remove_forumpermission_name','2018-04-04 07:25:59.904781'),(113,'forum_polls','0001_initial','2018-04-04 07:26:04.555206'),(114,'forum_polls','0002_auto_20151105_0029','2018-04-04 07:26:06.629738'),(115,'forum_tracking','0001_initial','2018-04-04 07:26:11.539169'),(116,'forum_tracking','0002_auto_20160607_0502','2018-04-04 07:26:12.313269'),(117,'reversion','0001_initial','2018-04-04 07:26:16.398899'),(118,'reversion','0002_auto_20141216_1509','2018-04-04 07:26:16.433291'),(119,'reversion','0003_auto_20160601_1600','2018-04-04 07:26:16.466361'),(120,'reversion','0004_auto_20160611_1202','2018-04-04 07:26:16.499703'),(121,'sessions','0001_initial','2018-04-04 07:26:17.259305'),(122,'sites','0002_alter_domain_unique','2018-04-04 07:26:17.526492'),(123,'default','0001_initial','2018-04-04 07:26:21.036455'),(124,'social_auth','0001_initial','2018-04-04 07:26:21.102886'),(125,'default','0002_add_related_name','2018-04-04 07:26:22.049036'),(126,'social_auth','0002_add_related_name','2018-04-04 07:26:22.090449'),(127,'default','0003_alter_email_max_length','2018-04-04 07:26:22.641866'),(128,'social_auth','0003_alter_email_max_length','2018-04-04 07:26:22.791388'),(129,'default','0004_auto_20160423_0400','2018-04-04 07:26:22.869150'),(130,'social_auth','0004_auto_20160423_0400','2018-04-04 07:26:22.949007'),(131,'social_auth','0005_auto_20160727_2333','2018-04-04 07:26:23.275091'),(132,'social_django','0006_partial','2018-04-04 07:26:24.053205'),(133,'social_django','0007_code_timestamp','2018-04-04 07:26:24.864359'),(134,'social_django','0008_partial_timestamp','2018-04-04 07:26:25.816915'),(135,'webcontent','0001_initial','2018-04-04 07:26:26.590366'),(136,'webcontent','0002_auto_20180124_1328','2018-04-04 07:26:28.644291'),(137,'webcontent','0003_auto_20180124_1452','2018-04-04 07:26:29.898139'),(138,'webcontent','0004_delete_faq','2018-04-04 07:26:30.356370'),(139,'webcontent','0005_faq','2018-04-04 07:26:30.894529'),(140,'webcontent','0006_faqcategory','2018-04-04 07:26:31.246438'),(141,'webcontent','0007_remove_faq_category','2018-04-04 07:26:31.703336'),(142,'webcontent','0008_faq_category','2018-04-04 07:26:33.207016'),(143,'webcontent','0009_faq_order','2018-04-04 07:26:33.752222'),(144,'webcontent','0010_remove_faq_order','2018-04-04 07:26:34.378431'),(145,'webcontent','0011_faq_order','2018-04-04 07:26:34.964232'),(146,'webcontent','0012_auto_20180125_1628','2018-04-04 07:26:35.635409'),(147,'webcontent','0013_auto_20180125_1634','2018-04-04 07:26:36.453553'),(148,'webcontent','0014_auto_20180125_1636','2018-04-04 07:26:36.580096'),(149,'webcontent','0015_auto_20180125_1643','2018-04-04 07:26:37.566563'),(150,'workflow','0002_transitions_role','2018-04-04 07:26:39.694643'),(151,'workflow','0003_auto_20180108_1348','2018-04-04 07:26:43.257516'),(152,'workflow','0004_auto_20180108_1504','2018-04-04 07:26:44.762688'),(153,'social_django','0003_alter_email_max_length','2018-04-04 07:26:44.808055'),(154,'reversion','0001_squashed_0004_auto_20160611_1202','2018-04-04 07:26:44.855162'),(155,'social_django','0001_initial','2018-04-04 07:26:44.905260'),(156,'social_django','0002_add_related_name','2018-04-04 07:26:44.971973'),(157,'social_django','0005_auto_20160727_2333','2018-04-04 07:26:45.030492'),(158,'social_django','0004_auto_20160423_0400','2018-04-04 07:26:45.071945'); +/*!40000 ALTER TABLE `django_migrations` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `django_session` +-- + +DROP TABLE IF EXISTS `django_session`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_session` ( + `session_key` varchar(40) NOT NULL, + `session_data` longtext NOT NULL, + `expire_date` datetime(6) NOT NULL, + PRIMARY KEY (`session_key`), + KEY `django_session_expire_date_a5c62663` (`expire_date`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `django_session` +-- + +LOCK TABLES `django_session` WRITE; +/*!40000 ALTER TABLE `django_session` DISABLE KEYS */; +INSERT INTO `django_session` VALUES ('0wz6ek4n5ozackhh8lqm1jgc9bicervf','ZmVkMGM4ODVmN2UwYTZhZmJmZjJmYzI0YWNiODA1MzI3MGFhNDJjMjp7Il9hbm9ueW1vdXNfZm9ydW1fa2V5IjoiMmZjNGQwNDUyNTllNGFkZmJiZjAzNjM5M2VhZjJmODIifQ==','2018-04-06 13:59:54.001167'),('zv6orfgi8o7utx5ayrzl00q5stxechmu','Yjk3MTlhMzdkYWI4ODE5MzRhNjBhZjhiNjMxNWE1Y2Q1ZmY4MWNiODp7Il9hdXRoX3VzZXJfYmFja2VuZCI6ImRqYW5nby5jb250cmliLmF1dGguYmFja2VuZHMuTW9kZWxCYWNrZW5kIiwiX2F1dGhfdXNlcl9pZCI6IjEiLCJfYW5vbnltb3VzX2ZvcnVtX2tleSI6IjFhMmMyMWVmMTUwYzQ1ZWM5NDFjYTkzYzdmM2JmZGJlIiwiX2F1dGhfdXNlcl9oYXNoIjoiNjg3YmQ4YTRkYTA1MjhkNGJhMzAyYzViYTA4NzVlYTAxZGVkYjQ0MyJ9','2018-04-04 08:03:55.223770'); +/*!40000 ALTER TABLE `django_session` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `django_site` +-- + +DROP TABLE IF EXISTS `django_site`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_site` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `domain` varchar(100) NOT NULL, + `name` varchar(50) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `django_site_domain_a2e37b91_uniq` (`domain`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `django_site` +-- + +LOCK TABLES `django_site` WRITE; +/*!40000 ALTER TABLE `django_site` DISABLE KEYS */; +INSERT INTO `django_site` VALUES (1,'example.com','example.com'); +/*!40000 ALTER TABLE `django_site` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `forum_attachments_attachment` +-- + +DROP TABLE IF EXISTS `forum_attachments_attachment`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `forum_attachments_attachment` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `file` varchar(100) NOT NULL, + `comment` varchar(255) DEFAULT NULL, + `post_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `forum_attachments_at_post_id_0476a843_fk_forum_con` (`post_id`), + CONSTRAINT `forum_attachments_at_post_id_0476a843_fk_forum_con` FOREIGN KEY (`post_id`) REFERENCES `forum_conversation_post` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `forum_attachments_attachment` +-- + +LOCK TABLES `forum_attachments_attachment` WRITE; +/*!40000 ALTER TABLE `forum_attachments_attachment` DISABLE KEYS */; +/*!40000 ALTER TABLE `forum_attachments_attachment` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `forum_conversation_post` +-- + +DROP TABLE IF EXISTS `forum_conversation_post`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `forum_conversation_post` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `updated` datetime(6) NOT NULL, + `poster_ip` char(39) DEFAULT NULL, + `subject` varchar(255) NOT NULL, + `content` longtext NOT NULL, + `username` varchar(155) DEFAULT NULL, + `approved` tinyint(1) NOT NULL, + `update_reason` varchar(255) DEFAULT NULL, + `updates_count` int(10) unsigned NOT NULL, + `_content_rendered` longtext, + `poster_id` int(11) DEFAULT NULL, + `topic_id` int(11) NOT NULL, + `updated_by_id` int(11) DEFAULT NULL, + `anonymous_key` varchar(100) DEFAULT NULL, + `enable_signature` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + KEY `forum_conversation_post_poster_id_19c4e995_fk_auth_user_id` (`poster_id`), + KEY `forum_conversation_p_topic_id_f6aaa418_fk_forum_con` (`topic_id`), + KEY `forum_conversation_post_updated_by_id_86093355_fk_auth_user_id` (`updated_by_id`), + KEY `forum_conversation_post_approved_a1090910` (`approved`), + KEY `forum_conversation_post_enable_signature_b1ce8b55` (`enable_signature`), + CONSTRAINT `forum_conversation_p_topic_id_f6aaa418_fk_forum_con` FOREIGN KEY (`topic_id`) REFERENCES `forum_conversation_topic` (`id`), + CONSTRAINT `forum_conversation_post_poster_id_19c4e995_fk_auth_user_id` FOREIGN KEY (`poster_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `forum_conversation_post_updated_by_id_86093355_fk_auth_user_id` FOREIGN KEY (`updated_by_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `forum_conversation_post` +-- + +LOCK TABLES `forum_conversation_post` WRITE; +/*!40000 ALTER TABLE `forum_conversation_post` DISABLE KEYS */; +/*!40000 ALTER TABLE `forum_conversation_post` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `forum_conversation_topic` +-- + +DROP TABLE IF EXISTS `forum_conversation_topic`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `forum_conversation_topic` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `updated` datetime(6) NOT NULL, + `subject` varchar(255) NOT NULL, + `slug` varchar(255) NOT NULL, + `type` smallint(5) unsigned NOT NULL, + `status` int(10) unsigned NOT NULL, + `approved` tinyint(1) NOT NULL, + `posts_count` int(10) unsigned NOT NULL, + `views_count` int(10) unsigned NOT NULL, + `last_post_on` datetime(6) DEFAULT NULL, + `forum_id` int(11) NOT NULL, + `poster_id` int(11) DEFAULT NULL, + `first_post_id` int(11) DEFAULT NULL, + `last_post_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `forum_conversation_topic_forum_id_e9cfe592_fk_forum_forum_id` (`forum_id`), + KEY `forum_conversation_topic_poster_id_0dd4fa07_fk_auth_user_id` (`poster_id`), + KEY `forum_conversation_topic_slug_c74ce2cc` (`slug`), + KEY `forum_conversation_topic_type_92971eb5` (`type`), + KEY `forum_conversation_topic_status_e78d0ae4` (`status`), + KEY `forum_conversation_topic_approved_ad3fcbf9` (`approved`), + KEY `forum_conversation_t_last_post_id_e14396a2_fk_forum_con` (`last_post_id`), + KEY `forum_conversation_t_first_post_id_ca473bd1_fk_forum_con` (`first_post_id`), + CONSTRAINT `forum_conversation_t_first_post_id_ca473bd1_fk_forum_con` FOREIGN KEY (`first_post_id`) REFERENCES `forum_conversation_post` (`id`), + CONSTRAINT `forum_conversation_t_last_post_id_e14396a2_fk_forum_con` FOREIGN KEY (`last_post_id`) REFERENCES `forum_conversation_post` (`id`), + CONSTRAINT `forum_conversation_topic_forum_id_e9cfe592_fk_forum_forum_id` FOREIGN KEY (`forum_id`) REFERENCES `forum_forum` (`id`), + CONSTRAINT `forum_conversation_topic_poster_id_0dd4fa07_fk_auth_user_id` FOREIGN KEY (`poster_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `forum_conversation_topic` +-- + +LOCK TABLES `forum_conversation_topic` WRITE; +/*!40000 ALTER TABLE `forum_conversation_topic` DISABLE KEYS */; +/*!40000 ALTER TABLE `forum_conversation_topic` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `forum_conversation_topic_subscribers` +-- + +DROP TABLE IF EXISTS `forum_conversation_topic_subscribers`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `forum_conversation_topic_subscribers` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `topic_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `forum_conversation_topic_topic_id_user_id_b2c961d5_uniq` (`topic_id`,`user_id`), + KEY `forum_conversation_t_user_id_7e386a79_fk_auth_user` (`user_id`), + CONSTRAINT `forum_conversation_t_topic_id_34ebca87_fk_forum_con` FOREIGN KEY (`topic_id`) REFERENCES `forum_conversation_topic` (`id`), + CONSTRAINT `forum_conversation_t_user_id_7e386a79_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `forum_conversation_topic_subscribers` +-- + +LOCK TABLES `forum_conversation_topic_subscribers` WRITE; +/*!40000 ALTER TABLE `forum_conversation_topic_subscribers` DISABLE KEYS */; +/*!40000 ALTER TABLE `forum_conversation_topic_subscribers` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `forum_forum` +-- + +DROP TABLE IF EXISTS `forum_forum`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `forum_forum` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `updated` datetime(6) NOT NULL, + `name` varchar(100) NOT NULL, + `slug` varchar(255) NOT NULL, + `description` longtext, + `image` varchar(100) DEFAULT NULL, + `link` varchar(200) DEFAULT NULL, + `link_redirects` tinyint(1) NOT NULL, + `type` smallint(5) unsigned NOT NULL, + `link_redirects_count` int(10) unsigned NOT NULL, + `last_post_on` datetime(6) DEFAULT NULL, + `display_sub_forum_list` tinyint(1) NOT NULL, + `_description_rendered` longtext, + `lft` int(10) unsigned NOT NULL, + `rght` int(10) unsigned NOT NULL, + `tree_id` int(10) unsigned NOT NULL, + `level` int(10) unsigned NOT NULL, + `parent_id` int(11) DEFAULT NULL, + `direct_posts_count` int(10) unsigned NOT NULL, + `direct_topics_count` int(10) unsigned NOT NULL, + `last_post_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `forum_forum_slug_b9acc50d` (`slug`), + KEY `forum_forum_type_30239563` (`type`), + KEY `forum_forum_lft_ad1dea6a` (`lft`), + KEY `forum_forum_rght_72abf953` (`rght`), + KEY `forum_forum_tree_id_84a9227d` (`tree_id`), + KEY `forum_forum_level_8a349c84` (`level`), + KEY `forum_forum_parent_id_22edea05` (`parent_id`), + KEY `forum_forum_last_post_id_81b59e37_fk_forum_conversation_post_id` (`last_post_id`), + CONSTRAINT `forum_forum_last_post_id_81b59e37_fk_forum_conversation_post_id` FOREIGN KEY (`last_post_id`) REFERENCES `forum_conversation_post` (`id`), + CONSTRAINT `forum_forum_parent_id_22edea05_fk_forum_forum_id` FOREIGN KEY (`parent_id`) REFERENCES `forum_forum` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `forum_forum` +-- + +LOCK TABLES `forum_forum` WRITE; +/*!40000 ALTER TABLE `forum_forum` DISABLE KEYS */; +INSERT INTO `forum_forum` VALUES (1,'2018-04-04 07:31:19.601315','2018-04-04 07:31:19.601362','Collabortaion System','collabortaion-system','Collaborative Communities’ helps us to know what other communities can offer and share resources to achieve a common goal. This forum will help us disscuss about the system and its features that can be upgraded.','',NULL,0,0,0,NULL,1,'

Collaborative Communities’ helps us to know what other communities can offer and share resources to achieve a common goal. This forum will help us disscuss about the system and its features that can be upgraded.

',1,2,1,0,NULL,0,0,NULL); +/*!40000 ALTER TABLE `forum_forum` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `forum_member_forumprofile` +-- + +DROP TABLE IF EXISTS `forum_member_forumprofile`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `forum_member_forumprofile` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `avatar` varchar(100) DEFAULT NULL, + `signature` longtext, + `posts_count` int(10) unsigned NOT NULL, + `_signature_rendered` longtext, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `user_id` (`user_id`), + CONSTRAINT `forum_member_forumprofile_user_id_9d6b9b6b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `forum_member_forumprofile` +-- + +LOCK TABLES `forum_member_forumprofile` WRITE; +/*!40000 ALTER TABLE `forum_member_forumprofile` DISABLE KEYS */; +/*!40000 ALTER TABLE `forum_member_forumprofile` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `forum_permission_forumpermission` +-- + +DROP TABLE IF EXISTS `forum_permission_forumpermission`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `forum_permission_forumpermission` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `codename` varchar(150) NOT NULL, + `is_global` tinyint(1) NOT NULL, + `is_local` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `codename` (`codename`), + KEY `forum_permission_forumpermission_is_global_5772ce17` (`is_global`), + KEY `forum_permission_forumpermission_is_local_92cef3ca` (`is_local`) +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `forum_permission_forumpermission` +-- + +LOCK TABLES `forum_permission_forumpermission` WRITE; +/*!40000 ALTER TABLE `forum_permission_forumpermission` DISABLE KEYS */; +INSERT INTO `forum_permission_forumpermission` VALUES (1,'can_see_forum',1,1),(2,'can_read_forum',1,1),(3,'can_start_new_topics',1,1),(4,'can_reply_to_topics',1,1),(5,'can_post_announcements',1,1),(6,'can_post_stickies',1,1),(7,'can_delete_own_posts',1,1),(8,'can_edit_own_posts',1,1),(9,'can_post_without_approval',1,1),(10,'can_create_polls',1,1),(11,'can_vote_in_polls',1,1),(12,'can_attach_file',1,1),(13,'can_download_file',1,1),(14,'can_lock_topics',0,1),(15,'can_move_topics',0,1),(16,'can_edit_posts',0,1),(17,'can_delete_posts',0,1),(18,'can_approve_posts',0,1),(19,'can_reply_to_locked_topics',0,1); +/*!40000 ALTER TABLE `forum_permission_forumpermission` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `forum_permission_groupforumpermission` +-- + +DROP TABLE IF EXISTS `forum_permission_groupforumpermission`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `forum_permission_groupforumpermission` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `has_perm` tinyint(1) NOT NULL, + `forum_id` int(11) DEFAULT NULL, + `group_id` int(11) NOT NULL, + `permission_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `forum_permission_groupfo_permission_id_forum_id_g_a1e477c8_uniq` (`permission_id`,`forum_id`,`group_id`), + KEY `forum_permission_gro_forum_id_d59d5cac_fk_forum_for` (`forum_id`), + KEY `forum_permission_gro_group_id_b515635b_fk_auth_grou` (`group_id`), + KEY `forum_permission_groupforumpermission_has_perm_48cae01d` (`has_perm`), + CONSTRAINT `forum_permission_gro_forum_id_d59d5cac_fk_forum_for` FOREIGN KEY (`forum_id`) REFERENCES `forum_forum` (`id`), + CONSTRAINT `forum_permission_gro_group_id_b515635b_fk_auth_grou` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`), + CONSTRAINT `forum_permission_gro_permission_id_2475fe70_fk_forum_per` FOREIGN KEY (`permission_id`) REFERENCES `forum_permission_forumpermission` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `forum_permission_groupforumpermission` +-- + +LOCK TABLES `forum_permission_groupforumpermission` WRITE; +/*!40000 ALTER TABLE `forum_permission_groupforumpermission` DISABLE KEYS */; +INSERT INTO `forum_permission_groupforumpermission` VALUES (1,1,NULL,1,2),(2,1,NULL,1,3),(3,1,NULL,1,9),(4,1,NULL,1,8),(5,1,NULL,1,5),(6,1,NULL,1,1),(7,1,NULL,1,6),(8,1,NULL,1,7),(9,1,NULL,1,4); +/*!40000 ALTER TABLE `forum_permission_groupforumpermission` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `forum_permission_userforumpermission` +-- + +DROP TABLE IF EXISTS `forum_permission_userforumpermission`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `forum_permission_userforumpermission` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `has_perm` tinyint(1) NOT NULL, + `anonymous_user` tinyint(1) NOT NULL, + `forum_id` int(11) DEFAULT NULL, + `permission_id` int(11) NOT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `forum_permission_userfor_permission_id_forum_id_u_024a3693_uniq` (`permission_id`,`forum_id`,`user_id`), + KEY `forum_permission_use_forum_id_f781f4d6_fk_forum_for` (`forum_id`), + KEY `forum_permission_use_user_id_8106d02d_fk_auth_user` (`user_id`), + KEY `forum_permission_userforumpermission_anonymous_user_8aabbd9d` (`anonymous_user`), + KEY `forum_permission_userforumpermission_has_perm_1b5ee7ac` (`has_perm`), + CONSTRAINT `forum_permission_use_forum_id_f781f4d6_fk_forum_for` FOREIGN KEY (`forum_id`) REFERENCES `forum_forum` (`id`), + CONSTRAINT `forum_permission_use_permission_id_9090e930_fk_forum_per` FOREIGN KEY (`permission_id`) REFERENCES `forum_permission_forumpermission` (`id`), + CONSTRAINT `forum_permission_use_user_id_8106d02d_fk_auth_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `forum_permission_userforumpermission` +-- + +LOCK TABLES `forum_permission_userforumpermission` WRITE; +/*!40000 ALTER TABLE `forum_permission_userforumpermission` DISABLE KEYS */; +INSERT INTO `forum_permission_userforumpermission` VALUES (1,1,1,NULL,1,NULL),(2,1,1,NULL,2,NULL); +/*!40000 ALTER TABLE `forum_permission_userforumpermission` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `forum_polls_topicpoll` +-- + +DROP TABLE IF EXISTS `forum_polls_topicpoll`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `forum_polls_topicpoll` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `created` datetime(6) NOT NULL, + `updated` datetime(6) NOT NULL, + `question` varchar(255) NOT NULL, + `duration` int(10) unsigned DEFAULT NULL, + `max_options` smallint(5) unsigned NOT NULL, + `user_changes` tinyint(1) NOT NULL, + `topic_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `topic_id` (`topic_id`), + CONSTRAINT `forum_polls_topicpol_topic_id_1b827b83_fk_forum_con` FOREIGN KEY (`topic_id`) REFERENCES `forum_conversation_topic` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `forum_polls_topicpoll` +-- + +LOCK TABLES `forum_polls_topicpoll` WRITE; +/*!40000 ALTER TABLE `forum_polls_topicpoll` DISABLE KEYS */; +/*!40000 ALTER TABLE `forum_polls_topicpoll` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `forum_polls_topicpolloption` +-- + +DROP TABLE IF EXISTS `forum_polls_topicpolloption`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `forum_polls_topicpolloption` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `text` varchar(255) NOT NULL, + `poll_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `forum_polls_topicpol_poll_id_a54cbd58_fk_forum_pol` (`poll_id`), + CONSTRAINT `forum_polls_topicpol_poll_id_a54cbd58_fk_forum_pol` FOREIGN KEY (`poll_id`) REFERENCES `forum_polls_topicpoll` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `forum_polls_topicpolloption` +-- + +LOCK TABLES `forum_polls_topicpolloption` WRITE; +/*!40000 ALTER TABLE `forum_polls_topicpolloption` DISABLE KEYS */; +/*!40000 ALTER TABLE `forum_polls_topicpolloption` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `forum_polls_topicpollvote` +-- + +DROP TABLE IF EXISTS `forum_polls_topicpollvote`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `forum_polls_topicpollvote` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `timestamp` datetime(6) NOT NULL, + `poll_option_id` int(11) NOT NULL, + `voter_id` int(11) DEFAULT NULL, + `anonymous_key` varchar(100) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `forum_polls_topicpol_poll_option_id_a075b665_fk_forum_pol` (`poll_option_id`), + KEY `forum_polls_topicpollvote_voter_id_0a287559_fk_auth_user_id` (`voter_id`), + CONSTRAINT `forum_polls_topicpol_poll_option_id_a075b665_fk_forum_pol` FOREIGN KEY (`poll_option_id`) REFERENCES `forum_polls_topicpolloption` (`id`), + CONSTRAINT `forum_polls_topicpollvote_voter_id_0a287559_fk_auth_user_id` FOREIGN KEY (`voter_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `forum_polls_topicpollvote` +-- + +LOCK TABLES `forum_polls_topicpollvote` WRITE; +/*!40000 ALTER TABLE `forum_polls_topicpollvote` DISABLE KEYS */; +/*!40000 ALTER TABLE `forum_polls_topicpollvote` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `forum_tracking_forumreadtrack` +-- + +DROP TABLE IF EXISTS `forum_tracking_forumreadtrack`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `forum_tracking_forumreadtrack` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `mark_time` datetime(6) NOT NULL, + `forum_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `forum_tracking_forumreadtrack_user_id_forum_id_3e64777a_uniq` (`user_id`,`forum_id`), + KEY `forum_tracking_forum_forum_id_bbd3fb47_fk_forum_for` (`forum_id`), + KEY `forum_tracking_forumreadtrack_mark_time_72eec39e` (`mark_time`), + CONSTRAINT `forum_tracking_forum_forum_id_bbd3fb47_fk_forum_for` FOREIGN KEY (`forum_id`) REFERENCES `forum_forum` (`id`), + CONSTRAINT `forum_tracking_forumreadtrack_user_id_932d4605_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `forum_tracking_forumreadtrack` +-- + +LOCK TABLES `forum_tracking_forumreadtrack` WRITE; +/*!40000 ALTER TABLE `forum_tracking_forumreadtrack` DISABLE KEYS */; +/*!40000 ALTER TABLE `forum_tracking_forumreadtrack` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `forum_tracking_topicreadtrack` +-- + +DROP TABLE IF EXISTS `forum_tracking_topicreadtrack`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `forum_tracking_topicreadtrack` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `mark_time` datetime(6) NOT NULL, + `topic_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `forum_tracking_topicreadtrack_user_id_topic_id_6fe3e105_uniq` (`user_id`,`topic_id`), + KEY `forum_tracking_topic_topic_id_9a53bd45_fk_forum_con` (`topic_id`), + KEY `forum_tracking_topicreadtrack_mark_time_7dafc483` (`mark_time`), + CONSTRAINT `forum_tracking_topic_topic_id_9a53bd45_fk_forum_con` FOREIGN KEY (`topic_id`) REFERENCES `forum_conversation_topic` (`id`), + CONSTRAINT `forum_tracking_topicreadtrack_user_id_2762562b_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `forum_tracking_topicreadtrack` +-- + +LOCK TABLES `forum_tracking_topicreadtrack` WRITE; +/*!40000 ALTER TABLE `forum_tracking_topicreadtrack` DISABLE KEYS */; +/*!40000 ALTER TABLE `forum_tracking_topicreadtrack` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `reversion_revision` +-- + +DROP TABLE IF EXISTS `reversion_revision`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `reversion_revision` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `date_created` datetime(6) NOT NULL, + `comment` longtext NOT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `reversion_revision_user_id_17095f45_fk_auth_user_id` (`user_id`), + KEY `reversion_revision_date_created_96f7c20c` (`date_created`), + CONSTRAINT `reversion_revision_user_id_17095f45_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `reversion_revision` +-- + +LOCK TABLES `reversion_revision` WRITE; +/*!40000 ALTER TABLE `reversion_revision` DISABLE KEYS */; +/*!40000 ALTER TABLE `reversion_revision` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `reversion_version` +-- + +DROP TABLE IF EXISTS `reversion_version`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `reversion_version` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `object_id` varchar(191) NOT NULL, + `format` varchar(255) NOT NULL, + `serialized_data` longtext NOT NULL, + `object_repr` longtext NOT NULL, + `content_type_id` int(11) NOT NULL, + `revision_id` int(11) NOT NULL, + `db` varchar(191) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `reversion_version_db_content_type_id_objec_b2c54f65_uniq` (`db`,`content_type_id`,`object_id`,`revision_id`), + KEY `reversion_version_content_type_id_7d0ff25c_fk_django_co` (`content_type_id`), + KEY `reversion_version_revision_id_af9f6a9d_fk_reversion_revision_id` (`revision_id`), + CONSTRAINT `reversion_version_content_type_id_7d0ff25c_fk_django_co` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`), + CONSTRAINT `reversion_version_revision_id_af9f6a9d_fk_reversion_revision_id` FOREIGN KEY (`revision_id`) REFERENCES `reversion_revision` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `reversion_version` +-- + +LOCK TABLES `reversion_version` WRITE; +/*!40000 ALTER TABLE `reversion_version` DISABLE KEYS */; +/*!40000 ALTER TABLE `reversion_version` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `social_auth_association` +-- + +DROP TABLE IF EXISTS `social_auth_association`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `social_auth_association` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `server_url` varchar(255) NOT NULL, + `handle` varchar(255) NOT NULL, + `secret` varchar(255) NOT NULL, + `issued` int(11) NOT NULL, + `lifetime` int(11) NOT NULL, + `assoc_type` varchar(64) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `social_auth_association_server_url_handle_078befa2_uniq` (`server_url`,`handle`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `social_auth_association` +-- + +LOCK TABLES `social_auth_association` WRITE; +/*!40000 ALTER TABLE `social_auth_association` DISABLE KEYS */; +/*!40000 ALTER TABLE `social_auth_association` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `social_auth_code` +-- + +DROP TABLE IF EXISTS `social_auth_code`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `social_auth_code` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `email` varchar(254) NOT NULL, + `code` varchar(32) NOT NULL, + `verified` tinyint(1) NOT NULL, + `timestamp` datetime(6) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `social_auth_code_email_code_801b2d02_uniq` (`email`,`code`), + KEY `social_auth_code_code_a2393167` (`code`), + KEY `social_auth_code_timestamp_176b341f` (`timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `social_auth_code` +-- + +LOCK TABLES `social_auth_code` WRITE; +/*!40000 ALTER TABLE `social_auth_code` DISABLE KEYS */; +/*!40000 ALTER TABLE `social_auth_code` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `social_auth_nonce` +-- + +DROP TABLE IF EXISTS `social_auth_nonce`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `social_auth_nonce` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `server_url` varchar(255) NOT NULL, + `timestamp` int(11) NOT NULL, + `salt` varchar(65) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `social_auth_nonce_server_url_timestamp_salt_f6284463_uniq` (`server_url`,`timestamp`,`salt`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `social_auth_nonce` +-- + +LOCK TABLES `social_auth_nonce` WRITE; +/*!40000 ALTER TABLE `social_auth_nonce` DISABLE KEYS */; +/*!40000 ALTER TABLE `social_auth_nonce` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `social_auth_partial` +-- + +DROP TABLE IF EXISTS `social_auth_partial`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `social_auth_partial` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `token` varchar(32) NOT NULL, + `next_step` smallint(5) unsigned NOT NULL, + `backend` varchar(32) NOT NULL, + `data` longtext NOT NULL, + `timestamp` datetime(6) NOT NULL, + PRIMARY KEY (`id`), + KEY `social_auth_partial_token_3017fea3` (`token`), + KEY `social_auth_partial_timestamp_50f2119f` (`timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `social_auth_partial` +-- + +LOCK TABLES `social_auth_partial` WRITE; +/*!40000 ALTER TABLE `social_auth_partial` DISABLE KEYS */; +/*!40000 ALTER TABLE `social_auth_partial` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `social_auth_usersocialauth` +-- + +DROP TABLE IF EXISTS `social_auth_usersocialauth`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `social_auth_usersocialauth` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `provider` varchar(32) NOT NULL, + `uid` varchar(255) NOT NULL, + `extra_data` longtext NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `social_auth_usersocialauth_provider_uid_e6b5e668_uniq` (`provider`,`uid`), + KEY `social_auth_usersocialauth_user_id_17d28448_fk_auth_user_id` (`user_id`), + CONSTRAINT `social_auth_usersocialauth_user_id_17d28448_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `social_auth_usersocialauth` +-- + +LOCK TABLES `social_auth_usersocialauth` WRITE; +/*!40000 ALTER TABLE `social_auth_usersocialauth` DISABLE KEYS */; +/*!40000 ALTER TABLE `social_auth_usersocialauth` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `webcontent_faq` +-- + +DROP TABLE IF EXISTS `webcontent_faq`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `webcontent_faq` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `question` varchar(200) NOT NULL, + `answer` longtext NOT NULL, + `category_id` int(11) DEFAULT NULL, + `flow` double NOT NULL, + PRIMARY KEY (`id`), + KEY `webcontent_faq_category_id_b92f315f_fk_webcontent_faqcategory_id` (`category_id`), + CONSTRAINT `webcontent_faq_category_id_b92f315f_fk_webcontent_faqcategory_id` FOREIGN KEY (`category_id`) REFERENCES `webcontent_faqcategory` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `webcontent_faq` +-- + +LOCK TABLES `webcontent_faq` WRITE; +/*!40000 ALTER TABLE `webcontent_faq` DISABLE KEYS */; +/*!40000 ALTER TABLE `webcontent_faq` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `webcontent_faqcategory` +-- + +DROP TABLE IF EXISTS `webcontent_faqcategory`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `webcontent_faqcategory` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `desc` longtext NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `webcontent_faqcategory` +-- + +LOCK TABLES `webcontent_faqcategory` WRITE; +/*!40000 ALTER TABLE `webcontent_faqcategory` DISABLE KEYS */; +INSERT INTO `webcontent_faqcategory` VALUES (1,'General','General faq question'),(2,'Community','Category for community faqs.'),(3,'Group','category for groups faq'),(4,'Resource','category for resource faqs'),(5,'Roles and Permissions','categories for roles'),(6,'Workflow','category for workflow'); +/*!40000 ALTER TABLE `webcontent_faqcategory` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `webcontent_feedback` +-- + +DROP TABLE IF EXISTS `webcontent_feedback`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `webcontent_feedback` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `title` varchar(100) NOT NULL, + `body` longtext NOT NULL, + `provided_at` datetime(6) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `webcontent_feedback_user_id_943add81_fk_auth_user_id` (`user_id`), + CONSTRAINT `webcontent_feedback_user_id_943add81_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `webcontent_feedback` +-- + +LOCK TABLES `webcontent_feedback` WRITE; +/*!40000 ALTER TABLE `webcontent_feedback` DISABLE KEYS */; +/*!40000 ALTER TABLE `webcontent_feedback` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workflow_states` +-- + +DROP TABLE IF EXISTS `workflow_states`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workflow_states` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) DEFAULT NULL, + `desc` longtext, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workflow_states` +-- + +LOCK TABLES `workflow_states` WRITE; +/*!40000 ALTER TABLE `workflow_states` DISABLE KEYS */; +INSERT INTO `workflow_states` VALUES (1,'draft','save as draft state'),(2,'visible','this state make the content visible to community'),(3,'publish','save as visible state'),(4,'private','this state make the content visible to group'),(5,'publishable','this content makes the content ready for publishing'); +/*!40000 ALTER TABLE `workflow_states` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `workflow_transitions` +-- + +DROP TABLE IF EXISTS `workflow_transitions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `workflow_transitions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) DEFAULT NULL, + `from_state_id` int(11) DEFAULT NULL, + `to_state_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `workflow_transitions_from_state_id_5ff9ea9d_fk_workflow_` (`from_state_id`), + KEY `workflow_transitions_to_state_id_8d6c5cc6_fk_workflow_states_id` (`to_state_id`), + CONSTRAINT `workflow_transitions_from_state_id_5ff9ea9d_fk_workflow_` FOREIGN KEY (`from_state_id`) REFERENCES `workflow_states` (`id`), + CONSTRAINT `workflow_transitions_to_state_id_8d6c5cc6_fk_workflow_states_id` FOREIGN KEY (`to_state_id`) REFERENCES `workflow_states` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `workflow_transitions` +-- + +LOCK TABLES `workflow_transitions` WRITE; +/*!40000 ALTER TABLE `workflow_transitions` DISABLE KEYS */; +INSERT INTO `workflow_transitions` VALUES (1,'Make Visible to Group',1,4),(3,'Make Visible to Community',4,2),(4,'Ready for Publishing',2,5),(5,'Publish',5,3); +/*!40000 ALTER TABLE `workflow_transitions` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2018-04-06 19:00:53 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100755 index 0000000..6b95d6f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,20 @@ +version: '3' + +services: + db: + image: mysql:5.7 + environment: + MYSQL_ROOT_PASSWORD: root + MYSQL_DATABASE: django + MYSQL_HOST: localhost + MYSQL_USER: django + MYSQL_PASSWORD: django + ports: + - "3306:3306" + web: + build: . + command: python3 manage.py runserver 0.0.0.0:8000 + ports: + - "8000:8000" + depends_on: + - db diff --git a/manage.py b/manage.py new file mode 100755 index 0000000..7e81755 --- /dev/null +++ b/manage.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +import os +import sys + +if __name__ == "__main__": + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CollaborationSystem.settings") + try: + from django.core.management import execute_from_command_line + except ImportError: + # The above import may fail for some other reason. Ensure that the + # issue is really that Django is missing to avoid masking other + # exceptions on Python 2. + try: + import django + except ImportError: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) + raise + execute_from_command_line(sys.argv) diff --git a/media/course/75c35087-dea9-4d28-8848-a5bdc546f757.jpg b/media/course/75c35087-dea9-4d28-8848-a5bdc546f757.jpg new file mode 100644 index 0000000..ce894cd Binary files /dev/null and b/media/course/75c35087-dea9-4d28-8848-a5bdc546f757.jpg differ diff --git a/media/course/b6373df9-89b9-4b4e-b6eb-ce358b75bcb0.jpg b/media/course/b6373df9-89b9-4b4e-b6eb-ce358b75bcb0.jpg new file mode 100644 index 0000000..2cd78c3 Binary files /dev/null and b/media/course/b6373df9-89b9-4b4e-b6eb-ce358b75bcb0.jpg differ diff --git a/media/default/article_image_default.png b/media/default/article_image_default.png new file mode 100644 index 0000000..69c96ed Binary files /dev/null and b/media/default/article_image_default.png differ diff --git a/media/default/avatar.png b/media/default/avatar.png new file mode 100644 index 0000000..3b96c0a Binary files /dev/null and b/media/default/avatar.png differ diff --git a/media/default/community_image_default.png b/media/default/community_image_default.png new file mode 100644 index 0000000..d0aaa63 Binary files /dev/null and b/media/default/community_image_default.png differ diff --git a/media/default/course_image_default.png b/media/default/course_image_default.png new file mode 100644 index 0000000..45271d5 Binary files /dev/null and b/media/default/course_image_default.png differ diff --git a/media/default/group_image_default.png b/media/default/group_image_default.png new file mode 100644 index 0000000..078d758 Binary files /dev/null and b/media/default/group_image_default.png differ diff --git a/media/default/license.png b/media/default/license.png new file mode 100644 index 0000000..132e1ef Binary files /dev/null and b/media/default/license.png differ diff --git a/reputation/__init__.py b/reputation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/reputation/admin.py b/reputation/admin.py new file mode 100644 index 0000000..f61ec96 --- /dev/null +++ b/reputation/admin.py @@ -0,0 +1,6 @@ +from django.contrib import admin +from .models import SystemRep,CommunityRep,DefaultValues + +admin.site.register(SystemRep) +admin.site.register(CommunityRep) +admin.site.register(DefaultValues) diff --git a/reputation/apps.py b/reputation/apps.py new file mode 100644 index 0000000..b4e0158 --- /dev/null +++ b/reputation/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class ReputationConfig(AppConfig): + name = 'reputation' diff --git a/reputation/migrations/0001_initial.py b/reputation/migrations/0001_initial.py new file mode 100644 index 0000000..6a85d64 --- /dev/null +++ b/reputation/migrations/0001_initial.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2018-06-05 08:25 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('Community', '0025_communitycourses_community'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='CommunityRep', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('rep', models.PositiveIntegerField(default=0)), + ('community', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='Community.Community')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + migrations.CreateModel( + name='SystemRep', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('sysrep', models.PositiveIntegerField(default=0)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/reputation/migrations/0002_auto_20180605_0831.py b/reputation/migrations/0002_auto_20180605_0831.py new file mode 100644 index 0000000..9f1db9d --- /dev/null +++ b/reputation/migrations/0002_auto_20180605_0831.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2018-06-05 08:31 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('reputation', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='communityrep', + name='rep', + field=models.IntegerField(default=0), + ), + migrations.AlterField( + model_name='systemrep', + name='sysrep', + field=models.IntegerField(default=0), + ), + ] diff --git a/reputation/migrations/0003_auto_20180607_0543.py b/reputation/migrations/0003_auto_20180607_0543.py new file mode 100644 index 0000000..c13f906 --- /dev/null +++ b/reputation/migrations/0003_auto_20180607_0543.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2018-06-07 05:43 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('reputation', '0002_auto_20180605_0831'), + ] + + operations = [ + migrations.CreateModel( + name='DefaultValues', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('upvote', models.PositiveIntegerField(default=1)), + ('downvote', models.PositiveIntegerField(default=1)), + ('published_author', models.PositiveIntegerField()), + ('published_publisher', models.PositiveIntegerField()), + ('comment_flag', models.PositiveIntegerField()), + ('reply', models.PositiveIntegerField()), + ('crep_for_art', models.PositiveIntegerField()), + ('srep_for_art', models.PositiveIntegerField()), + ('srep_for_comm', models.PositiveIntegerField()), + ('srep_for_comm_creation', models.PositiveIntegerField()), + ], + ), + migrations.AlterField( + model_name='systemrep', + name='sysrep', + field=models.IntegerField(default=100), + ), + ] diff --git a/reputation/migrations/0004_auto_20180611_1342.py b/reputation/migrations/0004_auto_20180611_1342.py new file mode 100644 index 0000000..7724cb3 --- /dev/null +++ b/reputation/migrations/0004_auto_20180611_1342.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2018-06-11 13:42 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('reputation', '0003_auto_20180607_0543'), + ] + + operations = [ + migrations.RenameField( + model_name='defaultvalues', + old_name='crep_for_art', + new_name='min_crep_for_art', + ), + migrations.RenameField( + model_name='defaultvalues', + old_name='srep_for_art', + new_name='min_srep_for_art', + ), + migrations.RenameField( + model_name='defaultvalues', + old_name='srep_for_comm', + new_name='min_srep_for_comm', + ), + ] diff --git a/reputation/migrations/0005_auto_20180611_1412.py b/reputation/migrations/0005_auto_20180611_1412.py new file mode 100644 index 0000000..7f4d6de --- /dev/null +++ b/reputation/migrations/0005_auto_20180611_1412.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2018-06-11 14:12 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('reputation', '0004_auto_20180611_1342'), + ] + + operations = [ + migrations.AddField( + model_name='defaultvalues', + name='threshold_cadmin', + field=models.PositiveIntegerField(default=0), + ), + migrations.AddField( + model_name='defaultvalues', + name='threshold_publisher', + field=models.PositiveIntegerField(default=0), + ), + ] diff --git a/reputation/migrations/__init__.py b/reputation/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/reputation/models.py b/reputation/models.py new file mode 100644 index 0000000..bce8ae5 --- /dev/null +++ b/reputation/models.py @@ -0,0 +1,35 @@ +from django.db import models +from Community.models import Community +from django.contrib.auth.models import User +import os + +class CommunityRep(models.Model): + community = models.ForeignKey(Community ,on_delete = models.CASCADE) + user = models.ForeignKey(User , on_delete = models.CASCADE) + rep = models.IntegerField(default = 0) + + def __str__(self): + return self.community.name + "-" + self.user.username + +class SystemRep(models.Model): + user = models.OneToOneField(User,on_delete = models.CASCADE) + sysrep = models.IntegerField(default = 100) + + def __str__(self): + return self.user.username + +class DefaultValues(models.Model): + upvote = models.PositiveIntegerField(default=1) + downvote = models.PositiveIntegerField(default=1) + published_author = models.PositiveIntegerField() + published_publisher = models.PositiveIntegerField() + comment_flag = models.PositiveIntegerField() + reply = models.PositiveIntegerField() + min_crep_for_art = models.PositiveIntegerField() + min_srep_for_comm = models.PositiveIntegerField() + srep_for_comm_creation = models.PositiveIntegerField() + threshold_publisher = models.PositiveIntegerField(default=0) + threshold_cadmin = models.PositiveIntegerField(default=0) + + def __str__(self): + return "Default Values" diff --git a/reputation/tests.py b/reputation/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/reputation/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/reputation/views.py b/reputation/views.py new file mode 100644 index 0000000..79a748f --- /dev/null +++ b/reputation/views.py @@ -0,0 +1,132 @@ +from django.shortcuts import render,redirect +from .models import SystemRep,CommunityRep,DefaultValues +from Community.models import CommunityArticles,CommunityGroups, CommunityMembership +from Group.models import GroupArticles +from BasicArticle.models import Articles +from django.contrib.auth.models import User +from django.contrib.auth.models import Group as Roles + +# Create your views here. + +def CommunityReputation(a_id,votetype): + commart = CommunityArticles.objects.filter(article_id=a_id).exists() + art = Articles.objects.get(pk = a_id) + author = art.created_by + if(commart is False): + grpart = GroupArticles.objects.get(article_id=a_id) + grp = grpart.group + community = CommunityGroups.objects.get(group_id=grp.id) + else: + commart = CommunityArticles.objects.get(article_id=a_id) + community = commart.community + + commrep = CommunityRep.objects.get(community_id=community.id, user_id=author.id) + sysrep = SystemRep.objects.get(user_id=author.id) + defaultval = DefaultValues.objects.get(pk=1) + up=defaultval.upvote + down=defaultval.downvote + if(votetype==1): + commrep.rep+=up + sysrep.sysrep+=up + elif(votetype==3): + commrep.rep-=down + sysrep.sysrep-=down + elif(votetype==2): + commrep.rep+=down+up + sysrep.sysrep+=down+up + elif(votetype==4): + commrep.rep=commrep.rep-down-up + sysrep.sysrep=sysrep.sysrep-down-up + elif(votetype==5): + commrep.rep-=up + sysrep.sysrep-=up + else: + commrep.rep+=down + sysrep.sysrep+=down + if(commrep.rep >= defaultval.threshold_cadmin): + community_membership = CommunityMembership.objects.get(user_id=author.id,community_id=community.id) + community_membership.role = Roles.objects.get(name='community_admin') + community_membership.save() + elif(commrep.rep >= defaultval.threshold_publisher): + community_membership = CommunityMembership.objects.get(user_id=author.id,community_id=community.id) + role = Roles.objects.get(name='community_admin') + count_community_admin = CommunityMembership.objects.filter(role=role,community_id=community.id).count() + if(count_community_admin > 1) or (community_membership.role != role): + community_membership.role = Roles.objects.get(name='publisher') + community_membership.save() + else: + community_membership = CommunityMembership.objects.get(user_id=author.id,community_id=community.id) + community_membership.role = Roles.objects.get(name='author') + community_membership.save() + commrep.save() + sysrep.save() + + +def defaultval(request): + if request.method == 'POST': + upvote = int(request.POST.get('upvote')) + downvote = int(request.POST.get('downvote')) + published_author = int(request.POST.get('published_author')) + published_publisher = int(request.POST.get('published_publisher')) + #comment_flag = int(request.POST.get('comment_flag')) + #reply = int(request.POST.get('reply')) + new_min_crep_for_art = int(request.POST.get('min_crep_for_art')) + new_min_srep_for_comm = int(request.POST.get('min_srep_for_comm')) + srep_for_comm_creation = int(request.POST.get('srep_for_comm_creation')) + new_threshold_publisher = int(request.POST.get('threshold_publisher')) + new_threshold_cadmin = int(request.POST.get('threshold_cadmin')) + defaultval = DefaultValues.objects.get(pk=1) + defaultval.upvote = upvote + defaultval.downvote = downvote + defaultval.published_author = published_author + defaultval.published_publisher = published_publisher + defaultval.comment_flag = defaultval.comment_flag + defaultval.reply =reply + old_min_srep_for_comm = defaultval.min_srep_for_comm + if(old_min_srep_for_comm != new_min_srep_for_comm): + users = User.objects.all() + for user in users: + sysrep = SystemRep.objects.get(user=user) + old_sysrep = sysrep.sysrep + new_sysrep = new_min_srep_for_comm*old_sysrep/old_min_srep_for_comm + sysrep.sysrep = new_sysrep + sysrep.save() + defaultval.min_srep_for_comm = new_min_srep_for_comm + old_min_crep_for_art = defaultval.min_crep_for_art + if(old_min_crep_for_art != new_min_crep_for_art): + change(new_min_crep_for_art,old_min_crep_for_art) + defaultval.min_crep_for_art = new_min_crep_for_art + defaultval.srep_for_comm_creation = srep_for_comm_creation + old_threshold_publisher = defaultval.threshold_publisher + if(old_threshold_publisher != new_threshold_publisher): + change(new_threshold_publisher,old_threshold_publisher) + defaultval.threshold_publisher = new_threshold_publisher + old_threshold_cadmin = defaultval.threshold_cadmin + if(old_threshold_cadmin != new_threshold_cadmin): + change(new_threshold_cadmin,old_threshold_cadmin) + defaultval.threshold_cadmin = new_threshold_cadmin + defaultval.save() + return redirect('home') + else: + if request.user.is_superuser: + defaultval = DefaultValues.objects.get(pk=1) + return render(request,'defaultval.html',{'defaultval':defaultval}) + return redirect('home') + +def change(new,old): + users = User.objects.all() + for user in users: + commreps = CommunityRep.objects.filter(user=user) + for commrep in commreps: + old_commrep = commrep.rep + new_commrep = new*old_commrep/old + commrep.rep = new_commrep + sysrep = SystemRep.objects.get(user=user) + if(old_commrep < new_commrep): + change = new_commrep-old_commrep + sysrep.sysrep +=change + else: + change = old_commrep-new_commrep + sysrep.sysrep -= change + sysrep.save() + commrep.save() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..0fe093a --- /dev/null +++ b/requirements.txt @@ -0,0 +1,19 @@ +Django==1.11.7 +django-comments-xtd==2.0.9 +django-contrib-comments==1.8.0 +django-cors-headers==2.1.0 +django-haystack==2.6.1 +django-machina==0.6.0 +django-mptt==0.8.7 +django-reversion==2.0.10 +django-reversion-compare==0.8.1 +django-role-permissions==2.1.0 +django-taggit==0.22.1 +django-widget-tweaks==1.4.1 +djangorestframework==3.6.4 +gunicorn==19.7.1 +mysqlclient==1.3.12 +Pillow==4.3.0 +pysolr==3.7.0 +social-auth-app-django==2.1.0 +python-decouple==3.1 \ No newline at end of file diff --git a/search/__init__.py b/search/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/search/apps.py b/search/apps.py new file mode 100644 index 0000000..5726231 --- /dev/null +++ b/search/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class SearchConfig(AppConfig): + name = 'search' diff --git a/search/migrations/__init__.py b/search/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/search/views.py b/search/views.py new file mode 100644 index 0000000..59f61a0 --- /dev/null +++ b/search/views.py @@ -0,0 +1,18 @@ +from django.shortcuts import render, redirect +import pysolr +path= "http://10.129.132.103:8983/solr/collab" +def search_articles(request): + if request.method == 'POST': + searchcriteria = request.POST['searchcriteria'] + conn=pysolr.Solr(path) + articles=conn.search('*'+searchcriteria+'*') + return render(request, 'search.html',{'articles':articles}) + + + +def IndexDocuments(id,title,body,date): + conn=pysolr.Solr(path) + docs = [{'id': id, 'title': title, 'body': body ,'created_at' : str(date) }] + conn.add(docs) + return + \ No newline at end of file diff --git a/static/assets/corporate/css/custom.css b/static/assets/corporate/css/custom.css new file mode 100644 index 0000000..d60ca2a --- /dev/null +++ b/static/assets/corporate/css/custom.css @@ -0,0 +1,11 @@ +/* here you can put your own css to customize and override the theme */ +.timer { + padding: 10px 0; + color: #111; + font-size: 48px; + font-weight: 600; + text-transform: uppercase; + text-align:center; + line-height:80px; + //font-family: 'Oswald', sans-serif; +} diff --git a/static/assets/corporate/css/style-responsive.css b/static/assets/corporate/css/style-responsive.css new file mode 100644 index 0000000..a0b4901 --- /dev/null +++ b/static/assets/corporate/css/style-responsive.css @@ -0,0 +1,805 @@ +/* BEGIN max width 1200px */ +@media (max-width: 1200px) { + .content-form-page .control-label { + padding-left: 30px; + padding-bottom: 5px; + } + .content-form-page .col-md-offset-4 { + margin-left: 15px; + } + .content-form-page .pull-right { + float: left !important; + } + + .quote-v1 span { + font-size: 20px; + } +} +/* END max width 1200px */ + +/* BEGIN min width 1025px */ +@media (min-width: 1025px) { + .header .header-navigation { + display: block !important; + } +} +/* END min width 1025px */ + +/* BEGIN min width 1025px max width 1205 */ +@media (min-width: 1025px) and (max-width: 1205px) { + body.page-header-fixed { + padding-top: 121px !important; /* height of the header */ + } + + .header .header-navigation { + display: block !important; + clear: both; + margin-top: -10px; + float: left !important; + } + .reduce-header .header-navigation { + margin-top: -6px; + } + .header .header-navigation > ul > li { + margin-right: 27px; + } + .header .header-navigation > ul > li > a { + padding: 5px 0 18px; + } + .reduce-header .header-navigation > ul > li > a { + padding-bottom: 13px; + } + .header .header-navigation > ul > li.active > a, .header .header-navigation > ul > li > a:hover, .header .header-navigation > ul > li > a:focus, .header .header-navigation > ul > li.open > a, .header .header-navigation > ul > li.open > a:hover, .header .header-navigation > ul > li.open > a:focus { + background: none; + } + .header-navigation > ul > li.dropdown:hover > a:after { + margin-left: 10px; + } + + .dropdown-fix-right .dropdown-menu { + left: 0; + right: auto; + } + + .header .header-navigation li.menu-search { + top: 1px; + margin-left: -20px; + } + .ecommerce .header .header-navigation li.menu-search { + top: 2px; + } + .header .header-navigation li.menu-search span.sep { + top: 2px; + margin-right: 26px; + } + .header .header-navigation li.menu-search i { + top: -4px; + } +} +/* END min width 1025px max width 1205 */ + +/* BEGIN max width 1024px */ +@media (max-width: 1024px) { + body.page-header-fixed { + padding-top: 107px !important; /* height of the header */ + } + + .header .mobi-toggler { + display: block; + } + .header .header-navigation { + float: none !important; + display: none; + clear: both; + background: #F9F9F9; + padding: 0 20px; + margin: 0 -20px 25px; + font-size: 16px; + } + .header .header-navigation li { + float: none; + padding: 0; + clear: both; + } + .header .header-navigation li > a, + .header .dropdown.open .dropdown-toggle, + .header .header-navigation li.open > a { + border-bottom: 1px solid #efefef !important; + padding: 8px 10px 9px; + margin: 0 -10px; + position: relative; + color: #666 !important; + background: none !important; + } + .ecommerce .header .header-navigation li > a, + .ecommerce .header .dropdown.open .dropdown-toggle, + .ecommerce .header .header-navigation li.open > a { + padding: 12px 10px 9px; + } + .header .header-navigation li > a:hover, + .header .header-navigation li.active > a, + .header .header-navigation li.open > a:hover { + border-bottom: 1px solid #efefef !important; + background: none !important; + color: #dd4632 !important; + text-decoration: none; + } + + .header-navigation > ul > li.dropdown:hover > a:after { + border: none; + } + + .header-navigation > ul > li > a > i.fa-angle-down { + display: block; + float: right; + margin: 3px 0 0; + } + + /* dropdown menu */ + .header-navigation .dropdown-menu, + .header-navigation > ul > li > .dropdown-menu { + position: static; + width: 100%; + margin: 0; + border: none; + box-shadow: none; + background: none; + margin-top: 0; + border-top: none; + z-index: 22; + } + .header-navigation .dropdown-menu li { + border: none !important; + margin-left: 20px; + } + .header-navigation .dropdown-menu li > a { + padding: 10px 10px 9px; + z-index: 999; + position: relative; + } + .header-navigation .dropdown-menu li > a > i { + display: none; + } + + .header-navigation .dropdown-menu .dropdown-menu { + display: block; + } + .header-navigation .header-navigation-content { + border: none; + } + .dropdown-megamenu .header-navigation-content { + padding: 5px 0 0; + margin-left: -20px; + } + .dropdown-megamenu .header-navigation-content .row { + margin: 0; + } + .dropdown-megamenu .header-navigation-content .header-navigation-col { + padding: 0; + float: none; + width: 100%; + } + .dropdown-megamenu .header-navigation-content h4 { + font-size: 13px; + padding: 10px 10px 9px; + margin: 0 -10px 0 10px; + } + .header-navigation .dropdown-megamenu .header-navigation-content li > a { + padding: 10px 10px 9px; + } + + .header-navigation-content-ext { + background: none; + } + .header-navigation-description { + height: auto !important; + background: none; + box-shadow: none; + padding: 0; + margin: 0 10px; + } + .header-navigation-content-ext .col-md-6, + .header-navigation-content-ext .col-md-3 { + float: none; + width: 100%; + } + .dropdown-megamenu .header-navigation-content-ext .col-md-3 h4 { + border-bottom: 1px solid #EFEFEF; + } + .header-navigation .dropdown-menu .header-navigation-content-ext li > a { + display: block; + } + .header-navigation-content-ext .col-md-3, .header-navigation-content-ext .col-md-6 { + padding: 0; + } + .header-navigation-content-ext .col-md-6 { + margin-left: 10px; + } + .header-navigation-content-ext .col-md-6 h4 { + margin-left: 0; + padding-left: 0; + } + + .header .nav-brands { + margin: 15px 10px; + padding: 0; + width: 100%; + background: #fff; + } + .header .nav-brands ul { + border: 1px solid #F0F0F0; + padding: 10px; + } + .header .nav-brands li { + max-width: 50%; + display: inline-block; + border: none; + margin-left: 0 + } + .header .nav-brands li a, + .header .nav-brands li a:hover { + border: none !important; + margin: 0 !important; + } + + .nav-catalogue .dropdown-menu > li { + margin-left: 0; + } + .nav-catalogue .header-navigation-content { + padding: 20px 0 0; + } + .nav-catalogue .product-item { + margin-bottom: 20px; + } + + .header-navigation li.menu-search, + .ecommerce .header-navigation li.menu-search { + top: 0; + padding: 20px 0 10px; + position: relative; + } + .header-navigation li.menu-search span.sep { + display: none; + } + .header-navigation .search-box { + position: relative; + right: auto; + left: 0; + } + .header-navigation .search-box:after { + right: auto; + left: 0; + } + + .top-cart-block { + margin-top: 3px; + } + + .page-header-fixed .header-navigation { + height: 300px; + overflow: auto; + } +} +/* END max width 1024px */ + +/* BEGIN max width 992px */ +@media (max-width: 992px) { + .shop-index-carousel { + margin-left: 0; + margin-right: 10px; + } + + .brands .container { + padding-right: 25px; + } + + .sidebar-menu a:focus { + color: #333 !important; + text-decoration: none; + } + + .sale-product___removed { + margin-bottom: 40px; + } + .new-arrivals___removed { + margin-left: 15px; + padding-left: 0; + } + .two-items-bottom-items { + margin-bottom: 40px; + } + .carousel img { + width: 100%; + } + + /*.steps-block { + padding-bottom: 10px; + } + .steps-block-col { + border: 2px solid #FFF; + margin: 0 20px 20px 15px; + padding: 20px 20px 15px; + min-height: auto; + float: left; + } + .steps-block-col:last-child { + margin-right: 0; + } + .steps-block .steps-block-col div { + margin-left: 0; + margin-right: 0; + } + .steps-block h2 { + font-size: 25px; + } + .steps-block em { + text-transform: inherit; + } + .steps-block-col span, + .steps-block-col .fa { + display: none; + } + .steps-block-col:first-child em { + margin-left: 0; + }*/ + + .steps-block-col { + border: 2px solid #FFF; + margin: 0 25px 20px 15px; + padding: 20px 20px 15px; + min-height: auto; + float: none; + } + .steps-block-col:last-child { + margin-right: 25px; + margin-bottom: 0; + } + .steps-block .steps-block-col div { + margin-left: 0; + margin-right: 0; + } + .steps-block h2 { + font-size: 43px; + } + .steps-block em { + text-transform: uppercase; + } + .steps-block-col span { + display: none; + } + .steps-block-col .fa { + display: block; + } + + .pre-footer-subscribe-box form { + width: 100%; + } + + .sidebar-products img { + float: none; + margin-bottom: 5px; + width: 100%; + height: auto; + } + .sidebar-products h3, + .sidebar-products .price { + margin-left: 0; + } + .product-page-options .pull-left { + margin-bottom: 10px; + + } + .product-quantity { + margin-bottom: 10px; + } + + /* + if you want to hide buttons on mobile view, uncomment this block + .pi-img-wrapper div { + display: none !important; + }*/ + .review .rateit { + width: 100%; + margin-bottom: 10px; + } + .list-view-sorting .pull-right { + margin-bottom: 10px; + } + + .service-box p, .service-box .service-box-heading em, .service-box .service-box-heading span { + display: block; + text-align: center; + } + .service-box .service-box-heading em { + margin-bottom: 10px; + } + + .quote-v1 { + text-align: center; + } + .quote-v1 .text-right { + text-align: center; + } + + .recent-work .owl-carousel { + margin-left: -10px; + } + .our-clients .owl-carousel { + margin-left: -2px; + } + .recent-work .owl-carousel, + .our-clients .owl-carousel { + padding-top: 30px; + } + .recent-work .owl-buttons, + .our-clients .owl-buttons { + top: 0; + left: -3px; + } + .our-clients .owl-buttons { + left: -10px; + } + + .testimonials-v1 { + padding-top: 40px; + } + + .recent-work .recent-work-item .fa { + width: 36px; + height: 36px; + margin-top: -18px; + font-size: 14px; + padding: 12px; + } + + .recent-news-inner { + padding: 10px 15px 0; + } + + .ecommerce .pre-footer-subscribe-box h2, .corporate .pre-footer-subscribe-box h2 { + padding-top: 0; + } + .pre-footer .pre-footer-subscribe-box { + padding-bottom: 25px; + } + .ecommerce .pre-footer-subscribe-box form { + width: 100%; + } + + .ecommerce .content-search h1 { + padding-top: 0; + margin-bottom: 3px; + } + .content-search form { + margin: 0 0 6px; + } +} +/* END max width 992px */ + +/* BEGIN max width 767px */ +@media (max-width: 767px) { + .pre-header .pull-right { + float: left !important; + } + .pre-header .pull-right li:first-child { + padding-left: 0; + } + .ecommerce .pre-footer-subscribe-box form { + float: none; + width: auto; + } + + .header .header-navigation { + margin: 0 -10px 0; + padding: 0 10px; + } + .header-navigation-content { + min-width: 100px; + + } + + .sidebar { + margin-bottom: 40px; + } + .sidebar___removed { + margin-bottom: 40px; + } + .sidebar-menu .fa-angle-right { + display: inline-block; + } + .pre-footer .pull-right, + .footer .pull-right { + float: none !important; + } + .pre-footer .pull-right, + .footer .pull-right { + padding-top: 15px; + } + .footer .list-inline > li { + padding-left: 0; + margin-right: 5px; + } + + + .form-info { + border-left: none; + padding-left: 0; + padding-top: 30px; + border-top: 1px solid #E4E6E8; + margin-bottom: 0; + } + + .sidebar-products .item { + float: left; + width: 48%; + margin-bottom: 20px; + padding: 0 10px 10px; + } + .sidebar-products img { + width: 100%; + height: auto; + } + .list-view-sorting { + /*background: #fff;*/ + margin-left: 0; + margin-right: 0; + margin-bottom: 10px; + } + .list-view-sorting .col-md-10 { + padding-right: 0; + } + .product-other-images { + margin-bottom: 40px; + } + .product-page-options .pull-left { + margin-bottom: 0; + } + .product-item .img-responsive { + width: 100%; + } + .pagination { + float: left !important; + padding-top: 10px; + } + .pagination > li { + margin-left: 0; + margin-right: 5px; + } + + .pre-footer .margin-bottom-40 { + margin-bottom: 0; + } + .ls-layer3 .ls-price strong { + top: -15px; + } + + .glyphicons-demo ul li { + width: 12.5%; + } + + .tab-style-1 .tab-content img { + margin: 5px 0 10px; + } + .testimonials-v1 { + padding-top: 20px; + } + + .front-steps-wrapper { + margin-left: -10px; + margin-right: -10px; + } + .front-steps-wrapper .front-step-col { + padding-left: 15px; + padding-right: 15px; + } + .front-steps-wrapper .front-step:after { + display: none; + } + + .blog-posts h2, .ecommerce .blog-posts h2 { + padding-top: 15px; + } + + .ecommerce .footer { + padding: 10px 0 10px; + } + .ecommerce .footer .pull-right { + padding-top: 10px; + } + .ecommerce .pre-footer address { + margin-bottom: 15px !important; + } + .footer img { + margin-bottom: 10px; + } + .ecommerce .pre-footer-subscribe-box h2, .corporate .pre-footer-subscribe-box h2 { + padding-top: 7px; + } +} +/* END max width 767px */ + +/* BEGIN max width 600px */ +@media (max-width: 600px) { + .ls-layer3 .ls-price strong { + top: -5px; + } +} +/* END max width 600px */ + +/* BEGIN max width 480px */ +@media (max-width: 480px) { + .pre-header .list-inline li { + display: block; + border: none; + margin-bottom: 10px; + padding: 0; + } + .pre-header .col-md-6 { + float: left; + } + .pre-header .additional-nav { + float: right; + text-align: right; + } + + .nav-catalogue .pi-price { + margin-bottom: 10px; + } + .nav-catalogue .pi-price, + .nav-catalogue .product-item .add2cart { + float: none; + } + + .top-cart-block { + clear: both; + float: left; + padding-top: 0; + margin: 0 0 29px; + width: 100%; + } + .top-cart-info { + float: none; + } + .top-cart-block .fa-shopping-cart { + top: 0; + } + .top-cart-content-wrapper { + left: 0; + right: auto; + } + .top-cart-content:after { + left: 15px; + } + + .ls-fullwidth .ls-nav-prev, .ls-fullwidth .ls-nav-next { + display: none; + } + + .checkout-content { + padding: 0 0 40px; + } + .checkout-page h2 a { + padding: 9px 10px 8px; + } + .table-wrapper-responsive { + overflow-x: scroll; + } + + .shopping-cart-page .btn-default { + float: right; + } + .shopping-cart-page .btn-primary { + clear: both; + margin-top: 10px; + } + .checkout-page .btn-default { + clear: both; + margin-top: 10px; + margin-right: 0 !important; + } + + .product-item:hover > .pi-img-wrapper>div { + display: none; + } + + .steps-block-simple h2 { + font-size: 21px; + } + .steps-block-simple em { + font-size: 14px; + text-transform: inherit; + } + + .ecommerce .pre-footer-subscribe-box h2, + .corporate .pre-footer-subscribe-box h2 { + float: none; + } + + .list-view-sorting .pull-right { + float: left !important; + margin: 0 30px 10px 0; + } + + .header .top-cart-block { + margin-top: 0; + } + .reduce-header .top-cart-block { + margin-top: 0; + margin-bottom: 19px; + } +} +/* END max width 480px */ + +/* BEGIN max width 450px */ +@media (max-width: 450px) { + .ecommerce .steps-block h2 { + font-size: 33px; + } +} +/* END max width 450px */ + +/* BEGIN max width 405px */ +@media (max-width: 405px) { + .top-cart-content { + width: 100%; + } + .top-cart-block img, + .top-cart-block .cart-content-count { + display: none; + } +} +/* END max width 405px */ + +/* BEGIN max width 390px */ +@media (max-width: 390px) { + .steps-block .fa-truck, .steps-block .fa-gift, .steps-block .fa-phone { + border: 2px solid #FFFFFF; + border-radius: 30px !important; + float: left; + font-size: 20px; + width: 40px; + height: 40px; + margin-right: 11px; + padding-top: 12px; + text-align: center; + vertical-align: middle; + } + .ecommerce .steps-block h2 { + font-size: 25px; + padding-top: 2px; + } + .ecommerce .steps-block em { + text-transform: inherit; + } + + .mix-block .tab-content .col-md-3 { + padding-right: 15px; + } +} +/* END max width 390px */ + +/* BEGIN max width 330px */ +@media (max-width: 330px) { + .top-cart-content { + width: 280px; + } +} +/* END max width 330px */ + +/* BEGIN max width 320px */ +@media (max-width: 320px) { + .site-logo { + margin-right: 0; + } + .content-form-page .btn-default { + margin-top: 10px; + } + .price-availability-block .availability { + clear: left; + float: left; + } + .product-page-options .pull-left { + margin-bottom: 10px; + } +} +/* END max width 320px */ \ No newline at end of file diff --git a/static/assets/corporate/css/style.css b/static/assets/corporate/css/style.css new file mode 100644 index 0000000..78fcfc1 --- /dev/null +++ b/static/assets/corporate/css/style.css @@ -0,0 +1,3082 @@ +/* +Template Name: Metronic - Responsive Website Template build with Twitter Bootstrap 3.1.1 +*/ + +/* General body settings */ +body { + color: #3e4d5c; + direction: ltr; + font: 400 13px 'Open Sans', Arial, sans-serif; + background: #fff; +} + +/*** +General typography +***/ +h1, h2, h3, h4, h5, h6 { + font: 300 'Open Sans', sans-serif; + margin: 0 0 10px; +} +h1 { + margin-bottom: 15px; +} +.main h1 { + margin-top: -6px; +} + +/*** +Fix link outlines after click +***/ +a { + color: #E02222; +} +a, a:focus, a:hover, a:active { + outline: 0; + text-decoration: none; +} +a:hover { + color: #E02222; + text-decoration: underline; +} + +/*** +Misc tools +***/ +.no-padding { + padding: 0 !important; +} +.no-margin { + margin: 0 !important; +} +.no-bottom-space { + padding-bottom: 0 !important; + margin-bottom: 0 !important; +} +.no-top-space { + padding-top: 0 !important; + margin-top: 0 !important; +} +.no-space { + margin: 0 !important; + padding: 0 !important; +} +.no-text-shadow { + text-shadow: none !important; +} + +.padding-top-5 { + padding-top: 5px !important; +} +.padding-top-10 { + padding-top: 10px !important; +} +.padding-top-15 { + padding-top: 15px !important; +} +.padding-top-20 { + padding-top: 20px !important; +} +.padding-top-25 { + padding-top: 25px !important; +} +.padding-top-30 { + padding-top: 30px !important; +} +.padding-top-35 { + padding-top: 35px !important; +} +.padding-top-40 { + padding-top: 40px !important; +} +.padding-top-45 { + padding-top: 45px !important; +} +.padding-top-50 { + padding-top: 50px !important; +} +.padding-top-60 { + padding-top: 60px !important; +} + +.margin-bottom-0 { + margin-bottom: 0 !important; +} +.margin-bottom-5 { + margin-bottom: 5px !important; +} +.margin-bottom-10 { + margin-bottom: 10px !important; +} +.margin-bottom-15 { + margin-bottom: 15px !important; +} +.margin-bottom-20 { + margin-bottom: 20px !important; +} +.margin-bottom-25 { + margin-bottom: 25px !important; +} +.margin-bottom-30 { + margin-bottom: 30px !important; +} +.margin-bottom-35 { + margin-bottom: 35px !important; +} +.margin-bottom-40 { + margin-bottom: 40px !important; +} +.margin-bottom-50 { + margin-bottom: 50px !important; +} +.margin-bottom-60 { + margin-bottom: 60px !important; +} +.margin-bottom-65 { + margin-bottom: 65px !important; +} + +.margin-top-10 { + margin-top: 10px !important; +} + +.margin-left-0 { + margin-left: 0 !important; +} +.margin-right-0 { + margin-right: 0 !important; +} + +.margin-right-20 { + margin-right: 20px !important; +} +.margin-left-20 { + margin-left: 20px !important; +} + +.padding-left-0 { + padding-left: 0 !important; +} +.padding-right-0 { + padding-right: 0 !important; +} +.padding-right-30 { + padding-right: 30px !important; +} + +.margin-right-10 { + margin-right: 10px !important; +} + +/*.btn { + padding: 7px 14px; + font-size: 14px; + text-transform: uppercase; + border-radius: 0; +} +.btn-primary { + border: none; + background: #e94d1c; + color: #fff; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active { + color: #fff; + background: #cc3304; + border: none; +} +.content-page .btn-primary, +.content-page .btn-primary:hover { + color: #fff; + margin-left: 0 !important; +} +.btn-default { + border: 1px solid #EDEDED; + color: #A8AEB3; + background: transparent; + padding: 6px 13px; +} +.btn-default:hover, +.btn-default:focus, +.btn-default:active { + border: 1px solid #A8AEB3; + color: #fff; + background: #A8AEB3; + padding: 6px 13px; +}*/ + +div.checker, +div.radio { + top: -1px; +} + +select.form-control { + color: #5f6d7b; + border-radius: 0; + border-color: #e4e6e8; + box-shadow: none; +} +select.form-control:focus { + box-shadow: none; + border-color: #999; +} + +input.form-control, +textarea.form-control { + border-color: #dbdbdb; + color: #777; + font: 14px Arial, sans-serif; + border-radius: 0; + box-shadow: none; +} +input.form-control:focus, +textarea.form-control:focus { + box-shadow: none; + border: solid 1px #dbdbdb; +} + +.clearfix:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; + font-size: 0; + line-height: 0; +} +*html .clearfix { + zoom: 1; +} +*+html .clearfix { + zoom: 1; +} +.clear { + clear: both; + height: 0; + font-size: 0; + line-height: 0; + overflow: hidden; +} + +.lead { + font-size: 16px; +} + +.font-transform-inherit { + text-transform: inherit !important; +} + +.color-red { + color: #E84D1C; +} + +/*** +Custom Scrollbars +***/ + +::-webkit-scrollbar { + width: 12px; +} + +::-webkit-scrollbar-track { + background-color: #eaeaea; + border-left: 1px solid #cecece; +} + +::-webkit-scrollbar-thumb { + background-color: #cecece; +} + +::-webkit-scrollbar-thumb:hover { + background-color: #aaa; +} + +::-webkit-scrollbar-track { + border-radius: 0; + box-shadow: none; + border: 0; +} + +::-webkit-scrollbar-thumb { + border-radius: 0; + box-shadow: none; + border: 0; +} + +/* overides metro scrolbars in IE10 and makes them look like a default scrollbar */ +@-ms-viewport{ + width: auto !important; +} + +::-moz-selection { + color: #fff; + background: #e45000; +} +::selection { + color: #fff; + background: #e45000; +} + +/* Global classes */ +.min-hight500 { + min-height: 500px; +} + +/*** +Pre-Header and pre-header elements +***/ +.pre-header { + color: #616b76; + border-bottom: 1px solid #eee; + padding-top: 10px; + line-height: 1.2; + font-family: 'Open Sans', sans-serif; + font-weight: 300; + background: #fff; +} +.pre-header a { + color: #616b76; +} +.pre-header a:hover { + color: #E02222; +} +.pre-header a:focus { + text-decoration: none; +} +.pre-header li { + padding-left: 11px; + padding-right: 15px; + border-right: solid 1px #d8d8d8; +} +.pre-header li:last-child { + border: none; +} +.additional-shop-info li:first-child { + padding-left: 0; +} +.additional-nav li:last-child { + padding-right: 0; +} +.pre-header .fa { + margin-right: 4px; +} +.shop-currencies a { + margin-right: 6px; +} +.shop-currencies a:last-child { + margin-right: 0; +} +.shop-currencies a.current { + color: #E02222; +} + +/* langs block */ +.langs-block { + position: relative; +} +.langs-block .fa { + margin-right: 0; +} +.langs-block-others-wrapper { + position: absolute; + left: 0; + top: 100%; + z-index: 99999; +} +.langs-block-others { + padding: 10px 10px 2px; + background: #F9F9F9; + z-index: 9999; + width: 100px; + display: none; + margin-top: 12px; + border-top: solid 2px #ea4c1d; + box-shadow: 5px 5px rgba(91, 91, 91, 0.2); + position: relative; + transition: opacity .3s ease-in-out; + -moz-transition: opacity .3s ease-in-out; + -webkit-transition: opacity .3s ease-in-out; +} +.langs-block-others:after { + top: -8px; + width: 0; + height: 0; + left: 8px; + z-index: 2; + content: " "; + display: block; + position: absolute; + border-bottom: 8px solid #e6400c; + border-right: 8px solid transparent; + border-left: 8px solid transparent; +} +.langs-block:hover .langs-block-others { + display: block; +} +.langs-block-others a { + display: block; + margin-bottom: 8px; +} + +/*** +Header and header elements +***/ +.header { + box-shadow: 0 1px 3px #ddd; + background: #fff; + border-radius: 0; + margin-bottom: 23px; + z-index: 999; + position: relative; +} + +/* FIX styles BEGIN */ +.page-header-fixed .header { + position: fixed !important; + top: 0; + left: 0; + width: 100%; + z-index: 99999; +} +body.page-header-fixed { + padding-top: 88px !important; /* height of the header */ +} +/* FIX styles END */ + +.header .container { + position: relative; +} +.ie8 .header { + border-bottom: 1px solid #eee; +} + +.site-logo { + float: left; + font-size: 23px; + font-weight: 400; + + margin-right: 67px; + padding-top: 22px; + padding-bottom: 22px; +} + +.header .mobi-toggler { + float: right; + color: #D8D8D8; + border: 1px solid #D8D8D8; + border-radius: 100% !important; + width: 32px; + height: 32px; + display: none; + margin: 25px 0 0 30px; + position: relative; + background: #fff url(../img/icons/toggler.png) no-repeat 6px 8px; +} +.header .mobi-toggler i { + display: none; +} +.header .mobi-toggler:hover { + background: #e34f00 url(../img/icons/toggler.png) no-repeat 6px -28px; + border-color: #e34f00; + color: #fff; +} + +/* Navigation */ +.header-navigation { + font: 15px "Open Sans", sans-serif; + margin: 0 10px 0 0; + padding: 0; + float: left; + text-transform: uppercase; +} +.header-navigation ul { + margin: 0; + padding: 0; + list-style: none; +} +.header-navigation > ul > li { + float: left; +} +.header-navigation > ul > li > a { + color: #333; + display: block; + padding: 29px 12px 30px; +} +.header-navigation ul > li.active > a, +.header-navigation ul > li > a:hover, +.header-navigation ul > li > a:focus, +.header-navigation ul > li.open > a, +.header-navigation ul > li.open > a:hover, +.header-navigation ul > li.open > a:focus { + color: #e02222; + background: #fcfcfc; + text-decoration: none; +} +.header-navigation ul > li.active > a { + border-bottom: 2px solid #e64f00; +} + +/* dropdown menu */ +@media (min-width: 1025px) { + .header-navigation > ul > li:hover > .dropdown-menu { + display: block; + } +} + +.header-navigation, +.header-navigation .dropdown { + position: static; +} +.header-navigation .dropdown-fix-left, +.header-navigation .dropdown-fix-right { + position: relative; +} +.header-navigation .dropdown-menu { + left: auto; + top: 100%; + padding: 0; + background: #fff; + position: absolute; + border: none; + box-shadow: 5px 5px rgba(91, 91, 91, 0.2); + text-transform: none; + font: 13px "Open Sans", sans-serif; + letter-spacing: 0; + border-radius: 0; + z-index: 9999; +} + +.header-navigation .dropdown-menu:before, +.header-navigation .dropdown-menu:after { + display: none !important; +} + +.dropdown-fix-left .dropdown-menu { + left: 0; + width: 700px; +} +.dropdown-fix-right .dropdown-menu { + right: 0; + width: 700px; +} +.header-navigation > ul > li > .dropdown-menu { + margin-top: -5px; + border-top: solid 3px transparent; + z-index: 1001; +} +.header-navigation .dropdown100 > .dropdown-menu { + left: 15px; + right: 15px; +} +.header-navigation > ul > li.dropdown:hover > a:after { + bottom: 0; + width: 0; + height: 0; + z-index: 1002; + content: " "; + display: block !important; + position: absolute; + border-bottom: 8px solid #e6400c; + border-right: 8px solid transparent; + border-left: 8px solid transparent; +} +.ie8 .header-navigation > ul > li.dropdown:hover > a:after { + display: none !important; +} +.header-navigation li.dropdown100 > .dropdown-menu:after { + display: none !important; +} +.header-navigation .dropdown-menu > li:first-child { + border-top: solid 2px #ea4c1d; +} +.header-navigation .dropdown-menu li { + padding: 0; + margin: 0; + border-bottom: solid 1px #efefef; + position: relative; + float: none; +} +.header-navigation .dropdown-menu li:last-child { + border: none; +} +.header-navigation .dropdown-menu li > a { + padding: 10px 15px; + font-weight: 400; + color: #767f88; +} +.header-navigation .dropdown-menu > li > a:hover, +.header-navigation .dropdown-menu > li.active > a, +.header-navigation .header-navigation-content .header-navigation-col li > a:hover, +.header-navigation .header-navigation-content .header-navigation-col li.active > a { + background: #e6400c; + color: #fff; +} +.dropdown-submenu > a:after { + display: none; +} + +/* navigation content */ +.header-navigation-content { + padding: 20px 30px; + min-width: 600px; +} +.header-navigation-content .header-navigation-col { + padding: 0; +} +.header-navigation-content h4, +.ecommerce .header-navigation-content h4 { + font: bold 15px 'Open Sans', Arial, sans-serif; + margin: 0 0 6px; + padding: 10px 10px 5px; + border-bottom: solid 1px #f0f0f0; +} +.header-navigation-content ul { + padding: 0; + margin: 0 0 10px; + list-style: none; +} +.header-navigation-content li { + padding: 0; + border: none !important; +} +.header-navigation-content li > a { + display: block; +} + +/* header navigation description */ +.header-navigation-content-ext { + padding: 20px 30px 2px; + background: #fff; +} +.header-navigation-description { + background: #fcfafb; + margin: -20px 0 -2px -30px; + padding: 20px; + box-shadow: 0 0 20px rgba(91, 91, 91, 0.2) inset; +} +.header-navigation-content-ext h4, +.ecommerce .header-navigation-content-ext h4 { + border: none; + padding: 10px 0 0; +} +.header-navigation .dropdown-menu .header-navigation-content-ext li { + border: none; +} +.header-navigation .dropdown-menu .header-navigation-content-ext li > a { + padding: 0 0 10px; + color: #767f88; + display: inline-block; +} +.header-navigation .dropdown-menu .header-navigation-content-ext li > a:hover, +.header-navigation .dropdown-menu .header-navigation-content-ext li.active > a { + background: #fff; + color: #e6400c; +} + +/* n-level submenu */ +.header-navigation .dropdown-menu .dropdown-menu { + left: 100%; + right: auto; + top: 6px; +} +.header-navigation .dropdown-menu a { + position: relative; +} +.header-navigation .dropdown-menu .fa { + position: absolute; + top: 13px; + right: 15px; +} + +/* Top Search */ +.header-navigation li.menu-search { + position: relative; + top: 26px; +} +.header-navigation li.menu-search span.sep { + top: 0; + width: 1px; + height: 26px; + background: #eaeaea; + position: relative; + margin: 0 18px 0 16px; + display: inline-block; +} +.header-navigation li.menu-search i { + color: #333; + font-size: 16px; + cursor: pointer; + position: relative; + top: -6px; + /*background: url(../img/icons/top-search-icon.png) no-repeat;*/ + width: 15px; + height: 15px; + opacity: 0.6; +} +.header-navigation li.menu-search i:hover { + color: #e02222; + background-position: 0 -15px; +} +/*.header-navigation .fa-search:before { + content: none; +}*/ +.header-navigation .search-box { + right: -7px; + top: 100%; + padding: 15px; + display: none; + background: #fcfafb; + position: absolute; + border-top: solid 2px #ea4c1d; + box-shadow: 5px 5px rgba(91, 91, 91, 0.2); + width: 274px; + margin-top: 0; + z-index: 22; +} +.header-navigation .search-box:after { + top: -8px; + width: 0; + height: 0; + right: 8px; + z-index: 2; + content: " "; + display: block; + position: absolute; + border-bottom: 8px solid #e6400c; + border-right: 8px solid transparent; + border-left: 8px solid transparent; +} +.header-navigation .search-box button { + margin-left: 0 !important; +} + +/* reduce navigation */ +/*.page-header-fixed .site-logo, +.page-header-fixed .header-navigation > ul > li > a, +.page-header-fixed .header-navigation li.menu-search, +.page-header-fixed .top-cart-block { + transition: all 0.1s ease; + -o-transition: all 0.1s ease; + -ms-transition: all 0.1s ease; + -moz-transition: all 0.1s ease; + -webkit-transition: all 0.1s ease; +}*/ +.reduce-header .site-logo { + padding-top: 9px; + padding-bottom: 11px; +} +@media (min-width: 1025px) { + .reduce-header .header-navigation > ul > li > a { + padding: 16px 12px 17px; + } + .ecommerce .reduce-header .header-navigation > ul > li > a { + padding: 23px 12px 20px; + } + .reduce-header .header-navigation li.menu-search { + top: 14px; + } + .ecommerce .reduce-header .header-navigation li.menu-search { + top: 21px; + } +} +.reduce-header .mobi-toggler { + margin-top: 12px; +} +.page-header-fixed .header .mobi-toggler { + transition: margin 0.3s ease; + -o-transition: margin 0.3s ease; + -ms-transition: margin 0.3s ease; + -moz-transition: margin 0.3s ease; + -webkit-transition: margin 0.3s ease; +} + +/* page slider */ +.page-slider { + margin-top: -25px; + clear: both; +} + +/* OWL styles */ +.owl-buttons { + position: absolute; + top: -40px; + right: 10px; +} +.owl-buttons div { + display: inline-block; + width: 26px; + height: 26px; + margin-left: 5px; + position: static; + border-radius: 26px !important; + text-indent: -100000px; +} +.owl-buttons .owl-prev { + background: #fff url(../../pages/img/fa-angles.png) no-repeat 8px 8px; +} +.owl-buttons .owl-next { + background: #fff url(../../pages/img/fa-angles.png) no-repeat -33px 8px; +} +.owl-buttons .owl-prev:hover { + background: #e84d1c url(../../pages/img/fa-angles.png) no-repeat 8px -31px; +} +.owl-buttons .owl-next:hover { + background: #e84d1c url(../../pages/img/fa-angles.png) no-repeat -33px -31px; +} + +/* */ +.content-slider .carousel-indicators { + text-align: left; + margin: 0; + width: auto; + left: 33px; +} +.content-slider .carousel-indicators li, +.content-slider .carousel-indicators li.active { + width: 18px; + height: 18px; + margin: 0 9px 0 0; + background: transparent; + border: solid 2px #c9cdce; + border-radius: 18px !important; + z-index: 9999 !important; +} +.content-slider .carousel-indicators li.active { + background: #6f7a7c; + border-color: #9ea7a9; +} + +/* */ +.product-list .product-item { + margin-bottom: 30px; +} + +/*** +Sidebar +***/ +.sidebar { + color: #3E4D5C; +} +.sidebar .list-group-item { + background: rgba(244,244,244,0.5); + border: none; + display: block; + margin-bottom: 2px; + padding: 7px 10px; + position: relative; + border-radius: 0; +} +.sidebar .list-group-item:last-child { + margin: 0; +} +.sidebar a { + color: #3E4D5C; +} +.sidebar a:hover { + color: #E02222; +} + .sidebar-menu a { + display: block; +} + .sidebar-menu a:hover { + text-decoration: none; +} +.sidebar-menu .fa-angle-right { + position: relative; + top: 1px; + margin-right: 2px; + float: left; +} +.sidebar .dropdown.open .dropdown-toggle { + background: #fff; + color: #3E4D5C; +} +.sidebar .dropdown.open .dropdown-toggle:hover { + color: #E02222; +} +.sidebar .dropup.open > .dropdown-toggle, .dropdown.open > .dropdown-toggle { + border-color: none !important; +} + +.sidebar .dropdown-menu { + background-clip: padding-box; + background: #fff; + border: none; + border-radius: 0; + box-shadow: none; + display: none; + float: none; + font-size: 14px; + list-style: none; + margin: 0 -10px; + min-width: auto; + padding: 5px 10px 1px 19px; + position: relative; + top: 0; + left: 0; + z-index: 1000; + font: 15px 'PT Sans Narrow', sans-serif; +} + +.sidebar .dropdown-menu:after, +.sidebar .dropdown-menu:before { + display:none !important; +} + +.sidebar .dropdown-menu .dropdown-menu { + border-top: none; + margin-bottom: -5px; + margin-right: -10px; +} +.sidebar .open>.dropdown-menu { + display: block; +} +.sidebar .dropdown-menu li { + padding: 4px 0 3px 11px; + position: relative; +} +.sidebar .dropdown-menu ul { + padding: 0; + margin: 0 0 0 4px; + list-style: none; + text-transform: none; + font-size: 15px; +} +.sidebar .dropdown-menu > li > a { + clear: both; + line-height: inherit; + padding: 0; + white-space: inherit; +} +.sidebar-menu .dropdown-menu li > a:hover, .sidebar-menu .dropdown-menu li > a:focus, .sidebar-menu li.active > a, .sidebar-menu li.active > a:hover { + background: none !important; + color: #E02222; +} +.sidebar .dropdown-menu > li > a .fa-angle-down { + position: absolute; + top: 8px; + right: 0; +} +.sidebar .fa-angle-down:before { + content: ""; +} +.sidebar .fa-angle-down { + width: 11px; + height: 11px; + background: url(../img/icons/sidebar-toggle-icons.png) no-repeat 0 0; + position: absolute; + top: 12px; + right: 10px; +} +.sidebar a:hover > .fa-angle-down { + background-position: -11px 0; +} +.sidebar .collapsed .fa-angle-down { + background-position: 0 -37px; +} +.sidebar .collapsed:hover > .fa-angle-down { + background-position: -11px -37px; +} + +/*** +Brands +***/ +.brands .container { + padding-right: 25px; +} +.brands .owl-carousel { + margin-bottom: 41px; + padding: 0 75px; + background: #fff; +} +.brands .owl-buttons div { + position: absolute; + top: 0; + width: 70px; + height: 102px; + text-indent: -10000px; + border-radius: 0 !important; + display: block; +} +.brands .owl-buttons { + position: static; +} +.brands .owl-buttons .owl-prev { + left: 0; + background: #fff url(../../pages/img/fa-angle-brands.png) no-repeat 18px 18px; + margin-left: 0; +} +.brands .owl-buttons .owl-prev:hover { + background: #fff url(../../pages/img/fa-angle-brands.png) no-repeat 18px -217px; +} +.brands .owl-buttons .owl-next { + left: auto; + right: 0; + background: #fff url(../../pages/img/fa-angle-brands.png) no-repeat -249px 18px; + margin-right: 0; +} +.brands .owl-buttons .owl-next:hover { + background: #fff url(../../pages/img/fa-angle-brands.png) no-repeat -249px -217px; +} + +/*** +steps block and steps block elements +***/ +/* shop */ +.steps-block { + color: #fff; + padding: 30px 0; +} +.steps-block ::-moz-selection { + color: #e45000; + background: #fff; +} +.steps-block ::selection { + color: #e45000; + background: #fff; +} +.steps-block-gray { + background: #a0a3a4; +} +.steps-block-red { + background: #e84d1c; +} +.steps-block-col { + overflow: hidden; + min-height: 71px; +} +.steps-block-col span { + display: block; + width: 36px; + height: 71px; + background: url(../../pages/img/step3-angle-right.png) no-repeat 100% 50%; + position: absolute; + top: 0; + right: 10px; +} +.steps-block h2, +.ecommerce .steps-block h2 { + color: #fff; + font-size: 43px; + margin: 0; + padding: 0; + line-height: 1; +} +/* steps-block-simple – step block without image */ +.steps-block-simple h2, +.ecommerce .steps-block-simple h2 { + font-size: 33px; + margin-bottom: 5px; +} +.steps-block em { + font: normal 400 13px 'Opan Sans', sans-serif; + text-transform: uppercase; +} +.steps-block-simple em { + text-transform: inherit; + line-height: 1.2; +} +.steps-block .steps-block-col div { + margin-left: 70px; + margin-right: 40px; +} +.steps-block-simple .steps-block-col div { + margin-left: 0; +} +.steps-block .fa-truck, +.steps-block .fa-gift, +.steps-block .fa-phone { + font-size: 30px; + border: solid 2px #fff; + border-radius: 30px !important; + width: 60px; + height: 60px; + text-align: center; + vertical-align: middle; + padding-top: 13px; + margin-right: 11px; + float: left; +} +.steps-block .fa-angle-right { + font-size: 84px; +} + +/* title wrapper */ +.title-wrapper { + margin: -23px 0 23px; + position: relative; + overflow: hidden; + background: #72c2ff url(../../pages/img/title-bg/man.jpg) no-repeat 100% 100%; + min-height: 280px; + padding-top: 79px; + width: 100%; + overflow: hidden; +} +.title-wrapper .container-inner { + float: left; +} +.ecommerce .title-wrapper h1, .title-wrapper em { + font-family: 'Open Sans', sans-serif; + color: #fff; + font-weight: 400; +} +.ecommerce .title-wrapper h1 { + font-size: 45px; + padding: 0 9px 13px; + border-bottom: solid 1px rgba(255,255,255,0.6); + margin: 0 -9px 17px; +} +.title-wrapper h1 span { + color: #e6400c; +} +.title-wrapper em { + font-size: 20px; + font-style: normal; + display: block; + text-align: center; +} + +/* breadcrumb */ +.breadcrumb { + background: none; + padding: 0; + font: 14px "Open Sans", sans-serif; + color: #5f6d7b; + margin-bottom: 22px; +} +.breadcrumb > li + li:before { + content: "\f105 "; + -moz-osx-font-smoothing: grayscale; + display: inline-block; + font-family: FontAwesome; + font-style: normal; + font-weight: normal; + line-height: 1; + color: #5f6d7b; +} +.breadcrumb a { + color: #5f6d7b; +} +.breadcrumb > .active { + color: #e6400c; +} + +/* paginations */ +.pagination { + border-radius: 0; + margin: 0; +} +.pagination > li { + display: inline-block; + margin-left: 5px; +} +.pagination > li > a, .pagination > li > span, +.pagination > li:first-child > a, .pagination > li:first-child > span, +.pagination > li:last-child > a, .pagination > li:last-child > span { + border-radius: 25px !important; + border: none; + color: #868c93; +} +.pagination > li > span, +.pagination > li > span:hover { + background: #555; + color: #fff; +} +.pagination > li:first-child > a, +.pagination > li:last-child > a { + padding: 4px 12px 8px; +} +.items-info { + padding-top: 7px; + color: #868c93; +} + +/* content page */ +.content-page { + background: #fff; + padding: 20px; + margin-right: 10px; +} +.corporate .content-page { + padding: 0 0 20px; +} +.content-page a, +.sidebar2 a { + color: #767F88; +} +.content-page a:hover, +.sidebar2 a:hover { + color: #E02222; +} +.content-page .link, .content-page .link:hover, .content-page .link:active { + color: #E02222; +} +.content-page h2, +.content-page h3, +.content-page h4, +.content-page h5, +.content-page h6 { + /*text-transform: inherit;*/ + padding-top: 10px; +} +.content-page h3 { + font-size: 20px; + margin-bottom: 7px; +} +.content-page h4 { + font-size: 17px; + margin-bottom: 4px; +} +.content-page h5, +.content-page h6 { + font: 700 15px 'Open Sans', Arial, sans-serif; + margin-bottom: 2px; +} +.content-page p, +.content-page .list-unstyled { + margin-bottom: 20px; +} +.content-page .list-unstyled .list-unstyled { + margin-left: 20px; + padding-top: 3px; + margin-bottom: 0; +} +.content-page .list-unstyled li { + margin-bottom: 3px; +} + +/* 404 page */ +.corporate .page-404 { + text-align: center; + padding-top: 60px; + padding-bottom: 125px; +} +.page-404 .number { + position: relative; + top: 35px; + display: inline-block; + letter-spacing: -10px; + margin-top: 0px; + margin-bottom: 10px; + line-height: 128px; + font-size: 128px; + font-weight: 300; + color: #E02222; + text-align: right; +} +.page-404 .details { + margin-left: 40px; + display: inline-block; + padding-top: 0px; + text-align: left; + top: 15px; + position: relative; +} + +/* 500 page */ +.corporate .page-500 { + text-align: center; + padding-top: 60px; + padding-bottom: 60px; +} +.page-500 .number { + display: inline-block; + letter-spacing: -10px; + line-height: 128px; + font-size: 128px; + font-weight: 300; + color: #E02222; + text-align: right; +} +.page-500 .details { + margin-left: 40px; + display: inline-block; + text-align: left; +} + +/* content form page */ +div.content-form-page { + background: #fff; + padding: 5px 20px 30px; + margin-right: 10px; +} +.content-form-page a { + color: #767F88; +} +.content-form-page a:hover { + color: #E02222; +} +.form-without-legend { + padding-top: 25px; +} +.content-form-page legend { + border: none; + font-size: 18px; + padding-top: 20px; + margin-bottom: 10px; + color: #3E4D5C; +} +.content-form-page .control-label { + font-weight: normal; + padding-right: 5px; + margin-left: -15px; +} +.default-form label, +.checkout-page label { + font-weight: normal; +} +.require { + color: #e94d1c; +} +.content-form-page input.form-control { + border-color: #dbdbdb; + color: #aaa; + font: 14px Arial, sans-serif; + border-radius: 0; +} +.content-form-page .form-control:focus { + box-shadow: none; + border: solid 1px #e94d1c; +} +.content-form-page .checkbox .col-lg-4 { + padding-right: 0; + margin-left: -15px; +} +/*.content-form-page .checker { + margin-left: -15px; +}*/ +.content-form-page .btn { + margin-right: 10px; + /*padding: 7px 12px 6px;*/ +} +div.content-form-page .checkbox-list { + margin-left: -3px; +} + +/* info at the right of the forms */ +.form-info { + padding: 0 10px 0 30px; + border-left: solid 1px #e4e6e8; + margin: 25px 0; +} +.form-info h2, +.ecommerce .form-info h2 { + font-size: 18px; + position: relative; + top: -5px; + margin-bottom: 5px; +} +.form-info h2 em { + font-style: normal; + color: #e6400c; +} +.form-info p { + margin: 0 0 20px; +} + + +.nav-tabs { + border-color: #e6400c; + padding-bottom: 1px; + font-size: 14px; + margin-bottom: 0; +} +.nav-tabs > li > a, .nav-tabs > li > a:hover, .nav-tabs > li > a:focus { + background: #F4F4F4; + color: #647484; + border-radius: 0; + padding: 5px 15px 4px; + border: none !important; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #e6400c; + color: #fff; + padding: 5px 15px 4px; +} +.tab-content { + background: #FAFAFA; + padding: 20px 15px; +} + +/* content search */ +.content-search { + background: #fff; + padding: 10px 15px; +} +.ecommerce .content-search h1 { + padding-top: 3px; + margin: 0; +} +.content-search h1 em { + font-style: normal; + color: #e6400c; +} +.content-search form { + margin: 0; +} +.content-search input { + border-radius: 0; + border-color: #dbdbdb; + color: #b0b4b7; + font: 14px Arial, sans-serif; + height: 35px; +} +.content-search input:focus { + box-shadow: none; + border: solid 1px #e94d1c; +} +.content-search button { + margin-left: 0 !important; + font-size: 14px; + /*padding: 7px 12px 5px;*/ + height: 35px; +} + +/*** +Pre-Footer and pre-footer elements +***/ +.pre-footer { + background: #313030; + color: #b0b0b0; +} +.pre-footer .container { + padding-top: 45px; +} +.pre-footer a { + color: #57c8eb; +} +.pre-footer h2, +.ecommerce .pre-footer h2 { + font-size: 21px; + color: #c2c1c1; +} +.pre-footer p { + margin-bottom: 20px; +} +.pre-footer li { + margin-bottom: 6px; +} + +/* pre-footer twitter block */ +.pre-footer dl.f-twitter { + overflow: hidden; + margin-bottom: 7px; +} +.pre-footer dl.f-twitter dt { + width: 30px; + float: left; + text-align: left; + padding-top: 2px; +} +.pre-footer dl.f-twitter dt i { + color: #57c8eb; + font-size: 20px; +} +.pre-footer dl.f-twitter dd { + color: #b0b0b0; + margin-left: 30px; +} +.pre-footer dl.f-twitter dd span { + color: #6b9cab; + font-size: 12px; + margin: 0 5px; +} +.pre-footer address { + line-height: 1.7; +} +.pre-footer-col { + padding-bottom: 22px; +} +.pre-footer .top-line { + border-top: solid 1px #535353; + padding-top: 24px; + padding-bottom: 17px; +} +.pre-footer .social-icons { + padding-top: 5px; +} +.pre-footer .social-icons li a, +.pre-footer a.social-icon { + transition: all 0.1s ease-in-out !important; + -o-transition: all 0.1s ease-in-out !important; + -ms-transition: all 0.1s ease-in-out !important; + -moz-transition: all 0.1s ease-in-out !important; + -webkit-transition: all 0.1s ease-in-out !important; +} +.pre-footer .social-icons li a:hover { + opacity: 1; +} + +.pre-footer hr { + margin-top: 0; + border-color: #404040; +} +.pre-footer .form-control, +.pre-footer .form-control:focus { + border: none; +} + +/* subscribe */ +.pre-footer .pre-footer-subscribe-box { + padding-bottom: 14px; +} +.ecommerce .pre-footer-subscribe-box form { + float: left; + width: 330px; +} +.pre-footer .pre-footer-subscribe-box p { + clear: both; +} +.pre-footer-subscribe-box .input-group { + border: solid 1px #545454; + padding: 1px 1px 0 0; +} +.pre-footer-light .pre-footer-subscribe-box .input-group { + border: solid 1px #DBDBDB; +} +.ecommerce .pre-footer-subscribe-box h2, +.corporate .pre-footer-subscribe-box h2 { + float: left; + margin-right: 20px; + padding-top: 7px; +} +.pre-footer-subscribe-box input { + border-radius: 0; + background: #313030; + border: solid 1px #313030; + color: #909090; + font: 13px Arial, sans-serif; +} +.pre-footer-subscribe-box input:focus { + box-shadow: none; + border: solid 1px #313030; +} +.pre-footer-subscribe-box .btn-primary { + margin-left: 0 !important; + border-bottom: none; + margin-bottom: 1px; +} + +/* pre-footer photostream */ +.pre-footer .photo-stream li { + margin: 4px 5px 4px 0; + display: inline-block; +} +.pre-footer .photo-stream img { + width: 54px; + height: 54px; + border: solid 2px #9ca5ae; +} +.pre-footer .photo-stream img:hover { + border-color: #E84D1C; + transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -webkit-transition: all 0.3s ease-in-out; +} + +/* light pre-footer */ +.pre-footer-light { + background: #F9F9F9; + color: #3E4D5C; + margin-top: 20px; +} +.pre-footer-light .container { + background: #fff; + padding-top: 25px; +} +.pre-footer-light h2, +.ecommerce .pre-footer-light h2 { + color: #3E4D5C; +} +.pre-footer-light a { + color: #3E4D5C; +} +.pre-footer-light dl.f-twitter dd { + color: #3E4D5C; +} +.pre-footer-light dl.f-twitter dd span { + color: #99a5b1; +} +.pre-footer-light dl.f-twitter dd a { + color: #e84d1c; +} + +.pre-footer-light address a { + color: #e84d1c; +} + +.pre-footer-light hr { + border-color: #e6e6e6; +} + +.pre-footer-light .social-icons li a { + opacity: 1; +} +.pre-footer-light .social-icons li a:hover { + opacity: 0.7; +} + +.pre-footer-light .input-group { + border: none; + padding: 1px 1px 0 0; +} +.pre-footer-light .pre-footer-subscribe-box input { + background: #fff; + border: none; + color: #909090; +} +.pre-footer-light .pre-footer-subscribe-box button:hover { + color: #fff; +} + +/* light pre-footer */ +.pre-footer-gray { + background: #62707F; + color: #fff; +} +.pre-footer-gray h2, +.ecommerce .pre-footer-gray h2 { + color: #fff; +} +.pre-footer-gray dl.f-twitter dd { + color: #fff; +} +.pre-footer-gray dl.f-twitter dd span { + color: #fff; + opacity: 0.5; +} + +.pre-footer-gray hr { + border-color: #94a5b6; +} + +.pre-footer-gray .social-icons li a { + opacity: 1; +} +.pre-footer-gray .social-icons li a:hover { + opacity: 0.7; +} + +.pre-footer-gray .pre-footer-subscribe-box fomr { + color: #fff; +} +.pre-footer-gray .pre-footer-subscribe-box .input-group { + border: 1px solid #94a5b6; +} +.pre-footer-gray .pre-footer-subscribe-box input { + background: #62707F; + border: solid 1px #62707F; + color: #fff; +} +.pre-footer-gray .pre-footer-subscribe-box input:focus { + border: solid 1px #62707F; +} +.pre-footer-gray ::-webkit-input-placeholder { /* WebKit browsers */ + color: #fff; +} +.pre-footer-gray :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ + color: #fff; +} +.pre-footer-gray ::-moz-placeholder { /* Mozilla Firefox 19+ */ + color: #fff; +} +.pre-footer-gray :-ms-input-placeholder { /* Internet Explorer 10+ */ + color: #fff; +} + +/* Powered */ +.footer .powered { + color: #81848f; + margin: 5px 0 0; +} +.footer .powered > a { + color: #e6400c; + text-decoration: none; +} +.footer .powered > a:hover { + color: #e94d1c; +} + +/* footer */ +.footer { + background: #272626; + color: #fff; + font-size: 12px; + padding: 15px 0; +} +.footer-light { + background: #F9F9F9; + color: #3e4d5c; +} +.footer-gray { + background: #4A5866; +} +.footer a { + color: #fff; + text-decoration: underline; +} +.footer a:hover { + text-decoration: none; +} +.footer-light a { + color: inherit; +} +.footer .padding-top-10 { + opacity: 0.5; +} +.footer .list-inline > li:last-child { + padding-right: 0; +} +.footer ul { + margin: 0; + padding: 0; +} +.footer ul.social-footer { + font-size: 18px; + padding-top: 5px; +} +.footer ul.social-footer a { + opacity: 0.5; +} +.footer ul.social-footer a:hover { + opacity: 1; +} + + +/*** +Custom icon buttons +***/ +.icon-btn { + height: 60px; + min-width: 80px; + margin: 0 5px 5px 0; + border: 1px solid #ddd; + padding: 12px 0px 0px 0px; + background-color: #fafafa !important; + background-image: none !important; + filter:none !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; + display:inline-block !important; + color: #646464 !important; + text-shadow: none !important; + text-align: center; + cursor: pointer; + position: relative; + -webkit-transition: all 0.3s ease !important; + -moz-transition: all 0.3s ease !important; + -ms-transition: all 0.3s ease !important; + -o-transition: all 0.3s ease !important; + transition: all 0.3s ease !important; +} + +.icon-btn i { + font-size: 18px; +} + +.ie8 .icon-btn:hover { + filter: none !important; +} + +.icon-btn:hover { + text-decoration: none !important; + border-color: #999 !important; + color: #444 !important; + text-shadow: 0 1px 0px rgba(255, 255, 255, 1) !important; + -webkit-transition: all 0.3s ease !important; + -moz-transition: all 0.3s ease !important; + -ms-transition: all 0.3s ease !important; + -o-transition: all 0.3s ease !important; + transition: all 0.3s ease !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +.icon-btn:hover .badge { + -webkit-transition: all 0.3s ease !important; + -moz-transition: all 0.3s ease !important; + -ms-transition: all 0.3s ease !important; + -o-transition: all 0.3s ease !important; + transition: all 0.3s ease !important; + -webkit-box-shadow: none !important; + -moz-box-shadow: none !important; + box-shadow: none !important; +} + +.icon-btn div { + font-family: 'Open Sans', sans-serif; + margin-top: 5px; + margin-bottom: 10px; + color: #000; + font-size: 12px; + font-weight: 300; +} + +.icon-btn .badge { + position: absolute; + font-family: 'Open Sans', sans-serif; + font-size: 11px !important; + font-weight: 300; + top: -5px; + right: -5px; + padding: 3px 6px 3px 6px; + color: white !important; + text-shadow: none; + border-width: 0; + border-style: solid; + -webkit-border-radius: 12px !important; + -moz-border-radius: 12px !important; + border-radius: 12px !important; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +/*** +Notes +***/ + +/* Common styles for all types */ +.note { + margin: 0 0 20px 0; + padding: 15px 30px 15px 15px; + border-left: 5px solid #eee; +} + +.note h1, +.note h2, +.note h3, +.note h4 { + margin-top: 0; +} + +.note p:last-child { + margin-bottom: 0; +} +.note code, +.note .highlight { + background-color: #fff; +} + +/* Variations */ +.note-danger { + background-color: #FAEAE6; + border-color: #ed4e2a; +} + +.note-warning { + background-color: #FCF3E1; + border-color: #fcb322; +} + +.note-info { + background-color: #E8F6FC; + border-color: #57b5e3; +} + +.note-success { + background-color: #EBFCEE; + border-color: #3cc051; +} + +/* panel styles */ +.panel-default > .panel-heading { + color: inherit; +} +.panel .panel-title { + padding-top: 0; + margin-bottom: 0; +} + +/*** +Font awesome icons styles +***/ +.fontawesome-icon-list [class^="fa-"], +.fontawesome-icon-list [class*=" fa-"], +li [class^="fa-"], +li [class*=" fa-"] { + display: inline-block; + width: 1.25em; + text-align: center; +} +.fontawesome-icon-list [class^="fa-"].icon-large, +.fontawesome-icon-list [class*=" fa-"].icon-large, +li [class^="fa-"].icon-large, +li [class*=" fa-"].icon-large { + width: 1.5625em; +} +.fontawesome-icon-list .col-md-3 { + height: 32px; + line-height: 32px; +} + + +/*** +Demo Utils +***/ +.scrollspy-example { + position: relative; + height: 200px; + margin-top: 10px; + overflow: auto; +} + +.util-btn-margin-bottom-5 .btn { + margin-bottom: 5px !important; +} + +.util-btn-group-margin-bottom-5 .btn-group { + margin-bottom: 5px !important; +} + +.fontawesome-demo i { + font-size: 18px; +} + +.fontawesome-demo li { + padding-top: 5px; + padding-bottom: 5px; +} + +.glyphicons-demo ul { + padding-left: 0; + padding-bottom: 1px; + margin-bottom: 20px; + list-style: none; + overflow: hidden; +} + +.bs-glyphicons { + padding-left: 0; + padding-bottom: 1px; + margin-bottom: 20px; + list-style: none; + overflow: hidden; +} +.glyphicons-demo ul li { + float: left; + width: 25%; + height: 115px; + padding: 10px; + margin: 0 -1px -1px 0; + font-size: 12px; + line-height: 1.4; + text-align: center; + border: 1px solid #ddd; +} + +.glyphicons-demo .glyphicon { + display: block; + margin: 5px auto 10px; + font-size: 24px; +} +.glyphicons-demo ul li { + width: 12.5%; +} +.glyphicons-demo ul li [class^="glyphicon-"], .glyphicons-demo ul li [class*=" glyphicon-"] { + display: block; + text-align: center !important; + width: auto; + line-height: 1.2; +} +.glyphicons-demo ul li:hover { + background-color: rgba(86,61,124,.1); +} + +.buttons-page .btn { + margin-bottom: 5px !important; +} +.buttons-page .clearfix { + margin-bottom: 20px; +} +#topcontrol { + z-index: 99999; +} + +/* faq page */ +.faq-page .panel-heading { + padding: 0; +} +.faq-page .panel-heading h4 { + font-size: 17px; +} +.faq-page .panel-heading a { + display: block; + padding: 10px 15px 9px; +} +.faq-page .panel-heading a:hover { + color: #333; + text-decoration: underline; +} + +/* Services Box */ +.service-box p { + color: #656565; + font-size: 13px; +} +.service-box .service-box-heading { + padding: 12px 0; +} +.service-box .service-box-heading i { + padding: 0; + -webkit-border-radius: 34px; + -moz-border-radius: 34px; + border-radius: 34px; + font-size:18px; + height:32px; + width:32px; + line-height: 32px; + text-align:center; + vertical-align: baseline; +} +.service-box .service-box-heading i.blue { + color: #0da3e2; + border:1px solid #0da3e2; +} +.service-box .service-box-heading i.red { + color: #db3a1b; + border:1px solid #db3a1b; +} +.service-box .service-box-heading i.green { + color: #35aa47; + border:1px solid #35aa47; +} +.service-box .service-box-heading span { + color: #444; + font-size: 21px; + line-height: 25px; + font-weight: 400; + margin-bottom: 10px; + margin-left: 10px; + display: inline-block; +} +.service-box .service-box-heading [class^="icon-"], +.service-box [class*=" icon-"] { + display: inline-block; + text-align: center; +} +.service-box .service-box-heading [class^="icon-"].icon-large, +.service-box .service-box-heading [class*=" icon-"].icon-large { + /* increased font size for icon-large */ + width: 1.5625em; +} + +/* Blockquote Box */ +.quote-v1 { + background: #7C858E; + padding: 10px 0; + margin-left: 0; + margin-right: 0; +} +.quote-v1 a { + margin: 5px; + display: inline-block; +} +.quote-v1 span { + color: #fff; + font-size: 22px; + font-weight: 300; + margin: 13px 5px 8px; + line-height: 26px; + display: inline-block; +} +.quote-v1 a.btn-transparent { + color: #fff; + font-size: 16px; + padding: 8px 18px; + white-space: nowrap; + text-decoration: none; + border: solid 1px #fff; + background: none; +} +.quote-v1 a.btn-transparent:hover { + background: #E02222; + color: #fff; + transition: all 0.5s ease; + -o-transition: all 0.5s ease; + -moz-transition: all 0.5s ease; + -webkit-transition: all 0.5s ease; +} +.quote-v1 a.btn-transparent i { + margin-right: 10px; +} + +/* Recent Works */ +.recent-work { + position: relative; +} +.recent-work a:hover { + text-decoration: none; +} +.recent-work h2, +.ecommerce .recent-work h2 { + margin: 3px 0 5px; +} +.recent-work h2 a { + color: #3e4d5c; +} +.recent-work h2 a:hover { + color: #E02222; +} +.recent-work-item { + padding-left: 10px; +} +.recent-work .owl-buttons { + left: -74px; + right: auto; + top: 0; +} +.recent-work .recent-work-item a.recent-work-description { + padding: 10px; + display: block; + background: #fff; +} +.recent-work .recent-work-item:hover a.recent-work-description { + background: #E6400C; + transition: all 0.9s ease; + -o-transition: all 0.9s ease; + -moz-transition: all 0.9s ease; + -webkit-transition: all 0.9s ease; +} +.recent-work .recent-work-item strong { + color: #000; + display: block; + font-size: 16px; + font-weight: 300; +} +.recent-work .recent-work-item b { + color: #656565; + font-weight: 300; +} +.recent-work .recent-work-item:hover b, +.recent-work .recent-work-item:hover strong { + color: #fff; +} +.recent-work .recent-work-item em { + display: block; + overflow: hidden; + position: relative; +} +.recent-work .recent-work-item .fa { + color: #fff; + padding: 16px 30px 16px 18px; + font-size: 16px; + position: absolute; + top: 50%; + width: 47px; + height: 47px; + margin-top: -23.5px; + border-radius: 47px; + background: rgba(0,0,0,0.5); + transition: all 0.6s ease; + -o-transition: all 0.6s ease; + -moz-transition: all 0.6s ease; + -webkit-transition: all 0.6s ease; +} +.recent-work .recent-work-item .fa:hover { + color: #E02222; +} +.recent-work .recent-work-item .fa-link { + left: -100px; +} +.recent-work .recent-work-item .fa-search { + right: -100px; +} +.recent-work .recent-work-item:hover .fa-link { + left: 30%; +} +.recent-work .recent-work-item:hover .fa-search { + right: 30%; +} + +/* Mixed Block */ +/* Testimonials */ +.testimonials-v1 blockquote { + padding: 15px; + border: none; + color: #666; + display: block; + font-size: 14px; + line-height: 20px; + background: #F8F8F8; + position: relative; +} +.testimonials-v1 blockquote:before { + content: " "; + display: block; + position: absolute; + bottom: -20px; + left: 70px; + width: 0; + height: 0; + border-left: 0 inset rgba(0, 0, 0, 0); + border-right: 22px inset rgba(0, 0, 0, 0); + border-top: 22px solid #F8F8F8; +} +.testimonials-v1 blockquote:after { + width: 13px; + height: 13px; + z-index: 23; + content: " "; + display: block !important; + position: absolute; + right: 0; + bottom: 0; + background: #E6400C url(../img/blockquote-corner.png) no-repeat; +} + +.testimonials-v1 .carousel-info img { + width: 75px; + height: 75px; + padding: 3px; + border-radius: 150px !important; + border: solid 1px #f5f5f5; +} +.testimonials-v1 .carousel-info { + overflow: hidden; +} +.testimonials-v1 .carousel-info img { + margin-right: 15px; +} +.testimonials-v1 .carousel-info span { + display: block; +} +.testimonials-v1 span.testimonials-name { + color: #E6400C; + font-size: 16px; + font-weight: 300; + margin: 23px 0 7px; +} +.testimonials-v1 span.testimonials-post { + color: #656565; + font-size: 12px; +} +.testimonials-v1 .left-btn, +.testimonials-v1 .right-btn { + right: 0; + width: 26px; + height: 26px; + bottom: 30px; + border-radius: 26px !important; + position: absolute; + display: inline-block; +} +.testimonials-v1 .left-btn { + right: 30px; + background: url(../../pages/img/fa-angles.png) no-repeat 8px 8px; +} +.testimonials-v1 .right-btn { + background: url(../../pages/img/fa-angles.png) no-repeat -33px 8px; +} +.testimonials-v1 .left-btn:hover { + background: #e84d1c url(../../pages/img/fa-angles.png) no-repeat 8px -31px; +} +.testimonials-v1 .right-btn:hover { + background: #e84d1c url(../../pages/img/fa-angles.png) no-repeat -33px -31px; +} + +/* our clients */ +.our-clients { + position: relative; +} +.our-clients h2, +.ecommerce .our-clients h2 { + margin: 3px 0 5px; +} +.our-clients h2 a { + color: #3e4d5c; +} +.our-clients h2 a:hover { + color: #E02222; +} +.our-clients .client-item { + background: #f8f8f8; + margin-left: 2px; + position: relative; +} +.our-clients .owl-buttons { + left: -74px; + right: auto; + top: 0; +} +.our-clients .client-item img { + margin-left: auto; + margin-right: auto; +} +.our-clients .client-item .color-img { + display: none; +} +.our-clients .client-item:hover img { + display: none; +} +.our-clients .client-item:hover .color-img { + display: block; +} + +/* Front Carousel */ +.front-carousel .carousel-control { + margin: 0; + border: none; + height: 35px; + font-size: 24px; + font-weight: normal; + top: 40%; + width: 35px; + background: #222; + opacity: 0.5; +} +.front-carousel .carousel-control:hover { + opacity: 0.6; +} +.front-carousel .carousel-control i { + font-size: 27px; +} +.front-carousel .carousel-control.right i { + position: relative; + left: 1px; +} +.front-carousel .carousel-caption { + padding: 10px 15px 0; + background: rgba(0,0,0,0.5); + left: 0; + right: 0; + bottom: 0; + text-align: left; +} +.front-carousel .carousel-control.left { + left: 0; +} +.front-carousel .carousel-control.right { + right: 0; +} + +/* Skils */ +.front-skills span { + color: #555; + display: block; + font-size: 15px; + margin-bottom: 7px; +} +.front-skills .progress { + background: #f2f2f2; +} +.front-skills .progress-bar { + background: #EF4D2E; +} +.front-skills .progress, +.front-skills .progress-bar { + box-shadow: none; +} + +/* Team Blocks */ +.front-team .thumbnail { + border: none; +} +.front-team h3, +.ecommerce .front-team h3 { + margin:10px 0 12px; + line-height:40px; +} +.front-team h3 strong { + color: #E02222; + font-size: 20px; + font-weight: 400; +} +.front-team h3 small { + display: block; + font-size: 13px; +} +.front-team ul { + padding: 4px 0 0; +} +.front-team .social-icons { + overflow: hidden; +} + +/* Service Box v1 */ +.service-box-v1 { + text-align: center; + padding: 15px; +} +.service-box-v1 i { + padding: 15px; + font-size: 35px; +} +.service-box-v1:hover { + background: #d73d04; + transition: all 0.4s ease-in-out; + -o-transition: all 0.4s ease-in-out; + -moz-transition: all 0.4s ease-in-out; + -webkit-transition: all 0.4s ease-in-out; +} +.service-box-v1:hover i, +.service-box-v1:hover p, +.service-box-v1:hover h2 { + color: #fff; +} + +/* corp. search result */ +.content-search-view2 { + background: #EDEFF1; + padding: 20px; + margin: 0 0 20px; +} +.search-result-item { + margin: 0 -10px 20px; + padding: 0 10px 15px; + border-bottom: 1px solid #ECEBEB; +} +.search-result-item h4, +.ecommerce .search-result-item h4 { + margin-bottom: 5px; + padding: 0; +} +.search-result-item h4 a { + color: #E6400C; +} +.search-result-item p { + margin-bottom: 10px; +} +.search-link { + color: #999; + font-size: 12px; +} + +/* FAQ */ +.faq-tabbable { + padding: 0; + margin: 0; + list-style: none; + border-left: solid 2px #e44f00; +} +.faq-tabbable li { + position: relative; + margin-bottom: 1px; +} +.faq-tabbable li a { + font-size: 14px; + color: #7C858E; + display: block; + background: #F4F4F4; + padding: 12px 10px 11px 8px; +} +.faq-tabbable li:hover a, +.faq-tabbable li.active a{ + background: #e44f00; + text-decoration: none; + color: #fff; +} +.faq-tabbable li.active:after { + content: ''; + display: inline-block; + border-bottom: 6px solid transparent; + border-top: 6px solid transparent; + border-left: 6px solid #e44f00; + position: absolute; + top: 16px; + right: -5px; +} + +/* Lists */ +.front-lists-v1 li { + font-size: 14px; + margin-bottom: 5px; +} +.content-page .front-lists-v2 li { + color: #555; + font-size: 16px; + margin-bottom: 14px; + text-transform: uppercase; +} +.front-lists-v2 li i { + margin-right: 5px; + font-size: 17px; +} + +/* Blog Page */ +.blog-posts h2, +.ecommerce .blog-posts h2 { + padding-top: 0; +} +.blog-posts p { + text-align: justify; +} +.blog-posts .carousel { + margin-bottom: 0; +} +.blog-posts hr.blog-post-sep { + margin: 40px 0; +} +.blog-info { + list-style: none; + margin: 15px 0 12px 0; + padding-left:0; +} +.blog-info li { + padding: 0; + color: #555; + font-size: 13px; + margin-right: 10px; + display: inline-block; +} +.blog-info li i { + color: #E84D1C; +} + +.blog-posts .pagination li { + margin-left: -12px; + margin-right: 17px; +} + +.blog-posts .more, +.blog-sidebar .more { + color: #E84D1C; +} + +/* Blog Sidebar */ +.recent-news { + overflow: hidden; +} +.recent-news h3, +.ecommerce .recent-news h3 { + font-size: 16px; + line-height: 20px; + margin: 0; + padding: 0; +} +.recent-news h3 a { + color: #E84D1C; +} +.recent-news-inner{ + padding: 0; +} +.blog-talks .tab-style-1 ul.nav-tabs li > a { + min-width: 50px; +} +.blog-photo-stream li { + overflow: hidden; + margin: 0 5px 8px 0; + display: inline-block; +} +.blog-photo-stream li img { + width: 54px; + height: 54px; + padding: 2px; + border: solid 1px #eee; +} +.blog-photo-stream li img:hover { + border-color: #E84D1C; + box-shadow: 0 0 1px #fff; + transition: all 0.4s ease-in-out; + -o-transition: all 0.4s ease-in-out; + -ms-transition: all 0.4s ease-in-out; + -moz-transition: all 0.4s ease-in-out; + -webkit-transition: all 0.4s ease-in-out; +} +.blog-tags ul { + list-style: none; + margin: 0; + padding: 0; +} +.blog-tags li { + position: relative; + margin: 0 16px 7px 0; + display: inline-block; +} +.blog-tags li a { + color: #555; + background: #f5f5f5; + display: inline-block; + padding: 3px 5px 3px 3px; +} +.blog-tags li a:hover { + color: #fff; + background: #E84D1C; + text-decoration: none; +} +.blog-tags li a:hover i { + color: #fff; +} +.blog-tags li i { + color: #E84D1C; + margin-right: 5px; + display: inline-block; +} +.blog-tags li a:after { + top: 50%; + width: 0; + left: 100%; + height: 0; + z-index: 2; + content: " "; + display: block; + margin-top: -12px; + position: absolute; + border-left: 12px solid #f5f5f5; + border-top: 12px solid transparent; + border-bottom: 12px solid transparent; +} +.blog-tags li a:hover:after { + border-left-color: #E84D1C; +} + +.blog-talks .tab-content { + background: #FAFAFA; + padding: 20px 15px; +} +.blog-talks .nav-tabs { + margin-bottom: 0; +} +.blog-talks .nav-tabs > li { + margin-top: 1px; +} + +/* Blog Sidebar categories BEGIN */ +.sidebar-categories li a { + padding: 10px 0; + border-bottom: 1px solid #ECEBEB; + color: #333; +} +.sidebar-categories li a:hover { + background: none; +} +.sidebar-categories li > a:hover, +.sidebar-categories li.active > a, +.sidebar-categories li.active:hover > a { + color: #E84D1C; +} +.sidebar-categories li a:before { + content: "ï”"; + font-family: FontAwesome !important; + font-size: 8px; + padding-right: 10px; + position: relative; + top: -1px; +} +/* Blog Sidebar categories END */ + +/* Blog Item */ +.blog-item .blog-item-img { + margin: 6px 0 25px; +} +.blog-item .blog-item-img .carousel { + margin-bottom: 0; +} +.blog-item blockquote { + margin: 20px 40px 18px; + border-color: #E84D1C; +} +.blog-item .blog-info { + margin: 20px 0; + padding: 8px 0; + border-top: solid 1px #ECEBEB; + border-bottom: solid 1px #ECEBEB; +} +.blog-item .blog-info li { + padding-left: 13px; + border-left: solid 1px #ECEBEB; +} +.blog-item .blog-info li:first-child { + padding-left: 0; + border-left: none; +} +.blog-item .blog-item-img .carousel-control { + top: 45%; +} + +.blog-item .media { + border-bottom: solid 1px #ECEBEB; + margin-bottom: -1px; +} +.blog-item .comments { + border-top: solid 1px #ECEBEB; + padding-top: 15px; +} +.blog-item img.media-object { + top: 2px; + width: 60px; + height: 60px; + position: relative; +} +.blog-item h4.media-heading { + position: relative; + padding-top: 0; +} +.blog-item h4.media-heading span { + right: 0; + top: 3px; + color: #777; + font-size: 12px; + font-weight: 400; + position: absolute; +} +.blog-item h4.media-heading span a { + color: #E84D1C; +} + +.mix-block .tab-content .col-md-3 { + padding-right: 0; +} +.mix-block .nav-tabs > li { + margin-top: 1px; +} + +/* front steps */ +.front-steps-wrapper h2, +.ecommerce .front-steps-wrapper h2 { + color: #f0f0f0; + font-size: 22px; + line-height: 1.2; + padding-top: 10px; + margin-bottom: 5px; +} +.front-steps-wrapper .front-step1 h2, +.ecommerce .front-steps-wrapper .front-step1 h2 { + color: #fefefe; +} +.front-steps-wrapper p { + color: #fff; + font-size: 12px; + line-height: 18px; + margin-bottom: 0; +} + +.front-steps-wrapper .front-step-col { + padding-left: 0; + padding-right: 0; +} +.front-steps-wrapper .front-step-col:first-child { + padding-left: 15px; +} +.front-steps-wrapper .front-step-col:last-child { + padding-right: 15px; +} + +.front-steps-wrapper .front-step { + position: relative; + padding: 15px 20px 33px; +} +.front-steps-wrapper .front-step1 { + background: #E84D1C; +} +.front-steps-wrapper .front-step2 { + background: #7c858e; +} +.front-steps-wrapper .front-step3 { + background: #68727c; +} +.front-steps-wrapper .front-step4 { + background: #636a72; +} +.front-steps-wrapper .front-step5 { + background: #5e6369; +} +.front-steps-wrapper .front-step6 { + background: #55585d; +} + +.front-steps-wrapper .front-step:before { + color: #fff; + font: 300 125px 'Open Sans', sans-serif; + font-weight: bold; + display: block; + position: absolute; + right: -20px; + bottom: -40px; + opacity: 0.1; +} +.ie8 .front-steps-wrapper .front-step:before { + display: none !important; +} +.front-steps-wrapper .front-step1:before { + content: "1"; + opacity: 0.2; +} +.front-steps-wrapper .front-step2:before { + content: "2"; + right: -15px; +} +.front-steps-wrapper .front-step3:before { + content: "3"; +} +.front-steps-wrapper .front-step4:before { + content: "4"; +} +.front-steps-wrapper .front-step5:before { + content: "5"; +} +.front-steps-wrapper .front-step6:before { + content: "6"; +} + +.front-steps-wrapper .front-step:after { + top: 50%; + width: 0; + height: 0; + left: 100%; + z-index: 2; + content: " "; + display: block; + margin-top: -1em; + position: absolute; + border-left: 15px solid #EC7049; + border-top: 15px solid transparent; + border-bottom: 15px solid transparent; +} +.ie8 .front-steps-wrapper .front-step:after { + display: none !important; +} +.front-steps-wrapper .front-step-col:last-child .front-step:after { + display: none; +} +.front-steps-wrapper .front-step2:after { + border-left-color: #899199; +} +.front-steps-wrapper .front-step3:after { + border-left-color: #778089; +} +.front-steps-wrapper .front-step4:after { + border-left-color: #727980; +} +.front-steps-wrapper .front-step5:after { + border-left-color: #6E7278; + top: auto; + bottom: 10%; +} + +/* pricing */ +.pricing { + position: relative; + margin-bottom: 15px; + border: 3px solid #eee; +} +.pricing-active { + border: 3px solid #E84D1C; + margin-top: -10px; + box-shadow: 7px 7px rgba(232, 77, 22, 0.2); +} +.pricing:hover { + border: 3px solid #E84D1C; +} +.pricing:hover h4 { + color: #E84D1C; +} +.pricing-head { + text-align: center; +} +.pricing-head h3, +.pricing-head h4 { + margin: 0; + line-height: normal; +} +.pricing-head h3 span, +.pricing-head h4 span { + display: block; + margin-top: 5px; + font-size: 14px; + font-style: italic; +} +.pricing-head h3 { + font-weight: 300; + color: #fafafa; + padding: 12px 0; + font-size: 27px; + background: #E84D1C; + border-bottom: none; +} +.pricing-head h4 { + color: #bac39f; + padding: 5px 0; + font-size: 54px; + font-weight: 300; + background: #fbfef2; + border-bottom: solid 1px #f5f9e7; +} +.pricing-head-active h4 { + color: #E84D1C; +} +.pricing-head h4 i { + top: -8px; + font-size: 28px; + font-style: normal; + position: relative; +} +.pricing-head h4 span { + top: -10px; + font-size: 14px; + font-style: normal; + position: relative; +} + +/* Pricing Content */ +.pricing-content li { + color: #888; + font-size: 12px; + padding: 7px 15px; + border-bottom: solid 1px #f5f9e7; +} +.pricing-content li i { + top: 2px; + color: #E84D1C; + font-size: 16px; + margin-right: 5px; + position: relative; +} + +/* Pricing Footer */ +.pricing-footer { + color: #777; + font-size: 11px; + line-height: 17px; + text-align: center; + padding: 0 20px 19px; +} + +.pricing-footer .btn { + color: #fff; +} + +.pricing-footer .btn:hover { + color: #fafafa; +} + +/* Priceing Active */ +.price-active, +.pricing:hover { + z-index: 9; +} +.price-active h4 { + color: #36d7ac; +} + +.no-space-pricing .pricing:hover { + transition:box-shadow 0.2s ease-in-out; +} +.no-space-pricing .price-active .pricing-head h4, +.no-space-pricing .pricing:hover .pricing-head h4 { + color: #36d7ac; + padding: 15px 0; + font-size: 80px; + transition:color 0.5s ease-in-out; +} + + +/*** +Styler Panel +***/ +.color-panel { + z-index: 9999; + position: fixed; + top: 120px; + right: 0; +} +.color-panel .color-mode-icons { + top: 0; + right: 0; + padding: 20px; + cursor: pointer; + position: absolute; + margin: 0; +} +.color-panel .icon-color { + background: #c9c9c9 url(../../pages/img/icon-color.png) center no-repeat; +} +.color-panel .icon-color:hover { + background-color: #3d3d3d; +} +.color-panel .icon-color-close { + display: none; + background: #3d3d3d url(../../pages/img/icon-color-close.png) center no-repeat; +} +.color-panel .icon-color-close:hover { + background-color: #222; +} +.color-mode { + top: 0; + right: 40px; + width: 200px; + display: none; + padding: 20px 10px 10px; + position: absolute; + background: #3d3d3d; +} +.color-mode p { + color: #cfcfcf; + padding: 0 15px; + font-size: 15px; +} +.color-mode ul { + list-style: none; + padding: 4px 11px 5px; + display: block; + margin-bottom: 1px !important; +} +.color-mode li { + width: 28px; + height: 28px; + margin: 4px; + cursor: pointer; + list-style: none; + border: solid 1px #707070; + display: inline-block; + padding: 0 5px; +} +.color-mode li:hover, +.color-mode li.current { + border: solid 1px #ebebeb; +} +.color-mode li.current { + border: solid 2px #ebebeb; +} + +.color-mode li.color-blue { + background: #64aed9; +} +.color-mode li.color-red { + background: #e84d1c; +} +.color-mode li.color-green { + background: #67bd3c; +} +.color-mode li.color-orange { + background: #e18604; +} +.color-gray { + background: #798b97; +} +.color-turquoise { + background: #44b1c1; +} +.color-mode label { + color: #cfcfcf; + border-top: 1px solid #585858; + padding: 10px 10px 0; + margin: 0 5px; + display: block; +} +.color-mode label span { + text-transform: uppercase; +} +.color-mode label > span { + display: inline-block; + width: 85px; +} +.color-mode label > select { + margin-top: 5px; + text-transform: lowercase; +} +.color-mode label span.color-mode-label { + top: 2px; + position: relative; +} + +.fancybox-overlay { + z-index: 100000 ; +} + +.fancybox-opened { + z-index: 100001; +} \ No newline at end of file diff --git a/static/assets/corporate/css/themes/blue.css b/static/assets/corporate/css/themes/blue.css new file mode 100644 index 0000000..da4db49 --- /dev/null +++ b/static/assets/corporate/css/themes/blue.css @@ -0,0 +1,382 @@ +a { + color: #64aed9; +} +a:hover { + color: #64aed9; +} +.pre-header a:hover { + color: #64aed9; +} +.shop-currencies a.current { + color: #64aed9; +} +.header-navigation ul > li.active > a, +.header-navigation ul > li > a:hover, +.header-navigation ul > li > a:focus, +.header-navigation ul > li.open > a, +.header-navigation ul > li.open > a:hover, +.header-navigation ul > li.open > a:focus { + color: #64aed9; +} +.header-navigation li.menu-search i:hover { + color: #64aed9; +} +.sidebar a:hover { + color: #64aed9; +} +.sidebar .dropdown.open .dropdown-toggle:hover { + color: #64aed9; +} +.sidebar-menu .dropdown-menu li > a:hover, .sidebar-menu .dropdown-menu li > a:focus, .sidebar-menu li.active > a, .sidebar-menu li.active > a:hover { + color: #64aed9; +} +.content-page a:hover, +.sidebar2 a:hover { + color: #64aed9; +} +.content-page .link, .content-page .link:hover, .content-page .link:active { + color: #64aed9; +} +.page-404 .number, +.page-500 .number { + color: #64aed9; +} +.content-form-page a:hover { + color: #64aed9; +} +.quote-v1 a.btn-transparent:hover { + background: #64aed9; +} +.recent-work h2 a:hover { + color: #64aed9; +} +.recent-work .recent-work-item .fa:hover { + color: #64aed9; +} +.our-clients h2 a:hover { + color: #64aed9; +} +.front-team h3 strong { + color: #64aed9; +} +.ecommerce .header-navigation ul > li.active > a, +.ecommerce .header-navigation ul > li > a:hover, +.ecommerce .header-navigation ul > li > a:focus, +.ecommerce .header-navigation ul > li.open > a, +.ecommerce .header-navigation ul > li.open > a:hover, +.ecommerce .header-navigation ul > li.open > a:focus { + color: #64aed9; +} +.product-item h3 a:hover { + color: #64aed9; +} +.checkout-page a:hover { + color: #64aed9; +} + + +.langs-block-others:after { + border-bottom: 8px solid #64aed9; +} +.header-navigation > ul > li.dropdown:hover > a:after { + border-bottom: 8px solid #64aed9; +} +.header-navigation .dropdown-menu > li > a:hover, +.header-navigation .dropdown-menu > li.active > a, +.header-navigation .header-navigation-content .header-navigation-col li > a:hover, +.header-navigation .header-navigation-content .header-navigation-col li.active > a { + background: #64aed9; + color: #fff; +} +.header-navigation .dropdown-menu .header-navigation-content-ext li > a:hover, +.header-navigation .dropdown-menu .header-navigation-content-ext li.active > a { + background: #fff; + color: #64aed9; +} +.header-navigation .search-box:after { + border-bottom: 8px solid #64aed9; +} +.header-navigation .search-box { + border-top: solid 2px #64aed9; +} +.title-wrapper h1 span { + color: #64aed9; +} +.breadcrumb > .active { + color: #64aed9; +} +.form-info h2 em { + color: #64aed9; +} +.nav-tabs { + border-color: #64aed9; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #64aed9; +} +.content-search h1 em { + color: #64aed9; +} +.recent-work .recent-work-item:hover a.recent-work-description { + background: #64aed9; +} +.testimonials-v1 blockquote:after { + background-color: #64aed9; +} +.testimonials-v1 span.testimonials-name { + color: #64aed9; +} +.search-result-item h4 a { + color: #64aed9; +} +.top-cart-content:after { + border-bottom: 8px solid #64aed9; +} +.goods-data a, +.checkout-page .checkout-description a { + color: #64aed9; +} +.product-page .review a { + color: #64aed9; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #64aed9; + color: #fff; +} +.list-view-sorting a { + background: #fff; + color: #64aed9; +} + + + +::-moz-selection { + color: #fff; + background: #64aed9; +} +::selection { + color: #fff; + background: #64aed9; +} +.steps-block ::-moz-selection { + color: #64aed9; + background: #fff; +} +.steps-block ::selection { + color: #64aed9; + background: #fff; +} + + + +.owl-buttons .owl-prev:hover { + background-color: #64aed9; +} +.owl-buttons .owl-next:hover { + background-color: #64aed9; +} +.steps-block-red { + background: #64aed9; +} +.pre-footer .photo-stream img:hover { + border-color: #64aed9; +} +.pre-footer-light dl.f-twitter dd a { + color: #64aed9; +} +.pre-footer-light address a { + color: #64aed9; +} +.testimonials-v1 .left-btn:hover { + background-color: #64aed9; +} +.testimonials-v1 .right-btn:hover { + background-color: #64aed9; +} +.blog-tags li i, +.blog-info li i { + color: #64aed9; +} +.blog-posts .more, +.blog-sidebar .more { + color: #64aed9; +} +.recent-news h3 a { + color: #64aed9; +} +.blog-photo-stream li img:hover { + border-color: #64aed9; +} +.blog-tags li a:hover { + color: #fff; + background: #64aed9; +} +.blog-tags li a:hover:after { + border-left-color: #64aed9; +} +.sidebar-categories li > a:hover, +.sidebar-categories li.active > a, +.sidebar-categories li.active:hover > a { + color: #64aed9; +} +.blog-item blockquote { + border-color: #64aed9; +} +.blog-item h4.media-heading span a { + color: #64aed9; +} +.front-steps-wrapper .front-step1 { + background: #64aed9; +} +.pricing-active { + border: 3px solid #64aed9; + box-shadow: 7px 7px rgba(100, 174, 217, 0.2); +} +.pricing:hover { + border: 3px solid #64aed9; +} +.pricing:hover h4 { + color: #64aed9; +} +.pricing-head h3 { + background: #64aed9; +} +.pricing-head-active h4 { + color: #64aed9; +} +.pricing-content li i { + color: #64aed9; +} +.top-cart-block .fa-shopping-cart { + background: #64aed9; +} +.product-item .btn:hover { + background: #64aed9; +} +.pi-price { + color: #64aed9; +} +.product-item .add2cart:hover { + color: #fff !important; + background: #64aed9 !important; + border-color: #64aed9; +} +.goods-page-price strong, +.goods-page-total strong, +.checkout-price strong, +.checkout-total strong { + color: #64aed9; +} +.shopping-total strong, +.checkout-total-block strong { + color: #64aed9; +} +.compare-item strong { + color: #64aed9; +} +.sidebar-products .price { + color: #64aed9; +} +.price-availability-block .price strong { + color: #64aed9; +} + +.require { + color: #64aed9; +} +.content-form-page .form-control:focus { + border: solid 1px #64aed9; +} +.content-search input:focus { + border: solid 1px #64aed9; +} + +.btn-primary { + background: #64aed9; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active { + background: #64aed9; +} + +.header-navigation .dropdown-menu > li:first-child { + border-top: 2px solid #64aed9; +} +.front-steps-wrapper .front-step1:after { + border-left: 15px solid #83BEE0; +} + +.del-goods:hover, +.add-goods:hover { + background-color: #83BEE0; +} + +.sidebar a:hover > .fa-angle-down { + background-position: -22px 0; +} +.sidebar .collapsed:hover > .fa-angle-down { + background-position: -22px -37px; +} + +.top-cart-content { + border-top: solid 2px #83BEE0; +} + +.front-skills .progress-bar { + background: #83BEE0; +} + +.service-box-v1:hover { + background: #83BEE0; +} + +.header .mobi-toggler:hover { + background-color: #83BEE0; + border-color: #83BEE0; +} + +@media (max-width: 1024px) { + .header .header-navigation li > a:hover, + .header .header-navigation li.active > a, + .header .header-navigation li.open > a:hover { + color: #83BEE0 !important; + } +} + +.faq-tabbable { + border-left: solid 2px #83BEE0; +} +.faq-tabbable li:hover a, +.faq-tabbable li.active a{ + background: #83BEE0; +} +.faq-tabbable li.active:after { + border-left: 6px solid #83BEE0; +} + +.mix-filter li:hover, .mix-filter li.active { + background: #83BEE0; + color: #fff; +} +.mix-grid .mix .mix-details { + background: #83BEE0; +} +.mix-grid .mix a.mix-link, +.mix-grid .mix a.mix-preview { + background: #1ab8db; +} +.langs-block-others { + border-top: solid 2px #83BEE0; +} + +.brands .owl-buttons .owl-prev:hover { + background-position: 18px -325px; +} +.brands .owl-buttons .owl-next:hover { + background-position: -249px -325px; +} +.header-navigation ul > li.active > a/*, +.ecommerce .header-navigation ul > li.active > a*/ { + border-bottom: 2px solid #83BEE0; +} \ No newline at end of file diff --git a/static/assets/corporate/css/themes/gray.css b/static/assets/corporate/css/themes/gray.css new file mode 100644 index 0000000..5bf8309 --- /dev/null +++ b/static/assets/corporate/css/themes/gray.css @@ -0,0 +1,382 @@ +a { + color: #798b97; +} +a:hover { + color: #798b97; +} +.pre-header a:hover { + color: #798b97; +} +.shop-currencies a.current { + color: #798b97; +} +.header-navigation ul > li.active > a, +.header-navigation ul > li > a:hover, +.header-navigation ul > li > a:focus, +.header-navigation ul > li.open > a, +.header-navigation ul > li.open > a:hover, +.header-navigation ul > li.open > a:focus { + color: #798b97; +} +.header-navigation li.menu-search i:hover { + color: #798b97; +} +.sidebar a:hover { + color: #798b97; +} +.sidebar .dropdown.open .dropdown-toggle:hover { + color: #798b97; +} +.sidebar-menu .dropdown-menu li > a:hover, .sidebar-menu .dropdown-menu li > a:focus, .sidebar-menu li.active > a, .sidebar-menu li.active > a:hover { + color: #798b97; +} +.content-page a:hover, +.sidebar2 a:hover { + color: #798b97; +} +.content-page .link, .content-page .link:hover, .content-page .link:active { + color: #798b97; +} +.page-404 .number, +.page-500 .number { + color: #798b97; +} +.content-form-page a:hover { + color: #798b97; +} +.quote-v1 a.btn-transparent:hover { + background: #798b97; +} +.recent-work h2 a:hover { + color: #798b97; +} +.recent-work .recent-work-item .fa:hover { + color: #798b97; +} +.our-clients h2 a:hover { + color: #798b97; +} +.front-team h3 strong { + color: #798b97; +} +.ecommerce .header-navigation ul > li.active > a, +.ecommerce .header-navigation ul > li > a:hover, +.ecommerce .header-navigation ul > li > a:focus, +.ecommerce .header-navigation ul > li.open > a, +.ecommerce .header-navigation ul > li.open > a:hover, +.ecommerce .header-navigation ul > li.open > a:focus { + color: #798b97; +} +.product-item h3 a:hover { + color: #798b97; +} +.checkout-page a:hover { + color: #798b97; +} + + +.langs-block-others:after { + border-bottom: 8px solid #798b97; +} +.header-navigation > ul > li.dropdown:hover > a:after { + border-bottom: 8px solid #798b97; +} +.header-navigation .dropdown-menu > li > a:hover, +.header-navigation .dropdown-menu > li.active > a, +.header-navigation .header-navigation-content .header-navigation-col li > a:hover, +.header-navigation .header-navigation-content .header-navigation-col li.active > a { + background: #798b97; + color: #fff; +} +.header-navigation .dropdown-menu .header-navigation-content-ext li > a:hover, +.header-navigation .dropdown-menu .header-navigation-content-ext li.active > a { + background: #fff; + color: #798b97; +} +.header-navigation .search-box:after { + border-bottom: 8px solid #798b97; +} +.header-navigation .search-box { + border-top: solid 2px #798b97; +} +.title-wrapper h1 span { + color: #798b97; +} +.breadcrumb > .active { + color: #798b97; +} +.form-info h2 em { + color: #798b97; +} +.nav-tabs { + border-color: #798b97; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #798b97; +} +.content-search h1 em { + color: #798b97; +} +.recent-work .recent-work-item:hover a.recent-work-description { + background: #798b97; +} +.testimonials-v1 blockquote:after { + background-color: #798b97; +} +.testimonials-v1 span.testimonials-name { + color: #798b97; +} +.search-result-item h4 a { + color: #798b97; +} +.top-cart-content:after { + border-bottom: 8px solid #798b97; +} +.goods-data a, +.checkout-page .checkout-description a { + color: #798b97; +} +.product-page .review a { + color: #798b97; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #798b97; + color: #fff; +} +.list-view-sorting a { + background: #fff; + color: #798b97; +} + + + +::-moz-selection { + color: #fff; + background: #798b97; +} +::selection { + color: #fff; + background: #798b97; +} +.steps-block ::-moz-selection { + color: #798b97; + background: #fff; +} +.steps-block ::selection { + color: #798b97; + background: #fff; +} + + + +.owl-buttons .owl-prev:hover { + background-color: #798b97; +} +.owl-buttons .owl-next:hover { + background-color: #798b97; +} +.steps-block-red { + background: #798b97; +} +.pre-footer .photo-stream img:hover { + border-color: #798b97; +} +.pre-footer-light dl.f-twitter dd a { + color: #798b97; +} +.pre-footer-light address a { + color: #798b97; +} +.testimonials-v1 .left-btn:hover { + background-color: #798b97; +} +.testimonials-v1 .right-btn:hover { + background-color: #798b97; +} +.blog-tags li i, +.blog-info li i { + color: #798b97; +} +.blog-posts .more, +.blog-sidebar .more { + color: #798b97; +} +.recent-news h3 a { + color: #798b97; +} +.blog-photo-stream li img:hover { + border-color: #798b97; +} +.blog-tags li a:hover { + color: #fff; + background: #798b97; +} +.blog-tags li a:hover:after { + border-left-color: #798b97; +} +.sidebar-categories li > a:hover, +.sidebar-categories li.active > a, +.sidebar-categories li.active:hover > a { + color: #798b97; +} +.blog-item blockquote { + border-color: #798b97; +} +.blog-item h4.media-heading span a { + color: #798b97; +} +.front-steps-wrapper .front-step1 { + background: #798b97; +} +.pricing-active { + border: 3px solid #798b97; + box-shadow: 7px 7px rgba(121, 139, 151, 0.2); +} +.pricing:hover { + border: 3px solid #798b97; +} +.pricing:hover h4 { + color: #798b97; +} +.pricing-head h3 { + background: #798b97; +} +.pricing-head-active h4 { + color: #798b97; +} +.pricing-content li i { + color: #798b97; +} +.top-cart-block .fa-shopping-cart { + background: #798b97; +} +.product-item .btn:hover { + background: #798b97; +} +.pi-price { + color: #798b97; +} +.product-item .add2cart:hover { + color: #fff !important; + background: #798b97 !important; + border-color: #798b97; +} +.goods-page-price strong, +.goods-page-total strong, +.checkout-price strong, +.checkout-total strong { + color: #798b97; +} +.shopping-total strong, +.checkout-total-block strong { + color: #798b97; +} +.compare-item strong { + color: #798b97; +} +.sidebar-products .price { + color: #798b97; +} +.price-availability-block .price strong { + color: #798b97; +} + +.require { + color: #798b97; +} +.content-form-page .form-control:focus { + border: solid 1px #798b97; +} +.content-search input:focus { + border: solid 1px #798b97; +} + +.btn-primary { + background: #798b97; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active { + background: #798b97; +} + +.header-navigation .dropdown-menu > li:first-child { + border-top: 2px solid #798b97; +} +.front-steps-wrapper .front-step1:after { + border-left: 15px solid #93A2AB; +} + +.del-goods:hover, +.add-goods:hover { + background-color: #93A2AB; +} + +.sidebar a:hover > .fa-angle-down { + background-position: -66px 0; +} +.sidebar .collapsed:hover > .fa-angle-down { + background-position: -66px -37px; +} + +.top-cart-content { + border-top: solid 2px #93A2AB; +} + +.front-skills .progress-bar { + background: #93A2AB; +} + +.service-box-v1:hover { + background: #93A2AB; +} + +.header .mobi-toggler:hover { + background-color: #93A2AB; + border-color: #93A2AB; +} + +@media (max-width: 1024px) { + .header .header-navigation li > a:hover, + .header .header-navigation li.active > a, + .header .header-navigation li.open > a:hover { + color: #93A2AB !important; + } +} + +.faq-tabbable { + border-left: solid 2px #93A2AB; +} +.faq-tabbable li:hover a, +.faq-tabbable li.active a{ + background: #93A2AB; +} +.faq-tabbable li.active:after { + border-left: 6px solid #93A2AB; +} + +.mix-filter li:hover, .mix-filter li.active { + background: #93A2AB; + color: #fff; +} +.mix-grid .mix .mix-details { + background: #93A2AB; +} +.mix-grid .mix a.mix-link, +.mix-grid .mix a.mix-preview { + background: #959798; +} +.langs-block-others { + border-top: solid 2px #93A2AB; +} + +.brands .owl-buttons .owl-prev:hover { + background-position: 18px -753px; +} +.brands .owl-buttons .owl-next:hover { + background-position: -249px -753px; +} +.header-navigation ul > li.active > a/*, +.ecommerce .header-navigation ul > li.active > a*/ { + border-bottom: 2px solid #93A2AB; +} \ No newline at end of file diff --git a/static/assets/corporate/css/themes/green.css b/static/assets/corporate/css/themes/green.css new file mode 100644 index 0000000..d0adc86 --- /dev/null +++ b/static/assets/corporate/css/themes/green.css @@ -0,0 +1,382 @@ +a { + color: #67bd3c; +} +a:hover { + color: #67bd3c; +} +.pre-header a:hover { + color: #67bd3c; +} +.shop-currencies a.current { + color: #67bd3c; +} +.header-navigation ul > li.active > a, +.header-navigation ul > li > a:hover, +.header-navigation ul > li > a:focus, +.header-navigation ul > li.open > a, +.header-navigation ul > li.open > a:hover, +.header-navigation ul > li.open > a:focus { + color: #67bd3c; +} +.header-navigation li.menu-search i:hover { + color: #67bd3c; +} +.sidebar a:hover { + color: #67bd3c; +} +.sidebar .dropdown.open .dropdown-toggle:hover { + color: #67bd3c; +} +.sidebar-menu .dropdown-menu li > a:hover, .sidebar-menu .dropdown-menu li > a:focus, .sidebar-menu li.active > a, .sidebar-menu li.active > a:hover { + color: #67bd3c; +} +.content-page a:hover, +.sidebar2 a:hover { + color: #67bd3c; +} +.content-page .link, .content-page .link:hover, .content-page .link:active { + color: #67bd3c; +} +.page-404 .number, +.page-500 .number { + color: #67bd3c; +} +.content-form-page a:hover { + color: #67bd3c; +} +.quote-v1 a.btn-transparent:hover { + background: #67bd3c; +} +.recent-work h2 a:hover { + color: #67bd3c; +} +.recent-work .recent-work-item .fa:hover { + color: #67bd3c; +} +.our-clients h2 a:hover { + color: #67bd3c; +} +.front-team h3 strong { + color: #67bd3c; +} +.ecommerce .header-navigation ul > li.active > a, +.ecommerce .header-navigation ul > li > a:hover, +.ecommerce .header-navigation ul > li > a:focus, +.ecommerce .header-navigation ul > li.open > a, +.ecommerce .header-navigation ul > li.open > a:hover, +.ecommerce .header-navigation ul > li.open > a:focus { + color: #67bd3c; +} +.product-item h3 a:hover { + color: #67bd3c; +} +.checkout-page a:hover { + color: #67bd3c; +} + + +.langs-block-others:after { + border-bottom: 8px solid #67bd3c; +} +.header-navigation > ul > li.dropdown:hover > a:after { + border-bottom: 8px solid #67bd3c; +} +.header-navigation .dropdown-menu > li > a:hover, +.header-navigation .dropdown-menu > li.active > a, +.header-navigation .header-navigation-content .header-navigation-col li > a:hover, +.header-navigation .header-navigation-content .header-navigation-col li.active > a { + background: #67bd3c; + color: #fff; +} +.header-navigation .dropdown-menu .header-navigation-content-ext li > a:hover, +.header-navigation .dropdown-menu .header-navigation-content-ext li.active > a { + background: #fff; + color: #67bd3c; +} +.header-navigation .search-box:after { + border-bottom: 8px solid #67bd3c; +} +.header-navigation .search-box { + border-top: solid 2px #67bd3c; +} +.title-wrapper h1 span { + color: #67bd3c; +} +.breadcrumb > .active { + color: #67bd3c; +} +.form-info h2 em { + color: #67bd3c; +} +.nav-tabs { + border-color: #67bd3c; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #67bd3c; +} +.content-search h1 em { + color: #67bd3c; +} +.recent-work .recent-work-item:hover a.recent-work-description { + background: #67bd3c; +} +.testimonials-v1 blockquote:after { + background-color: #67bd3c; +} +.testimonials-v1 span.testimonials-name { + color: #67bd3c; +} +.search-result-item h4 a { + color: #67bd3c; +} +.top-cart-content:after { + border-bottom: 8px solid #67bd3c; +} +.goods-data a, +.checkout-page .checkout-description a { + color: #67bd3c; +} +.product-page .review a { + color: #67bd3c; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #67bd3c; + color: #fff; +} +.list-view-sorting a { + background: #fff; + color: #67bd3c; +} + + + +::-moz-selection { + color: #fff; + background: #67bd3c; +} +::selection { + color: #fff; + background: #67bd3c; +} +.steps-block ::-moz-selection { + color: #67bd3c; + background: #fff; +} +.steps-block ::selection { + color: #67bd3c; + background: #fff; +} + + + +.owl-buttons .owl-prev:hover { + background-color: #67bd3c; +} +.owl-buttons .owl-next:hover { + background-color: #67bd3c; +} +.steps-block-red { + background: #67bd3c; +} +.pre-footer .photo-stream img:hover { + border-color: #67bd3c; +} +.pre-footer-light dl.f-twitter dd a { + color: #67bd3c; +} +.pre-footer-light address a { + color: #67bd3c; +} +.testimonials-v1 .left-btn:hover { + background-color: #67bd3c; +} +.testimonials-v1 .right-btn:hover { + background-color: #67bd3c; +} +.blog-tags li i, +.blog-info li i { + color: #67bd3c; +} +.blog-posts .more, +.blog-sidebar .more { + color: #67bd3c; +} +.recent-news h3 a { + color: #67bd3c; +} +.blog-photo-stream li img:hover { + border-color: #67bd3c; +} +.blog-tags li a:hover { + color: #fff; + background: #67bd3c; +} +.blog-tags li a:hover:after { + border-left-color: #67bd3c; +} +.sidebar-categories li > a:hover, +.sidebar-categories li.active > a, +.sidebar-categories li.active:hover > a { + color: #67bd3c; +} +.blog-item blockquote { + border-color: #67bd3c; +} +.blog-item h4.media-heading span a { + color: #67bd3c; +} +.front-steps-wrapper .front-step1 { + background: #67bd3c; +} +.pricing-active { + border: 3px solid #67bd3c; + box-shadow: 7px 7px rgba(103, 189, 60, 0.2); +} +.pricing:hover { + border: 3px solid #67bd3c; +} +.pricing:hover h4 { + color: #67bd3c; +} +.pricing-head h3 { + background: #67bd3c; +} +.pricing-head-active h4 { + color: #67bd3c; +} +.pricing-content li i { + color: #67bd3c; +} +.top-cart-block .fa-shopping-cart { + background: #67bd3c; +} +.product-item .btn:hover { + background: #67bd3c; +} +.pi-price { + color: #67bd3c; +} +.product-item .add2cart:hover { + color: #fff !important; + background: #67bd3c !important; + border-color: #67bd3c; +} +.goods-page-price strong, +.goods-page-total strong, +.checkout-price strong, +.checkout-total strong { + color: #67bd3c; +} +.shopping-total strong, +.checkout-total-block strong { + color: #67bd3c; +} +.compare-item strong { + color: #67bd3c; +} +.sidebar-products .price { + color: #67bd3c; +} +.price-availability-block .price strong { + color: #67bd3c; +} + +.require { + color: #67bd3c; +} +.content-form-page .form-control:focus { + border: solid 1px #67bd3c; +} +.content-search input:focus { + border: solid 1px #67bd3c; +} + +.btn-primary { + background: #67bd3c; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active { + background: #67bd3c; +} + +.header-navigation .dropdown-menu > li:first-child { + border-top: 2px solid #67bd3c; +} +.front-steps-wrapper .front-step1:after { + border-left: 15px solid #85CA63; +} + +.del-goods:hover, +.add-goods:hover { + background-color: #85CA63; +} + +.sidebar a:hover > .fa-angle-down { + background-position: -33px 0; +} +.sidebar .collapsed:hover > .fa-angle-down { + background-position: -33px -37px; +} + +.top-cart-content { + border-top: solid 2px #85CA63; +} + +.front-skills .progress-bar { + background: #85CA63; +} + +.service-box-v1:hover { + background: #85CA63; +} + +.header .mobi-toggler:hover { + background-color: #85CA63; + border-color: #85CA63; +} + +@media (max-width: 1024px) { + .header .header-navigation li > a:hover, + .header .header-navigation li.active > a, + .header .header-navigation li.open > a:hover { + color: #85CA63 !important; + } +} + +.faq-tabbable { + border-left: solid 2px #85CA63; +} +.faq-tabbable li:hover a, +.faq-tabbable li.active a{ + background: #85CA63; +} +.faq-tabbable li.active:after { + border-left: 6px solid #85CA63; +} + +.mix-filter li:hover, .mix-filter li.active { + background: #85CA63; + color: #fff; +} +.mix-grid .mix .mix-details { + background: #85CA63; +} +.mix-grid .mix a.mix-link, +.mix-grid .mix a.mix-preview { + background: #7edb1a; +} +.langs-block-others { + border-top: solid 2px #85CA63; +} + +.brands .owl-buttons .owl-prev:hover { + background-position: 18px -432px; +} +.brands .owl-buttons .owl-next:hover { + background-position: -249px -432px; +} +.header-navigation ul > li.active > a/*, +.ecommerce .header-navigation ul > li.active > a*/ { + border-bottom: 2px solid #85CA63; +} \ No newline at end of file diff --git a/static/assets/corporate/css/themes/orange.css b/static/assets/corporate/css/themes/orange.css new file mode 100644 index 0000000..0484748 --- /dev/null +++ b/static/assets/corporate/css/themes/orange.css @@ -0,0 +1,382 @@ +a { + color: #e18604; +} +a:hover { + color: #e18604; +} +.pre-header a:hover { + color: #e18604; +} +.shop-currencies a.current { + color: #e18604; +} +.header-navigation ul > li.active > a, +.header-navigation ul > li > a:hover, +.header-navigation ul > li > a:focus, +.header-navigation ul > li.open > a, +.header-navigation ul > li.open > a:hover, +.header-navigation ul > li.open > a:focus { + color: #e18604; +} +.header-navigation li.menu-search i:hover { + color: #e18604; +} +.sidebar a:hover { + color: #e18604; +} +.sidebar .dropdown.open .dropdown-toggle:hover { + color: #e18604; +} +.sidebar-menu .dropdown-menu li > a:hover, .sidebar-menu .dropdown-menu li > a:focus, .sidebar-menu li.active > a, .sidebar-menu li.active > a:hover { + color: #e18604; +} +.content-page a:hover, +.sidebar2 a:hover { + color: #e18604; +} +.content-page .link, .content-page .link:hover, .content-page .link:active { + color: #e18604; +} +.page-404 .number, +.page-500 .number { + color: #e18604; +} +.content-form-page a:hover { + color: #e18604; +} +.quote-v1 a.btn-transparent:hover { + background: #e18604; +} +.recent-work h2 a:hover { + color: #e18604; +} +.recent-work .recent-work-item .fa:hover { + color: #e18604; +} +.our-clients h2 a:hover { + color: #e18604; +} +.front-team h3 strong { + color: #e18604; +} +.ecommerce .header-navigation ul > li.active > a, +.ecommerce .header-navigation ul > li > a:hover, +.ecommerce .header-navigation ul > li > a:focus, +.ecommerce .header-navigation ul > li.open > a, +.ecommerce .header-navigation ul > li.open > a:hover, +.ecommerce .header-navigation ul > li.open > a:focus { + color: #e18604; +} +.product-item h3 a:hover { + color: #e18604; +} +.checkout-page a:hover { + color: #e18604; +} + + +.langs-block-others:after { + border-bottom: 8px solid #e18604; +} +.header-navigation > ul > li.dropdown:hover > a:after { + border-bottom: 8px solid #e18604; +} +.header-navigation .dropdown-menu > li > a:hover, +.header-navigation .dropdown-menu > li.active > a, +.header-navigation .header-navigation-content .header-navigation-col li > a:hover, +.header-navigation .header-navigation-content .header-navigation-col li.active > a { + background: #e18604; + color: #fff; +} +.header-navigation .dropdown-menu .header-navigation-content-ext li > a:hover, +.header-navigation .dropdown-menu .header-navigation-content-ext li.active > a { + background: #fff; + color: #e18604; +} +.header-navigation .search-box:after { + border-bottom: 8px solid #e18604; +} +.header-navigation .search-box { + border-top: solid 2px #e18604; +} +.title-wrapper h1 span { + color: #e18604; +} +.breadcrumb > .active { + color: #e18604; +} +.form-info h2 em { + color: #e18604; +} +.nav-tabs { + border-color: #e18604; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #e18604; +} +.content-search h1 em { + color: #e18604; +} +.recent-work .recent-work-item:hover a.recent-work-description { + background: #e18604; +} +.testimonials-v1 blockquote:after { + background-color: #e18604; +} +.testimonials-v1 span.testimonials-name { + color: #e18604; +} +.search-result-item h4 a { + color: #e18604; +} +.top-cart-content:after { + border-bottom: 8px solid #e18604; +} +.goods-data a, +.checkout-page .checkout-description a { + color: #e18604; +} +.product-page .review a { + color: #e18604; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #e18604; + color: #fff; +} +.list-view-sorting a { + background: #fff; + color: #e18604; +} + + + +::-moz-selection { + color: #fff; + background: #e18604; +} +::selection { + color: #fff; + background: #e18604; +} +.steps-block ::-moz-selection { + color: #e18604; + background: #fff; +} +.steps-block ::selection { + color: #e18604; + background: #fff; +} + + + +.owl-buttons .owl-prev:hover { + background-color: #e18604; +} +.owl-buttons .owl-next:hover { + background-color: #e18604; +} +.steps-block-red { + background: #e18604; +} +.pre-footer .photo-stream img:hover { + border-color: #e18604; +} +.pre-footer-light dl.f-twitter dd a { + color: #e18604; +} +.pre-footer-light address a { + color: #e18604; +} +.testimonials-v1 .left-btn:hover { + background-color: #e18604; +} +.testimonials-v1 .right-btn:hover { + background-color: #e18604; +} +.blog-tags li i, +.blog-info li i { + color: #e18604; +} +.blog-posts .more, +.blog-sidebar .more { + color: #e18604; +} +.recent-news h3 a { + color: #e18604; +} +.blog-photo-stream li img:hover { + border-color: #e18604; +} +.blog-tags li a:hover { + color: #fff; + background: #e18604; +} +.blog-tags li a:hover:after { + border-left-color: #e18604; +} +.sidebar-categories li > a:hover, +.sidebar-categories li.active > a, +.sidebar-categories li.active:hover > a { + color: #e18604; +} +.blog-item blockquote { + border-color: #e18604; +} +.blog-item h4.media-heading span a { + color: #e18604; +} +.front-steps-wrapper .front-step1 { + background: #e18604; +} +.pricing-active { + border: 3px solid #e18604; + box-shadow: 7px 7px rgba(225, 134, 4, 0.2); +} +.pricing:hover { + border: 3px solid #e18604; +} +.pricing:hover h4 { + color: #e18604; +} +.pricing-head h3 { + background: #e18604; +} +.pricing-head-active h4 { + color: #e18604; +} +.pricing-content li i { + color: #e18604; +} +.top-cart-block .fa-shopping-cart { + background: #e18604; +} +.product-item .btn:hover { + background: #e18604; +} +.pi-price { + color: #e18604; +} +.product-item .add2cart:hover { + color: #fff !important; + background: #e18604 !important; + border-color: #e18604; +} +.goods-page-price strong, +.goods-page-total strong, +.checkout-price strong, +.checkout-total strong { + color: #e18604; +} +.shopping-total strong, +.checkout-total-block strong { + color: #e18604; +} +.compare-item strong { + color: #e18604; +} +.sidebar-products .price { + color: #e18604; +} +.price-availability-block .price strong { + color: #e18604; +} + +.require { + color: #e18604; +} +.content-form-page .form-control:focus { + border: solid 1px #e18604; +} +.content-search input:focus { + border: solid 1px #e18604; +} + +.btn-primary { + background: #e18604; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active { + background: #e18604; +} + +.header-navigation .dropdown-menu > li:first-child { + border-top: 2px solid #e18604; +} +.front-steps-wrapper .front-step1:after { + border-left: 15px solid #E79E36; +} + +.del-goods:hover, +.add-goods:hover { + background-color: #E79E36; +} + +.sidebar a:hover > .fa-angle-down { + background-position: -44px 0; +} +.sidebar .collapsed:hover > .fa-angle-down { + background-position: -44px -37px; +} + +.top-cart-content { + border-top: solid 2px #E79E36; +} + +.front-skills .progress-bar { + background: #E79E36; +} + +.service-box-v1:hover { + background: #E79E36; +} + +.header .mobi-toggler:hover { + background-color: #E79E36; + border-color: #E79E36; +} + +@media (max-width: 1024px) { + .header .header-navigation li > a:hover, + .header .header-navigation li.active > a, + .header .header-navigation li.open > a:hover { + color: #E79E36 !important; + } +} + +.faq-tabbable { + border-left: solid 2px #E79E36; +} +.faq-tabbable li:hover a, +.faq-tabbable li.active a{ + background: #E79E36; +} +.faq-tabbable li.active:after { + border-left: 6px solid #E79E36; +} + +.mix-filter li:hover, .mix-filter li.active { + background: #E79E36; + color: #fff; +} +.mix-grid .mix .mix-details { + background: #E79E36; +} +.mix-grid .mix a.mix-link, +.mix-grid .mix a.mix-preview { + background: #db681a; +} +.langs-block-others { + border-top: solid 2px #E79E36; +} + +.brands .owl-buttons .owl-prev:hover { + background-position: 18px -539px; +} +.brands .owl-buttons .owl-next:hover { + background-position: -249px -539px; +} +.header-navigation ul > li.active > a/*, +.ecommerce .header-navigation ul > li.active > a*/ { + border-bottom: 2px solid #E79E36; +} \ No newline at end of file diff --git a/static/assets/corporate/css/themes/red.css b/static/assets/corporate/css/themes/red.css new file mode 100644 index 0000000..7ace6ef --- /dev/null +++ b/static/assets/corporate/css/themes/red.css @@ -0,0 +1,377 @@ +a { + color: #E02222; +} +a:hover { + color: #E02222; +} +.pre-header a:hover { + color: #E02222; +} +.shop-currencies a.current { + color: #E02222; +} +.header-navigation ul > li.active > a, +.header-navigation ul > li > a:hover, +.header-navigation ul > li > a:focus, +.header-navigation ul > li.open > a, +.header-navigation ul > li.open > a:hover, +.header-navigation ul > li.open > a:focus { + color: #e02222; +} +.header-navigation li.menu-search i:hover { + color: #e02222; +} +.sidebar a:hover { + color: #E02222; +} +.sidebar .dropdown.open .dropdown-toggle:hover { + color: #E02222; +} +.sidebar-menu .dropdown-menu li > a:hover, .sidebar-menu .dropdown-menu li > a:focus, .sidebar-menu li.active > a, .sidebar-menu li.active > a:hover { + color: #E02222; +} +.content-page a:hover, +.sidebar2 a:hover { + color: #E02222; +} +.content-page .link, .content-page .link:hover, .content-page .link:active { + color: #E02222; +} +.page-404 .number, +.page-500 .number { + color: #E02222; +} +.content-form-page a:hover { + color: #E02222; +} +.quote-v1 a.btn-transparent:hover { + background: #E02222; +} +.recent-work h2 a:hover { + color: #E02222; +} +.recent-work .recent-work-item .fa:hover { + color: #E02222; +} +.our-clients h2 a:hover { + color: #E02222; +} +.front-team h3 strong { + color: #E02222; +} +.ecommerce .header-navigation ul > li.active > a, +.ecommerce .header-navigation ul > li > a:hover, +.ecommerce .header-navigation ul > li > a:focus, +.ecommerce .header-navigation ul > li.open > a, +.ecommerce .header-navigation ul > li.open > a:hover, +.ecommerce .header-navigation ul > li.open > a:focus { + color: #e02222; +} +.product-item h3 a:hover { + color: #E02222; +} +.checkout-page a:hover { + color: #E02222; +} + + +.langs-block-others:after { + border-bottom: 8px solid #e6400c; +} +.header-navigation > ul > li.dropdown:hover > a:after { + border-bottom: 8px solid #e6400c; +} +.header-navigation .dropdown-menu > li > a:hover, +.header-navigation .dropdown-menu > li.active > a, +.header-navigation .header-navigation-content .header-navigation-col li > a:hover, +.header-navigation .header-navigation-content .header-navigation-col li.active > a { + background: #e6400c; + color: #fff; +} +.header-navigation .dropdown-menu .header-navigation-content-ext li > a:hover, +.header-navigation .dropdown-menu .header-navigation-content-ext li.active > a { + background: #fff; + color: #e6400c; +} +.header-navigation .search-box:after { + border-bottom: 8px solid #e6400c; +} +.header-navigation .search-box { + border-top: solid 2px #ea4c1d; +} +.title-wrapper h1 span { + color: #e6400c; +} +.breadcrumb > .active { + color: #e6400c; +} +.form-info h2 em { + color: #e6400c; +} +.nav-tabs { + border-color: #e6400c; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #e6400c; +} +.content-search h1 em { + color: #e6400c; +} +.recent-work .recent-work-item:hover a.recent-work-description { + background: #E6400C; +} +.testimonials-v1 blockquote:after { + background-color: #E6400C; +} +.testimonials-v1 span.testimonials-name { + color: #E6400C; +} +.search-result-item h4 a { + color: #E6400C; +} +.top-cart-content:after { + border-bottom: 8px solid #e6400c; +} +.goods-data a, +.checkout-page .checkout-description a { + color: #e6400c; +} +.product-page .review a { + color: #e6400c; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #E6400C; + color: #fff; +} +.list-view-sorting a { + background: #fff; + color: #E6400C; +} + +::-moz-selection { + color: #fff; + background: #e45000; +} +::selection { + color: #fff; + background: #e45000; +} +.steps-block ::-moz-selection { + color: #e45000; + background: #fff; +} +.steps-block ::selection { + color: #e45000; + background: #fff; +} + +.owl-buttons .owl-prev:hover { + background-color: #e84d1c; +} +.owl-buttons .owl-next:hover { + background-color: #e84d1c; +} +.steps-block-red { + background: #e84d1c; +} +.pre-footer .photo-stream img:hover { + border-color: #E84D1C; +} +.pre-footer-light dl.f-twitter dd a { + color: #e84d1c; +} +.pre-footer-light address a { + color: #e84d1c; +} +.testimonials-v1 .left-btn:hover { + background-color: #e84d1c; +} +.testimonials-v1 .right-btn:hover { + background-color: #e84d1c; +} +.blog-tags li i, +.blog-info li i { + color: #E84D1C; +} +.blog-posts .more, +.blog-sidebar .more { + color: #E84D1C; +} +.recent-news h3 a { + color: #E84D1C; +} +.blog-photo-stream li img:hover { + border-color: #E84D1C; +} +.blog-tags li a:hover { + color: #fff; + background: #E84D1C; +} +.blog-tags li a:hover:after { + border-left-color: #E84D1C; +} +.sidebar-categories li > a:hover, +.sidebar-categories li.active > a, +.sidebar-categories li.active:hover > a { + color: #E84D1C; +} +.blog-item blockquote { + border-color: #E84D1C; +} +.blog-item h4.media-heading span a { + color: #E84D1C; +} +.front-steps-wrapper .front-step1 { + background: #E84D1C; +} +.pricing-active { + border: 3px solid #E84D1C; + box-shadow: 7px 7px rgba(232, 77, 22, 0.2); +} +.pricing:hover { + border: 3px solid #E84D1C; +} +.pricing:hover h4 { + color: #E84D1C; +} +.pricing-head h3 { + background: #E84D1C; +} +.pricing-head-active h4 { + color: #E84D1C; +} +.pricing-content li i { + color: #E84D1C; +} +.top-cart-block .fa-shopping-cart { + background: #e84d1c; +} +.product-item .btn:hover { + background: #e84d1c; +} +.pi-price { + color: #e84d1c; +} +.product-item .add2cart:hover { + color: #fff !important; + background: #E84D1C !important; + border-color: #E84D1C; +} +.goods-page-price strong, +.goods-page-total strong, +.checkout-price strong, +.checkout-total strong { + color: #e84d1c; +} +.shopping-total strong, +.checkout-total-block strong { + color: #e84d1c; +} +.compare-item strong { + color: #E84D1C; +} +.sidebar-products .price { + color: #E84D1C; +} +.price-availability-block .price strong { + color: #e84d1c; +} + + +.require { + color: #e94d1c; +} +.content-form-page .form-control:focus { + border: solid 1px #e94d1c; +} +.content-search input:focus { + border: solid 1px #e94d1c; +} + +.btn-primary { + background: #e94d1c; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active { + background: #cc3304; +} + +.header-navigation .dropdown-menu > li:first-child { + border-top: 2px solid #EA4C1D; +} +.front-steps-wrapper .front-step1:after { + border-left: 15px solid #EC7049; +} + +.del-goods:hover, +.add-goods:hover { + background-color: #E94D1C; +} + +.sidebar a:hover > .fa-angle-down { + background-position: -11px 0; +} +.sidebar .collapsed:hover > .fa-angle-down { + background-position: -11px -37px; +} +.top-cart-content { + border-top: solid 2px #ea4c1d; +} + +.front-skills .progress-bar { + background: #EF4D2E; +} + +.service-box-v1:hover { + background: #d73d04; +} + +.header .mobi-toggler:hover { + background-color: #e34f00; + border-color: #e34f00; +} + +@media (max-width: 1024px) { + .header .header-navigation li > a:hover, + .header .header-navigation li.active > a, + .header .header-navigation li.open > a:hover { + color: #dd4632 !important; + } +} + +.faq-tabbable { + border-left: solid 2px #e44f00; +} +.faq-tabbable li:hover a, +.faq-tabbable li.active a{ + background: #e44f00; +} +.faq-tabbable li.active:after { + border-left: 6px solid #e44f00; +} + +.mix-filter li:hover, .mix-filter li.active { + background: #e44f00; + color: #fff; +} +.mix-grid .mix .mix-details { + background: #e44f00; +} +.mix-grid .mix a.mix-link, +.mix-grid .mix a.mix-preview { + background: #DB3A1B; +} +.langs-block-others { + border-top: solid 2px #ea4c1d; +} +.brands .owl-buttons .owl-prev:hover { + background-position: 18px -217px; +} +.brands .owl-buttons .owl-next:hover { + background-position: -249px -217px; +} +.header-navigation ul > li.active > a/*, +.ecommerce .header-navigation ul > li.active > a*/ { + border-bottom: 2px solid #e64f00; +} \ No newline at end of file diff --git a/static/assets/corporate/css/themes/turquoise.css b/static/assets/corporate/css/themes/turquoise.css new file mode 100644 index 0000000..855fd47 --- /dev/null +++ b/static/assets/corporate/css/themes/turquoise.css @@ -0,0 +1,383 @@ +a { + color: #44b1c1; +} +a:hover { + color: #44b1c1; +} +.pre-header a:hover { + color: #44b1c1; +} +.shop-currencies a.current { + color: #44b1c1; +} +.header-navigation ul > li.active > a, +.header-navigation ul > li > a:hover, +.header-navigation ul > li > a:focus, +.header-navigation ul > li.open > a, +.header-navigation ul > li.open > a:hover, +.header-navigation ul > li.open > a:focus { + color: #44b1c1; +} +.header-navigation li.menu-search i:hover { + color: #44b1c1; +} +.sidebar a:hover { + color: #44b1c1; +} +.sidebar .dropdown.open .dropdown-toggle:hover { + color: #44b1c1; +} +.sidebar-menu .dropdown-menu li > a:hover, .sidebar-menu .dropdown-menu li > a:focus, .sidebar-menu li.active > a, .sidebar-menu li.active > a:hover { + color: #44b1c1; +} +.content-page a:hover, +.sidebar2 a:hover { + color: #44b1c1; +} +.content-page .link, .content-page .link:hover, .content-page .link:active { + color: #44b1c1; +} +.page-404 .number, +.page-500 .number { + color: #44b1c1; +} +.content-form-page a:hover { + color: #44b1c1; +} +.quote-v1 a.btn-transparent:hover { + background: #44b1c1; +} +.recent-work h2 a:hover { + color: #44b1c1; +} +.recent-work .recent-work-item .fa:hover { + color: #44b1c1; +} +.our-clients h2 a:hover { + color: #44b1c1; +} +.front-team h3 strong { + color: #44b1c1; +} +.ecommerce .header-navigation ul > li.active > a, +.ecommerce .header-navigation ul > li > a:hover, +.ecommerce .header-navigation ul > li > a:focus, +.ecommerce .header-navigation ul > li.open > a, +.ecommerce .header-navigation ul > li.open > a:hover, +.ecommerce .header-navigation ul > li.open > a:focus { + color: #44b1c1; +} +.product-item h3 a:hover { + color: #44b1c1; +} +.checkout-page a:hover { + color: #44b1c1; +} + + +.langs-block-others:after { + border-bottom: 8px solid #44b1c1; +} +.header-navigation > ul > li.dropdown:hover > a:after { + border-bottom: 8px solid #44b1c1; +} +.header-navigation .dropdown-menu > li > a:hover, +.header-navigation .dropdown-menu > li.active > a, +.header-navigation .header-navigation-content .header-navigation-col li > a:hover, +.header-navigation .header-navigation-content .header-navigation-col li.active > a { + background: #44b1c1; + color: #fff; +} +.header-navigation .dropdown-menu .header-navigation-content-ext li > a:hover, +.header-navigation .dropdown-menu .header-navigation-content-ext li.active > a { + background: #fff; + color: #44b1c1; +} +.header-navigation .search-box:after { + border-bottom: 8px solid #44b1c1; +} +.header-navigation .search-box { + border-top: solid 2px #44b1c1; +} +.title-wrapper h1 span { + color: #44b1c1; +} +.breadcrumb > .active { + color: #44b1c1; +} +.form-info h2 em { + color: #44b1c1; +} +.nav-tabs { + border-color: #44b1c1; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #44b1c1; +} +.content-search h1 em { + color: #44b1c1; +} +.recent-work .recent-work-item:hover a.recent-work-description { + background: #44b1c1; +} +.testimonials-v1 blockquote:after { + background-color: #44b1c1; +} +.testimonials-v1 span.testimonials-name { + color: #44b1c1; +} +.search-result-item h4 a { + color: #44b1c1; +} +.top-cart-content:after { + border-bottom: 8px solid #44b1c1; +} +.goods-data a, +.checkout-page .checkout-description a { + color: #44b1c1; +} +.product-page .review a { + color: #44b1c1; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #44b1c1; + color: #fff; +} +.list-view-sorting a { + background: #fff; + color: #44b1c1; +} + + + +::-moz-selection { + color: #fff; + background: #44b1c1; +} +::selection { + color: #fff; + background: #44b1c1; +} +.steps-block ::-moz-selection { + color: #44b1c1; + background: #fff; +} +.steps-block ::selection { + color: #44b1c1; + background: #fff; +} + + + +.owl-buttons .owl-prev:hover { + background-color: #44b1c1; +} +.owl-buttons .owl-next:hover { + background-color: #44b1c1; +} +.steps-block-red { + background: #44b1c1; +} +.pre-footer .photo-stream img:hover { + border-color: #44b1c1; +} +.pre-footer-light dl.f-twitter dd a { + color: #44b1c1; +} +.pre-footer-light address a { + color: #44b1c1; +} +.testimonials-v1 .left-btn:hover { + background-color: #44b1c1; +} +.testimonials-v1 .right-btn:hover { + background-color: #44b1c1; +} +.blog-tags li i, +.blog-info li i { + color: #44b1c1; +} +.blog-posts .more, +.blog-sidebar .more { + color: #44b1c1; +} +.recent-news h3 a { + color: #44b1c1; +} +.blog-photo-stream li img:hover { + border-color: #44b1c1; +} +.blog-tags li a:hover { + color: #fff; + background: #44b1c1; +} +.blog-tags li a:hover:after { + border-left-color: #44b1c1; +} +.sidebar-categories li > a:hover, +.sidebar-categories li.active > a, +.sidebar-categories li.active:hover > a { + color: #44b1c1; +} +.blog-item blockquote { + border-color: #44b1c1; +} +.blog-item h4.media-heading span a { + color: #44b1c1; +} +.front-steps-wrapper .front-step1 { + background: #44b1c1; +} +.pricing-active { + border: 3px solid #44b1c1; + box-shadow: 7px 7px rgba(68, 177, 193, 0.2); +} +.pricing:hover { + border: 3px solid #44b1c1; +} +.pricing:hover h4 { + color: #44b1c1; +} +.pricing-head h3 { + background: #44b1c1; +} +.pricing-head-active h4 { + color: #44b1c1; +} +.pricing-content li i { + color: #44b1c1; +} +.top-cart-block .fa-shopping-cart { + background: #44b1c1; +} +.product-item .btn:hover { + background: #44b1c1; +} +.pi-price { + color: #44b1c1; +} +.product-item .add2cart:hover { + color: #fff !important; + background: #44b1c1 !important; + border-color: #44b1c1; +} +.goods-page-price strong, +.goods-page-total strong, +.checkout-price strong, +.checkout-total strong { + color: #44b1c1; +} +.shopping-total strong, +.checkout-total-block strong { + color: #44b1c1; +} +.compare-item strong { + color: #44b1c1; +} +.sidebar-products .price { + color: #44b1c1; +} +.price-availability-block .price strong { + color: #44b1c1; +} + +.require { + color: #44b1c1; +} +.content-form-page .form-control:focus { + border: solid 1px #44b1c1; +} +.content-search input:focus { + border: solid 1px #44b1c1; +} + +.btn-primary { + background: #44b1c1; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active { + background: #44b1c1; +} + +.header-navigation .dropdown-menu > li:first-child { + border-top: 2px solid #44b1c1; +} +.front-steps-wrapper .front-step1:after { + border-left: 15px solid #69C0CD; +} + +.del-goods:hover, +.add-goods:hover { + background-color: #69C0CD; +} + +.sidebar a:hover > .fa-angle-down { + background-position: -55px 0; +} +.sidebar .collapsed:hover > .fa-angle-down { + background-position: -55px -37px; +} + +.top-cart-content { + border-top: solid 2px #69C0CD; +} + +.front-skills .progress-bar { + background: #69C0CD; +} + +.service-box-v1:hover { + background: #69C0CD; +} + +.header .mobi-toggler:hover { + background-color: #69C0CD; + border-color: #69C0CD; +} + +@media (max-width: 1024px) { + .header .header-navigation li > a:hover, + .header .header-navigation li.active > a, + .header .header-navigation li.open > a:hover { + color: #69C0CD !important; + } +} + + +.faq-tabbable { + border-left: solid 2px #69C0CD; +} +.faq-tabbable li:hover a, +.faq-tabbable li.active a{ + background: #69C0CD; +} +.faq-tabbable li.active:after { + border-left: 6px solid #69C0CD; +} + +.mix-filter li:hover, .mix-filter li.active { + background: #69C0CD; + color: #fff; +} +.mix-grid .mix .mix-details { + background: #69C0CD; +} +.mix-grid .mix a.mix-link, +.mix-grid .mix a.mix-preview { + background: #1adbd2; +} +.langs-block-others { + border-top: solid 2px #69C0CD; +} + +.brands .owl-buttons .owl-prev:hover { + background-position: 18px -646px; +} +.brands .owl-buttons .owl-next:hover { + background-position: -249px -646px; +} +.header-navigation ul > li.active > a/*, +.ecommerce .header-navigation ul > li.active > a*/ { + border-bottom: 2px solid #69C0CD; +} \ No newline at end of file diff --git a/static/assets/corporate/img/Thumbs.db b/static/assets/corporate/img/Thumbs.db new file mode 100644 index 0000000..75a193c Binary files /dev/null and b/static/assets/corporate/img/Thumbs.db differ diff --git a/static/assets/corporate/img/blockquote-corner-another-color.png b/static/assets/corporate/img/blockquote-corner-another-color.png new file mode 100644 index 0000000..ffa7937 Binary files /dev/null and b/static/assets/corporate/img/blockquote-corner-another-color.png differ diff --git a/static/assets/corporate/img/blockquote-corner.png b/static/assets/corporate/img/blockquote-corner.png new file mode 100644 index 0000000..b1f1b12 Binary files /dev/null and b/static/assets/corporate/img/blockquote-corner.png differ diff --git a/static/assets/corporate/img/fa-angle-brands.png b/static/assets/corporate/img/fa-angle-brands.png new file mode 100644 index 0000000..d41fbfa Binary files /dev/null and b/static/assets/corporate/img/fa-angle-brands.png differ diff --git a/static/assets/corporate/img/fa-angle-down-langs.png b/static/assets/corporate/img/fa-angle-down-langs.png new file mode 100644 index 0000000..b8cb895 Binary files /dev/null and b/static/assets/corporate/img/fa-angle-down-langs.png differ diff --git a/static/assets/corporate/img/fa-angles.png b/static/assets/corporate/img/fa-angles.png new file mode 100644 index 0000000..f5715b8 Binary files /dev/null and b/static/assets/corporate/img/fa-angles.png differ diff --git a/static/assets/corporate/img/icon-color-close.png b/static/assets/corporate/img/icon-color-close.png new file mode 100644 index 0000000..9b7dfac Binary files /dev/null and b/static/assets/corporate/img/icon-color-close.png differ diff --git a/static/assets/corporate/img/icon-color.png b/static/assets/corporate/img/icon-color.png new file mode 100644 index 0000000..b9666ee Binary files /dev/null and b/static/assets/corporate/img/icon-color.png differ diff --git a/static/assets/corporate/img/icons/Thumbs.db b/static/assets/corporate/img/icons/Thumbs.db new file mode 100644 index 0000000..f707b3e Binary files /dev/null and b/static/assets/corporate/img/icons/Thumbs.db differ diff --git a/static/assets/corporate/img/icons/add-goods.png b/static/assets/corporate/img/icons/add-goods.png new file mode 100644 index 0000000..19fc270 Binary files /dev/null and b/static/assets/corporate/img/icons/add-goods.png differ diff --git a/static/assets/corporate/img/icons/del-goods.png b/static/assets/corporate/img/icons/del-goods.png new file mode 100644 index 0000000..d29b8bd Binary files /dev/null and b/static/assets/corporate/img/icons/del-goods.png differ diff --git a/static/assets/corporate/img/icons/search-icon.png b/static/assets/corporate/img/icons/search-icon.png new file mode 100644 index 0000000..cb07d45 Binary files /dev/null and b/static/assets/corporate/img/icons/search-icon.png differ diff --git a/static/assets/corporate/img/icons/shop-cart-icon.png b/static/assets/corporate/img/icons/shop-cart-icon.png new file mode 100644 index 0000000..0e35f2b Binary files /dev/null and b/static/assets/corporate/img/icons/shop-cart-icon.png differ diff --git a/static/assets/corporate/img/icons/sidebar-toggle-icons.png b/static/assets/corporate/img/icons/sidebar-toggle-icons.png new file mode 100644 index 0000000..3fa86c5 Binary files /dev/null and b/static/assets/corporate/img/icons/sidebar-toggle-icons.png differ diff --git a/static/assets/corporate/img/icons/toggler.png b/static/assets/corporate/img/icons/toggler.png new file mode 100644 index 0000000..365e08e Binary files /dev/null and b/static/assets/corporate/img/icons/toggler.png differ diff --git a/static/assets/corporate/img/icons/top-search-icon.png b/static/assets/corporate/img/icons/top-search-icon.png new file mode 100644 index 0000000..78609d3 Binary files /dev/null and b/static/assets/corporate/img/icons/top-search-icon.png differ diff --git a/static/assets/corporate/img/layerslider-arrows.png b/static/assets/corporate/img/layerslider-arrows.png new file mode 100644 index 0000000..fa21c03 Binary files /dev/null and b/static/assets/corporate/img/layerslider-arrows.png differ diff --git a/static/assets/corporate/img/logos/0logo-blue-small.png b/static/assets/corporate/img/logos/0logo-blue-small.png new file mode 100644 index 0000000..3cd84a2 Binary files /dev/null and b/static/assets/corporate/img/logos/0logo-blue-small.png differ diff --git a/static/assets/corporate/img/logos/0logo-blue.png b/static/assets/corporate/img/logos/0logo-blue.png new file mode 100644 index 0000000..1793fab Binary files /dev/null and b/static/assets/corporate/img/logos/0logo-blue.png differ diff --git a/static/assets/corporate/img/logos/0logo-green.png b/static/assets/corporate/img/logos/0logo-green.png new file mode 100644 index 0000000..13b5291 Binary files /dev/null and b/static/assets/corporate/img/logos/0logo-green.png differ diff --git a/static/assets/corporate/img/logos/0logo-orange.png b/static/assets/corporate/img/logos/0logo-orange.png new file mode 100644 index 0000000..ed19cd4 Binary files /dev/null and b/static/assets/corporate/img/logos/0logo-orange.png differ diff --git a/static/assets/corporate/img/logos/Thumbs.db b/static/assets/corporate/img/logos/Thumbs.db new file mode 100644 index 0000000..35d17be Binary files /dev/null and b/static/assets/corporate/img/logos/Thumbs.db differ diff --git a/static/assets/corporate/img/logos/logo-corp-blue.png b/static/assets/corporate/img/logos/logo-corp-blue.png new file mode 100644 index 0000000..fe6c40f Binary files /dev/null and b/static/assets/corporate/img/logos/logo-corp-blue.png differ diff --git a/static/assets/corporate/img/logos/logo-corp-gray.png b/static/assets/corporate/img/logos/logo-corp-gray.png new file mode 100644 index 0000000..7745f0b Binary files /dev/null and b/static/assets/corporate/img/logos/logo-corp-gray.png differ diff --git a/static/assets/corporate/img/logos/logo-corp-green.png b/static/assets/corporate/img/logos/logo-corp-green.png new file mode 100644 index 0000000..f37abba Binary files /dev/null and b/static/assets/corporate/img/logos/logo-corp-green.png differ diff --git a/static/assets/corporate/img/logos/logo-corp-orange.png b/static/assets/corporate/img/logos/logo-corp-orange.png new file mode 100644 index 0000000..16544c6 Binary files /dev/null and b/static/assets/corporate/img/logos/logo-corp-orange.png differ diff --git a/static/assets/corporate/img/logos/logo-corp-red.png b/static/assets/corporate/img/logos/logo-corp-red.png new file mode 100644 index 0000000..ac45f77 Binary files /dev/null and b/static/assets/corporate/img/logos/logo-corp-red.png differ diff --git a/static/assets/corporate/img/logos/logo-corp-turquoise.png b/static/assets/corporate/img/logos/logo-corp-turquoise.png new file mode 100644 index 0000000..52682b2 Binary files /dev/null and b/static/assets/corporate/img/logos/logo-corp-turquoise.png differ diff --git a/static/assets/corporate/img/logos/logo-red.png b/static/assets/corporate/img/logos/logo-red.png new file mode 100644 index 0000000..cdcfe17 Binary files /dev/null and b/static/assets/corporate/img/logos/logo-red.png differ diff --git a/static/assets/corporate/img/logos/logo-shop-blue.png b/static/assets/corporate/img/logos/logo-shop-blue.png new file mode 100644 index 0000000..93d2d34 Binary files /dev/null and b/static/assets/corporate/img/logos/logo-shop-blue.png differ diff --git a/static/assets/corporate/img/logos/logo-shop-gray.png b/static/assets/corporate/img/logos/logo-shop-gray.png new file mode 100644 index 0000000..092a278 Binary files /dev/null and b/static/assets/corporate/img/logos/logo-shop-gray.png differ diff --git a/static/assets/corporate/img/logos/logo-shop-green.png b/static/assets/corporate/img/logos/logo-shop-green.png new file mode 100644 index 0000000..c9784f4 Binary files /dev/null and b/static/assets/corporate/img/logos/logo-shop-green.png differ diff --git a/static/assets/corporate/img/logos/logo-shop-orange.png b/static/assets/corporate/img/logos/logo-shop-orange.png new file mode 100644 index 0000000..51f905c Binary files /dev/null and b/static/assets/corporate/img/logos/logo-shop-orange.png differ diff --git a/static/assets/corporate/img/logos/logo-shop-red.png b/static/assets/corporate/img/logos/logo-shop-red.png new file mode 100644 index 0000000..eea2011 Binary files /dev/null and b/static/assets/corporate/img/logos/logo-shop-red.png differ diff --git a/static/assets/corporate/img/logos/logo-shop-turquoise.png b/static/assets/corporate/img/logos/logo-shop-turquoise.png new file mode 100644 index 0000000..0619793 Binary files /dev/null and b/static/assets/corporate/img/logos/logo-shop-turquoise.png differ diff --git a/static/assets/corporate/img/logos/shop-logo-red.png b/static/assets/corporate/img/logos/shop-logo-red.png new file mode 100644 index 0000000..0818b6a Binary files /dev/null and b/static/assets/corporate/img/logos/shop-logo-red.png differ diff --git a/static/assets/corporate/img/new.png b/static/assets/corporate/img/new.png new file mode 100644 index 0000000..52e5428 Binary files /dev/null and b/static/assets/corporate/img/new.png differ diff --git a/static/assets/corporate/img/payments/MasterCard.jpg b/static/assets/corporate/img/payments/MasterCard.jpg new file mode 100644 index 0000000..a20a4b9 Binary files /dev/null and b/static/assets/corporate/img/payments/MasterCard.jpg differ diff --git a/static/assets/corporate/img/payments/PayPal.jpg b/static/assets/corporate/img/payments/PayPal.jpg new file mode 100644 index 0000000..291c2c5 Binary files /dev/null and b/static/assets/corporate/img/payments/PayPal.jpg differ diff --git a/static/assets/corporate/img/payments/Thumbs.db b/static/assets/corporate/img/payments/Thumbs.db new file mode 100644 index 0000000..fc8b556 Binary files /dev/null and b/static/assets/corporate/img/payments/Thumbs.db differ diff --git a/static/assets/corporate/img/payments/american-express.jpg b/static/assets/corporate/img/payments/american-express.jpg new file mode 100644 index 0000000..ca94e6f Binary files /dev/null and b/static/assets/corporate/img/payments/american-express.jpg differ diff --git a/static/assets/corporate/img/payments/fa-angle-right-info.png b/static/assets/corporate/img/payments/fa-angle-right-info.png new file mode 100644 index 0000000..60cb53a Binary files /dev/null and b/static/assets/corporate/img/payments/fa-angle-right-info.png differ diff --git a/static/assets/corporate/img/payments/visa.jpg b/static/assets/corporate/img/payments/visa.jpg new file mode 100644 index 0000000..e8f9976 Binary files /dev/null and b/static/assets/corporate/img/payments/visa.jpg differ diff --git a/static/assets/corporate/img/payments/western-union.jpg b/static/assets/corporate/img/payments/western-union.jpg new file mode 100644 index 0000000..acb7678 Binary files /dev/null and b/static/assets/corporate/img/payments/western-union.jpg differ diff --git a/static/assets/corporate/img/sale.png b/static/assets/corporate/img/sale.png new file mode 100644 index 0000000..0ad5016 Binary files /dev/null and b/static/assets/corporate/img/sale.png differ diff --git a/static/assets/corporate/img/step3-angle-right.png b/static/assets/corporate/img/step3-angle-right.png new file mode 100644 index 0000000..65f4965 Binary files /dev/null and b/static/assets/corporate/img/step3-angle-right.png differ diff --git a/static/assets/corporate/img/syncfusion-icons-white.png b/static/assets/corporate/img/syncfusion-icons-white.png new file mode 100644 index 0000000..625dcc0 Binary files /dev/null and b/static/assets/corporate/img/syncfusion-icons-white.png differ diff --git a/static/assets/corporate/img/syncfusion-icons.png b/static/assets/corporate/img/syncfusion-icons.png new file mode 100644 index 0000000..7ee6873 Binary files /dev/null and b/static/assets/corporate/img/syncfusion-icons.png differ diff --git a/static/assets/corporate/img/up.png b/static/assets/corporate/img/up.png new file mode 100644 index 0000000..74bb274 Binary files /dev/null and b/static/assets/corporate/img/up.png differ diff --git a/static/assets/corporate/scripts/back-to-top.js b/static/assets/corporate/scripts/back-to-top.js new file mode 100644 index 0000000..709b378 --- /dev/null +++ b/static/assets/corporate/scripts/back-to-top.js @@ -0,0 +1,76 @@ +//** jQuery Scroll to Top Control script- (c) Dynamic Drive DHTML code library: http://www.dynamicdrive.com. +//** Available/ usage terms at http://www.dynamicdrive.com (March 30th, 09') +//** v1.1 (April 7th, 09'): +//** 1) Adds ability to scroll to an absolute position (from top of page) or specific element on the page instead. +//** 2) Fixes scroll animation not working in Opera. + + +var scrolltotop={ + //startline: Integer. Number of pixels from top of doc scrollbar is scrolled before showing control + //scrollto: Keyword (Integer, or "Scroll_to_Element_ID"). How far to scroll document up when control is clicked on (0=top). + setting: {startline:100, scrollto: 0, scrollduration:1000, fadeduration:[500, 100]}, + controlHTML: '', //HTML for control, which is auto wrapped in DIV w/ ID="topcontrol" + controlattrs: {offsetx:10, offsety:10}, //offset of control relative to right/ bottom of window corner + anchorkeyword: '#top', //Enter href value of HTML anchors on the page that should also act as "Scroll Up" links + + state: {isvisible:false, shouldvisible:false}, + + scrollup:function(){ + if (!this.cssfixedsupport) //if control is positioned using JavaScript + this.$control.css({opacity:0}) //hide control immediately after clicking it + var dest=isNaN(this.setting.scrollto)? this.setting.scrollto : parseInt(this.setting.scrollto) + if (typeof dest=="string" && jQuery('#'+dest).length==1) //check element set by string exists + dest=jQuery('#'+dest).offset().top + else + dest=0 + this.$body.animate({scrollTop: dest}, this.setting.scrollduration); + }, + + keepfixed:function(){ + var $window=jQuery(window) + var controlx=$window.scrollLeft() + $window.width() - this.$control.width() - this.controlattrs.offsetx + var controly=$window.scrollTop() + $window.height() - this.$control.height() - this.controlattrs.offsety + this.$control.css({left:controlx+'px', top:controly+'px'}) + }, + + togglecontrol:function(){ + var scrolltop=jQuery(window).scrollTop() + if (!this.cssfixedsupport) + this.keepfixed() + this.state.shouldvisible=(scrolltop>=this.setting.startline)? true : false + if (this.state.shouldvisible && !this.state.isvisible){ + this.$control.stop().animate({opacity:1}, this.setting.fadeduration[0]) + this.state.isvisible=true + } + else if (this.state.shouldvisible==false && this.state.isvisible){ + this.$control.stop().animate({opacity:0}, this.setting.fadeduration[1]) + this.state.isvisible=false + } + }, + + init:function(){ + jQuery(document).ready(function($){ + var mainobj=scrolltotop + var iebrws=document.all + mainobj.cssfixedsupport=!iebrws || iebrws && document.compatMode=="CSS1Compat" && window.XMLHttpRequest //not IE or IE7+ browsers in standards mode + mainobj.$body=(window.opera)? (document.compatMode=="CSS1Compat"? $('html') : $('body')) : $('html,body') + mainobj.$control=$('
'+mainobj.controlHTML+'
') + .css({position:mainobj.cssfixedsupport? 'fixed' : 'absolute', bottom:mainobj.controlattrs.offsety, right:mainobj.controlattrs.offsetx, opacity:0, cursor:'pointer'}) + .attr({title:'Scroll Back to Top'}) + .click(function(){mainobj.scrollup(); return false}) + .appendTo('body') + if (document.all && !window.XMLHttpRequest && mainobj.$control.text()!='') //loose check for IE6 and below, plus whether control contains any text + mainobj.$control.css({width:mainobj.$control.width()}) //IE6- seems to require an explicit width on a DIV containing text + mainobj.togglecontrol() + $('a[href="' + mainobj.anchorkeyword +'"]').click(function(){ + mainobj.scrollup() + return false + }) + $(window).bind('scroll resize', function(e){ + mainobj.togglecontrol() + }) + }) + } +} + +scrolltotop.init() diff --git a/static/assets/corporate/scripts/layout.js b/static/assets/corporate/scripts/layout.js new file mode 100644 index 0000000..fafe733 --- /dev/null +++ b/static/assets/corporate/scripts/layout.js @@ -0,0 +1,502 @@ +var Layout = function () { + + // IE mode + var isRTL = false; + var isIE8 = false; + var isIE9 = false; + var isIE10 = false; + var isIE11 = false; + + var responsive = true; + + var responsiveHandlers = []; + + var handleInit = function() { + + if ($('body').css('direction') === 'rtl') { + isRTL = true; + } + + isIE8 = !! navigator.userAgent.match(/MSIE 8.0/); + isIE9 = !! navigator.userAgent.match(/MSIE 9.0/); + isIE10 = !! navigator.userAgent.match(/MSIE 10.0/); + isIE11 = !! navigator.userAgent.match(/MSIE 11.0/); + + if (isIE10) { + jQuery('html').addClass('ie10'); // detect IE10 version + } + if (isIE11) { + jQuery('html').addClass('ie11'); // detect IE11 version + } + } + + // runs callback functions set by App.addResponsiveHandler(). + var runResponsiveHandlers = function () { + // reinitialize other subscribed elements + for (var i in responsiveHandlers) { + var each = responsiveHandlers[i]; + each.call(); + } + } + + // handle the layout reinitialization on window resize + var handleResponsiveOnResize = function () { + var resize; + if (isIE8) { + var currheight; + $(window).resize(function () { + if (currheight == document.documentElement.clientHeight) { + return; //quite event since only body resized not window. + } + if (resize) { + clearTimeout(resize); + } + resize = setTimeout(function () { + runResponsiveHandlers(); + }, 50); // wait 50ms until window resize finishes. + currheight = document.documentElement.clientHeight; // store last body client height + }); + } else { + $(window).resize(function () { + if (resize) { + clearTimeout(resize); + } + resize = setTimeout(function () { + runResponsiveHandlers(); + }, 50); // wait 50ms until window resize finishes. + }); + } + } + + var handleIEFixes = function() { + //fix html5 placeholder attribute for ie7 & ie8 + if (isIE8 || isIE9) { // ie8 & ie9 + // this is html5 placeholder fix for inputs, inputs with placeholder-no-fix class will be skipped(e.g: we need this for password fields) + jQuery('input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)').each(function () { + + var input = jQuery(this); + + if (input.val() == '' && input.attr("placeholder") != '') { + input.addClass("placeholder").val(input.attr('placeholder')); + } + + input.focus(function () { + if (input.val() == input.attr('placeholder')) { + input.val(''); + } + }); + + input.blur(function () { + if (input.val() == '' || input.val() == input.attr('placeholder')) { + input.val(input.attr('placeholder')); + } + }); + }); + } + } + + // Handles scrollable contents using jQuery SlimScroll plugin. + var handleScrollers = function () { + $('.scroller').each(function () { + var height; + if ($(this).attr("data-height")) { + height = $(this).attr("data-height"); + } else { + height = $(this).css('height'); + } + $(this).slimScroll({ + allowPageScroll: true, // allow page scroll when the element scroll is ended + size: '7px', + color: ($(this).attr("data-handle-color") ? $(this).attr("data-handle-color") : '#bbb'), + railColor: ($(this).attr("data-rail-color") ? $(this).attr("data-rail-color") : '#eaeaea'), + position: isRTL ? 'left' : 'right', + height: height, + alwaysVisible: ($(this).attr("data-always-visible") == "1" ? true : false), + railVisible: ($(this).attr("data-rail-visible") == "1" ? true : false), + disableFadeOut: true + }); + }); + } + + var handleSearch = function() { + $('.search-btn').click(function () { + if($('.search-btn').hasClass('show-search-icon')){ + if ($(window).width()>767) { + $('.search-box').fadeOut(300); + } else { + $('.search-box').fadeOut(0); + } + $('.search-btn').removeClass('show-search-icon'); + } else { + if ($(window).width()>767) { + $('.search-box').fadeIn(300); + } else { + $('.search-box').fadeIn(0); + } + $('.search-btn').addClass('show-search-icon'); + } + }); + + // close search box on body click + if($('.search-btn').size() != 0) { + $('.search-box, .search-btn').on('click', function(e){ + e.stopPropagation(); + }); + + $('body').on('click', function() { + if ($('.search-btn').hasClass('show-search-icon')) { + $('.search-btn').removeClass("show-search-icon"); + $('.search-box').fadeOut(300); + } + }); + } + } + + var handleMenu = function() { + $(".header .navbar-toggle").click(function () { + if ($(".header .navbar-collapse").hasClass("open")) { + $(".header .navbar-collapse").slideDown(300) + .removeClass("open"); + } else { + $(".header .navbar-collapse").slideDown(300) + .addClass("open"); + } + }); + } + var handleSubMenuExt = function() { + $(".header-navigation .dropdown").on("hover", function() { + if ($(this).children(".header-navigation-content-ext").show()) { + if ($(".header-navigation-content-ext").height()>=$(".header-navigation-description").height()) { + $(".header-navigation-description").css("height", $(".header-navigation-content-ext").height()+22); + } + } + }); + } + + var handleSidebarMenu = function () { + $(".sidebar .dropdown > a").click(function (event) { + if ($(this).next().hasClass('dropdown-menu')) { + event.preventDefault(); + if ($(this).hasClass("collapsed") == false) { + $(this).addClass("collapsed"); + $(this).siblings(".dropdown-menu").slideDown(300); + } else { + $(this).removeClass("collapsed"); + $(this).siblings(".dropdown-menu").slideUp(300); + } + } + }); + } + + function handleDifInits() { + $(".header .navbar-toggle span:nth-child(2)").addClass("short-icon-bar"); + $(".header .navbar-toggle span:nth-child(4)").addClass("short-icon-bar"); + } + + function handleUniform() { + if (!jQuery().uniform) { + return; + } + var test = $("input[type=checkbox]:not(.toggle), input[type=radio]:not(.toggle, .star)"); + if (test.size() > 0) { + test.each(function () { + if ($(this).parents(".checker").size() == 0) { + $(this).show(); + $(this).uniform(); + } + }); + } + } + + var handleFancybox = function () { + if (!jQuery.fancybox) { + return; + } + + jQuery(".fancybox-fast-view").fancybox(); + + if (jQuery(".fancybox-button").size() > 0) { + jQuery(".fancybox-button").fancybox({ + groupAttr: 'data-rel', + prevEffect: 'none', + nextEffect: 'none', + closeBtn: true, + helpers: { + title: { + type: 'inside' + } + } + }); + + $('.fancybox-video').fancybox({ + type: 'iframe' + }); + } + } + + // Handles Bootstrap Accordions. + var handleAccordions = function () { + + jQuery('body').on('shown.bs.collapse', '.accordion.scrollable', function (e) { + Layout.scrollTo($(e.target), -100); + }); + + } + + // Handles Bootstrap Tabs. + var handleTabs = function () { + // fix content height on tab click + $('body').on('shown.bs.tab', '.nav.nav-tabs', function () { + handleSidebarAndContentHeight(); + }); + + //activate tab if tab id provided in the URL + if (location.hash) { + var tabid = location.hash.substr(1); + $('a[href="#' + tabid + '"]').click(); + } + } + + var handleMobiToggler = function () { + $(".mobi-toggler").on("click", function(event) { + event.preventDefault();//the default action of the event will not be triggered + + $(".header").toggleClass("menuOpened"); + $(".header").find(".header-navigation").toggle(300); + }); + } + + var handleTheme = function () { + + var panel = $('.color-panel'); + + // handle theme colors + var setColor = function (color) { + $('#style-color').attr("href", "assets/corporate/css/themes/" + color + ".css"); + $('.corporate .site-logo img').attr("src", "assets/corporate/img/logos/logo-corp-" + color + ".png"); + $('.ecommerce .site-logo img').attr("src", "assets/corporate/img/logos/logo-shop-" + color + ".png"); + } + + $('.icon-color', panel).click(function () { + $('.color-mode').show(); + $('.icon-color-close').show(); + }); + + $('.icon-color-close', panel).click(function () { + $('.color-mode').hide(); + $('.icon-color-close').hide(); + }); + + $('li', panel).click(function () { + var color = $(this).attr("data-style"); + setColor(color); + $('.inline li', panel).removeClass("current"); + $(this).addClass("current"); + }); + } + + return { + init: function () { + // init core variables + handleTheme(); + handleInit(); + handleResponsiveOnResize(); + handleIEFixes(); + handleSearch(); + handleFancybox(); + handleDifInits(); + handleSidebarMenu(); + handleAccordions(); + handleMenu(); + handleScrollers(); + handleSubMenuExt(); + handleMobiToggler(); + }, + + initUniform: function (els) { + if (els) { + jQuery(els).each(function () { + if ($(this).parents(".checker").size() == 0) { + $(this).show(); + $(this).uniform(); + } + }); + } else { + handleUniform(); + } + }, + + initTwitter: function () { + !function(d,s,id){ + var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);} + }(document,"script","twitter-wjs"); + }, + + initTouchspin: function () { + $(".product-quantity .form-control").TouchSpin({ + buttondown_class: "btn quantity-down", + buttonup_class: "btn quantity-up" + }); + $(".quantity-down").html(""); + $(".quantity-up").html(""); + }, + + initFixHeaderWithPreHeader: function () { + jQuery(window).scroll(function() { + if (jQuery(window).scrollTop()>37){ + jQuery("body").addClass("page-header-fixed"); + } + else { + jQuery("body").removeClass("page-header-fixed"); + } + }); + }, + + initNavScrolling: function () { + function NavScrolling () { + if (jQuery(window).scrollTop()>60){ + jQuery(".header").addClass("reduce-header"); + } + else { + jQuery(".header").removeClass("reduce-header"); + } + } + + NavScrolling(); + + jQuery(window).scroll(function() { + NavScrolling (); + }); + }, + + initOWL: function () { + $(".owl-carousel6-brands").owlCarousel({ + pagination: false, + navigation: true, + items: 6, + addClassActive: true, + itemsCustom : [ + [0, 1], + [320, 1], + [480, 2], + [700, 3], + [975, 5], + [1200, 6], + [1400, 6], + [1600, 6] + ], + }); + + $(".owl-carousel5").owlCarousel({ + pagination: false, + navigation: true, + items: 5, + addClassActive: true, + itemsCustom : [ + [0, 1], + [320, 1], + [480, 2], + [660, 2], + [700, 3], + [768, 3], + [992, 4], + [1024, 4], + [1200, 5], + [1400, 5], + [1600, 5] + ], + }); + + $(".owl-carousel4").owlCarousel({ + pagination: false, + navigation: true, + items: 4, + addClassActive: true, + }); + + $(".owl-carousel3").owlCarousel({ + pagination: false, + navigation: true, + items: 3, + addClassActive: true, + itemsCustom : [ + [0, 1], + [320, 1], + [480, 2], + [700, 3], + [768, 2], + [1024, 3], + [1200, 3], + [1400, 3], + [1600, 3] + ], + }); + + $(".owl-carousel2").owlCarousel({ + pagination: false, + navigation: true, + items: 2, + addClassActive: true, + itemsCustom : [ + [0, 1], + [320, 1], + [480, 2], + [700, 3], + [975, 2], + [1200, 2], + [1400, 2], + [1600, 2] + ], + }); + }, + + initImageZoom: function () { + $('.product-main-image').zoom({url: $('.product-main-image img').attr('data-BigImgSrc')}); + }, + + initSliderRange: function () { + $( "#slider-range" ).slider({ + range: true, + min: 0, + max: 500, + values: [ 50, 250 ], + slide: function( event, ui ) { + $( "#amount" ).val( "$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ] ); + } + }); + $( "#amount" ).val( "$" + $( "#slider-range" ).slider( "values", 0 ) + + " - $" + $( "#slider-range" ).slider( "values", 1 ) ); + }, + + // wrapper function to scroll(focus) to an element + scrollTo: function (el, offeset) { + var pos = (el && el.size() > 0) ? el.offset().top : 0; + if (el) { + if ($('body').hasClass('page-header-fixed')) { + pos = pos - $('.header').height(); + } + pos = pos + (offeset ? offeset : -1 * el.height()); + } + + jQuery('html,body').animate({ + scrollTop: pos + }, 'slow'); + }, + + //public function to add callback a function which will be called on window resize + addResponsiveHandler: function (func) { + responsiveHandlers.push(func); + }, + + scrollTop: function () { + App.scrollTo(); + }, + + gridOption1: function () { + $(function(){ + $('.grid-v1').mixitup(); + }); + } + + }; +}(); \ No newline at end of file diff --git a/static/assets/corporate/scripts/up.png b/static/assets/corporate/scripts/up.png new file mode 100644 index 0000000..74bb274 Binary files /dev/null and b/static/assets/corporate/scripts/up.png differ diff --git a/static/assets/pages/css/animate.css b/static/assets/pages/css/animate.css new file mode 100644 index 0000000..b1badc8 --- /dev/null +++ b/static/assets/pages/css/animate.css @@ -0,0 +1,3272 @@ +@charset "UTF-8"; + +/*! +Animate.css - http://daneden.me/animate +Licensed under the MIT license - http://opensource.org/licenses/MIT + +Copyright (c) 2015 Daniel Eden +*/ + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} + +.animated.bounceIn, +.animated.bounceOut { + -webkit-animation-duration: .75s; + animation-duration: .75s; +} + +.animated.flipOutX, +.animated.flipOutY { + -webkit-animation-duration: .75s; + animation-duration: .75s; +} + +@-webkit-keyframes bounce { + 0%, 20%, 53%, 80%, 100% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + -webkit-transform: translate3d(0,0,0); + transform: translate3d(0,0,0); + } + + 40%, 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0,-4px,0); + transform: translate3d(0,-4px,0); + } +} + +@keyframes bounce { + 0%, 20%, 53%, 80%, 100% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + -webkit-transform: translate3d(0,0,0); + transform: translate3d(0,0,0); + } + + 40%, 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0,-4px,0); + transform: translate3d(0,-4px,0); + } +} + +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} + +@-webkit-keyframes flash { + 0%, 50%, 100% { + opacity: 1; + } + + 25%, 75% { + opacity: 0; + } +} + +@keyframes flash { + 0%, 50%, 100% { + opacity: 1; + } + + 25%, 75% { + opacity: 0; + } +} + +.flash { + -webkit-animation-name: flash; + animation-name: flash; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes pulse { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes pulse { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; +} + +@-webkit-keyframes rubberBand { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(.95, 1.05, 1); + transform: scale3d(.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, .95, 1); + transform: scale3d(1.05, .95, 1); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes rubberBand { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(.95, 1.05, 1); + transform: scale3d(.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, .95, 1); + transform: scale3d(1.05, .95, 1); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand; +} + +@-webkit-keyframes shake { + 0%, 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, 40%, 60%, 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +@keyframes shake { + 0%, 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, 30%, 50%, 70%, 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, 40%, 60%, 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +.shake { + -webkit-animation-name: shake; + animation-name: shake; +} + +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + 100% { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +@keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + 100% { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +.swing { + -webkit-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; +} + +@-webkit-keyframes tada { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, 20% { + -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + } + + 30%, 50%, 70%, 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, 60%, 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes tada { + 0% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, 20% { + -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + } + + 30%, 50%, 70%, 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, 60%, 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + 100% { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.tada { + -webkit-animation-name: tada; + animation-name: tada; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes wobble { + 0% { + -webkit-transform: none; + transform: none; + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes wobble { + 0% { + -webkit-transform: none; + transform: none; + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble; +} + +@-webkit-keyframes jello { + 11.1% { + -webkit-transform: none; + transform: none + } + + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg) + } + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg) + } + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg) + } + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg) + } + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg) + } + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg) + } + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg) + } + 100% { + -webkit-transform: none; + transform: none + } +} + +@keyframes jello { + 11.1% { + -webkit-transform: none; + transform: none + } + + 22.2% { + + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg) + } + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg) + } + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg) + } + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg) + } + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg) + } + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg) + } + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg) + } + 100% { + -webkit-transform: none; + transform: none + } +} + + + +.jello{ + -webkit-animation-name:jello; + animation-name:jello; + -webkit-transform-origin: center; + + transform-origin: center +} + +@-webkit-keyframes bounceIn { + 0%, 20%, 40%, 60%, 80%, 100% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(.97, .97, .97); + transform: scale3d(.97, .97, .97); + } + + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes bounceIn { + 0%, 20%, 40%, 60%, 80%, 100% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(.97, .97, .97); + transform: scale3d(.97, .97, .97); + } + + 100% { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.bounceIn { + -webkit-animation-name: bounceIn; + animation-name: bounceIn; +} + +@-webkit-keyframes bounceInDown { + 0%, 60%, 75%, 90%, 100% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInDown { + 0%, 60%, 75%, 90%, 100% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} + +@-webkit-keyframes bounceInLeft { + 0%, 60%, 75%, 90%, 100% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInLeft { + 0%, 60%, 75%, 90%, 100% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} + +@-webkit-keyframes bounceInRight { + 0%, 60%, 75%, 90%, 100% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInRight { + 0%, 60%, 75%, 90%, 100% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + 100% { + -webkit-transform: none; + transform: none; + } +} + +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} + +@-webkit-keyframes bounceInUp { + 0%, 60%, 75%, 90%, 100% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInUp { + 0%, 60%, 75%, 90%, 100% { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} + +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 50%, 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } +} + +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 50%, 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } +} + +.bounceOut { + -webkit-animation-name: bounceOut; + animation-name: bounceOut; +} + +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} + +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} + +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} + +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +@keyframes fadeIn { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +@-webkit-keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInDown { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInDownBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} + +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +@-webkit-keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInLeftBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} + +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +@-webkit-keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInRightBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} + +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +@-webkit-keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInUpBig { + 0% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +@keyframes fadeOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes fadeOutDown { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutDownBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes fadeOutDownBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} + +@-webkit-keyframes fadeOutLeft { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes fadeOutLeft { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +@-webkit-keyframes fadeOutLeftBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes fadeOutLeftBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} + +@-webkit-keyframes fadeOutRight { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes fadeOutRight { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +@-webkit-keyframes fadeOutRightBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes fadeOutRightBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} + +@-webkit-keyframes fadeOutUp { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes fadeOutUp { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +@-webkit-keyframes fadeOutUpBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes fadeOutUpBig { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} + +@-webkit-keyframes flip { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(.95, .95, .95); + transform: perspective(400px) scale3d(.95, .95, .95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +@keyframes flip { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(.95, .95, .95); + transform: perspective(400px) scale3d(.95, .95, .95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +.animated.flip { + -webkit-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip; +} + +@-webkit-keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInX { + 0% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} + +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + 100% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} + +@-webkit-keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutX { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +.flipOutX { + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +@-webkit-keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutY { + 0% { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + 100% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +.flipOutY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; +} + +@-webkit-keyframes lightSpeedIn { + 0% { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; + } + + 100% { + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes lightSpeedIn { + 0% { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; + } + + 100% { + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +@-webkit-keyframes lightSpeedOut { + 0% { + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +@keyframes lightSpeedOut { + 0% { + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes rotateIn { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateIn { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} + +@-webkit-keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} + +@-webkit-keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} + +@-webkit-keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} + +@-webkit-keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} + +@-webkit-keyframes rotateOut { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +@keyframes rotateOut { + 0% { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + 100% { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} + +@-webkit-keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} + +@-webkit-keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} + +@-webkit-keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutUpLeft { + 0% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} + +@-webkit-keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpRight { + 0% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + 100% { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +@keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + 100% { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +.hinge { + -webkit-animation-name: hinge; + animation-name: hinge; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes rollIn { + 0% { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + 100% { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +@keyframes rollOut { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} + +@-webkit-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 50% { + opacity: 1; + } +} + +@keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 50% { + opacity: 1; + } +} + +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +@-webkit-keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInDown { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} + +@-webkit-keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInLeft { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} + +@-webkit-keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInRight { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} + +@-webkit-keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInUp { + 0% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} + +@-webkit-keyframes zoomOut { + 0% { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 100% { + opacity: 0; + } +} + +@keyframes zoomOut { + 0% { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 100% { + opacity: 0; + } +} + +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); + transform: scale(.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); + transform: scale(.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(2000px, 0, 0); + transform: scale(.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + } + + 100% { + opacity: 0; + -webkit-transform: scale(.1) translate3d(2000px, 0, 0); + transform: scale(.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 100% { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} + +@-webkit-keyframes slideInDown { + 0% { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInDown { + 0% { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} + +@-webkit-keyframes slideInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInLeft { + 0% { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} + +@-webkit-keyframes slideInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInRight { + 0% { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +@-webkit-keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} + +@-webkit-keyframes slideOutDown { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 100% { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes slideOutDown { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 100% { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} + +@-webkit-keyframes slideOutLeft { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 100% { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes slideOutLeft { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 100% { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} + +@-webkit-keyframes slideOutRight { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 100% { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes slideOutRight { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 100% { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} + +@-webkit-keyframes slideOutUp { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 100% { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes slideOutUp { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 100% { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} diff --git a/static/assets/pages/css/components.css b/static/assets/pages/css/components.css new file mode 100644 index 0000000..ca99308 --- /dev/null +++ b/static/assets/pages/css/components.css @@ -0,0 +1,650 @@ +/* Reset rounded corners for all elements */ +div, +input, +select, +textarea, +span, +img, +table, +label, +td, +th, +p, +a, +button, +ul, +code, +pre, +li { + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} + +a, +a:focus, +a:hover, +a:active { + outline: 0; +} + +/*Fix for Firefox*/ +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; +} + +/* Bootstrap buttons */ +.btn-primary { + color: #fff; + background-color: #428bca; + border: none; +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active { + color: #fff; + background-color: #3379b5; + border-color: #2a6496; +} + +.open .btn-primary.dropdown-toggle { + color: #fff; + background-color: #3379b5; + border-color: #2a6496; +} + +.btn-primary:active, +.btn-primary.active { + background-image: none; + background-color: #2d6ca2; +} + +.btn-primary:active:hover, +.btn-primary.active:hover { + background-color: #3071a9; +} + +.open .btn-primary.dropdown-toggle { + background-image: none; +} + +.btn-primary.disabled, +.btn-primary.disabled:hover, +.btn-primary.disabled:focus, +.btn-primary.disabled:active, +.btn-primary.disabled.active, +.btn-primary[disabled], +.btn-primary[disabled]:hover, +.btn-primary[disabled]:focus, +.btn-primary[disabled]:active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary, +fieldset[disabled] .btn-primary:hover, +fieldset[disabled] .btn-primary:focus, +fieldset[disabled] .btn-primary:active, +fieldset[disabled] .btn-primary.active { + background-color: #428bca; + border-color: #357ebd; +} + +.btn-primary .badge { + color: #428bca; + background-color: #fff; +} + +.btn-success { + color: #fff; + background-color: #45B6AF; + border-color: #3ea49d; +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active { + color: #fff; + background-color: #3b9c96; + border-color: #307f7a; +} + +.open .btn-success.dropdown-toggle { + color: #fff; + background-color: #3b9c96; + border-color: #307f7a; +} + +.btn-success:active, +.btn-success.active { + background-image: none; + background-color: #348a84; +} + +.btn-success:active:hover, +.btn-success.active:hover { + background-color: #37918b; +} + +.open .btn-success.dropdown-toggle { + background-image: none; +} + +.btn-success.disabled, +.btn-success.disabled:hover, +.btn-success.disabled:focus, +.btn-success.disabled:active, +.btn-success.disabled.active, +.btn-success[disabled], +.btn-success[disabled]:hover, +.btn-success[disabled]:focus, +.btn-success[disabled]:active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success, +fieldset[disabled] .btn-success:hover, +fieldset[disabled] .btn-success:focus, +fieldset[disabled] .btn-success:active, +fieldset[disabled] .btn-success.active { + background-color: #45B6AF; + border-color: #3ea49d; +} + +.btn-success .badge { + color: #45B6AF; + background-color: #fff; +} + +.btn-info { + color: #fff; + background-color: #89C4F4; + border-color: #72b8f2; +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active { + color: #fff; + background-color: #68b4f1; + border-color: #43a1ed; +} + +.open .btn-info.dropdown-toggle { + color: #fff; + background-color: #68b4f1; + border-color: #43a1ed; +} + +.btn-info:active, +.btn-info.active { + background-image: none; + background-color: #51a8ef; +} + +.btn-info:active:hover, +.btn-info.active:hover { + background-color: #5aadf0; +} + +.open .btn-info.dropdown-toggle { + background-image: none; +} + +.btn-info.disabled, +.btn-info.disabled:hover, +.btn-info.disabled:focus, +.btn-info.disabled:active, +.btn-info.disabled.active, +.btn-info[disabled], +.btn-info[disabled]:hover, +.btn-info[disabled]:focus, +.btn-info[disabled]:active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info, +fieldset[disabled] .btn-info:hover, +fieldset[disabled] .btn-info:focus, +fieldset[disabled] .btn-info:active, +fieldset[disabled] .btn-info.active { + background-color: #89C4F4; + border-color: #72b8f2; +} + +.btn-info .badge { + color: #89C4F4; + background-color: #fff; + } + +.btn-warning { + color: #fff; + background-color: #dfba49; + border-color: #dbb233; +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active { + color: #fff; + background-color: #daae2b; + border-color: #bb9521; +} + +.open .btn-warning.dropdown-toggle { + color: #fff; + background-color: #daae2b; + border-color: #bb9521; +} + +.btn-warning:active, +.btn-warning.active { + background-image: none; + background-color: #c89f23; +} + +.btn-warning:active:hover, +.btn-warning.active:hover { + background-color: #d0a625; +} + +.open .btn-warning.dropdown-toggle { + background-image: none; +} + +.btn-warning.disabled, +.btn-warning.disabled:hover, +.btn-warning.disabled:focus, +.btn-warning.disabled:active, +.btn-warning.disabled.active, +.btn-warning[disabled], +.btn-warning[disabled]:hover, +.btn-warning[disabled]:focus, +.btn-warning[disabled]:active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning, +fieldset[disabled] .btn-warning:hover, +fieldset[disabled] .btn-warning:focus, +fieldset[disabled] .btn-warning:active, +fieldset[disabled] .btn-warning.active { + background-color: #dfba49; + border-color: #dbb233; +} + +.btn-warning .badge { + color: #dfba49; + background-color: #fff; +} + +.btn-danger { + color: #fff; + background-color: #F3565D; + border-color: #f13e46; +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active { + color: #fff; + background-color: #f1353d; + border-color: #ec111b; +} + +.open .btn-danger.dropdown-toggle { + color: #fff; + background-color: #f1353d; + border-color: #ec111b; +} + +.btn-danger:active, +.btn-danger.active { + background-image: none; + background-color: #ef1d26; +} + +.btn-danger:active:hover, +.btn-danger.active:hover { + background-color: #f0262f; +} + +.open .btn-danger.dropdown-toggle { + background-image: none; +} + +.btn-danger.disabled, +.btn-danger.disabled:hover, +.btn-danger.disabled:focus, +.btn-danger.disabled:active, +.btn-danger.disabled.active, +.btn-danger[disabled], +.btn-danger[disabled]:hover, +.btn-danger[disabled]:focus, +.btn-danger[disabled]:active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger, +fieldset[disabled] .btn-danger:hover, +fieldset[disabled] .btn-danger:focus, +fieldset[disabled] .btn-danger:active, +fieldset[disabled] .btn-danger.active { + background-color: #F3565D; + border-color: #f13e46; +} + +.btn-danger .badge { + color: #F3565D; + background-color: #fff; +} + +/*** +Social Icons +***/ +.social-icons { + padding: 0; + margin: 0; +} + +.social-icons:before, +.social-icons:after { + content: " "; + display: table; +} +.social-icons:after { + clear: both; +} + +.social-icons li { + float: left; + display: inline; + list-style: none; + margin-right: 5px; + margin-bottom: 5px; + text-indent: -9999px; +} +.social-icons li > a { + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + -o-border-radius: 2px; + border-radius: 2px; + width: 28px; + height: 28px; + display: block; + background-position: 0 0; + background-repeat: no-repeat; + transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + -ms-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -webkit-transition: all 0.3s ease-in-out; +} +.social-icons li:hover > a { + background-position: 0 -38px; +} +.social-icons li .amazon { + background: url(../../pages/img/social/amazon.png) no-repeat; +} +.social-icons li .behance { + background: url(../../pages/img/social/behance.png) no-repeat; +} +.social-icons li .blogger { + background: url(../../pages/img/social/blogger.png) no-repeat; +} +.social-icons li .deviantart { + background: url(../../pages/img/social/deviantart.png) no-repeat; +} +.social-icons li .dribbble { + background: url(../../pages/img/social/dribbble.png) no-repeat; +} +.social-icons li .dropbox { + background: url(../../pages/img/social/dropbox.png) no-repeat; +} +.social-icons li .evernote { + background: url(../../pages/img/social/evernote.png) no-repeat; +} +.social-icons li .facebook { + background: url(../../pages/img/social/facebook.png) no-repeat; +} +.social-icons li .forrst { + background: url(../../pages/img/social/forrst.png) no-repeat; +} +.social-icons li .github { + background: url(../../pages/img/social/github.png) no-repeat; +} +.social-icons li .googleplus { + background: url(../../pages/img/social/googleplus.png) no-repeat; +} +.social-icons li .jolicloud { + background: url(../../pages/img/social/jolicloud.png) no-repeat; +} +.social-icons li .last-fm { + background: url(../../pages/img/social/last-fm.png) no-repeat; +} +.social-icons li .linkedin { + background: url(../../pages/img/social/linkedin.png) no-repeat; +} +.social-icons li .picasa { + background: url(../../pages/img/social/picasa.png) no-repeat; +} +.social-icons li .pintrest { + background: url(../../pages/img/social/pintrest.png) no-repeat; +} +.social-icons li .rss { + background: url(../../pages/img/social/rss.png) no-repeat; +} +.social-icons li .skype { + background: url(../../pages/img/social/skype.png) no-repeat; +} +.social-icons li .spotify { + background: url(../../pages/img/social/spotify.png) no-repeat; +} +.social-icons li .stumbleupon { + background: url(../../pages/img/social/stumbleupon.png) no-repeat; +} +.social-icons li .tumblr { + background: url(../../pages/img/social/tumblr.png) no-repeat; +} +.social-icons li .twitter { + background: url(../../pages/img/social/twitter.png) no-repeat; +} +.social-icons li .vimeo { + background: url(../../pages/img/social/vimeo.png) no-repeat; +} +.social-icons li .wordpress { + background: url(../../pages/img/social/wordpress.png) no-repeat; +} +.social-icons li .xing { + background: url(../../pages/img/social/xing.png) no-repeat; +} +.social-icons li .yahoo { + background: url(../../pages/img/social/yahoo.png) no-repeat; +} +.social-icons li .youtube { + background: url(../../pages/img/social/youtube.png) no-repeat; +} +.social-icons li .vk { + background: url(../../pages/img/social/vk.png) no-repeat; +} +.social-icons li .instagram { + background: url(../../pages/img/social/instagram.png) no-repeat; +} +.social-icons li .reddit { + background: url(../../pages/img/social/reddit.png) no-repeat; +} +.social-icons li .aboutme { + background: url(../../pages/img/social/aboutme.png) no-repeat; +} +.social-icons li .flickr { + background: url(../../pages/img/social/flickr.png) no-repeat; +} +.social-icons li .foursquare { + background: url(../../pages/img/social/foursquare.png) no-repeat; +} +.social-icons li .gravatar { + background: url(../../pages/img/social/gravatar.png) no-repeat; +} +.social-icons li .klout { + background: url(../../pages/img/social/klout.png) no-repeat; +} +.social-icons li .myspace { + background: url(../../pages/img/social/myspace.png) no-repeat; +} +.social-icons li .quora { + background: url(../../pages/img/social/quora.png) no-repeat; +} +.social-icons.social-icons-color > li > a { + opacity: 0.7; + background-position: 0 -38px !important; +} +.social-icons.social-icons-color > li > a:hover { + opacity: 1; +} +.social-icons.social-icons-circle > li > a { + border-radius: 25px !important; +} + +/*** +Inline Social Icons +***/ +.social-icon { + display: inline-block !important; + width: 28px; + height: 28px; + background-position: 0 0; + background-repeat: no-repeat; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + -o-border-radius: 2px; + border-radius: 2px; + transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + -ms-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -webkit-transition: all 0.3s ease-in-out; +} +.social-icon.social-icon-circle { + border-radius: 25px !important; +} + +.social-icon.amazon { + background: url(../../pages/img/social/amazon.png) no-repeat; +} +.social-icon.behance { + background: url(../../pages/img/social/behance.png) no-repeat; +} +.social-icon.blogger { + background: url(../../pages/img/social/blogger.png) no-repeat; +} +.social-icon.deviantart { + background: url(../../pages/img/social/deviantart.png) no-repeat; +} +.social-icon.dribbble { + background: url(../../pages/img/social/dribbble.png) no-repeat; +} +.social-icon.dropbox { + background: url(../../pages/img/social/dropbox.png) no-repeat; +} +.social-icon.evernote { + background: url(../../pages/img/social/evernote.png) no-repeat; +} +.social-icon.facebook { + background: url(../../pages/img/social/facebook.png) no-repeat; +} +.social-icon.forrst { + background: url(../../pages/img/social/forrst.png) no-repeat; +} +.social-icon.github { + background: url(../../pages/img/social/github.png) no-repeat; +} +.social-icon.googleplus { + background: url(../../pages/img/social/googleplus.png) no-repeat; +} +.social-icon.jolicloud { + background: url(../../pages/img/social/jolicloud.png) no-repeat; +} +.social-icon.last-fm { + background: url(../../pages/img/social/last-fm.png) no-repeat; +} +.social-icon.linkedin { + background: url(../../pages/img/social/linkedin.png) no-repeat; +} +.social-icon.picasa { + background: url(../../pages/img/social/picasa.png) no-repeat; +} +.social-icon.pintrest { + background: url(../../pages/img/social/pintrest.png) no-repeat; +} +.social-icon.rss { + background: url(../../pages/img/social/rss.png) no-repeat; +} +.social-icon.skype { + background: url(../../pages/img/social/skype.png) no-repeat; +} +.social-icon.spotify { + background: url(../../pages/img/social/spotify.png) no-repeat; +} +.social-icon.stumbleupon { + background: url(../../pages/img/social/stumbleupon.png) no-repeat; +} +.social-icon.tumblr { + background: url(../../pages/img/social/tumblr.png) no-repeat; +} +.social-icon.twitter { + background: url(../../pages/img/social/twitter.png) no-repeat; +} +.social-icon.vimeo { + background: url(../../pages/img/social/vimeo.png) no-repeat; +} +.social-icon.wordpress { + background: url(../../pages/img/social/wordpress.png) no-repeat; +} +.social-icon.xing { + background: url(../../pages/img/social/xing.png) no-repeat; +} +.social-icon.yahoo { + background: url(../../pages/img/social/yahoo.png) no-repeat; +} +.social-icon.youtube { + background: url(../../pages/img/social/youtube.png) no-repeat; +} +.social-icon.vk { + background: url(../../pages/img/social/vk.png) no-repeat; +} +.social-icon.instagram { + background: url(../../pages/img/social/instagram.png) no-repeat; +} +.social-icon.reddit { + background: url(../../pages/img/social/reddit.png) no-repeat; +} +.social-icon.aboutme { + background: url(../../pages/img/social/aboutme.png) no-repeat; +} +.social-icon.flickr { + background: url(../../pages/img/social/flickr.png) no-repeat; +} +.social-icon.foursquare { + background: url(../../pages/img/social/foursquare.png) no-repeat; +} +.social-icon.gravatar { + background: url(../../pages/img/social/gravatar.png) no-repeat; +} +.social-icon.klout { + background: url(../../pages/img/social/klout.png) no-repeat; +} +.social-icon.myspace { + background: url(../../pages/img/social/myspace.png) no-repeat; +} +.social-icon.quora { + background: url(../../pages/img/social/quora.png) no-repeat; +} +.social-icon:hover { + background-position: 0 -38px; +} + +.social-icon-color { + opacity: 0.7; + background-position: 0 -38px !important; +} +.social-icon-color:hover { + opacity: 1; +} \ No newline at end of file diff --git a/static/assets/pages/css/gallery.css b/static/assets/pages/css/gallery.css new file mode 100644 index 0000000..f6df0c7 --- /dev/null +++ b/static/assets/pages/css/gallery.css @@ -0,0 +1,54 @@ +/* gallery page */ +.gallery-item{ + padding-top: 15px; + padding-bottom: 15px; +} +.gallery-item a { + display: block; + position: relative; +} +.gallery-item .zoomix { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + -webkit-transition: all 0.3s ease-in-out; + -moz-transition: all 0.3s ease-in-out; + -o-transition: all 0.3s ease-in-out; + -ms-transition: all 0.3s ease-in-out; + transition: all 0.3s ease-in-out; + z-index: 90; + background: #000; + opacity: 0; + filter: alpha(opacity = 0); + + -webkit-transform: scale(0); + -moz-transform: scale(0); + -o-transform: scale(0); + -ms-transform: scale(0); + transform: scale(0); + + -webkit-backface-visibility: hidden; +} +.ie7 .gallery-item .zoomix{ + clear: both; +} +.gallery-item a:hover .zoomix{ + -webkit-transform: scale(1); + -moz-transform: scale(1); + -o-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + opacity:0.4; + filter: alpha(opacity = 50); +} +.gallery-item .zoomix .fa-search { + font-size: 25px; + line-height: 25px; + color: #fff; + position: absolute; + top: 50%; + left: 50%; + margin: -12px 0 0 -12px; +} \ No newline at end of file diff --git a/static/assets/pages/css/portfolio.css b/static/assets/pages/css/portfolio.css new file mode 100644 index 0000000..42c1e41 --- /dev/null +++ b/static/assets/pages/css/portfolio.css @@ -0,0 +1,109 @@ +/* Portfolio */ +/* Portfolio Filter */ +.mix-filter { + list-style: none; + margin: 0 0 20px; + padding: 0; +} +.mix-filter li { + color: #555; + cursor: pointer; + padding: 6px 15px; + margin-right: 2px; + margin-bottom: 5px; + background: #eee; + display: inline-block; +} +.mix-filter li:hover, +.mix-filter li.active { + color: #fff; + background: #e44f00; +} +.mix-grid .mix { + opacity: 0; + display: none; +} + +/* Portfolio Hover */ +.mix-grid .mix { + position: relative; + overflow: hidden; + margin-bottom: 15px; +} +.mix-grid .mix .mix-inner { + position: relative; + width: 100%; +} +.mix-grid .mix .mix-details { + color: #fff; + width: 100%; + height: 100%; + bottom: -100%; + text-align: center; + position: absolute; + background: rgba(228,79,0,1); + transition: all 0.5s ease; + -o-transition: all 0.5s ease; + -ms-transition: all 0.5s ease; + -moz-transition: all 0.5s ease; + -webkit-transition: all 0.5s ease; +} +.mix-grid .mix:hover .mix-details { + bottom: 0; + transition: all 0.5s ease; + -o-transition: all 0.5s ease; + -ms-transition: all 0.5s ease; + -moz-transition: all 0.5s ease; + -webkit-transition: all 0.5s ease; +} +.mix-grid .mix .mix-details h4 { + color: #fff; + margin-top: 30px; + padding: 0 10px; +} +.mix-grid .mix .mix-details p { + padding: 0 30px; +} +.mix-grid .mix .mix-details i { + color: #fff; + font-size: 14px; +} +.mix-grid .mix a.mix-link, +.mix-grid .mix a.mix-preview { + color: #555; + display: block; + cursor: pointer; + margin-top: 10px; + position: absolute; + padding: 10px 15px; + background: #DB3A1B; +} +.mix-grid .mix a.mix-preview { + left: 50%; + margin-left: 5px; +} +.mix-grid .mix a.mix-link { + right: 50%; + margin-right: 5px; +} +.mix-grid .mix a.mix-link:hover, +.mix-grid .mix a.mix-preview:hover { + color: #fff; + padding: 9px 14px; + text-decoration: none; + border: solid 1px #eee; +} + +/* Portrait tablet to landscape and desktop */ +@media (min-width: 992px) { + .mix-grid .mix.col-md-6.col-sm-6 .mix-details { + height: 50%; + } + +} +@media (min-width: 768px) and (max-width: 991px) { + .mix-grid .mix a.mix-link, + .mix-grid .mix a.mix-preview { + margin-top: 5px; + } +} \ No newline at end of file diff --git a/static/assets/pages/css/slider.css b/static/assets/pages/css/slider.css new file mode 100644 index 0000000..9b4a933 --- /dev/null +++ b/static/assets/pages/css/slider.css @@ -0,0 +1,425 @@ +/*-------------------------------------------------- + [Bootstrap Carousel] +----------------------------------------------------*/ + +/* Set displays an element as in inline-level flex container */ +.center-block { + position: absolute; + top: 0; + width: 100%; + height: 100%; +} + +.center-block-wrap { + width: 100%; + height: 100%; + display: table; + vertical-align: middle; +} + +.center-block-body { + height: 100%; + display: table-cell; + vertical-align: middle; + text-align: center; +} + +/* Colors */ +.color-red { + color: #e54a1a; +} + +.color-red-v2 { + color: #e6400c; +} + +/* Carousel */ +.carousel-slider .carousel-indicators li { + border-radius: 10px !important; +} + +.carousel-slider .carousel-indicators-frontend li { + border: none; + background: rgba(0,0,0,.4); +} + +.carousel-slider .carousel-indicators-frontend .active { + background: rgba(0,0,0,.6); +} + +.carousel-slider .carousel-caption { + left: auto; + right: auto; + bottom: auto; + text-shadow: none; + text-align: inherit; + padding: 0; +} + +.carousel-slider .carousel-control { + width: 10%; +} + +.carousel-slider .carousel-control.right, +.carousel-slider .carousel-control.left { + top: 50%; + background-image: none; + margin-top: -20px; +} + +.carousel-slider .carousel-control .fa { + width: 40px; + height: 40px; + font-size: 30px; + color: #fff; + background: rgba(255,255,255,.32); + text-shadow: none; + padding: 5px; +} + +.carousel-slider .carousel-control-shop .fa { + border-radius: 50px; +} + +.carousel-slider .carousel-control-frontend .fa { + background: rgba(0,0,0,.7); +} + +.carousel-slider .carousel-control-frontend .fa:hover { + background: rgba(0,0,0,.9); +} + +.carousel-slider .item { + width: 100%; + height: 100%; + min-height: 580px; +} + +/* Carousel Item Background Images */ +.carousel-slider .carousel-item-eight { + background: url(../../../assets/pages/img/frontend-slider/sha.jpg); + background-size: cover; + background-position: center center; +} + +.carousel-slider .carousel-item-nine { + background: url(../../../assets/pages/img/frontend-slider/bg1.jpg); + background-size: cover; + background-position: center center; +} + +.carousel-slider .carousel-item-ten { + background: url(../../../assets/pages/img/frontend-slider/bg2.jpg); + background-size: cover; + background-position: center center; +} + +.carousel-slider .carousel-item-eleven { + background: url(../../../assets/pages/img/frontend-slider/bg3.jpg); + background-size: cover; + background-position: center center; +} + +/* Carousel Titles */ +.carousel-slider .carousel-title-v1 { + font-size: 75px; + font-weight: 600; + font-family: "PT Sans Narrow", Arial, sans-serif; + line-height: 1.4; + color: #fff; + text-align: center; + text-transform: uppercase; +} + +.carousel-slider .carousel-title-v2 { + font-size: 50px; + font-weight: 600; + line-height: 1.4; + color: #fff; + text-align: center; +} + +.carousel-slider .carousel-title-v3 { + font-size: 60px; + font-weight: 600; + line-height: 1.4; + color: #fff; +} + +.carousel-slider .carousel-title-v4 { + font-size: 100px; + line-height: 1.4; + color: #fff; + text-transform: capitalize; +} + +.carousel-slider .carousel-title-v5 { + font-size: 50px; + font-weight: 200; + line-height: 1.4; + color: #fff; +} + +.carousel-slider .carousel-title-v6 { + font-size: 50px; + font-weight: 200; + line-height: 1.4; + color: #3f5862; +} + +.carousel-slider .carousel-title-normal { + font-weight: normal; +} + +/* Carousel Subtitles */ +.carousel-slider .carousel-subtitle-v1 { + display: block; + font-size: 25px; + font-weight: 600; + line-height: 1.4; + color: #fff; +} + +.carousel-slider .carousel-subtitle-v2 { + display: block; + font-size: 23px; + line-height: 1.4; + color: #fff; +} + +.carousel-slider .carousel-subtitle-v3 { + display: block; + font-size: 45px; + font-weight: 200; + line-height: 1.4; + color: #fff; +} + +.carousel-slider .carousel-subtitle-v4 { + display: block; + font-size: 45px; + font-weight: 700; + line-height: 1.4; + color: #fff; +} + +.carousel-slider .carousel-subtitle-v5 { + display: block; + font-size: 18px; + font-weight: 200; + line-height: 1.4; + color: #fff; +} + +.carousel-slider .carousel-subtitle-v6 { + display: inline-block; + font-size: 18px; + line-height: 1.4; + color: #fff; + background: #e54a1a; + padding: 5px; +} + +.carousel-slider .carousel-subtitle-v7 { + font-size: 14px; + line-height: 1.4; + color: #7b8793; +} + +/* Carousel Btn */ +.carousel-slider .carousel-btn { + display: inline-block; + font-size: 18px; + color: #fff; + padding: 10px 20px; + border: 1px solid #fff; +} + +.carousel-slider .carousel-btn:hover { + border-color: #e6400c; + background: #e6400c; + text-decoration: none; +} + +/* Carousel Btn Green */ +.carousel-slider .carousel-btn-green { + display: inline-block; + font-size: 13px; + font-weight: 200; + color: #fff; + background: #6fc561; + padding: 5px 15px; +} + +.carousel-slider .carousel-btn-green:hover { + text-decoration: none; +} + +/* Carousel Btn Green */ +.carousel-slider .carousel-btn-red { + display: inline-block; + font-size: 13px; + font-weight: 200; + color: #fff; + background: #e54a1a; + padding: 5px 15px; +} + +.carousel-slider .carousel-btn-red:hover { + text-decoration: none; +} + +/* Border Bottom Title */ +.border-bottom-title { + position: relative; +} + +.border-bottom-title:after { + position: absolute; + left: 0; + bottom: -5px; + width: 100%; + height: 1px; + content: " "; + background: #fff; + text-align: center; +} + +/* Border Top & Bottom */ +.border-top-bottom { + border-top: 1px solid #fff; + border-bottom: 1px solid #fff; + padding: 3px 0; +} + +/* Carousel Positions */ +.carousel-slider .carousel-position-one { + position: absolute; + top: 10%; + left: 15%; +} + +.carousel-slider .carousel-position-two { + position: absolute; + top: 30%; + left: 15%; +} + +.carousel-slider .carousel-position-three { + position: absolute; + bottom: 0; + right: 15%; +} + +.carousel-slider .carousel-position-four { + position: absolute; + top: 15%; + left: auto; +} + +.carousel-slider .carousel-position-five { + position: absolute; + top: 25%; + left: 35%; +} + +.carousel-slider .carousel-position-six { + position: absolute; + top: 25%; + left: auto; +} + +/* Carousel Animation Delay */ +.carousel-slider .carousel-caption .animate-delay { + animation-delay: 1s; +} + +/* Carousel Promo Like */ +.carousel-slider .promo-like { + position: relative; + top: -23px; + width: 152px; + height: 152px; + display: inline-block; + font-size: 80px; + line-height: 1; + color: #fff; + background: rgba(0,0,0,.67); + margin-right: 7px; + padding: 28px; +} + +.carousel-slider .promo-like-text { + color: #fff; + text-align: left; + display: inline-block; + font: 400 20px/1.4 "PT Sans Narrow", Arial, sans-serif; + background: rgba(0,0,0,0.67); + padding: 25px; +} + +.carousel-slider .promo-like-text h2 { + font: 400 38px/38px "PT Sans Narrow", Arial, sans-serif; + margin: 0 0 8px; +} + +.carousel-slider .promo-like-text p { + margin: 0; +} + +/* Stylesheet design for under max-width: 992px */ +@media (max-width: 991px) { /* 992px */ + .carousel-slider .carousel-title-v1 { + font-size: 50px; + } + + .carousel-slider .carousel-title-v2 { + font-size: 35px; + } + + .carousel-slider .carousel-title-v3 { + font-size: 40px; + } + + .carousel-slider .carousel-title-v4 { + font-size: 60px; + } + + /* Carousel Subtitles */ + .carousel-slider .carousel-subtitle-v1 { + font-size: 18px; + } + + .carousel-slider .carousel-subtitle-v2 { + font-size: 18px; + } + + .carousel-slider .carousel-subtitle-v3 { + font-size: 30px; + } + + .carousel-slider .carousel-subtitle-v4 { + font-size: 30px; + } + + /* Carousel Promo Like */ + .carousel-slider .promo-like { + top: -24px; + width: 120px; + height: 120px; + font-size: 60px; + padding: 25px; + } + + .carousel-slider .promo-like-text { + padding: 15px; + } + + .carousel-slider .promo-like-text h2 { + font-size: 25px; + } + + .carousel-slider .promo-like-text p { + font-size: 16px; + } +} diff --git a/static/assets/pages/css/style-shop.css b/static/assets/pages/css/style-shop.css new file mode 100644 index 0000000..57ff63b --- /dev/null +++ b/static/assets/pages/css/style-shop.css @@ -0,0 +1,1207 @@ +body.ecommerce { + background: #f9f9f9; +} +.ecommerce h1, .ecommerce h2, .ecommerce h3, .ecommerce h4, .ecommerce h5, .ecommerce h6 { + font-family: "PT Sans Narrow", sans-serif; + margin: 0 0 10px; + text-transform: uppercase; +} +.ecommerce h1 { + font-size: 23px; +} +.ecommerce h2 { + font-size: 20px; +} +.ecommerce .content-page h2, +.ecommerce .content-page h3, +.ecommerce .content-page h4, +.ecommerce .content-page h5, +.ecommerce .content-page h6 { + padding-top: 10px; +} +.ecommerce .content-page h3 { + font-size: 20px; + margin-bottom: 7px; +} +.ecommerce .content-page h4 { + font-size: 17px; + margin-bottom: 4px; +} +.ecommerce .content-page h5, +.ecommerce .content-page h6 { + font: 700 15px "Open Sans", Arial, sans-serif; + margin-bottom: 2px; +} + +/*** +Header and header elements +***/ +.ecommerce .header { + position: inherit; +} +.ecommerce .site-logo { + padding-top: 28px; + padding-bottom: 27px; +} +.ecommerce .reduce-header .site-logo { + padding-top: 16px; + padding-bottom: 18px; +} + +.ecommerce .header-navigation li.menu-search { + top: 31px; +} +.ecommerce .header-navigation li.menu-search i { + color: #8a949e; +} + +/* Navigation */ +.ecommerce .header-navigation { + font: 19px "PT Sans Narrow", sans-serif; + letter-spacing: 1px; + margin: 0; +} +.ecommerce .header-navigation > ul > li > a { + color: #767f88; + padding: 34px 12px 32px; +} +.ecommerce .header-navigation ul > li.active > a, +.ecommerce .header-navigation ul > li > a:hover, +.ecommerce .header-navigation ul > li > a:focus, +.ecommerce .header-navigation ul > li.open > a, +.ecommerce .header-navigation ul > li.open > a:hover, +.ecommerce .header-navigation ul > li.open > a:focus { + color: #e02222; +} +.ecommerce .header-navigation .dropdown-menu > li > a:hover, +.ecommerce .header-navigation .dropdown-menu > li.active > a, +.ecommerce .header-navigation .header-navigation-content .header-navigation-col li > a:hover, +.ecommerce .header-navigation .header-navigation-content .header-navigation-col li.active > a { + color: #fff; +} +.ecommerce .header-navigation ul > li.active > a { + /*border-bottom: 2px solid #E44F00;*/ + border-bottom: none !important; +} + +.ecommerce .header-navigation > ul > li > .dropdown-menu { + margin-top: -3px; +} +.ecommerce .reduce-header .header-navigation > ul > li > .dropdown-menu { + margin-top: -3px; +} +.ecommerce .reduce-header .header-navigation > ul > li.dropdown:hover > a:after { + bottom: 0; +} + +/* nav brands */ +.nav-brands { + clear: both; + margin: -20px -15px; + padding: 20px 0 0; + width: auto; +} +.nav-brands ul { + margin: 0; + padding: 10px 0; + list-style: none; + background: #fff; + width: 100%; + overflow: hidden; + border-top: solid 1px #f0f0f0; +} +.nav-brands li { + float: none; + margin-right: 0 !important; + border: none !important; + display: inline-block; +} +.nav-brands img { + width: auto; + height: 70px; +} +.nav-brands a { + padding: 0 !important; +} +.nav-brands a:hover { + background: #fff; + color: #fff; +} + +/* Top cart block */ +.header .top-cart-block { + float: right; + margin-top: 30px; + position: relative; + font: 400 13px 'Open Sans', Arial, sans-serif; +} +.ecommerce .header .mobi-toggler { + margin-top: 30px; +} +.ecommerce .reduce-header .mobi-toggler, +.reduce-header .top-cart-block { + margin-top: 19px; +} +.top-cart-info { + background: #f9f9f9; + color: #595f65; + border: solid 1px #ececec; + border-radius: 16px !important; + float: left; + padding: 8px 39px 6px 13px; + line-height: 1.2; +} +.top-cart-info a { + color: #595f65; +} +.top-cart-info-count { + float: left; +} +.top-cart-info-value { + border-left: solid 1px #a5aab0; + margin-left: 5px; + padding-left: 5px; +} +.top-cart-block .fa-shopping-cart { + position: absolute; + top: 0; + right: 0; + background: #e84d1c; + color: #fff; + padding: 8px 8px 7px; + border-radius: 16px !important; + font-size: 16px; +} + +.top-cart-content-wrapper{ + position: absolute; + right: -2px; + top: 100%; + z-index: 99999; +} +.top-cart-content { + padding: 8px 0 10px; + background: #fcfafb; + border-top: solid 2px #ea4c1d; + box-shadow: 5px 5px rgba(91, 91, 91, 0.2); + width: 364px; + margin-top: 12px; + color: #717880; + display: none; + position: relative; + transition: opacity .3s ease-in-out; + -moz-transition: opacity .3s ease-in-out; + -webkit-transition: opacity .3s ease-in-out; +} +.top-cart-content:after { + top: -8px; + width: 0; + height: 0; + right: 8px; + z-index: 2; + content: " "; + display: block; + position: absolute; + border-bottom: 8px solid #e6400c; + border-right: 8px solid transparent; + border-left: 8px solid transparent; +} +.top-cart-block:hover .top-cart-content { + display: block; +} +.top-cart-content p { + margin: 7px 0 5px; +} +.top-cart-content ul { + margin: 0; + padding: 0 8px; +} +.top-cart-content .scroller { + overflow: hidden; +} +.top-cart-content li { + list-style: none; + margin: 0; + padding: 9px 0; + border-bottom: solid 1px #f2f2f2; + width: 100%; + overflow: hidden; +} +.top-cart-content img, +.top-cart-content em, +.top-cart-content strong, +.top-cart-content span, +.top-cart-content .del-goods, +.top-cart-content .add-goods { + float: left; +} +.top-cart-content img { + border: solid 2px #fff; + margin-right: 4px; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +.top-cart-content span, +.top-cart-content strong, +.top-cart-content em { + margin-right: 10px; + overflow: hidden; + padding-top: 10px; +} +.top-cart-content span { + width: 26px; +} +.top-cart-content strong { + width: 165px; + font-weight: normal; +} +.top-cart-content strong a { + color: #717880; +} +.top-cart-content em { + width: 55px; + font-style: normal; + text-align: right; +} + +.del-goods, +.add-goods { + width: 17px; + height: 17px; + color: #fff !important; + border-radius: 22px !important; + float: right; + margin: 10px 0 0 5px; + line-height: 1; + font-size: 12px; +} +.del-goods:hover, +.add-goods:hover { + text-decoration: none; +} +.del-goods { + background: #d7dde3 url(../../pages/img/icons/del-goods.png) no-repeat 50% 50%; +} +.del-goods:hover { + background: #E94D1C url(../../pages/img/icons/del-goods.png) no-repeat 50% 50%; +} +.add-goods { + background: #7bdd00 url(../../pages/img/icons/add-goods.png) no-repeat 50% 50%; +} +.add-goods:hover { + background: #E94D1C url(../../pages/img/icons/add-goods.png) no-repeat 50% 50%; +} + +.top-cart-content .text-right { + margin-right: 8px; + padding-top: 10px; +} +.top-cart-content .btn { + font-size: 11px; + padding: 8px 12px 7px; +} +.top-cart-content .btn-default { + color: #fff; + border: 1px solid #c1cad3; + background: #c1cad3; + margin-right: 4px; +} +.top-cart-content .btn-default:hover { + border: 1px solid #A8AEB3; + color: #fff; + background: #A8AEB3; +} + +.ecommerce .page-slider { + margin-top: -23px; +} + +/* breadcrumb */ +.ecommerce .breadcrumb { + text-transform: uppercase; + font: 13px "PT Sans Narrow", sans-serif; +} + +/* Catalogue styles */ +.product-item { + padding: 12px 12px 16px; + background: #fff; + position: relative; +} +.owl-item.active .product-item { + margin-right: 10px; +} +.product-item:hover { + box-shadow: 5px 5px rgba(234, 234, 234, 0.9); +} +.product-item:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; + font-size: 0; + line-height:0; +} +*html .product-item { + zoom: 1; +} +*+html .product-item { + zoom: 1; +} +.sticker { + position: absolute; + top: 0; + left: 0; + width: 63px; + height: 63px; +} +.sticker-sale { + background: url(../../pages/img/sale.png) no-repeat; +} +.sticker-new { + background: url(../../pages/img/new.png) no-repeat; + left: auto; + right: 0; +} +.pi-img-wrapper { + position: relative; +} +.pi-img-wrapper div { + background: rgba(0,0,0,0.3); + position: absolute; + left: 0; + top: 0; + display: none; + width: 100%; + height: 100%; + text-align: center; +} +.product-item:hover>.pi-img-wrapper>div { + display: block; +} +.pi-img-wrapper div .btn-default { + padding: 3px 10px; + color: #fff; + border: 1px #fff solid; + margin: -13px 5px 0; + background: transparent; + position: relative; + top: 50%; + font-size: 12px; +} +.product-item .btn:hover { + background: #e84d1c; + border-color: #c8c8c8; +} + +.product-item h3 { + font: 300 14px 'Open Sans', sans-serif; + padding-top: 10px; + padding-bottom: 4px; +} +.product-item h3 a { + color: #3e4d5c; +} +.product-item h3 a:hover { + color: #E02222; +} +.pi-price { + color: #e84d1c; + font: 18px 'PT Sans Narrow', sans-serif; + float: left; + padding-top: 1px; +} +.product-item .add2cart { + float: right; + color: #a8aeb3; + border: 1px #ededed solid; + padding: 3px 6px; +} +.product-item .add2cart:hover { + color: #fff !important; + background: #E84D1C !important; + border-color: #E84D1C; +} + +.shop-index-carousel { + margin-left: -10px; +} + +/* shopping cart page */ +.goods-data { + background: #fff; + padding: 20px; + margin-bottom: 20px; + overflow-x: auto; + margin-right: 10px; +} +.goods-data table, +.checkout-page table { + width: 100%; + font: 300 13px 'Open Sans', sans-serif; +} +.goods-data th, +.checkout-page th { + font: 16px "PT Sans Narrow", sans-serif; + text-transform: uppercase; + border-bottom: solid 1px #ecebeb; + padding-bottom: 8px; +} +.goods-data td, +.checkout-page td { + vertical-align: top; + padding: 20px 20px 20px 0; + border-bottom: solid 1px #ecebeb; +} +.goods-page-image, +.checkout-image { + width: 105px; +} +.goods-page-image img, +.checkout-image img { + width: 75px; +} +.goods-page-price, +.goods-page-total, +.checkout-price, +.checkout-total { + font-family: 'PT Sans Narrow', sans-serif; +} +.goods-page-price strong, +.goods-page-total strong, +.checkout-price strong, +.checkout-total strong { + color: #e84d1c; + font-size: 21px; + font-weight: normal; +} +.goods-page-price strong span, +.goods-page-total strong span, +.checkout-price strong span, +.checkout-total strong span { + font-size: 17px; +} +.goods-data h3, +.checkout-page .checkout-description h3 { + font: 300 14px 'Open Sans', sans-serif; + text-transform: inherit; + padding: 0; + margin: 0 0 5px; +} +.goods-data p, +.checkout-description p { + margin-bottom: 2px; +} +.goods-data a, +.checkout-page .checkout-description a { + color: #e6400c; +} +.goods-page-description em, +.checkout-description em { + display: block; + font-style: normal; +} +.goods-page .btn-default { + float: left; + border: 1px solid #5ea8dc; + background: #5ea8dc; + color: #fff; +} +.goods-page .btn-default:hover { + border: 1px solid #408cc2; + background: #408cc2; +} +.goods-page .btn-primary { + float: right; + margin-right: 10px; +} + +.goods-data .del-goods, +.goods-data .add-goods { + margin-top: 4px; +} + +.shopping-total, +.checkout-total-block { + width: 230px; + float: right; + padding-top: 9px; + color: #3e4d5c; +} +.checkout-total-block { + margin-bottom: 20px; +} +.shopping-total ul, +.checkout-total-block ul { + margin: 0; + padding: 0; + list-style: none; +} +.shopping-total li, +.checkout-total-block li { + border-bottom: solid 1px #ecebeb; + width: 100%; + overflow: hidden; + padding: 9px 0; +} +.shopping-total li:last-child, +.checkout-total-block li:last-child { + border: none; +} +.shopping-total em, +.checkout-total-block em { + font: 18px 'PT Sans Narrow', sans-serif; + float: left; + text-transform: uppercase; + position: relative; + top: 2px; +} +.shopping-total strong, +.checkout-total-block strong { + color: #e84d1c; + font: 21px 'PT Sans Narrow', sans-serif; + font-weight: normal; + float: right; +} +.shopping-total strong span, +.checkout-total-block strong span { + font-size: 17px; +} +.shopping-total-price, +.checkout-total-price { + font-weight: bold; +} +.shopping-total-price strong, +.checkout-total-price strong { + font-weight: bold; +} + +/* checkout page */ +.checkout-page h2 { + background: #a7b0b8; + color: #fff; + font: 17px 'PT Sans Narrow', sans-serif; + margin: 0 0 15px; +} +.checkout-page h2 a { + color: #fff; + display: block; + padding: 9px 20px 8px !important; +} +.checkout-page h2 a:hover { + color: #fff; +} +.checkout-content { + padding: 0 20px 40px; +} +.checkout-block.panel { + background: inherit; + box-shadow: none; + margin-bottom: 0; +} +.checkout-page a { + color: #767F88; +} +.checkout-page a:hover { + color: #E02222; +} +.checkout-page h3 { + font: 23px 'PT Sans Narrow', sans-serif; + color: #3e4d5c; + padding-top: 10px; +} +.checkout-page select.form-control { + color: #B0B4B7; +} +.checkout-page select.form-control.input-sm { + width: 100%; + height: 34px; + font-size: 14px; + padding: 6px 12px; +} +.input-sm { + padding: 3px 10px; +} +.checkout-page hr { + clear: both; +} +#shipping-method .form-group { + padding-top: 10px; +} +.checkout-page h4 { + text-transform: inherit; + font-size: 20px; +} + +.checkout-page .panel { + border-radius: 0; + border: none; + box-shadow: none; +} +.checkout-page .panel-heading { + background: none; + padding: 0; +} +.checkout-page .panel-body { + border: none !important; + padding-left: 20px; + padding-right: 20px; +} +.radio-list { + margin: 0 0 10px -2px; +} +.radio-list > label { + display: block; +} + +div.checker, +div.radio { + top: -1px; +} + +/* Radio */ +div.radio { + position: relative; +} +div.radio, div.radio span, div.radio input { + width: 18px; + height: 18px; +} +div.radio span { + display: -moz-inline-box; + display: inline-block; + *display: inline; + zoom: 1; + text-align: center; + background-position: 0 -279px; +} +div.radio span.checked { + background-position: -72px -279px; +} +div.radio input { + opacity: 0; + filter: alpha(opacity=0); + -moz-opacity: 0; + border: none; + background: none; + display: -moz-inline-box; + display: inline-block; + *display: inline; + zoom: 1; + text-align: center; +} +div.radio.active span { + background-position: -18px -18px -279px; +} +div.radio.active span.checked { + background-position: -90px -279px; + } +div.radio.hover span, div.radio.focus span { + background-position: -36px -36px -279px; +} +div.radio.hover span.checked, div.radio.focus span.checked { + background-position: -108px -279px; + } +div.radio.hover.active span, div.radio.focus.active span { + background-position: -54px -279px; +} +div.radio.hover.active span.checked, div.radio.focus.active span.checked { + background-position: -126px -279px; + } +div.radio.disabled span, div.radio.disabled.active span { + background-position: -144px -279px; +} +div.radio.disabled span.checked, div.radio.disabled.active span.checked { + background-position: -162px -279px; + } + +/* compare goods */ +.compare-goods tr:first-child td.compare-info, +.compare-goods tr:first-child td.compare-item { + background: no-repeat; + border-bottom: 3px solid #ECEBEB; +} +.goods-data td.compare-info { + width: 20%; + vertical-align: middle; + background: #F9F9F9; +} +.goods-data td.compare-info, +.goods-data td.compare-item { + padding: 20px; +} +.compare-item { + text-align: center; +} +.compare-item img { + width: 100%; + max-width: 100px; +} +.compare-item h3 { + padding: 7px 0 4px; + margin: 0; +} +.compare-item strong { + color: #E84D1C; + font-size: 21px; + font-weight: normal; +} +.compare-item strong span { + font-size: 17px; +} +.compare-goods .btn-primary { + margin-right: 0; +} + +.goods-data th h2 { + font-size: 17px; + padding: 8px 20px 0; + margin: 0; + font-weight: bold; +} + +.goods-page .compare-item .btn-primary { + color: #fff; + float: none; +} +.goods-page .compare-item .btn-default { + border: 1px solid #EDEDED; + color: #A8AEB3; + background: transparent; + padding: 6px 13px; + float: none; + margin-top: 10px; +} +.goods-page .compare-item .btn-default:hover, +.goods-page .compare-item .btn-default:focus, +.goods-page .compare-item .btn-default:active { + border: 1px solid #A8AEB3; + color: #fff; + background: #A8AEB3; + padding: 6px 13px; +} + +.ecommerce .sidebar { + font: 15px 'PT Sans Narrow', sans-serif; + color: #3E4D5C; + text-transform: uppercase; +} +.ecommerce .sidebar .list-group-item { + background: #fff; + padding: 8px 10px 6px; +} + +/* sidebar filter */ +.sidebar-filter { + background: #fff; + padding: 15px 15px 20px; +} +.sidebar-filter h2 { + font-size: 18px; + margin: 0; +} +.sidebar-filter h3 { + font: 600 14px 'Open Sans', sans-serif; + /*text-transform: none;*/ + padding-top: 10px; +} +.sidebar-filter label { + text-transform: none; + font: 400 13px 'Open Sans', sans-serif; +} +.sidebar-filter #amount { + font-weight: normal !important; + color: #767F88 !important; +} +.sidebar-filter .ui-widget-content { + border: none; + background: #e5e5e5; + border-radius: 0; + height: 8px !important; +} +.sidebar-filter .ui-widget-header { + background: #ffb848; +} +.ui-state-default, +.ui-state-default:hover { + border-radius: 0; + width: 11px !important; + height: 24px !important; + border-color: #fff !important; + top: -8px !important; + background: #777 !important; +} + +.checkbox-list > label { + display: block; + font-weight: normal; +} + +/* sidebar products */ +.sidebar-products { + background: #fff; + padding: 15px 15px 20px; +} +.sidebar-products .item { + width: 100%; + overflow: hidden; + padding-bottom: 15px; + margin-bottom: 15px; + border-bottom: solid 1px #eee; +} +.sidebar-products .item:last-child { + margin-bottom: 0; + padding-bottom: 0; + border: none; +} +.sidebar-products h2 { + font-size: 18px; + margin-bottom: 14px; +} +.sidebar-products img { + width: 65px; + height: auto; + float: left; +} +.sidebar-products h3 { + font: 300 13px 'Open Sans', sans-serif; + /*text-transform: none;*/ + margin-left: 80px; + margin-bottom: 2px; +} +.sidebar-products .price { + margin-left: 80px; + color: #E84D1C; + font: 16px 'PT Sans Narrow', sans-serif; +} + +/* BEGIN product page */ +.product-page { + background: #fff; + padding: 22px; + position: relative; + margin-right: 10px; +} +.product-main-image { + margin-bottom: 20px; +} +.product-main-image img { + width: 100%; +} +.product-other-images { + text-align: left; +} +.product-other-images img { + width: 58px; + height: auto; + margin: 0 12px 12px 0; +} +.product-other-images a:hover img, +.product-other-images a.active img { + box-shadow: 0 0 0 2px #c7ced5; +} +.product-page h1 { + border-bottom: 1px solid #f4f4f4; + padding-bottom: 12px; +} +.price-availability-block { + border-bottom: 1px solid #f4f4f4; + padding-bottom: 12px; + margin-bottom: 17px; +} +.price-availability-block .price { + float: left; + font-family: 'PT Sans Narrow', sans-serif; +} +.price-availability-block .price strong { + color: #e84d1c; + font-size: 35px; + font-weight: normal; +} +.price-availability-block .price strong span { + font-size: 25px; +} +.price-availability-block .price em { + font-style: normal; + color: #bbb; + font-size: 17px; +} +.price-availability-block .price em span { + font-size: 23px; + text-decoration: line-through; +} +.price-availability-block .availability { + float: right; + color: #7b8a99; +} +.price-availability-block .availability strong { + font-weight: normal; + color: #3e4d5c; +} +.product-page .nav-tabs > li { + margin-top: 1px; +} +.product-page-options { + border-top: 1px solid #f4f4f4; + border-bottom: 1px solid #f4f4f4; + padding: 20px 0; + margin-bottom: 20px; + width: 100%; + overflow: hidden; +} +.product-page-options .pull-left { + margin-right: 40px; +} +.product-page-options .pull-left:last-child { + margin-right: 0; +} +.product-page-options label { + font-weight: normal; + text-transform: uppercase; + color: #8e9ca8; + font-family: "PT Sans Narrow", sans-serif; + float: left; + margin-right: 10px; + padding-top: 2px; +} +.product-page-options select.input-sm { + float: left; + width: auto; + height: 26px; +} + +.product-page-cart { + border-bottom: 1px solid #f4f4f4; + padding-bottom: 20px; + margin-bottom: 18px; +} +.product-quantity, +.product-quantity .input-group { + width: 70px; + float: left; + margin-right: 20px; + position: relative; +} +table .product-quantity, +table .product-quantity .input-group { + margin-right: 0; +} +.product-page-cart .btn { + padding: 7px 20px; + font-size: 13px; + height: 38px; +} +.product-quantity input.form-control { + border: none; + background: #edeff1 !important; + font: 300 23px 'Open Sans', sans-serif;; + color: #647484; + height: 38px; + width: 50px; + text-align: center; + padding: 5px; +} +.product-quantity input.form-control:focus { + border: none; +} + +.product-quantity .input-group-btn { + position: static; +} +.product-quantity .btn { + text-align: center; + height: 18px !important; + width: 18px; + padding: 0 2px 0 1px !important; + text-align: center; + background: #edeff1; + border-radius: 0 !important; + font-size: 18px !important; + line-height: 1 !important; + color: #616b76; + margin: 0 !important; + position: absolute; + right: 0; +} +.product-quantity .quantity-up { + top: 0; +} +.product-quantity .quantity-down { + bottom: 0; +} +.product-quantity .btn i { + position: relative; + top: -2px; + left: 1px; +} + +.product-page .review { + color: #6e7a85; + font-family: 'Open Sans', sans-serif; + border-bottom: 1px solid #f4f4f4; + padding-bottom: 18px; + margin-bottom: 20px; + font-weight: 300; +} + +.product-page .rateit { + margin-right: 27px; + position: relative; + top: 2px; +} +.product-page .review a { + color: #e6400c; +} +.product-page .social-icons li a { + background-position: 0 -38px; + opacity: 1; +} + +/* product pop up */ +.product-pop-up { + padding: 0; + overflow-x: hidden; + background: inherit; +} +.product-pop-up .product-quantity, .product-pop-up .product-quantity .input-group { + margin-right: 15px; +} +.product-pop-up .product-page-cart .btn { + padding: 7px 5px; +} +.product-pop-up .product-page-cart a.btn { + padding: 9px 5px 5px; + display: inline-block; +} +.product-pop-up .btn-primary { + margin-right: 10px; +} + +.product-page-content { + width: 100%; + overflow: hidden; + padding: 50px 13px 0; +} + +.ecommerce .nav-tabs { + text-transform: uppercase; + font: 16px/1 "PT Sans Narrow", sans-serif; +} +.ecommerce .nav-tabs > li > a, .ecommerce .nav-tabs > li > a:hover, .ecommerce .nav-tabs > li > a:focus { + padding: 5px 15px 3px; + background: #edeff1; +} +.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #E6400C; + color: #fff; +} +.product-page-content .tab-content { + padding: 20px 15px; + background: #fff; +} + +/* datasheet tab */ +.product-page-content .datasheet { + width: 100%; + font-size: inherit; +} +.product-page-content .datasheet th { + border-bottom: solid 2px #eee; + padding-bottom: 5px; + font-size: 15px; +} +.product-page-content .datasheet td { + padding: 5px 20px 5px 0; + border-bottom: solid 1px #eee; +} +.datasheet-features-type { + font-weight: bold; +} +/* reviews tab */ +.reviews-form { + padding-top: 20px; +} +.reviews-form label { + font-weight: normal; +} +.reviews-form input.form-control { + color: #aaa; +} +.review-item { + width: 100%; + overflow: hidden; + border-bottom: solid 1px #eee; + padding: 0 5px 5px; + margin: 0 -5px 20px; +} +.review-item-submitted { + margin-bottom: 5px; + position: relative; +} +.review-item-submitted strong, +.review-item-submitted em { + display: block; +} +.review-item-submitted strong { + margin-bottom: 3px; +} +.review-item-submitted em { + font-style: normal; + color: #bbb; + font-size: 12px; +} +.review-item-submitted .rateit { + position: absolute; + top: 3px; + right: 0; +} +/* END product page */ + +/* list view sorting */ +.list-view-sorting { + margin-bottom: 20px; +} +.list-view * { + display: none !important; +} +.list-view-sorting .pull-right { + margin-left: 30px; +} +.list-view-sorting label { + font-weight: normal; + text-transform: uppercase; + font-size: 14px; + color: #8e9ca8; + font-family: "PT Sans Narrow", sans-serif; + float: left; + margin-right: 10px; + position: relative; + top: 2px; +} +.list-view-sorting select { + float: left; + width: auto; + height: 26px; +} +.list-view-sorting a { + background: #fff; + color: #E6400C; + display: inline-block; + padding: 4px 6px; + line-height: 1; + margin-right: -3px; +} + +.content-form-page legend { + font: 18px 'PT Sans Narrow', sans-serif; + text-transform: uppercase; + margin-bottom: 14px; +} + +/*** +Shop Stype Buttons +***/ +.btn { + text-transform: uppercase; +} \ No newline at end of file diff --git a/static/assets/pages/img/Thumbs.db b/static/assets/pages/img/Thumbs.db new file mode 100644 index 0000000..fb90652 Binary files /dev/null and b/static/assets/pages/img/Thumbs.db differ diff --git a/static/assets/pages/img/brands/Thumbs.db b/static/assets/pages/img/brands/Thumbs.db new file mode 100644 index 0000000..98ebdb1 Binary files /dev/null and b/static/assets/pages/img/brands/Thumbs.db differ diff --git a/static/assets/pages/img/brands/canon.jpg b/static/assets/pages/img/brands/canon.jpg new file mode 100644 index 0000000..fc909d3 Binary files /dev/null and b/static/assets/pages/img/brands/canon.jpg differ diff --git a/static/assets/pages/img/brands/esprit.jpg b/static/assets/pages/img/brands/esprit.jpg new file mode 100644 index 0000000..588c697 Binary files /dev/null and b/static/assets/pages/img/brands/esprit.jpg differ diff --git a/static/assets/pages/img/brands/gap.jpg b/static/assets/pages/img/brands/gap.jpg new file mode 100644 index 0000000..d8ff5af Binary files /dev/null and b/static/assets/pages/img/brands/gap.jpg differ diff --git a/static/assets/pages/img/brands/next.jpg b/static/assets/pages/img/brands/next.jpg new file mode 100644 index 0000000..ef0504e Binary files /dev/null and b/static/assets/pages/img/brands/next.jpg differ diff --git a/static/assets/pages/img/brands/puma.jpg b/static/assets/pages/img/brands/puma.jpg new file mode 100644 index 0000000..b65b36f Binary files /dev/null and b/static/assets/pages/img/brands/puma.jpg differ diff --git a/static/assets/pages/img/brands/zara.jpg b/static/assets/pages/img/brands/zara.jpg new file mode 100644 index 0000000..cdfe6f4 Binary files /dev/null and b/static/assets/pages/img/brands/zara.jpg differ diff --git a/static/assets/pages/img/careers/Thumbs.db b/static/assets/pages/img/careers/Thumbs.db new file mode 100644 index 0000000..a36d4f2 Binary files /dev/null and b/static/assets/pages/img/careers/Thumbs.db differ diff --git a/static/assets/pages/img/careers/careers.jpg b/static/assets/pages/img/careers/careers.jpg new file mode 100644 index 0000000..02bf472 Binary files /dev/null and b/static/assets/pages/img/careers/careers.jpg differ diff --git a/static/assets/pages/img/cart-img.jpg b/static/assets/pages/img/cart-img.jpg new file mode 100644 index 0000000..d6c6d92 Binary files /dev/null and b/static/assets/pages/img/cart-img.jpg differ diff --git a/static/assets/pages/img/clients/Thumbs.db b/static/assets/pages/img/clients/Thumbs.db new file mode 100644 index 0000000..67350bd Binary files /dev/null and b/static/assets/pages/img/clients/Thumbs.db differ diff --git a/static/assets/pages/img/clients/client_1.png b/static/assets/pages/img/clients/client_1.png new file mode 100644 index 0000000..b239d3a Binary files /dev/null and b/static/assets/pages/img/clients/client_1.png differ diff --git a/static/assets/pages/img/clients/client_1_gray.png b/static/assets/pages/img/clients/client_1_gray.png new file mode 100644 index 0000000..00a9e3b Binary files /dev/null and b/static/assets/pages/img/clients/client_1_gray.png differ diff --git a/static/assets/pages/img/clients/client_2.png b/static/assets/pages/img/clients/client_2.png new file mode 100644 index 0000000..c3a7f4f Binary files /dev/null and b/static/assets/pages/img/clients/client_2.png differ diff --git a/static/assets/pages/img/clients/client_2_gray.png b/static/assets/pages/img/clients/client_2_gray.png new file mode 100644 index 0000000..0a05348 Binary files /dev/null and b/static/assets/pages/img/clients/client_2_gray.png differ diff --git a/static/assets/pages/img/clients/client_3.png b/static/assets/pages/img/clients/client_3.png new file mode 100644 index 0000000..c0673fa Binary files /dev/null and b/static/assets/pages/img/clients/client_3.png differ diff --git a/static/assets/pages/img/clients/client_3_gray.png b/static/assets/pages/img/clients/client_3_gray.png new file mode 100644 index 0000000..a8e4c03 Binary files /dev/null and b/static/assets/pages/img/clients/client_3_gray.png differ diff --git a/static/assets/pages/img/clients/client_4.png b/static/assets/pages/img/clients/client_4.png new file mode 100644 index 0000000..bd7035c Binary files /dev/null and b/static/assets/pages/img/clients/client_4.png differ diff --git a/static/assets/pages/img/clients/client_4_gray.png b/static/assets/pages/img/clients/client_4_gray.png new file mode 100644 index 0000000..b1f1a9f Binary files /dev/null and b/static/assets/pages/img/clients/client_4_gray.png differ diff --git a/static/assets/pages/img/clients/client_5.png b/static/assets/pages/img/clients/client_5.png new file mode 100644 index 0000000..572b848 Binary files /dev/null and b/static/assets/pages/img/clients/client_5.png differ diff --git a/static/assets/pages/img/clients/client_5_gray.png b/static/assets/pages/img/clients/client_5_gray.png new file mode 100644 index 0000000..4ec0fc1 Binary files /dev/null and b/static/assets/pages/img/clients/client_5_gray.png differ diff --git a/static/assets/pages/img/clients/client_6.png b/static/assets/pages/img/clients/client_6.png new file mode 100644 index 0000000..396f208 Binary files /dev/null and b/static/assets/pages/img/clients/client_6.png differ diff --git a/static/assets/pages/img/clients/client_6_gray.png b/static/assets/pages/img/clients/client_6_gray.png new file mode 100644 index 0000000..b7a28e3 Binary files /dev/null and b/static/assets/pages/img/clients/client_6_gray.png differ diff --git a/static/assets/pages/img/clients/client_7.png b/static/assets/pages/img/clients/client_7.png new file mode 100644 index 0000000..70a24ef Binary files /dev/null and b/static/assets/pages/img/clients/client_7.png differ diff --git a/static/assets/pages/img/clients/client_7_gray.png b/static/assets/pages/img/clients/client_7_gray.png new file mode 100644 index 0000000..d6b2a1d Binary files /dev/null and b/static/assets/pages/img/clients/client_7_gray.png differ diff --git a/static/assets/pages/img/clients/client_8.png b/static/assets/pages/img/clients/client_8.png new file mode 100644 index 0000000..4e62c47 Binary files /dev/null and b/static/assets/pages/img/clients/client_8.png differ diff --git a/static/assets/pages/img/clients/client_8_gray.png b/static/assets/pages/img/clients/client_8_gray.png new file mode 100644 index 0000000..c1d444c Binary files /dev/null and b/static/assets/pages/img/clients/client_8_gray.png differ diff --git a/static/assets/pages/img/fa-angle-brands.png b/static/assets/pages/img/fa-angle-brands.png new file mode 100644 index 0000000..d41fbfa Binary files /dev/null and b/static/assets/pages/img/fa-angle-brands.png differ diff --git a/static/assets/pages/img/fa-angles.png b/static/assets/pages/img/fa-angles.png new file mode 100644 index 0000000..f5715b8 Binary files /dev/null and b/static/assets/pages/img/fa-angles.png differ diff --git a/static/assets/pages/img/frontend-slider/Thumbs.db b/static/assets/pages/img/frontend-slider/Thumbs.db new file mode 100644 index 0000000..6fe3492 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/Thumbs.db differ diff --git a/static/assets/pages/img/frontend-slider/bg1.jpg b/static/assets/pages/img/frontend-slider/bg1.jpg new file mode 100644 index 0000000..8578757 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/bg1.jpg differ diff --git a/static/assets/pages/img/frontend-slider/bg1_BK.jpg b/static/assets/pages/img/frontend-slider/bg1_BK.jpg new file mode 100644 index 0000000..acd5395 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/bg1_BK.jpg differ diff --git a/static/assets/pages/img/frontend-slider/bg2.jpg b/static/assets/pages/img/frontend-slider/bg2.jpg new file mode 100644 index 0000000..df9f259 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/bg2.jpg differ diff --git a/static/assets/pages/img/frontend-slider/bg2_BK.jpg b/static/assets/pages/img/frontend-slider/bg2_BK.jpg new file mode 100644 index 0000000..6d2248a Binary files /dev/null and b/static/assets/pages/img/frontend-slider/bg2_BK.jpg differ diff --git a/static/assets/pages/img/frontend-slider/bg3.jpg b/static/assets/pages/img/frontend-slider/bg3.jpg new file mode 100644 index 0000000..7f6c8dc Binary files /dev/null and b/static/assets/pages/img/frontend-slider/bg3.jpg differ diff --git a/static/assets/pages/img/frontend-slider/bg4.jpg b/static/assets/pages/img/frontend-slider/bg4.jpg new file mode 100644 index 0000000..e3df7e6 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/bg4.jpg differ diff --git a/static/assets/pages/img/frontend-slider/bg5.jpg b/static/assets/pages/img/frontend-slider/bg5.jpg new file mode 100644 index 0000000..0cbeb85 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/bg5.jpg differ diff --git a/static/assets/pages/img/frontend-slider/bg8.jpg b/static/assets/pages/img/frontend-slider/bg8.jpg new file mode 100644 index 0000000..d421f7b Binary files /dev/null and b/static/assets/pages/img/frontend-slider/bg8.jpg differ diff --git a/static/assets/pages/img/frontend-slider/bg9 (copy).jpg b/static/assets/pages/img/frontend-slider/bg9 (copy).jpg new file mode 100644 index 0000000..846eeb7 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/bg9 (copy).jpg differ diff --git a/static/assets/pages/img/frontend-slider/bg9_BK.jpg b/static/assets/pages/img/frontend-slider/bg9_BK.jpg new file mode 100644 index 0000000..8ec9832 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/bg9_BK.jpg differ diff --git a/static/assets/pages/img/frontend-slider/hint1-blue.png b/static/assets/pages/img/frontend-slider/hint1-blue.png new file mode 100644 index 0000000..ca49271 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/hint1-blue.png differ diff --git a/static/assets/pages/img/frontend-slider/hint1-green.png b/static/assets/pages/img/frontend-slider/hint1-green.png new file mode 100644 index 0000000..2d7213a Binary files /dev/null and b/static/assets/pages/img/frontend-slider/hint1-green.png differ diff --git a/static/assets/pages/img/frontend-slider/hint1-orange.png b/static/assets/pages/img/frontend-slider/hint1-orange.png new file mode 100644 index 0000000..acfe101 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/hint1-orange.png differ diff --git a/static/assets/pages/img/frontend-slider/hint1-red.png b/static/assets/pages/img/frontend-slider/hint1-red.png new file mode 100644 index 0000000..8bd7d4b Binary files /dev/null and b/static/assets/pages/img/frontend-slider/hint1-red.png differ diff --git a/static/assets/pages/img/frontend-slider/hint2-blue.png b/static/assets/pages/img/frontend-slider/hint2-blue.png new file mode 100644 index 0000000..c30db0e Binary files /dev/null and b/static/assets/pages/img/frontend-slider/hint2-blue.png differ diff --git a/static/assets/pages/img/frontend-slider/hint2-green.png b/static/assets/pages/img/frontend-slider/hint2-green.png new file mode 100644 index 0000000..910646c Binary files /dev/null and b/static/assets/pages/img/frontend-slider/hint2-green.png differ diff --git a/static/assets/pages/img/frontend-slider/hint2-orange.png b/static/assets/pages/img/frontend-slider/hint2-orange.png new file mode 100644 index 0000000..2eb7a28 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/hint2-orange.png differ diff --git a/static/assets/pages/img/frontend-slider/hint2-red.png b/static/assets/pages/img/frontend-slider/hint2-red.png new file mode 100644 index 0000000..aa307b1 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/hint2-red.png differ diff --git a/static/assets/pages/img/frontend-slider/ipad.png b/static/assets/pages/img/frontend-slider/ipad.png new file mode 100644 index 0000000..9d2341d Binary files /dev/null and b/static/assets/pages/img/frontend-slider/ipad.png differ diff --git a/static/assets/pages/img/frontend-slider/ipadmini.png b/static/assets/pages/img/frontend-slider/ipadmini.png new file mode 100644 index 0000000..2a15870 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/ipadmini.png differ diff --git a/static/assets/pages/img/frontend-slider/iphone.png b/static/assets/pages/img/frontend-slider/iphone.png new file mode 100644 index 0000000..c87c354 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/iphone.png differ diff --git a/static/assets/pages/img/frontend-slider/iphone_large.png b/static/assets/pages/img/frontend-slider/iphone_large.png new file mode 100644 index 0000000..e09539f Binary files /dev/null and b/static/assets/pages/img/frontend-slider/iphone_large.png differ diff --git a/static/assets/pages/img/frontend-slider/iphone_left.png b/static/assets/pages/img/frontend-slider/iphone_left.png new file mode 100644 index 0000000..1cac41c Binary files /dev/null and b/static/assets/pages/img/frontend-slider/iphone_left.png differ diff --git a/static/assets/pages/img/frontend-slider/iphone_right.png b/static/assets/pages/img/frontend-slider/iphone_right.png new file mode 100644 index 0000000..51ff148 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/iphone_right.png differ diff --git a/static/assets/pages/img/frontend-slider/mac.png b/static/assets/pages/img/frontend-slider/mac.png new file mode 100644 index 0000000..31df5cc Binary files /dev/null and b/static/assets/pages/img/frontend-slider/mac.png differ diff --git a/static/assets/pages/img/frontend-slider/macbook.png b/static/assets/pages/img/frontend-slider/macbook.png new file mode 100644 index 0000000..3642a9a Binary files /dev/null and b/static/assets/pages/img/frontend-slider/macbook.png differ diff --git a/static/assets/pages/img/frontend-slider/sha.jpg b/static/assets/pages/img/frontend-slider/sha.jpg new file mode 100644 index 0000000..3ca45cd Binary files /dev/null and b/static/assets/pages/img/frontend-slider/sha.jpg differ diff --git a/static/assets/pages/img/frontend-slider/shattered.png b/static/assets/pages/img/frontend-slider/shattered.png new file mode 100644 index 0000000..77abaad Binary files /dev/null and b/static/assets/pages/img/frontend-slider/shattered.png differ diff --git a/static/assets/pages/img/frontend-slider/thumbs/Thumbs.db b/static/assets/pages/img/frontend-slider/thumbs/Thumbs.db new file mode 100644 index 0000000..da75dd2 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/thumbs/Thumbs.db differ diff --git a/static/assets/pages/img/frontend-slider/thumbs/thumb1.jpg b/static/assets/pages/img/frontend-slider/thumbs/thumb1.jpg new file mode 100644 index 0000000..48fbe71 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/thumbs/thumb1.jpg differ diff --git a/static/assets/pages/img/frontend-slider/thumbs/thumb2.jpg b/static/assets/pages/img/frontend-slider/thumbs/thumb2.jpg new file mode 100644 index 0000000..fa2a4d3 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/thumbs/thumb2.jpg differ diff --git a/static/assets/pages/img/frontend-slider/thumbs/thumb3.jpg b/static/assets/pages/img/frontend-slider/thumbs/thumb3.jpg new file mode 100644 index 0000000..ed27161 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/thumbs/thumb3.jpg differ diff --git a/static/assets/pages/img/frontend-slider/thumbs/thumb4.jpg b/static/assets/pages/img/frontend-slider/thumbs/thumb4.jpg new file mode 100644 index 0000000..39a2018 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/thumbs/thumb4.jpg differ diff --git a/static/assets/pages/img/frontend-slider/thumbs/thumb5.jpg b/static/assets/pages/img/frontend-slider/thumbs/thumb5.jpg new file mode 100644 index 0000000..5f3ea1f Binary files /dev/null and b/static/assets/pages/img/frontend-slider/thumbs/thumb5.jpg differ diff --git a/static/assets/pages/img/frontend-slider/thumbs/thumb6.jpg b/static/assets/pages/img/frontend-slider/thumbs/thumb6.jpg new file mode 100644 index 0000000..43243dd Binary files /dev/null and b/static/assets/pages/img/frontend-slider/thumbs/thumb6.jpg differ diff --git a/static/assets/pages/img/frontend-slider/thumbs/thumb7.jpg b/static/assets/pages/img/frontend-slider/thumbs/thumb7.jpg new file mode 100644 index 0000000..a07b702 Binary files /dev/null and b/static/assets/pages/img/frontend-slider/thumbs/thumb7.jpg differ diff --git a/static/assets/pages/img/icon-color-close.png b/static/assets/pages/img/icon-color-close.png new file mode 100644 index 0000000..9b7dfac Binary files /dev/null and b/static/assets/pages/img/icon-color-close.png differ diff --git a/static/assets/pages/img/icon-color.png b/static/assets/pages/img/icon-color.png new file mode 100644 index 0000000..b9666ee Binary files /dev/null and b/static/assets/pages/img/icon-color.png differ diff --git a/static/assets/pages/img/icons/Thumbs.db b/static/assets/pages/img/icons/Thumbs.db new file mode 100644 index 0000000..d231631 Binary files /dev/null and b/static/assets/pages/img/icons/Thumbs.db differ diff --git a/static/assets/pages/img/icons/add-goods.png b/static/assets/pages/img/icons/add-goods.png new file mode 100644 index 0000000..19fc270 Binary files /dev/null and b/static/assets/pages/img/icons/add-goods.png differ diff --git a/static/assets/pages/img/icons/del-goods.png b/static/assets/pages/img/icons/del-goods.png new file mode 100644 index 0000000..d29b8bd Binary files /dev/null and b/static/assets/pages/img/icons/del-goods.png differ diff --git a/static/assets/pages/img/icons/search-icon.png b/static/assets/pages/img/icons/search-icon.png new file mode 100644 index 0000000..cb07d45 Binary files /dev/null and b/static/assets/pages/img/icons/search-icon.png differ diff --git a/static/assets/pages/img/icons/shop-cart-icon.png b/static/assets/pages/img/icons/shop-cart-icon.png new file mode 100644 index 0000000..0e35f2b Binary files /dev/null and b/static/assets/pages/img/icons/shop-cart-icon.png differ diff --git a/static/assets/pages/img/icons/sidebar-toggle-icons.png b/static/assets/pages/img/icons/sidebar-toggle-icons.png new file mode 100644 index 0000000..3fa86c5 Binary files /dev/null and b/static/assets/pages/img/icons/sidebar-toggle-icons.png differ diff --git a/static/assets/pages/img/icons/toggler.png b/static/assets/pages/img/icons/toggler.png new file mode 100644 index 0000000..365e08e Binary files /dev/null and b/static/assets/pages/img/icons/toggler.png differ diff --git a/static/assets/pages/img/icons/top-search-icon.png b/static/assets/pages/img/icons/top-search-icon.png new file mode 100644 index 0000000..78609d3 Binary files /dev/null and b/static/assets/pages/img/icons/top-search-icon.png differ diff --git a/static/assets/pages/img/img1.jpg b/static/assets/pages/img/img1.jpg new file mode 100644 index 0000000..c68a085 Binary files /dev/null and b/static/assets/pages/img/img1.jpg differ diff --git a/static/assets/pages/img/img3.jpg b/static/assets/pages/img/img3.jpg new file mode 100644 index 0000000..b1b67ce Binary files /dev/null and b/static/assets/pages/img/img3.jpg differ diff --git a/static/assets/pages/img/index-sliders/Thumbs.db b/static/assets/pages/img/index-sliders/Thumbs.db new file mode 100644 index 0000000..b180b7f Binary files /dev/null and b/static/assets/pages/img/index-sliders/Thumbs.db differ diff --git a/static/assets/pages/img/index-sliders/slide1.jpg b/static/assets/pages/img/index-sliders/slide1.jpg new file mode 100644 index 0000000..f7e0a5e Binary files /dev/null and b/static/assets/pages/img/index-sliders/slide1.jpg differ diff --git a/static/assets/pages/img/index-sliders/slide2.jpg b/static/assets/pages/img/index-sliders/slide2.jpg new file mode 100644 index 0000000..a11f3b3 Binary files /dev/null and b/static/assets/pages/img/index-sliders/slide2.jpg differ diff --git a/static/assets/pages/img/index-sliders/slide3.jpg b/static/assets/pages/img/index-sliders/slide3.jpg new file mode 100644 index 0000000..888da02 Binary files /dev/null and b/static/assets/pages/img/index-sliders/slide3.jpg differ diff --git a/static/assets/pages/img/new.png b/static/assets/pages/img/new.png new file mode 100644 index 0000000..52e5428 Binary files /dev/null and b/static/assets/pages/img/new.png differ diff --git a/static/assets/pages/img/people/Thumbs.db b/static/assets/pages/img/people/Thumbs.db new file mode 100644 index 0000000..db78d23 Binary files /dev/null and b/static/assets/pages/img/people/Thumbs.db differ diff --git a/static/assets/pages/img/people/img1-large.jpg b/static/assets/pages/img/people/img1-large.jpg new file mode 100644 index 0000000..4b6548b Binary files /dev/null and b/static/assets/pages/img/people/img1-large.jpg differ diff --git a/static/assets/pages/img/people/img1-small.jpg b/static/assets/pages/img/people/img1-small.jpg new file mode 100644 index 0000000..4b6548b Binary files /dev/null and b/static/assets/pages/img/people/img1-small.jpg differ diff --git a/static/assets/pages/img/people/img2-large.jpg b/static/assets/pages/img/people/img2-large.jpg new file mode 100644 index 0000000..973f863 Binary files /dev/null and b/static/assets/pages/img/people/img2-large.jpg differ diff --git a/static/assets/pages/img/people/img2-small.jpg b/static/assets/pages/img/people/img2-small.jpg new file mode 100644 index 0000000..973f863 Binary files /dev/null and b/static/assets/pages/img/people/img2-small.jpg differ diff --git a/static/assets/pages/img/people/img3-large.jpg b/static/assets/pages/img/people/img3-large.jpg new file mode 100644 index 0000000..80d3fe0 Binary files /dev/null and b/static/assets/pages/img/people/img3-large.jpg differ diff --git a/static/assets/pages/img/people/img3-small.jpg b/static/assets/pages/img/people/img3-small.jpg new file mode 100644 index 0000000..80d3fe0 Binary files /dev/null and b/static/assets/pages/img/people/img3-small.jpg differ diff --git a/static/assets/pages/img/people/img4-large.jpg b/static/assets/pages/img/people/img4-large.jpg new file mode 100644 index 0000000..502c4a1 Binary files /dev/null and b/static/assets/pages/img/people/img4-large.jpg differ diff --git a/static/assets/pages/img/people/img4-small.jpg b/static/assets/pages/img/people/img4-small.jpg new file mode 100644 index 0000000..502c4a1 Binary files /dev/null and b/static/assets/pages/img/people/img4-small.jpg differ diff --git a/static/assets/pages/img/people/img5-large.jpg b/static/assets/pages/img/people/img5-large.jpg new file mode 100644 index 0000000..afc04e0 Binary files /dev/null and b/static/assets/pages/img/people/img5-large.jpg differ diff --git a/static/assets/pages/img/people/img5-small.jpg b/static/assets/pages/img/people/img5-small.jpg new file mode 100644 index 0000000..afc04e0 Binary files /dev/null and b/static/assets/pages/img/people/img5-small.jpg differ diff --git a/static/assets/pages/img/people/img6-large.jpg b/static/assets/pages/img/people/img6-large.jpg new file mode 100644 index 0000000..d92b968 Binary files /dev/null and b/static/assets/pages/img/people/img6-large.jpg differ diff --git a/static/assets/pages/img/people/img6-small.jpg b/static/assets/pages/img/people/img6-small.jpg new file mode 100644 index 0000000..d92b968 Binary files /dev/null and b/static/assets/pages/img/people/img6-small.jpg differ diff --git a/static/assets/pages/img/people/img7-large.jpg b/static/assets/pages/img/people/img7-large.jpg new file mode 100644 index 0000000..df7965c Binary files /dev/null and b/static/assets/pages/img/people/img7-large.jpg differ diff --git a/static/assets/pages/img/people/img7-small.jpg b/static/assets/pages/img/people/img7-small.jpg new file mode 100644 index 0000000..df7965c Binary files /dev/null and b/static/assets/pages/img/people/img7-small.jpg differ diff --git a/static/assets/pages/img/people/img8-large.jpg b/static/assets/pages/img/people/img8-large.jpg new file mode 100644 index 0000000..c12ee30 Binary files /dev/null and b/static/assets/pages/img/people/img8-large.jpg differ diff --git a/static/assets/pages/img/people/img8-small.jpg b/static/assets/pages/img/people/img8-small.jpg new file mode 100644 index 0000000..c12ee30 Binary files /dev/null and b/static/assets/pages/img/people/img8-small.jpg differ diff --git a/static/assets/pages/img/photos/Thumbs.db b/static/assets/pages/img/photos/Thumbs.db new file mode 100644 index 0000000..a081202 Binary files /dev/null and b/static/assets/pages/img/photos/Thumbs.db differ diff --git a/static/assets/pages/img/photos/img1.jpg b/static/assets/pages/img/photos/img1.jpg new file mode 100644 index 0000000..37c709b Binary files /dev/null and b/static/assets/pages/img/photos/img1.jpg differ diff --git a/static/assets/pages/img/photos/img2.jpg b/static/assets/pages/img/photos/img2.jpg new file mode 100644 index 0000000..e714da6 Binary files /dev/null and b/static/assets/pages/img/photos/img2.jpg differ diff --git a/static/assets/pages/img/photos/img3.jpg b/static/assets/pages/img/photos/img3.jpg new file mode 100644 index 0000000..1b686e0 Binary files /dev/null and b/static/assets/pages/img/photos/img3.jpg differ diff --git a/static/assets/pages/img/photos/img4.jpg b/static/assets/pages/img/photos/img4.jpg new file mode 100644 index 0000000..a45d91b Binary files /dev/null and b/static/assets/pages/img/photos/img4.jpg differ diff --git a/static/assets/pages/img/photos/img5.jpg b/static/assets/pages/img/photos/img5.jpg new file mode 100644 index 0000000..57fd609 Binary files /dev/null and b/static/assets/pages/img/photos/img5.jpg differ diff --git a/static/assets/pages/img/photos/img6.jpg b/static/assets/pages/img/photos/img6.jpg new file mode 100644 index 0000000..4f24d92 Binary files /dev/null and b/static/assets/pages/img/photos/img6.jpg differ diff --git a/static/assets/pages/img/pics/Thumbs.db b/static/assets/pages/img/pics/Thumbs.db new file mode 100644 index 0000000..27181cd Binary files /dev/null and b/static/assets/pages/img/pics/Thumbs.db differ diff --git a/static/assets/pages/img/pics/img1-large.jpg b/static/assets/pages/img/pics/img1-large.jpg new file mode 100644 index 0000000..7392a0e Binary files /dev/null and b/static/assets/pages/img/pics/img1-large.jpg differ diff --git a/static/assets/pages/img/pics/img1-medium.jpg b/static/assets/pages/img/pics/img1-medium.jpg new file mode 100644 index 0000000..c7a1c65 Binary files /dev/null and b/static/assets/pages/img/pics/img1-medium.jpg differ diff --git a/static/assets/pages/img/pics/img2-large.jpg b/static/assets/pages/img/pics/img2-large.jpg new file mode 100644 index 0000000..c974380 Binary files /dev/null and b/static/assets/pages/img/pics/img2-large.jpg differ diff --git a/static/assets/pages/img/pics/img2-large_bk.jpg b/static/assets/pages/img/pics/img2-large_bk.jpg new file mode 100644 index 0000000..61485fc Binary files /dev/null and b/static/assets/pages/img/pics/img2-large_bk.jpg differ diff --git a/static/assets/pages/img/pics/img2-medium.jpg b/static/assets/pages/img/pics/img2-medium.jpg new file mode 100644 index 0000000..c974380 Binary files /dev/null and b/static/assets/pages/img/pics/img2-medium.jpg differ diff --git a/static/assets/pages/img/pics/img2-medium_bk.jpg b/static/assets/pages/img/pics/img2-medium_bk.jpg new file mode 100644 index 0000000..a4e5edb Binary files /dev/null and b/static/assets/pages/img/pics/img2-medium_bk.jpg differ diff --git a/static/assets/pages/img/posts/Thumbs.db b/static/assets/pages/img/posts/Thumbs.db new file mode 100644 index 0000000..998e28b Binary files /dev/null and b/static/assets/pages/img/posts/Thumbs.db differ diff --git a/static/assets/pages/img/posts/img1.jpg b/static/assets/pages/img/posts/img1.jpg new file mode 100644 index 0000000..c68a085 Binary files /dev/null and b/static/assets/pages/img/posts/img1.jpg differ diff --git a/static/assets/pages/img/posts/img2.jpg b/static/assets/pages/img/posts/img2.jpg new file mode 100644 index 0000000..b79135c Binary files /dev/null and b/static/assets/pages/img/posts/img2.jpg differ diff --git a/static/assets/pages/img/posts/img3.jpg b/static/assets/pages/img/posts/img3.jpg new file mode 100644 index 0000000..b1b67ce Binary files /dev/null and b/static/assets/pages/img/posts/img3.jpg differ diff --git a/static/assets/pages/img/product1.jpg b/static/assets/pages/img/product1.jpg new file mode 100644 index 0000000..fb34ed8 Binary files /dev/null and b/static/assets/pages/img/product1.jpg differ diff --git a/static/assets/pages/img/product1big.jpg b/static/assets/pages/img/product1big.jpg new file mode 100644 index 0000000..fb34ed8 Binary files /dev/null and b/static/assets/pages/img/product1big.jpg differ diff --git a/static/assets/pages/img/products/Thumbs.db b/static/assets/pages/img/products/Thumbs.db new file mode 100644 index 0000000..4c70d99 Binary files /dev/null and b/static/assets/pages/img/products/Thumbs.db differ diff --git a/static/assets/pages/img/products/k1.jpg b/static/assets/pages/img/products/k1.jpg new file mode 100644 index 0000000..fb34ed8 Binary files /dev/null and b/static/assets/pages/img/products/k1.jpg differ diff --git a/static/assets/pages/img/products/k2.jpg b/static/assets/pages/img/products/k2.jpg new file mode 100644 index 0000000..fe6ed97 Binary files /dev/null and b/static/assets/pages/img/products/k2.jpg differ diff --git a/static/assets/pages/img/products/k3.jpg b/static/assets/pages/img/products/k3.jpg new file mode 100644 index 0000000..4357668 Binary files /dev/null and b/static/assets/pages/img/products/k3.jpg differ diff --git a/static/assets/pages/img/products/k4.jpg b/static/assets/pages/img/products/k4.jpg new file mode 100644 index 0000000..b11767c Binary files /dev/null and b/static/assets/pages/img/products/k4.jpg differ diff --git a/static/assets/pages/img/products/model1.jpg b/static/assets/pages/img/products/model1.jpg new file mode 100644 index 0000000..de45715 Binary files /dev/null and b/static/assets/pages/img/products/model1.jpg differ diff --git a/static/assets/pages/img/products/model2.jpg b/static/assets/pages/img/products/model2.jpg new file mode 100644 index 0000000..9c2efe8 Binary files /dev/null and b/static/assets/pages/img/products/model2.jpg differ diff --git a/static/assets/pages/img/products/model3.jpg b/static/assets/pages/img/products/model3.jpg new file mode 100644 index 0000000..97deda6 Binary files /dev/null and b/static/assets/pages/img/products/model3.jpg differ diff --git a/static/assets/pages/img/products/model4.jpg b/static/assets/pages/img/products/model4.jpg new file mode 100644 index 0000000..dcb21bb Binary files /dev/null and b/static/assets/pages/img/products/model4.jpg differ diff --git a/static/assets/pages/img/products/model5.jpg b/static/assets/pages/img/products/model5.jpg new file mode 100644 index 0000000..2bbe83f Binary files /dev/null and b/static/assets/pages/img/products/model5.jpg differ diff --git a/static/assets/pages/img/products/model6.jpg b/static/assets/pages/img/products/model6.jpg new file mode 100644 index 0000000..d34350f Binary files /dev/null and b/static/assets/pages/img/products/model6.jpg differ diff --git a/static/assets/pages/img/products/model7.jpg b/static/assets/pages/img/products/model7.jpg new file mode 100644 index 0000000..8e787e4 Binary files /dev/null and b/static/assets/pages/img/products/model7.jpg differ diff --git a/static/assets/pages/img/products/p1.jpg b/static/assets/pages/img/products/p1.jpg new file mode 100644 index 0000000..ed59f28 Binary files /dev/null and b/static/assets/pages/img/products/p1.jpg differ diff --git a/static/assets/pages/img/products/p2.jpg b/static/assets/pages/img/products/p2.jpg new file mode 100644 index 0000000..41768f9 Binary files /dev/null and b/static/assets/pages/img/products/p2.jpg differ diff --git a/static/assets/pages/img/products/p3.jpg b/static/assets/pages/img/products/p3.jpg new file mode 100644 index 0000000..80c49db Binary files /dev/null and b/static/assets/pages/img/products/p3.jpg differ diff --git a/static/assets/pages/img/products/p4.jpg b/static/assets/pages/img/products/p4.jpg new file mode 100644 index 0000000..c93db35 Binary files /dev/null and b/static/assets/pages/img/products/p4.jpg differ diff --git a/static/assets/pages/img/products/p5.jpg b/static/assets/pages/img/products/p5.jpg new file mode 100644 index 0000000..31999ca Binary files /dev/null and b/static/assets/pages/img/products/p5.jpg differ diff --git a/static/assets/pages/img/products/p6.jpg b/static/assets/pages/img/products/p6.jpg new file mode 100644 index 0000000..d864a2b Binary files /dev/null and b/static/assets/pages/img/products/p6.jpg differ diff --git a/static/assets/pages/img/products/p7.jpg b/static/assets/pages/img/products/p7.jpg new file mode 100644 index 0000000..c1a94b2 Binary files /dev/null and b/static/assets/pages/img/products/p7.jpg differ diff --git a/static/assets/pages/img/sale.png b/static/assets/pages/img/sale.png new file mode 100644 index 0000000..0ad5016 Binary files /dev/null and b/static/assets/pages/img/sale.png differ diff --git a/static/assets/pages/img/shop-slider/slide1/Thumbs.db b/static/assets/pages/img/shop-slider/slide1/Thumbs.db new file mode 100644 index 0000000..e7c9703 Binary files /dev/null and b/static/assets/pages/img/shop-slider/slide1/Thumbs.db differ diff --git a/static/assets/pages/img/shop-slider/slide1/bg.jpg b/static/assets/pages/img/shop-slider/slide1/bg.jpg new file mode 100644 index 0000000..e932f4e Binary files /dev/null and b/static/assets/pages/img/shop-slider/slide1/bg.jpg differ diff --git a/static/assets/pages/img/shop-slider/slide2/Thumbs.db b/static/assets/pages/img/shop-slider/slide2/Thumbs.db new file mode 100644 index 0000000..5d9168f Binary files /dev/null and b/static/assets/pages/img/shop-slider/slide2/Thumbs.db differ diff --git a/static/assets/pages/img/shop-slider/slide2/bg.jpg b/static/assets/pages/img/shop-slider/slide2/bg.jpg new file mode 100644 index 0000000..a2969be Binary files /dev/null and b/static/assets/pages/img/shop-slider/slide2/bg.jpg differ diff --git a/static/assets/pages/img/shop-slider/slide2/price.png b/static/assets/pages/img/shop-slider/slide2/price.png new file mode 100644 index 0000000..2ce7b30 Binary files /dev/null and b/static/assets/pages/img/shop-slider/slide2/price.png differ diff --git a/static/assets/pages/img/shop-slider/slide3/Thumbs.db b/static/assets/pages/img/shop-slider/slide3/Thumbs.db new file mode 100644 index 0000000..90cfc3b Binary files /dev/null and b/static/assets/pages/img/shop-slider/slide3/Thumbs.db differ diff --git a/static/assets/pages/img/shop-slider/slide3/bg.jpg b/static/assets/pages/img/shop-slider/slide3/bg.jpg new file mode 100644 index 0000000..359bcdf Binary files /dev/null and b/static/assets/pages/img/shop-slider/slide3/bg.jpg differ diff --git a/static/assets/pages/img/shop-slider/slide4/Thumbs.db b/static/assets/pages/img/shop-slider/slide4/Thumbs.db new file mode 100644 index 0000000..85ead31 Binary files /dev/null and b/static/assets/pages/img/shop-slider/slide4/Thumbs.db differ diff --git a/static/assets/pages/img/shop-slider/slide4/bg.jpg b/static/assets/pages/img/shop-slider/slide4/bg.jpg new file mode 100644 index 0000000..7e970e8 Binary files /dev/null and b/static/assets/pages/img/shop-slider/slide4/bg.jpg differ diff --git a/static/assets/pages/img/shop-slider/slide4/buy.png b/static/assets/pages/img/shop-slider/slide4/buy.png new file mode 100644 index 0000000..8a64754 Binary files /dev/null and b/static/assets/pages/img/shop-slider/slide4/buy.png differ diff --git a/static/assets/pages/img/shop-slider/slide4/price.png b/static/assets/pages/img/shop-slider/slide4/price.png new file mode 100644 index 0000000..82e2a2c Binary files /dev/null and b/static/assets/pages/img/shop-slider/slide4/price.png differ diff --git a/static/assets/pages/img/shop-slider/slide4/title.png b/static/assets/pages/img/shop-slider/slide4/title.png new file mode 100644 index 0000000..f889fe1 Binary files /dev/null and b/static/assets/pages/img/shop-slider/slide4/title.png differ diff --git a/static/assets/pages/img/social/Thumbs.db b/static/assets/pages/img/social/Thumbs.db new file mode 100644 index 0000000..2f199db Binary files /dev/null and b/static/assets/pages/img/social/Thumbs.db differ diff --git a/static/assets/pages/img/social/aboutme.png b/static/assets/pages/img/social/aboutme.png new file mode 100644 index 0000000..5e9f553 Binary files /dev/null and b/static/assets/pages/img/social/aboutme.png differ diff --git a/static/assets/pages/img/social/amazon.png b/static/assets/pages/img/social/amazon.png new file mode 100644 index 0000000..359a469 Binary files /dev/null and b/static/assets/pages/img/social/amazon.png differ diff --git a/static/assets/pages/img/social/behance.png b/static/assets/pages/img/social/behance.png new file mode 100644 index 0000000..6923893 Binary files /dev/null and b/static/assets/pages/img/social/behance.png differ diff --git a/static/assets/pages/img/social/blogger.png b/static/assets/pages/img/social/blogger.png new file mode 100644 index 0000000..6579a6c Binary files /dev/null and b/static/assets/pages/img/social/blogger.png differ diff --git a/static/assets/pages/img/social/deviantart.png b/static/assets/pages/img/social/deviantart.png new file mode 100644 index 0000000..2762816 Binary files /dev/null and b/static/assets/pages/img/social/deviantart.png differ diff --git a/static/assets/pages/img/social/dribbble.png b/static/assets/pages/img/social/dribbble.png new file mode 100644 index 0000000..bca0bad Binary files /dev/null and b/static/assets/pages/img/social/dribbble.png differ diff --git a/static/assets/pages/img/social/dropbox.png b/static/assets/pages/img/social/dropbox.png new file mode 100644 index 0000000..31ed5ae Binary files /dev/null and b/static/assets/pages/img/social/dropbox.png differ diff --git a/static/assets/pages/img/social/evernote.png b/static/assets/pages/img/social/evernote.png new file mode 100644 index 0000000..5cac5ae Binary files /dev/null and b/static/assets/pages/img/social/evernote.png differ diff --git a/static/assets/pages/img/social/facebook.png b/static/assets/pages/img/social/facebook.png new file mode 100644 index 0000000..db34236 Binary files /dev/null and b/static/assets/pages/img/social/facebook.png differ diff --git a/static/assets/pages/img/social/flickr.png b/static/assets/pages/img/social/flickr.png new file mode 100644 index 0000000..71ff3fc Binary files /dev/null and b/static/assets/pages/img/social/flickr.png differ diff --git a/static/assets/pages/img/social/forrst.png b/static/assets/pages/img/social/forrst.png new file mode 100644 index 0000000..fe07f3c Binary files /dev/null and b/static/assets/pages/img/social/forrst.png differ diff --git a/static/assets/pages/img/social/foursquare.png b/static/assets/pages/img/social/foursquare.png new file mode 100644 index 0000000..8d41985 Binary files /dev/null and b/static/assets/pages/img/social/foursquare.png differ diff --git a/static/assets/pages/img/social/github.png b/static/assets/pages/img/social/github.png new file mode 100644 index 0000000..b06cb56 Binary files /dev/null and b/static/assets/pages/img/social/github.png differ diff --git a/static/assets/pages/img/social/googleplus.png b/static/assets/pages/img/social/googleplus.png new file mode 100644 index 0000000..bca8748 Binary files /dev/null and b/static/assets/pages/img/social/googleplus.png differ diff --git a/static/assets/pages/img/social/gravatar.png b/static/assets/pages/img/social/gravatar.png new file mode 100644 index 0000000..f53fb92 Binary files /dev/null and b/static/assets/pages/img/social/gravatar.png differ diff --git a/static/assets/pages/img/social/instagram.png b/static/assets/pages/img/social/instagram.png new file mode 100644 index 0000000..3b4ef3e Binary files /dev/null and b/static/assets/pages/img/social/instagram.png differ diff --git a/static/assets/pages/img/social/jolicloud.png b/static/assets/pages/img/social/jolicloud.png new file mode 100644 index 0000000..9cad846 Binary files /dev/null and b/static/assets/pages/img/social/jolicloud.png differ diff --git a/static/assets/pages/img/social/klout.png b/static/assets/pages/img/social/klout.png new file mode 100644 index 0000000..d30cd74 Binary files /dev/null and b/static/assets/pages/img/social/klout.png differ diff --git a/static/assets/pages/img/social/last-fm.png b/static/assets/pages/img/social/last-fm.png new file mode 100644 index 0000000..5fd94c5 Binary files /dev/null and b/static/assets/pages/img/social/last-fm.png differ diff --git a/static/assets/pages/img/social/linkedin.png b/static/assets/pages/img/social/linkedin.png new file mode 100644 index 0000000..20779f9 Binary files /dev/null and b/static/assets/pages/img/social/linkedin.png differ diff --git a/static/assets/pages/img/social/myspace.png b/static/assets/pages/img/social/myspace.png new file mode 100644 index 0000000..0607cba Binary files /dev/null and b/static/assets/pages/img/social/myspace.png differ diff --git a/static/assets/pages/img/social/picasa.png b/static/assets/pages/img/social/picasa.png new file mode 100644 index 0000000..a83a61e Binary files /dev/null and b/static/assets/pages/img/social/picasa.png differ diff --git a/static/assets/pages/img/social/pintrest.png b/static/assets/pages/img/social/pintrest.png new file mode 100644 index 0000000..0f39776 Binary files /dev/null and b/static/assets/pages/img/social/pintrest.png differ diff --git a/static/assets/pages/img/social/quora.png b/static/assets/pages/img/social/quora.png new file mode 100644 index 0000000..665ca14 Binary files /dev/null and b/static/assets/pages/img/social/quora.png differ diff --git a/static/assets/pages/img/social/reddit.png b/static/assets/pages/img/social/reddit.png new file mode 100644 index 0000000..85e9f62 Binary files /dev/null and b/static/assets/pages/img/social/reddit.png differ diff --git a/static/assets/pages/img/social/rss.png b/static/assets/pages/img/social/rss.png new file mode 100644 index 0000000..34001bd Binary files /dev/null and b/static/assets/pages/img/social/rss.png differ diff --git a/static/assets/pages/img/social/skype.png b/static/assets/pages/img/social/skype.png new file mode 100644 index 0000000..1c1a2f1 Binary files /dev/null and b/static/assets/pages/img/social/skype.png differ diff --git a/static/assets/pages/img/social/spotify.png b/static/assets/pages/img/social/spotify.png new file mode 100644 index 0000000..e4a74f2 Binary files /dev/null and b/static/assets/pages/img/social/spotify.png differ diff --git a/static/assets/pages/img/social/stumbleupon.png b/static/assets/pages/img/social/stumbleupon.png new file mode 100644 index 0000000..d651f0f Binary files /dev/null and b/static/assets/pages/img/social/stumbleupon.png differ diff --git a/static/assets/pages/img/social/tumblr.png b/static/assets/pages/img/social/tumblr.png new file mode 100644 index 0000000..6e31808 Binary files /dev/null and b/static/assets/pages/img/social/tumblr.png differ diff --git a/static/assets/pages/img/social/twitter.png b/static/assets/pages/img/social/twitter.png new file mode 100644 index 0000000..4399f54 Binary files /dev/null and b/static/assets/pages/img/social/twitter.png differ diff --git a/static/assets/pages/img/social/vimeo.png b/static/assets/pages/img/social/vimeo.png new file mode 100644 index 0000000..7ec4af1 Binary files /dev/null and b/static/assets/pages/img/social/vimeo.png differ diff --git a/static/assets/pages/img/social/vk.png b/static/assets/pages/img/social/vk.png new file mode 100644 index 0000000..067e807 Binary files /dev/null and b/static/assets/pages/img/social/vk.png differ diff --git a/static/assets/pages/img/social/wordpress.png b/static/assets/pages/img/social/wordpress.png new file mode 100644 index 0000000..63bcfaf Binary files /dev/null and b/static/assets/pages/img/social/wordpress.png differ diff --git a/static/assets/pages/img/social/xing.png b/static/assets/pages/img/social/xing.png new file mode 100644 index 0000000..ffcd701 Binary files /dev/null and b/static/assets/pages/img/social/xing.png differ diff --git a/static/assets/pages/img/social/yahoo.png b/static/assets/pages/img/social/yahoo.png new file mode 100644 index 0000000..db4f44d Binary files /dev/null and b/static/assets/pages/img/social/yahoo.png differ diff --git a/static/assets/pages/img/social/youtube.png b/static/assets/pages/img/social/youtube.png new file mode 100644 index 0000000..d2e54e6 Binary files /dev/null and b/static/assets/pages/img/social/youtube.png differ diff --git a/static/assets/pages/img/step3-angle-right.png b/static/assets/pages/img/step3-angle-right.png new file mode 100644 index 0000000..65f4965 Binary files /dev/null and b/static/assets/pages/img/step3-angle-right.png differ diff --git a/static/assets/pages/img/title-bg/1.jpg b/static/assets/pages/img/title-bg/1.jpg new file mode 100644 index 0000000..4b5a4e1 Binary files /dev/null and b/static/assets/pages/img/title-bg/1.jpg differ diff --git a/static/assets/pages/img/title-bg/Thumbs.db b/static/assets/pages/img/title-bg/Thumbs.db new file mode 100644 index 0000000..23ef2a2 Binary files /dev/null and b/static/assets/pages/img/title-bg/Thumbs.db differ diff --git a/static/assets/pages/img/title-bg/man.jpg b/static/assets/pages/img/title-bg/man.jpg new file mode 100644 index 0000000..4b5a4e1 Binary files /dev/null and b/static/assets/pages/img/title-bg/man.jpg differ diff --git a/static/assets/pages/img/title-bg/woman.jpg b/static/assets/pages/img/title-bg/woman.jpg new file mode 100644 index 0000000..4b5a4e1 Binary files /dev/null and b/static/assets/pages/img/title-bg/woman.jpg differ diff --git a/static/assets/pages/img/works/Thumbs.db b/static/assets/pages/img/works/Thumbs.db new file mode 100644 index 0000000..4454647 Binary files /dev/null and b/static/assets/pages/img/works/Thumbs.db differ diff --git a/static/assets/pages/img/works/img1.jpg b/static/assets/pages/img/works/img1.jpg new file mode 100644 index 0000000..0c2405f Binary files /dev/null and b/static/assets/pages/img/works/img1.jpg differ diff --git a/static/assets/pages/img/works/img2.jpg b/static/assets/pages/img/works/img2.jpg new file mode 100644 index 0000000..236f5da Binary files /dev/null and b/static/assets/pages/img/works/img2.jpg differ diff --git a/static/assets/pages/img/works/img3.jpg b/static/assets/pages/img/works/img3.jpg new file mode 100644 index 0000000..3c09b60 Binary files /dev/null and b/static/assets/pages/img/works/img3.jpg differ diff --git a/static/assets/pages/img/works/img4.jpg b/static/assets/pages/img/works/img4.jpg new file mode 100644 index 0000000..6eed159 Binary files /dev/null and b/static/assets/pages/img/works/img4.jpg differ diff --git a/static/assets/pages/img/works/img5.jpg b/static/assets/pages/img/works/img5.jpg new file mode 100644 index 0000000..4b38c02 Binary files /dev/null and b/static/assets/pages/img/works/img5.jpg differ diff --git a/static/assets/pages/img/works/img6.jpg b/static/assets/pages/img/works/img6.jpg new file mode 100644 index 0000000..b3c6505 Binary files /dev/null and b/static/assets/pages/img/works/img6.jpg differ diff --git a/static/assets/pages/scripts/bs-carousel.js b/static/assets/pages/scripts/bs-carousel.js new file mode 100644 index 0000000..b1cdca0 --- /dev/null +++ b/static/assets/pages/scripts/bs-carousel.js @@ -0,0 +1,49 @@ +var BsCarousel = function () { + // Carousel interval + // $('.carousel').carousel({ + // interval: 1000 + // }); + + // smart height detection for all major screens + // if (Layout.getViewPort().width > 1600) { + // height = $(window).height() - $('.subscribe').outerHeight(); // full height for high resolution + // } else if (Layout.getViewPort().height > height) { + // height = Layout.getViewPort().height; + // } + + (function( $ ) { + //Function to animate slider captions + function doAnimations( elems ) { + //Cache the animationend event in a variable + var animEndEv = 'webkitAnimationEnd animationend'; + + elems.each(function () { + var $this = $(this), + $animationType = $this.data('animation'); + $this.addClass($animationType).one(animEndEv, function () { + $this.removeClass($animationType); + }); + }); + } + + //Variables on page load + var $myCarousel = $('#carousel-example-generic'), + $firstAnimatingElems = $myCarousel.find('.item:first').find("[data-animation ^= 'animated']"); + + //Initialize carousel + $myCarousel.carousel(); + + //Animate captions in first slide on page load + doAnimations($firstAnimatingElems); + + //Pause carousel + $myCarousel.carousel('pause'); + + //Other slides to be animated on carousel slide event + $myCarousel.on('slide.bs.carousel', function (e) { + var $animatingElems = $(e.relatedTarget).find("[data-animation ^= 'animated']"); + doAnimations($animatingElems); + }); + + })(jQuery); +}(); \ No newline at end of file diff --git a/static/assets/pages/scripts/checkout.js b/static/assets/pages/scripts/checkout.js new file mode 100644 index 0000000..7f13e30 --- /dev/null +++ b/static/assets/pages/scripts/checkout.js @@ -0,0 +1,22 @@ +var Checkout = function () { + + return { + init: function () { + + $('#checkout').on('change', '#checkout-content input[name="account"]', function() { + + var title = ''; + + if ($(this).attr('value') == 'register') { + title = 'Step 2: Account & Billing Details'; + } else { + title = 'Step 2: Billing Details'; + } + + $('#payment-address .accordion-toggle').html(title); + }); + + } + }; + +}(); \ No newline at end of file diff --git a/static/assets/pages/scripts/contact-us.js b/static/assets/pages/scripts/contact-us.js new file mode 100644 index 0000000..9a104b5 --- /dev/null +++ b/static/assets/pages/scripts/contact-us.js @@ -0,0 +1,27 @@ +var ContactUs = function () { + + return { + //main function to initiate the module + init: function () { + var map; + $(document).ready(function(){ + map = new GMaps({ + div: '#map', + lat: -13.004333, + lng: -38.494333, + }); + var marker = map.addMarker({ + lat: -13.004333, + lng: -38.494333, + title: 'Loop, Inc.', + infoWindow: { + content: "Loop, Inc. 795 Park Ave, Suite 120
San Francisco, CA 94107" + } + }); + + marker.infoWindow.open(map, marker); + }); + } + }; + +}(); \ No newline at end of file diff --git a/static/assets/pages/scripts/portfolio.js b/static/assets/pages/scripts/portfolio.js new file mode 100644 index 0000000..09b3acb --- /dev/null +++ b/static/assets/pages/scripts/portfolio.js @@ -0,0 +1,12 @@ +var Portfolio = function () { + + + return { + //main function to initiate the module + init: function () { + $('.mix-grid').mixitup(); + } + + }; + +}(); \ No newline at end of file diff --git a/static/assets/plugins/bootstrap-touchspin/LICENSE.md b/static/assets/plugins/bootstrap-touchspin/LICENSE.md new file mode 100644 index 0000000..b9f1b00 --- /dev/null +++ b/static/assets/plugins/bootstrap-touchspin/LICENSE.md @@ -0,0 +1,21 @@ +Bootstrap TouchSpin +v1.0.0 + +A mobile and touch friendly input spinner component for Bootstrap 3. + + https://github.com/istvan-meszaros/bootstrap-touchspin + http://www.virtuosoft.eu/code/bootstrap-touchspin/ + +Copyright 2013 István Ujj-Mészáros + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. \ No newline at end of file diff --git a/static/assets/plugins/bootstrap-touchspin/README.md b/static/assets/plugins/bootstrap-touchspin/README.md new file mode 100644 index 0000000..f5517a1 --- /dev/null +++ b/static/assets/plugins/bootstrap-touchspin/README.md @@ -0,0 +1,13 @@ +# Bootstrap TouchSpin + +##### Bootstrap TouchSpin is a mobile and touch friendly input spinner component for Bootstrap 3. + +- [Website](http://www.virtuosoft.eu/code/bootstrap-touchspin/) + +Please report issues and feel free to make feature suggestions as well. + +## License + +Apache License, Version 2.0 + +[![githalytics.com alpha](https://cruel-carlota.pagodabox.com/73ffb6b38e5099909d7b13c577d7e5c8 "githalytics.com")](http://githalytics.com/istvan-ujjmeszaros/bootstrap-touchspin) diff --git a/static/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.css b/static/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.css new file mode 100644 index 0000000..ed316c4 --- /dev/null +++ b/static/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.css @@ -0,0 +1,45 @@ +/* + * Bootstrap TouchSpin - v3.0.1 + * A mobile and touch friendly input spinner component for Bootstrap 3. + * http://www.virtuosoft.eu/code/bootstrap-touchspin/ + * + * Made by István Ujj-Mészáros + * Under Apache License v2.0 License + */ + +.bootstrap-touchspin .input-group-btn-vertical { + position: relative; + white-space: nowrap; + width: 1%; + vertical-align: middle; + display: table-cell; +} + +.bootstrap-touchspin .input-group-btn-vertical > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; + padding: 8px 10px; + margin-left: -1px; + position: relative; +} + +.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-up { + border-radius: 0; + border-top-right-radius: 4px; +} + +.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-down { + margin-top: -2px; + border-radius: 0; + border-bottom-right-radius: 4px; +} + +.bootstrap-touchspin .input-group-btn-vertical i { + position: absolute; + top: 3px; + left: 5px; + font-size: 9px; + font-weight: normal; +} diff --git a/static/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.js b/static/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.js new file mode 100644 index 0000000..5f737a4 --- /dev/null +++ b/static/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.js @@ -0,0 +1,686 @@ +/* + * Bootstrap TouchSpin - v3.0.1 + * A mobile and touch friendly input spinner component for Bootstrap 3. + * http://www.virtuosoft.eu/code/bootstrap-touchspin/ + * + * Made by István Ujj-Mészáros + * Under Apache License v2.0 License + */ +(function($) { + 'use strict'; + + var _currentSpinnerId = 0; + + function _scopedEventName(name, id) { + return name + '.touchspin_' + id; + } + + function _scopeEventNames(names, id) { + return $.map(names, function(name) { + return _scopedEventName(name, id); + }); + } + + $.fn.TouchSpin = function(options) { + + if (options === 'destroy') { + this.each(function() { + var originalinput = $(this), + originalinput_data = originalinput.data(); + $(document).off(_scopeEventNames([ + 'mouseup', + 'touchend', + 'touchcancel', + 'mousemove', + 'touchmove', + 'scroll', + 'scrollstart'], originalinput_data.spinnerid).join(' ')); + }); + return; + } + + var defaults = { + min: 0, + max: 100, + initval: '', + step: 1, + decimals: 0, + stepinterval: 100, + forcestepdivisibility: 'round', // none | floor | round | ceil + stepintervaldelay: 500, + verticalbuttons: false, + verticalupclass: 'glyphicon glyphicon-chevron-up', + verticaldownclass: 'glyphicon glyphicon-chevron-down', + prefix: '', + postfix: '', + prefix_extraclass: '', + postfix_extraclass: '', + booster: true, + boostat: 10, + maxboostedstep: false, + mousewheel: true, + buttondown_class: 'btn btn-default', + buttonup_class: 'btn btn-default', + buttondown_txt: '-', + buttonup_txt: '+' + }; + + var attributeMap = { + min: 'min', + max: 'max', + initval: 'init-val', + step: 'step', + decimals: 'decimals', + stepinterval: 'step-interval', + verticalbuttons: 'vertical-buttons', + verticalupclass: 'vertical-up-class', + verticaldownclass: 'vertical-down-class', + forcestepdivisibility: 'force-step-divisibility', + stepintervaldelay: 'step-interval-delay', + prefix: 'prefix', + postfix: 'postfix', + prefix_extraclass: 'prefix-extra-class', + postfix_extraclass: 'postfix-extra-class', + booster: 'booster', + boostat: 'boostat', + maxboostedstep: 'max-boosted-step', + mousewheel: 'mouse-wheel', + buttondown_class: 'button-down-class', + buttonup_class: 'button-up-class', + buttondown_txt: 'button-down-txt', + buttonup_txt: 'button-up-txt' + }; + + return this.each(function() { + + var settings, + originalinput = $(this), + originalinput_data = originalinput.data(), + container, + elements, + value, + downSpinTimer, + upSpinTimer, + downDelayTimeout, + upDelayTimeout, + spincount = 0, + spinning = false; + + init(); + + + function init() { + if (originalinput.data('alreadyinitialized')) { + return; + } + + originalinput.data('alreadyinitialized', true); + _currentSpinnerId += 1; + originalinput.data('spinnerid', _currentSpinnerId); + + + if (!originalinput.is('input')) { + console.log('Must be an input.'); + return; + } + + _initSettings(); + _setInitval(); + _checkValue(); + _buildHtml(); + _initElements(); + _hideEmptyPrefixPostfix(); + _bindEvents(); + _bindEventsInterface(); + elements.input.css('display', 'block'); + } + + function _setInitval() { + if (settings.initval !== '' && originalinput.val() === '') { + originalinput.val(settings.initval); + } + } + + function changeSettings(newsettings) { + _updateSettings(newsettings); + _checkValue(); + + var value = elements.input.val(); + + if (value !== '') { + value = Number(elements.input.val()); + elements.input.val(value.toFixed(settings.decimals)); + } + } + + function _initSettings() { + settings = $.extend({}, defaults, originalinput_data, _parseAttributes(), options); + } + + function _parseAttributes() { + var data = {}; + $.each(attributeMap, function(key, value) { + var attrName = 'bts-' + value + ''; + if (originalinput.is('[data-' + attrName + ']')) { + data[key] = originalinput.data(attrName); + } + }); + return data; + } + + function _updateSettings(newsettings) { + settings = $.extend({}, settings, newsettings); + } + + function _buildHtml() { + var initval = originalinput.val(), + parentelement = originalinput.parent(); + + if (initval !== '') { + initval = Number(initval).toFixed(settings.decimals); + } + + originalinput.data('initvalue', initval).val(initval); + originalinput.addClass('form-control'); + + if (parentelement.hasClass('input-group')) { + _advanceInputGroup(parentelement); + } + else { + _buildInputGroup(); + } + } + + function _advanceInputGroup(parentelement) { + parentelement.addClass('bootstrap-touchspin'); + + var prev = originalinput.prev(), + next = originalinput.next(); + + var downhtml, + uphtml, + prefixhtml = '' + settings.prefix + '', + postfixhtml = '' + settings.postfix + ''; + + if (prev.hasClass('input-group-btn')) { + downhtml = ''; + prev.append(downhtml); + } + else { + downhtml = ''; + $(downhtml).insertBefore(originalinput); + } + + if (next.hasClass('input-group-btn')) { + uphtml = ''; + next.prepend(uphtml); + } + else { + uphtml = ''; + $(uphtml).insertAfter(originalinput); + } + + $(prefixhtml).insertBefore(originalinput); + $(postfixhtml).insertAfter(originalinput); + + container = parentelement; + } + + function _buildInputGroup() { + var html; + + if (settings.verticalbuttons) { + html = '
' + settings.prefix + '' + settings.postfix + '
'; + } + else { + html = '
' + settings.prefix + '' + settings.postfix + '
'; + } + + container = $(html).insertBefore(originalinput); + + $('.bootstrap-touchspin-prefix', container).after(originalinput); + + if (originalinput.hasClass('input-sm')) { + container.addClass('input-group-sm'); + } + else if (originalinput.hasClass('input-lg')) { + container.addClass('input-group-lg'); + } + } + + function _initElements() { + elements = { + down: $('.bootstrap-touchspin-down', container), + up: $('.bootstrap-touchspin-up', container), + input: $('input', container), + prefix: $('.bootstrap-touchspin-prefix', container).addClass(settings.prefix_extraclass), + postfix: $('.bootstrap-touchspin-postfix', container).addClass(settings.postfix_extraclass) + }; + } + + function _hideEmptyPrefixPostfix() { + if (settings.prefix === '') { + elements.prefix.hide(); + } + + if (settings.postfix === '') { + elements.postfix.hide(); + } + } + + function _bindEvents() { + originalinput.on('keydown', function(ev) { + var code = ev.keyCode || ev.which; + + if (code === 38) { + if (spinning !== 'up') { + upOnce(); + startUpSpin(); + } + ev.preventDefault(); + } + else if (code === 40) { + if (spinning !== 'down') { + downOnce(); + startDownSpin(); + } + ev.preventDefault(); + } + }); + + originalinput.on('keyup', function(ev) { + var code = ev.keyCode || ev.which; + + if (code === 38) { + stopSpin(); + } + else if (code === 40) { + stopSpin(); + } + }); + + originalinput.on('blur', function() { + _checkValue(); + }); + + elements.down.on('keydown', function(ev) { + var code = ev.keyCode || ev.which; + + if (code === 32 || code === 13) { + if (spinning !== 'down') { + downOnce(); + startDownSpin(); + } + ev.preventDefault(); + } + }); + + elements.down.on('keyup', function(ev) { + var code = ev.keyCode || ev.which; + + if (code === 32 || code === 13) { + stopSpin(); + } + }); + + elements.up.on('keydown', function(ev) { + var code = ev.keyCode || ev.which; + + if (code === 32 || code === 13) { + if (spinning !== 'up') { + upOnce(); + startUpSpin(); + } + ev.preventDefault(); + } + }); + + elements.up.on('keyup', function(ev) { + var code = ev.keyCode || ev.which; + + if (code === 32 || code === 13) { + stopSpin(); + } + }); + + elements.down.on('mousedown.touchspin', function(ev) { + elements.down.off('touchstart.touchspin'); // android 4 workaround + + if (originalinput.is(':disabled')) { + return; + } + + downOnce(); + startDownSpin(); + + ev.preventDefault(); + ev.stopPropagation(); + }); + + elements.down.on('touchstart.touchspin', function(ev) { + elements.down.off('mousedown.touchspin'); // android 4 workaround + + if (originalinput.is(':disabled')) { + return; + } + + downOnce(); + startDownSpin(); + + ev.preventDefault(); + ev.stopPropagation(); + }); + + elements.up.on('mousedown.touchspin', function(ev) { + elements.up.off('touchstart.touchspin'); // android 4 workaround + + if (originalinput.is(':disabled')) { + return; + } + + upOnce(); + startUpSpin(); + + ev.preventDefault(); + ev.stopPropagation(); + }); + + elements.up.on('touchstart.touchspin', function(ev) { + elements.up.off('mousedown.touchspin'); // android 4 workaround + + if (originalinput.is(':disabled')) { + return; + } + + upOnce(); + startUpSpin(); + + ev.preventDefault(); + ev.stopPropagation(); + }); + + elements.up.on('mouseout touchleave touchend touchcancel', function(ev) { + if (!spinning) { + return; + } + + ev.stopPropagation(); + stopSpin(); + }); + + elements.down.on('mouseout touchleave touchend touchcancel', function(ev) { + if (!spinning) { + return; + } + + ev.stopPropagation(); + stopSpin(); + }); + + elements.down.on('mousemove touchmove', function(ev) { + if (!spinning) { + return; + } + + ev.stopPropagation(); + ev.preventDefault(); + }); + + elements.up.on('mousemove touchmove', function(ev) { + if (!spinning) { + return; + } + + ev.stopPropagation(); + ev.preventDefault(); + }); + + $(document).on(_scopeEventNames(['mouseup', 'touchend', 'touchcancel'], _currentSpinnerId).join(' '), function(ev) { + if (!spinning) { + return; + } + + ev.preventDefault(); + stopSpin(); + }); + + $(document).on(_scopeEventNames(['mousemove', 'touchmove', 'scroll', 'scrollstart'], _currentSpinnerId).join(' '), function(ev) { + if (!spinning) { + return; + } + + ev.preventDefault(); + stopSpin(); + }); + + originalinput.on('mousewheel DOMMouseScroll', function(ev) { + if (!settings.mousewheel || !originalinput.is(':focus')) { + return; + } + + var delta = ev.originalEvent.wheelDelta || -ev.originalEvent.deltaY || -ev.originalEvent.detail; + + ev.stopPropagation(); + ev.preventDefault(); + + if (delta < 0) { + downOnce(); + } + else { + upOnce(); + } + }); + } + + function _bindEventsInterface() { + originalinput.on('touchspin.uponce', function() { + stopSpin(); + upOnce(); + }); + + originalinput.on('touchspin.downonce', function() { + stopSpin(); + downOnce(); + }); + + originalinput.on('touchspin.startupspin', function() { + startUpSpin(); + }); + + originalinput.on('touchspin.startdownspin', function() { + startDownSpin(); + }); + + originalinput.on('touchspin.stopspin', function() { + stopSpin(); + }); + + originalinput.on('touchspin.updatesettings', function(e, newsettings) { + changeSettings(newsettings); + }); + } + + function _forcestepdivisibility(value) { + switch (settings.forcestepdivisibility) { + case 'round': + return (Math.round(value / settings.step) * settings.step).toFixed(settings.decimals); + case 'floor': + return (Math.floor(value / settings.step) * settings.step).toFixed(settings.decimals); + case 'ceil': + return (Math.ceil(value / settings.step) * settings.step).toFixed(settings.decimals); + default: + return value; + } + } + + function _checkValue() { + var val, parsedval, returnval; + + val = originalinput.val(); + + if (val === '') { + return; + } + + if (settings.decimals > 0 && val === '.') { + return; + } + + parsedval = parseFloat(val); + + if (isNaN(parsedval)) { + parsedval = 0; + } + + returnval = parsedval; + + if (parsedval.toString() !== val) { + returnval = parsedval; + } + + if (parsedval < settings.min) { + returnval = settings.min; + } + + if (parsedval > settings.max) { + returnval = settings.max; + } + + returnval = _forcestepdivisibility(returnval); + + if (Number(val).toString() !== returnval.toString()) { + originalinput.val(returnval); + originalinput.trigger('change'); + } + } + + function _getBoostedStep() { + if (!settings.booster) { + return settings.step; + } + else { + var boosted = Math.pow(2, Math.floor(spincount / settings.boostat)) * settings.step; + + if (settings.maxboostedstep) { + if (boosted > settings.maxboostedstep) { + boosted = settings.maxboostedstep; + value = Math.round((value / boosted)) * boosted; + } + } + + return Math.max(settings.step, boosted); + } + } + + function upOnce() { + _checkValue(); + + value = parseFloat(elements.input.val()); + if (isNaN(value)) { + value = 0; + } + + var initvalue = value, + boostedstep = _getBoostedStep(); + + value = value + boostedstep; + + if (value > settings.max) { + value = settings.max; + originalinput.trigger('touchspin.on.max'); + stopSpin(); + } + + elements.input.val(Number(value).toFixed(settings.decimals)); + + if (initvalue !== value) { + originalinput.trigger('change'); + } + } + + function downOnce() { + _checkValue(); + + value = parseFloat(elements.input.val()); + if (isNaN(value)) { + value = 0; + } + + var initvalue = value, + boostedstep = _getBoostedStep(); + + value = value - boostedstep; + + if (value < settings.min) { + value = settings.min; + originalinput.trigger('touchspin.on.min'); + stopSpin(); + } + + elements.input.val(value.toFixed(settings.decimals)); + + if (initvalue !== value) { + originalinput.trigger('change'); + } + } + + function startDownSpin() { + stopSpin(); + + spincount = 0; + spinning = 'down'; + + originalinput.trigger('touchspin.on.startspin'); + originalinput.trigger('touchspin.on.startdownspin'); + + downDelayTimeout = setTimeout(function() { + downSpinTimer = setInterval(function() { + spincount++; + downOnce(); + }, settings.stepinterval); + }, settings.stepintervaldelay); + } + + function startUpSpin() { + stopSpin(); + + spincount = 0; + spinning = 'up'; + + originalinput.trigger('touchspin.on.startspin'); + originalinput.trigger('touchspin.on.startupspin'); + + upDelayTimeout = setTimeout(function() { + upSpinTimer = setInterval(function() { + spincount++; + upOnce(); + }, settings.stepinterval); + }, settings.stepintervaldelay); + } + + function stopSpin() { + clearTimeout(downDelayTimeout); + clearTimeout(upDelayTimeout); + clearInterval(downSpinTimer); + clearInterval(upSpinTimer); + + switch (spinning) { + case 'up': + originalinput.trigger('touchspin.on.stopupspin'); + originalinput.trigger('touchspin.on.stopspin'); + break; + case 'down': + originalinput.trigger('touchspin.on.stopdownspin'); + originalinput.trigger('touchspin.on.stopspin'); + break; + } + + spincount = 0; + spinning = false; + } + + }); + + }; + +})(jQuery); diff --git a/static/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.min.css b/static/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.min.css new file mode 100644 index 0000000..a376fb6 --- /dev/null +++ b/static/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.min.css @@ -0,0 +1,10 @@ +/* + * Bootstrap TouchSpin - v3.0.1 + * A mobile and touch friendly input spinner component for Bootstrap 3. + * http://www.virtuosoft.eu/code/bootstrap-touchspin/ + * + * Made by István Ujj-Mészáros + * Under Apache License v2.0 License + */ + +.bootstrap-touchspin .input-group-btn-vertical{position:relative;white-space:nowrap;width:1%;vertical-align:middle;display:table-cell}.bootstrap-touchspin .input-group-btn-vertical>.btn{display:block;float:none;width:100%;max-width:100%;padding:8px 10px;margin-left:-1px;position:relative}.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-up{border-radius:0;border-top-right-radius:4px}.bootstrap-touchspin .input-group-btn-vertical .bootstrap-touchspin-down{margin-top:-2px;border-radius:0;border-bottom-right-radius:4px}.bootstrap-touchspin .input-group-btn-vertical i{position:absolute;top:3px;left:5px;font-size:9px;font-weight:400} \ No newline at end of file diff --git a/static/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.min.js b/static/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.min.js new file mode 100644 index 0000000..9e67a88 --- /dev/null +++ b/static/assets/plugins/bootstrap-touchspin/bootstrap.touchspin.min.js @@ -0,0 +1,9 @@ +/* + * Bootstrap TouchSpin - v3.0.1 + * A mobile and touch friendly input spinner component for Bootstrap 3. + * http://www.virtuosoft.eu/code/bootstrap-touchspin/ + * + * Made by István Ujj-Mészáros + * Under Apache License v2.0 License + */ +!function(a){"use strict";function b(a,b){return a+".touchspin_"+b}function c(c,d){return a.map(c,function(a){return b(a,d)})}var d=0;a.fn.TouchSpin=function(b){if("destroy"===b)return void this.each(function(){var b=a(this),d=b.data();a(document).off(c(["mouseup","touchend","touchcancel","mousemove","touchmove","scroll","scrollstart"],d.spinnerid).join(" "))});var e={min:0,max:100,initval:"",step:1,decimals:0,stepinterval:100,forcestepdivisibility:"round",stepintervaldelay:500,verticalbuttons:!1,verticalupclass:"glyphicon glyphicon-chevron-up",verticaldownclass:"glyphicon glyphicon-chevron-down",prefix:"",postfix:"",prefix_extraclass:"",postfix_extraclass:"",booster:!0,boostat:10,maxboostedstep:!1,mousewheel:!0,buttondown_class:"btn btn-default",buttonup_class:"btn btn-default",buttondown_txt:"-",buttonup_txt:"+"},f={min:"min",max:"max",initval:"init-val",step:"step",decimals:"decimals",stepinterval:"step-interval",verticalbuttons:"vertical-buttons",verticalupclass:"vertical-up-class",verticaldownclass:"vertical-down-class",forcestepdivisibility:"force-step-divisibility",stepintervaldelay:"step-interval-delay",prefix:"prefix",postfix:"postfix",prefix_extraclass:"prefix-extra-class",postfix_extraclass:"postfix-extra-class",booster:"booster",boostat:"boostat",maxboostedstep:"max-boosted-step",mousewheel:"mouse-wheel",buttondown_class:"button-down-class",buttonup_class:"button-up-class",buttondown_txt:"button-down-txt",buttonup_txt:"button-up-txt"};return this.each(function(){function g(){if(!J.data("alreadyinitialized")){if(J.data("alreadyinitialized",!0),d+=1,J.data("spinnerid",d),!J.is("input"))return void console.log("Must be an input.");j(),h(),u(),m(),p(),q(),r(),s(),D.input.css("display","block")}}function h(){""!==B.initval&&""===J.val()&&J.val(B.initval)}function i(a){l(a),u();var b=D.input.val();""!==b&&(b=Number(D.input.val()),D.input.val(b.toFixed(B.decimals)))}function j(){B=a.extend({},e,K,k(),b)}function k(){var b={};return a.each(f,function(a,c){var d="bts-"+c;J.is("[data-"+d+"]")&&(b[a]=J.data(d))}),b}function l(b){B=a.extend({},B,b)}function m(){var a=J.val(),b=J.parent();""!==a&&(a=Number(a).toFixed(B.decimals)),J.data("initvalue",a).val(a),J.addClass("form-control"),b.hasClass("input-group")?n(b):o()}function n(b){b.addClass("bootstrap-touchspin");var c,d,e=J.prev(),f=J.next(),g=''+B.prefix+"",h=''+B.postfix+"";e.hasClass("input-group-btn")?(c='",e.append(c)):(c='",a(c).insertBefore(J)),f.hasClass("input-group-btn")?(d='",f.prepend(d)):(d='",a(d).insertAfter(J)),a(g).insertBefore(J),a(h).insertAfter(J),C=b}function o(){var b;b=B.verticalbuttons?'
'+B.prefix+''+B.postfix+'
':'
'+B.prefix+''+B.postfix+'
",C=a(b).insertBefore(J),a(".bootstrap-touchspin-prefix",C).after(J),J.hasClass("input-sm")?C.addClass("input-group-sm"):J.hasClass("input-lg")&&C.addClass("input-group-lg")}function p(){D={down:a(".bootstrap-touchspin-down",C),up:a(".bootstrap-touchspin-up",C),input:a("input",C),prefix:a(".bootstrap-touchspin-prefix",C).addClass(B.prefix_extraclass),postfix:a(".bootstrap-touchspin-postfix",C).addClass(B.postfix_extraclass)}}function q(){""===B.prefix&&D.prefix.hide(),""===B.postfix&&D.postfix.hide()}function r(){J.on("keydown",function(a){var b=a.keyCode||a.which;38===b?("up"!==M&&(w(),z()),a.preventDefault()):40===b&&("down"!==M&&(x(),y()),a.preventDefault())}),J.on("keyup",function(a){var b=a.keyCode||a.which;38===b?A():40===b&&A()}),J.on("blur",function(){u()}),D.down.on("keydown",function(a){var b=a.keyCode||a.which;(32===b||13===b)&&("down"!==M&&(x(),y()),a.preventDefault())}),D.down.on("keyup",function(a){var b=a.keyCode||a.which;(32===b||13===b)&&A()}),D.up.on("keydown",function(a){var b=a.keyCode||a.which;(32===b||13===b)&&("up"!==M&&(w(),z()),a.preventDefault())}),D.up.on("keyup",function(a){var b=a.keyCode||a.which;(32===b||13===b)&&A()}),D.down.on("mousedown.touchspin",function(a){D.down.off("touchstart.touchspin"),J.is(":disabled")||(x(),y(),a.preventDefault(),a.stopPropagation())}),D.down.on("touchstart.touchspin",function(a){D.down.off("mousedown.touchspin"),J.is(":disabled")||(x(),y(),a.preventDefault(),a.stopPropagation())}),D.up.on("mousedown.touchspin",function(a){D.up.off("touchstart.touchspin"),J.is(":disabled")||(w(),z(),a.preventDefault(),a.stopPropagation())}),D.up.on("touchstart.touchspin",function(a){D.up.off("mousedown.touchspin"),J.is(":disabled")||(w(),z(),a.preventDefault(),a.stopPropagation())}),D.up.on("mouseout touchleave touchend touchcancel",function(a){M&&(a.stopPropagation(),A())}),D.down.on("mouseout touchleave touchend touchcancel",function(a){M&&(a.stopPropagation(),A())}),D.down.on("mousemove touchmove",function(a){M&&(a.stopPropagation(),a.preventDefault())}),D.up.on("mousemove touchmove",function(a){M&&(a.stopPropagation(),a.preventDefault())}),a(document).on(c(["mouseup","touchend","touchcancel"],d).join(" "),function(a){M&&(a.preventDefault(),A())}),a(document).on(c(["mousemove","touchmove","scroll","scrollstart"],d).join(" "),function(a){M&&(a.preventDefault(),A())}),J.on("mousewheel DOMMouseScroll",function(a){if(B.mousewheel&&J.is(":focus")){var b=a.originalEvent.wheelDelta||-a.originalEvent.deltaY||-a.originalEvent.detail;a.stopPropagation(),a.preventDefault(),0>b?x():w()}})}function s(){J.on("touchspin.uponce",function(){A(),w()}),J.on("touchspin.downonce",function(){A(),x()}),J.on("touchspin.startupspin",function(){z()}),J.on("touchspin.startdownspin",function(){y()}),J.on("touchspin.stopspin",function(){A()}),J.on("touchspin.updatesettings",function(a,b){i(b)})}function t(a){switch(B.forcestepdivisibility){case"round":return(Math.round(a/B.step)*B.step).toFixed(B.decimals);case"floor":return(Math.floor(a/B.step)*B.step).toFixed(B.decimals);case"ceil":return(Math.ceil(a/B.step)*B.step).toFixed(B.decimals);default:return a}}function u(){var a,b,c;a=J.val(),""!==a&&(B.decimals>0&&"."===a||(b=parseFloat(a),isNaN(b)&&(b=0),c=b,b.toString()!==a&&(c=b),bB.max&&(c=B.max),c=t(c),Number(a).toString()!==c.toString()&&(J.val(c),J.trigger("change"))))}function v(){if(B.booster){var a=Math.pow(2,Math.floor(L/B.boostat))*B.step;return B.maxboostedstep&&a>B.maxboostedstep&&(a=B.maxboostedstep,E=Math.round(E/a)*a),Math.max(B.step,a)}return B.step}function w(){u(),E=parseFloat(D.input.val()),isNaN(E)&&(E=0);var a=E,b=v();E+=b,E>B.max&&(E=B.max,J.trigger("touchspin.on.max"),A()),D.input.val(Number(E).toFixed(B.decimals)),a!==E&&J.trigger("change")}function x(){u(),E=parseFloat(D.input.val()),isNaN(E)&&(E=0);var a=E,b=v();E-=b,E li > a:hover, +.dropdown-menu > li > a:focus { + background-color: #e8e8e8; + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); + background-repeat: repeat-x; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + background-color: #2e6da4; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; +} +.navbar-default { + background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%); + background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8)); + background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .active > a { + background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); + background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); + background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); + box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); +} +.navbar-brand, +.navbar-nav > li > a { + text-shadow: 0 1px 0 rgba(255, 255, 255, .25); +} +.navbar-inverse { + background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); + background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); + background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-radius: 4px; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .active > a { + background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); + background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); + background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); + box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); +} +.navbar-inverse .navbar-brand, +.navbar-inverse .navbar-nav > li > a { + text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); +} +.navbar-static-top, +.navbar-fixed-top, +.navbar-fixed-bottom { + border-radius: 0; +} +@media (max-width: 767px) { + .navbar .navbar-nav .open .dropdown-menu > .active > a, + .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; + } +} +.alert { + text-shadow: 0 1px 0 rgba(255, 255, 255, .2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); +} +.alert-success { + background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); + background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); + background-repeat: repeat-x; + border-color: #b2dba1; +} +.alert-info { + background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); + background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); + background-repeat: repeat-x; + border-color: #9acfea; +} +.alert-warning { + background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); + background-repeat: repeat-x; + border-color: #f5e79e; +} +.alert-danger { + background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); + background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); + background-repeat: repeat-x; + border-color: #dca7a7; +} +.progress { + background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); + background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); + background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-success { + background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); + background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-info { + background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); + background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-warning { + background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-danger { + background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); + background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.list-group { + border-radius: 4px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); + box-shadow: 0 1px 2px rgba(0, 0, 0, .075); +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + text-shadow: 0 -1px 0 #286090; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); + background-repeat: repeat-x; + border-color: #2b669a; +} +.list-group-item.active .badge, +.list-group-item.active:hover .badge, +.list-group-item.active:focus .badge { + text-shadow: none; +} +.panel { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05); + box-shadow: 0 1px 2px rgba(0, 0, 0, .05); +} +.panel-default > .panel-heading { + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); + background-repeat: repeat-x; +} +.panel-primary > .panel-heading { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; +} +.panel-success > .panel-heading { + background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); + background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); + background-repeat: repeat-x; +} +.panel-info > .panel-heading { + background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); + background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); + background-repeat: repeat-x; +} +.panel-warning > .panel-heading { + background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); + background-repeat: repeat-x; +} +.panel-danger > .panel-heading { + background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); + background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); + background-repeat: repeat-x; +} +.well { + background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); + background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); + background-repeat: repeat-x; + border-color: #dcdcdc; + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); +} +/*# sourceMappingURL=bootstrap-theme.css.map */ diff --git a/static/assets/plugins/bootstrap/css/bootstrap-theme.css.map b/static/assets/plugins/bootstrap/css/bootstrap-theme.css.map new file mode 100644 index 0000000..7535311 --- /dev/null +++ b/static/assets/plugins/bootstrap/css/bootstrap-theme.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap-theme.css","less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"AAAA;;;;GAIG;ACeH;;;;;;EAME,yCAAA;EC2CA,4FAAA;EACQ,oFAAA;CFvDT;ACgBC;;;;;;;;;;;;ECsCA,yDAAA;EACQ,iDAAA;CFxCT;ACMC;;;;;;;;;;;;;;;;;;ECiCA,yBAAA;EACQ,iBAAA;CFnBT;AC/BD;;;;;;EAuBI,kBAAA;CDgBH;ACyBC;;EAEE,uBAAA;CDvBH;AC4BD;EErEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;EAuC2C,0BAAA;EAA2B,mBAAA;CDjBvE;ACpBC;;EAEE,0BAAA;EACA,6BAAA;CDsBH;ACnBC;;EAEE,0BAAA;EACA,sBAAA;CDqBH;ACfG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6BL;ACbD;EEtEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8DD;AC5DC;;EAEE,0BAAA;EACA,6BAAA;CD8DH;AC3DC;;EAEE,0BAAA;EACA,sBAAA;CD6DH;ACvDG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqEL;ACpDD;EEvEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CDsGD;ACpGC;;EAEE,0BAAA;EACA,6BAAA;CDsGH;ACnGC;;EAEE,0BAAA;EACA,sBAAA;CDqGH;AC/FG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6GL;AC3FD;EExEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8ID;AC5IC;;EAEE,0BAAA;EACA,6BAAA;CD8IH;AC3IC;;EAEE,0BAAA;EACA,sBAAA;CD6IH;ACvIG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqJL;AClID;EEzEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CDsLD;ACpLC;;EAEE,0BAAA;EACA,6BAAA;CDsLH;ACnLC;;EAEE,0BAAA;EACA,sBAAA;CDqLH;AC/KG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6LL;ACzKD;EE1EI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8ND;AC5NC;;EAEE,0BAAA;EACA,6BAAA;CD8NH;AC3NC;;EAEE,0BAAA;EACA,sBAAA;CD6NH;ACvNG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqOL;AC1MD;;EClCE,mDAAA;EACQ,2CAAA;CFgPT;ACrMD;;EE3FI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF0FF,0BAAA;CD2MD;ACzMD;;;EEhGI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFgGF,0BAAA;CD+MD;ACtMD;EE7GI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ECnBF,oEAAA;EH+HA,mBAAA;ECjEA,4FAAA;EACQ,oFAAA;CF8QT;ACjND;;EE7GI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ED2CF,yDAAA;EACQ,iDAAA;CFwRT;AC9MD;;EAEE,+CAAA;CDgND;AC5MD;EEhII,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ECnBF,oEAAA;EHkJA,mBAAA;CDkND;ACrND;;EEhII,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ED2CF,wDAAA;EACQ,gDAAA;CF+ST;AC/ND;;EAYI,0CAAA;CDuNH;AClND;;;EAGE,iBAAA;CDoND;AC/LD;EAfI;;;IAGE,YAAA;IE7JF,yEAAA;IACA,oEAAA;IACA,8FAAA;IAAA,uEAAA;IACA,4BAAA;IACA,uHAAA;GH+WD;CACF;AC3MD;EACE,8CAAA;EC3HA,2FAAA;EACQ,mFAAA;CFyUT;ACnMD;EEtLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CD+MD;AC1MD;EEvLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CDuND;ACjND;EExLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CD+ND;ACxND;EEzLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CDuOD;ACxND;EEjMI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH4ZH;ACrND;EE3MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHmaH;AC3ND;EE5MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH0aH;ACjOD;EE7MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHibH;ACvOD;EE9MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHwbH;AC7OD;EE/MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH+bH;AChPD;EElLI,8MAAA;EACA,yMAAA;EACA,sMAAA;CHqaH;AC5OD;EACE,mBAAA;EC9KA,mDAAA;EACQ,2CAAA;CF6ZT;AC7OD;;;EAGE,8BAAA;EEnOE,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFiOF,sBAAA;CDmPD;ACxPD;;;EAQI,kBAAA;CDqPH;AC3OD;ECnME,kDAAA;EACQ,0CAAA;CFibT;ACrOD;EE5PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHoeH;AC3OD;EE7PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH2eH;ACjPD;EE9PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHkfH;ACvPD;EE/PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHyfH;AC7PD;EEhQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHggBH;ACnQD;EEjQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHugBH;ACnQD;EExQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFsQF,sBAAA;EC3NA,0FAAA;EACQ,kFAAA;CFqeT","file":"bootstrap-theme.css","sourcesContent":["/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n}\n.progress-bar-striped {\n 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);\n 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);\n 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);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They will be removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file diff --git a/static/assets/plugins/bootstrap/css/bootstrap-theme.min.css b/static/assets/plugins/bootstrap/css/bootstrap-theme.min.css new file mode 100644 index 0000000..61358b1 --- /dev/null +++ b/static/assets/plugins/bootstrap/css/bootstrap-theme.min.css @@ -0,0 +1,5 @@ +/*! + * Bootstrap v3.3.5 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} \ No newline at end of file diff --git a/static/assets/plugins/bootstrap/css/bootstrap.css b/static/assets/plugins/bootstrap/css/bootstrap.css new file mode 100644 index 0000000..680e768 --- /dev/null +++ b/static/assets/plugins/bootstrap/css/bootstrap.css @@ -0,0 +1,6800 @@ +/*! + * Bootstrap v3.3.5 (http://getbootstrap.com) + * Copyright 2011-2015 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; + -webkit-text-size-adjust: 100%; + -ms-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 { + margin: .67em 0; + font-size: 2em; +} +mark { + color: #000; + background: #ff0; +} +small { + font-size: 80%; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -.5em; +} +sub { + bottom: -.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + height: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + margin: 0; + font: inherit; + color: inherit; +} +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 { + padding: 0; + border: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + 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-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +fieldset { + padding: .35em .625em .75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} +legend { + padding: 0; + border: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-spacing: 0; + border-collapse: collapse; +} +td, +th { + padding: 0; +} +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, + *:before, + *:after { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + -webkit-box-shadow: none !important; + box-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: "\2a"; +} +.glyphicon-plus:before { + content: "\2b"; +} +.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: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333; + background-color: #fff; +} +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +a { + color: #337ab7; + text-decoration: none; +} +a:hover, +a:focus { + color: #23527c; + text-decoration: underline; +} +a:focus { + outline: thin dotted; + 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 { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + 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; +} +.img-circle { + border-radius: 50%; +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} +[role="button"] { + cursor: pointer; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: inherit; + font-weight: 500; + 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: #777; +} +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 20px; + margin-bottom: 10px; +} +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: 10px; + margin-bottom: 10px; +} +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: 36px; +} +h2, +.h2 { + font-size: 30px; +} +h3, +.h3 { + font-size: 24px; +} +h4, +.h4 { + font-size: 18px; +} +h5, +.h5 { + font-size: 14px; +} +h6, +.h6 { + font-size: 12px; +} +p { + margin: 0 0 10px; +} +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4; +} +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} +small, +.small { + font-size: 85%; +} +mark, +.mark { + padding: .2em; + background-color: #fcf8e3; +} +.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: #777; +} +.text-primary { + color: #337ab7; +} +a.text-primary:hover, +a.text-primary:focus { + color: #286090; +} +.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: #337ab7; +} +a.bg-primary:hover, +a.bg-primary:focus { + background-color: #286090; +} +.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: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; +} +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none; +} +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} +dl { + margin-top: 0; + margin-bottom: 20px; +} +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; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } +} +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #777; +} +.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eee; +} +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: #777; +} +blockquote footer:before, +blockquote small:before, +blockquote .small:before { + content: '\2014 \00A0'; +} +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eee; + border-left: 0; +} +.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: 20px; + 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; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); +} +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + -webkit-box-shadow: none; + box-shadow: none; +} +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333; + word-break: break-all; + word-wrap: break-word; + 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 { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +@media (min-width: 768px) { + .container { + width: 750px; + } +} +@media (min-width: 992px) { + .container { + width: 970px; + } +} +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} +.container-fluid { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +.row { + margin-right: -15px; + margin-left: -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-right: 15px; + padding-left: 15px; +} +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .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: #777; + text-align: left; +} +th { + text-align: left; +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.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: #fff; +} +.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; + display: table-column; + float: none; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.table-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 { + min-height: .01%; + overflow-x: auto; +} +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + 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 { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333; + 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: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555; +} +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, -webkit-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, .6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .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[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #eee; + 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: 34px; + } + 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: 30px; + } + 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: 46px; + } +} +.form-group { + margin-bottom: 15px; +} +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} +.radio label, +.checkbox label { + min-height: 20px; + 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-top: 4px \9; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +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 { + min-height: 34px; + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; +} +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-right: 0; + padding-left: 0; +} +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-sm { + height: 30px; + line-height: 30px; +} +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.form-group-sm select.form-control { + height: 30px; + line-height: 30px; +} +.form-group-sm textarea.form-control, +.form-group-sm select[multiple].form-control { + height: auto; +} +.form-group-sm .form-control-static { + height: 30px; + min-height: 32px; + padding: 6px 10px; + font-size: 12px; + line-height: 1.5; +} +.input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-lg { + height: 46px; + line-height: 46px; +} +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} +.form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +.form-group-lg select.form-control { + height: 46px; + line-height: 46px; +} +.form-group-lg textarea.form-control, +.form-group-lg select[multiple].form-control { + height: auto; +} +.form-group-lg .form-control-static { + height: 46px; + min-height: 38px; + padding: 11px 16px; + font-size: 18px; + line-height: 1.3333333; +} +.has-feedback { + position: relative; +} +.has-feedback .form-control { + padding-right: 42.5px; +} +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + 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: 46px; + height: 46px; + line-height: 46px; +} +.input-sm + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} +.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, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; +} +.has-success .input-group-addon { + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d; +} +.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, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; +} +.has-warning .input-group-addon { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b; +} +.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, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; +} +.has-error .input-group-addon { + color: #a94442; + background-color: #f2dede; + border-color: #a94442; +} +.has-error .form-control-feedback { + color: #a94442; +} +.has-feedback label ~ .form-control-feedback { + top: 25px; +} +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + 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 { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 27px; +} +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 7px; + margin-bottom: 0; + text-align: right; + } +} +.form-horizontal .has-feedback .form-control-feedback { + right: 15px; +} +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 14.333333px; + font-size: 18px; + } +} +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + font-size: 12px; + } +} +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: thin dotted; + 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 { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: .65; +} +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, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #fff; + border-color: #ccc; +} +.btn-default .badge { + color: #fff; + background-color: #333; +} +.btn-primary { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary:focus, +.btn-primary.focus { + color: #fff; + background-color: #286090; + border-color: #122b40; +} +.btn-primary:hover { + color: #fff; + background-color: #286090; + border-color: #204d74; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #286090; + border-color: #204d74; +} +.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: #204d74; + border-color: #122b40; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + background-image: none; +} +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary .badge { + color: #337ab7; + background-color: #fff; +} +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success:focus, +.btn-success.focus { + color: #fff; + background-color: #449d44; + border-color: #255625; +} +.btn-success:hover { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.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: #398439; + border-color: #255625; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + background-image: none; +} +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success .badge { + color: #5cb85c; + background-color: #fff; +} +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info:focus, +.btn-info.focus { + color: #fff; + background-color: #31b0d5; + border-color: #1b6d85; +} +.btn-info:hover { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.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: #269abc; + border-color: #1b6d85; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + background-image: none; +} +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info .badge { + color: #5bc0de; + background-color: #fff; +} +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning:focus, +.btn-warning.focus { + color: #fff; + background-color: #ec971f; + border-color: #985f0d; +} +.btn-warning:hover { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.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: #d58512; + border-color: #985f0d; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + background-image: none; +} +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff; +} +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger:focus, +.btn-danger.focus { + color: #fff; + background-color: #c9302c; + border-color: #761c19; +} +.btn-danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.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: #ac2925; + border-color: #761c19; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + background-image: none; +} +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} +.btn-link { + font-weight: normal; + color: #337ab7; + 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: #23527c; + 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: #777; + text-decoration: none; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-xs, +.btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + 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-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + -o-transition-duration: .35s; + transition-duration: .35s; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; +} +.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; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + box-shadow: 0 6px 12px rgba(0, 0, 0, .175); +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #333; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #262626; + text-decoration: none; + background-color: #f5f5f5; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + background-color: #337ab7; + outline: 0; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #777; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.open > .dropdown-menu { + display: block; +} +.open > a { + outline: 0; +} +.dropdown-menu-right { + right: 0; + left: auto; +} +.dropdown-menu-left { + right: auto; + left: 0; +} +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777; + white-space: nowrap; +} +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 4px dashed; + border-bottom: 4px solid \9; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } +} +.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-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-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-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(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-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + 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-left-radius: 0; + border-top-right-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + display: table-cell; + float: none; + 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-right: 0; + padding-left: 0; +} +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + 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: 46px; + line-height: 46px; +} +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: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +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: 14px; + font-weight: normal; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px; +} +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .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-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .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-top-left-radius: 0; + border-bottom-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 { + padding-left: 0; + margin-bottom: 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: #eee; +} +.nav > li.disabled > a { + color: #777; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #777; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eee; + border-color: #337ab7; +} +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs { + border-bottom: 1px solid #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: #eee #eee #ddd; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555; + cursor: default; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.nav-tabs.nav-justified > li { + float: none; +} +.nav-tabs.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} +.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: #fff; + } +} +.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: #337ab7; +} +.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 { + margin-bottom: 5px; + text-align: center; +} +.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: #fff; + } +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} +.navbar-collapse { + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + -webkit-overflow-scrolling: touch; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); +} +.navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + 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-right: 0; + padding-left: 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; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} +.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; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + 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: 7.5px -15px; +} +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + 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; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; +} +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; +} +.navbar-text { + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 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 { + color: #555; + background-color: #e7e7e7; +} +@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: #9d9d9d; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-text { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a { + color: #9d9d9d; +} +.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 { + color: #fff; + background-color: #080808; +} +@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: #9d9d9d; + } + .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: #9d9d9d; +} +.navbar-inverse .navbar-link:hover { + color: #fff; +} +.navbar-inverse .btn-link { + color: #9d9d9d; +} +.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: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} +.breadcrumb > li { + display: inline-block; +} +.breadcrumb > li + li:before { + padding: 0 5px; + color: #ccc; + content: "/\00a0"; +} +.breadcrumb > .active { + color: #777; +} +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} +.pagination > li { + display: inline; +} +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.42857143; + color: #337ab7; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + z-index: 3; + color: #23527c; + background-color: #eee; + 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: 2; + color: #fff; + cursor: default; + background-color: #337ab7; + border-color: #337ab7; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #777; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; +} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; +} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; +} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; +} +.pager 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: #eee; +} +.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: #777; + cursor: not-allowed; + background-color: #fff; +} +.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: #777; +} +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #5e5e5e; +} +.label-primary { + background-color: #337ab7; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #286090; +} +.label-success { + background-color: #5cb85c; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} +.label-info { + background-color: #5bc0de; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} +.label-warning { + background-color: #f0ad4e; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} +.label-danger { + background-color: #d9534f; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: middle; + background-color: #777; + 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: #337ab7; + 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: 30px; + padding-bottom: 30px; + margin-bottom: 30px; + color: inherit; + background-color: #eee; +} +.jumbotron h1, +.jumbotron .h1 { + color: inherit; +} +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; +} +.jumbotron > hr { + border-top-color: #d5d5d5; +} +.container .jumbotron, +.container-fluid .jumbotron { + border-radius: 6px; +} +.jumbotron .container { + max-width: 100%; +} +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron, + .container-fluid .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1, + .jumbotron .h1 { + font-size: 63px; + } +} +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + 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-right: auto; + margin-left: auto; +} +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #337ab7; +} +.thumbnail .caption { + padding: 9px; + color: #333; +} +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} +.alert h4 { + margin-top: 0; + color: inherit; +} +.alert .alert-link { + font-weight: bold; +} +.alert > p, +.alert > ul { + margin-bottom: 0; +} +.alert > p + p { + margin-top: 5px; +} +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; +} +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.alert-success hr { + border-top-color: #c9e2b3; +} +.alert-success .alert-link { + color: #2b542c; +} +.alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} +.alert-info hr { + border-top-color: #a6e1ec; +} +.alert-info .alert-link { + color: #245269; +} +.alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} +.alert-warning hr { + border-top-color: #f7e1b5; +} +.alert-warning .alert-link { + color: #66512c; +} +.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} +.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; + } +} +@-o-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 { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); +} +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #337ab7; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + box-shadow: inset 0 -1px 0 rgba(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, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + 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: #5cb85c; +} +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-info { + background-color: #5bc0de; +} +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-warning { + background-color: #f0ad4e; +} +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-danger { + background-color: #d9534f; +} +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media, +.media-body { + overflow: hidden; + zoom: 1; +} +.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 { + padding-left: 0; + margin-bottom: 20px; +} +.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-left-radius: 4px; + border-top-right-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 { + color: #555; + text-decoration: none; + 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 { + color: #777; + cursor: not-allowed; + background-color: #eee; +} +.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: #777; +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.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: #c7ddef; +} +.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: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); +} +.panel-body { + padding: 15px; +} +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + 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-left-radius: 3px; + border-top-right-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-left-radius: 0; + border-top-right-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-right: 15px; + padding-left: 15px; +} +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child { + border-top-left-radius: 3px; + border-top-right-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-right-radius: 3px; + border-bottom-left-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 { + margin-bottom: 0; + border: 0; +} +.panel-group { + margin-bottom: 20px; +} +.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: #333; + 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: #333; +} +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ddd; +} +.panel-primary { + border-color: #337ab7; +} +.panel-primary > .panel-heading { + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #337ab7; +} +.panel-primary > .panel-heading .badge { + color: #337ab7; + background-color: #fff; +} +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #337ab7; +} +.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; + bottom: 0; + left: 0; + width: 100%; + height: 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, .05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, .15); +} +.well-lg { + padding: 24px; + border-radius: 6px; +} +.well-sm { + padding: 9px; + border-radius: 3px; +} +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: .2; +} +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: .5; +} +button.close { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: transparent; + border: 0; +} +.modal-open { + overflow: hidden; +} +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; +} +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); +} +.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; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); + box-shadow: 0 3px 9px rgba(0, 0, 0, .5); +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} +.modal-backdrop.fade { + filter: alpha(opacity=0); + opacity: 0; +} +.modal-backdrop.in { + filter: alpha(opacity=50); + opacity: .5; +} +.modal-header { + min-height: 16.42857143px; + 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-bottom: 0; + margin-left: 5px; +} +.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, .5); + box-shadow: 0 5px 15px rgba(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: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + font-style: normal; + font-weight: normal; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + filter: alpha(opacity=0); + opacity: 0; + + line-break: auto; +} +.tooltip.in { + filter: alpha(opacity=90); + opacity: .9; +} +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #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 { + right: 5px; + bottom: 0; + 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: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + font-style: normal; + font-weight: normal; + line-height: 1.42857143; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + + line-break: auto; +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + 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 { + content: ""; + border-width: 10px; +} +.popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, .25); + border-bottom-width: 0; +} +.popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0; +} +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, .25); + border-left-width: 0; +} +.popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0; +} +.popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, .25); +} +.popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + 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, .25); +} +.popover.left > .arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff; +} +.carousel { + position: relative; +} +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner > .item { + position: relative; + display: none; + -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 .6s ease-in-out; + -o-transition: -o-transform .6s ease-in-out; + transition: transform .6s ease-in-out; + + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; + } + .carousel-inner > .item.next, + .carousel-inner > .item.active.right { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + .carousel-inner > .item.prev, + .carousel-inner > .item.active.left { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + .carousel-inner > .item.next.left, + .carousel-inner > .item.prev.right, + .carousel-inner > .item.active { + left: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 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; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + filter: alpha(opacity=50); + opacity: .5; +} +.carousel-control.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control:hover, +.carousel-control:focus { + color: #fff; + text-decoration: none; + filter: alpha(opacity=90); + outline: 0; + opacity: .9; +} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; + margin-top: -10px; +} +.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; + font-family: serif; + line-height: 1; +} +.carousel-control .icon-prev:before { + content: '\2039'; +} +.carousel-control .icon-next:before { + content: '\203a'; +} +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #fff; + border-radius: 10px; +} +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff; +} +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(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: -15px; + font-size: 30px; + } + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -15px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -15px; + } + .carousel-caption { + right: 20%; + left: 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-footer:before, +.modal-footer:after { + display: table; + content: " "; +} +.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-footer:after { + clear: both; +} +.center-block { + display: block; + margin-right: auto; + margin-left: 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; + } +} +/*# sourceMappingURL=bootstrap.css.map */ diff --git a/static/assets/plugins/bootstrap/css/bootstrap.css.map b/static/assets/plugins/bootstrap/css/bootstrap.css.map new file mode 100644 index 0000000..9f60ed2 --- /dev/null +++ b/static/assets/plugins/bootstrap/css/bootstrap.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,4EAA4E;ACG5E;EACE,wBAAA;EACA,2BAAA;EACA,+BAAA;CDDD;ACQD;EACE,UAAA;CDND;ACmBD;;;;;;;;;;;;;EAaE,eAAA;CDjBD;ACyBD;;;;EAIE,sBAAA;EACA,yBAAA;CDvBD;AC+BD;EACE,cAAA;EACA,UAAA;CD7BD;ACqCD;;EAEE,cAAA;CDnCD;AC6CD;EACE,8BAAA;CD3CD;ACmDD;;EAEE,WAAA;CDjDD;AC2DD;EACE,0BAAA;CDzDD;ACgED;;EAEE,kBAAA;CD9DD;ACqED;EACE,mBAAA;CDnED;AC2ED;EACE,eAAA;EACA,iBAAA;CDzED;ACgFD;EACE,iBAAA;EACA,YAAA;CD9ED;ACqFD;EACE,eAAA;CDnFD;AC0FD;;EAEE,eAAA;EACA,eAAA;EACA,mBAAA;EACA,yBAAA;CDxFD;AC2FD;EACE,YAAA;CDzFD;AC4FD;EACE,gBAAA;CD1FD;ACoGD;EACE,UAAA;CDlGD;ACyGD;EACE,iBAAA;CDvGD;ACiHD;EACE,iBAAA;CD/GD;ACsHD;EACE,gCAAA;KAAA,6BAAA;UAAA,wBAAA;EACA,UAAA;CDpHD;AC2HD;EACE,eAAA;CDzHD;ACgID;;;;EAIE,kCAAA;EACA,eAAA;CD9HD;ACgJD;;;;;EAKE,eAAA;EACA,cAAA;EACA,UAAA;CD9ID;ACqJD;EACE,kBAAA;CDnJD;AC6JD;;EAEE,qBAAA;CD3JD;ACsKD;;;;EAIE,2BAAA;EACA,gBAAA;CDpKD;AC2KD;;EAEE,gBAAA;CDzKD;ACgLD;;EAEE,UAAA;EACA,WAAA;CD9KD;ACsLD;EACE,oBAAA;CDpLD;AC+LD;;EAEE,+BAAA;KAAA,4BAAA;UAAA,uBAAA;EACA,WAAA;CD7LD;ACsMD;;EAEE,aAAA;CDpMD;AC4MD;EACE,8BAAA;EACA,gCAAA;KAAA,6BAAA;UAAA,wBAAA;CD1MD;ACmND;;EAEE,yBAAA;CDjND;ACwND;EACE,0BAAA;EACA,cAAA;EACA,+BAAA;CDtND;AC8ND;EACE,UAAA;EACA,WAAA;CD5ND;ACmOD;EACE,eAAA;CDjOD;ACyOD;EACE,kBAAA;CDvOD;ACiPD;EACE,0BAAA;EACA,kBAAA;CD/OD;ACkPD;;EAEE,WAAA;CDhPD;AACD,qFAAqF;AElFrF;EA7FI;;;IAGI,mCAAA;IACA,uBAAA;IACA,oCAAA;YAAA,4BAAA;IACA,6BAAA;GFkLL;EE/KC;;IAEI,2BAAA;GFiLL;EE9KC;IACI,6BAAA;GFgLL;EE7KC;IACI,8BAAA;GF+KL;EE1KC;;IAEI,YAAA;GF4KL;EEzKC;;IAEI,uBAAA;IACA,yBAAA;GF2KL;EExKC;IACI,4BAAA;GF0KL;EEvKC;;IAEI,yBAAA;GFyKL;EEtKC;IACI,2BAAA;GFwKL;EErKC;;;IAGI,WAAA;IACA,UAAA;GFuKL;EEpKC;;IAEI,wBAAA;GFsKL;EEhKC;IACI,cAAA;GFkKL;EEhKC;;IAGQ,kCAAA;GFiKT;EE9JC;IACI,uBAAA;GFgKL;EE7JC;IACI,qCAAA;GF+JL;EEhKC;;IAKQ,kCAAA;GF+JT;EE5JC;;IAGQ,kCAAA;GF6JT;CACF;AGnPD;EACE,oCAAA;EACA,sDAAA;EACA,gYAAA;CHqPD;AG7OD;EACE,mBAAA;EACA,SAAA;EACA,sBAAA;EACA,oCAAA;EACA,mBAAA;EACA,oBAAA;EACA,eAAA;EACA,oCAAA;EACA,mCAAA;CH+OD;AG3OmC;EAAW,eAAA;CH8O9C;AG7OmC;EAAW,eAAA;CHgP9C;AG9OmC;;EAAW,iBAAA;CHkP9C;AGjPmC;EAAW,iBAAA;CHoP9C;AGnPmC;EAAW,iBAAA;CHsP9C;AGrPmC;EAAW,iBAAA;CHwP9C;AGvPmC;EAAW,iBAAA;CH0P9C;AGzPmC;EAAW,iBAAA;CH4P9C;AG3PmC;EAAW,iBAAA;CH8P9C;AG7PmC;EAAW,iBAAA;CHgQ9C;AG/PmC;EAAW,iBAAA;CHkQ9C;AGjQmC;EAAW,iBAAA;CHoQ9C;AGnQmC;EAAW,iBAAA;CHsQ9C;AGrQmC;EAAW,iBAAA;CHwQ9C;AGvQmC;EAAW,iBAAA;CH0Q9C;AGzQmC;EAAW,iBAAA;CH4Q9C;AG3QmC;EAAW,iBAAA;CH8Q9C;AG7QmC;EAAW,iBAAA;CHgR9C;AG/QmC;EAAW,iBAAA;CHkR9C;AGjRmC;EAAW,iBAAA;CHoR9C;AGnRmC;EAAW,iBAAA;CHsR9C;AGrRmC;EAAW,iBAAA;CHwR9C;AGvRmC;EAAW,iBAAA;CH0R9C;AGzRmC;EAAW,iBAAA;CH4R9C;AG3RmC;EAAW,iBAAA;CH8R9C;AG7RmC;EAAW,iBAAA;CHgS9C;AG/RmC;EAAW,iBAAA;CHkS9C;AGjSmC;EAAW,iBAAA;CHoS9C;AGnSmC;EAAW,iBAAA;CHsS9C;AGrSmC;EAAW,iBAAA;CHwS9C;AGvSmC;EAAW,iBAAA;CH0S9C;AGzSmC;EAAW,iBAAA;CH4S9C;AG3SmC;EAAW,iBAAA;CH8S9C;AG7SmC;EAAW,iBAAA;CHgT9C;AG/SmC;EAAW,iBAAA;CHkT9C;AGjTmC;EAAW,iBAAA;CHoT9C;AGnTmC;EAAW,iBAAA;CHsT9C;AGrTmC;EAAW,iBAAA;CHwT9C;AGvTmC;EAAW,iBAAA;CH0T9C;AGzTmC;EAAW,iBAAA;CH4T9C;AG3TmC;EAAW,iBAAA;CH8T9C;AG7TmC;EAAW,iBAAA;CHgU9C;AG/TmC;EAAW,iBAAA;CHkU9C;AGjUmC;EAAW,iBAAA;CHoU9C;AGnUmC;EAAW,iBAAA;CHsU9C;AGrUmC;EAAW,iBAAA;CHwU9C;AGvUmC;EAAW,iBAAA;CH0U9C;AGzUmC;EAAW,iBAAA;CH4U9C;AG3UmC;EAAW,iBAAA;CH8U9C;AG7UmC;EAAW,iBAAA;CHgV9C;AG/UmC;EAAW,iBAAA;CHkV9C;AGjVmC;EAAW,iBAAA;CHoV9C;AGnVmC;EAAW,iBAAA;CHsV9C;AGrVmC;EAAW,iBAAA;CHwV9C;AGvVmC;EAAW,iBAAA;CH0V9C;AGzVmC;EAAW,iBAAA;CH4V9C;AG3VmC;EAAW,iBAAA;CH8V9C;AG7VmC;EAAW,iBAAA;CHgW9C;AG/VmC;EAAW,iBAAA;CHkW9C;AGjWmC;EAAW,iBAAA;CHoW9C;AGnWmC;EAAW,iBAAA;CHsW9C;AGrWmC;EAAW,iBAAA;CHwW9C;AGvWmC;EAAW,iBAAA;CH0W9C;AGzWmC;EAAW,iBAAA;CH4W9C;AG3WmC;EAAW,iBAAA;CH8W9C;AG7WmC;EAAW,iBAAA;CHgX9C;AG/WmC;EAAW,iBAAA;CHkX9C;AGjXmC;EAAW,iBAAA;CHoX9C;AGnXmC;EAAW,iBAAA;CHsX9C;AGrXmC;EAAW,iBAAA;CHwX9C;AGvXmC;EAAW,iBAAA;CH0X9C;AGzXmC;EAAW,iBAAA;CH4X9C;AG3XmC;EAAW,iBAAA;CH8X9C;AG7XmC;EAAW,iBAAA;CHgY9C;AG/XmC;EAAW,iBAAA;CHkY9C;AGjYmC;EAAW,iBAAA;CHoY9C;AGnYmC;EAAW,iBAAA;CHsY9C;AGrYmC;EAAW,iBAAA;CHwY9C;AGvYmC;EAAW,iBAAA;CH0Y9C;AGzYmC;EAAW,iBAAA;CH4Y9C;AG3YmC;EAAW,iBAAA;CH8Y9C;AG7YmC;EAAW,iBAAA;CHgZ9C;AG/YmC;EAAW,iBAAA;CHkZ9C;AGjZmC;EAAW,iBAAA;CHoZ9C;AGnZmC;EAAW,iBAAA;CHsZ9C;AGrZmC;EAAW,iBAAA;CHwZ9C;AGvZmC;EAAW,iBAAA;CH0Z9C;AGzZmC;EAAW,iBAAA;CH4Z9C;AG3ZmC;EAAW,iBAAA;CH8Z9C;AG7ZmC;EAAW,iBAAA;CHga9C;AG/ZmC;EAAW,iBAAA;CHka9C;AGjamC;EAAW,iBAAA;CHoa9C;AGnamC;EAAW,iBAAA;CHsa9C;AGramC;EAAW,iBAAA;CHwa9C;AGvamC;EAAW,iBAAA;CH0a9C;AGzamC;EAAW,iBAAA;CH4a9C;AG3amC;EAAW,iBAAA;CH8a9C;AG7amC;EAAW,iBAAA;CHgb9C;AG/amC;EAAW,iBAAA;CHkb9C;AGjbmC;EAAW,iBAAA;CHob9C;AGnbmC;EAAW,iBAAA;CHsb9C;AGrbmC;EAAW,iBAAA;CHwb9C;AGvbmC;EAAW,iBAAA;CH0b9C;AGzbmC;EAAW,iBAAA;CH4b9C;AG3bmC;EAAW,iBAAA;CH8b9C;AG7bmC;EAAW,iBAAA;CHgc9C;AG/bmC;EAAW,iBAAA;CHkc9C;AGjcmC;EAAW,iBAAA;CHoc9C;AGncmC;EAAW,iBAAA;CHsc9C;AGrcmC;EAAW,iBAAA;CHwc9C;AGvcmC;EAAW,iBAAA;CH0c9C;AGzcmC;EAAW,iBAAA;CH4c9C;AG3cmC;EAAW,iBAAA;CH8c9C;AG7cmC;EAAW,iBAAA;CHgd9C;AG/cmC;EAAW,iBAAA;CHkd9C;AGjdmC;EAAW,iBAAA;CHod9C;AGndmC;EAAW,iBAAA;CHsd9C;AGrdmC;EAAW,iBAAA;CHwd9C;AGvdmC;EAAW,iBAAA;CH0d9C;AGzdmC;EAAW,iBAAA;CH4d9C;AG3dmC;EAAW,iBAAA;CH8d9C;AG7dmC;EAAW,iBAAA;CHge9C;AG/dmC;EAAW,iBAAA;CHke9C;AGjemC;EAAW,iBAAA;CHoe9C;AGnemC;EAAW,iBAAA;CHse9C;AGremC;EAAW,iBAAA;CHwe9C;AGvemC;EAAW,iBAAA;CH0e9C;AGzemC;EAAW,iBAAA;CH4e9C;AG3emC;EAAW,iBAAA;CH8e9C;AG7emC;EAAW,iBAAA;CHgf9C;AG/emC;EAAW,iBAAA;CHkf9C;AGjfmC;EAAW,iBAAA;CHof9C;AGnfmC;EAAW,iBAAA;CHsf9C;AGrfmC;EAAW,iBAAA;CHwf9C;AGvfmC;EAAW,iBAAA;CH0f9C;AGzfmC;EAAW,iBAAA;CH4f9C;AG3fmC;EAAW,iBAAA;CH8f9C;AG7fmC;EAAW,iBAAA;CHggB9C;AG/fmC;EAAW,iBAAA;CHkgB9C;AGjgBmC;EAAW,iBAAA;CHogB9C;AGngBmC;EAAW,iBAAA;CHsgB9C;AGrgBmC;EAAW,iBAAA;CHwgB9C;AGvgBmC;EAAW,iBAAA;CH0gB9C;AGzgBmC;EAAW,iBAAA;CH4gB9C;AG3gBmC;EAAW,iBAAA;CH8gB9C;AG7gBmC;EAAW,iBAAA;CHghB9C;AG/gBmC;EAAW,iBAAA;CHkhB9C;AGjhBmC;EAAW,iBAAA;CHohB9C;AGnhBmC;EAAW,iBAAA;CHshB9C;AGrhBmC;EAAW,iBAAA;CHwhB9C;AGvhBmC;EAAW,iBAAA;CH0hB9C;AGzhBmC;EAAW,iBAAA;CH4hB9C;AG3hBmC;EAAW,iBAAA;CH8hB9C;AG7hBmC;EAAW,iBAAA;CHgiB9C;AG/hBmC;EAAW,iBAAA;CHkiB9C;AGjiBmC;EAAW,iBAAA;CHoiB9C;AGniBmC;EAAW,iBAAA;CHsiB9C;AGriBmC;EAAW,iBAAA;CHwiB9C;AGviBmC;EAAW,iBAAA;CH0iB9C;AGziBmC;EAAW,iBAAA;CH4iB9C;AG3iBmC;EAAW,iBAAA;CH8iB9C;AG7iBmC;EAAW,iBAAA;CHgjB9C;AG/iBmC;EAAW,iBAAA;CHkjB9C;AGjjBmC;EAAW,iBAAA;CHojB9C;AGnjBmC;EAAW,iBAAA;CHsjB9C;AGrjBmC;EAAW,iBAAA;CHwjB9C;AGvjBmC;EAAW,iBAAA;CH0jB9C;AGzjBmC;EAAW,iBAAA;CH4jB9C;AG3jBmC;EAAW,iBAAA;CH8jB9C;AG7jBmC;EAAW,iBAAA;CHgkB9C;AG/jBmC;EAAW,iBAAA;CHkkB9C;AGjkBmC;EAAW,iBAAA;CHokB9C;AGnkBmC;EAAW,iBAAA;CHskB9C;AGrkBmC;EAAW,iBAAA;CHwkB9C;AGvkBmC;EAAW,iBAAA;CH0kB9C;AGzkBmC;EAAW,iBAAA;CH4kB9C;AG3kBmC;EAAW,iBAAA;CH8kB9C;AG7kBmC;EAAW,iBAAA;CHglB9C;AG/kBmC;EAAW,iBAAA;CHklB9C;AGjlBmC;EAAW,iBAAA;CHolB9C;AGnlBmC;EAAW,iBAAA;CHslB9C;AGrlBmC;EAAW,iBAAA;CHwlB9C;AGvlBmC;EAAW,iBAAA;CH0lB9C;AGzlBmC;EAAW,iBAAA;CH4lB9C;AG3lBmC;EAAW,iBAAA;CH8lB9C;AG7lBmC;EAAW,iBAAA;CHgmB9C;AG/lBmC;EAAW,iBAAA;CHkmB9C;AGjmBmC;EAAW,iBAAA;CHomB9C;AGnmBmC;EAAW,iBAAA;CHsmB9C;AGrmBmC;EAAW,iBAAA;CHwmB9C;AGvmBmC;EAAW,iBAAA;CH0mB9C;AGzmBmC;EAAW,iBAAA;CH4mB9C;AG3mBmC;EAAW,iBAAA;CH8mB9C;AG7mBmC;EAAW,iBAAA;CHgnB9C;AG/mBmC;EAAW,iBAAA;CHknB9C;AGjnBmC;EAAW,iBAAA;CHonB9C;AGnnBmC;EAAW,iBAAA;CHsnB9C;AGrnBmC;EAAW,iBAAA;CHwnB9C;AGvnBmC;EAAW,iBAAA;CH0nB9C;AGznBmC;EAAW,iBAAA;CH4nB9C;AG3nBmC;EAAW,iBAAA;CH8nB9C;AG7nBmC;EAAW,iBAAA;CHgoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AGvoBmC;EAAW,iBAAA;CH0oB9C;AGzoBmC;EAAW,iBAAA;CH4oB9C;AG3oBmC;EAAW,iBAAA;CH8oB9C;AG7oBmC;EAAW,iBAAA;CHgpB9C;AG/oBmC;EAAW,iBAAA;CHkpB9C;AGjpBmC;EAAW,iBAAA;CHopB9C;AGnpBmC;EAAW,iBAAA;CHspB9C;AGrpBmC;EAAW,iBAAA;CHwpB9C;AGvpBmC;EAAW,iBAAA;CH0pB9C;AGzpBmC;EAAW,iBAAA;CH4pB9C;AG3pBmC;EAAW,iBAAA;CH8pB9C;AG7pBmC;EAAW,iBAAA;CHgqB9C;AG/pBmC;EAAW,iBAAA;CHkqB9C;AGjqBmC;EAAW,iBAAA;CHoqB9C;AGnqBmC;EAAW,iBAAA;CHsqB9C;AGrqBmC;EAAW,iBAAA;CHwqB9C;AGvqBmC;EAAW,iBAAA;CH0qB9C;AGzqBmC;EAAW,iBAAA;CH4qB9C;AG3qBmC;EAAW,iBAAA;CH8qB9C;AG7qBmC;EAAW,iBAAA;CHgrB9C;AG/qBmC;EAAW,iBAAA;CHkrB9C;AGjrBmC;EAAW,iBAAA;CHorB9C;AGnrBmC;EAAW,iBAAA;CHsrB9C;AGrrBmC;EAAW,iBAAA;CHwrB9C;AGvrBmC;EAAW,iBAAA;CH0rB9C;AGzrBmC;EAAW,iBAAA;CH4rB9C;AG3rBmC;EAAW,iBAAA;CH8rB9C;AG7rBmC;EAAW,iBAAA;CHgsB9C;AG/rBmC;EAAW,iBAAA;CHksB9C;AGjsBmC;EAAW,iBAAA;CHosB9C;AGnsBmC;EAAW,iBAAA;CHssB9C;AGrsBmC;EAAW,iBAAA;CHwsB9C;AGvsBmC;EAAW,iBAAA;CH0sB9C;AGzsBmC;EAAW,iBAAA;CH4sB9C;AG3sBmC;EAAW,iBAAA;CH8sB9C;AG7sBmC;EAAW,iBAAA;CHgtB9C;AG/sBmC;EAAW,iBAAA;CHktB9C;AGjtBmC;EAAW,iBAAA;CHotB9C;AGntBmC;EAAW,iBAAA;CHstB9C;AGrtBmC;EAAW,iBAAA;CHwtB9C;AGvtBmC;EAAW,iBAAA;CH0tB9C;AGztBmC;EAAW,iBAAA;CH4tB9C;AG3tBmC;EAAW,iBAAA;CH8tB9C;AG7tBmC;EAAW,iBAAA;CHguB9C;AG/tBmC;EAAW,iBAAA;CHkuB9C;AGjuBmC;EAAW,iBAAA;CHouB9C;AGnuBmC;EAAW,iBAAA;CHsuB9C;AGruBmC;EAAW,iBAAA;CHwuB9C;AGvuBmC;EAAW,iBAAA;CH0uB9C;AGzuBmC;EAAW,iBAAA;CH4uB9C;AG3uBmC;EAAW,iBAAA;CH8uB9C;AG7uBmC;EAAW,iBAAA;CHgvB9C;AIthCD;ECgEE,+BAAA;EACG,4BAAA;EACK,uBAAA;CLy9BT;AIxhCD;;EC6DE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL+9BT;AIthCD;EACE,gBAAA;EACA,8CAAA;CJwhCD;AIrhCD;EACE,4DAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,0BAAA;CJuhCD;AInhCD;;;;EAIE,qBAAA;EACA,mBAAA;EACA,qBAAA;CJqhCD;AI/gCD;EACE,eAAA;EACA,sBAAA;CJihCD;AI/gCC;;EAEE,eAAA;EACA,2BAAA;CJihCH;AI9gCC;EErDA,qBAAA;EAEA,2CAAA;EACA,qBAAA;CNqkCD;AIxgCD;EACE,UAAA;CJ0gCD;AIpgCD;EACE,uBAAA;CJsgCD;AIlgCD;;;;;EGvEE,eAAA;EACA,gBAAA;EACA,aAAA;CPglCD;AItgCD;EACE,mBAAA;CJwgCD;AIlgCD;EACE,aAAA;EACA,wBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;EC6FA,yCAAA;EACK,oCAAA;EACG,iCAAA;EEvLR,sBAAA;EACA,gBAAA;EACA,aAAA;CPgmCD;AIlgCD;EACE,mBAAA;CJogCD;AI9/BD;EACE,iBAAA;EACA,oBAAA;EACA,UAAA;EACA,8BAAA;CJggCD;AIx/BD;EACE,mBAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,WAAA;EACA,iBAAA;EACA,uBAAA;EACA,UAAA;CJ0/BD;AIl/BC;;EAEE,iBAAA;EACA,YAAA;EACA,aAAA;EACA,UAAA;EACA,kBAAA;EACA,WAAA;CJo/BH;AIz+BD;EACE,gBAAA;CJ2+BD;AQloCD;;;;;;;;;;;;EAEE,qBAAA;EACA,iBAAA;EACA,iBAAA;EACA,eAAA;CR8oCD;AQnpCD;;;;;;;;;;;;;;;;;;;;;;;;EASI,oBAAA;EACA,eAAA;EACA,eAAA;CRoqCH;AQhqCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRqqCD;AQzqCD;;;;;;;;;;;;EAQI,eAAA;CR+qCH;AQ5qCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRirCD;AQrrCD;;;;;;;;;;;;EAQI,eAAA;CR2rCH;AQvrCD;;EAAU,gBAAA;CR2rCT;AQ1rCD;;EAAU,gBAAA;CR8rCT;AQ7rCD;;EAAU,gBAAA;CRisCT;AQhsCD;;EAAU,gBAAA;CRosCT;AQnsCD;;EAAU,gBAAA;CRusCT;AQtsCD;;EAAU,gBAAA;CR0sCT;AQpsCD;EACE,iBAAA;CRssCD;AQnsCD;EACE,oBAAA;EACA,gBAAA;EACA,iBAAA;EACA,iBAAA;CRqsCD;AQhsCD;EAAA;IAFI,gBAAA;GRssCD;CACF;AQ9rCD;;EAEE,eAAA;CRgsCD;AQ7rCD;;EAEE,0BAAA;EACA,cAAA;CR+rCD;AQ3rCD;EAAuB,iBAAA;CR8rCtB;AQ7rCD;EAAuB,kBAAA;CRgsCtB;AQ/rCD;EAAuB,mBAAA;CRksCtB;AQjsCD;EAAuB,oBAAA;CRosCtB;AQnsCD;EAAuB,oBAAA;CRssCtB;AQnsCD;EAAuB,0BAAA;CRssCtB;AQrsCD;EAAuB,0BAAA;CRwsCtB;AQvsCD;EAAuB,2BAAA;CR0sCtB;AQvsCD;EACE,eAAA;CRysCD;AQvsCD;ECrGE,eAAA;CT+yCD;AS9yCC;;EAEE,eAAA;CTgzCH;AQ3sCD;ECxGE,eAAA;CTszCD;ASrzCC;;EAEE,eAAA;CTuzCH;AQ/sCD;EC3GE,eAAA;CT6zCD;AS5zCC;;EAEE,eAAA;CT8zCH;AQntCD;EC9GE,eAAA;CTo0CD;ASn0CC;;EAEE,eAAA;CTq0CH;AQvtCD;ECjHE,eAAA;CT20CD;AS10CC;;EAEE,eAAA;CT40CH;AQvtCD;EAGE,YAAA;EE3HA,0BAAA;CVm1CD;AUl1CC;;EAEE,0BAAA;CVo1CH;AQztCD;EE9HE,0BAAA;CV01CD;AUz1CC;;EAEE,0BAAA;CV21CH;AQ7tCD;EEjIE,0BAAA;CVi2CD;AUh2CC;;EAEE,0BAAA;CVk2CH;AQjuCD;EEpIE,0BAAA;CVw2CD;AUv2CC;;EAEE,0BAAA;CVy2CH;AQruCD;EEvIE,0BAAA;CV+2CD;AU92CC;;EAEE,0BAAA;CVg3CH;AQpuCD;EACE,oBAAA;EACA,oBAAA;EACA,iCAAA;CRsuCD;AQ9tCD;;EAEE,cAAA;EACA,oBAAA;CRguCD;AQnuCD;;;;EAMI,iBAAA;CRmuCH;AQ5tCD;EACE,gBAAA;EACA,iBAAA;CR8tCD;AQ1tCD;EALE,gBAAA;EACA,iBAAA;EAMA,kBAAA;CR6tCD;AQ/tCD;EAKI,sBAAA;EACA,kBAAA;EACA,mBAAA;CR6tCH;AQxtCD;EACE,cAAA;EACA,oBAAA;CR0tCD;AQxtCD;;EAEE,wBAAA;CR0tCD;AQxtCD;EACE,kBAAA;CR0tCD;AQxtCD;EACE,eAAA;CR0tCD;AQjsCD;EAAA;IAVM,YAAA;IACA,aAAA;IACA,YAAA;IACA,kBAAA;IGtNJ,iBAAA;IACA,wBAAA;IACA,oBAAA;GXs6CC;EQ3sCH;IAHM,mBAAA;GRitCH;CACF;AQxsCD;;EAGE,aAAA;EACA,kCAAA;CRysCD;AQvsCD;EACE,eAAA;EA9IqB,0BAAA;CRw1CtB;AQrsCD;EACE,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,+BAAA;CRusCD;AQlsCG;;;EACE,iBAAA;CRssCL;AQhtCD;;;EAmBI,eAAA;EACA,eAAA;EACA,wBAAA;EACA,eAAA;CRksCH;AQhsCG;;;EACE,uBAAA;CRosCL;AQ5rCD;;EAEE,oBAAA;EACA,gBAAA;EACA,gCAAA;EACA,eAAA;EACA,kBAAA;CR8rCD;AQxrCG;;;;;;EAAW,YAAA;CRgsCd;AQ/rCG;;;;;;EACE,uBAAA;CRssCL;AQhsCD;EACE,oBAAA;EACA,mBAAA;EACA,wBAAA;CRksCD;AYx+CD;;;;EAIE,+DAAA;CZ0+CD;AYt+CD;EACE,iBAAA;EACA,eAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CZw+CD;AYp+CD;EACE,iBAAA;EACA,eAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;EACA,uDAAA;UAAA,+CAAA;CZs+CD;AY5+CD;EASI,WAAA;EACA,gBAAA;EACA,kBAAA;EACA,yBAAA;UAAA,iBAAA;CZs+CH;AYj+CD;EACE,eAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,sBAAA;EACA,sBAAA;EACA,eAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;CZm+CD;AY9+CD;EAeI,WAAA;EACA,mBAAA;EACA,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,iBAAA;CZk+CH;AY79CD;EACE,kBAAA;EACA,mBAAA;CZ+9CD;AazhDD;ECHE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;Cd+hDD;AazhDC;EAAA;IAFE,aAAA;Gb+hDD;CACF;Aa3hDC;EAAA;IAFE,aAAA;GbiiDD;CACF;Aa7hDD;EAAA;IAFI,cAAA;GbmiDD;CACF;Aa1hDD;ECvBE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;CdojDD;AavhDD;ECvBE,mBAAA;EACA,oBAAA;CdijDD;AejjDG;EACE,mBAAA;EAEA,gBAAA;EAEA,mBAAA;EACA,oBAAA;CfijDL;AejiDG;EACE,YAAA;CfmiDL;Ae5hDC;EACE,YAAA;Cf8hDH;Ae/hDC;EACE,oBAAA;CfiiDH;AeliDC;EACE,oBAAA;CfoiDH;AeriDC;EACE,WAAA;CfuiDH;AexiDC;EACE,oBAAA;Cf0iDH;Ae3iDC;EACE,oBAAA;Cf6iDH;Ae9iDC;EACE,WAAA;CfgjDH;AejjDC;EACE,oBAAA;CfmjDH;AepjDC;EACE,oBAAA;CfsjDH;AevjDC;EACE,WAAA;CfyjDH;Ae1jDC;EACE,oBAAA;Cf4jDH;Ae7jDC;EACE,mBAAA;Cf+jDH;AejjDC;EACE,YAAA;CfmjDH;AepjDC;EACE,oBAAA;CfsjDH;AevjDC;EACE,oBAAA;CfyjDH;Ae1jDC;EACE,WAAA;Cf4jDH;Ae7jDC;EACE,oBAAA;Cf+jDH;AehkDC;EACE,oBAAA;CfkkDH;AenkDC;EACE,WAAA;CfqkDH;AetkDC;EACE,oBAAA;CfwkDH;AezkDC;EACE,oBAAA;Cf2kDH;Ae5kDC;EACE,WAAA;Cf8kDH;Ae/kDC;EACE,oBAAA;CfilDH;AellDC;EACE,mBAAA;CfolDH;AehlDC;EACE,YAAA;CfklDH;AelmDC;EACE,WAAA;CfomDH;AermDC;EACE,mBAAA;CfumDH;AexmDC;EACE,mBAAA;Cf0mDH;Ae3mDC;EACE,UAAA;Cf6mDH;Ae9mDC;EACE,mBAAA;CfgnDH;AejnDC;EACE,mBAAA;CfmnDH;AepnDC;EACE,UAAA;CfsnDH;AevnDC;EACE,mBAAA;CfynDH;Ae1nDC;EACE,mBAAA;Cf4nDH;Ae7nDC;EACE,UAAA;Cf+nDH;AehoDC;EACE,mBAAA;CfkoDH;AenoDC;EACE,kBAAA;CfqoDH;AejoDC;EACE,WAAA;CfmoDH;AernDC;EACE,kBAAA;CfunDH;AexnDC;EACE,0BAAA;Cf0nDH;Ae3nDC;EACE,0BAAA;Cf6nDH;Ae9nDC;EACE,iBAAA;CfgoDH;AejoDC;EACE,0BAAA;CfmoDH;AepoDC;EACE,0BAAA;CfsoDH;AevoDC;EACE,iBAAA;CfyoDH;Ae1oDC;EACE,0BAAA;Cf4oDH;Ae7oDC;EACE,0BAAA;Cf+oDH;AehpDC;EACE,iBAAA;CfkpDH;AenpDC;EACE,0BAAA;CfqpDH;AetpDC;EACE,yBAAA;CfwpDH;AezpDC;EACE,gBAAA;Cf2pDH;Aa3pDD;EElCI;IACE,YAAA;GfgsDH;EezrDD;IACE,YAAA;Gf2rDD;Ee5rDD;IACE,oBAAA;Gf8rDD;Ee/rDD;IACE,oBAAA;GfisDD;EelsDD;IACE,WAAA;GfosDD;EersDD;IACE,oBAAA;GfusDD;EexsDD;IACE,oBAAA;Gf0sDD;Ee3sDD;IACE,WAAA;Gf6sDD;Ee9sDD;IACE,oBAAA;GfgtDD;EejtDD;IACE,oBAAA;GfmtDD;EeptDD;IACE,WAAA;GfstDD;EevtDD;IACE,oBAAA;GfytDD;Ee1tDD;IACE,mBAAA;Gf4tDD;Ee9sDD;IACE,YAAA;GfgtDD;EejtDD;IACE,oBAAA;GfmtDD;EeptDD;IACE,oBAAA;GfstDD;EevtDD;IACE,WAAA;GfytDD;Ee1tDD;IACE,oBAAA;Gf4tDD;Ee7tDD;IACE,oBAAA;Gf+tDD;EehuDD;IACE,WAAA;GfkuDD;EenuDD;IACE,oBAAA;GfquDD;EetuDD;IACE,oBAAA;GfwuDD;EezuDD;IACE,WAAA;Gf2uDD;Ee5uDD;IACE,oBAAA;Gf8uDD;Ee/uDD;IACE,mBAAA;GfivDD;Ee7uDD;IACE,YAAA;Gf+uDD;Ee/vDD;IACE,WAAA;GfiwDD;EelwDD;IACE,mBAAA;GfowDD;EerwDD;IACE,mBAAA;GfuwDD;EexwDD;IACE,UAAA;Gf0wDD;Ee3wDD;IACE,mBAAA;Gf6wDD;Ee9wDD;IACE,mBAAA;GfgxDD;EejxDD;IACE,UAAA;GfmxDD;EepxDD;IACE,mBAAA;GfsxDD;EevxDD;IACE,mBAAA;GfyxDD;Ee1xDD;IACE,UAAA;Gf4xDD;Ee7xDD;IACE,mBAAA;Gf+xDD;EehyDD;IACE,kBAAA;GfkyDD;Ee9xDD;IACE,WAAA;GfgyDD;EelxDD;IACE,kBAAA;GfoxDD;EerxDD;IACE,0BAAA;GfuxDD;EexxDD;IACE,0BAAA;Gf0xDD;Ee3xDD;IACE,iBAAA;Gf6xDD;Ee9xDD;IACE,0BAAA;GfgyDD;EejyDD;IACE,0BAAA;GfmyDD;EepyDD;IACE,iBAAA;GfsyDD;EevyDD;IACE,0BAAA;GfyyDD;Ee1yDD;IACE,0BAAA;Gf4yDD;Ee7yDD;IACE,iBAAA;Gf+yDD;EehzDD;IACE,0BAAA;GfkzDD;EenzDD;IACE,yBAAA;GfqzDD;EetzDD;IACE,gBAAA;GfwzDD;CACF;AahzDD;EE3CI;IACE,YAAA;Gf81DH;Eev1DD;IACE,YAAA;Gfy1DD;Ee11DD;IACE,oBAAA;Gf41DD;Ee71DD;IACE,oBAAA;Gf+1DD;Eeh2DD;IACE,WAAA;Gfk2DD;Een2DD;IACE,oBAAA;Gfq2DD;Eet2DD;IACE,oBAAA;Gfw2DD;Eez2DD;IACE,WAAA;Gf22DD;Ee52DD;IACE,oBAAA;Gf82DD;Ee/2DD;IACE,oBAAA;Gfi3DD;Eel3DD;IACE,WAAA;Gfo3DD;Eer3DD;IACE,oBAAA;Gfu3DD;Eex3DD;IACE,mBAAA;Gf03DD;Ee52DD;IACE,YAAA;Gf82DD;Ee/2DD;IACE,oBAAA;Gfi3DD;Eel3DD;IACE,oBAAA;Gfo3DD;Eer3DD;IACE,WAAA;Gfu3DD;Eex3DD;IACE,oBAAA;Gf03DD;Ee33DD;IACE,oBAAA;Gf63DD;Ee93DD;IACE,WAAA;Gfg4DD;Eej4DD;IACE,oBAAA;Gfm4DD;Eep4DD;IACE,oBAAA;Gfs4DD;Eev4DD;IACE,WAAA;Gfy4DD;Ee14DD;IACE,oBAAA;Gf44DD;Ee74DD;IACE,mBAAA;Gf+4DD;Ee34DD;IACE,YAAA;Gf64DD;Ee75DD;IACE,WAAA;Gf+5DD;Eeh6DD;IACE,mBAAA;Gfk6DD;Een6DD;IACE,mBAAA;Gfq6DD;Eet6DD;IACE,UAAA;Gfw6DD;Eez6DD;IACE,mBAAA;Gf26DD;Ee56DD;IACE,mBAAA;Gf86DD;Ee/6DD;IACE,UAAA;Gfi7DD;Eel7DD;IACE,mBAAA;Gfo7DD;Eer7DD;IACE,mBAAA;Gfu7DD;Eex7DD;IACE,UAAA;Gf07DD;Ee37DD;IACE,mBAAA;Gf67DD;Ee97DD;IACE,kBAAA;Gfg8DD;Ee57DD;IACE,WAAA;Gf87DD;Eeh7DD;IACE,kBAAA;Gfk7DD;Een7DD;IACE,0BAAA;Gfq7DD;Eet7DD;IACE,0BAAA;Gfw7DD;Eez7DD;IACE,iBAAA;Gf27DD;Ee57DD;IACE,0BAAA;Gf87DD;Ee/7DD;IACE,0BAAA;Gfi8DD;Eel8DD;IACE,iBAAA;Gfo8DD;Eer8DD;IACE,0BAAA;Gfu8DD;Eex8DD;IACE,0BAAA;Gf08DD;Ee38DD;IACE,iBAAA;Gf68DD;Ee98DD;IACE,0BAAA;Gfg9DD;Eej9DD;IACE,yBAAA;Gfm9DD;Eep9DD;IACE,gBAAA;Gfs9DD;CACF;Aa38DD;EE9CI;IACE,YAAA;Gf4/DH;Eer/DD;IACE,YAAA;Gfu/DD;Eex/DD;IACE,oBAAA;Gf0/DD;Ee3/DD;IACE,oBAAA;Gf6/DD;Ee9/DD;IACE,WAAA;GfggED;EejgED;IACE,oBAAA;GfmgED;EepgED;IACE,oBAAA;GfsgED;EevgED;IACE,WAAA;GfygED;Ee1gED;IACE,oBAAA;Gf4gED;Ee7gED;IACE,oBAAA;Gf+gED;EehhED;IACE,WAAA;GfkhED;EenhED;IACE,oBAAA;GfqhED;EethED;IACE,mBAAA;GfwhED;Ee1gED;IACE,YAAA;Gf4gED;Ee7gED;IACE,oBAAA;Gf+gED;EehhED;IACE,oBAAA;GfkhED;EenhED;IACE,WAAA;GfqhED;EethED;IACE,oBAAA;GfwhED;EezhED;IACE,oBAAA;Gf2hED;Ee5hED;IACE,WAAA;Gf8hED;Ee/hED;IACE,oBAAA;GfiiED;EeliED;IACE,oBAAA;GfoiED;EeriED;IACE,WAAA;GfuiED;EexiED;IACE,oBAAA;Gf0iED;Ee3iED;IACE,mBAAA;Gf6iED;EeziED;IACE,YAAA;Gf2iED;Ee3jED;IACE,WAAA;Gf6jED;Ee9jED;IACE,mBAAA;GfgkED;EejkED;IACE,mBAAA;GfmkED;EepkED;IACE,UAAA;GfskED;EevkED;IACE,mBAAA;GfykED;Ee1kED;IACE,mBAAA;Gf4kED;Ee7kED;IACE,UAAA;Gf+kED;EehlED;IACE,mBAAA;GfklED;EenlED;IACE,mBAAA;GfqlED;EetlED;IACE,UAAA;GfwlED;EezlED;IACE,mBAAA;Gf2lED;Ee5lED;IACE,kBAAA;Gf8lED;Ee1lED;IACE,WAAA;Gf4lED;Ee9kED;IACE,kBAAA;GfglED;EejlED;IACE,0BAAA;GfmlED;EeplED;IACE,0BAAA;GfslED;EevlED;IACE,iBAAA;GfylED;Ee1lED;IACE,0BAAA;Gf4lED;Ee7lED;IACE,0BAAA;Gf+lED;EehmED;IACE,iBAAA;GfkmED;EenmED;IACE,0BAAA;GfqmED;EetmED;IACE,0BAAA;GfwmED;EezmED;IACE,iBAAA;Gf2mED;Ee5mED;IACE,0BAAA;Gf8mED;Ee/mED;IACE,yBAAA;GfinED;EelnED;IACE,gBAAA;GfonED;CACF;AgBxrED;EACE,8BAAA;ChB0rED;AgBxrED;EACE,iBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;ChB0rED;AgBxrED;EACE,iBAAA;ChB0rED;AgBprED;EACE,YAAA;EACA,gBAAA;EACA,oBAAA;ChBsrED;AgBzrED;;;;;;EAWQ,aAAA;EACA,wBAAA;EACA,oBAAA;EACA,8BAAA;ChBsrEP;AgBpsED;EAoBI,uBAAA;EACA,iCAAA;ChBmrEH;AgBxsED;;;;;;EA8BQ,cAAA;ChBkrEP;AgBhtED;EAoCI,8BAAA;ChB+qEH;AgBntED;EAyCI,0BAAA;ChB6qEH;AgBtqED;;;;;;EAOQ,aAAA;ChBuqEP;AgB5pED;EACE,0BAAA;ChB8pED;AgB/pED;;;;;;EAQQ,0BAAA;ChB+pEP;AgBvqED;;EAeM,yBAAA;ChB4pEL;AgBlpED;EAEI,0BAAA;ChBmpEH;AgB1oED;EAEI,0BAAA;ChB2oEH;AgBloED;EACE,iBAAA;EACA,YAAA;EACA,sBAAA;ChBooED;AgB/nEG;;EACE,iBAAA;EACA,YAAA;EACA,oBAAA;ChBkoEL;AiB9wEC;;;;;;;;;;;;EAOI,0BAAA;CjBqxEL;AiB/wEC;;;;;EAMI,0BAAA;CjBgxEL;AiBnyEC;;;;;;;;;;;;EAOI,0BAAA;CjB0yEL;AiBpyEC;;;;;EAMI,0BAAA;CjBqyEL;AiBxzEC;;;;;;;;;;;;EAOI,0BAAA;CjB+zEL;AiBzzEC;;;;;EAMI,0BAAA;CjB0zEL;AiB70EC;;;;;;;;;;;;EAOI,0BAAA;CjBo1EL;AiB90EC;;;;;EAMI,0BAAA;CjB+0EL;AiBl2EC;;;;;;;;;;;;EAOI,0BAAA;CjBy2EL;AiBn2EC;;;;;EAMI,0BAAA;CjBo2EL;AgBltED;EACE,iBAAA;EACA,kBAAA;ChBotED;AgBvpED;EAAA;IA1DI,YAAA;IACA,oBAAA;IACA,mBAAA;IACA,6CAAA;IACA,0BAAA;GhBqtED;EgB/pEH;IAlDM,iBAAA;GhBotEH;EgBlqEH;;;;;;IAzCY,oBAAA;GhBmtET;EgB1qEH;IAjCM,UAAA;GhB8sEH;EgB7qEH;;;;;;IAxBY,eAAA;GhB6sET;EgBrrEH;;;;;;IApBY,gBAAA;GhBitET;EgB7rEH;;;;IAPY,iBAAA;GhB0sET;CACF;AkBp6ED;EACE,WAAA;EACA,UAAA;EACA,UAAA;EAIA,aAAA;ClBm6ED;AkBh6ED;EACE,eAAA;EACA,YAAA;EACA,WAAA;EACA,oBAAA;EACA,gBAAA;EACA,qBAAA;EACA,eAAA;EACA,UAAA;EACA,iCAAA;ClBk6ED;AkB/5ED;EACE,sBAAA;EACA,gBAAA;EACA,mBAAA;EACA,kBAAA;ClBi6ED;AkBt5ED;Eb4BE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL63ET;AkBt5ED;;EAEE,gBAAA;EACA,mBAAA;EACA,oBAAA;ClBw5ED;AkBr5ED;EACE,eAAA;ClBu5ED;AkBn5ED;EACE,eAAA;EACA,YAAA;ClBq5ED;AkBj5ED;;EAEE,aAAA;ClBm5ED;AkB/4ED;;;EZvEE,qBAAA;EAEA,2CAAA;EACA,qBAAA;CN09ED;AkB/4ED;EACE,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;ClBi5ED;AkBv3ED;EACE,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,0BAAA;EACA,uBAAA;EACA,0BAAA;EACA,mBAAA;EbxDA,yDAAA;EACQ,iDAAA;EAyHR,uFAAA;EACK,0EAAA;EACG,uEAAA;CL0zET;AmBl8EC;EACE,sBAAA;EACA,WAAA;EdUF,uFAAA;EACQ,+EAAA;CL27ET;AK15EC;EACE,eAAA;EACA,WAAA;CL45EH;AK15EC;EAA0B,eAAA;CL65E3B;AK55EC;EAAgC,eAAA;CL+5EjC;AkB/3EC;;;EAGE,0BAAA;EACA,WAAA;ClBi4EH;AkB93EC;;EAEE,oBAAA;ClBg4EH;AkB53EC;EACE,aAAA;ClB83EH;AkBl3ED;EACE,yBAAA;ClBo3ED;AkB50ED;EAtBI;;;;IACE,kBAAA;GlBw2EH;EkBr2EC;;;;;;;;IAEE,kBAAA;GlB62EH;EkB12EC;;;;;;;;IAEE,kBAAA;GlBk3EH;CACF;AkBx2ED;EACE,oBAAA;ClB02ED;AkBl2ED;;EAEE,mBAAA;EACA,eAAA;EACA,iBAAA;EACA,oBAAA;ClBo2ED;AkBz2ED;;EAQI,iBAAA;EACA,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,gBAAA;ClBq2EH;AkBl2ED;;;;EAIE,mBAAA;EACA,mBAAA;EACA,mBAAA;ClBo2ED;AkBj2ED;;EAEE,iBAAA;ClBm2ED;AkB/1ED;;EAEE,mBAAA;EACA,sBAAA;EACA,mBAAA;EACA,iBAAA;EACA,uBAAA;EACA,oBAAA;EACA,gBAAA;ClBi2ED;AkB/1ED;;EAEE,cAAA;EACA,kBAAA;ClBi2ED;AkBx1EC;;;;;;EAGE,oBAAA;ClB61EH;AkBv1EC;;;;EAEE,oBAAA;ClB21EH;AkBr1EC;;;;EAGI,oBAAA;ClBw1EL;AkB70ED;EAEE,iBAAA;EACA,oBAAA;EAEA,iBAAA;EACA,iBAAA;ClB60ED;AkB30EC;;EAEE,gBAAA;EACA,iBAAA;ClB60EH;AkBh0ED;EC7PE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnBgkFD;AmB9jFC;EACE,aAAA;EACA,kBAAA;CnBgkFH;AmB7jFC;;EAEE,aAAA;CnB+jFH;AkB50ED;EAEI,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;ClB60EH;AkBn1ED;EASI,aAAA;EACA,kBAAA;ClB60EH;AkBv1ED;;EAcI,aAAA;ClB60EH;AkB31ED;EAiBI,aAAA;EACA,iBAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;ClB60EH;AkBz0ED;ECzRE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnBqmFD;AmBnmFC;EACE,aAAA;EACA,kBAAA;CnBqmFH;AmBlmFC;;EAEE,aAAA;CnBomFH;AkBr1ED;EAEI,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;ClBs1EH;AkB51ED;EASI,aAAA;EACA,kBAAA;ClBs1EH;AkBh2ED;;EAcI,aAAA;ClBs1EH;AkBp2ED;EAiBI,aAAA;EACA,iBAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;ClBs1EH;AkB70ED;EAEE,mBAAA;ClB80ED;AkBh1ED;EAMI,sBAAA;ClB60EH;AkBz0ED;EACE,mBAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,mBAAA;EACA,qBAAA;ClB20ED;AkBz0ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClB20ED;AkBz0ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClB20ED;AkBv0ED;;;;;;;;;;ECpZI,eAAA;CnBuuFH;AkBn1ED;EChZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CLwrFT;AmBtuFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL6rFT;AkB71ED;ECtYI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBsuFH;AkBl2ED;EChYI,eAAA;CnBquFH;AkBl2ED;;;;;;;;;;ECvZI,eAAA;CnBqwFH;AkB92ED;ECnZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CLstFT;AmBpwFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL2tFT;AkBx3ED;ECzYI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBowFH;AkB73ED;ECnYI,eAAA;CnBmwFH;AkB73ED;;;;;;;;;;EC1ZI,eAAA;CnBmyFH;AkBz4ED;ECtZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CLovFT;AmBlyFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CLyvFT;AkBn5ED;EC5YI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBkyFH;AkBx5ED;ECtYI,eAAA;CnBiyFH;AkBp5EC;EACG,UAAA;ClBs5EJ;AkBp5EC;EACG,OAAA;ClBs5EJ;AkB54ED;EACE,eAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;ClB84ED;AkB3zED;EAAA;IA9DM,sBAAA;IACA,iBAAA;IACA,uBAAA;GlB63EH;EkBj0EH;IAvDM,sBAAA;IACA,YAAA;IACA,uBAAA;GlB23EH;EkBt0EH;IAhDM,sBAAA;GlBy3EH;EkBz0EH;IA5CM,sBAAA;IACA,uBAAA;GlBw3EH;EkB70EH;;;IAtCQ,YAAA;GlBw3EL;EkBl1EH;IAhCM,YAAA;GlBq3EH;EkBr1EH;IA5BM,iBAAA;IACA,uBAAA;GlBo3EH;EkBz1EH;;IApBM,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlBi3EH;EkBh2EH;;IAdQ,gBAAA;GlBk3EL;EkBp2EH;;IATM,mBAAA;IACA,eAAA;GlBi3EH;EkBz2EH;IAHM,OAAA;GlB+2EH;CACF;AkBr2ED;;;;EASI,cAAA;EACA,iBAAA;EACA,iBAAA;ClBk2EH;AkB72ED;;EAiBI,iBAAA;ClBg2EH;AkBj3ED;EJhhBE,mBAAA;EACA,oBAAA;Cdo4FD;AkB90EC;EAAA;IAVI,kBAAA;IACA,iBAAA;IACA,iBAAA;GlB41EH;CACF;AkB53ED;EAwCI,YAAA;ClBu1EH;AkBz0EC;EAAA;IAJM,yBAAA;IACA,gBAAA;GlBi1EL;CACF;AkBv0EC;EAAA;IAJM,iBAAA;IACA,gBAAA;GlB+0EL;CACF;AoBl6FD;EACE,sBAAA;EACA,iBAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,+BAAA;MAAA,2BAAA;EACA,gBAAA;EACA,uBAAA;EACA,8BAAA;EACA,oBAAA;EC6CA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,mBAAA;EhB4JA,0BAAA;EACG,uBAAA;EACC,sBAAA;EACI,kBAAA;CL6tFT;AoBr6FG;;;;;;EdrBF,qBAAA;EAEA,2CAAA;EACA,qBAAA;CNi8FD;AoBz6FC;;;EAGE,eAAA;EACA,sBAAA;CpB26FH;AoBx6FC;;EAEE,WAAA;EACA,uBAAA;Ef2BF,yDAAA;EACQ,iDAAA;CLg5FT;AoBx6FC;;;EAGE,oBAAA;EE7CF,cAAA;EAGA,0BAAA;EjB8DA,yBAAA;EACQ,iBAAA;CLy5FT;AoBx6FG;;EAEE,qBAAA;CpB06FL;AoBj6FD;EC3DE,eAAA;EACA,0BAAA;EACA,sBAAA;CrB+9FD;AqB79FC;;EAEE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB+9FP;AqB79FC;EACE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB+9FP;AqB79FC;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB+9FP;AqB79FG;;;;;;;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBq+FT;AqBl+FC;;;EAGE,uBAAA;CrBo+FH;AqB/9FG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACI,sBAAA;CrB6+FT;AoB/9FD;ECTI,eAAA;EACA,0BAAA;CrB2+FH;AoBh+FD;EC9DE,eAAA;EACA,0BAAA;EACA,sBAAA;CrBiiGD;AqB/hGC;;EAEE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBiiGP;AqB/hGC;EACE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBiiGP;AqB/hGC;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBiiGP;AqB/hGG;;;;;;;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBuiGT;AqBpiGC;;;EAGE,uBAAA;CrBsiGH;AqBjiGG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACI,sBAAA;CrB+iGT;AoB9hGD;ECZI,eAAA;EACA,0BAAA;CrB6iGH;AoB9hGD;EClEE,eAAA;EACA,0BAAA;EACA,sBAAA;CrBmmGD;AqBjmGC;;EAEE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBmmGP;AqBjmGC;EACE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBmmGP;AqBjmGC;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBmmGP;AqBjmGG;;;;;;;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBymGT;AqBtmGC;;;EAGE,uBAAA;CrBwmGH;AqBnmGG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACI,sBAAA;CrBinGT;AoB5lGD;EChBI,eAAA;EACA,0BAAA;CrB+mGH;AoB5lGD;ECtEE,eAAA;EACA,0BAAA;EACA,sBAAA;CrBqqGD;AqBnqGC;;EAEE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBqqGP;AqBnqGC;EACE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBqqGP;AqBnqGC;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBqqGP;AqBnqGG;;;;;;;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB2qGT;AqBxqGC;;;EAGE,uBAAA;CrB0qGH;AqBrqGG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACI,sBAAA;CrBmrGT;AoB1pGD;ECpBI,eAAA;EACA,0BAAA;CrBirGH;AoB1pGD;EC1EE,eAAA;EACA,0BAAA;EACA,sBAAA;CrBuuGD;AqBruGC;;EAEE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBuuGP;AqBruGC;EACE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBuuGP;AqBruGC;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrBuuGP;AqBruGG;;;;;;;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB6uGT;AqB1uGC;;;EAGE,uBAAA;CrB4uGH;AqBvuGG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACI,sBAAA;CrBqvGT;AoBxtGD;ECxBI,eAAA;EACA,0BAAA;CrBmvGH;AoBxtGD;EC9EE,eAAA;EACA,0BAAA;EACA,sBAAA;CrByyGD;AqBvyGC;;EAEE,eAAA;EACA,0BAAA;EACI,sBAAA;CrByyGP;AqBvyGC;EACE,eAAA;EACA,0BAAA;EACI,sBAAA;CrByyGP;AqBvyGC;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrByyGP;AqBvyGG;;;;;;;;;EAGE,eAAA;EACA,0BAAA;EACI,sBAAA;CrB+yGT;AqB5yGC;;;EAGE,uBAAA;CrB8yGH;AqBzyGG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACI,sBAAA;CrBuzGT;AoBtxGD;EC5BI,eAAA;EACA,0BAAA;CrBqzGH;AoBjxGD;EACE,eAAA;EACA,oBAAA;EACA,iBAAA;CpBmxGD;AoBjxGC;;;;;EAKE,8BAAA;EfnCF,yBAAA;EACQ,iBAAA;CLuzGT;AoBlxGC;;;;EAIE,0BAAA;CpBoxGH;AoBlxGC;;EAEE,eAAA;EACA,2BAAA;EACA,8BAAA;CpBoxGH;AoBhxGG;;;;EAEE,eAAA;EACA,sBAAA;CpBoxGL;AoB3wGD;;ECrEE,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CrBo1GD;AoB9wGD;;ECzEE,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrB21GD;AoBjxGD;;EC7EE,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrBk2GD;AoBhxGD;EACE,eAAA;EACA,YAAA;CpBkxGD;AoB9wGD;EACE,gBAAA;CpBgxGD;AoBzwGC;;;EACE,YAAA;CpB6wGH;AuBv6GD;EACE,WAAA;ElBoLA,yCAAA;EACK,oCAAA;EACG,iCAAA;CLsvGT;AuB16GC;EACE,WAAA;CvB46GH;AuBx6GD;EACE,cAAA;CvB06GD;AuBx6GC;EAAY,eAAA;CvB26Gb;AuB16GC;EAAY,mBAAA;CvB66Gb;AuB56GC;EAAY,yBAAA;CvB+6Gb;AuB56GD;EACE,mBAAA;EACA,UAAA;EACA,iBAAA;ElBuKA,gDAAA;EACQ,2CAAA;KAAA,wCAAA;EAOR,mCAAA;EACQ,8BAAA;KAAA,2BAAA;EAGR,yCAAA;EACQ,oCAAA;KAAA,iCAAA;CLgwGT;AwB18GD;EACE,sBAAA;EACA,SAAA;EACA,UAAA;EACA,iBAAA;EACA,uBAAA;EACA,uBAAA;EACA,yBAAA;EACA,oCAAA;EACA,mCAAA;CxB48GD;AwBx8GD;;EAEE,mBAAA;CxB08GD;AwBt8GD;EACE,WAAA;CxBw8GD;AwBp8GD;EACE,mBAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,0BAAA;EACA,0BAAA;EACA,sCAAA;EACA,mBAAA;EnBsBA,oDAAA;EACQ,4CAAA;EmBrBR,qCAAA;UAAA,6BAAA;CxBu8GD;AwBl8GC;EACE,SAAA;EACA,WAAA;CxBo8GH;AwB79GD;ECzBE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzBy/GD;AwBn+GD;EAmCI,eAAA;EACA,kBAAA;EACA,YAAA;EACA,oBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxBm8GH;AwB77GC;;EAEE,sBAAA;EACA,eAAA;EACA,0BAAA;CxB+7GH;AwBz7GC;;;EAGE,eAAA;EACA,sBAAA;EACA,WAAA;EACA,0BAAA;CxB27GH;AwBl7GC;;;EAGE,eAAA;CxBo7GH;AwBh7GC;;EAEE,sBAAA;EACA,8BAAA;EACA,uBAAA;EE3GF,oEAAA;EF6GE,oBAAA;CxBk7GH;AwB76GD;EAGI,eAAA;CxB66GH;AwBh7GD;EAQI,WAAA;CxB26GH;AwBn6GD;EACE,WAAA;EACA,SAAA;CxBq6GD;AwB75GD;EACE,QAAA;EACA,YAAA;CxB+5GD;AwB35GD;EACE,eAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxB65GD;AwBz5GD;EACE,gBAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,OAAA;EACA,aAAA;CxB25GD;AwBv5GD;EACE,SAAA;EACA,WAAA;CxBy5GD;AwBj5GD;;EAII,cAAA;EACA,0BAAA;EACA,4BAAA;EACA,YAAA;CxBi5GH;AwBx5GD;;EAWI,UAAA;EACA,aAAA;EACA,mBAAA;CxBi5GH;AwB53GD;EAXE;IApEA,WAAA;IACA,SAAA;GxB+8GC;EwB54GD;IA1DA,QAAA;IACA,YAAA;GxBy8GC;CACF;A2BzlHD;;EAEE,mBAAA;EACA,sBAAA;EACA,uBAAA;C3B2lHD;A2B/lHD;;EAMI,mBAAA;EACA,YAAA;C3B6lHH;A2B3lHG;;;;;;;;EAIE,WAAA;C3BimHL;A2B3lHD;;;;EAKI,kBAAA;C3B4lHH;A2BvlHD;EACE,kBAAA;C3BylHD;A2B1lHD;;;EAOI,YAAA;C3BwlHH;A2B/lHD;;;EAYI,iBAAA;C3BwlHH;A2BplHD;EACE,iBAAA;C3BslHD;A2BllHD;EACE,eAAA;C3BolHD;A2BnlHC;EClDA,8BAAA;EACG,2BAAA;C5BwoHJ;A2BllHD;;EC/CE,6BAAA;EACG,0BAAA;C5BqoHJ;A2BjlHD;EACE,YAAA;C3BmlHD;A2BjlHD;EACE,iBAAA;C3BmlHD;A2BjlHD;;ECnEE,8BAAA;EACG,2BAAA;C5BwpHJ;A2BhlHD;ECjEE,6BAAA;EACG,0BAAA;C5BopHJ;A2B/kHD;;EAEE,WAAA;C3BilHD;A2BhkHD;EACE,kBAAA;EACA,mBAAA;C3BkkHD;A2BhkHD;EACE,mBAAA;EACA,oBAAA;C3BkkHD;A2B7jHD;EtB/CE,yDAAA;EACQ,iDAAA;CL+mHT;A2B7jHC;EtBnDA,yBAAA;EACQ,iBAAA;CLmnHT;A2B1jHD;EACE,eAAA;C3B4jHD;A2BzjHD;EACE,wBAAA;EACA,uBAAA;C3B2jHD;A2BxjHD;EACE,wBAAA;C3B0jHD;A2BnjHD;;;EAII,eAAA;EACA,YAAA;EACA,YAAA;EACA,gBAAA;C3BojHH;A2B3jHD;EAcM,YAAA;C3BgjHL;A2B9jHD;;;;EAsBI,iBAAA;EACA,eAAA;C3B8iHH;A2BziHC;EACE,iBAAA;C3B2iHH;A2BziHC;EACE,6BAAA;ECpKF,8BAAA;EACC,6BAAA;C5BgtHF;A2B1iHC;EACE,+BAAA;EChLF,2BAAA;EACC,0BAAA;C5B6tHF;A2B1iHD;EACE,iBAAA;C3B4iHD;A2B1iHD;;EC/KE,8BAAA;EACC,6BAAA;C5B6tHF;A2BziHD;EC7LE,2BAAA;EACC,0BAAA;C5ByuHF;A2BriHD;EACE,eAAA;EACA,YAAA;EACA,oBAAA;EACA,0BAAA;C3BuiHD;A2B3iHD;;EAOI,YAAA;EACA,oBAAA;EACA,UAAA;C3BwiHH;A2BjjHD;EAYI,YAAA;C3BwiHH;A2BpjHD;EAgBI,WAAA;C3BuiHH;A2BthHD;;;;EAKM,mBAAA;EACA,uBAAA;EACA,qBAAA;C3BuhHL;A6BjwHD;EACE,mBAAA;EACA,eAAA;EACA,0BAAA;C7BmwHD;A6BhwHC;EACE,YAAA;EACA,gBAAA;EACA,iBAAA;C7BkwHH;A6B3wHD;EAeI,mBAAA;EACA,WAAA;EAKA,YAAA;EAEA,YAAA;EACA,iBAAA;C7B0vHH;A6BjvHD;;;EV8BE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnBwtHD;AmBttHC;;;EACE,aAAA;EACA,kBAAA;CnB0tHH;AmBvtHC;;;;;;EAEE,aAAA;CnB6tHH;A6BnwHD;;;EVyBE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnB+uHD;AmB7uHC;;;EACE,aAAA;EACA,kBAAA;CnBivHH;AmB9uHC;;;;;;EAEE,aAAA;CnBovHH;A6BjxHD;;;EAGE,oBAAA;C7BmxHD;A6BjxHC;;;EACE,iBAAA;C7BqxHH;A6BjxHD;;EAEE,UAAA;EACA,oBAAA;EACA,uBAAA;C7BmxHD;A6B9wHD;EACE,kBAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;EACA,eAAA;EACA,mBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;C7BgxHD;A6B7wHC;EACE,kBAAA;EACA,gBAAA;EACA,mBAAA;C7B+wHH;A6B7wHC;EACE,mBAAA;EACA,gBAAA;EACA,mBAAA;C7B+wHH;A6BnyHD;;EA0BI,cAAA;C7B6wHH;A6BxwHD;;;;;;;EDhGE,8BAAA;EACG,2BAAA;C5Bi3HJ;A6BzwHD;EACE,gBAAA;C7B2wHD;A6BzwHD;;;;;;;EDpGE,6BAAA;EACG,0BAAA;C5Bs3HJ;A6B1wHD;EACE,eAAA;C7B4wHD;A6BvwHD;EACE,mBAAA;EAGA,aAAA;EACA,oBAAA;C7BuwHD;A6B5wHD;EAUI,mBAAA;C7BqwHH;A6B/wHD;EAYM,kBAAA;C7BswHL;A6BnwHG;;;EAGE,WAAA;C7BqwHL;A6BhwHC;;EAGI,mBAAA;C7BiwHL;A6B9vHC;;EAGI,WAAA;EACA,kBAAA;C7B+vHL;A8B15HD;EACE,iBAAA;EACA,gBAAA;EACA,iBAAA;C9B45HD;A8B/5HD;EAOI,mBAAA;EACA,eAAA;C9B25HH;A8Bn6HD;EAWM,mBAAA;EACA,eAAA;EACA,mBAAA;C9B25HL;A8B15HK;;EAEE,sBAAA;EACA,0BAAA;C9B45HP;A8Bv5HG;EACE,eAAA;C9By5HL;A8Bv5HK;;EAEE,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,oBAAA;C9By5HP;A8Bl5HG;;;EAGE,0BAAA;EACA,sBAAA;C9Bo5HL;A8B77HD;ELHE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzBm8HD;A8Bn8HD;EA0DI,gBAAA;C9B44HH;A8Bn4HD;EACE,iCAAA;C9Bq4HD;A8Bt4HD;EAGI,YAAA;EAEA,oBAAA;C9Bq4HH;A8B14HD;EASM,kBAAA;EACA,wBAAA;EACA,8BAAA;EACA,2BAAA;C9Bo4HL;A8Bn4HK;EACE,sCAAA;C9Bq4HP;A8B/3HK;;;EAGE,eAAA;EACA,0BAAA;EACA,0BAAA;EACA,iCAAA;EACA,gBAAA;C9Bi4HP;A8B53HC;EAqDA,YAAA;EA8BA,iBAAA;C9B6yHD;A8Bh4HC;EAwDE,YAAA;C9B20HH;A8Bn4HC;EA0DI,mBAAA;EACA,mBAAA;C9B40HL;A8Bv4HC;EAgEE,UAAA;EACA,WAAA;C9B00HH;A8B9zHD;EAAA;IAPM,oBAAA;IACA,UAAA;G9By0HH;E8Bn0HH;IAJQ,iBAAA;G9B00HL;CACF;A8Bp5HC;EAuFE,gBAAA;EACA,mBAAA;C9Bg0HH;A8Bx5HC;;;EA8FE,0BAAA;C9B+zHH;A8BjzHD;EAAA;IATM,iCAAA;IACA,2BAAA;G9B8zHH;E8BtzHH;;;IAHM,6BAAA;G9B8zHH;CACF;A8B/5HD;EAEI,YAAA;C9Bg6HH;A8Bl6HD;EAMM,mBAAA;C9B+5HL;A8Br6HD;EASM,iBAAA;C9B+5HL;A8B15HK;;;EAGE,eAAA;EACA,0BAAA;C9B45HP;A8Bp5HD;EAEI,YAAA;C9Bq5HH;A8Bv5HD;EAIM,gBAAA;EACA,eAAA;C9Bs5HL;A8B14HD;EACE,YAAA;C9B44HD;A8B74HD;EAII,YAAA;C9B44HH;A8Bh5HD;EAMM,mBAAA;EACA,mBAAA;C9B64HL;A8Bp5HD;EAYI,UAAA;EACA,WAAA;C9B24HH;A8B/3HD;EAAA;IAPM,oBAAA;IACA,UAAA;G9B04HH;E8Bp4HH;IAJQ,iBAAA;G9B24HL;CACF;A8Bn4HD;EACE,iBAAA;C9Bq4HD;A8Bt4HD;EAKI,gBAAA;EACA,mBAAA;C9Bo4HH;A8B14HD;;;EAYI,0BAAA;C9Bm4HH;A8Br3HD;EAAA;IATM,iCAAA;IACA,2BAAA;G9Bk4HH;E8B13HH;;;IAHM,6BAAA;G9Bk4HH;CACF;A8Bz3HD;EAEI,cAAA;C9B03HH;A8B53HD;EAKI,eAAA;C9B03HH;A8Bj3HD;EAEE,iBAAA;EF3OA,2BAAA;EACC,0BAAA;C5B8lIF;A+BxlID;EACE,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,8BAAA;C/B0lID;A+BllID;EAAA;IAFI,mBAAA;G/BwlID;CACF;A+BzkID;EAAA;IAFI,YAAA;G/B+kID;CACF;A+BjkID;EACE,oBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,2DAAA;UAAA,mDAAA;EAEA,kCAAA;C/BkkID;A+BhkIC;EACE,iBAAA;C/BkkIH;A+BtiID;EAAA;IAxBI,YAAA;IACA,cAAA;IACA,yBAAA;YAAA,iBAAA;G/BkkID;E+BhkIC;IACE,0BAAA;IACA,wBAAA;IACA,kBAAA;IACA,6BAAA;G/BkkIH;E+B/jIC;IACE,oBAAA;G/BikIH;E+B5jIC;;;IAGE,gBAAA;IACA,iBAAA;G/B8jIH;CACF;A+B1jID;;EAGI,kBAAA;C/B2jIH;A+BtjIC;EAAA;;IAFI,kBAAA;G/B6jIH;CACF;A+BpjID;;;;EAII,oBAAA;EACA,mBAAA;C/BsjIH;A+BhjIC;EAAA;;;;IAHI,gBAAA;IACA,eAAA;G/B0jIH;CACF;A+B9iID;EACE,cAAA;EACA,sBAAA;C/BgjID;A+B3iID;EAAA;IAFI,iBAAA;G/BijID;CACF;A+B7iID;;EAEE,gBAAA;EACA,SAAA;EACA,QAAA;EACA,cAAA;C/B+iID;A+BziID;EAAA;;IAFI,iBAAA;G/BgjID;CACF;A+B9iID;EACE,OAAA;EACA,sBAAA;C/BgjID;A+B9iID;EACE,UAAA;EACA,iBAAA;EACA,sBAAA;C/BgjID;A+B1iID;EACE,YAAA;EACA,mBAAA;EACA,gBAAA;EACA,kBAAA;EACA,aAAA;C/B4iID;A+B1iIC;;EAEE,sBAAA;C/B4iIH;A+BrjID;EAaI,eAAA;C/B2iIH;A+BliID;EALI;;IAEE,mBAAA;G/B0iIH;CACF;A+BhiID;EACE,mBAAA;EACA,aAAA;EACA,mBAAA;EACA,kBAAA;EC9LA,gBAAA;EACA,mBAAA;ED+LA,8BAAA;EACA,uBAAA;EACA,8BAAA;EACA,mBAAA;C/BmiID;A+B/hIC;EACE,WAAA;C/BiiIH;A+B/iID;EAmBI,eAAA;EACA,YAAA;EACA,YAAA;EACA,mBAAA;C/B+hIH;A+BrjID;EAyBI,gBAAA;C/B+hIH;A+BzhID;EAAA;IAFI,cAAA;G/B+hID;CACF;A+BthID;EACE,oBAAA;C/BwhID;A+BzhID;EAII,kBAAA;EACA,qBAAA;EACA,kBAAA;C/BwhIH;A+B5/HC;EAAA;IAtBI,iBAAA;IACA,YAAA;IACA,YAAA;IACA,cAAA;IACA,8BAAA;IACA,UAAA;IACA,yBAAA;YAAA,iBAAA;G/BshIH;E+BtgID;;IAbM,2BAAA;G/BuhIL;E+B1gID;IAVM,kBAAA;G/BuhIL;E+BthIK;;IAEE,uBAAA;G/BwhIP;CACF;A+BtgID;EAAA;IAXI,YAAA;IACA,UAAA;G/BqhID;E+B3gIH;IAPM,YAAA;G/BqhIH;E+B9gIH;IALQ,kBAAA;IACA,qBAAA;G/BshIL;CACF;A+B3gID;EACE,mBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,qCAAA;E1B9NA,6FAAA;EACQ,qFAAA;E2B/DR,gBAAA;EACA,mBAAA;ChC4yID;AkB5xHD;EAAA;IA9DM,sBAAA;IACA,iBAAA;IACA,uBAAA;GlB81HH;EkBlyHH;IAvDM,sBAAA;IACA,YAAA;IACA,uBAAA;GlB41HH;EkBvyHH;IAhDM,sBAAA;GlB01HH;EkB1yHH;IA5CM,sBAAA;IACA,uBAAA;GlBy1HH;EkB9yHH;;;IAtCQ,YAAA;GlBy1HL;EkBnzHH;IAhCM,YAAA;GlBs1HH;EkBtzHH;IA5BM,iBAAA;IACA,uBAAA;GlBq1HH;EkB1zHH;;IApBM,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlBk1HH;EkBj0HH;;IAdQ,gBAAA;GlBm1HL;EkBr0HH;;IATM,mBAAA;IACA,eAAA;GlBk1HH;EkB10HH;IAHM,OAAA;GlBg1HH;CACF;A+BpjIC;EAAA;IANI,mBAAA;G/B8jIH;E+B5jIG;IACE,iBAAA;G/B8jIL;CACF;A+B7iID;EAAA;IARI,YAAA;IACA,UAAA;IACA,eAAA;IACA,gBAAA;IACA,eAAA;IACA,kBAAA;I1BzPF,yBAAA;IACQ,iBAAA;GLmzIP;CACF;A+BnjID;EACE,cAAA;EHpUA,2BAAA;EACC,0BAAA;C5B03IF;A+BnjID;EACE,iBAAA;EHzUA,6BAAA;EACC,4BAAA;EAOD,8BAAA;EACC,6BAAA;C5By3IF;A+B/iID;EChVE,gBAAA;EACA,mBAAA;ChCk4ID;A+BhjIC;ECnVA,iBAAA;EACA,oBAAA;ChCs4ID;A+BjjIC;ECtVA,iBAAA;EACA,oBAAA;ChC04ID;A+B3iID;EChWE,iBAAA;EACA,oBAAA;ChC84ID;A+BviID;EAAA;IAJI,YAAA;IACA,kBAAA;IACA,mBAAA;G/B+iID;CACF;A+BlhID;EAhBE;IExWA,uBAAA;GjC84IC;E+BriID;IE5WA,wBAAA;IF8WE,oBAAA;G/BuiID;E+BziID;IAKI,gBAAA;G/BuiIH;CACF;A+B9hID;EACE,0BAAA;EACA,sBAAA;C/BgiID;A+BliID;EAKI,eAAA;C/BgiIH;A+B/hIG;;EAEE,eAAA;EACA,8BAAA;C/BiiIL;A+B1iID;EAcI,eAAA;C/B+hIH;A+B7iID;EAmBM,eAAA;C/B6hIL;A+B3hIK;;EAEE,eAAA;EACA,8BAAA;C/B6hIP;A+BzhIK;;;EAGE,eAAA;EACA,0BAAA;C/B2hIP;A+BvhIK;;;EAGE,eAAA;EACA,8BAAA;C/ByhIP;A+BjkID;EA8CI,sBAAA;C/BshIH;A+BrhIG;;EAEE,0BAAA;C/BuhIL;A+BxkID;EAoDM,0BAAA;C/BuhIL;A+B3kID;;EA0DI,sBAAA;C/BqhIH;A+B9gIK;;;EAGE,0BAAA;EACA,eAAA;C/BghIP;A+B/+HC;EAAA;IAzBQ,eAAA;G/B4gIP;E+B3gIO;;IAEE,eAAA;IACA,8BAAA;G/B6gIT;E+BzgIO;;;IAGE,eAAA;IACA,0BAAA;G/B2gIT;E+BvgIO;;;IAGE,eAAA;IACA,8BAAA;G/BygIT;CACF;A+B3mID;EA8GI,eAAA;C/BggIH;A+B//HG;EACE,eAAA;C/BigIL;A+BjnID;EAqHI,eAAA;C/B+/HH;A+B9/HG;;EAEE,eAAA;C/BggIL;A+B5/HK;;;;EAEE,eAAA;C/BggIP;A+Bx/HD;EACE,0BAAA;EACA,sBAAA;C/B0/HD;A+B5/HD;EAKI,eAAA;C/B0/HH;A+Bz/HG;;EAEE,eAAA;EACA,8BAAA;C/B2/HL;A+BpgID;EAcI,eAAA;C/By/HH;A+BvgID;EAmBM,eAAA;C/Bu/HL;A+Br/HK;;EAEE,eAAA;EACA,8BAAA;C/Bu/HP;A+Bn/HK;;;EAGE,eAAA;EACA,0BAAA;C/Bq/HP;A+Bj/HK;;;EAGE,eAAA;EACA,8BAAA;C/Bm/HP;A+B3hID;EA+CI,sBAAA;C/B++HH;A+B9+HG;;EAEE,0BAAA;C/Bg/HL;A+BliID;EAqDM,0BAAA;C/Bg/HL;A+BriID;;EA2DI,sBAAA;C/B8+HH;A+Bx+HK;;;EAGE,0BAAA;EACA,eAAA;C/B0+HP;A+Bn8HC;EAAA;IA/BQ,sBAAA;G/Bs+HP;E+Bv8HD;IA5BQ,0BAAA;G/Bs+HP;E+B18HD;IAzBQ,eAAA;G/Bs+HP;E+Br+HO;;IAEE,eAAA;IACA,8BAAA;G/Bu+HT;E+Bn+HO;;;IAGE,eAAA;IACA,0BAAA;G/Bq+HT;E+Bj+HO;;;IAGE,eAAA;IACA,8BAAA;G/Bm+HT;CACF;A+B3kID;EA+GI,eAAA;C/B+9HH;A+B99HG;EACE,eAAA;C/Bg+HL;A+BjlID;EAsHI,eAAA;C/B89HH;A+B79HG;;EAEE,eAAA;C/B+9HL;A+B39HK;;;;EAEE,eAAA;C/B+9HP;AkCzmJD;EACE,kBAAA;EACA,oBAAA;EACA,iBAAA;EACA,0BAAA;EACA,mBAAA;ClC2mJD;AkChnJD;EAQI,sBAAA;ClC2mJH;AkCnnJD;EAWM,kBAAA;EACA,eAAA;EACA,eAAA;ClC2mJL;AkCxnJD;EAkBI,eAAA;ClCymJH;AmC7nJD;EACE,sBAAA;EACA,gBAAA;EACA,eAAA;EACA,mBAAA;CnC+nJD;AmCnoJD;EAOI,gBAAA;CnC+nJH;AmCtoJD;;EAUM,mBAAA;EACA,YAAA;EACA,kBAAA;EACA,wBAAA;EACA,sBAAA;EACA,eAAA;EACA,0BAAA;EACA,0BAAA;EACA,kBAAA;CnCgoJL;AmC9nJG;;EAGI,eAAA;EPXN,+BAAA;EACG,4BAAA;C5B2oJJ;AmC7nJG;;EPvBF,gCAAA;EACG,6BAAA;C5BwpJJ;AmCxnJG;;;;EAEE,WAAA;EACA,eAAA;EACA,0BAAA;EACA,sBAAA;CnC4nJL;AmCtnJG;;;;;;EAGE,WAAA;EACA,eAAA;EACA,0BAAA;EACA,sBAAA;EACA,gBAAA;CnC2nJL;AmClrJD;;;;;;EAkEM,eAAA;EACA,0BAAA;EACA,sBAAA;EACA,oBAAA;CnCwnJL;AmC/mJD;;EC3EM,mBAAA;EACA,gBAAA;EACA,uBAAA;CpC8rJL;AoC5rJG;;ERKF,+BAAA;EACG,4BAAA;C5B2rJJ;AoC3rJG;;ERTF,gCAAA;EACG,6BAAA;C5BwsJJ;AmC1nJD;;EChFM,kBAAA;EACA,gBAAA;EACA,iBAAA;CpC8sJL;AoC5sJG;;ERKF,+BAAA;EACG,4BAAA;C5B2sJJ;AoC3sJG;;ERTF,gCAAA;EACG,6BAAA;C5BwtJJ;AqC3tJD;EACE,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,mBAAA;CrC6tJD;AqCjuJD;EAOI,gBAAA;CrC6tJH;AqCpuJD;;EAUM,sBAAA;EACA,kBAAA;EACA,0BAAA;EACA,0BAAA;EACA,oBAAA;CrC8tJL;AqC5uJD;;EAmBM,sBAAA;EACA,0BAAA;CrC6tJL;AqCjvJD;;EA2BM,aAAA;CrC0tJL;AqCrvJD;;EAkCM,YAAA;CrCutJL;AqCzvJD;;;;EA2CM,eAAA;EACA,0BAAA;EACA,oBAAA;CrCotJL;AsClwJD;EACE,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,kBAAA;EACA,eAAA;EACA,eAAA;EACA,mBAAA;EACA,oBAAA;EACA,yBAAA;EACA,qBAAA;CtCowJD;AsChwJG;;EAEE,eAAA;EACA,sBAAA;EACA,gBAAA;CtCkwJL;AsC7vJC;EACE,cAAA;CtC+vJH;AsC3vJC;EACE,mBAAA;EACA,UAAA;CtC6vJH;AsCtvJD;ECtCE,0BAAA;CvC+xJD;AuC5xJG;;EAEE,0BAAA;CvC8xJL;AsCzvJD;EC1CE,0BAAA;CvCsyJD;AuCnyJG;;EAEE,0BAAA;CvCqyJL;AsC5vJD;EC9CE,0BAAA;CvC6yJD;AuC1yJG;;EAEE,0BAAA;CvC4yJL;AsC/vJD;EClDE,0BAAA;CvCozJD;AuCjzJG;;EAEE,0BAAA;CvCmzJL;AsClwJD;ECtDE,0BAAA;CvC2zJD;AuCxzJG;;EAEE,0BAAA;CvC0zJL;AsCrwJD;EC1DE,0BAAA;CvCk0JD;AuC/zJG;;EAEE,0BAAA;CvCi0JL;AwCn0JD;EACE,sBAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,eAAA;EACA,uBAAA;EACA,oBAAA;EACA,mBAAA;EACA,0BAAA;EACA,oBAAA;CxCq0JD;AwCl0JC;EACE,cAAA;CxCo0JH;AwCh0JC;EACE,mBAAA;EACA,UAAA;CxCk0JH;AwC/zJC;;EAEE,OAAA;EACA,iBAAA;CxCi0JH;AwC5zJG;;EAEE,eAAA;EACA,sBAAA;EACA,gBAAA;CxC8zJL;AwCzzJC;;EAEE,eAAA;EACA,0BAAA;CxC2zJH;AwCxzJC;EACE,aAAA;CxC0zJH;AwCvzJC;EACE,kBAAA;CxCyzJH;AwCtzJC;EACE,iBAAA;CxCwzJH;AyCl3JD;EACE,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,eAAA;EACA,0BAAA;CzCo3JD;AyCz3JD;;EASI,eAAA;CzCo3JH;AyC73JD;EAaI,oBAAA;EACA,gBAAA;EACA,iBAAA;CzCm3JH;AyCl4JD;EAmBI,0BAAA;CzCk3JH;AyC/2JC;;EAEE,mBAAA;CzCi3JH;AyCz4JD;EA4BI,gBAAA;CzCg3JH;AyC91JD;EAAA;IAdI,kBAAA;IACA,qBAAA;GzCg3JD;EyC92JC;;IAEE,mBAAA;IACA,oBAAA;GzCg3JH;EyCx2JH;;IAHM,gBAAA;GzC+2JH;CACF;A0C15JD;EACE,eAAA;EACA,aAAA;EACA,oBAAA;EACA,wBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;ErCiLA,4CAAA;EACK,uCAAA;EACG,oCAAA;CL4uJT;A0Ct6JD;;EAaI,kBAAA;EACA,mBAAA;C1C65JH;A0Cz5JC;;;EAGE,sBAAA;C1C25JH;A0Ch7JD;EA0BI,aAAA;EACA,eAAA;C1Cy5JH;A2Cl7JD;EACE,cAAA;EACA,oBAAA;EACA,8BAAA;EACA,mBAAA;C3Co7JD;A2Cx7JD;EAQI,cAAA;EAEA,eAAA;C3Ck7JH;A2C57JD;EAeI,kBAAA;C3Cg7JH;A2C/7JD;;EAqBI,iBAAA;C3C86JH;A2Cn8JD;EAyBI,gBAAA;C3C66JH;A2Cr6JD;;EAEE,oBAAA;C3Cu6JD;A2Cz6JD;;EAMI,mBAAA;EACA,UAAA;EACA,aAAA;EACA,eAAA;C3Cu6JH;A2C/5JD;ECvDE,0BAAA;EACA,sBAAA;EACA,eAAA;C5Cy9JD;A2Cp6JD;EClDI,0BAAA;C5Cy9JH;A2Cv6JD;EC/CI,eAAA;C5Cy9JH;A2Ct6JD;EC3DE,0BAAA;EACA,sBAAA;EACA,eAAA;C5Co+JD;A2C36JD;ECtDI,0BAAA;C5Co+JH;A2C96JD;ECnDI,eAAA;C5Co+JH;A2C76JD;EC/DE,0BAAA;EACA,sBAAA;EACA,eAAA;C5C++JD;A2Cl7JD;EC1DI,0BAAA;C5C++JH;A2Cr7JD;ECvDI,eAAA;C5C++JH;A2Cp7JD;ECnEE,0BAAA;EACA,sBAAA;EACA,eAAA;C5C0/JD;A2Cz7JD;EC9DI,0BAAA;C5C0/JH;A2C57JD;EC3DI,eAAA;C5C0/JH;A6C5/JD;EACE;IAAQ,4BAAA;G7C+/JP;E6C9/JD;IAAQ,yBAAA;G7CigKP;CACF;A6C9/JD;EACE;IAAQ,4BAAA;G7CigKP;E6ChgKD;IAAQ,yBAAA;G7CmgKP;CACF;A6CtgKD;EACE;IAAQ,4BAAA;G7CigKP;E6ChgKD;IAAQ,yBAAA;G7CmgKP;CACF;A6C5/JD;EACE,iBAAA;EACA,aAAA;EACA,oBAAA;EACA,0BAAA;EACA,mBAAA;ExCsCA,uDAAA;EACQ,+CAAA;CLy9JT;A6C3/JD;EACE,YAAA;EACA,UAAA;EACA,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,mBAAA;EACA,0BAAA;ExCyBA,uDAAA;EACQ,+CAAA;EAyHR,oCAAA;EACK,+BAAA;EACG,4BAAA;CL62JT;A6Cx/JD;;ECCI,8MAAA;EACA,yMAAA;EACA,sMAAA;EDAF,mCAAA;UAAA,2BAAA;C7C4/JD;A6Cr/JD;;ExC5CE,2DAAA;EACK,sDAAA;EACG,mDAAA;CLqiKT;A6Cl/JD;EErEE,0BAAA;C/C0jKD;A+CvjKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C0gKH;A6Ct/JD;EEzEE,0BAAA;C/CkkKD;A+C/jKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9CkhKH;A6C1/JD;EE7EE,0BAAA;C/C0kKD;A+CvkKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C0hKH;A6C9/JD;EEjFE,0BAAA;C/CklKD;A+C/kKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9CkiKH;AgD1lKD;EAEE,iBAAA;ChD2lKD;AgDzlKC;EACE,cAAA;ChD2lKH;AgDvlKD;;EAEE,QAAA;EACA,iBAAA;ChDylKD;AgDtlKD;EACE,eAAA;ChDwlKD;AgDrlKD;EACE,eAAA;ChDulKD;AgDplKC;EACE,gBAAA;ChDslKH;AgDllKD;;EAEE,mBAAA;ChDolKD;AgDjlKD;;EAEE,oBAAA;ChDmlKD;AgDhlKD;;;EAGE,oBAAA;EACA,oBAAA;ChDklKD;AgD/kKD;EACE,uBAAA;ChDilKD;AgD9kKD;EACE,uBAAA;ChDglKD;AgD5kKD;EACE,cAAA;EACA,mBAAA;ChD8kKD;AgDxkKD;EACE,gBAAA;EACA,iBAAA;ChD0kKD;AiDjoKD;EAEE,oBAAA;EACA,gBAAA;CjDkoKD;AiD1nKD;EACE,mBAAA;EACA,eAAA;EACA,mBAAA;EAEA,oBAAA;EACA,0BAAA;EACA,0BAAA;CjD2nKD;AiDxnKC;ErB3BA,6BAAA;EACC,4BAAA;C5BspKF;AiDznKC;EACE,iBAAA;ErBvBF,gCAAA;EACC,+BAAA;C5BmpKF;AiDlnKD;;EAEE,eAAA;CjDonKD;AiDtnKD;;EAKI,eAAA;CjDqnKH;AiDjnKC;;;;EAEE,sBAAA;EACA,eAAA;EACA,0BAAA;CjDqnKH;AiDjnKD;EACE,YAAA;EACA,iBAAA;CjDmnKD;AiD9mKC;;;EAGE,0BAAA;EACA,eAAA;EACA,oBAAA;CjDgnKH;AiDrnKC;;;EASI,eAAA;CjDinKL;AiD1nKC;;;EAYI,eAAA;CjDmnKL;AiD9mKC;;;EAGE,WAAA;EACA,eAAA;EACA,0BAAA;EACA,sBAAA;CjDgnKH;AiDtnKC;;;;;;;;;EAYI,eAAA;CjDqnKL;AiDjoKC;;;EAeI,eAAA;CjDunKL;AkDztKC;EACE,eAAA;EACA,0BAAA;ClD2tKH;AkDztKG;;EAEE,eAAA;ClD2tKL;AkD7tKG;;EAKI,eAAA;ClD4tKP;AkDztKK;;;;EAEE,eAAA;EACA,0BAAA;ClD6tKP;AkD3tKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDguKP;AkDtvKC;EACE,eAAA;EACA,0BAAA;ClDwvKH;AkDtvKG;;EAEE,eAAA;ClDwvKL;AkD1vKG;;EAKI,eAAA;ClDyvKP;AkDtvKK;;;;EAEE,eAAA;EACA,0BAAA;ClD0vKP;AkDxvKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD6vKP;AkDnxKC;EACE,eAAA;EACA,0BAAA;ClDqxKH;AkDnxKG;;EAEE,eAAA;ClDqxKL;AkDvxKG;;EAKI,eAAA;ClDsxKP;AkDnxKK;;;;EAEE,eAAA;EACA,0BAAA;ClDuxKP;AkDrxKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD0xKP;AkDhzKC;EACE,eAAA;EACA,0BAAA;ClDkzKH;AkDhzKG;;EAEE,eAAA;ClDkzKL;AkDpzKG;;EAKI,eAAA;ClDmzKP;AkDhzKK;;;;EAEE,eAAA;EACA,0BAAA;ClDozKP;AkDlzKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDuzKP;AiDttKD;EACE,cAAA;EACA,mBAAA;CjDwtKD;AiDttKD;EACE,iBAAA;EACA,iBAAA;CjDwtKD;AmDl1KD;EACE,oBAAA;EACA,0BAAA;EACA,8BAAA;EACA,mBAAA;E9C0DA,kDAAA;EACQ,0CAAA;CL2xKT;AmDj1KD;EACE,cAAA;CnDm1KD;AmD90KD;EACE,mBAAA;EACA,qCAAA;EvBpBA,6BAAA;EACC,4BAAA;C5Bq2KF;AmDp1KD;EAMI,eAAA;CnDi1KH;AmD50KD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,eAAA;CnD80KD;AmDl1KD;;;;;EAWI,eAAA;CnD80KH;AmDz0KD;EACE,mBAAA;EACA,0BAAA;EACA,8BAAA;EvBxCA,gCAAA;EACC,+BAAA;C5Bo3KF;AmDn0KD;;EAGI,iBAAA;CnDo0KH;AmDv0KD;;EAMM,oBAAA;EACA,iBAAA;CnDq0KL;AmDj0KG;;EAEI,cAAA;EvBvEN,6BAAA;EACC,4BAAA;C5B24KF;AmD/zKG;;EAEI,iBAAA;EvBvEN,gCAAA;EACC,+BAAA;C5By4KF;AmDx1KD;EvB1DE,2BAAA;EACC,0BAAA;C5Bq5KF;AmD3zKD;EAEI,oBAAA;CnD4zKH;AmDzzKD;EACE,oBAAA;CnD2zKD;AmDnzKD;;;EAII,iBAAA;CnDozKH;AmDxzKD;;;EAOM,mBAAA;EACA,oBAAA;CnDszKL;AmD9zKD;;EvBzGE,6BAAA;EACC,4BAAA;C5B26KF;AmDn0KD;;;;EAmBQ,4BAAA;EACA,6BAAA;CnDszKP;AmD10KD;;;;;;;;EAwBU,4BAAA;CnD4zKT;AmDp1KD;;;;;;;;EA4BU,6BAAA;CnDk0KT;AmD91KD;;EvBjGE,gCAAA;EACC,+BAAA;C5Bm8KF;AmDn2KD;;;;EAyCQ,+BAAA;EACA,gCAAA;CnDg0KP;AmD12KD;;;;;;;;EA8CU,+BAAA;CnDs0KT;AmDp3KD;;;;;;;;EAkDU,gCAAA;CnD40KT;AmD93KD;;;;EA2DI,8BAAA;CnDy0KH;AmDp4KD;;EA+DI,cAAA;CnDy0KH;AmDx4KD;;EAmEI,UAAA;CnDy0KH;AmD54KD;;;;;;;;;;;;EA0EU,eAAA;CnDg1KT;AmD15KD;;;;;;;;;;;;EA8EU,gBAAA;CnD01KT;AmDx6KD;;;;;;;;EAuFU,iBAAA;CnD21KT;AmDl7KD;;;;;;;;EAgGU,iBAAA;CnD41KT;AmD57KD;EAsGI,UAAA;EACA,iBAAA;CnDy1KH;AmD/0KD;EACE,oBAAA;CnDi1KD;AmDl1KD;EAKI,iBAAA;EACA,mBAAA;CnDg1KH;AmDt1KD;EASM,gBAAA;CnDg1KL;AmDz1KD;EAcI,iBAAA;CnD80KH;AmD51KD;;EAkBM,8BAAA;CnD80KL;AmDh2KD;EAuBI,cAAA;CnD40KH;AmDn2KD;EAyBM,iCAAA;CnD60KL;AmDt0KD;EC1PE,sBAAA;CpDmkLD;AoDjkLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDmkLH;AoDtkLC;EAMI,0BAAA;CpDmkLL;AoDzkLC;EASI,eAAA;EACA,0BAAA;CpDmkLL;AoDhkLC;EAEI,6BAAA;CpDikLL;AmDr1KD;EC7PE,sBAAA;CpDqlLD;AoDnlLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDqlLH;AoDxlLC;EAMI,0BAAA;CpDqlLL;AoD3lLC;EASI,eAAA;EACA,0BAAA;CpDqlLL;AoDllLC;EAEI,6BAAA;CpDmlLL;AmDp2KD;EChQE,sBAAA;CpDumLD;AoDrmLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDumLH;AoD1mLC;EAMI,0BAAA;CpDumLL;AoD7mLC;EASI,eAAA;EACA,0BAAA;CpDumLL;AoDpmLC;EAEI,6BAAA;CpDqmLL;AmDn3KD;ECnQE,sBAAA;CpDynLD;AoDvnLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDynLH;AoD5nLC;EAMI,0BAAA;CpDynLL;AoD/nLC;EASI,eAAA;EACA,0BAAA;CpDynLL;AoDtnLC;EAEI,6BAAA;CpDunLL;AmDl4KD;ECtQE,sBAAA;CpD2oLD;AoDzoLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD2oLH;AoD9oLC;EAMI,0BAAA;CpD2oLL;AoDjpLC;EASI,eAAA;EACA,0BAAA;CpD2oLL;AoDxoLC;EAEI,6BAAA;CpDyoLL;AmDj5KD;ECzQE,sBAAA;CpD6pLD;AoD3pLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD6pLH;AoDhqLC;EAMI,0BAAA;CpD6pLL;AoDnqLC;EASI,eAAA;EACA,0BAAA;CpD6pLL;AoD1pLC;EAEI,6BAAA;CpD2pLL;AqD3qLD;EACE,mBAAA;EACA,eAAA;EACA,UAAA;EACA,WAAA;EACA,iBAAA;CrD6qLD;AqDlrLD;;;;;EAYI,mBAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,aAAA;EACA,YAAA;EACA,UAAA;CrD6qLH;AqDxqLD;EACE,uBAAA;CrD0qLD;AqDtqLD;EACE,oBAAA;CrDwqLD;AsDnsLD;EACE,iBAAA;EACA,cAAA;EACA,oBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;EjDwDA,wDAAA;EACQ,gDAAA;CL8oLT;AsD7sLD;EASI,mBAAA;EACA,kCAAA;CtDusLH;AsDlsLD;EACE,cAAA;EACA,mBAAA;CtDosLD;AsDlsLD;EACE,aAAA;EACA,mBAAA;CtDosLD;AuD1tLD;EACE,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,eAAA;EACA,6BAAA;EjCRA,aAAA;EAGA,0BAAA;CtBmuLD;AuD3tLC;;EAEE,eAAA;EACA,sBAAA;EACA,gBAAA;EjCfF,aAAA;EAGA,0BAAA;CtB2uLD;AuDvtLC;EACE,WAAA;EACA,gBAAA;EACA,wBAAA;EACA,UAAA;EACA,yBAAA;CvDytLH;AwD9uLD;EACE,iBAAA;CxDgvLD;AwD5uLD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,kCAAA;EAIA,WAAA;CxD2uLD;AwDxuLC;EnD+GA,sCAAA;EACI,kCAAA;EACC,iCAAA;EACG,8BAAA;EAkER,oDAAA;EAEK,0CAAA;EACG,oCAAA;CL2jLT;AwD9uLC;EnD2GA,mCAAA;EACI,+BAAA;EACC,8BAAA;EACG,2BAAA;CLsoLT;AwDlvLD;EACE,mBAAA;EACA,iBAAA;CxDovLD;AwDhvLD;EACE,mBAAA;EACA,YAAA;EACA,aAAA;CxDkvLD;AwD9uLD;EACE,mBAAA;EACA,0BAAA;EACA,0BAAA;EACA,qCAAA;EACA,mBAAA;EnDaA,iDAAA;EACQ,yCAAA;EmDZR,qCAAA;UAAA,6BAAA;EAEA,WAAA;CxDgvLD;AwD5uLD;EACE,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,0BAAA;CxD8uLD;AwD5uLC;ElCrEA,WAAA;EAGA,yBAAA;CtBkzLD;AwD/uLC;ElCtEA,aAAA;EAGA,0BAAA;CtBszLD;AwD9uLD;EACE,cAAA;EACA,iCAAA;EACA,0BAAA;CxDgvLD;AwD7uLD;EACE,iBAAA;CxD+uLD;AwD3uLD;EACE,UAAA;EACA,wBAAA;CxD6uLD;AwDxuLD;EACE,mBAAA;EACA,cAAA;CxD0uLD;AwDtuLD;EACE,cAAA;EACA,kBAAA;EACA,8BAAA;CxDwuLD;AwD3uLD;EAQI,iBAAA;EACA,iBAAA;CxDsuLH;AwD/uLD;EAaI,kBAAA;CxDquLH;AwDlvLD;EAiBI,eAAA;CxDouLH;AwD/tLD;EACE,mBAAA;EACA,aAAA;EACA,YAAA;EACA,aAAA;EACA,iBAAA;CxDiuLD;AwD/sLD;EAZE;IACE,aAAA;IACA,kBAAA;GxD8tLD;EwD5tLD;InDvEA,kDAAA;IACQ,0CAAA;GLsyLP;EwD3tLD;IAAY,aAAA;GxD8tLX;CACF;AwDztLD;EAFE;IAAY,aAAA;GxD+tLX;CACF;AyD92LD;EACE,mBAAA;EACA,cAAA;EACA,eAAA;ECRA,4DAAA;EAEA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;EDHA,gBAAA;EnCVA,WAAA;EAGA,yBAAA;CtBq4LD;AyD13LC;EnCdA,aAAA;EAGA,0BAAA;CtBy4LD;AyD73LC;EAAW,iBAAA;EAAmB,eAAA;CzDi4L/B;AyDh4LC;EAAW,iBAAA;EAAmB,eAAA;CzDo4L/B;AyDn4LC;EAAW,gBAAA;EAAmB,eAAA;CzDu4L/B;AyDt4LC;EAAW,kBAAA;EAAmB,eAAA;CzD04L/B;AyDt4LD;EACE,iBAAA;EACA,iBAAA;EACA,eAAA;EACA,mBAAA;EACA,0BAAA;EACA,mBAAA;CzDw4LD;AyDp4LD;EACE,mBAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;CzDs4LD;AyDl4LC;EACE,UAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,0BAAA;CzDo4LH;AyDl4LC;EACE,UAAA;EACA,WAAA;EACA,oBAAA;EACA,wBAAA;EACA,0BAAA;CzDo4LH;AyDl4LC;EACE,UAAA;EACA,UAAA;EACA,oBAAA;EACA,wBAAA;EACA,0BAAA;CzDo4LH;AyDl4LC;EACE,SAAA;EACA,QAAA;EACA,iBAAA;EACA,4BAAA;EACA,4BAAA;CzDo4LH;AyDl4LC;EACE,SAAA;EACA,SAAA;EACA,iBAAA;EACA,4BAAA;EACA,2BAAA;CzDo4LH;AyDl4LC;EACE,OAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,6BAAA;CzDo4LH;AyDl4LC;EACE,OAAA;EACA,WAAA;EACA,iBAAA;EACA,wBAAA;EACA,6BAAA;CzDo4LH;AyDl4LC;EACE,OAAA;EACA,UAAA;EACA,iBAAA;EACA,wBAAA;EACA,6BAAA;CzDo4LH;A2Dj+LD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,iBAAA;EACA,aAAA;EDXA,4DAAA;EAEA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;ECAA,gBAAA;EAEA,0BAAA;EACA,qCAAA;UAAA,6BAAA;EACA,0BAAA;EACA,qCAAA;EACA,mBAAA;EtD8CA,kDAAA;EACQ,0CAAA;CLi8LT;A2D5+LC;EAAY,kBAAA;C3D++Lb;A2D9+LC;EAAY,kBAAA;C3Di/Lb;A2Dh/LC;EAAY,iBAAA;C3Dm/Lb;A2Dl/LC;EAAY,mBAAA;C3Dq/Lb;A2Dl/LD;EACE,UAAA;EACA,kBAAA;EACA,gBAAA;EACA,0BAAA;EACA,iCAAA;EACA,2BAAA;C3Do/LD;A2Dj/LD;EACE,kBAAA;C3Dm/LD;A2D3+LC;;EAEE,mBAAA;EACA,eAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;C3D6+LH;A2D1+LD;EACE,mBAAA;C3D4+LD;A2D1+LD;EACE,mBAAA;EACA,YAAA;C3D4+LD;A2Dx+LC;EACE,UAAA;EACA,mBAAA;EACA,uBAAA;EACA,0BAAA;EACA,sCAAA;EACA,cAAA;C3D0+LH;A2Dz+LG;EACE,aAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,0BAAA;C3D2+LL;A2Dx+LC;EACE,SAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,4BAAA;EACA,wCAAA;C3D0+LH;A2Dz+LG;EACE,aAAA;EACA,UAAA;EACA,cAAA;EACA,qBAAA;EACA,4BAAA;C3D2+LL;A2Dx+LC;EACE,UAAA;EACA,mBAAA;EACA,oBAAA;EACA,6BAAA;EACA,yCAAA;EACA,WAAA;C3D0+LH;A2Dz+LG;EACE,aAAA;EACA,SAAA;EACA,mBAAA;EACA,oBAAA;EACA,6BAAA;C3D2+LL;A2Dv+LC;EACE,SAAA;EACA,aAAA;EACA,kBAAA;EACA,sBAAA;EACA,2BAAA;EACA,uCAAA;C3Dy+LH;A2Dx+LG;EACE,aAAA;EACA,WAAA;EACA,sBAAA;EACA,2BAAA;EACA,cAAA;C3D0+LL;A4DnmMD;EACE,mBAAA;C5DqmMD;A4DlmMD;EACE,mBAAA;EACA,iBAAA;EACA,YAAA;C5DomMD;A4DvmMD;EAMI,cAAA;EACA,mBAAA;EvD6KF,0CAAA;EACK,qCAAA;EACG,kCAAA;CLw7LT;A4D9mMD;;EAcM,eAAA;C5DomML;A4D1kMC;EAAA;IvDiKA,uDAAA;IAEK,6CAAA;IACG,uCAAA;IA7JR,oCAAA;IAEQ,4BAAA;IA+GR,4BAAA;IAEQ,oBAAA;GL69LP;E4DxmMG;;IvDmHJ,2CAAA;IACQ,mCAAA;IuDjHF,QAAA;G5D2mML;E4DzmMG;;IvD8GJ,4CAAA;IACQ,oCAAA;IuD5GF,QAAA;G5D4mML;E4D1mMG;;;IvDyGJ,wCAAA;IACQ,gCAAA;IuDtGF,QAAA;G5D6mML;CACF;A4DnpMD;;;EA6CI,eAAA;C5D2mMH;A4DxpMD;EAiDI,QAAA;C5D0mMH;A4D3pMD;;EAsDI,mBAAA;EACA,OAAA;EACA,YAAA;C5DymMH;A4DjqMD;EA4DI,WAAA;C5DwmMH;A4DpqMD;EA+DI,YAAA;C5DwmMH;A4DvqMD;;EAmEI,QAAA;C5DwmMH;A4D3qMD;EAuEI,YAAA;C5DumMH;A4D9qMD;EA0EI,WAAA;C5DumMH;A4D/lMD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,WAAA;EtC9FA,aAAA;EAGA,0BAAA;EsC6FA,gBAAA;EACA,eAAA;EACA,mBAAA;EACA,0CAAA;C5DkmMD;A4D7lMC;EdlGE,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,4BAAA;EACA,uHAAA;C9CksMH;A4DjmMC;EACE,WAAA;EACA,SAAA;EdvGA,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,4BAAA;EACA,uHAAA;C9C2sMH;A4DnmMC;;EAEE,WAAA;EACA,eAAA;EACA,sBAAA;EtCtHF,aAAA;EAGA,0BAAA;CtB0tMD;A4DpoMD;;;;EAsCI,mBAAA;EACA,SAAA;EACA,kBAAA;EACA,WAAA;EACA,sBAAA;C5DomMH;A4D9oMD;;EA8CI,UAAA;EACA,mBAAA;C5DomMH;A4DnpMD;;EAmDI,WAAA;EACA,oBAAA;C5DomMH;A4DxpMD;;EAwDI,YAAA;EACA,aAAA;EACA,eAAA;EACA,mBAAA;C5DomMH;A4D/lMG;EACE,iBAAA;C5DimML;A4D7lMG;EACE,iBAAA;C5D+lML;A4DrlMD;EACE,mBAAA;EACA,aAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;C5DulMD;A4DhmMD;EAYI,sBAAA;EACA,YAAA;EACA,aAAA;EACA,YAAA;EACA,oBAAA;EACA,0BAAA;EACA,oBAAA;EACA,gBAAA;EAWA,0BAAA;EACA,mCAAA;C5D6kMH;A4D5mMD;EAkCI,UAAA;EACA,YAAA;EACA,aAAA;EACA,0BAAA;C5D6kMH;A4DtkMD;EACE,mBAAA;EACA,UAAA;EACA,WAAA;EACA,aAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,eAAA;EACA,mBAAA;EACA,0CAAA;C5DwkMD;A4DvkMC;EACE,kBAAA;C5DykMH;A4DhiMD;EAhCE;;;;IAKI,YAAA;IACA,aAAA;IACA,kBAAA;IACA,gBAAA;G5DkkMH;E4D1kMD;;IAYI,mBAAA;G5DkkMH;E4D9kMD;;IAgBI,oBAAA;G5DkkMH;E4D7jMD;IACE,UAAA;IACA,WAAA;IACA,qBAAA;G5D+jMD;E4D3jMD;IACE,aAAA;G5D6jMD;CACF;A6D3zMC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEE,aAAA;EACA,eAAA;C7Dy1MH;A6Dv1MC;;;;;;;;;;;;;;;EACE,YAAA;C7Du2MH;AiC/2MD;E6BRE,eAAA;EACA,kBAAA;EACA,mBAAA;C9D03MD;AiCj3MD;EACE,wBAAA;CjCm3MD;AiCj3MD;EACE,uBAAA;CjCm3MD;AiC32MD;EACE,yBAAA;CjC62MD;AiC32MD;EACE,0BAAA;CjC62MD;AiC32MD;EACE,mBAAA;CjC62MD;AiC32MD;E8BzBE,YAAA;EACA,mBAAA;EACA,kBAAA;EACA,8BAAA;EACA,UAAA;C/Du4MD;AiCz2MD;EACE,yBAAA;CjC22MD;AiCp2MD;EACE,gBAAA;CjCs2MD;AgEv4MD;EACE,oBAAA;ChEy4MD;AgEn4MD;;;;ECdE,yBAAA;CjEu5MD;AgEl4MD;;;;;;;;;;;;EAYE,yBAAA;ChEo4MD;AgE73MD;EAAA;IChDE,0BAAA;GjEi7MC;EiEh7MD;IAAU,0BAAA;GjEm7MT;EiEl7MD;IAAU,8BAAA;GjEq7MT;EiEp7MD;;IACU,+BAAA;GjEu7MT;CACF;AgEv4MD;EAAA;IAFI,0BAAA;GhE64MD;CACF;AgEv4MD;EAAA;IAFI,2BAAA;GhE64MD;CACF;AgEv4MD;EAAA;IAFI,iCAAA;GhE64MD;CACF;AgEt4MD;EAAA;ICrEE,0BAAA;GjE+8MC;EiE98MD;IAAU,0BAAA;GjEi9MT;EiEh9MD;IAAU,8BAAA;GjEm9MT;EiEl9MD;;IACU,+BAAA;GjEq9MT;CACF;AgEh5MD;EAAA;IAFI,0BAAA;GhEs5MD;CACF;AgEh5MD;EAAA;IAFI,2BAAA;GhEs5MD;CACF;AgEh5MD;EAAA;IAFI,iCAAA;GhEs5MD;CACF;AgE/4MD;EAAA;IC1FE,0BAAA;GjE6+MC;EiE5+MD;IAAU,0BAAA;GjE++MT;EiE9+MD;IAAU,8BAAA;GjEi/MT;EiEh/MD;;IACU,+BAAA;GjEm/MT;CACF;AgEz5MD;EAAA;IAFI,0BAAA;GhE+5MD;CACF;AgEz5MD;EAAA;IAFI,2BAAA;GhE+5MD;CACF;AgEz5MD;EAAA;IAFI,iCAAA;GhE+5MD;CACF;AgEx5MD;EAAA;IC/GE,0BAAA;GjE2gNC;EiE1gND;IAAU,0BAAA;GjE6gNT;EiE5gND;IAAU,8BAAA;GjE+gNT;EiE9gND;;IACU,+BAAA;GjEihNT;CACF;AgEl6MD;EAAA;IAFI,0BAAA;GhEw6MD;CACF;AgEl6MD;EAAA;IAFI,2BAAA;GhEw6MD;CACF;AgEl6MD;EAAA;IAFI,iCAAA;GhEw6MD;CACF;AgEj6MD;EAAA;IC5HE,yBAAA;GjEiiNC;CACF;AgEj6MD;EAAA;ICjIE,yBAAA;GjEsiNC;CACF;AgEj6MD;EAAA;ICtIE,yBAAA;GjE2iNC;CACF;AgEj6MD;EAAA;IC3IE,yBAAA;GjEgjNC;CACF;AgE95MD;ECnJE,yBAAA;CjEojND;AgE35MD;EAAA;ICjKE,0BAAA;GjEgkNC;EiE/jND;IAAU,0BAAA;GjEkkNT;EiEjkND;IAAU,8BAAA;GjEokNT;EiEnkND;;IACU,+BAAA;GjEskNT;CACF;AgEz6MD;EACE,yBAAA;ChE26MD;AgEt6MD;EAAA;IAFI,0BAAA;GhE46MD;CACF;AgE16MD;EACE,yBAAA;ChE46MD;AgEv6MD;EAAA;IAFI,2BAAA;GhE66MD;CACF;AgE36MD;EACE,yBAAA;ChE66MD;AgEx6MD;EAAA;IAFI,iCAAA;GhE86MD;CACF;AgEv6MD;EAAA;ICpLE,yBAAA;GjE+lNC;CACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('../fonts/glyphicons-halflings-regular.eot');\n 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');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\2a\";\n}\n.glyphicon-plus:before {\n content: \"\\2b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #ffffff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n background-color: #fcf8e3;\n padding: .2em;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #ffffff;\n background-color: #333333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333333;\n background-color: #f5f5f5;\n border: 1px solid #cccccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.row {\n margin-left: -15px;\n margin-right: -15px;\n}\n.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 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.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 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .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 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .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 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .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 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #dddddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #dddddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #dddddd;\n}\n.table .table {\n background-color: #ffffff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #dddddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n min-width: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #ffffff;\n background-image: none;\n border: 1px solid #cccccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999999;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n min-height: 34px;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-left: 0;\n padding-right: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n border-color: #3c763d;\n background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n border-color: #8a6d3b;\n background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n border-color: #a94442;\n background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: 7px;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 14.333333px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333333;\n background-color: #ffffff;\n border-color: #cccccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #ffffff;\n border-color: #cccccc;\n}\n.btn-default .badge {\n color: #ffffff;\n background-color: #333333;\n}\n.btn-primary {\n color: #ffffff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #ffffff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #ffffff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #ffffff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #ffffff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #ffffff;\n}\n.btn-success {\n color: #ffffff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #ffffff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #ffffff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #ffffff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #ffffff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #ffffff;\n}\n.btn-info {\n color: #ffffff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #ffffff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #ffffff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #ffffff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #ffffff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #ffffff;\n}\n.btn-warning {\n color: #ffffff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #ffffff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #ffffff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #ffffff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #ffffff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #ffffff;\n}\n.btn-danger {\n color: #ffffff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #ffffff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #ffffff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #ffffff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #ffffff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #ffffff;\n}\n.btn-link {\n color: #337ab7;\n font-weight: normal;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n list-style: none;\n font-size: 14px;\n text-align: left;\n background-color: #ffffff;\n border: 1px solid #cccccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n text-decoration: none;\n color: #262626;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #ffffff;\n text-decoration: none;\n outline: 0;\n background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n cursor: not-allowed;\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n left: auto;\n right: 0;\n}\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-bottom-left-radius: 4px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #cccccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n margin-bottom: 0;\n padding-left: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #dddddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #dddddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-bottom-color: transparent;\n cursor: default;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #dddddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #dddddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #ffffff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #ffffff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #dddddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #dddddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #ffffff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n overflow-x: visible;\n padding-right: 15px;\n padding-left: 15px;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-left: 0;\n padding-right: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n height: 50px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: 15px;\n padding: 9px 10px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n margin-left: -15px;\n margin-right: -15px;\n padding: 10px 15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-left: 15px;\n margin-right: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #cccccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #dddddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #dddddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n background-color: #e7e7e7;\n color: #555555;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #cccccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777777;\n}\n.navbar-default .navbar-link:hover {\n color: #333333;\n}\n.navbar-default .btn-link {\n color: #777777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #cccccc;\n}\n.navbar-inverse {\n background-color: #222222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #ffffff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #ffffff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #ffffff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #ffffff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n background-color: #080808;\n color: #ffffff;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #ffffff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #ffffff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #ffffff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #ffffff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n content: \"/\\00a0\";\n padding: 0 5px;\n color: #cccccc;\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n line-height: 1.42857143;\n text-decoration: none;\n color: #337ab7;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 3;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #dddddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 2;\n color: #ffffff;\n background-color: #337ab7;\n border-color: #337ab7;\n cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n background-color: #ffffff;\n border-color: #dddddd;\n cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n list-style: none;\n text-align: center;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n background-color: #ffffff;\n cursor: not-allowed;\n}\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #ffffff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n color: #ffffff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #ffffff;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #ffffff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #ffffff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n border-radius: 6px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-left: 60px;\n padding-right: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-left: auto;\n margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n color: #3c763d;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n background-color: #d9edf7;\n border-color: #bce8f1;\n color: #31708f;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n background-color: #fcf8e3;\n border-color: #faebcc;\n color: #8a6d3b;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n background-color: #f2dede;\n border-color: #ebccd1;\n color: #a94442;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n overflow: hidden;\n height: 20px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #ffffff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n 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);\n 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);\n 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);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n 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);\n 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);\n 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);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n 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);\n 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);\n 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);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n 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);\n 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);\n 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);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n 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);\n 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);\n 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);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n margin-bottom: 20px;\n padding-left: 0;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n}\n.list-group-item:first-child {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n text-decoration: none;\n color: #555555;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n background-color: #eeeeee;\n color: #777777;\n cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #ffffff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #ffffff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #dddddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-left: 15px;\n padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #dddddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n border: 0;\n margin-bottom: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #dddddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #dddddd;\n}\n.panel-default {\n border-color: #dddddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #dddddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #dddddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #dddddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #ffffff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #ffffff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000000;\n text-shadow: 0 1px 0 #ffffff;\n opacity: 0.2;\n filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n color: #000000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #ffffff;\n border: 1px solid #999999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-clip: padding-box;\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n min-height: 16.42857143px;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 12px;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.tooltip.in {\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.tooltip.top {\n margin-top: -3px;\n padding: 5px 0;\n}\n.tooltip.right {\n margin-left: 3px;\n padding: 0 5px;\n}\n.tooltip.bottom {\n margin-top: 3px;\n padding: 5px 0;\n}\n.tooltip.left {\n margin-left: -3px;\n padding: 0 5px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #ffffff;\n text-align: center;\n background-color: #000000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.top-left .tooltip-arrow {\n bottom: 0;\n right: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 14px;\n background-color: #ffffff;\n background-clip: padding-box;\n border: 1px solid #cccccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n margin: 0;\n padding: 8px 14px;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n border-width: 10px;\n content: \"\";\n}\n.popover.top > .arrow {\n left: 50%;\n margin-left: -11px;\n border-bottom-width: 0;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n bottom: -11px;\n}\n.popover.top > .arrow:after {\n content: \" \";\n bottom: 1px;\n margin-left: -10px;\n border-bottom-width: 0;\n border-top-color: #ffffff;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-left-width: 0;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n content: \" \";\n left: 1px;\n bottom: -10px;\n border-left-width: 0;\n border-right-color: #ffffff;\n}\n.popover.bottom > .arrow {\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n top: -11px;\n}\n.popover.bottom > .arrow:after {\n content: \" \";\n top: 1px;\n margin-left: -10px;\n border-top-width: 0;\n border-bottom-color: #ffffff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: #ffffff;\n bottom: -10px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.carousel-inner > .item {\n display: none;\n position: relative;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 15%;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-size: 20px;\n color: #ffffff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n outline: 0;\n color: #ffffff;\n text-decoration: none;\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid #ffffff;\n border-radius: 10px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: #ffffff;\n}\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #ffffff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -15px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -15px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important; // Black prints faster: h5bp.com/s\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// Star\n\n// Import the fonts\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('@{icon-font-path}@{icon-font-name}.eot');\n src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),\n url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),\n url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),\n url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),\n url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\2a\"; } }\n.glyphicon-plus { &:before { content: \"\\2b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They will be removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n // Default\n outline: thin dotted;\n // WebKit\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: normal;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 300;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n background-color: @state-warning-bg;\n padding: .2em;\n}\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n.text-nowrap { white-space: nowrap; }\n\n// Transformation\n.text-lowercase { text-transform: lowercase; }\n.text-uppercase { text-transform: uppercase; }\n.text-capitalize { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n dd {\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n\n @media (min-width: @grid-float-breakpoint) {\n dt {\n float: left;\n width: (@dl-horizontal-offset - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @dl-horizontal-offset;\n }\n }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n font-size: 90%;\n .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: '\\2014 \\00A0'; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n text-align: right;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: ''; }\n &:after {\n content: '\\00A0 \\2014'; // nbsp, em dash\n }\n }\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover,\n a&:focus {\n color: darken(@color, 10%);\n }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n background-color: @color;\n a&:hover,\n a&:focus {\n background-color: darken(@color, 10%);\n }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n }\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n word-break: break-all;\n word-wrap: break-word;\n color: @pre-color;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n margin-right: auto;\n margin-left: auto;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: ceil((@gutter / -2));\n margin-right: floor((@gutter / -2));\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: ceil((@grid-gutter-width / 2));\n padding-right: floor((@grid-gutter-width / 2));\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n .col-@{class}-push-0 {\n left: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n .col-@{class}-pull-0 {\n right: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n background-color: @table-bg;\n}\ncaption {\n padding-top: @table-cell-padding;\n padding-bottom: @table-cell-padding;\n color: @text-muted;\n text-align: left;\n}\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(odd) {\n background-color: @table-bg-accent;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n background-color: @table-bg-hover;\n }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-column;\n}\ntable {\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-cell;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n @media screen and (max-width: @screen-xs-max) {\n width: 100%;\n margin-bottom: (@line-height-computed * 0.75);\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &:hover > .@{state},\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n margin-bottom: 5px;\n font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n}\n\ninput[type=\"file\"] {\n display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n .tab-focus();\n}\n\n// Adjust output element\noutput {\n display: block;\n padding-top: (@padding-base-vertical + 1);\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n display: block;\n width: 100%;\n height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n background-color: @input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid @input-border;\n border-radius: @input-border-radius; // Note: This has no effect on s in CSS.\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n // Customize the `:focus` state to imitate native WebKit styles.\n .form-control-focus();\n\n // Placeholder\n .placeholder();\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &[disabled],\n &[readonly],\n fieldset[disabled] & {\n background-color: @input-bg-disabled;\n opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n }\n\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n\n // Reset height for `textarea`s\n textarea& {\n height: auto;\n }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 8.3, iOS doesn't support `datetime` or `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"],\n input[type=\"time\"],\n input[type=\"datetime-local\"],\n input[type=\"month\"] {\n &.form-control {\n line-height: @input-height-base;\n }\n\n &.input-sm,\n .input-group-sm & {\n line-height: @input-height-small;\n }\n\n &.input-lg,\n .input-group-lg & {\n line-height: @input-height-large;\n }\n }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: @form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n\n label {\n min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n// Some special care is needed because