├── portal ├── __init__.py ├── migrations │ ├── __init__.py │ ├── 0002_auto_20170712_1441.py │ ├── 0003_auto_20170712_1441.py │ ├── 0004_auto_20170713_1325.py │ └── 0001_initial.py ├── static │ ├── img │ │ ├── bg.jpg │ │ ├── i1.jpg │ │ ├── banner.jpg │ │ ├── favicon.png │ │ ├── overlay.png │ │ └── iiitalogo.jpg │ ├── js │ │ ├── main.js │ │ ├── skel.min.js │ │ ├── jquery.poptrox.min.js │ │ └── util.js │ └── css │ │ ├── fill_feedback(main).css │ │ └── student_view.css ├── tests.py ├── urls.py ├── apps.py ├── forms.py ├── admin.py ├── templates │ ├── portal │ │ ├── base.html │ │ ├── student_view(archive).html │ │ ├── index.html │ │ └── student_view.html │ └── registration │ │ └── login.html ├── views.py └── models.py ├── geekhaven ├── __init__.py ├── wsgi.py ├── urls.py └── settings.py ├── requirements.txt ├── .gitignore └── manage.py /portal/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /geekhaven/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portal/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Django==1.11.4 2 | django-widget-tweaks==1.4.1 3 | pytz==2017.2 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *~ 3 | __pycache__ 4 | venvir 5 | db.sqlite3 6 | /static 7 | .DS_Store 8 | -------------------------------------------------------------------------------- /portal/static/img/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/feedback-portal/master/portal/static/img/bg.jpg -------------------------------------------------------------------------------- /portal/static/img/i1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/feedback-portal/master/portal/static/img/i1.jpg -------------------------------------------------------------------------------- /portal/static/img/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/feedback-portal/master/portal/static/img/banner.jpg -------------------------------------------------------------------------------- /portal/static/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/feedback-portal/master/portal/static/img/favicon.png -------------------------------------------------------------------------------- /portal/static/img/overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/feedback-portal/master/portal/static/img/overlay.png -------------------------------------------------------------------------------- /portal/static/img/iiitalogo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fossiiita/feedback-portal/master/portal/static/img/iiitalogo.jpg -------------------------------------------------------------------------------- /portal/tests.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.test import TestCase 5 | 6 | # Create your tests here. 7 | -------------------------------------------------------------------------------- /portal/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import url 2 | from . import views 3 | urlpatterns = [ 4 | url(r'^$', views.home, name="home"), 5 | url(r'^fill/$', views.fill, name="fill"), 6 | ] -------------------------------------------------------------------------------- /portal/apps.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.apps import AppConfig 5 | 6 | 7 | class PortalConfig(AppConfig): 8 | name = 'portal' 9 | -------------------------------------------------------------------------------- /portal/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | from models import Feedback_Theory 3 | 4 | class Feedback_Theoryform(forms.ModelForm): 5 | 6 | class Meta: 7 | model = Feedback_Theory 8 | exclude = ['feedback_given_at','user'] -------------------------------------------------------------------------------- /geekhaven/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for geekhaven project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "geekhaven.settings") 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /portal/admin.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.contrib import admin 5 | from .models import Student, Professor, Course, Professor_And_Students, Feedback_Theory, Feedback_Lab, Permissions 6 | # Register your models here. 7 | admin.site.register(Student) 8 | admin.site.register(Professor) 9 | admin.site.register(Course) 10 | admin.site.register(Professor_And_Students) 11 | admin.site.register(Feedback_Theory) 12 | admin.site.register(Feedback_Lab) 13 | admin.site.register(Permissions) -------------------------------------------------------------------------------- /portal/migrations/0002_auto_20170712_1441.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.11 on 2017-07-12 09:11 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('portal', '0001_initial'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AlterField( 16 | model_name='professor', 17 | name='dean_or_director', 18 | field=models.BooleanField(default=True), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /portal/migrations/0003_auto_20170712_1441.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.11 on 2017-07-12 09:11 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('portal', '0002_auto_20170712_1441'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AlterField( 16 | model_name='professor', 17 | name='dean_or_director', 18 | field=models.BooleanField(default=False), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /portal/migrations/0004_auto_20170713_1325.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.11 on 2017-07-13 07:55 3 | from __future__ import unicode_literals 4 | 5 | from django.db import migrations, models 6 | 7 | 8 | class Migration(migrations.Migration): 9 | 10 | dependencies = [ 11 | ('portal', '0003_auto_20170712_1441'), 12 | ] 13 | 14 | operations = [ 15 | migrations.AlterField( 16 | model_name='feedback_lab', 17 | name='textual_question_2', 18 | field=models.CharField(max_length=600), 19 | ), 20 | ] 21 | -------------------------------------------------------------------------------- /portal/templates/portal/base.html: -------------------------------------------------------------------------------- 1 | {% load staticfiles %} 2 | 3 | 4 | 5 | {% block title %}{% endblock %} 6 | 7 | 8 | 9 | 10 | {% block extend_head %}{% endblock %} 11 | 12 | 13 | {% block content %} 14 | {% endblock %} 15 | 16 | 17 | -------------------------------------------------------------------------------- /portal/views.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.shortcuts import render 5 | from django.http import HttpResponse 6 | from forms import Feedback_Theoryform 7 | # Create your views here. 8 | def home(request): 9 | return render(request, 'portal/home.html', {}) 10 | 11 | #def student(request): 12 | # return render(request, 'portal/student_view.html', {}) 13 | 14 | def fill(request): 15 | if request.method == "POST": 16 | form = Feedback_Theoryform(request.POST) 17 | if form.is_valid(): 18 | detail = form.save(commit=False) 19 | detail.user = request.user 20 | detail.save() 21 | return HttpResponse("done") 22 | else: 23 | form = Feedback_Theoryform() 24 | return render(request, 'portal/student_view.html', {"form":form}) -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "geekhaven.settings") 7 | try: 8 | from django.core.management import execute_from_command_line 9 | except ImportError: 10 | # The above import may fail for some other reason. Ensure that the 11 | # issue is really that Django is missing to avoid masking other 12 | # exceptions on Python 2. 13 | try: 14 | import django 15 | except ImportError: 16 | raise ImportError( 17 | "Couldn't import Django. Are you sure it's installed and " 18 | "available on your PYTHONPATH environment variable? Did you " 19 | "forget to activate a virtual environment?" 20 | ) 21 | raise 22 | execute_from_command_line(sys.argv) 23 | -------------------------------------------------------------------------------- /geekhaven/urls.py: -------------------------------------------------------------------------------- 1 | """geekhaven URL Configuration 2 | 3 | The `urlpatterns` list routes URLs to views. For more information please see: 4 | https://docs.djangoproject.com/en/1.11/topics/http/urls/ 5 | Examples: 6 | Function views 7 | 1. Add an import: from my_app import views 8 | 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') 9 | Class-based views 10 | 1. Add an import: from other_app.views import Home 11 | 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') 12 | Including another URLconf 13 | 1. Import the include() function: from django.conf.urls import url, include 14 | 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) 15 | """ 16 | from django.conf.urls import include, url 17 | from django.contrib import admin 18 | from django.contrib.auth import views as auth_views 19 | 20 | urlpatterns = [ 21 | url(r'^$', auth_views.login, name='login'), 22 | url(r'^logout/$', auth_views.logout, name='logout'), 23 | url(r'', include('portal.urls')), 24 | url(r'^admin/', admin.site.urls), 25 | ] 26 | -------------------------------------------------------------------------------- /portal/models.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from __future__ import unicode_literals 3 | 4 | from django.db import models 5 | from django.conf import settings 6 | # Create your models here. 7 | class Student(models.Model): 8 | user = models.ForeignKey(settings.AUTH_USER_MODEL) 9 | semester = models.IntegerField() 10 | 11 | def __str__(self): 12 | return self.user.username 13 | 14 | class Professor(models.Model): 15 | user = models.ForeignKey(settings.AUTH_USER_MODEL) 16 | dean_or_director = models.BooleanField(default=False) 17 | 18 | def __str__(self): 19 | return self.user.username 20 | 21 | class Course(models.Model): 22 | name = models.CharField(max_length=200) 23 | code = models.CharField(max_length=100) 24 | assigned_to_professor = models.ManyToManyField(Professor) 25 | students_of_course = models.ManyToManyField(Student) 26 | is_course_lab = models.BooleanField(default=False) 27 | 28 | def __str__(self): 29 | return self.name 30 | class Professor_And_Students(models.Model): 31 | course_name = models.ForeignKey(Course) 32 | professor = models.ForeignKey(Professor) 33 | students = models.ManyToManyField(Student) 34 | 35 | def __str__(self): 36 | return self.course_name.name + ' - ' + self.professor.user.username 37 | 38 | class Feedback_Theory(models.Model): 39 | user = models.ForeignKey(settings.AUTH_USER_MODEL) 40 | student = models.ForeignKey(Professor_And_Students) 41 | mcq_1 = models.IntegerField() 42 | mcq_2 = models.IntegerField() 43 | mcq_3 = models.IntegerField() 44 | textual_question_1 = models.CharField(max_length=500) 45 | textual_question_2 = models.CharField(max_length=500) 46 | feedback_given_at = models.DateTimeField(auto_now_add=True) 47 | 48 | def __str__(self): 49 | return self.student.course_name.name + ' - ' + self.student.professor.user.username 50 | 51 | class Feedback_Lab(models.Model): 52 | student = models.ForeignKey(Professor_And_Students) 53 | mcq_1 = models.IntegerField() 54 | mcq_2 = models.IntegerField() 55 | mcq_3 = models.IntegerField() 56 | textual_question_1 = models.CharField(max_length=500) 57 | textual_question_2 = models.CharField(max_length=600) 58 | feedback_given_at = models.DateTimeField(auto_now_add=True) 59 | 60 | def __str__(self): 61 | return self.student.course_name.name + ' - ' + self.student.professor.user.username 62 | 63 | class Permissions(models.Model): 64 | user = models.ForeignKey(settings.AUTH_USER_MODEL) 65 | dean_or_director = models.BooleanField(default=False) 66 | 67 | class Meta: 68 | permissions = (("can_view_superview", "can view superview"), 69 | ("can_view_normalview", "can view normalview"), 70 | ) 71 | def __str__(self): 72 | return self.user.username -------------------------------------------------------------------------------- /portal/templates/registration/login.html: -------------------------------------------------------------------------------- 1 | {% extends 'portal/base.html' %} 2 | {% load staticfiles %} 3 | {% load widget_tweaks %} 4 | {% block title %}Portal-Login{% endblock %} 5 | {% block extend_head %} 6 | 7 | {% endblock %} 8 | {% block content %} 9 | 10 | 32 | 33 | 34 |
35 | 36 |
37 | 38 |
39 |

40 |

Welcome to IIIT Allahabad Faculty Feedback Portal

41 |
42 |

Guidelines for submitting feedback

43 |

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris egestas venenatis purus, ut aliquet lectus semper non. Aenean molestie, augue sed elementum pellentesque, quam arcu finibus libero, ut vulputate arcu elit a enim. Sed felis arcu, scelerisque vel ornare a, vestibulum nec enim. Nulla euismod vehicula arcu, consectetur euismod lacus condimentum fringilla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum gravida diam et purus

44 |
45 | 46 | 47 |
48 | 49 | 50 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 69 | {% endblock %} -------------------------------------------------------------------------------- /portal/templates/portal/student_view(archive).html: -------------------------------------------------------------------------------- 1 | {% extends 'portal/base.html' %} 2 | {% load staticfiles %} 3 | {% load widget_tweaks %} 4 | {% block title %}Portal-View{% endblock %} 5 | {% block extend_head %} 6 | 7 | {% endblock %} 8 | {% block content %} 9 | 10 | 24 | 25 | 26 |
27 | 28 | 29 |
30 |
31 |

Courses You Are Currently Enrolled In

32 |

Click On The Respective Course To Give Feedback

33 |
34 |
35 | 36 |
37 |
38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 |
Serial No.Course CodeCourse NameProfessorFeedback Status
1IDST230CData StructureDr. Rahul KalaNot Given
2IDST230CData StructureDr. Rahul KalaNot Given
3IDST230CData StructureDr. Rahul KalaNot Given
4IDST230CData StructureDr. Rahul KalaNot Given
5IDST230CData StructureDr. Rahul KalaNot Given
86 |
87 |
88 |
89 | 90 | 91 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | {% endblock %} -------------------------------------------------------------------------------- /portal/static/js/main.js: -------------------------------------------------------------------------------- 1 | /* 2 | Strata by HTML5 UP 3 | html5up.net | @ajlkn 4 | Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 5 | */ 6 | 7 | (function($) { 8 | 9 | var settings = { 10 | 11 | // Parallax background effect? 12 | parallax: true, 13 | 14 | // Parallax factor (lower = more intense, higher = less intense). 15 | parallaxFactor: 20 16 | 17 | }; 18 | 19 | skel.breakpoints({ 20 | xlarge: '(max-width: 1800px)', 21 | large: '(max-width: 1280px)', 22 | medium: '(max-width: 980px)', 23 | small: '(max-width: 736px)', 24 | xsmall: '(max-width: 480px)' 25 | }); 26 | 27 | $(function() { 28 | 29 | var $window = $(window), 30 | $body = $('body'), 31 | $header = $('#header'), 32 | $footer = $('#footer'), 33 | $main = $('#main'); 34 | 35 | // Disable animations/transitions until the page has loaded. 36 | $body.addClass('is-loading'); 37 | 38 | $window.on('load', function() { 39 | $body.removeClass('is-loading'); 40 | }); 41 | 42 | // Touch? 43 | if (skel.vars.mobile) { 44 | 45 | // Turn on touch mode. 46 | $body.addClass('is-touch'); 47 | 48 | // Height fix (mostly for iOS). 49 | window.setTimeout(function() { 50 | $window.scrollTop($window.scrollTop() + 1); 51 | }, 0); 52 | 53 | } 54 | 55 | // Fix: Placeholder polyfill. 56 | $('form').placeholder(); 57 | 58 | // Prioritize "important" elements on medium. 59 | skel.on('+medium -medium', function() { 60 | $.prioritize( 61 | '.important\\28 medium\\29', 62 | skel.breakpoint('medium').active 63 | ); 64 | }); 65 | 66 | // Footer. 67 | skel.on('+medium', function() { 68 | $footer.insertAfter($main); 69 | }); 70 | 71 | skel.on('-medium !medium', function() { 72 | $footer.appendTo($header); 73 | }); 74 | 75 | // Header. 76 | 77 | // Parallax background. 78 | 79 | // Disable parallax on IE (smooth scrolling is jerky), and on mobile platforms (= better performance). 80 | if (skel.vars.browser == 'ie' 81 | || skel.vars.mobile) 82 | settings.parallax = false; 83 | 84 | if (settings.parallax) { 85 | 86 | skel.on('change', function() { 87 | 88 | if (skel.breakpoint('medium').active) { 89 | 90 | $window.off('scroll.strata_parallax'); 91 | $header.css('background-position', 'top left, center center'); 92 | 93 | } 94 | else { 95 | 96 | $header.css('background-position', 'left 0px'); 97 | 98 | $window.on('scroll.strata_parallax', function() { 99 | $header.css('background-position', 'left ' + (-1 * (parseInt($window.scrollTop()) / settings.parallaxFactor)) + 'px'); 100 | }); 101 | 102 | } 103 | 104 | }); 105 | 106 | $window.on('load', function() { 107 | $window.triggerHandler('scroll'); 108 | }); 109 | 110 | } 111 | 112 | // Main Sections: Two. 113 | 114 | // Lightbox gallery. 115 | $window.on('load', function() { 116 | 117 | $('#two').poptrox({ 118 | caption: function($a) { return $a.next('h3').text(); }, 119 | overlayColor: '#2c2c2c', 120 | overlayOpacity: 0.85, 121 | popupCloserText: '', 122 | popupLoaderText: '', 123 | selector: '.work-item a.image', 124 | usePopupCaption: true, 125 | usePopupDefaultStyling: false, 126 | usePopupEasyClose: false, 127 | usePopupNav: true, 128 | windowMargin: (skel.breakpoint('small').active ? 0 : 50) 129 | }); 130 | 131 | }); 132 | 133 | }); 134 | 135 | })(jQuery); -------------------------------------------------------------------------------- /geekhaven/settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for geekhaven project. 3 | 4 | Generated by 'django-admin startproject' using Django 1.11. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/1.11/topics/settings/ 8 | 9 | For the full list of settings and their values, see 10 | https://docs.djangoproject.com/en/1.11/ref/settings/ 11 | """ 12 | 13 | import os 14 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 15 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 16 | 17 | 18 | # Quick-start development settings - unsuitable for production 19 | # See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ 20 | 21 | # SECURITY WARNING: keep the secret key used in production secret! 22 | SECRET_KEY = '*aa$pbdwd715-t*8v6w%1(r*w0!q#n3$o&zhs54&$axwb(u96#' 23 | 24 | # SECURITY WARNING: don't run with debug turned on in production! 25 | DEBUG = True 26 | 27 | ALLOWED_HOSTS = [] 28 | 29 | 30 | # Application definition 31 | 32 | INSTALLED_APPS = [ 33 | 'django.contrib.admin', 34 | 'django.contrib.auth', 35 | 'django.contrib.contenttypes', 36 | 'django.contrib.sessions', 37 | 'django.contrib.messages', 38 | 'django.contrib.staticfiles', 39 | 'portal', 40 | 'widget_tweaks' 41 | ] 42 | 43 | MIDDLEWARE = [ 44 | 'django.middleware.security.SecurityMiddleware', 45 | 'django.contrib.sessions.middleware.SessionMiddleware', 46 | 'django.middleware.common.CommonMiddleware', 47 | 'django.middleware.csrf.CsrfViewMiddleware', 48 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 49 | 'django.contrib.messages.middleware.MessageMiddleware', 50 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 51 | ] 52 | 53 | ROOT_URLCONF = 'geekhaven.urls' 54 | 55 | TEMPLATES = [ 56 | { 57 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 58 | 'DIRS': [], 59 | 'APP_DIRS': True, 60 | 'OPTIONS': { 61 | 'context_processors': [ 62 | 'django.template.context_processors.debug', 63 | 'django.template.context_processors.request', 64 | 'django.contrib.auth.context_processors.auth', 65 | 'django.contrib.messages.context_processors.messages', 66 | ], 67 | }, 68 | }, 69 | ] 70 | 71 | WSGI_APPLICATION = 'geekhaven.wsgi.application' 72 | 73 | 74 | # Database 75 | # https://docs.djangoproject.com/en/1.11/ref/settings/#databases 76 | 77 | DATABASES = { 78 | 'default': { 79 | 'ENGINE': 'django.db.backends.sqlite3', 80 | 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 81 | } 82 | } 83 | 84 | 85 | # Password validation 86 | # https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators 87 | 88 | AUTH_PASSWORD_VALIDATORS = [ 89 | { 90 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 91 | }, 92 | { 93 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 94 | }, 95 | { 96 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 97 | }, 98 | { 99 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 100 | }, 101 | ] 102 | 103 | # Internationalization 104 | # https://docs.djangoproject.com/en/1.11/topics/i18n/ 105 | 106 | LOGIN_REDIRECT_URL = '/view' 107 | 108 | LANGUAGE_CODE = 'en-us' 109 | 110 | TIME_ZONE = 'Asia/Kolkata' 111 | 112 | USE_I18N = True 113 | 114 | USE_L10N = True 115 | 116 | USE_TZ = True 117 | 118 | 119 | # Static files (CSS, JavaScript, Images) 120 | # https://docs.djangoproject.com/en/1.11/howto/static-files/ 121 | 122 | STATIC_URL = '/static/' 123 | STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') 124 | STATICFILES_DIRS = ( 125 | os.path.join(BASE_DIR, 'portfolio/static'), 126 | ) -------------------------------------------------------------------------------- /portal/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Generated by Django 1.11 on 2017-07-12 09:11 3 | from __future__ import unicode_literals 4 | 5 | from django.conf import settings 6 | from django.db import migrations, models 7 | import django.db.models.deletion 8 | 9 | 10 | class Migration(migrations.Migration): 11 | 12 | initial = True 13 | 14 | dependencies = [ 15 | migrations.swappable_dependency(settings.AUTH_USER_MODEL), 16 | ] 17 | 18 | operations = [ 19 | migrations.CreateModel( 20 | name='Course', 21 | fields=[ 22 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 23 | ('name', models.CharField(max_length=200)), 24 | ('code', models.CharField(max_length=100)), 25 | ('is_course_lab', models.BooleanField(default=False)), 26 | ], 27 | ), 28 | migrations.CreateModel( 29 | name='Feedback_Lab', 30 | fields=[ 31 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 32 | ('mcq_1', models.IntegerField()), 33 | ('mcq_2', models.IntegerField()), 34 | ('mcq_3', models.IntegerField()), 35 | ('textual_question_1', models.CharField(max_length=500)), 36 | ('textual_question_2', models.CharField(max_length=500)), 37 | ('feedback_given_at', models.DateTimeField(auto_now_add=True)), 38 | ], 39 | ), 40 | migrations.CreateModel( 41 | name='Feedback_Theory', 42 | fields=[ 43 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 44 | ('mcq_1', models.IntegerField()), 45 | ('mcq_2', models.IntegerField()), 46 | ('mcq_3', models.IntegerField()), 47 | ('textual_question_1', models.CharField(max_length=500)), 48 | ('textual_question_2', models.CharField(max_length=500)), 49 | ('feedback_given_at', models.DateTimeField(auto_now_add=True)), 50 | ], 51 | ), 52 | migrations.CreateModel( 53 | name='Permissions', 54 | fields=[ 55 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 56 | ('dean_or_director', models.BooleanField(default=False)), 57 | ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), 58 | ], 59 | options={ 60 | 'permissions': (('can_view_superview', 'can view superview'), ('can_view_normalview', 'can view normalview')), 61 | }, 62 | ), 63 | migrations.CreateModel( 64 | name='Professor', 65 | fields=[ 66 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 67 | ('dean_or_director', models.BooleanField(default=False)), 68 | ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), 69 | ], 70 | ), 71 | migrations.CreateModel( 72 | name='Professor_And_Students', 73 | fields=[ 74 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 75 | ('course_name', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portal.Course')), 76 | ('professor', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portal.Professor')), 77 | ], 78 | ), 79 | migrations.CreateModel( 80 | name='Student', 81 | fields=[ 82 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 83 | ('semester', models.IntegerField()), 84 | ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), 85 | ], 86 | ), 87 | migrations.AddField( 88 | model_name='professor_and_students', 89 | name='students', 90 | field=models.ManyToManyField(to='portal.Student'), 91 | ), 92 | migrations.AddField( 93 | model_name='feedback_theory', 94 | name='student', 95 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portal.Professor_And_Students'), 96 | ), 97 | migrations.AddField( 98 | model_name='feedback_theory', 99 | name='user', 100 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), 101 | ), 102 | migrations.AddField( 103 | model_name='feedback_lab', 104 | name='student', 105 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='portal.Professor_And_Students'), 106 | ), 107 | migrations.AddField( 108 | model_name='course', 109 | name='assigned_to_professor', 110 | field=models.ManyToManyField(to='portal.Professor'), 111 | ), 112 | migrations.AddField( 113 | model_name='course', 114 | name='students_of_course', 115 | field=models.ManyToManyField(to='portal.Student'), 116 | ), 117 | ] 118 | -------------------------------------------------------------------------------- /portal/static/css/fill_feedback(main).css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2015 Google Inc. All Rights Reserved. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* 18 | Note: any .css or .scss files included in the 'styles' directory 19 | will be correctly compiled during `gulp serve` and `gulp` 20 | */ 21 | 22 | html, body { 23 | font-family: 'Roboto', 'Helvetica', sans-serif; 24 | margin: 0; 25 | padding: 0; 26 | background-image: url("../img/banner.jpg"); 27 | background-repeat: no-repeat; 28 | background-size: cover; 29 | } 30 | .mdl-demo .mdl-layout__header-row { 31 | padding-left: 40px; 32 | } 33 | .mdl-demo .mdl-layout.is-small-screen .mdl-layout__header-row h3 { 34 | font-size: inherit; 35 | } 36 | .mdl-demo .mdl-layout__tab-bar-button { 37 | display: none; 38 | } 39 | .mdl-demo .mdl-layout.is-small-screen .mdl-layout__tab-bar .mdl-button { 40 | display: none; 41 | } 42 | .mdl-demo .mdl-layout:not(.is-small-screen) .mdl-layout__tab-bar, 43 | .mdl-demo .mdl-layout:not(.is-small-screen) .mdl-layout__tab-bar-container { 44 | overflow: visible; 45 | } 46 | .mdl-demo .mdl-layout__tab-bar-container { 47 | height: 64px; 48 | } 49 | .mdl-demo .mdl-layout__tab-bar { 50 | padding: 0; 51 | padding-left: 16px; 52 | box-sizing: border-box; 53 | height: 100%; 54 | width: 100%; 55 | } 56 | .mdl-demo .mdl-layout__tab-bar .mdl-layout__tab { 57 | height: 64px; 58 | line-height: 64px; 59 | } 60 | .mdl-demo .mdl-layout__tab-bar .mdl-layout__tab.is-active::after { 61 | background-color: white; 62 | height: 4px; 63 | } 64 | .mdl-demo main > .mdl-layout__tab-panel { 65 | padding: 8px; 66 | padding-top: 48px; 67 | } 68 | .mdl-demo .mdl-card { 69 | height: auto; 70 | display: flex; 71 | flex-direction: column; 72 | } 73 | .mdl-demo .mdl-card > * { 74 | height: auto; 75 | } 76 | .mdl-demo .mdl-card .mdl-card__supporting-text { 77 | margin: 40px; 78 | flex-grow: 1; 79 | padding: 0; 80 | color: inherit; 81 | width: calc(100% - 80px); 82 | } 83 | .mdl-demo.mdl-demo .mdl-card__supporting-text h4 { 84 | margin-top: 0; 85 | margin-bottom: 20px; 86 | } 87 | .mdl-demo .mdl-card__actions { 88 | margin: 0; 89 | padding: 4px 40px; 90 | color: inherit; 91 | } 92 | .mdl-demo .mdl-card__actions a { 93 | color: #00BCD4; 94 | margin: 0; 95 | } 96 | .mdl-demo .mdl-card__actions a:hover, 97 | .mdl-demo .mdl-card__actions a:active { 98 | color: inherit; 99 | background-color: transparent; 100 | } 101 | .mdl-demo .mdl-card__supporting-text + .mdl-card__actions { 102 | border-top: 1px solid rgba(0, 0, 0, 0.12); 103 | } 104 | .mdl-demo #add { 105 | position: absolute; 106 | right: 40px; 107 | top: 36px; 108 | z-index: 999; 109 | } 110 | 111 | .mdl-demo .mdl-layout__content section:not(:last-of-type) { 112 | position: relative; 113 | margin-bottom: 48px; 114 | } 115 | .mdl-demo section.section--center { 116 | max-width: 1060px; 117 | } 118 | .mdl-demo #features section.section--center { 119 | max-width: 620px; 120 | } 121 | .mdl-demo section > header{ 122 | display: flex; 123 | align-items: center; 124 | justify-content: center; 125 | } 126 | .mdl-demo section > .section__play-btn { 127 | min-height: 200px; 128 | } 129 | .mdl-demo section > header > .material-icons { 130 | font-size: 3rem; 131 | } 132 | .mdl-demo section > button { 133 | position: absolute; 134 | z-index: 99; 135 | top: 8px; 136 | right: 8px; 137 | } 138 | .mdl-demo section .section__circle { 139 | display: flex; 140 | align-items: center; 141 | justify-content: flex-start; 142 | flex-grow: 0; 143 | flex-shrink: 1; 144 | } 145 | .mdl-demo section .section__text { 146 | flex-grow: 1; 147 | flex-shrink: 0; 148 | padding-top: 8px; 149 | } 150 | .mdl-demo section .section__text h5 { 151 | font-size: inherit; 152 | margin: 0; 153 | margin-bottom: 0.5em; 154 | } 155 | .mdl-demo section .section__text a { 156 | text-decoration: none; 157 | } 158 | .mdl-demo section .section__circle-container > .section__circle-container__circle { 159 | width: 64px; 160 | height: 64px; 161 | border-radius: 32px; 162 | margin: 8px 0; 163 | } 164 | .mdl-demo section.section--footer .section__circle--big { 165 | width: 100px; 166 | height: 100px; 167 | border-radius: 50px; 168 | margin: 8px 32px; 169 | } 170 | .mdl-demo .is-small-screen section.section--footer .section__circle--big { 171 | width: 50px; 172 | height: 50px; 173 | border-radius: 25px; 174 | margin: 8px 16px; 175 | } 176 | .mdl-demo section.section--footer { 177 | padding: 64px 0; 178 | margin: 0 -8px -8px -8px; 179 | } 180 | .mdl-demo section.section--center .section__text:not(:last-child) { 181 | border-bottom: 1px solid rgba(0,0,0,.13); 182 | } 183 | .mdl-demo .mdl-card .mdl-card__supporting-text > h3:first-child { 184 | margin-bottom: 24px; 185 | } 186 | 187 | .mdl-demo #features section { 188 | margin-bottom: 72px; 189 | } 190 | .mdl-demo #features h4, #features h5 { 191 | margin-bottom: 16px; 192 | } 193 | .mdl-demo .toc { 194 | border-left: 4px solid #C1EEF4; 195 | margin: 24px; 196 | padding: 0; 197 | padding-left: 8px; 198 | display: flex; 199 | flex-direction: column; 200 | } 201 | .mdl-demo .toc h4 { 202 | font-size: 0.9rem; 203 | margin-top: 0; 204 | } 205 | .mdl-demo .toc a { 206 | color: #4DD0E1; 207 | text-decoration: none; 208 | font-size: 16px; 209 | line-height: 28px; 210 | display: block; 211 | } 212 | .mdl-demo .mdl-menu__container { 213 | z-index: 99; 214 | } 215 | footer.mdl-mega-footer{ 216 | background-color: #272833; 217 | } -------------------------------------------------------------------------------- /portal/static/js/skel.min.js: -------------------------------------------------------------------------------- 1 | /* skel.js v3.0.1 | (c) skel.io | MIT licensed */ 2 | var skel=function(){"use strict";var t={breakpointIds:null,events:{},isInit:!1,obj:{attachments:{},breakpoints:{},head:null,states:{}},sd:"/",state:null,stateHandlers:{},stateId:"",vars:{},DOMReady:null,indexOf:null,isArray:null,iterate:null,matchesMedia:null,extend:function(e,n){t.iterate(n,function(i){t.isArray(n[i])?(t.isArray(e[i])||(e[i]=[]),t.extend(e[i],n[i])):"object"==typeof n[i]?("object"!=typeof e[i]&&(e[i]={}),t.extend(e[i],n[i])):e[i]=n[i]})},newStyle:function(t){var e=document.createElement("style");return e.type="text/css",e.innerHTML=t,e},_canUse:null,canUse:function(e){t._canUse||(t._canUse=document.createElement("div"));var n=t._canUse.style,i=e.charAt(0).toUpperCase()+e.slice(1);return e in n||"Moz"+i in n||"Webkit"+i in n||"O"+i in n||"ms"+i in n},on:function(e,n){var i=e.split(/[\s]+/);return t.iterate(i,function(e){var a=i[e];if(t.isInit){if("init"==a)return void n();if("change"==a)n();else{var r=a.charAt(0);if("+"==r||"!"==r){var o=a.substring(1);if(o in t.obj.breakpoints)if("+"==r&&t.obj.breakpoints[o].active)n();else if("!"==r&&!t.obj.breakpoints[o].active)return void n()}}}t.events[a]||(t.events[a]=[]),t.events[a].push(n)}),t},trigger:function(e){return t.events[e]&&0!=t.events[e].length?(t.iterate(t.events[e],function(n){t.events[e][n]()}),t):void 0},breakpoint:function(e){return t.obj.breakpoints[e]},breakpoints:function(e){function n(t,e){this.name=this.id=t,this.media=e,this.active=!1,this.wasActive=!1}return n.prototype.matches=function(){return t.matchesMedia(this.media)},n.prototype.sync=function(){this.wasActive=this.active,this.active=this.matches()},t.iterate(e,function(i){t.obj.breakpoints[i]=new n(i,e[i])}),window.setTimeout(function(){t.poll()},0),t},addStateHandler:function(e,n){t.stateHandlers[e]=n},callStateHandler:function(e){var n=t.stateHandlers[e]();t.iterate(n,function(e){t.state.attachments.push(n[e])})},changeState:function(e){t.iterate(t.obj.breakpoints,function(e){t.obj.breakpoints[e].sync()}),t.vars.lastStateId=t.stateId,t.stateId=e,t.breakpointIds=t.stateId===t.sd?[]:t.stateId.substring(1).split(t.sd),t.obj.states[t.stateId]?t.state=t.obj.states[t.stateId]:(t.obj.states[t.stateId]={attachments:[]},t.state=t.obj.states[t.stateId],t.iterate(t.stateHandlers,t.callStateHandler)),t.detachAll(t.state.attachments),t.attachAll(t.state.attachments),t.vars.stateId=t.stateId,t.vars.state=t.state,t.trigger("change"),t.iterate(t.obj.breakpoints,function(e){t.obj.breakpoints[e].active?t.obj.breakpoints[e].wasActive||t.trigger("+"+e):t.obj.breakpoints[e].wasActive&&t.trigger("-"+e)})},generateStateConfig:function(e,n){var i={};return t.extend(i,e),t.iterate(t.breakpointIds,function(e){t.extend(i,n[t.breakpointIds[e]])}),i},getStateId:function(){var e="";return t.iterate(t.obj.breakpoints,function(n){var i=t.obj.breakpoints[n];i.matches()&&(e+=t.sd+i.id)}),e},poll:function(){var e="";e=t.getStateId(),""===e&&(e=t.sd),e!==t.stateId&&t.changeState(e)},_attach:null,attach:function(e){var n=t.obj.head,i=e.element;return i.parentNode&&i.parentNode.tagName?!1:(t._attach||(t._attach=n.firstChild),n.insertBefore(i,t._attach.nextSibling),e.permanent&&(t._attach=i),!0)},attachAll:function(e){var n=[];t.iterate(e,function(t){n[e[t].priority]||(n[e[t].priority]=[]),n[e[t].priority].push(e[t])}),n.reverse(),t.iterate(n,function(e){t.iterate(n[e],function(i){t.attach(n[e][i])})})},detach:function(t){var e=t.element;return t.permanent||!e.parentNode||e.parentNode&&!e.parentNode.tagName?!1:(e.parentNode.removeChild(e),!0)},detachAll:function(e){var n={};t.iterate(e,function(t){n[e[t].id]=!0}),t.iterate(t.obj.attachments,function(e){e in n||t.detach(t.obj.attachments[e])})},attachment:function(e){return e in t.obj.attachments?t.obj.attachments[e]:null},newAttachment:function(e,n,i,a){return t.obj.attachments[e]={id:e,element:n,priority:i,permanent:a}},init:function(){t.initMethods(),t.initVars(),t.initEvents(),t.obj.head=document.getElementsByTagName("head")[0],t.isInit=!0,t.trigger("init")},initEvents:function(){t.on("resize",function(){t.poll()}),t.on("orientationChange",function(){t.poll()}),t.DOMReady(function(){t.trigger("ready")}),window.onload&&t.on("load",window.onload),window.onload=function(){t.trigger("load")},window.onresize&&t.on("resize",window.onresize),window.onresize=function(){t.trigger("resize")},window.onorientationchange&&t.on("orientationChange",window.onorientationchange),window.onorientationchange=function(){t.trigger("orientationChange")}},initMethods:function(){document.addEventListener?!function(e,n){t.DOMReady=n()}("domready",function(){function t(t){for(r=1;t=n.shift();)t()}var e,n=[],i=document,a="DOMContentLoaded",r=/^loaded|^c/.test(i.readyState);return i.addEventListener(a,e=function(){i.removeEventListener(a,e),t()}),function(t){r?t():n.push(t)}}):!function(e,n){t.DOMReady=n()}("domready",function(t){function e(t){for(h=1;t=i.shift();)t()}var n,i=[],a=!1,r=document,o=r.documentElement,s=o.doScroll,c="DOMContentLoaded",d="addEventListener",u="onreadystatechange",l="readyState",f=s?/^loaded|^c/:/^loaded|c/,h=f.test(r[l]);return r[d]&&r[d](c,n=function(){r.removeEventListener(c,n,a),e()},a),s&&r.attachEvent(u,n=function(){/^c/.test(r[l])&&(r.detachEvent(u,n),e())}),t=s?function(e){self!=top?h?e():i.push(e):function(){try{o.doScroll("left")}catch(n){return setTimeout(function(){t(e)},50)}e()}()}:function(t){h?t():i.push(t)}}),Array.prototype.indexOf?t.indexOf=function(t,e){return t.indexOf(e)}:t.indexOf=function(t,e){if("string"==typeof t)return t.indexOf(e);var n,i,a=e?e:0;if(!this)throw new TypeError;if(i=this.length,0===i||a>=i)return-1;for(0>a&&(a=i-Math.abs(a)),n=a;i>n;n++)if(this[n]===t)return n;return-1},Array.isArray?t.isArray=function(t){return Array.isArray(t)}:t.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Object.keys?t.iterate=function(t,e){if(!t)return[];var n,i=Object.keys(t);for(n=0;i[n]&&e(i[n],t[i[n]])!==!1;n++);}:t.iterate=function(t,e){if(!t)return[];var n;for(n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&e(n,t[n])===!1)break},window.matchMedia?t.matchesMedia=function(t){return""==t?!0:window.matchMedia(t).matches}:window.styleMedia||window.media?t.matchesMedia=function(t){if(""==t)return!0;var e=window.styleMedia||window.media;return e.matchMedium(t||"all")}:window.getComputedStyle?t.matchesMedia=function(t){if(""==t)return!0;var e=document.createElement("style"),n=document.getElementsByTagName("script")[0],i=null;e.type="text/css",e.id="matchmediajs-test",n.parentNode.insertBefore(e,n),i="getComputedStyle"in window&&window.getComputedStyle(e,null)||e.currentStyle;var a="@media "+t+"{ #matchmediajs-test { width: 1px; } }";return e.styleSheet?e.styleSheet.cssText=a:e.textContent=a,"1px"===i.width}:t.matchesMedia=function(t){if(""==t)return!0;var e,n,i,a,r={"min-width":null,"max-width":null},o=!1;for(i=t.split(/\s+and\s+/),e=0;er["max-width"]||null!==r["min-height"]&&cr["max-height"]?!1:!0},navigator.userAgent.match(/MSIE ([0-9]+)/)&&RegExp.$1<9&&(t.newStyle=function(t){var e=document.createElement("span");return e.innerHTML=' ",e})},initVars:function(){var e,n,i,a=navigator.userAgent;e="other",n=0,i=[["firefox",/Firefox\/([0-9\.]+)/],["bb",/BlackBerry.+Version\/([0-9\.]+)/],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/],["opera",/OPR\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)/],["edge",/Edge\/([0-9\.]+)/],["safari",/Version\/([0-9\.]+).+Safari/],["chrome",/Chrome\/([0-9\.]+)/],["ie",/MSIE ([0-9]+)/],["ie",/Trident\/.+rv:([0-9]+)/]],t.iterate(i,function(t,i){return a.match(i[1])?(e=i[0],n=parseFloat(RegExp.$1),!1):void 0}),t.vars.browser=e,t.vars.browserVersion=n,e="other",n=0,i=[["ios",/([0-9_]+) like Mac OS X/,function(t){return t.replace("_",".").replace("_","")}],["ios",/CPU like Mac OS X/,function(t){return 0}],["wp",/Windows Phone ([0-9\.]+)/,null],["android",/Android ([0-9\.]+)/,null],["mac",/Macintosh.+Mac OS X ([0-9_]+)/,function(t){return t.replace("_",".").replace("_","")}],["windows",/Windows NT ([0-9\.]+)/,null],["bb",/BlackBerry.+Version\/([0-9\.]+)/,null],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/,null]],t.iterate(i,function(t,i){return a.match(i[1])?(e=i[0],n=parseFloat(i[2]?i[2](RegExp.$1):RegExp.$1),!1):void 0}),t.vars.os=e,t.vars.osVersion=n,t.vars.IEVersion="ie"==t.vars.browser?t.vars.browserVersion:99,t.vars.touch="wp"==t.vars.os?navigator.msMaxTouchPoints>0:!!("ontouchstart"in window),t.vars.mobile="wp"==t.vars.os||"android"==t.vars.os||"ios"==t.vars.os||"bb"==t.vars.os}};return t.init(),t}();!function(t,e){"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?module.exports=e():t.skel=e()}(this,function(){return skel}); 3 | -------------------------------------------------------------------------------- /portal/static/js/jquery.poptrox.min.js: -------------------------------------------------------------------------------- 1 | /* jquery.poptrox.js v2.5.2-dev | (c) @ajlkn | github.com/ajlkn/jquery.poptrox | MIT licensed */ 2 | !function(e){e.fn.poptrox_disableSelection=function(){return e(this).css("user-select","none").css("-khtml-user-select","none").css("-moz-user-select","none").css("-o-user-select","none").css("-webkit-user-select","none")},e.fn.poptrox=function(o){function t(){i=e(window).width(),s=e(window).height()+r.windowHeightPad;var o=Math.abs(x.width()-x.outerWidth()),t=Math.abs(x.height()-x.outerHeight()),p=(w.width(),w.height(),i-2*r.windowMargin-o),n=s-2*r.windowMargin-t;x.css("min-width",r.popupWidth).css("min-height",r.popupHeight),v.children().css("max-width",p).css("max-height",n)}if(0==this.length)return e(this);if(this.length>1){for(var p=0;p'),u=e(window),d=[],h=0,g=!1,f=new Array;r.usePopupLoader||(r.popupLoaderSelector=null),r.usePopupCloser||(r.popupCloserSelector=null),r.usePopupCaption||(r.popupCaptionSelector=null),r.usePopupNav||(r.popupNavPreviousSelector=null,r.popupNavNextSelector=null);var x;x=e(r.popupSelector?r.popupSelector:'
'+(r.popupLoaderSelector?'
'+r.popupLoaderText+"
":"")+'
'+(r.popupCaptionSelector?'
':"")+(r.popupCloserSelector?''+r.popupCloserText+"":"")+(r.popupNavPreviousSelector?'':"")+(r.popupNavNextSelector?'':"")+"
");var v=x.find(".pic"),w=e(),b=x.find(r.popupLoaderSelector),m=x.find(r.popupCaptionSelector),C=x.find(r.popupCloserSelector),y=x.find(r.popupNavNextSelector),S=x.find(r.popupNavPreviousSelector),P=y.add(S);if(r.usePopupDefaultStyling&&(x.css("background",r.popupBackgroundColor).css("color",r.popupTextColor).css("padding",r.popupPadding+"px"),m.length>0&&(x.css("padding-bottom",r.popupCaptionHeight+"px"),m.css("position","absolute").css("left","0").css("bottom","0").css("width","100%").css("text-align","center").css("height",r.popupCaptionHeight+"px").css("line-height",r.popupCaptionHeight+"px"),r.popupCaptionTextSize&&m.css("font-size",popupCaptionTextSize)),C.length>0&&C.html(r.popupCloserText).css("font-size",r.popupCloserTextSize).css("background",r.popupCloserBackgroundColor).css("color",r.popupCloserTextColor).css("display","block").css("width","40px").css("height","40px").css("line-height","40px").css("text-align","center").css("position","absolute").css("text-decoration","none").css("outline","0").css("top","0").css("right","-40px"),b.length>0&&b.html("").css("position","relative").css("font-size",r.popupLoaderTextSize).on("startSpinning",function(o){var t=e("
"+r.popupLoaderText+"
");t.css("height",Math.floor(r.popupHeight/2)+"px").css("overflow","hidden").css("line-height",Math.floor(r.popupHeight/2)+"px").css("text-align","center").css("margin-top",Math.floor((x.height()-t.height()+(m.length>0?m.height():0))/2)).css("color",r.popupTextColor?r.popupTextColor:"").on("xfin",function(){t.fadeTo(300,.5,function(){t.trigger("xfout")})}).on("xfout",function(){t.fadeTo(300,.05,function(){t.trigger("xfin")})}).trigger("xfin"),b.append(t)}).on("stopSpinning",function(e){var o=b.find("div");o.remove()}),2==P.length)){P.css("font-size","75px").css("text-align","center").css("color","#fff").css("text-shadow","none").css("height","100%").css("position","absolute").css("top","0").css("opacity","0.35").css("cursor","pointer").css("box-shadow","inset 0px 0px 10px 0px rgba(0,0,0,0)").poptrox_disableSelection();var k,T;r.usePopupEasyClose?(k="100px",T="100px"):(k="75%",T="25%"),y.css("right","0").css("width",k).html('
>
'),S.css("left","0").css("width",T).html('
<
')}return u.on("resize orientationchange",function(){t()}),m.on("update",function(e,o){o&&0!=o.length||(o=r.popupBlankCaptionText),m.html(o)}),C.css("cursor","pointer").on("click",function(e){return e.preventDefault(),e.stopPropagation(),x.trigger("poptrox_close"),!0}),y.on("click",function(e){e.stopPropagation(),e.preventDefault(),x.trigger("poptrox_next")}),S.on("click",function(e){e.stopPropagation(),e.preventDefault(),x.trigger("poptrox_previous")}),l.css("position","fixed").css("left",0).css("top",0).css("z-index",r.baseZIndex).css("width","100%").css("height","100%").css("text-align","center").css("cursor","pointer").appendTo(r.parent).prepend('
').append('
').hide().on("touchmove",function(e){return!1}).on("click",function(e){e.preventDefault(),e.stopPropagation(),x.trigger("poptrox_close")}),x.css("display","inline-block").css("vertical-align","middle").css("position","relative").css("z-index",1).css("cursor","auto").appendTo(l).hide().on("poptrox_next",function(){var e=h+1;e>=d.length&&(e=0),x.trigger("poptrox_switch",[e])}).on("poptrox_previous",function(){var e=h-1;0>e&&(e=d.length-1),x.trigger("poptrox_switch",[e])}).on("poptrox_reset",function(){t(),x.data("width",r.popupWidth).data("height",r.popupHeight),b.hide().trigger("stopSpinning"),m.hide(),C.hide(),P.hide(),v.hide(),w.attr("src","").detach()}).on("poptrox_open",function(e,o){return g?!0:(g=!0,r.useBodyOverflow&&a.css("overflow","hidden"),r.onPopupOpen&&r.onPopupOpen(),x.addClass("loading"),void l.fadeTo(r.fadeSpeed,1,function(){x.trigger("poptrox_switch",[o,!0])}))}).on("poptrox_switch",function(o,p,i){var s;if(!i&&g)return!0;if(g=!0,x.addClass("loading").css("width",x.data("width")).css("height",x.data("height")),m.hide(),w.attr("src")&&w.attr("src",""),w.detach(),s=d[p],w=s.object,w.off("load"),v.css("text-indent","-9999px").show().append(w),"ajax"==s.type?e.get(s.src,function(e){w.html(e),w.trigger("load")}):w.attr("src",s.src),"image"!=s.type){var n,a;n=s.width,a=s.height,"%"==n.slice(-1)&&(n=parseInt(n.substring(0,n.length-1))/100*u.width()),"%"==a.slice(-1)&&(a=parseInt(a.substring(0,a.length-1))/100*u.height()),w.css("position","relative").css("outline","0").css("z-index",r.baseZIndex+100).width(n).height(a)}b.trigger("startSpinning").fadeIn(300),x.show(),r.popupIsFixed?(x.removeClass("loading").width(r.popupWidth).height(r.popupHeight),w.load(function(){w.off("load"),b.hide().trigger("stopSpinning"),m.trigger("update",[s.captionText]).fadeIn(r.fadeSpeed),C.fadeIn(r.fadeSpeed),v.css("text-indent",0).hide().fadeIn(r.fadeSpeed,function(){g=!1}),h=p,P.fadeIn(r.fadeSpeed)})):w.load(function(){t(),w.off("load"),b.hide().trigger("stopSpinning");var e=w.width(),o=w.height(),i=function(){m.trigger("update",[s.captionText]).fadeIn(r.fadeSpeed),C.fadeIn(r.fadeSpeed),v.css("text-indent",0).hide().fadeIn(r.fadeSpeed,function(){g=!1}),h=p,P.fadeIn(r.fadeSpeed),x.removeClass("loading").data("width",e).data("height",o).css("width","auto").css("height","auto")};e==x.data("width")&&o==x.data("height")?i():x.animate({width:e,height:o},r.popupSpeed,"swing",i)}),"image"!=s.type&&w.trigger("load")}).on("poptrox_close",function(){return g&&!r.usePopupForceClose?!0:(g=!0,x.hide().trigger("poptrox_reset"),r.onPopupClose&&r.onPopupClose(),void l.fadeOut(r.fadeSpeed,function(){r.useBodyOverflow&&a.css("overflow","auto"),g=!1}))}).trigger("poptrox_reset"),r.usePopupEasyClose?(m.on("click","a",function(e){e.stopPropagation()}),x.css("cursor","pointer").on("click",function(e){e.stopPropagation(),e.preventDefault(),x.trigger("poptrox_close")})):x.on("click",function(e){e.stopPropagation()}),u.keydown(function(e){if(x.is(":visible"))switch(e.keyCode){case 37:case 32:if(r.usePopupNav)return x.trigger("poptrox_previous"),!1;break;case 39:if(r.usePopupNav)return x.trigger("poptrox_next"),!1;break;case 27:return x.trigger("poptrox_close"),!1}}),n.find(r.selector).each(function(o){var t,p,i=e(this),s=i.find("img"),n=i.data("poptrox");if("ignore"!=n&&i.attr("href")){if(t={src:i.attr("href"),captionText:s.attr("title"),width:null,height:null,type:null,object:null,options:null},r.caption){if("function"==typeof r.caption)c=r.caption(i);else if("selector"in r.caption){var a;a=i.find(r.caption.selector),"attribute"in r.caption?c=a.attr(r.caption.attribute):(c=a.html(),r.caption.remove===!0&&a.remove())}}else c=s.attr("title");if(t.captionText=c,n){var l=n.split(",");0 in l&&(t.type=l[0]),1 in l&&(p=l[1].match(/([0-9%]+)x([0-9%]+)/),p&&3==p.length&&(t.width=p[1],t.height=p[2])),2 in l&&(t.options=l[2])}if(!t.type)switch(p=t.src.match(/\/\/([a-z0-9\.]+)\/.*/),(!p||p.length<2)&&(p=[!1]),p[1]){case"api.soundcloud.com":t.type="soundcloud";break;case"youtu.be":t.type="youtube";break;case"vimeo.com":t.type="vimeo";break;case"wistia.net":t.type="wistia";break;case"bcove.me":t.type="bcove";break;default:t.type="image"}switch(p=t.src.match(/\/\/[a-z0-9\.]+\/(.*)/),t.type){case"iframe":t.object=e(''),t.object.on("click",function(e){e.stopPropagation()}).css("cursor","auto"),t.width&&t.height||(t.width="600",t.height="400");break;case"ajax":t.object=e('
'),t.object.on("click",function(e){e.stopPropagation()}).css("cursor","auto").css("overflow","auto"),t.width&&t.height||(t.width="600",t.height="400");break;case"soundcloud":t.object=e(''),t.src="//w.soundcloud.com/player/?url="+escape(t.src)+(t.options?"&"+t.options:""),t.width="600",t.height="166";break;case"youtube":t.object=e(''),t.src="//www.youtube.com/embed/"+p[1]+(t.options?"?"+t.options:""),t.width&&t.height||(t.width="800",t.height="480");break;case"vimeo":t.object=e(''),t.src="//player.vimeo.com/video/"+p[1]+(t.options?"?"+t.options:""),t.width&&t.height||(t.width="800",t.height="480");break;case"wistia":t.object=e(''),t.src="//fast.wistia.net/"+p[1]+(t.options?"?"+t.options:""),t.width&&t.height||(t.width="800",t.height="480");break;case"bcove":t.object=e(''),t.src="//bcove.me/"+p[1]+(t.options?"?"+t.options:""),t.width&&t.height||(t.width="640",t.height="360");break;default:if(t.object=e(''),r.preload){var p=document.createElement("img");p.src=t.src,f.push(p)}t.width=i.attr("width"),t.height=i.attr("height")}"file:"==window.location.protocol&&t.src.match(/^\/\//)&&(t.src="http:"+t.src),d.push(t),s.removeAttr("title"),i.removeAttr("href").css("cursor","pointer").css("outline",0).on("click",function(e){e.preventDefault(),e.stopPropagation(),x.trigger("poptrox_open",[o])})}}),n.prop("_poptrox",r),n}}(jQuery); 3 | -------------------------------------------------------------------------------- /portal/static/js/util.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | 3 | /** 4 | * Generate an indented list of links from a nav. Meant for use with panel(). 5 | * @return {jQuery} jQuery object. 6 | */ 7 | $.fn.navList = function() { 8 | 9 | var $this = $(this); 10 | $a = $this.find('a'), 11 | b = []; 12 | 13 | $a.each(function() { 14 | 15 | var $this = $(this), 16 | indent = Math.max(0, $this.parents('li').length - 1), 17 | href = $this.attr('href'), 18 | target = $this.attr('target'); 19 | 20 | b.push( 21 | '' + 26 | '' + 27 | $this.text() + 28 | '' 29 | ); 30 | 31 | }); 32 | 33 | return b.join(''); 34 | 35 | }; 36 | 37 | /** 38 | * Panel-ify an element. 39 | * @param {object} userConfig User config. 40 | * @return {jQuery} jQuery object. 41 | */ 42 | $.fn.panel = function(userConfig) { 43 | 44 | // No elements? 45 | if (this.length == 0) 46 | return $this; 47 | 48 | // Multiple elements? 49 | if (this.length > 1) { 50 | 51 | for (var i=0; i < this.length; i++) 52 | $(this[i]).panel(userConfig); 53 | 54 | return $this; 55 | 56 | } 57 | 58 | // Vars. 59 | var $this = $(this), 60 | $body = $('body'), 61 | $window = $(window), 62 | id = $this.attr('id'), 63 | config; 64 | 65 | // Config. 66 | config = $.extend({ 67 | 68 | // Delay. 69 | delay: 0, 70 | 71 | // Hide panel on link click. 72 | hideOnClick: false, 73 | 74 | // Hide panel on escape keypress. 75 | hideOnEscape: false, 76 | 77 | // Hide panel on swipe. 78 | hideOnSwipe: false, 79 | 80 | // Reset scroll position on hide. 81 | resetScroll: false, 82 | 83 | // Reset forms on hide. 84 | resetForms: false, 85 | 86 | // Side of viewport the panel will appear. 87 | side: null, 88 | 89 | // Target element for "class". 90 | target: $this, 91 | 92 | // Class to toggle. 93 | visibleClass: 'visible' 94 | 95 | }, userConfig); 96 | 97 | // Expand "target" if it's not a jQuery object already. 98 | if (typeof config.target != 'jQuery') 99 | config.target = $(config.target); 100 | 101 | // Panel. 102 | 103 | // Methods. 104 | $this._hide = function(event) { 105 | 106 | // Already hidden? Bail. 107 | if (!config.target.hasClass(config.visibleClass)) 108 | return; 109 | 110 | // If an event was provided, cancel it. 111 | if (event) { 112 | 113 | event.preventDefault(); 114 | event.stopPropagation(); 115 | 116 | } 117 | 118 | // Hide. 119 | config.target.removeClass(config.visibleClass); 120 | 121 | // Post-hide stuff. 122 | window.setTimeout(function() { 123 | 124 | // Reset scroll position. 125 | if (config.resetScroll) 126 | $this.scrollTop(0); 127 | 128 | // Reset forms. 129 | if (config.resetForms) 130 | $this.find('form').each(function() { 131 | this.reset(); 132 | }); 133 | 134 | }, config.delay); 135 | 136 | }; 137 | 138 | // Vendor fixes. 139 | $this 140 | .css('-ms-overflow-style', '-ms-autohiding-scrollbar') 141 | .css('-webkit-overflow-scrolling', 'touch'); 142 | 143 | // Hide on click. 144 | if (config.hideOnClick) { 145 | 146 | $this.find('a') 147 | .css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)'); 148 | 149 | $this 150 | .on('click', 'a', function(event) { 151 | 152 | var $a = $(this), 153 | href = $a.attr('href'), 154 | target = $a.attr('target'); 155 | 156 | if (!href || href == '#' || href == '' || href == '#' + id) 157 | return; 158 | 159 | // Cancel original event. 160 | event.preventDefault(); 161 | event.stopPropagation(); 162 | 163 | // Hide panel. 164 | $this._hide(); 165 | 166 | // Redirect to href. 167 | window.setTimeout(function() { 168 | 169 | if (target == '_blank') 170 | window.open(href); 171 | else 172 | window.location.href = href; 173 | 174 | }, config.delay + 10); 175 | 176 | }); 177 | 178 | } 179 | 180 | // Event: Touch stuff. 181 | $this.on('touchstart', function(event) { 182 | 183 | $this.touchPosX = event.originalEvent.touches[0].pageX; 184 | $this.touchPosY = event.originalEvent.touches[0].pageY; 185 | 186 | }) 187 | 188 | $this.on('touchmove', function(event) { 189 | 190 | if ($this.touchPosX === null 191 | || $this.touchPosY === null) 192 | return; 193 | 194 | var diffX = $this.touchPosX - event.originalEvent.touches[0].pageX, 195 | diffY = $this.touchPosY - event.originalEvent.touches[0].pageY, 196 | th = $this.outerHeight(), 197 | ts = ($this.get(0).scrollHeight - $this.scrollTop()); 198 | 199 | // Hide on swipe? 200 | if (config.hideOnSwipe) { 201 | 202 | var result = false, 203 | boundary = 20, 204 | delta = 50; 205 | 206 | switch (config.side) { 207 | 208 | case 'left': 209 | result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX > delta); 210 | break; 211 | 212 | case 'right': 213 | result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX < (-1 * delta)); 214 | break; 215 | 216 | case 'top': 217 | result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY > delta); 218 | break; 219 | 220 | case 'bottom': 221 | result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY < (-1 * delta)); 222 | break; 223 | 224 | default: 225 | break; 226 | 227 | } 228 | 229 | if (result) { 230 | 231 | $this.touchPosX = null; 232 | $this.touchPosY = null; 233 | $this._hide(); 234 | 235 | return false; 236 | 237 | } 238 | 239 | } 240 | 241 | // Prevent vertical scrolling past the top or bottom. 242 | if (($this.scrollTop() < 0 && diffY < 0) 243 | || (ts > (th - 2) && ts < (th + 2) && diffY > 0)) { 244 | 245 | event.preventDefault(); 246 | event.stopPropagation(); 247 | 248 | } 249 | 250 | }); 251 | 252 | // Event: Prevent certain events inside the panel from bubbling. 253 | $this.on('click touchend touchstart touchmove', function(event) { 254 | event.stopPropagation(); 255 | }); 256 | 257 | // Event: Hide panel if a child anchor tag pointing to its ID is clicked. 258 | $this.on('click', 'a[href="#' + id + '"]', function(event) { 259 | 260 | event.preventDefault(); 261 | event.stopPropagation(); 262 | 263 | config.target.removeClass(config.visibleClass); 264 | 265 | }); 266 | 267 | // Body. 268 | 269 | // Event: Hide panel on body click/tap. 270 | $body.on('click touchend', function(event) { 271 | $this._hide(event); 272 | }); 273 | 274 | // Event: Toggle. 275 | $body.on('click', 'a[href="#' + id + '"]', function(event) { 276 | 277 | event.preventDefault(); 278 | event.stopPropagation(); 279 | 280 | config.target.toggleClass(config.visibleClass); 281 | 282 | }); 283 | 284 | // Window. 285 | 286 | // Event: Hide on ESC. 287 | if (config.hideOnEscape) 288 | $window.on('keydown', function(event) { 289 | 290 | if (event.keyCode == 27) 291 | $this._hide(event); 292 | 293 | }); 294 | 295 | return $this; 296 | 297 | }; 298 | 299 | /** 300 | * Apply "placeholder" attribute polyfill to one or more forms. 301 | * @return {jQuery} jQuery object. 302 | */ 303 | $.fn.placeholder = function() { 304 | 305 | // Browser natively supports placeholders? Bail. 306 | if (typeof (document.createElement('input')).placeholder != 'undefined') 307 | return $(this); 308 | 309 | // No elements? 310 | if (this.length == 0) 311 | return $this; 312 | 313 | // Multiple elements? 314 | if (this.length > 1) { 315 | 316 | for (var i=0; i < this.length; i++) 317 | $(this[i]).placeholder(); 318 | 319 | return $this; 320 | 321 | } 322 | 323 | // Vars. 324 | var $this = $(this); 325 | 326 | // Text, TextArea. 327 | $this.find('input[type=text],textarea') 328 | .each(function() { 329 | 330 | var i = $(this); 331 | 332 | if (i.val() == '' 333 | || i.val() == i.attr('placeholder')) 334 | i 335 | .addClass('polyfill-placeholder') 336 | .val(i.attr('placeholder')); 337 | 338 | }) 339 | .on('blur', function() { 340 | 341 | var i = $(this); 342 | 343 | if (i.attr('name').match(/-polyfill-field$/)) 344 | return; 345 | 346 | if (i.val() == '') 347 | i 348 | .addClass('polyfill-placeholder') 349 | .val(i.attr('placeholder')); 350 | 351 | }) 352 | .on('focus', function() { 353 | 354 | var i = $(this); 355 | 356 | if (i.attr('name').match(/-polyfill-field$/)) 357 | return; 358 | 359 | if (i.val() == i.attr('placeholder')) 360 | i 361 | .removeClass('polyfill-placeholder') 362 | .val(''); 363 | 364 | }); 365 | 366 | // Password. 367 | $this.find('input[type=password]') 368 | .each(function() { 369 | 370 | var i = $(this); 371 | var x = $( 372 | $('
') 373 | .append(i.clone()) 374 | .remove() 375 | .html() 376 | .replace(/type="password"/i, 'type="text"') 377 | .replace(/type=password/i, 'type=text') 378 | ); 379 | 380 | if (i.attr('id') != '') 381 | x.attr('id', i.attr('id') + '-polyfill-field'); 382 | 383 | if (i.attr('name') != '') 384 | x.attr('name', i.attr('name') + '-polyfill-field'); 385 | 386 | x.addClass('polyfill-placeholder') 387 | .val(x.attr('placeholder')).insertAfter(i); 388 | 389 | if (i.val() == '') 390 | i.hide(); 391 | else 392 | x.hide(); 393 | 394 | i 395 | .on('blur', function(event) { 396 | 397 | event.preventDefault(); 398 | 399 | var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]'); 400 | 401 | if (i.val() == '') { 402 | 403 | i.hide(); 404 | x.show(); 405 | 406 | } 407 | 408 | }); 409 | 410 | x 411 | .on('focus', function(event) { 412 | 413 | event.preventDefault(); 414 | 415 | var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']'); 416 | 417 | x.hide(); 418 | 419 | i 420 | .show() 421 | .focus(); 422 | 423 | }) 424 | .on('keypress', function(event) { 425 | 426 | event.preventDefault(); 427 | x.val(''); 428 | 429 | }); 430 | 431 | }); 432 | 433 | // Events. 434 | $this 435 | .on('submit', function() { 436 | 437 | $this.find('input[type=text],input[type=password],textarea') 438 | .each(function(event) { 439 | 440 | var i = $(this); 441 | 442 | if (i.attr('name').match(/-polyfill-field$/)) 443 | i.attr('name', ''); 444 | 445 | if (i.val() == i.attr('placeholder')) { 446 | 447 | i.removeClass('polyfill-placeholder'); 448 | i.val(''); 449 | 450 | } 451 | 452 | }); 453 | 454 | }) 455 | .on('reset', function(event) { 456 | 457 | event.preventDefault(); 458 | 459 | $this.find('select') 460 | .val($('option:first').val()); 461 | 462 | $this.find('input,textarea') 463 | .each(function() { 464 | 465 | var i = $(this), 466 | x; 467 | 468 | i.removeClass('polyfill-placeholder'); 469 | 470 | switch (this.type) { 471 | 472 | case 'submit': 473 | case 'reset': 474 | break; 475 | 476 | case 'password': 477 | i.val(i.attr('defaultValue')); 478 | 479 | x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]'); 480 | 481 | if (i.val() == '') { 482 | i.hide(); 483 | x.show(); 484 | } 485 | else { 486 | i.show(); 487 | x.hide(); 488 | } 489 | 490 | break; 491 | 492 | case 'checkbox': 493 | case 'radio': 494 | i.attr('checked', i.attr('defaultValue')); 495 | break; 496 | 497 | case 'text': 498 | case 'textarea': 499 | i.val(i.attr('defaultValue')); 500 | 501 | if (i.val() == '') { 502 | i.addClass('polyfill-placeholder'); 503 | i.val(i.attr('placeholder')); 504 | } 505 | 506 | break; 507 | 508 | default: 509 | i.val(i.attr('defaultValue')); 510 | break; 511 | 512 | } 513 | }); 514 | 515 | }); 516 | 517 | return $this; 518 | 519 | }; 520 | 521 | /** 522 | * Moves elements to/from the first positions of their respective parents. 523 | * @param {jQuery} $elements Elements (or selector) to move. 524 | * @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations. 525 | */ 526 | $.prioritize = function($elements, condition) { 527 | 528 | var key = '__prioritize'; 529 | 530 | // Expand $elements if it's not already a jQuery object. 531 | if (typeof $elements != 'jQuery') 532 | $elements = $($elements); 533 | 534 | // Step through elements. 535 | $elements.each(function() { 536 | 537 | var $e = $(this), $p, 538 | $parent = $e.parent(); 539 | 540 | // No parent? Bail. 541 | if ($parent.length == 0) 542 | return; 543 | 544 | // Not moved? Move it. 545 | if (!$e.data(key)) { 546 | 547 | // Condition is false? Bail. 548 | if (!condition) 549 | return; 550 | 551 | // Get placeholder (which will serve as our point of reference for when this element needs to move back). 552 | $p = $e.prev(); 553 | 554 | // Couldn't find anything? Means this element's already at the top, so bail. 555 | if ($p.length == 0) 556 | return; 557 | 558 | // Move element to top of parent. 559 | $e.prependTo($parent); 560 | 561 | // Mark element as moved. 562 | $e.data(key, $p); 563 | 564 | } 565 | 566 | // Moved already? 567 | else { 568 | 569 | // Condition is true? Bail. 570 | if (condition) 571 | return; 572 | 573 | $p = $e.data(key); 574 | 575 | // Move element back to its original location (using our placeholder). 576 | $e.insertAfter($p); 577 | 578 | // Unmark element as moved. 579 | $e.removeData(key); 580 | 581 | } 582 | 583 | }); 584 | 585 | }; 586 | 587 | })(jQuery); -------------------------------------------------------------------------------- /portal/templates/portal/index.html: -------------------------------------------------------------------------------- 1 | {% extends 'portal/base.html' %} 2 | {% load staticfiles %} 3 | {% load widget_tweaks %} 4 | {% block title %}Portal-Fill{% endblock %} 5 | {% block extend_head %} 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 28 | 29 | 30 | 31 | 32 | 33 | 40 | 41 | 42 | 43 | 44 | {% endblock %} 45 | {% block content %} 46 |
47 |
48 |
49 | 50 | Welcome USERNAME 51 |
52 | 55 | 56 |
57 |
58 | SELECT THE COURSE TO GIVE FEEDBACK 59 |
60 |
61 | IDST230C 62 | IDST230C 63 | IDST230C 64 | IDST230C 65 | IDST230C 66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | 75 |
76 |
77 | 79 |
80 |
81 | 82 | 83 | 84 | 85 |
86 |
87 | 88 |
89 |
90 | 92 |
93 |
94 | 95 | 96 | 97 |
98 |
99 | 100 |
101 |
102 | 104 |
105 |
106 | 107 | 108 | 109 | 110 | 111 |
112 |
113 |
114 | 115 | 116 |
117 |
118 | 119 | 120 |
121 |
122 |
123 | 124 | 125 |
126 |
127 | 128 | 129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 | 137 |
138 |
139 | 141 |
142 |
143 | 144 | 145 | 146 | 147 |
148 |
149 | 150 |
151 |
152 | 154 |
155 |
156 | 157 | 158 | 159 |
160 |
161 | 162 |
163 |
164 | 166 |
167 |
168 | 169 | 170 | 171 | 172 | 173 |
174 |
175 |
176 | 177 | 178 |
179 |
180 | 181 | 182 |
183 |
184 |
185 | 186 | 187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 | 197 |
198 |
199 | 201 |
202 |
203 | 204 | 205 | 206 | 207 |
208 |
209 | 210 |
211 |
212 | 214 |
215 |
216 | 217 | 218 | 219 |
220 |
221 | 222 |
223 |
224 | 226 |
227 |
228 | 229 | 230 | 231 | 232 | 233 |
234 |
235 |
236 | 237 | 238 |
239 |
240 | 241 | 242 |
243 |
244 |
245 | 246 | 247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 | 257 |
258 |
259 | 261 |
262 |
263 | 264 | 265 | 266 | 267 |
268 |
269 | 270 |
271 |
272 | 274 |
275 |
276 | 277 | 278 | 279 |
280 |
281 | 282 |
283 |
284 | 286 |
287 |
288 | 289 | 290 | 291 | 292 | 293 |
294 |
295 |
296 | 297 | 298 |
299 |
300 | 301 | 302 |
303 |
304 |
305 | 306 | 307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 | 317 |
318 |
319 | 321 |
322 |
323 | 324 | 325 | 326 | 327 |
328 |
329 | 330 |
331 |
332 | 334 |
335 |
336 | 337 | 338 | 339 |
340 |
341 | 342 |
343 |
344 | 346 |
347 |
348 | 349 | 350 | 351 | 352 | 353 |
354 |
355 |
356 | 357 | 358 |
359 |
360 | 361 | 362 |
363 |
364 |
365 | 366 | 367 |
368 |
369 |
370 |
371 |
372 |
373 |
374 | 380 |
381 |
382 |
383 | 384 | 385 | 390 | 391 | 392 | {% endblock %} 393 | -------------------------------------------------------------------------------- /portal/templates/portal/student_view.html: -------------------------------------------------------------------------------- 1 | {% extends 'portal/base.html' %} 2 | {% load staticfiles %} 3 | {% load widget_tweaks %} 4 | {% block title %}Portal-Fill{% endblock %} 5 | {% block extend_head %} 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 28 | 29 | 30 | 31 | 32 | 33 | 40 | 41 | 42 | 43 | 44 | {% endblock %} 45 | {% block content %} 46 |
47 |
48 |
49 | 50 | Welcome {{request.user}} 51 |
52 | 55 | 56 |
57 |
58 | SELECT THE COURSE TO GIVE FEEDBACK 59 |
60 |
61 | IDST230C 62 | IDST230C 63 | IDST230C 64 | IDST230C 65 | IDST230C 66 |
67 |
68 |
69 |
70 |
71 | {% csrf_token %} 72 |
73 |
74 |
75 |
76 | 77 |
78 |
79 | {% render_field form.student %} 80 | {% render_field form.mcq_1 %} 81 | 82 |
83 |
84 | 85 | 86 | 87 | 88 |
89 |
90 | 91 |
92 |
93 | {% render_field form.mcq_2 %} 94 |
95 |
96 | 97 | 98 | 99 |
100 |
101 | 102 |
103 |
104 | {% render_field form.mcq_3 %} 105 |
106 |
107 | 108 | 109 | 110 | 111 | 112 |
113 |
114 |
115 | {% render_field form.textual_question_1 %} 116 | 117 |
118 |
119 | 120 | 121 |
122 |
123 |
124 | {% render_field form.textual_question_2 %} 125 | 126 |
127 |
128 | 129 |
130 |
131 | 134 |
135 |
136 | 137 | 138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 | 147 |
148 |
149 | 151 |
152 |
153 | 154 | 155 | 156 | 157 |
158 |
159 | 160 |
161 |
162 | 164 |
165 |
166 | 167 | 168 | 169 |
170 |
171 | 172 |
173 |
174 | 176 |
177 |
178 | 179 | 180 | 181 | 182 | 183 |
184 |
185 |
186 | 187 | 188 |
189 |
190 | 191 | 192 |
193 |
194 |
195 | 196 | 197 |
198 |
199 |
200 |
201 | 204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 | 214 |
215 |
216 | 218 |
219 |
220 | 221 | 222 | 223 | 224 |
225 |
226 | 227 |
228 |
229 | 231 |
232 |
233 | 234 | 235 | 236 |
237 |
238 | 239 |
240 |
241 | 243 |
244 |
245 | 246 | 247 | 248 | 249 | 250 |
251 |
252 |
253 | 254 | 255 |
256 |
257 | 258 | 259 |
260 |
261 |
262 | 263 | 264 |
265 |
266 |
267 |
268 | 271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 | 281 |
282 |
283 | 285 |
286 |
287 | 288 | 289 | 290 | 291 |
292 |
293 | 294 |
295 |
296 | 298 |
299 |
300 | 301 | 302 | 303 |
304 |
305 | 306 |
307 |
308 | 310 |
311 |
312 | 313 | 314 | 315 | 316 | 317 |
318 |
319 |
320 | 321 | 322 |
323 |
324 | 325 | 326 |
327 |
328 |
329 | 330 | 331 |
332 |
333 |
334 |
335 | 338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
346 |
347 | 348 |
349 |
350 | 352 |
353 |
354 | 355 | 356 | 357 | 358 |
359 |
360 | 361 |
362 |
363 | 365 |
366 |
367 | 368 | 369 | 370 |
371 |
372 | 373 |
374 |
375 | 377 |
378 |
379 | 380 | 381 | 382 | 383 | 384 |
385 |
386 |
387 | 388 | 389 |
390 |
391 | 392 | 393 |
394 |
395 |
396 | 397 | 398 |
399 |
400 |
401 |
402 | 405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 | 418 |
419 |
420 |
421 | 422 | 423 | 428 | 429 | 430 | {% endblock %} 431 | -------------------------------------------------------------------------------- /portal/static/css/student_view.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400italic"); 2 | 3 | /* 4 | Strata by HTML5 UP 5 | html5up.net | @ajlkn 6 | Free for personal and commercial use under the CCA 3.0 license (html5up.net/license) 7 | */ 8 | #header > nav { 9 | -moz-flex-grow: 1; 10 | -webkit-flex-grow: 1; 11 | -ms-flex-grow: 1; 12 | flex-grow: 1; 13 | } 14 | 15 | #header > nav ul { 16 | list-style: none; 17 | margin: 0; 18 | padding: 0; 19 | } 20 | 21 | #header > nav ul li { 22 | border-top: solid 2px #281f1b; 23 | display: block; 24 | padding: 0; 25 | } 26 | 27 | #header > nav ul li a { 28 | -moz-transition: none; 29 | -webkit-transition: none; 30 | -ms-transition: none; 31 | transition: none; 32 | border: 0; 33 | color: #ffffff !important; 34 | display: block; 35 | padding: 0.85em 0; 36 | text-decoration: none; 37 | } 38 | 39 | #header > nav ul li a.active { 40 | background: #423029; 41 | color: #4acaa8 !important; 42 | } 43 | 44 | #header > nav ul li:first-child { 45 | border-top: 0; 46 | } 47 | /* Reset */ 48 | 49 | html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { 50 | margin: 0; 51 | padding: 0; 52 | border: 0; 53 | font-size: 100%; 54 | font: inherit; 55 | vertical-align: baseline; 56 | } 57 | 58 | article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { 59 | display: block; 60 | } 61 | 62 | body { 63 | line-height: 1; 64 | } 65 | 66 | ol, ul { 67 | list-style: none; 68 | } 69 | 70 | blockquote, q { 71 | quotes: none; 72 | } 73 | 74 | blockquote:before, blockquote:after, q:before, q:after { 75 | content: ''; 76 | content: none; 77 | } 78 | 79 | table { 80 | border-collapse: collapse; 81 | border-spacing: 0; 82 | } 83 | 84 | body { 85 | -webkit-text-size-adjust: none; 86 | } 87 | 88 | /* Box Model */ 89 | 90 | *, *:before, *:after { 91 | -moz-box-sizing: border-box; 92 | -webkit-box-sizing: border-box; 93 | box-sizing: border-box; 94 | } 95 | 96 | /* Containers */ 97 | 98 | .container { 99 | margin-left: auto; 100 | margin-right: auto; 101 | } 102 | 103 | .container.\31 25\25 { 104 | width: 100%; 105 | max-width: 1200px; 106 | min-width: 960px; 107 | } 108 | 109 | .container.\37 5\25 { 110 | width: 720px; 111 | } 112 | 113 | .container.\35 0\25 { 114 | width: 480px; 115 | } 116 | 117 | .container.\32 5\25 { 118 | width: 240px; 119 | } 120 | 121 | .container { 122 | width: 960px; 123 | } 124 | 125 | @media screen and (max-width: 1800px) { 126 | 127 | .container.\31 25\25 { 128 | width: 100%; 129 | max-width: 1200px; 130 | min-width: 960px; 131 | } 132 | 133 | .container.\37 5\25 { 134 | width: 720px; 135 | } 136 | 137 | .container.\35 0\25 { 138 | width: 480px; 139 | } 140 | 141 | .container.\32 5\25 { 142 | width: 240px; 143 | } 144 | 145 | .container { 146 | width: 960px; 147 | } 148 | 149 | } 150 | 151 | @media screen and (max-width: 1280px) { 152 | 153 | .container.\31 25\25 { 154 | width: 100%; 155 | max-width: 1200px; 156 | min-width: 960px; 157 | } 158 | 159 | .container.\37 5\25 { 160 | width: 720px; 161 | } 162 | 163 | .container.\35 0\25 { 164 | width: 480px; 165 | } 166 | 167 | .container.\32 5\25 { 168 | width: 240px; 169 | } 170 | 171 | .container { 172 | width: 960px; 173 | } 174 | 175 | } 176 | 177 | @media screen and (max-width: 980px) { 178 | 179 | .container.\31 25\25 { 180 | width: 100%; 181 | max-width: 1200px; 182 | min-width: 960px; 183 | } 184 | 185 | .container.\37 5\25 { 186 | width: 720px; 187 | } 188 | 189 | .container.\35 0\25 { 190 | width: 480px; 191 | } 192 | 193 | .container.\32 5\25 { 194 | width: 240px; 195 | } 196 | 197 | .container { 198 | width: 960px; 199 | } 200 | 201 | } 202 | 203 | @media screen and (max-width: 736px) { 204 | 205 | .container.\31 25\25 { 206 | width: 100%; 207 | max-width: 1200px; 208 | min-width: 960px; 209 | } 210 | 211 | .container.\37 5\25 { 212 | width: 720px; 213 | } 214 | 215 | .container.\35 0\25 { 216 | width: 480px; 217 | } 218 | 219 | .container.\32 5\25 { 220 | width: 240px; 221 | } 222 | 223 | .container { 224 | width: 960px; 225 | } 226 | 227 | } 228 | 229 | @media screen and (max-width: 480px) { 230 | 231 | .container.\31 25\25 { 232 | width: 100%; 233 | max-width: 1200px; 234 | min-width: 960px; 235 | } 236 | 237 | .container.\37 5\25 { 238 | width: 720px; 239 | } 240 | 241 | .container.\35 0\25 { 242 | width: 480px; 243 | } 244 | 245 | .container.\32 5\25 { 246 | width: 240px; 247 | } 248 | 249 | .container { 250 | width: 960px; 251 | } 252 | 253 | } 254 | 255 | /* Grid */ 256 | 257 | .row { 258 | border-bottom: solid 1px transparent; 259 | -moz-box-sizing: border-box; 260 | -webkit-box-sizing: border-box; 261 | box-sizing: border-box; 262 | } 263 | 264 | .row > * { 265 | float: left; 266 | -moz-box-sizing: border-box; 267 | -webkit-box-sizing: border-box; 268 | box-sizing: border-box; 269 | } 270 | 271 | .row:after, .row:before { 272 | content: ''; 273 | display: block; 274 | clear: both; 275 | height: 0; 276 | } 277 | 278 | .row.uniform > * > :first-child { 279 | margin-top: 0; 280 | } 281 | 282 | .row.uniform > * > :last-child { 283 | margin-bottom: 0; 284 | } 285 | 286 | .row.\30 \25 > * { 287 | padding: 0 0 0 0em; 288 | } 289 | 290 | .row.\30 \25 { 291 | margin: 0 0 -1px 0em; 292 | } 293 | 294 | .row.uniform.\30 \25 > * { 295 | padding: 0em 0 0 0em; 296 | } 297 | 298 | .row.uniform.\30 \25 { 299 | margin: 0em 0 -1px 0em; 300 | } 301 | 302 | .row > * { 303 | padding: 0 0 0 2.5em; 304 | } 305 | 306 | .row { 307 | margin: 0 0 -1px -2.5em; 308 | } 309 | 310 | .row.uniform > * { 311 | padding: 2.5em 0 0 2.5em; 312 | } 313 | 314 | .row.uniform { 315 | margin: -2.5em 0 -1px -2.5em; 316 | } 317 | 318 | .row.\32 00\25 > * { 319 | padding: 0 0 0 5em; 320 | } 321 | 322 | .row.\32 00\25 { 323 | margin: 0 0 -1px -5em; 324 | } 325 | 326 | .row.uniform.\32 00\25 > * { 327 | padding: 5em 0 0 5em; 328 | } 329 | 330 | .row.uniform.\32 00\25 { 331 | margin: -5em 0 -1px -5em; 332 | } 333 | 334 | .row.\31 50\25 > * { 335 | padding: 0 0 0 3.75em; 336 | } 337 | 338 | .row.\31 50\25 { 339 | margin: 0 0 -1px -3.75em; 340 | } 341 | 342 | .row.uniform.\31 50\25 > * { 343 | padding: 3.75em 0 0 3.75em; 344 | } 345 | 346 | .row.uniform.\31 50\25 { 347 | margin: -3.75em 0 -1px -3.75em; 348 | } 349 | 350 | .row.\35 0\25 > * { 351 | padding: 0 0 0 1.25em; 352 | } 353 | 354 | .row.\35 0\25 { 355 | margin: 0 0 -1px -1.25em; 356 | } 357 | 358 | .row.uniform.\35 0\25 > * { 359 | padding: 1.25em 0 0 1.25em; 360 | } 361 | 362 | .row.uniform.\35 0\25 { 363 | margin: -1.25em 0 -1px -1.25em; 364 | } 365 | 366 | .row.\32 5\25 > * { 367 | padding: 0 0 0 0.625em; 368 | } 369 | 370 | .row.\32 5\25 { 371 | margin: 0 0 -1px -0.625em; 372 | } 373 | 374 | .row.uniform.\32 5\25 > * { 375 | padding: 0.625em 0 0 0.625em; 376 | } 377 | 378 | .row.uniform.\32 5\25 { 379 | margin: -0.625em 0 -1px -0.625em; 380 | } 381 | 382 | .\31 2u, .\31 2u\24 { 383 | width: 100%; 384 | clear: none; 385 | margin-left: 0; 386 | } 387 | 388 | .\31 1u, .\31 1u\24 { 389 | width: 91.6666666667%; 390 | clear: none; 391 | margin-left: 0; 392 | } 393 | 394 | .\31 0u, .\31 0u\24 { 395 | width: 83.3333333333%; 396 | clear: none; 397 | margin-left: 0; 398 | } 399 | 400 | .\39 u, .\39 u\24 { 401 | width: 75%; 402 | clear: none; 403 | margin-left: 0; 404 | } 405 | 406 | .\38 u, .\38 u\24 { 407 | width: 66.6666666667%; 408 | clear: none; 409 | margin-left: 0; 410 | } 411 | 412 | .\37 u, .\37 u\24 { 413 | width: 58.3333333333%; 414 | clear: none; 415 | margin-left: 0; 416 | } 417 | 418 | .\36 u, .\36 u\24 { 419 | width: 50%; 420 | clear: none; 421 | margin-left: 0; 422 | } 423 | 424 | .\35 u, .\35 u\24 { 425 | width: 41.6666666667%; 426 | clear: none; 427 | margin-left: 0; 428 | } 429 | 430 | .\34 u, .\34 u\24 { 431 | width: 33.3333333333%; 432 | clear: none; 433 | margin-left: 0; 434 | } 435 | 436 | .\33 u, .\33 u\24 { 437 | width: 25%; 438 | clear: none; 439 | margin-left: 0; 440 | } 441 | 442 | .\32 u, .\32 u\24 { 443 | width: 16.6666666667%; 444 | clear: none; 445 | margin-left: 0; 446 | } 447 | 448 | .\31 u, .\31 u\24 { 449 | width: 8.3333333333%; 450 | clear: none; 451 | margin-left: 0; 452 | } 453 | 454 | .\31 2u\24 + *, 455 | .\31 1u\24 + *, 456 | .\31 0u\24 + *, 457 | .\39 u\24 + *, 458 | .\38 u\24 + *, 459 | .\37 u\24 + *, 460 | .\36 u\24 + *, 461 | .\35 u\24 + *, 462 | .\34 u\24 + *, 463 | .\33 u\24 + *, 464 | .\32 u\24 + *, 465 | .\31 u\24 + * { 466 | clear: left; 467 | } 468 | 469 | .\-11u { 470 | margin-left: 91.66667%; 471 | } 472 | 473 | .\-10u { 474 | margin-left: 83.33333%; 475 | } 476 | 477 | .\-9u { 478 | margin-left: 75%; 479 | } 480 | 481 | .\-8u { 482 | margin-left: 66.66667%; 483 | } 484 | 485 | .\-7u { 486 | margin-left: 58.33333%; 487 | } 488 | 489 | .\-6u { 490 | margin-left: 50%; 491 | } 492 | 493 | .\-5u { 494 | margin-left: 41.66667%; 495 | } 496 | 497 | .\-4u { 498 | margin-left: 33.33333%; 499 | } 500 | 501 | .\-3u { 502 | margin-left: 25%; 503 | } 504 | 505 | .\-2u { 506 | margin-left: 16.66667%; 507 | } 508 | 509 | .\-1u { 510 | margin-left: 8.33333%; 511 | } 512 | 513 | @media screen and (max-width: 1800px) { 514 | 515 | .row > * { 516 | padding: 0 0 0 2.5em; 517 | } 518 | 519 | .row { 520 | margin: 0 0 -1px -2.5em; 521 | } 522 | 523 | .row.uniform > * { 524 | padding: 2.5em 0 0 2.5em; 525 | } 526 | 527 | .row.uniform { 528 | margin: -2.5em 0 -1px -2.5em; 529 | } 530 | 531 | .row.\32 00\25 > * { 532 | padding: 0 0 0 5em; 533 | } 534 | 535 | .row.\32 00\25 { 536 | margin: 0 0 -1px -5em; 537 | } 538 | 539 | .row.uniform.\32 00\25 > * { 540 | padding: 5em 0 0 5em; 541 | } 542 | 543 | .row.uniform.\32 00\25 { 544 | margin: -5em 0 -1px -5em; 545 | } 546 | 547 | .row.\31 50\25 > * { 548 | padding: 0 0 0 3.75em; 549 | } 550 | 551 | .row.\31 50\25 { 552 | margin: 0 0 -1px -3.75em; 553 | } 554 | 555 | .row.uniform.\31 50\25 > * { 556 | padding: 3.75em 0 0 3.75em; 557 | } 558 | 559 | .row.uniform.\31 50\25 { 560 | margin: -3.75em 0 -1px -3.75em; 561 | } 562 | 563 | .row.\35 0\25 > * { 564 | padding: 0 0 0 1.25em; 565 | } 566 | 567 | .row.\35 0\25 { 568 | margin: 0 0 -1px -1.25em; 569 | } 570 | 571 | .row.uniform.\35 0\25 > * { 572 | padding: 1.25em 0 0 1.25em; 573 | } 574 | 575 | .row.uniform.\35 0\25 { 576 | margin: -1.25em 0 -1px -1.25em; 577 | } 578 | 579 | .row.\32 5\25 > * { 580 | padding: 0 0 0 0.625em; 581 | } 582 | 583 | .row.\32 5\25 { 584 | margin: 0 0 -1px -0.625em; 585 | } 586 | 587 | .row.uniform.\32 5\25 > * { 588 | padding: 0.625em 0 0 0.625em; 589 | } 590 | 591 | .row.uniform.\32 5\25 { 592 | margin: -0.625em 0 -1px -0.625em; 593 | } 594 | 595 | .\31 2u\28xlarge\29, .\31 2u\24\28xlarge\29 { 596 | width: 100%; 597 | clear: none; 598 | margin-left: 0; 599 | } 600 | 601 | .\31 1u\28xlarge\29, .\31 1u\24\28xlarge\29 { 602 | width: 91.6666666667%; 603 | clear: none; 604 | margin-left: 0; 605 | } 606 | 607 | .\31 0u\28xlarge\29, .\31 0u\24\28xlarge\29 { 608 | width: 83.3333333333%; 609 | clear: none; 610 | margin-left: 0; 611 | } 612 | 613 | .\39 u\28xlarge\29, .\39 u\24\28xlarge\29 { 614 | width: 75%; 615 | clear: none; 616 | margin-left: 0; 617 | } 618 | 619 | .\38 u\28xlarge\29, .\38 u\24\28xlarge\29 { 620 | width: 66.6666666667%; 621 | clear: none; 622 | margin-left: 0; 623 | } 624 | 625 | .\37 u\28xlarge\29, .\37 u\24\28xlarge\29 { 626 | width: 58.3333333333%; 627 | clear: none; 628 | margin-left: 0; 629 | } 630 | 631 | .\36 u\28xlarge\29, .\36 u\24\28xlarge\29 { 632 | width: 50%; 633 | clear: none; 634 | margin-left: 0; 635 | } 636 | 637 | .\35 u\28xlarge\29, .\35 u\24\28xlarge\29 { 638 | width: 41.6666666667%; 639 | clear: none; 640 | margin-left: 0; 641 | } 642 | 643 | .\34 u\28xlarge\29, .\34 u\24\28xlarge\29 { 644 | width: 33.3333333333%; 645 | clear: none; 646 | margin-left: 0; 647 | } 648 | 649 | .\33 u\28xlarge\29, .\33 u\24\28xlarge\29 { 650 | width: 25%; 651 | clear: none; 652 | margin-left: 0; 653 | } 654 | 655 | .\32 u\28xlarge\29, .\32 u\24\28xlarge\29 { 656 | width: 16.6666666667%; 657 | clear: none; 658 | margin-left: 0; 659 | } 660 | 661 | .\31 u\28xlarge\29, .\31 u\24\28xlarge\29 { 662 | width: 8.3333333333%; 663 | clear: none; 664 | margin-left: 0; 665 | } 666 | 667 | .\31 2u\24\28xlarge\29 + *, 668 | .\31 1u\24\28xlarge\29 + *, 669 | .\31 0u\24\28xlarge\29 + *, 670 | .\39 u\24\28xlarge\29 + *, 671 | .\38 u\24\28xlarge\29 + *, 672 | .\37 u\24\28xlarge\29 + *, 673 | .\36 u\24\28xlarge\29 + *, 674 | .\35 u\24\28xlarge\29 + *, 675 | .\34 u\24\28xlarge\29 + *, 676 | .\33 u\24\28xlarge\29 + *, 677 | .\32 u\24\28xlarge\29 + *, 678 | .\31 u\24\28xlarge\29 + * { 679 | clear: left; 680 | } 681 | 682 | .\-11u\28xlarge\29 { 683 | margin-left: 91.66667%; 684 | } 685 | 686 | .\-10u\28xlarge\29 { 687 | margin-left: 83.33333%; 688 | } 689 | 690 | .\-9u\28xlarge\29 { 691 | margin-left: 75%; 692 | } 693 | 694 | .\-8u\28xlarge\29 { 695 | margin-left: 66.66667%; 696 | } 697 | 698 | .\-7u\28xlarge\29 { 699 | margin-left: 58.33333%; 700 | } 701 | 702 | .\-6u\28xlarge\29 { 703 | margin-left: 50%; 704 | } 705 | 706 | .\-5u\28xlarge\29 { 707 | margin-left: 41.66667%; 708 | } 709 | 710 | .\-4u\28xlarge\29 { 711 | margin-left: 33.33333%; 712 | } 713 | 714 | .\-3u\28xlarge\29 { 715 | margin-left: 25%; 716 | } 717 | 718 | .\-2u\28xlarge\29 { 719 | margin-left: 16.66667%; 720 | } 721 | 722 | .\-1u\28xlarge\29 { 723 | margin-left: 8.33333%; 724 | } 725 | 726 | } 727 | 728 | @media screen and (max-width: 1280px) { 729 | 730 | .row > * { 731 | padding: 0 0 0 2em; 732 | } 733 | 734 | .row { 735 | margin: 0 0 -1px -2em; 736 | } 737 | 738 | .row.uniform > * { 739 | padding: 2em 0 0 2em; 740 | } 741 | 742 | .row.uniform { 743 | margin: -2em 0 -1px -2em; 744 | } 745 | 746 | .row.\32 00\25 > * { 747 | padding: 0 0 0 4em; 748 | } 749 | 750 | .row.\32 00\25 { 751 | margin: 0 0 -1px -4em; 752 | } 753 | 754 | .row.uniform.\32 00\25 > * { 755 | padding: 4em 0 0 4em; 756 | } 757 | 758 | .row.uniform.\32 00\25 { 759 | margin: -4em 0 -1px -4em; 760 | } 761 | 762 | .row.\31 50\25 > * { 763 | padding: 0 0 0 3em; 764 | } 765 | 766 | .row.\31 50\25 { 767 | margin: 0 0 -1px -3em; 768 | } 769 | 770 | .row.uniform.\31 50\25 > * { 771 | padding: 3em 0 0 3em; 772 | } 773 | 774 | .row.uniform.\31 50\25 { 775 | margin: -3em 0 -1px -3em; 776 | } 777 | 778 | .row.\35 0\25 > * { 779 | padding: 0 0 0 1em; 780 | } 781 | 782 | .row.\35 0\25 { 783 | margin: 0 0 -1px -1em; 784 | } 785 | 786 | .row.uniform.\35 0\25 > * { 787 | padding: 1em 0 0 1em; 788 | } 789 | 790 | .row.uniform.\35 0\25 { 791 | margin: -1em 0 -1px -1em; 792 | } 793 | 794 | .row.\32 5\25 > * { 795 | padding: 0 0 0 0.5em; 796 | } 797 | 798 | .row.\32 5\25 { 799 | margin: 0 0 -1px -0.5em; 800 | } 801 | 802 | .row.uniform.\32 5\25 > * { 803 | padding: 0.5em 0 0 0.5em; 804 | } 805 | 806 | .row.uniform.\32 5\25 { 807 | margin: -0.5em 0 -1px -0.5em; 808 | } 809 | 810 | .\31 2u\28large\29, .\31 2u\24\28large\29 { 811 | width: 100%; 812 | clear: none; 813 | margin-left: 0; 814 | } 815 | 816 | .\31 1u\28large\29, .\31 1u\24\28large\29 { 817 | width: 91.6666666667%; 818 | clear: none; 819 | margin-left: 0; 820 | } 821 | 822 | .\31 0u\28large\29, .\31 0u\24\28large\29 { 823 | width: 83.3333333333%; 824 | clear: none; 825 | margin-left: 0; 826 | } 827 | 828 | .\39 u\28large\29, .\39 u\24\28large\29 { 829 | width: 75%; 830 | clear: none; 831 | margin-left: 0; 832 | } 833 | 834 | .\38 u\28large\29, .\38 u\24\28large\29 { 835 | width: 66.6666666667%; 836 | clear: none; 837 | margin-left: 0; 838 | } 839 | 840 | .\37 u\28large\29, .\37 u\24\28large\29 { 841 | width: 58.3333333333%; 842 | clear: none; 843 | margin-left: 0; 844 | } 845 | 846 | .\36 u\28large\29, .\36 u\24\28large\29 { 847 | width: 50%; 848 | clear: none; 849 | margin-left: 0; 850 | } 851 | 852 | .\35 u\28large\29, .\35 u\24\28large\29 { 853 | width: 41.6666666667%; 854 | clear: none; 855 | margin-left: 0; 856 | } 857 | 858 | .\34 u\28large\29, .\34 u\24\28large\29 { 859 | width: 33.3333333333%; 860 | clear: none; 861 | margin-left: 0; 862 | } 863 | 864 | .\33 u\28large\29, .\33 u\24\28large\29 { 865 | width: 25%; 866 | clear: none; 867 | margin-left: 0; 868 | } 869 | 870 | .\32 u\28large\29, .\32 u\24\28large\29 { 871 | width: 16.6666666667%; 872 | clear: none; 873 | margin-left: 0; 874 | } 875 | 876 | .\31 u\28large\29, .\31 u\24\28large\29 { 877 | width: 8.3333333333%; 878 | clear: none; 879 | margin-left: 0; 880 | } 881 | 882 | .\31 2u\24\28large\29 + *, 883 | .\31 1u\24\28large\29 + *, 884 | .\31 0u\24\28large\29 + *, 885 | .\39 u\24\28large\29 + *, 886 | .\38 u\24\28large\29 + *, 887 | .\37 u\24\28large\29 + *, 888 | .\36 u\24\28large\29 + *, 889 | .\35 u\24\28large\29 + *, 890 | .\34 u\24\28large\29 + *, 891 | .\33 u\24\28large\29 + *, 892 | .\32 u\24\28large\29 + *, 893 | .\31 u\24\28large\29 + * { 894 | clear: left; 895 | } 896 | 897 | .\-11u\28large\29 { 898 | margin-left: 91.66667%; 899 | } 900 | 901 | .\-10u\28large\29 { 902 | margin-left: 83.33333%; 903 | } 904 | 905 | .\-9u\28large\29 { 906 | margin-left: 75%; 907 | } 908 | 909 | .\-8u\28large\29 { 910 | margin-left: 66.66667%; 911 | } 912 | 913 | .\-7u\28large\29 { 914 | margin-left: 58.33333%; 915 | } 916 | 917 | .\-6u\28large\29 { 918 | margin-left: 50%; 919 | } 920 | 921 | .\-5u\28large\29 { 922 | margin-left: 41.66667%; 923 | } 924 | 925 | .\-4u\28large\29 { 926 | margin-left: 33.33333%; 927 | } 928 | 929 | .\-3u\28large\29 { 930 | margin-left: 25%; 931 | } 932 | 933 | .\-2u\28large\29 { 934 | margin-left: 16.66667%; 935 | } 936 | 937 | .\-1u\28large\29 { 938 | margin-left: 8.33333%; 939 | } 940 | 941 | } 942 | 943 | @media screen and (max-width: 980px) { 944 | 945 | .row > * { 946 | padding: 0 0 0 2em; 947 | } 948 | 949 | .row { 950 | margin: 0 0 -1px -2em; 951 | } 952 | 953 | .row.uniform > * { 954 | padding: 2em 0 0 2em; 955 | } 956 | 957 | .row.uniform { 958 | margin: -2em 0 -1px -2em; 959 | } 960 | 961 | .row.\32 00\25 > * { 962 | padding: 0 0 0 4em; 963 | } 964 | 965 | .row.\32 00\25 { 966 | margin: 0 0 -1px -4em; 967 | } 968 | 969 | .row.uniform.\32 00\25 > * { 970 | padding: 4em 0 0 4em; 971 | } 972 | 973 | .row.uniform.\32 00\25 { 974 | margin: -4em 0 -1px -4em; 975 | } 976 | 977 | .row.\31 50\25 > * { 978 | padding: 0 0 0 3em; 979 | } 980 | 981 | .row.\31 50\25 { 982 | margin: 0 0 -1px -3em; 983 | } 984 | 985 | .row.uniform.\31 50\25 > * { 986 | padding: 3em 0 0 3em; 987 | } 988 | 989 | .row.uniform.\31 50\25 { 990 | margin: -3em 0 -1px -3em; 991 | } 992 | 993 | .row.\35 0\25 > * { 994 | padding: 0 0 0 1em; 995 | } 996 | 997 | .row.\35 0\25 { 998 | margin: 0 0 -1px -1em; 999 | } 1000 | 1001 | .row.uniform.\35 0\25 > * { 1002 | padding: 1em 0 0 1em; 1003 | } 1004 | 1005 | .row.uniform.\35 0\25 { 1006 | margin: -1em 0 -1px -1em; 1007 | } 1008 | 1009 | .row.\32 5\25 > * { 1010 | padding: 0 0 0 0.5em; 1011 | } 1012 | 1013 | .row.\32 5\25 { 1014 | margin: 0 0 -1px -0.5em; 1015 | } 1016 | 1017 | .row.uniform.\32 5\25 > * { 1018 | padding: 0.5em 0 0 0.5em; 1019 | } 1020 | 1021 | .row.uniform.\32 5\25 { 1022 | margin: -0.5em 0 -1px -0.5em; 1023 | } 1024 | 1025 | .\31 2u\28medium\29, .\31 2u\24\28medium\29 { 1026 | width: 100%; 1027 | clear: none; 1028 | margin-left: 0; 1029 | } 1030 | 1031 | .\31 1u\28medium\29, .\31 1u\24\28medium\29 { 1032 | width: 91.6666666667%; 1033 | clear: none; 1034 | margin-left: 0; 1035 | } 1036 | 1037 | .\31 0u\28medium\29, .\31 0u\24\28medium\29 { 1038 | width: 83.3333333333%; 1039 | clear: none; 1040 | margin-left: 0; 1041 | } 1042 | 1043 | .\39 u\28medium\29, .\39 u\24\28medium\29 { 1044 | width: 75%; 1045 | clear: none; 1046 | margin-left: 0; 1047 | } 1048 | 1049 | .\38 u\28medium\29, .\38 u\24\28medium\29 { 1050 | width: 66.6666666667%; 1051 | clear: none; 1052 | margin-left: 0; 1053 | } 1054 | 1055 | .\37 u\28medium\29, .\37 u\24\28medium\29 { 1056 | width: 58.3333333333%; 1057 | clear: none; 1058 | margin-left: 0; 1059 | } 1060 | 1061 | .\36 u\28medium\29, .\36 u\24\28medium\29 { 1062 | width: 50%; 1063 | clear: none; 1064 | margin-left: 0; 1065 | } 1066 | 1067 | .\35 u\28medium\29, .\35 u\24\28medium\29 { 1068 | width: 41.6666666667%; 1069 | clear: none; 1070 | margin-left: 0; 1071 | } 1072 | 1073 | .\34 u\28medium\29, .\34 u\24\28medium\29 { 1074 | width: 33.3333333333%; 1075 | clear: none; 1076 | margin-left: 0; 1077 | } 1078 | 1079 | .\33 u\28medium\29, .\33 u\24\28medium\29 { 1080 | width: 25%; 1081 | clear: none; 1082 | margin-left: 0; 1083 | } 1084 | 1085 | .\32 u\28medium\29, .\32 u\24\28medium\29 { 1086 | width: 16.6666666667%; 1087 | clear: none; 1088 | margin-left: 0; 1089 | } 1090 | 1091 | .\31 u\28medium\29, .\31 u\24\28medium\29 { 1092 | width: 8.3333333333%; 1093 | clear: none; 1094 | margin-left: 0; 1095 | } 1096 | 1097 | .\31 2u\24\28medium\29 + *, 1098 | .\31 1u\24\28medium\29 + *, 1099 | .\31 0u\24\28medium\29 + *, 1100 | .\39 u\24\28medium\29 + *, 1101 | .\38 u\24\28medium\29 + *, 1102 | .\37 u\24\28medium\29 + *, 1103 | .\36 u\24\28medium\29 + *, 1104 | .\35 u\24\28medium\29 + *, 1105 | .\34 u\24\28medium\29 + *, 1106 | .\33 u\24\28medium\29 + *, 1107 | .\32 u\24\28medium\29 + *, 1108 | .\31 u\24\28medium\29 + * { 1109 | clear: left; 1110 | } 1111 | 1112 | .\-11u\28medium\29 { 1113 | margin-left: 91.66667%; 1114 | } 1115 | 1116 | .\-10u\28medium\29 { 1117 | margin-left: 83.33333%; 1118 | } 1119 | 1120 | .\-9u\28medium\29 { 1121 | margin-left: 75%; 1122 | } 1123 | 1124 | .\-8u\28medium\29 { 1125 | margin-left: 66.66667%; 1126 | } 1127 | 1128 | .\-7u\28medium\29 { 1129 | margin-left: 58.33333%; 1130 | } 1131 | 1132 | .\-6u\28medium\29 { 1133 | margin-left: 50%; 1134 | } 1135 | 1136 | .\-5u\28medium\29 { 1137 | margin-left: 41.66667%; 1138 | } 1139 | 1140 | .\-4u\28medium\29 { 1141 | margin-left: 33.33333%; 1142 | } 1143 | 1144 | .\-3u\28medium\29 { 1145 | margin-left: 25%; 1146 | } 1147 | 1148 | .\-2u\28medium\29 { 1149 | margin-left: 16.66667%; 1150 | } 1151 | 1152 | .\-1u\28medium\29 { 1153 | margin-left: 8.33333%; 1154 | } 1155 | 1156 | } 1157 | 1158 | @media screen and (max-width: 736px) { 1159 | 1160 | .row > * { 1161 | padding: 0 0 0 1.5em; 1162 | } 1163 | 1164 | .row { 1165 | margin: 0 0 -1px -1.5em; 1166 | } 1167 | 1168 | .row.uniform > * { 1169 | padding: 1.5em 0 0 1.5em; 1170 | } 1171 | 1172 | .row.uniform { 1173 | margin: -1.5em 0 -1px -1.5em; 1174 | } 1175 | 1176 | .row.\32 00\25 > * { 1177 | padding: 0 0 0 3em; 1178 | } 1179 | 1180 | .row.\32 00\25 { 1181 | margin: 0 0 -1px -3em; 1182 | } 1183 | 1184 | .row.uniform.\32 00\25 > * { 1185 | padding: 3em 0 0 3em; 1186 | } 1187 | 1188 | .row.uniform.\32 00\25 { 1189 | margin: -3em 0 -1px -3em; 1190 | } 1191 | 1192 | .row.\31 50\25 > * { 1193 | padding: 0 0 0 2.25em; 1194 | } 1195 | 1196 | .row.\31 50\25 { 1197 | margin: 0 0 -1px -2.25em; 1198 | } 1199 | 1200 | .row.uniform.\31 50\25 > * { 1201 | padding: 2.25em 0 0 2.25em; 1202 | } 1203 | 1204 | .row.uniform.\31 50\25 { 1205 | margin: -2.25em 0 -1px -2.25em; 1206 | } 1207 | 1208 | .row.\35 0\25 > * { 1209 | padding: 0 0 0 0.75em; 1210 | } 1211 | 1212 | .row.\35 0\25 { 1213 | margin: 0 0 -1px -0.75em; 1214 | } 1215 | 1216 | .row.uniform.\35 0\25 > * { 1217 | padding: 0.75em 0 0 0.75em; 1218 | } 1219 | 1220 | .row.uniform.\35 0\25 { 1221 | margin: -0.75em 0 -1px -0.75em; 1222 | } 1223 | 1224 | .row.\32 5\25 > * { 1225 | padding: 0 0 0 0.375em; 1226 | } 1227 | 1228 | .row.\32 5\25 { 1229 | margin: 0 0 -1px -0.375em; 1230 | } 1231 | 1232 | .row.uniform.\32 5\25 > * { 1233 | padding: 0.375em 0 0 0.375em; 1234 | } 1235 | 1236 | .row.uniform.\32 5\25 { 1237 | margin: -0.375em 0 -1px -0.375em; 1238 | } 1239 | 1240 | .\31 2u\28small\29, .\31 2u\24\28small\29 { 1241 | width: 100%; 1242 | clear: none; 1243 | margin-left: 0; 1244 | } 1245 | 1246 | .\31 1u\28small\29, .\31 1u\24\28small\29 { 1247 | width: 91.6666666667%; 1248 | clear: none; 1249 | margin-left: 0; 1250 | } 1251 | 1252 | .\31 0u\28small\29, .\31 0u\24\28small\29 { 1253 | width: 83.3333333333%; 1254 | clear: none; 1255 | margin-left: 0; 1256 | } 1257 | 1258 | .\39 u\28small\29, .\39 u\24\28small\29 { 1259 | width: 75%; 1260 | clear: none; 1261 | margin-left: 0; 1262 | } 1263 | 1264 | .\38 u\28small\29, .\38 u\24\28small\29 { 1265 | width: 66.6666666667%; 1266 | clear: none; 1267 | margin-left: 0; 1268 | } 1269 | 1270 | .\37 u\28small\29, .\37 u\24\28small\29 { 1271 | width: 58.3333333333%; 1272 | clear: none; 1273 | margin-left: 0; 1274 | } 1275 | 1276 | .\36 u\28small\29, .\36 u\24\28small\29 { 1277 | width: 50%; 1278 | clear: none; 1279 | margin-left: 0; 1280 | } 1281 | 1282 | .\35 u\28small\29, .\35 u\24\28small\29 { 1283 | width: 41.6666666667%; 1284 | clear: none; 1285 | margin-left: 0; 1286 | } 1287 | 1288 | .\34 u\28small\29, .\34 u\24\28small\29 { 1289 | width: 33.3333333333%; 1290 | clear: none; 1291 | margin-left: 0; 1292 | } 1293 | 1294 | .\33 u\28small\29, .\33 u\24\28small\29 { 1295 | width: 25%; 1296 | clear: none; 1297 | margin-left: 0; 1298 | } 1299 | 1300 | .\32 u\28small\29, .\32 u\24\28small\29 { 1301 | width: 16.6666666667%; 1302 | clear: none; 1303 | margin-left: 0; 1304 | } 1305 | 1306 | .\31 u\28small\29, .\31 u\24\28small\29 { 1307 | width: 8.3333333333%; 1308 | clear: none; 1309 | margin-left: 0; 1310 | } 1311 | 1312 | .\31 2u\24\28small\29 + *, 1313 | .\31 1u\24\28small\29 + *, 1314 | .\31 0u\24\28small\29 + *, 1315 | .\39 u\24\28small\29 + *, 1316 | .\38 u\24\28small\29 + *, 1317 | .\37 u\24\28small\29 + *, 1318 | .\36 u\24\28small\29 + *, 1319 | .\35 u\24\28small\29 + *, 1320 | .\34 u\24\28small\29 + *, 1321 | .\33 u\24\28small\29 + *, 1322 | .\32 u\24\28small\29 + *, 1323 | .\31 u\24\28small\29 + * { 1324 | clear: left; 1325 | } 1326 | 1327 | .\-11u\28small\29 { 1328 | margin-left: 91.66667%; 1329 | } 1330 | 1331 | .\-10u\28small\29 { 1332 | margin-left: 83.33333%; 1333 | } 1334 | 1335 | .\-9u\28small\29 { 1336 | margin-left: 75%; 1337 | } 1338 | 1339 | .\-8u\28small\29 { 1340 | margin-left: 66.66667%; 1341 | } 1342 | 1343 | .\-7u\28small\29 { 1344 | margin-left: 58.33333%; 1345 | } 1346 | 1347 | .\-6u\28small\29 { 1348 | margin-left: 50%; 1349 | } 1350 | 1351 | .\-5u\28small\29 { 1352 | margin-left: 41.66667%; 1353 | } 1354 | 1355 | .\-4u\28small\29 { 1356 | margin-left: 33.33333%; 1357 | } 1358 | 1359 | .\-3u\28small\29 { 1360 | margin-left: 25%; 1361 | } 1362 | 1363 | .\-2u\28small\29 { 1364 | margin-left: 16.66667%; 1365 | } 1366 | 1367 | .\-1u\28small\29 { 1368 | margin-left: 8.33333%; 1369 | } 1370 | 1371 | } 1372 | 1373 | @media screen and (max-width: 480px) { 1374 | 1375 | .row > * { 1376 | padding: 0 0 0 1.5em; 1377 | } 1378 | 1379 | .row { 1380 | margin: 0 0 -1px -1.5em; 1381 | } 1382 | 1383 | .row.uniform > * { 1384 | padding: 1.5em 0 0 1.5em; 1385 | } 1386 | 1387 | .row.uniform { 1388 | margin: -1.5em 0 -1px -1.5em; 1389 | } 1390 | 1391 | .row.\32 00\25 > * { 1392 | padding: 0 0 0 3em; 1393 | } 1394 | 1395 | .row.\32 00\25 { 1396 | margin: 0 0 -1px -3em; 1397 | } 1398 | 1399 | .row.uniform.\32 00\25 > * { 1400 | padding: 3em 0 0 3em; 1401 | } 1402 | 1403 | .row.uniform.\32 00\25 { 1404 | margin: -3em 0 -1px -3em; 1405 | } 1406 | 1407 | .row.\31 50\25 > * { 1408 | padding: 0 0 0 2.25em; 1409 | } 1410 | 1411 | .row.\31 50\25 { 1412 | margin: 0 0 -1px -2.25em; 1413 | } 1414 | 1415 | .row.uniform.\31 50\25 > * { 1416 | padding: 2.25em 0 0 2.25em; 1417 | } 1418 | 1419 | .row.uniform.\31 50\25 { 1420 | margin: -2.25em 0 -1px -2.25em; 1421 | } 1422 | 1423 | .row.\35 0\25 > * { 1424 | padding: 0 0 0 0.75em; 1425 | } 1426 | 1427 | .row.\35 0\25 { 1428 | margin: 0 0 -1px -0.75em; 1429 | } 1430 | 1431 | .row.uniform.\35 0\25 > * { 1432 | padding: 0.75em 0 0 0.75em; 1433 | } 1434 | 1435 | .row.uniform.\35 0\25 { 1436 | margin: -0.75em 0 -1px -0.75em; 1437 | } 1438 | 1439 | .row.\32 5\25 > * { 1440 | padding: 0 0 0 0.375em; 1441 | } 1442 | 1443 | .row.\32 5\25 { 1444 | margin: 0 0 -1px -0.375em; 1445 | } 1446 | 1447 | .row.uniform.\32 5\25 > * { 1448 | padding: 0.375em 0 0 0.375em; 1449 | } 1450 | 1451 | .row.uniform.\32 5\25 { 1452 | margin: -0.375em 0 -1px -0.375em; 1453 | } 1454 | 1455 | .\31 2u\28xsmall\29, .\31 2u\24\28xsmall\29 { 1456 | width: 100%; 1457 | clear: none; 1458 | margin-left: 0; 1459 | } 1460 | 1461 | .\31 1u\28xsmall\29, .\31 1u\24\28xsmall\29 { 1462 | width: 91.6666666667%; 1463 | clear: none; 1464 | margin-left: 0; 1465 | } 1466 | 1467 | .\31 0u\28xsmall\29, .\31 0u\24\28xsmall\29 { 1468 | width: 83.3333333333%; 1469 | clear: none; 1470 | margin-left: 0; 1471 | } 1472 | 1473 | .\39 u\28xsmall\29, .\39 u\24\28xsmall\29 { 1474 | width: 75%; 1475 | clear: none; 1476 | margin-left: 0; 1477 | } 1478 | 1479 | .\38 u\28xsmall\29, .\38 u\24\28xsmall\29 { 1480 | width: 66.6666666667%; 1481 | clear: none; 1482 | margin-left: 0; 1483 | } 1484 | 1485 | .\37 u\28xsmall\29, .\37 u\24\28xsmall\29 { 1486 | width: 58.3333333333%; 1487 | clear: none; 1488 | margin-left: 0; 1489 | } 1490 | 1491 | .\36 u\28xsmall\29, .\36 u\24\28xsmall\29 { 1492 | width: 50%; 1493 | clear: none; 1494 | margin-left: 0; 1495 | } 1496 | 1497 | .\35 u\28xsmall\29, .\35 u\24\28xsmall\29 { 1498 | width: 41.6666666667%; 1499 | clear: none; 1500 | margin-left: 0; 1501 | } 1502 | 1503 | .\34 u\28xsmall\29, .\34 u\24\28xsmall\29 { 1504 | width: 33.3333333333%; 1505 | clear: none; 1506 | margin-left: 0; 1507 | } 1508 | 1509 | .\33 u\28xsmall\29, .\33 u\24\28xsmall\29 { 1510 | width: 25%; 1511 | clear: none; 1512 | margin-left: 0; 1513 | } 1514 | 1515 | .\32 u\28xsmall\29, .\32 u\24\28xsmall\29 { 1516 | width: 16.6666666667%; 1517 | clear: none; 1518 | margin-left: 0; 1519 | } 1520 | 1521 | .\31 u\28xsmall\29, .\31 u\24\28xsmall\29 { 1522 | width: 8.3333333333%; 1523 | clear: none; 1524 | margin-left: 0; 1525 | } 1526 | 1527 | .\31 2u\24\28xsmall\29 + *, 1528 | .\31 1u\24\28xsmall\29 + *, 1529 | .\31 0u\24\28xsmall\29 + *, 1530 | .\39 u\24\28xsmall\29 + *, 1531 | .\38 u\24\28xsmall\29 + *, 1532 | .\37 u\24\28xsmall\29 + *, 1533 | .\36 u\24\28xsmall\29 + *, 1534 | .\35 u\24\28xsmall\29 + *, 1535 | .\34 u\24\28xsmall\29 + *, 1536 | .\33 u\24\28xsmall\29 + *, 1537 | .\32 u\24\28xsmall\29 + *, 1538 | .\31 u\24\28xsmall\29 + * { 1539 | clear: left; 1540 | } 1541 | 1542 | .\-11u\28xsmall\29 { 1543 | margin-left: 91.66667%; 1544 | } 1545 | 1546 | .\-10u\28xsmall\29 { 1547 | margin-left: 83.33333%; 1548 | } 1549 | 1550 | .\-9u\28xsmall\29 { 1551 | margin-left: 75%; 1552 | } 1553 | 1554 | .\-8u\28xsmall\29 { 1555 | margin-left: 66.66667%; 1556 | } 1557 | 1558 | .\-7u\28xsmall\29 { 1559 | margin-left: 58.33333%; 1560 | } 1561 | 1562 | .\-6u\28xsmall\29 { 1563 | margin-left: 50%; 1564 | } 1565 | 1566 | .\-5u\28xsmall\29 { 1567 | margin-left: 41.66667%; 1568 | } 1569 | 1570 | .\-4u\28xsmall\29 { 1571 | margin-left: 33.33333%; 1572 | } 1573 | 1574 | .\-3u\28xsmall\29 { 1575 | margin-left: 25%; 1576 | } 1577 | 1578 | .\-2u\28xsmall\29 { 1579 | margin-left: 16.66667%; 1580 | } 1581 | 1582 | .\-1u\28xsmall\29 { 1583 | margin-left: 8.33333%; 1584 | } 1585 | 1586 | } 1587 | 1588 | /* Basic */ 1589 | 1590 | body { 1591 | background: #fff; 1592 | } 1593 | 1594 | body.is-loading *, body.is-loading *:before, body.is-loading *:after { 1595 | -moz-animation: none !important; 1596 | -webkit-animation: none !important; 1597 | -ms-animation: none !important; 1598 | animation: none !important; 1599 | -moz-transition: none !important; 1600 | -webkit-transition: none !important; 1601 | -ms-transition: none !important; 1602 | transition: none !important; 1603 | } 1604 | 1605 | body, input, select, textarea { 1606 | color: #a2a2a2; 1607 | font-family: "Source Sans Pro", Helvetica, sans-serif; 1608 | font-size: 16pt; 1609 | font-weight: 400; 1610 | line-height: 1.75em; 1611 | } 1612 | 1613 | a { 1614 | -moz-transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out; 1615 | -webkit-transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out; 1616 | -ms-transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out; 1617 | transition: color 0.2s ease-in-out, border-color 0.2s ease-in-out; 1618 | border-bottom: dotted 1px; 1619 | color: #49bf9d; 1620 | text-decoration: none; 1621 | } 1622 | 1623 | a:hover { 1624 | border-bottom-color: transparent; 1625 | color: #49bf9d !important; 1626 | text-decoration: none; 1627 | } 1628 | 1629 | strong, b { 1630 | color: #787878; 1631 | font-weight: 400; 1632 | } 1633 | 1634 | em, i { 1635 | font-style: italic; 1636 | } 1637 | 1638 | p { 1639 | margin: 0 0 2em 0; 1640 | } 1641 | 1642 | h1, h2, h3, h4, h5, h6 { 1643 | color: #787878; 1644 | font-weight: 400; 1645 | line-height: 1em; 1646 | margin: 0 0 1em 0; 1647 | } 1648 | 1649 | h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { 1650 | color: inherit; 1651 | text-decoration: none; 1652 | } 1653 | 1654 | h1 { 1655 | font-size: 2em; 1656 | line-height: 1.5em; 1657 | } 1658 | 1659 | h2 { 1660 | font-size: 1.5em; 1661 | line-height: 1.5em; 1662 | } 1663 | 1664 | h3 { 1665 | font-size: 1.25em; 1666 | line-height: 1.5em; 1667 | } 1668 | 1669 | h4 { 1670 | font-size: 1.1em; 1671 | line-height: 1.5em; 1672 | } 1673 | 1674 | h5 { 1675 | font-size: 0.9em; 1676 | line-height: 1.5em; 1677 | } 1678 | 1679 | h6 { 1680 | font-size: 0.7em; 1681 | line-height: 1.5em; 1682 | } 1683 | 1684 | sub { 1685 | font-size: 0.8em; 1686 | position: relative; 1687 | top: 0.5em; 1688 | } 1689 | 1690 | sup { 1691 | font-size: 0.8em; 1692 | position: relative; 1693 | top: -0.5em; 1694 | } 1695 | 1696 | hr { 1697 | border: 0; 1698 | border-bottom: solid 2px #efefef; 1699 | margin: 2em 0; 1700 | } 1701 | 1702 | hr.major { 1703 | margin: 3em 0; 1704 | } 1705 | 1706 | blockquote { 1707 | border-left: solid 6px #efefef; 1708 | font-style: italic; 1709 | margin: 0 0 2em 0; 1710 | padding: 0.5em 0 0.5em 1.5em; 1711 | } 1712 | 1713 | code { 1714 | background: #f7f7f7; 1715 | border-radius: 0.35em; 1716 | border: solid 2px #efefef; 1717 | font-family: "Courier New", monospace; 1718 | font-size: 0.9em; 1719 | margin: 0 0.25em; 1720 | padding: 0.25em 0.65em; 1721 | } 1722 | 1723 | pre { 1724 | -webkit-overflow-scrolling: touch; 1725 | font-family: "Courier New", monospace; 1726 | font-size: 0.9em; 1727 | margin: 0 0 2em 0; 1728 | } 1729 | 1730 | pre code { 1731 | display: block; 1732 | line-height: 1.75em; 1733 | padding: 1em 1.5em; 1734 | overflow-x: auto; 1735 | } 1736 | 1737 | .align-left { 1738 | text-align: left; 1739 | } 1740 | 1741 | .align-center { 1742 | text-align: center; 1743 | } 1744 | 1745 | .align-right { 1746 | text-align: right; 1747 | } 1748 | 1749 | /* Section/Article */ 1750 | 1751 | section.special, article.special { 1752 | text-align: center; 1753 | } 1754 | 1755 | header p { 1756 | color: #b2b2b2; 1757 | position: relative; 1758 | margin: 0 0 1.5em 0; 1759 | } 1760 | 1761 | header h2 + p { 1762 | font-size: 1.25em; 1763 | margin-top: -1em; 1764 | line-height: 1.5em; 1765 | } 1766 | 1767 | header h3 + p { 1768 | font-size: 1.1em; 1769 | margin-top: -0.8em; 1770 | line-height: 1.5em; 1771 | } 1772 | 1773 | header h4 + p, 1774 | header h5 + p, 1775 | header h6 + p { 1776 | font-size: 0.9em; 1777 | margin-top: -0.6em; 1778 | line-height: 1.5em; 1779 | } 1780 | 1781 | header.major h2 { 1782 | font-size: 2em; 1783 | margin-top: -2em; 1784 | } 1785 | header img{ 1786 | margin-left: 50%; 1787 | } 1788 | /* Form */ 1789 | 1790 | form { 1791 | margin: 0 0 2em 0; 1792 | } 1793 | 1794 | label { 1795 | color: #787878; 1796 | display: block; 1797 | font-size: 0.9em; 1798 | font-weight: 400; 1799 | margin: 0 0 1em 0; 1800 | } 1801 | 1802 | input[type="text"], 1803 | input[type="password"], 1804 | input[type="email"], 1805 | select, 1806 | textarea { 1807 | -moz-appearance: none; 1808 | -webkit-appearance: none; 1809 | -ms-appearance: none; 1810 | appearance: none; 1811 | background: #f7f7f7; 1812 | border-radius: 0.35em; 1813 | border: solid 2px transparent; 1814 | color: inherit; 1815 | display: block; 1816 | outline: 0; 1817 | padding: 0 0.75em; 1818 | text-decoration: none; 1819 | width: 100%; 1820 | } 1821 | 1822 | input[type="text"]:invalid, 1823 | input[type="password"]:invalid, 1824 | input[type="email"]:invalid, 1825 | select:invalid, 1826 | textarea:invalid { 1827 | box-shadow: none; 1828 | } 1829 | 1830 | input[type="text"]:focus, 1831 | input[type="password"]:focus, 1832 | input[type="email"]:focus, 1833 | select:focus, 1834 | textarea:focus { 1835 | border-color: #49bf9d; 1836 | } 1837 | 1838 | .select-wrapper { 1839 | text-decoration: none; 1840 | display: block; 1841 | position: relative; 1842 | } 1843 | 1844 | .select-wrapper:before { 1845 | -moz-osx-font-smoothing: grayscale; 1846 | -webkit-font-smoothing: antialiased; 1847 | font-family: FontAwesome; 1848 | font-style: normal; 1849 | font-weight: normal; 1850 | text-transform: none !important; 1851 | } 1852 | 1853 | .select-wrapper:before { 1854 | color: #dfdfdf; 1855 | content: '\f078'; 1856 | display: block; 1857 | height: 2.75em; 1858 | line-height: 2.75em; 1859 | pointer-events: none; 1860 | position: absolute; 1861 | right: 0; 1862 | text-align: center; 1863 | top: 0; 1864 | width: 2.75em; 1865 | } 1866 | 1867 | .select-wrapper select::-ms-expand { 1868 | display: none; 1869 | } 1870 | 1871 | input[type="text"], 1872 | input[type="password"], 1873 | input[type="email"], 1874 | select { 1875 | height: 2.75em; 1876 | } 1877 | 1878 | textarea { 1879 | padding: 0.75em; 1880 | } 1881 | 1882 | input[type="checkbox"], 1883 | input[type="radio"] { 1884 | -moz-appearance: none; 1885 | -webkit-appearance: none; 1886 | -ms-appearance: none; 1887 | appearance: none; 1888 | display: block; 1889 | float: left; 1890 | margin-right: -2em; 1891 | opacity: 0; 1892 | width: 1em; 1893 | z-index: -1; 1894 | } 1895 | 1896 | input[type="checkbox"] + label, 1897 | input[type="radio"] + label { 1898 | text-decoration: none; 1899 | color: #a2a2a2; 1900 | cursor: pointer; 1901 | display: inline-block; 1902 | font-size: 1em; 1903 | font-weight: 400; 1904 | padding-left: 2.4em; 1905 | padding-right: 0.75em; 1906 | position: relative; 1907 | } 1908 | 1909 | input[type="checkbox"] + label:before, 1910 | input[type="radio"] + label:before { 1911 | -moz-osx-font-smoothing: grayscale; 1912 | -webkit-font-smoothing: antialiased; 1913 | font-family: FontAwesome; 1914 | font-style: normal; 1915 | font-weight: normal; 1916 | text-transform: none !important; 1917 | } 1918 | 1919 | input[type="checkbox"] + label:before, 1920 | input[type="radio"] + label:before { 1921 | background: #f7f7f7; 1922 | border-radius: 0.35em; 1923 | border: solid 2px transparent; 1924 | content: ''; 1925 | display: inline-block; 1926 | height: 1.65em; 1927 | left: 0; 1928 | line-height: 1.58125em; 1929 | position: absolute; 1930 | text-align: center; 1931 | top: 0; 1932 | width: 1.65em; 1933 | } 1934 | 1935 | input[type="checkbox"]:checked + label:before, 1936 | input[type="radio"]:checked + label:before { 1937 | background: #787878; 1938 | border-color: #787878; 1939 | color: #fff; 1940 | content: '\f00c'; 1941 | } 1942 | 1943 | input[type="checkbox"]:focus + label:before, 1944 | input[type="radio"]:focus + label:before { 1945 | border-color: #49bf9d; 1946 | } 1947 | 1948 | input[type="checkbox"] + label:before { 1949 | border-radius: 0.35em; 1950 | } 1951 | 1952 | input[type="radio"] + label:before { 1953 | border-radius: 100%; 1954 | } 1955 | 1956 | ::-webkit-input-placeholder { 1957 | color: #b2b2b2 !important; 1958 | opacity: 1.0; 1959 | } 1960 | 1961 | :-moz-placeholder { 1962 | color: #b2b2b2 !important; 1963 | opacity: 1.0; 1964 | } 1965 | 1966 | ::-moz-placeholder { 1967 | color: #b2b2b2 !important; 1968 | opacity: 1.0; 1969 | } 1970 | 1971 | :-ms-input-placeholder { 1972 | color: #b2b2b2 !important; 1973 | opacity: 1.0; 1974 | } 1975 | 1976 | .formerize-placeholder { 1977 | color: #b2b2b2 !important; 1978 | opacity: 1.0; 1979 | } 1980 | 1981 | /* Box */ 1982 | 1983 | .box { 1984 | border-radius: 0.35em; 1985 | border: solid 2px #efefef; 1986 | margin-bottom: 2em; 1987 | padding: 1.5em; 1988 | } 1989 | 1990 | .box > :last-child, 1991 | .box > :last-child > :last-child, 1992 | .box > :last-child > :last-child > :last-child { 1993 | margin-bottom: 0; 1994 | } 1995 | 1996 | .box.alt { 1997 | border: 0; 1998 | border-radius: 0; 1999 | padding: 0; 2000 | } 2001 | 2002 | /* Icon */ 2003 | 2004 | .icon { 2005 | text-decoration: none; 2006 | border-bottom: none; 2007 | position: relative; 2008 | } 2009 | 2010 | .icon:before { 2011 | -moz-osx-font-smoothing: grayscale; 2012 | -webkit-font-smoothing: antialiased; 2013 | font-family: FontAwesome; 2014 | font-style: normal; 2015 | font-weight: normal; 2016 | text-transform: none !important; 2017 | } 2018 | 2019 | .icon > .label { 2020 | display: none; 2021 | } 2022 | 2023 | /* Image */ 2024 | 2025 | .image { 2026 | border-radius: 0.35em; 2027 | border: 0; 2028 | display: inline-block; 2029 | position: relative; 2030 | } 2031 | 2032 | .image:before { 2033 | -moz-transition: opacity 0.2s ease-in-out; 2034 | -webkit-transition: opacity 0.2s ease-in-out; 2035 | -ms-transition: opacity 0.2s ease-in-out; 2036 | transition: opacity 0.2s ease-in-out; 2037 | background: url("../img/overlay.png"); 2038 | border-radius: 0.35em; 2039 | content: ''; 2040 | display: block; 2041 | height: 100%; 2042 | left: 0; 2043 | opacity: 0.5; 2044 | position: absolute; 2045 | top: 0; 2046 | width: 100%; 2047 | } 2048 | 2049 | .image.thumb { 2050 | text-align: center; 2051 | } 2052 | 2053 | .image.thumb:after { 2054 | -moz-transition: opacity 0.2s ease-in-out; 2055 | -webkit-transition: opacity 0.2s ease-in-out; 2056 | -ms-transition: opacity 0.2s ease-in-out; 2057 | transition: opacity 0.2s ease-in-out; 2058 | border-radius: 0.35em; 2059 | border: solid 3px rgba(255, 255, 255, 0.5); 2060 | color: #fff; 2061 | content: 'View'; 2062 | display: inline-block; 2063 | font-size: 0.8em; 2064 | font-weight: 400; 2065 | left: 50%; 2066 | line-height: 2.25em; 2067 | margin: -1.25em 0 0 -3em; 2068 | opacity: 0; 2069 | padding: 0 1.5em; 2070 | position: absolute; 2071 | text-align: center; 2072 | text-decoration: none; 2073 | top: 50%; 2074 | white-space: nowrap; 2075 | } 2076 | 2077 | .image.thumb:hover:after { 2078 | opacity: 1.0; 2079 | } 2080 | 2081 | .image.thumb:hover:before { 2082 | background: url("../img/overlay.png"), url("../img/overlay.png"); 2083 | opacity: 1.0; 2084 | } 2085 | 2086 | .image img { 2087 | border-radius: 0.35em; 2088 | display: block; 2089 | } 2090 | 2091 | .image.left { 2092 | float: left; 2093 | margin: 0 1.5em 1em 0; 2094 | top: 0.25em; 2095 | } 2096 | 2097 | .image.right { 2098 | float: right; 2099 | margin: 0 0 1em 1.5em; 2100 | top: 0.25em; 2101 | } 2102 | 2103 | .image.left, .image.right { 2104 | max-width: 40%; 2105 | } 2106 | 2107 | .image.left img, .image.right img { 2108 | width: 100%; 2109 | } 2110 | 2111 | .image.fit { 2112 | display: block; 2113 | margin: 0 0 2em 0; 2114 | width: 100%; 2115 | } 2116 | 2117 | .image.fit img { 2118 | width: 100%; 2119 | } 2120 | 2121 | .image.avatar { 2122 | border-radius: 100%; 2123 | } 2124 | 2125 | .image.avatar:before { 2126 | display: none; 2127 | } 2128 | 2129 | .image.avatar img { 2130 | border-radius: 100%; 2131 | width: 100%; 2132 | } 2133 | 2134 | /* List */ 2135 | 2136 | ol { 2137 | list-style: decimal; 2138 | margin: 0 0 2em 0; 2139 | padding-left: 1.25em; 2140 | } 2141 | 2142 | ol li { 2143 | padding-left: 0.25em; 2144 | } 2145 | 2146 | ul { 2147 | list-style: disc; 2148 | margin: 0 0 2em 0; 2149 | padding-left: 1em; 2150 | } 2151 | 2152 | ul li { 2153 | padding-left: 0.5em; 2154 | } 2155 | 2156 | ul.alt { 2157 | list-style: none; 2158 | padding-left: 0; 2159 | } 2160 | 2161 | ul.alt li { 2162 | border-top: solid 2px #efefef; 2163 | padding: 0.5em 0; 2164 | } 2165 | 2166 | ul.alt li:first-child { 2167 | border-top: 0; 2168 | padding-top: 0; 2169 | } 2170 | 2171 | ul.icons { 2172 | cursor: default; 2173 | list-style: none; 2174 | padding-left: 0; 2175 | } 2176 | 2177 | ul.icons li { 2178 | display: inline-block; 2179 | padding: 0 1em 0 0; 2180 | } 2181 | 2182 | ul.icons li:last-child { 2183 | padding-right: 0; 2184 | } 2185 | 2186 | ul.icons li .icon:before { 2187 | font-size: 1.5em; 2188 | } 2189 | 2190 | ul.actions { 2191 | cursor: default; 2192 | list-style: none; 2193 | padding-left: 0; 2194 | } 2195 | 2196 | ul.actions li { 2197 | display: inline-block; 2198 | padding: 0 1em 0 0; 2199 | vertical-align: middle; 2200 | } 2201 | 2202 | ul.actions li:last-child { 2203 | padding-right: 0; 2204 | } 2205 | 2206 | ul.actions.small li { 2207 | padding: 0 0.5em 0 0; 2208 | } 2209 | 2210 | ul.actions.vertical li { 2211 | display: block; 2212 | padding: 1em 0 0 0; 2213 | } 2214 | 2215 | ul.actions.vertical li:first-child { 2216 | padding-top: 0; 2217 | } 2218 | 2219 | ul.actions.vertical li > * { 2220 | margin-bottom: 0; 2221 | } 2222 | 2223 | ul.actions.vertical.small li { 2224 | padding: 0.5em 0 0 0; 2225 | } 2226 | 2227 | ul.actions.vertical.small li:first-child { 2228 | padding-top: 0; 2229 | } 2230 | 2231 | ul.actions.fit { 2232 | display: table; 2233 | margin-left: -1em; 2234 | padding: 0; 2235 | table-layout: fixed; 2236 | width: calc(100% + 1em); 2237 | } 2238 | 2239 | ul.actions.fit li { 2240 | display: table-cell; 2241 | padding: 0 0 0 1em; 2242 | } 2243 | 2244 | ul.actions.fit li > * { 2245 | margin-bottom: 0; 2246 | } 2247 | 2248 | ul.actions.fit.small { 2249 | margin-left: -0.5em; 2250 | width: calc(100% + 0.5em); 2251 | } 2252 | 2253 | ul.actions.fit.small li { 2254 | padding: 0 0 0 0.5em; 2255 | } 2256 | 2257 | ul.labeled-icons { 2258 | list-style: none; 2259 | padding: 0; 2260 | } 2261 | 2262 | ul.labeled-icons li { 2263 | line-height: 1.75em; 2264 | margin: 1.5em 0 0 0; 2265 | padding-left: 2.25em; 2266 | position: relative; 2267 | } 2268 | 2269 | ul.labeled-icons li:first-child { 2270 | margin-top: 0; 2271 | } 2272 | 2273 | ul.labeled-icons li a { 2274 | color: inherit; 2275 | } 2276 | 2277 | ul.labeled-icons li h3 { 2278 | color: #b2b2b2; 2279 | left: 0; 2280 | position: absolute; 2281 | text-align: center; 2282 | top: 0; 2283 | width: 1em; 2284 | } 2285 | 2286 | dl { 2287 | margin: 0 0 2em 0; 2288 | } 2289 | 2290 | /* Table */ 2291 | 2292 | .table-wrapper { 2293 | -webkit-overflow-scrolling: touch; 2294 | overflow-x: auto; 2295 | } 2296 | 2297 | table { 2298 | margin: 0 0 2em 0; 2299 | width: 100%; 2300 | } 2301 | 2302 | table tbody tr { 2303 | border: solid 1px #efefef; 2304 | border-left: 0; 2305 | border-right: 0; 2306 | } 2307 | 2308 | table tbody tr:nth-child(2n + 1) { 2309 | background-color: #f7f7f7; 2310 | } 2311 | 2312 | table td { 2313 | padding: 0.75em 0.75em; 2314 | } 2315 | 2316 | table th { 2317 | color: #787878; 2318 | font-size: 0.9em; 2319 | font-weight: 400; 2320 | padding: 0 0.75em 0.75em 0.75em; 2321 | text-align: left; 2322 | } 2323 | 2324 | table thead { 2325 | border-bottom: solid 2px #efefef; 2326 | } 2327 | 2328 | table tfoot { 2329 | border-top: solid 2px #efefef; 2330 | } 2331 | 2332 | table.alt { 2333 | border-collapse: separate; 2334 | } 2335 | 2336 | table.alt tbody tr td { 2337 | border: solid 2px #efefef; 2338 | border-left-width: 0; 2339 | border-top-width: 0; 2340 | } 2341 | 2342 | table.alt tbody tr td:first-child { 2343 | border-left-width: 2px; 2344 | } 2345 | 2346 | table.alt tbody tr:first-child td { 2347 | border-top-width: 2px; 2348 | } 2349 | 2350 | table.alt thead { 2351 | border-bottom: 0; 2352 | } 2353 | 2354 | table.alt tfoot { 2355 | border-top: 0; 2356 | } 2357 | 2358 | /* Button */ 2359 | 2360 | input[type="submit"], 2361 | input[type="reset"], 2362 | input[type="button"], 2363 | .button { 2364 | -moz-appearance: none; 2365 | -webkit-appearance: none; 2366 | -ms-appearance: none; 2367 | appearance: none; 2368 | -moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, border-color 0.2s ease-in-out; 2369 | -webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, border-color 0.2s ease-in-out; 2370 | -ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, border-color 0.2s ease-in-out; 2371 | transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out, border-color 0.2s ease-in-out; 2372 | background-color: transparent; 2373 | border-radius: 0.35em; 2374 | border: solid 3px #efefef; 2375 | color: #787878 !important; 2376 | cursor: pointer; 2377 | display: inline-block; 2378 | font-weight: 400; 2379 | height: 3.15em; 2380 | height: calc(2.75em + 6px); 2381 | line-height: 2.75em; 2382 | min-width: 10em; 2383 | padding: 0 1.5em; 2384 | text-align: center; 2385 | text-decoration: none; 2386 | white-space: nowrap; 2387 | } 2388 | 2389 | input[type="submit"]:hover, 2390 | input[type="reset"]:hover, 2391 | input[type="button"]:hover, 2392 | .button:hover { 2393 | border-color: #49bf9d; 2394 | color: #49bf9d !important; 2395 | } 2396 | 2397 | input[type="submit"]:active, 2398 | input[type="reset"]:active, 2399 | input[type="button"]:active, 2400 | .button:active { 2401 | background-color: rgba(73, 191, 157, 0.1); 2402 | border-color: #49bf9d; 2403 | color: #49bf9d !important; 2404 | } 2405 | 2406 | input[type="submit"].icon, 2407 | input[type="reset"].icon, 2408 | input[type="button"].icon, 2409 | .button.icon { 2410 | padding-left: 1.35em; 2411 | } 2412 | 2413 | input[type="submit"].icon:before, 2414 | input[type="reset"].icon:before, 2415 | input[type="button"].icon:before, 2416 | .button.icon:before { 2417 | margin-right: 0.5em; 2418 | } 2419 | 2420 | input[type="submit"].fit, 2421 | input[type="reset"].fit, 2422 | input[type="button"].fit, 2423 | .button.fit { 2424 | display: block; 2425 | margin: 0 0 1em 0; 2426 | min-width: 0; 2427 | width: 100%; 2428 | } 2429 | 2430 | input[type="submit"].small, 2431 | input[type="reset"].small, 2432 | input[type="button"].small, 2433 | .button.small { 2434 | font-size: 0.8em; 2435 | } 2436 | 2437 | input[type="submit"].big, 2438 | input[type="reset"].big, 2439 | input[type="button"].big, 2440 | .button.big { 2441 | font-size: 1.35em; 2442 | } 2443 | 2444 | input[type="submit"].special, 2445 | input[type="reset"].special, 2446 | input[type="button"].special, 2447 | .button.special { 2448 | background-color: #49bf9d; 2449 | border-color: #49bf9d; 2450 | color: #ffffff !important; 2451 | } 2452 | 2453 | input[type="submit"].special:hover, 2454 | input[type="reset"].special:hover, 2455 | input[type="button"].special:hover, 2456 | .button.special:hover { 2457 | background-color: #5cc6a7; 2458 | border-color: #5cc6a7; 2459 | } 2460 | 2461 | input[type="submit"].special:active, 2462 | input[type="reset"].special:active, 2463 | input[type="button"].special:active, 2464 | .button.special:active { 2465 | background-color: #3eb08f; 2466 | border-color: #3eb08f; 2467 | } 2468 | 2469 | input[type="submit"].disabled, input[type="submit"]:disabled, 2470 | input[type="reset"].disabled, 2471 | input[type="reset"]:disabled, 2472 | input[type="button"].disabled, 2473 | input[type="button"]:disabled, 2474 | .button.disabled, 2475 | .button:disabled { 2476 | background-color: #e7e7e7 !important; 2477 | border-color: #e7e7e7 !important; 2478 | color: #b2b2b2 !important; 2479 | cursor: default; 2480 | } 2481 | 2482 | /* Work Item */ 2483 | 2484 | .work-item { 2485 | margin: 0 0 2em 0; 2486 | } 2487 | 2488 | .work-item .image { 2489 | margin: 0 0 1.5em 0; 2490 | } 2491 | 2492 | .work-item h3 { 2493 | font-size: 1em; 2494 | margin: 0 0 0.5em 0; 2495 | } 2496 | 2497 | .work-item p { 2498 | font-size: 0.8em; 2499 | line-height: 1.5em; 2500 | margin: 0; 2501 | } 2502 | 2503 | /* Header */ 2504 | 2505 | #header { 2506 | display: -moz-flex; 2507 | display: -webkit-flex; 2508 | display: -ms-flex; 2509 | display: flex; 2510 | -moz-flex-direction: column; 2511 | -webkit-flex-direction: column; 2512 | -ms-flex-direction: column; 2513 | flex-direction: column; 2514 | -moz-align-items: -moz-flex-end; 2515 | -webkit-align-items: -webkit-flex-end; 2516 | -ms-align-items: -ms-flex-end; 2517 | align-items: flex-end; 2518 | -moz-justify-content: space-between; 2519 | -webkit-justify-content: space-between; 2520 | -ms-justify-content: space-between; 2521 | justify-content: space-between; 2522 | background-color: #1f1815; 2523 | background-attachment: scroll, fixed; 2524 | background-image: url("../img/overlay.png"), url("../img/bg.jpg"); 2525 | background-position: top left, top left; 2526 | background-repeat: repeat, no-repeat; 2527 | background-size: auto, auto 100%; 2528 | color: rgba(255, 255, 255, 0.5); 2529 | height: 100%; 2530 | left: 0; 2531 | padding: 8em 4em; 2532 | position: fixed; 2533 | text-align: center; 2534 | top: 0; 2535 | width: 35%; 2536 | } 2537 | 2538 | #header > * { 2539 | -moz-flex-shrink: 0; 2540 | -webkit-flex-shrink: 0; 2541 | -ms-flex-shrink: 0; 2542 | flex-shrink: 0; 2543 | width: 100%; 2544 | } 2545 | 2546 | #header > .inner { 2547 | -moz-flex-grow: 1; 2548 | -webkit-flex-grow: 1; 2549 | -ms-flex-grow: 1; 2550 | flex-grow: 1; 2551 | margin: 0 0 2em 0; 2552 | } 2553 | 2554 | #header strong, #header b { 2555 | color: #ffffff; 2556 | } 2557 | 2558 | #header h2, #header h3, #header h4, #header h5, #header h6 { 2559 | color: #ffffff; 2560 | } 2561 | 2562 | #header h1 { 2563 | color: rgba(255, 255, 255, 0.5); 2564 | font-size: 3.0em; 2565 | line-height: 1.75em; 2566 | margin: 0; 2567 | text-align: center; 2568 | } 2569 | 2570 | #header .image.avatar { 2571 | margin: 0 0 1em 0; 2572 | width: 6.25em; 2573 | } 2574 | 2575 | /* Footer */ 2576 | 2577 | #footer .icons { 2578 | margin: 1em 0 0 0; 2579 | } 2580 | 2581 | #footer .icons a { 2582 | color: rgba(255, 255, 255, 0.4); 2583 | } 2584 | 2585 | #footer .copyright { 2586 | color: rgba(255, 255, 255, 0.4); 2587 | font-size: 0.8em; 2588 | list-style: none; 2589 | margin: 1em 0 0 0; 2590 | padding: 0; 2591 | } 2592 | 2593 | #footer .copyright li { 2594 | border-left: solid 1px rgba(255, 255, 255, 0.25); 2595 | display: inline-block; 2596 | line-height: 1em; 2597 | margin-left: 0.75em; 2598 | padding-left: 0.75em; 2599 | } 2600 | 2601 | #footer .copyright li:first-child { 2602 | border-left: 0; 2603 | margin-left: 0; 2604 | padding-left: 0; 2605 | } 2606 | 2607 | #footer .copyright li a { 2608 | color: inherit; 2609 | } 2610 | 2611 | /* Main */ 2612 | 2613 | #main { 2614 | margin-left: 35%; 2615 | max-width: 54em; 2616 | padding: 8em 4em 4em 4em; 2617 | width: calc(100% - 35%); 2618 | } 2619 | 2620 | #main > section { 2621 | border-top: solid 2px #efefef; 2622 | margin: 4em 0 0 0; 2623 | padding: 4em 0 0 0; 2624 | } 2625 | 2626 | #main > section:first-child { 2627 | border-top: 0; 2628 | margin-top: 0; 2629 | padding-top: 0; 2630 | } 2631 | 2632 | /* Poptrox */ 2633 | 2634 | @-moz-keyframes spin { 2635 | 0% { 2636 | -moz-transform: rotate(0deg); 2637 | -webkit-transform: rotate(0deg); 2638 | -ms-transform: rotate(0deg); 2639 | transform: rotate(0deg); 2640 | } 2641 | 2642 | 100% { 2643 | -moz-transform: rotate(360deg); 2644 | -webkit-transform: rotate(360deg); 2645 | -ms-transform: rotate(360deg); 2646 | transform: rotate(360deg); 2647 | } 2648 | } 2649 | 2650 | @-webkit-keyframes spin { 2651 | 0% { 2652 | -moz-transform: rotate(0deg); 2653 | -webkit-transform: rotate(0deg); 2654 | -ms-transform: rotate(0deg); 2655 | transform: rotate(0deg); 2656 | } 2657 | 2658 | 100% { 2659 | -moz-transform: rotate(360deg); 2660 | -webkit-transform: rotate(360deg); 2661 | -ms-transform: rotate(360deg); 2662 | transform: rotate(360deg); 2663 | } 2664 | } 2665 | 2666 | @-ms-keyframes spin { 2667 | 0% { 2668 | -moz-transform: rotate(0deg); 2669 | -webkit-transform: rotate(0deg); 2670 | -ms-transform: rotate(0deg); 2671 | transform: rotate(0deg); 2672 | } 2673 | 2674 | 100% { 2675 | -moz-transform: rotate(360deg); 2676 | -webkit-transform: rotate(360deg); 2677 | -ms-transform: rotate(360deg); 2678 | transform: rotate(360deg); 2679 | } 2680 | } 2681 | 2682 | @keyframes spin { 2683 | 0% { 2684 | -moz-transform: rotate(0deg); 2685 | -webkit-transform: rotate(0deg); 2686 | -ms-transform: rotate(0deg); 2687 | transform: rotate(0deg); 2688 | } 2689 | 2690 | 100% { 2691 | -moz-transform: rotate(360deg); 2692 | -webkit-transform: rotate(360deg); 2693 | -ms-transform: rotate(360deg); 2694 | transform: rotate(360deg); 2695 | } 2696 | } 2697 | 2698 | .poptrox-popup { 2699 | -moz-box-sizing: content-box; 2700 | -webkit-box-sizing: content-box; 2701 | -ms-box-sizing: content-box; 2702 | box-sizing: content-box; 2703 | -webkit-tap-highlight-color: rgba(255, 255, 255, 0); 2704 | background: #fff; 2705 | border-radius: 0.35em; 2706 | box-shadow: 0 0.1em 0.15em 0 rgba(0, 0, 0, 0.15); 2707 | overflow: hidden; 2708 | padding-bottom: 3em; 2709 | } 2710 | 2711 | .poptrox-popup .loader { 2712 | text-decoration: none; 2713 | -moz-animation: spin 1s linear infinite; 2714 | -webkit-animation: spin 1s linear infinite; 2715 | -ms-animation: spin 1s linear infinite; 2716 | animation: spin 1s linear infinite; 2717 | font-size: 1.5em; 2718 | height: 1em; 2719 | left: 50%; 2720 | line-height: 1em; 2721 | margin: -0.5em 0 0 -0.5em; 2722 | position: absolute; 2723 | top: 50%; 2724 | width: 1em; 2725 | } 2726 | 2727 | .poptrox-popup .loader:before { 2728 | -moz-osx-font-smoothing: grayscale; 2729 | -webkit-font-smoothing: antialiased; 2730 | font-family: FontAwesome; 2731 | font-style: normal; 2732 | font-weight: normal; 2733 | text-transform: none !important; 2734 | } 2735 | 2736 | .poptrox-popup .loader:before { 2737 | content: '\f1ce'; 2738 | } 2739 | 2740 | .poptrox-popup .caption { 2741 | background: #fff; 2742 | bottom: 0; 2743 | cursor: default; 2744 | font-size: 0.9em; 2745 | height: 3em; 2746 | left: 0; 2747 | line-height: 2.8em; 2748 | position: absolute; 2749 | text-align: center; 2750 | width: 100%; 2751 | z-index: 1; 2752 | } 2753 | 2754 | .poptrox-popup .nav-next, 2755 | .poptrox-popup .nav-previous { 2756 | text-decoration: none; 2757 | -moz-transition: opacity 0.2s ease-in-out; 2758 | -webkit-transition: opacity 0.2s ease-in-out; 2759 | -ms-transition: opacity 0.2s ease-in-out; 2760 | transition: opacity 0.2s ease-in-out; 2761 | -webkit-tap-highlight-color: rgba(255, 255, 255, 0); 2762 | background: rgba(0, 0, 0, 0.01); 2763 | cursor: pointer; 2764 | height: 100%; 2765 | opacity: 0; 2766 | position: absolute; 2767 | top: 0; 2768 | width: 50%; 2769 | } 2770 | 2771 | .poptrox-popup .nav-next:before, 2772 | .poptrox-popup .nav-previous:before { 2773 | -moz-osx-font-smoothing: grayscale; 2774 | -webkit-font-smoothing: antialiased; 2775 | font-family: FontAwesome; 2776 | font-style: normal; 2777 | font-weight: normal; 2778 | text-transform: none !important; 2779 | } 2780 | 2781 | .poptrox-popup .nav-next:before, 2782 | .poptrox-popup .nav-previous:before { 2783 | color: #fff; 2784 | font-size: 2.5em; 2785 | height: 1em; 2786 | line-height: 1em; 2787 | margin-top: -0.75em; 2788 | position: absolute; 2789 | text-align: center; 2790 | top: 50%; 2791 | width: 1.5em; 2792 | } 2793 | 2794 | .poptrox-popup .nav-next { 2795 | right: 0; 2796 | } 2797 | 2798 | .poptrox-popup .nav-next:before { 2799 | content: '\f105'; 2800 | right: 0; 2801 | } 2802 | 2803 | .poptrox-popup .nav-previous { 2804 | left: 0; 2805 | } 2806 | 2807 | .poptrox-popup .nav-previous:before { 2808 | content: '\f104'; 2809 | left: 0; 2810 | } 2811 | 2812 | .poptrox-popup .closer { 2813 | text-decoration: none; 2814 | -moz-transition: opacity 0.2s ease-in-out; 2815 | -webkit-transition: opacity 0.2s ease-in-out; 2816 | -ms-transition: opacity 0.2s ease-in-out; 2817 | transition: opacity 0.2s ease-in-out; 2818 | -webkit-tap-highlight-color: rgba(255, 255, 255, 0); 2819 | color: #fff; 2820 | height: 4em; 2821 | line-height: 4em; 2822 | opacity: 0; 2823 | position: absolute; 2824 | right: 0; 2825 | text-align: center; 2826 | top: 0; 2827 | width: 4em; 2828 | z-index: 2; 2829 | } 2830 | 2831 | .poptrox-popup .closer:before { 2832 | -moz-osx-font-smoothing: grayscale; 2833 | -webkit-font-smoothing: antialiased; 2834 | font-family: FontAwesome; 2835 | font-style: normal; 2836 | font-weight: normal; 2837 | text-transform: none !important; 2838 | } 2839 | 2840 | .poptrox-popup .closer:before { 2841 | -moz-box-sizing: content-box; 2842 | -webkit-box-sizing: content-box; 2843 | -ms-box-sizing: content-box; 2844 | box-sizing: content-box; 2845 | border-radius: 100%; 2846 | border: solid 3px rgba(255, 255, 255, 0.5); 2847 | content: '\f00d'; 2848 | display: block; 2849 | font-size: 1em; 2850 | height: 1.75em; 2851 | left: 50%; 2852 | line-height: 1.75em; 2853 | margin: -0.875em 0 0 -0.875em; 2854 | position: absolute; 2855 | top: 50%; 2856 | width: 1.75em; 2857 | } 2858 | 2859 | .poptrox-popup:hover .nav-next, 2860 | .poptrox-popup:hover .nav-previous { 2861 | opacity: 0.5; 2862 | } 2863 | 2864 | .poptrox-popup:hover .nav-next:hover, 2865 | .poptrox-popup:hover .nav-previous:hover { 2866 | opacity: 1.0; 2867 | } 2868 | 2869 | .poptrox-popup:hover .closer { 2870 | opacity: 0.5; 2871 | } 2872 | 2873 | .poptrox-popup:hover .closer:hover { 2874 | opacity: 1.0; 2875 | } 2876 | 2877 | /* Touch */ 2878 | 2879 | body.is-touch .image.thumb:before { 2880 | opacity: 0.5 !important; 2881 | } 2882 | 2883 | body.is-touch .image.thumb:after { 2884 | display: none !important; 2885 | } 2886 | 2887 | body.is-touch #header { 2888 | background-attachment: scroll; 2889 | background-size: auto, cover; 2890 | } 2891 | 2892 | body.is-touch .poptrox-popup .nav-next, 2893 | body.is-touch .poptrox-popup .nav-previous, 2894 | body.is-touch .poptrox-popup .closer { 2895 | opacity: 1.0 !important; 2896 | } 2897 | 2898 | /* XLarge */ 2899 | 2900 | @media screen and (max-width: 1800px) { 2901 | 2902 | /* Basic */ 2903 | 2904 | body, input, select, textarea { 2905 | font-size: 12pt; 2906 | } 2907 | 2908 | } 2909 | 2910 | /* Large */ 2911 | 2912 | @media screen and (max-width: 1280px) { 2913 | 2914 | /* Header */ 2915 | 2916 | #header { 2917 | padding: 6em 3em 3em 3em; 2918 | width: 30%; 2919 | } 2920 | 2921 | #header h1 { 2922 | font-size: 1.25em; 2923 | } 2924 | 2925 | #header h1 br { 2926 | display: none; 2927 | } 2928 | header img{ 2929 | margin-left: 40%; 2930 | } 2931 | /* Footer */ 2932 | 2933 | #footer .copyright li { 2934 | border-left-width: 0; 2935 | display: block; 2936 | line-height: 2.25em; 2937 | margin-left: 0; 2938 | padding-left: 0; 2939 | } 2940 | 2941 | /* Main */ 2942 | 2943 | #main { 2944 | margin-left: 35%; 2945 | max-width: none; 2946 | padding: 6em 3em 3em 3em; 2947 | width: calc(100% - 30%); 2948 | } 2949 | 2950 | } 2951 | 2952 | /* Medium */ 2953 | 2954 | @media screen and (max-width: 980px) { 2955 | 2956 | /* Basic */ 2957 | 2958 | h1 br, h2 br, h3 br, h4 br, h5 br, h6 br { 2959 | display: none; 2960 | } 2961 | header img{ 2962 | margin-left: 43%; 2963 | } 2964 | /* List */ 2965 | 2966 | ul.icons li .icon { 2967 | font-size: 1.25em; 2968 | } 2969 | 2970 | /* Header */ 2971 | 2972 | #header { 2973 | background-attachment: scroll; 2974 | background-position: top left, center center; 2975 | background-size: auto, cover; 2976 | left: auto; 2977 | padding: 6em 4em; 2978 | position: relative; 2979 | text-align: center; 2980 | top: auto; 2981 | width: 100%; 2982 | display: block; 2983 | } 2984 | 2985 | #header h1 { 2986 | font-size: 1.75em; 2987 | } 2988 | 2989 | #header h1 br { 2990 | display: inline; 2991 | } 2992 | 2993 | /* Footer */ 2994 | 2995 | #footer { 2996 | background-attachment: scroll; 2997 | background-color: #1f1815; 2998 | background-image: url("../img/overlay.png"), url("../img/bg.jpg"); 2999 | background-position: top left, bottom center; 3000 | background-repeat: repeat, no-repeat; 3001 | background-size: auto, cover; 3002 | bottom: auto; 3003 | left: auto; 3004 | padding: 4em 4em 6em 4em; 3005 | position: relative; 3006 | text-align: center; 3007 | width: 100%; 3008 | } 3009 | 3010 | #footer .icons { 3011 | margin: 0 0 1em 0; 3012 | } 3013 | 3014 | #footer .copyright { 3015 | margin: 0 0 1em 0; 3016 | } 3017 | 3018 | #footer .copyright li { 3019 | border-left-width: 1px; 3020 | display: inline-block; 3021 | line-height: 1em; 3022 | margin-left: 0.75em; 3023 | padding-left: 0.75em; 3024 | } 3025 | 3026 | /* Main */ 3027 | 3028 | #main { 3029 | margin: 0; 3030 | padding: 6em 4em; 3031 | width: 100%; 3032 | } 3033 | 3034 | } 3035 | 3036 | /* Small */ 3037 | 3038 | @media screen and (max-width: 736px) { 3039 | 3040 | /* Basic */ 3041 | 3042 | h1 { 3043 | font-size: 1.5em; 3044 | } 3045 | 3046 | h2 { 3047 | font-size: 1.2em; 3048 | } 3049 | 3050 | h3 { 3051 | font-size: 1em; 3052 | } 3053 | 3054 | /* Section/Article */ 3055 | 3056 | section.special, article.special { 3057 | text-align: center; 3058 | } 3059 | 3060 | header.major h2 { 3061 | font-size: 1.35em; 3062 | margin-top: 0em; 3063 | } 3064 | 3065 | /* List */ 3066 | 3067 | ul.labeled-icons li { 3068 | padding-left: 2em; 3069 | } 3070 | 3071 | ul.labeled-icons li h3 { 3072 | line-height: 1.75em; 3073 | } 3074 | 3075 | /* Header */ 3076 | 3077 | #header { 3078 | padding: 2.25em 1.5em; 3079 | } 3080 | 3081 | #header h1 { 3082 | font-size: 1.35em; 3083 | } 3084 | 3085 | /* Footer */ 3086 | 3087 | #footer { 3088 | padding: 2.25em 1.5em; 3089 | } 3090 | 3091 | /* Main */ 3092 | 3093 | #main { 3094 | padding: 2.25em 1.5em 0.25em 1.5em; 3095 | } 3096 | 3097 | #main > section { 3098 | margin: 2.25em 0 0 0; 3099 | padding: 2.25em 0 0 0; 3100 | } 3101 | 3102 | /* Poptrox */ 3103 | 3104 | .poptrox-popup { 3105 | border-radius: 0; 3106 | } 3107 | 3108 | .poptrox-popup .nav-next:before, 3109 | .poptrox-popup .nav-previous:before { 3110 | margin-top: -1em; 3111 | } 3112 | 3113 | } 3114 | 3115 | /* XSmall */ 3116 | 3117 | @media screen and (max-width: 480px) { 3118 | 3119 | /* List */ 3120 | 3121 | ul.actions { 3122 | margin: 0 0 2em 0; 3123 | } 3124 | 3125 | ul.actions li { 3126 | display: block; 3127 | padding: 1em 0 0 0; 3128 | text-align: center; 3129 | width: 100%; 3130 | } 3131 | 3132 | ul.actions li:first-child { 3133 | padding-top: 0; 3134 | } 3135 | 3136 | ul.actions li > * { 3137 | margin: 0 !important; 3138 | width: 100%; 3139 | } 3140 | 3141 | ul.actions li > *.icon:before { 3142 | margin-left: -2em; 3143 | } 3144 | 3145 | ul.actions.small li { 3146 | padding: 0.5em 0 0 0; 3147 | } 3148 | 3149 | ul.actions.small li:first-child { 3150 | padding-top: 0; 3151 | } 3152 | 3153 | /* Header */ 3154 | 3155 | #header { 3156 | padding: 4.5em 1.5em; 3157 | } 3158 | 3159 | #header h1 br { 3160 | display: none; 3161 | } 3162 | 3163 | /* Footer */ 3164 | 3165 | #footer .copyright li { 3166 | border-left-width: 0; 3167 | display: block; 3168 | line-height: 2.25em; 3169 | margin-left: 0; 3170 | padding-left: 0; 3171 | } 3172 | 3173 | } --------------------------------------------------------------------------------