Commit bd3fab00d18355bcf11d137d97e097cc71d3b218

Authored by zhenchaozhu
0 parents
Exists in master and in 1 other branch de

add forum code

Showing 211 changed files with 38528 additions and 0 deletions   Show diff stats

Too many changes.

To preserve performance only 100 of 211 files displayed.

... ... @@ -0,0 +1,55 @@
  1 +# Byte-compiled / optimized / DLL files
  2 +__pycache__/
  3 +*.py[cod]
  4 +
  5 +# C extensions
  6 +*.so
  7 +
  8 +# Distribution / packaging
  9 +.Python
  10 +env/
  11 +bin/
  12 +build/
  13 +develop-eggs/
  14 +dist/
  15 +eggs/
  16 +parts/
  17 +sdist/
  18 +var/
  19 +*.egg-info/
  20 +.installed.cfg
  21 +*.egg
  22 +
  23 +# Installer logs
  24 +pip-log.txt
  25 +pip-delete-this-directory.txt
  26 +
  27 +# Unit test / coverage reports
  28 +htmlcov/
  29 +.tox/
  30 +.coverage
  31 +.cache
  32 +nosetests.xml
  33 +coverage.xml
  34 +
  35 +# Translations
  36 +*.mo
  37 +
  38 +# Mr Developer
  39 +.mr.developer.cfg
  40 +.project
  41 +.pydevproject
  42 +
  43 +# Rope
  44 +.ropeproject
  45 +
  46 +# Django stuff:
  47 +*.log
  48 +*.pot
  49 +
  50 +# Sphinx documentation
  51 +
  52 +.idea/
  53 +docs/_build/
  54 +
  55 +.DS_Store
... ...
... ... @@ -0,0 +1,21 @@
  1 +The MIT License (MIT)
  2 +
  3 +Copyright (c) 2014 Timmy
  4 +
  5 +Permission is hereby granted, free of charge, to any person obtaining a copy
  6 +of this software and associated documentation files (the "Software"), to deal
  7 +in the Software without restriction, including without limitation the rights
  8 +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  9 +copies of the Software, and to permit persons to whom the Software is
  10 +furnished to do so, subject to the following conditions:
  11 +
  12 +The above copyright notice and this permission notice shall be included in all
  13 +copies or substantial portions of the Software.
  14 +
  15 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16 +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17 +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  18 +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19 +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  20 +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  21 +SOFTWARE.
... ...
... ... @@ -0,0 +1,80 @@
  1 +### Django forum
  2 +
  3 +***
  4 +
  5 +demo: <http://djangoforum.coding.io/>
  6 +
  7 +Django forum是使用Django实现的轻型现代论坛程序,是fork自[F2E.im](https://github.com/PaulGuo/F2E.im)的Django版本.
  8 +相对于原版的主要区别在于使用Django admin实现了一个简单的后台管理.
  9 +
  10 +Django forum有3个分支,master分支用于主机上部署,SAE分支是适配Sina App Engine的版本,api分支是一个试验性质的分支,详情见更新
  11 +
  12 +#### 安装部署
  13 +
  14 +主机版:
  15 +
  16 +依赖MySQL数据库,以及memcached
  17 +
  18 +1. 获取代码
  19 +2. 安装依赖
  20 +3. 导入数据库文件
  21 +4. 修改配置文件
  22 +5. 运行服务
  23 +
  24 +```shell
  25 +shell> git clone git@github.com:zhu327/forum.git
  26 +
  27 +shell> cd forum
  28 +shell> pip install -r requirements.txt
  29 +
  30 +shell> mysql -u YOURUSERNAME -p
  31 +
  32 +mysql> create database forum;
  33 +mysql> exit
  34 +
  35 +shell> mysql -u YOURUSERNAME -p --database=forum < forum.sql
  36 +```
  37 +
  38 +修改`xp/settings.py`
  39 +
  40 +```python
  41 +# 修改数据库配置
  42 +DATABASES = {
  43 + 'default': {
  44 + 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
  45 + 'NAME': 'forum', # Or path to database file if using sqlite3.
  46 + # The following settings are not used with sqlite3:
  47 + 'USER': 'root',
  48 + 'PASSWORD': '',
  49 + 'HOST': '127.0.0.1', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
  50 + 'PORT': '3306', # Set to empty string for default.
  51 + }
  52 +}
  53 +
  54 +# 修改memcached配置,如果没有memcahed请删除这些与cache相关的内容
  55 +CACHES = { # memcached缓存设置
  56 + 'default': {
  57 + 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
  58 + 'LOCATION': '127.0.0.1:11211',
  59 + }
  60 +}
  61 +
  62 +SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # 使用memcached存储session
  63 +
  64 +# 配置邮件发送
  65 +EMAIL_HOST = 'smtp.qq.com'
  66 +EMAIL_PORT = 25
  67 +EMAIL_HOST_USER= '*********'
  68 +EMAIL_HOST_PASSWORD= '******'
  69 +DEFAULT_FROM_EMAIL = '*********@qq.com'
  70 +```
  71 +
  72 +运行服务
  73 +
  74 +```shell
  75 +python manage.py runserver
  76 +```
  77 +
  78 +默认超级用户`admin@admin.com`,密码`123456`,后台`/manage/admin/`
  79 +
  80 +生产环境下推荐使用gunicorn.
0 81 \ No newline at end of file
... ...
... ... @@ -0,0 +1,603 @@
  1 +-- MySQL dump 10.13 Distrib 5.6.21, for osx10.10 (x86_64)
  2 +--
  3 +-- Host: localhost Database: forum
  4 +-- ------------------------------------------------------
  5 +-- Server version 5.6.21
  6 +
  7 +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  8 +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  9 +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  10 +/*!40101 SET NAMES utf8 */;
  11 +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
  12 +/*!40103 SET TIME_ZONE='+00:00' */;
  13 +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
  14 +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
  15 +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
  16 +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
  17 +
  18 +--
  19 +-- Table structure for table `auth_group`
  20 +--
  21 +
  22 +DROP TABLE IF EXISTS `auth_group`;
  23 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  24 +/*!40101 SET character_set_client = utf8 */;
  25 +CREATE TABLE `auth_group` (
  26 + `id` int(11) NOT NULL AUTO_INCREMENT,
  27 + `name` varchar(80) NOT NULL,
  28 + PRIMARY KEY (`id`),
  29 + UNIQUE KEY `name` (`name`)
  30 +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
  31 +/*!40101 SET character_set_client = @saved_cs_client */;
  32 +
  33 +--
  34 +-- Dumping data for table `auth_group`
  35 +--
  36 +
  37 +LOCK TABLES `auth_group` WRITE;
  38 +/*!40000 ALTER TABLE `auth_group` DISABLE KEYS */;
  39 +INSERT INTO `auth_group` VALUES (2,'版主'),(1,'管理员');
  40 +/*!40000 ALTER TABLE `auth_group` ENABLE KEYS */;
  41 +UNLOCK TABLES;
  42 +
  43 +--
  44 +-- Table structure for table `auth_group_permissions`
  45 +--
  46 +
  47 +DROP TABLE IF EXISTS `auth_group_permissions`;
  48 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  49 +/*!40101 SET character_set_client = utf8 */;
  50 +CREATE TABLE `auth_group_permissions` (
  51 + `id` int(11) NOT NULL AUTO_INCREMENT,
  52 + `group_id` int(11) NOT NULL,
  53 + `permission_id` int(11) NOT NULL,
  54 + PRIMARY KEY (`id`),
  55 + UNIQUE KEY `group_id` (`group_id`,`permission_id`),
  56 + KEY `auth_group_permissions_5f412f9a` (`group_id`),
  57 + KEY `auth_group_permissions_83d7f98b` (`permission_id`),
  58 + CONSTRAINT `group_id_refs_id_f4b32aac` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`),
  59 + CONSTRAINT `permission_id_refs_id_6ba0f519` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`)
  60 +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
  61 +/*!40101 SET character_set_client = @saved_cs_client */;
  62 +
  63 +--
  64 +-- Dumping data for table `auth_group_permissions`
  65 +--
  66 +
  67 +LOCK TABLES `auth_group_permissions` WRITE;
  68 +/*!40000 ALTER TABLE `auth_group_permissions` DISABLE KEYS */;
  69 +INSERT INTO `auth_group_permissions` VALUES (3,1,20),(4,1,22),(5,1,23),(6,1,24),(7,1,25),(8,1,26),(9,1,27),(10,1,29),(11,1,30),(1,1,32),(2,1,33),(14,2,29),(15,2,30),(12,2,32),(13,2,33);
  70 +/*!40000 ALTER TABLE `auth_group_permissions` ENABLE KEYS */;
  71 +UNLOCK TABLES;
  72 +
  73 +--
  74 +-- Table structure for table `auth_permission`
  75 +--
  76 +
  77 +DROP TABLE IF EXISTS `auth_permission`;
  78 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  79 +/*!40101 SET character_set_client = utf8 */;
  80 +CREATE TABLE `auth_permission` (
  81 + `id` int(11) NOT NULL AUTO_INCREMENT,
  82 + `name` varchar(50) NOT NULL,
  83 + `content_type_id` int(11) NOT NULL,
  84 + `codename` varchar(100) NOT NULL,
  85 + PRIMARY KEY (`id`),
  86 + UNIQUE KEY `content_type_id` (`content_type_id`,`codename`),
  87 + KEY `auth_permission_37ef4eb4` (`content_type_id`),
  88 + CONSTRAINT `content_type_id_refs_id_d043b34a` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`)
  89 +) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=utf8;
  90 +/*!40101 SET character_set_client = @saved_cs_client */;
  91 +
  92 +--
  93 +-- Dumping data for table `auth_permission`
  94 +--
  95 +
  96 +LOCK TABLES `auth_permission` WRITE;
  97 +/*!40000 ALTER TABLE `auth_permission` DISABLE KEYS */;
  98 +INSERT INTO `auth_permission` VALUES (1,'Can add permission',1,'add_permission'),(2,'Can change permission',1,'change_permission'),(3,'Can delete permission',1,'delete_permission'),(4,'Can add group',2,'add_group'),(5,'Can change group',2,'change_group'),(6,'Can delete group',2,'delete_group'),(7,'Can add content type',3,'add_contenttype'),(8,'Can change content type',3,'change_contenttype'),(9,'Can delete content type',3,'delete_contenttype'),(10,'Can add session',4,'add_session'),(11,'Can change session',4,'change_session'),(12,'Can delete session',4,'delete_session'),(13,'Can add site',5,'add_site'),(14,'Can change site',5,'change_site'),(15,'Can delete site',5,'delete_site'),(16,'Can add log entry',6,'add_logentry'),(17,'Can change log entry',6,'change_logentry'),(18,'Can delete log entry',6,'delete_logentry'),(19,'Can add user',7,'add_forumuser'),(20,'Can change user',7,'change_forumuser'),(21,'Can delete user',7,'delete_forumuser'),(22,'Can add plane',8,'add_plane'),(23,'Can change plane',8,'change_plane'),(24,'Can delete plane',8,'delete_plane'),(25,'Can add node',9,'add_node'),(26,'Can change node',9,'change_node'),(27,'Can delete node',9,'delete_node'),(28,'Can add topic',10,'add_topic'),(29,'Can change topic',10,'change_topic'),(30,'Can delete topic',10,'delete_topic'),(31,'Can add reply',11,'add_reply'),(32,'Can change reply',11,'change_reply'),(33,'Can delete reply',11,'delete_reply'),(34,'Can add favorite',12,'add_favorite'),(35,'Can change favorite',12,'change_favorite'),(36,'Can delete favorite',12,'delete_favorite'),(37,'Can add notification',13,'add_notification'),(38,'Can change notification',13,'change_notification'),(39,'Can delete notification',13,'delete_notification'),(40,'Can add transaction',14,'add_transaction'),(41,'Can change transaction',14,'change_transaction'),(42,'Can delete transaction',14,'delete_transaction'),(43,'Can add vote',15,'add_vote'),(44,'Can change vote',15,'change_vote'),(45,'Can delete vote',15,'delete_vote');
  99 +/*!40000 ALTER TABLE `auth_permission` ENABLE KEYS */;
  100 +UNLOCK TABLES;
  101 +
  102 +--
  103 +-- Table structure for table `django_admin_log`
  104 +--
  105 +
  106 +DROP TABLE IF EXISTS `django_admin_log`;
  107 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  108 +/*!40101 SET character_set_client = utf8 */;
  109 +CREATE TABLE `django_admin_log` (
  110 + `id` int(11) NOT NULL AUTO_INCREMENT,
  111 + `action_time` datetime NOT NULL,
  112 + `user_id` int(11) NOT NULL,
  113 + `content_type_id` int(11) DEFAULT NULL,
  114 + `object_id` longtext,
  115 + `object_repr` varchar(200) NOT NULL,
  116 + `action_flag` smallint(5) unsigned NOT NULL,
  117 + `change_message` longtext NOT NULL,
  118 + PRIMARY KEY (`id`),
  119 + KEY `django_admin_log_6340c63c` (`user_id`),
  120 + KEY `django_admin_log_37ef4eb4` (`content_type_id`),
  121 + CONSTRAINT `content_type_id_refs_id_93d2d1f8` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`),
  122 + CONSTRAINT `user_id_refs_id_6c68e238` FOREIGN KEY (`user_id`) REFERENCES `forum_forumuser` (`id`)
  123 +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
  124 +/*!40101 SET character_set_client = @saved_cs_client */;
  125 +
  126 +--
  127 +-- Dumping data for table `django_admin_log`
  128 +--
  129 +
  130 +LOCK TABLES `django_admin_log` WRITE;
  131 +/*!40000 ALTER TABLE `django_admin_log` DISABLE KEYS */;
  132 +/*!40000 ALTER TABLE `django_admin_log` ENABLE KEYS */;
  133 +UNLOCK TABLES;
  134 +
  135 +--
  136 +-- Table structure for table `django_content_type`
  137 +--
  138 +
  139 +DROP TABLE IF EXISTS `django_content_type`;
  140 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  141 +/*!40101 SET character_set_client = utf8 */;
  142 +CREATE TABLE `django_content_type` (
  143 + `id` int(11) NOT NULL AUTO_INCREMENT,
  144 + `name` varchar(100) NOT NULL,
  145 + `app_label` varchar(100) NOT NULL,
  146 + `model` varchar(100) NOT NULL,
  147 + PRIMARY KEY (`id`),
  148 + UNIQUE KEY `app_label` (`app_label`,`model`)
  149 +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
  150 +/*!40101 SET character_set_client = @saved_cs_client */;
  151 +
  152 +--
  153 +-- Dumping data for table `django_content_type`
  154 +--
  155 +
  156 +LOCK TABLES `django_content_type` WRITE;
  157 +/*!40000 ALTER TABLE `django_content_type` DISABLE KEYS */;
  158 +INSERT INTO `django_content_type` VALUES (1,'permission','auth','permission'),(2,'group','auth','group'),(3,'content type','contenttypes','contenttype'),(4,'session','sessions','session'),(5,'site','sites','site'),(6,'log entry','admin','logentry'),(7,'user','forum','forumuser'),(8,'plane','forum','plane'),(9,'node','forum','node'),(10,'topic','forum','topic'),(11,'reply','forum','reply'),(12,'favorite','forum','favorite'),(13,'notification','forum','notification'),(14,'transaction','forum','transaction'),(15,'vote','forum','vote');
  159 +/*!40000 ALTER TABLE `django_content_type` ENABLE KEYS */;
  160 +UNLOCK TABLES;
  161 +
  162 +--
  163 +-- Table structure for table `django_session`
  164 +--
  165 +
  166 +DROP TABLE IF EXISTS `django_session`;
  167 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  168 +/*!40101 SET character_set_client = utf8 */;
  169 +CREATE TABLE `django_session` (
  170 + `session_key` varchar(40) NOT NULL,
  171 + `session_data` longtext NOT NULL,
  172 + `expire_date` datetime NOT NULL,
  173 + PRIMARY KEY (`session_key`),
  174 + KEY `django_session_b7b81f0c` (`expire_date`)
  175 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  176 +/*!40101 SET character_set_client = @saved_cs_client */;
  177 +
  178 +--
  179 +-- Dumping data for table `django_session`
  180 +--
  181 +
  182 +LOCK TABLES `django_session` WRITE;
  183 +/*!40000 ALTER TABLE `django_session` DISABLE KEYS */;
  184 +/*!40000 ALTER TABLE `django_session` ENABLE KEYS */;
  185 +UNLOCK TABLES;
  186 +
  187 +--
  188 +-- Table structure for table `django_site`
  189 +--
  190 +
  191 +DROP TABLE IF EXISTS `django_site`;
  192 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  193 +/*!40101 SET character_set_client = utf8 */;
  194 +CREATE TABLE `django_site` (
  195 + `id` int(11) NOT NULL AUTO_INCREMENT,
  196 + `domain` varchar(100) NOT NULL,
  197 + `name` varchar(50) NOT NULL,
  198 + PRIMARY KEY (`id`)
  199 +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
  200 +/*!40101 SET character_set_client = @saved_cs_client */;
  201 +
  202 +--
  203 +-- Dumping data for table `django_site`
  204 +--
  205 +
  206 +LOCK TABLES `django_site` WRITE;
  207 +/*!40000 ALTER TABLE `django_site` DISABLE KEYS */;
  208 +INSERT INTO `django_site` VALUES (1,'127.0.0.1:8000','127.0.0.1:8000');
  209 +/*!40000 ALTER TABLE `django_site` ENABLE KEYS */;
  210 +UNLOCK TABLES;
  211 +
  212 +--
  213 +-- Table structure for table `forum_favorite`
  214 +--
  215 +
  216 +DROP TABLE IF EXISTS `forum_favorite`;
  217 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  218 +/*!40101 SET character_set_client = utf8 */;
  219 +CREATE TABLE `forum_favorite` (
  220 + `id` int(11) NOT NULL AUTO_INCREMENT,
  221 + `owner_user_id` int(11) DEFAULT NULL,
  222 + `involved_type` int(11) DEFAULT NULL,
  223 + `involved_topic_id` int(11) DEFAULT NULL,
  224 + `involved_reply_id` int(11) DEFAULT NULL,
  225 + `created` datetime DEFAULT NULL,
  226 + PRIMARY KEY (`id`),
  227 + KEY `forum_favorite_7cdabad6` (`owner_user_id`),
  228 + KEY `forum_favorite_a12f20f1` (`involved_topic_id`),
  229 + KEY `forum_favorite_99093a1e` (`involved_reply_id`),
  230 + CONSTRAINT `involved_reply_id_refs_id_db861f67` FOREIGN KEY (`involved_reply_id`) REFERENCES `forum_reply` (`id`),
  231 + CONSTRAINT `involved_topic_id_refs_id_80406b01` FOREIGN KEY (`involved_topic_id`) REFERENCES `forum_topic` (`id`),
  232 + CONSTRAINT `owner_user_id_refs_id_78db67eb` FOREIGN KEY (`owner_user_id`) REFERENCES `forum_forumuser` (`id`)
  233 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  234 +/*!40101 SET character_set_client = @saved_cs_client */;
  235 +
  236 +--
  237 +-- Dumping data for table `forum_favorite`
  238 +--
  239 +
  240 +LOCK TABLES `forum_favorite` WRITE;
  241 +/*!40000 ALTER TABLE `forum_favorite` DISABLE KEYS */;
  242 +/*!40000 ALTER TABLE `forum_favorite` ENABLE KEYS */;
  243 +UNLOCK TABLES;
  244 +
  245 +--
  246 +-- Table structure for table `forum_forumuser`
  247 +--
  248 +
  249 +DROP TABLE IF EXISTS `forum_forumuser`;
  250 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  251 +/*!40101 SET character_set_client = utf8 */;
  252 +CREATE TABLE `forum_forumuser` (
  253 + `id` int(11) NOT NULL AUTO_INCREMENT,
  254 + `password` varchar(128) NOT NULL,
  255 + `last_login` datetime NOT NULL,
  256 + `is_superuser` tinyint(1) NOT NULL,
  257 + `username` varchar(30) NOT NULL,
  258 + `first_name` varchar(30) NOT NULL,
  259 + `last_name` varchar(30) NOT NULL,
  260 + `email` varchar(75) NOT NULL,
  261 + `is_staff` tinyint(1) NOT NULL,
  262 + `is_active` tinyint(1) NOT NULL,
  263 + `date_joined` datetime NOT NULL,
  264 + `nickname` varchar(200) DEFAULT NULL,
  265 + `avatar` varchar(200) DEFAULT NULL,
  266 + `signature` varchar(500) DEFAULT NULL,
  267 + `location` varchar(200) DEFAULT NULL,
  268 + `website` varchar(200) DEFAULT NULL,
  269 + `company` varchar(200) DEFAULT NULL,
  270 + `role` int(11) DEFAULT NULL,
  271 + `balance` int(11) DEFAULT NULL,
  272 + `reputation` int(11) DEFAULT NULL,
  273 + `self_intro` varchar(500) DEFAULT NULL,
  274 + `updated` datetime DEFAULT NULL,
  275 + `twitter` varchar(200) DEFAULT NULL,
  276 + `github` varchar(200) DEFAULT NULL,
  277 + `douban` varchar(200) DEFAULT NULL,
  278 + PRIMARY KEY (`id`),
  279 + UNIQUE KEY `username` (`username`)
  280 +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
  281 +/*!40101 SET character_set_client = @saved_cs_client */;
  282 +
  283 +--
  284 +-- Dumping data for table `forum_forumuser`
  285 +--
  286 +
  287 +LOCK TABLES `forum_forumuser` WRITE;
  288 +UNLOCK TABLES;
  289 +
  290 +--
  291 +-- Table structure for table `forum_forumuser_groups`
  292 +--
  293 +
  294 +DROP TABLE IF EXISTS `forum_forumuser_groups`;
  295 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  296 +/*!40101 SET character_set_client = utf8 */;
  297 +CREATE TABLE `forum_forumuser_groups` (
  298 + `id` int(11) NOT NULL AUTO_INCREMENT,
  299 + `forumuser_id` int(11) NOT NULL,
  300 + `group_id` int(11) NOT NULL,
  301 + PRIMARY KEY (`id`),
  302 + UNIQUE KEY `forumuser_id` (`forumuser_id`,`group_id`),
  303 + KEY `forum_forumuser_groups_4728ad57` (`forumuser_id`),
  304 + KEY `forum_forumuser_groups_5f412f9a` (`group_id`),
  305 + CONSTRAINT `forumuser_id_refs_id_822c2557` FOREIGN KEY (`forumuser_id`) REFERENCES `forum_forumuser` (`id`),
  306 + CONSTRAINT `group_id_refs_id_4e7ca183` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`)
  307 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  308 +/*!40101 SET character_set_client = @saved_cs_client */;
  309 +
  310 +--
  311 +-- Dumping data for table `forum_forumuser_groups`
  312 +--
  313 +
  314 +LOCK TABLES `forum_forumuser_groups` WRITE;
  315 +/*!40000 ALTER TABLE `forum_forumuser_groups` DISABLE KEYS */;
  316 +/*!40000 ALTER TABLE `forum_forumuser_groups` ENABLE KEYS */;
  317 +UNLOCK TABLES;
  318 +
  319 +--
  320 +-- Table structure for table `forum_forumuser_user_permissions`
  321 +--
  322 +
  323 +DROP TABLE IF EXISTS `forum_forumuser_user_permissions`;
  324 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  325 +/*!40101 SET character_set_client = utf8 */;
  326 +CREATE TABLE `forum_forumuser_user_permissions` (
  327 + `id` int(11) NOT NULL AUTO_INCREMENT,
  328 + `forumuser_id` int(11) NOT NULL,
  329 + `permission_id` int(11) NOT NULL,
  330 + PRIMARY KEY (`id`),
  331 + UNIQUE KEY `forumuser_id` (`forumuser_id`,`permission_id`),
  332 + KEY `forum_forumuser_user_permissions_4728ad57` (`forumuser_id`),
  333 + KEY `forum_forumuser_user_permissions_83d7f98b` (`permission_id`),
  334 + CONSTRAINT `forumuser_id_refs_id_69df7695` FOREIGN KEY (`forumuser_id`) REFERENCES `forum_forumuser` (`id`),
  335 + CONSTRAINT `permission_id_refs_id_70e54fc3` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`)
  336 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  337 +/*!40101 SET character_set_client = @saved_cs_client */;
  338 +
  339 +--
  340 +-- Dumping data for table `forum_forumuser_user_permissions`
  341 +--
  342 +
  343 +LOCK TABLES `forum_forumuser_user_permissions` WRITE;
  344 +/*!40000 ALTER TABLE `forum_forumuser_user_permissions` DISABLE KEYS */;
  345 +/*!40000 ALTER TABLE `forum_forumuser_user_permissions` ENABLE KEYS */;
  346 +UNLOCK TABLES;
  347 +
  348 +--
  349 +-- Table structure for table `forum_node`
  350 +--
  351 +
  352 +DROP TABLE IF EXISTS `forum_node`;
  353 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  354 +/*!40101 SET character_set_client = utf8 */;
  355 +CREATE TABLE `forum_node` (
  356 + `id` int(11) NOT NULL AUTO_INCREMENT,
  357 + `name` varchar(200) DEFAULT NULL,
  358 + `slug` varchar(200) DEFAULT NULL,
  359 + `thumb` varchar(200) DEFAULT NULL,
  360 + `introduction` varchar(500) DEFAULT NULL,
  361 + `created` datetime DEFAULT NULL,
  362 + `updated` datetime DEFAULT NULL,
  363 + `plane_id` int(11) DEFAULT NULL,
  364 + `topic_count` int(11) DEFAULT NULL,
  365 + `custom_style` text,
  366 + `limit_reputation` int(11) DEFAULT NULL,
  367 + PRIMARY KEY (`id`),
  368 + KEY `forum_node_05110e07` (`plane_id`),
  369 + CONSTRAINT `plane_id_refs_id_550721f0` FOREIGN KEY (`plane_id`) REFERENCES `forum_plane` (`id`)
  370 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  371 +/*!40101 SET character_set_client = @saved_cs_client */;
  372 +
  373 +--
  374 +-- Dumping data for table `forum_node`
  375 +--
  376 +
  377 +LOCK TABLES `forum_node` WRITE;
  378 +/*!40000 ALTER TABLE `forum_node` DISABLE KEYS */;
  379 +/*!40000 ALTER TABLE `forum_node` ENABLE KEYS */;
  380 +UNLOCK TABLES;
  381 +
  382 +--
  383 +-- Table structure for table `forum_notification`
  384 +--
  385 +
  386 +DROP TABLE IF EXISTS `forum_notification`;
  387 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  388 +/*!40101 SET character_set_client = utf8 */;
  389 +CREATE TABLE `forum_notification` (
  390 + `id` int(11) NOT NULL AUTO_INCREMENT,
  391 + `content` text,
  392 + `status` int(11) DEFAULT NULL,
  393 + `involved_type` int(11) DEFAULT NULL,
  394 + `involved_user_id` int(11) DEFAULT NULL,
  395 + `involved_topic_id` int(11) DEFAULT NULL,
  396 + `involved_reply_id` int(11) DEFAULT NULL,
  397 + `trigger_user_id` int(11) DEFAULT NULL,
  398 + `occurrence_time` datetime DEFAULT NULL,
  399 + PRIMARY KEY (`id`),
  400 + KEY `forum_notification_95fdbe29` (`involved_user_id`),
  401 + KEY `forum_notification_a12f20f1` (`involved_topic_id`),
  402 + KEY `forum_notification_99093a1e` (`involved_reply_id`),
  403 + KEY `forum_notification_431bdeb9` (`trigger_user_id`),
  404 + CONSTRAINT `involved_reply_id_refs_id_9bd6430b` FOREIGN KEY (`involved_reply_id`) REFERENCES `forum_reply` (`id`),
  405 + CONSTRAINT `involved_topic_id_refs_id_702d1de8` FOREIGN KEY (`involved_topic_id`) REFERENCES `forum_topic` (`id`),
  406 + CONSTRAINT `involved_user_id_refs_id_e2f3fda9` FOREIGN KEY (`involved_user_id`) REFERENCES `forum_forumuser` (`id`),
  407 + CONSTRAINT `trigger_user_id_refs_id_e2f3fda9` FOREIGN KEY (`trigger_user_id`) REFERENCES `forum_forumuser` (`id`)
  408 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  409 +/*!40101 SET character_set_client = @saved_cs_client */;
  410 +
  411 +--
  412 +-- Dumping data for table `forum_notification`
  413 +--
  414 +
  415 +LOCK TABLES `forum_notification` WRITE;
  416 +/*!40000 ALTER TABLE `forum_notification` DISABLE KEYS */;
  417 +/*!40000 ALTER TABLE `forum_notification` ENABLE KEYS */;
  418 +UNLOCK TABLES;
  419 +
  420 +--
  421 +-- Table structure for table `forum_plane`
  422 +--
  423 +
  424 +DROP TABLE IF EXISTS `forum_plane`;
  425 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  426 +/*!40101 SET character_set_client = utf8 */;
  427 +CREATE TABLE `forum_plane` (
  428 + `id` int(11) NOT NULL AUTO_INCREMENT,
  429 + `name` varchar(200) DEFAULT NULL,
  430 + `created` datetime DEFAULT NULL,
  431 + `updated` datetime DEFAULT NULL,
  432 + PRIMARY KEY (`id`)
  433 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  434 +/*!40101 SET character_set_client = @saved_cs_client */;
  435 +
  436 +--
  437 +-- Dumping data for table `forum_plane`
  438 +--
  439 +
  440 +LOCK TABLES `forum_plane` WRITE;
  441 +/*!40000 ALTER TABLE `forum_plane` DISABLE KEYS */;
  442 +/*!40000 ALTER TABLE `forum_plane` ENABLE KEYS */;
  443 +UNLOCK TABLES;
  444 +
  445 +--
  446 +-- Table structure for table `forum_reply`
  447 +--
  448 +
  449 +DROP TABLE IF EXISTS `forum_reply`;
  450 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  451 +/*!40101 SET character_set_client = utf8 */;
  452 +CREATE TABLE `forum_reply` (
  453 + `id` int(11) NOT NULL AUTO_INCREMENT,
  454 + `topic_id` int(11) DEFAULT NULL,
  455 + `author_id` int(11) DEFAULT NULL,
  456 + `content` text,
  457 + `created` datetime DEFAULT NULL,
  458 + `updated` datetime DEFAULT NULL,
  459 + `up_vote` int(11) DEFAULT NULL,
  460 + `down_vote` int(11) DEFAULT NULL,
  461 + `last_touched` datetime DEFAULT NULL,
  462 + PRIMARY KEY (`id`),
  463 + KEY `forum_reply_76f18ad3` (`topic_id`),
  464 + KEY `forum_reply_e969df21` (`author_id`),
  465 + CONSTRAINT `author_id_refs_id_4945e1fe` FOREIGN KEY (`author_id`) REFERENCES `forum_forumuser` (`id`),
  466 + CONSTRAINT `topic_id_refs_id_92c2aa5d` FOREIGN KEY (`topic_id`) REFERENCES `forum_topic` (`id`)
  467 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  468 +/*!40101 SET character_set_client = @saved_cs_client */;
  469 +
  470 +--
  471 +-- Dumping data for table `forum_reply`
  472 +--
  473 +
  474 +LOCK TABLES `forum_reply` WRITE;
  475 +/*!40000 ALTER TABLE `forum_reply` DISABLE KEYS */;
  476 +/*!40000 ALTER TABLE `forum_reply` ENABLE KEYS */;
  477 +UNLOCK TABLES;
  478 +
  479 +--
  480 +-- Table structure for table `forum_topic`
  481 +--
  482 +
  483 +DROP TABLE IF EXISTS `forum_topic`;
  484 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  485 +/*!40101 SET character_set_client = utf8 */;
  486 +CREATE TABLE `forum_topic` (
  487 + `id` int(11) NOT NULL AUTO_INCREMENT,
  488 + `title` varchar(200) DEFAULT NULL,
  489 + `content` text,
  490 + `status` int(11) DEFAULT NULL,
  491 + `hits` int(11) DEFAULT NULL,
  492 + `created` datetime DEFAULT NULL,
  493 + `updated` datetime DEFAULT NULL,
  494 + `node_id` int(11) DEFAULT NULL,
  495 + `author_id` int(11) DEFAULT NULL,
  496 + `reply_count` int(11) DEFAULT NULL,
  497 + `last_replied_by_id` int(11) DEFAULT NULL,
  498 + `last_replied_time` datetime DEFAULT NULL,
  499 + `up_vote` int(11) DEFAULT NULL,
  500 + `down_vote` int(11) DEFAULT NULL,
  501 + `last_touched` datetime DEFAULT NULL,
  502 + PRIMARY KEY (`id`),
  503 + KEY `forum_topic_e453c5c5` (`node_id`),
  504 + KEY `forum_topic_e969df21` (`author_id`),
  505 + KEY `forum_topic_67b51778` (`last_replied_by_id`),
  506 + CONSTRAINT `author_id_refs_id_524c87d9` FOREIGN KEY (`author_id`) REFERENCES `forum_forumuser` (`id`),
  507 + CONSTRAINT `last_replied_by_id_refs_id_524c87d9` FOREIGN KEY (`last_replied_by_id`) REFERENCES `forum_forumuser` (`id`),
  508 + CONSTRAINT `node_id_refs_id_5d0660c1` FOREIGN KEY (`node_id`) REFERENCES `forum_node` (`id`)
  509 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  510 +/*!40101 SET character_set_client = @saved_cs_client */;
  511 +
  512 +--
  513 +-- Dumping data for table `forum_topic`
  514 +--
  515 +
  516 +LOCK TABLES `forum_topic` WRITE;
  517 +/*!40000 ALTER TABLE `forum_topic` DISABLE KEYS */;
  518 +/*!40000 ALTER TABLE `forum_topic` ENABLE KEYS */;
  519 +UNLOCK TABLES;
  520 +
  521 +--
  522 +-- Table structure for table `forum_transaction`
  523 +--
  524 +
  525 +DROP TABLE IF EXISTS `forum_transaction`;
  526 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  527 +/*!40101 SET character_set_client = utf8 */;
  528 +CREATE TABLE `forum_transaction` (
  529 + `id` int(11) NOT NULL AUTO_INCREMENT,
  530 + `type` int(11) DEFAULT NULL,
  531 + `reward` int(11) DEFAULT NULL,
  532 + `user_id` int(11) DEFAULT NULL,
  533 + `current_balance` int(11) DEFAULT NULL,
  534 + `involved_user_id` int(11) DEFAULT NULL,
  535 + `involved_topic_id` int(11) DEFAULT NULL,
  536 + `involved_reply_id` int(11) DEFAULT NULL,
  537 + `occurrence_time` datetime DEFAULT NULL,
  538 + PRIMARY KEY (`id`),
  539 + KEY `forum_transaction_6340c63c` (`user_id`),
  540 + KEY `forum_transaction_95fdbe29` (`involved_user_id`),
  541 + KEY `forum_transaction_a12f20f1` (`involved_topic_id`),
  542 + KEY `forum_transaction_99093a1e` (`involved_reply_id`),
  543 + CONSTRAINT `involved_reply_id_refs_id_4b659a2b` FOREIGN KEY (`involved_reply_id`) REFERENCES `forum_reply` (`id`),
  544 + CONSTRAINT `involved_topic_id_refs_id_49e3102d` FOREIGN KEY (`involved_topic_id`) REFERENCES `forum_topic` (`id`),
  545 + CONSTRAINT `involved_user_id_refs_id_b0c88a45` FOREIGN KEY (`involved_user_id`) REFERENCES `forum_forumuser` (`id`),
  546 + CONSTRAINT `user_id_refs_id_b0c88a45` FOREIGN KEY (`user_id`) REFERENCES `forum_forumuser` (`id`)
  547 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  548 +/*!40101 SET character_set_client = @saved_cs_client */;
  549 +
  550 +--
  551 +-- Dumping data for table `forum_transaction`
  552 +--
  553 +
  554 +LOCK TABLES `forum_transaction` WRITE;
  555 +/*!40000 ALTER TABLE `forum_transaction` DISABLE KEYS */;
  556 +/*!40000 ALTER TABLE `forum_transaction` ENABLE KEYS */;
  557 +UNLOCK TABLES;
  558 +
  559 +--
  560 +-- Table structure for table `forum_vote`
  561 +--
  562 +
  563 +DROP TABLE IF EXISTS `forum_vote`;
  564 +/*!40101 SET @saved_cs_client = @@character_set_client */;
  565 +/*!40101 SET character_set_client = utf8 */;
  566 +CREATE TABLE `forum_vote` (
  567 + `id` int(11) NOT NULL AUTO_INCREMENT,
  568 + `status` int(11) DEFAULT NULL,
  569 + `involved_type` int(11) DEFAULT NULL,
  570 + `involved_user_id` int(11) DEFAULT NULL,
  571 + `involved_topic_id` int(11) DEFAULT NULL,
  572 + `involved_reply_id` int(11) DEFAULT NULL,
  573 + `trigger_user_id` int(11) DEFAULT NULL,
  574 + `occurrence_time` datetime DEFAULT NULL,
  575 + PRIMARY KEY (`id`),
  576 + KEY `forum_vote_95fdbe29` (`involved_user_id`),
  577 + KEY `forum_vote_a12f20f1` (`involved_topic_id`),
  578 + KEY `forum_vote_99093a1e` (`involved_reply_id`),
  579 + KEY `forum_vote_431bdeb9` (`trigger_user_id`),
  580 + CONSTRAINT `involved_reply_id_refs_id_83742c71` FOREIGN KEY (`involved_reply_id`) REFERENCES `forum_reply` (`id`),
  581 + CONSTRAINT `involved_topic_id_refs_id_db1cceb1` FOREIGN KEY (`involved_topic_id`) REFERENCES `forum_topic` (`id`),
  582 + CONSTRAINT `involved_user_id_refs_id_7a43045b` FOREIGN KEY (`involved_user_id`) REFERENCES `forum_forumuser` (`id`),
  583 + CONSTRAINT `trigger_user_id_refs_id_7a43045b` FOREIGN KEY (`trigger_user_id`) REFERENCES `forum_forumuser` (`id`)
  584 +) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  585 +/*!40101 SET character_set_client = @saved_cs_client */;
  586 +
  587 +--
  588 +-- Dumping data for table `forum_vote`
  589 +--
  590 +
  591 +LOCK TABLES `forum_vote` WRITE;
  592 +/*!40000 ALTER TABLE `forum_vote` DISABLE KEYS */;
  593 +/*!40000 ALTER TABLE `forum_vote` ENABLE KEYS */;
  594 +UNLOCK TABLES;
  595 +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
  596 +
  597 +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
  598 +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
  599 +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
  600 +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
  601 +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
  602 +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
  603 +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
... ...
forum/__init__.py
... ... @@ -0,0 +1 @@
  1 +# coding: utf-8 from django.contrib import admin from forum.models import ForumUser, Plane, Node, Topic, Reply, Favorite, Notification, Transaction, Vote class ForumUserAdmin(admin.ModelAdmin): list_display = ('username', 'email', 'is_active', 'is_staff', 'date_joined') search_fields = ('username', 'email', 'nickname') list_filter = ('is_active', 'is_staff', 'date_joined') class PlaneAdmin(admin.ModelAdmin): list_display = ('name', 'created') search_fields = ('name',) list_filter = ('created',) class NodeAdmin(admin.ModelAdmin): list_display = ('name', 'slug', 'created', 'plane') search_fields = ('name',) list_filter = ('created',) class TopicAdmin(admin.ModelAdmin): list_display = ('title', 'created') search_fields = ('title', 'content') list_filter = ('created',) class ReplyAdmin(admin.ModelAdmin): list_display = ('content', 'created') search_fields = ('content',) list_filter = ('created',) admin.site.register(ForumUser, ForumUserAdmin) admin.site.register(Plane, PlaneAdmin) admin.site.register(Node, NodeAdmin) admin.site.register(Topic, TopicAdmin) admin.site.register(Reply, ReplyAdmin) admin.site.register(Favorite) admin.site.register(Notification) admin.site.register(Transaction) admin.site.register(Vote)
0 2 \ No newline at end of file
... ...
forum/backends.py
... ... @@ -0,0 +1,21 @@
  1 +# coding: utf-8
  2 +
  3 +from django.contrib.auth.backends import ModelBackend # 继承这个为了使用admin的权限控制
  4 +from forum.models import ForumUser
  5 +
  6 +class EmailAuthBackend(ModelBackend):
  7 +
  8 + def authenticate(self, email=None, password=None):
  9 + try:
  10 + user = ForumUser.objects.get(email=email)
  11 + if user.check_password(password):
  12 + return user
  13 + return None
  14 + except ForumUser.DoesNotExist:
  15 + return None
  16 +
  17 + def get_user(self, user_id):
  18 + try:
  19 + return ForumUser.objects.get(pk=user_id)
  20 + except ForumUser.DoesNotExist:
  21 + return None
... ...
forum/context_processors.py
... ... @@ -0,0 +1,11 @@
  1 +# coding: utf-8
  2 +
  3 +def custom_proc(request):
  4 + return dict(
  5 + navigation_bar = [
  6 + ('/', 'topic', '社区'),
  7 + ('/members/', 'members', '成员'),
  8 + ('/', 'course', '教程'),
  9 + ('/', 'template', '模板'),
  10 + ],
  11 + )
... ...
forum/forms/__init__.py
forum/forms/topic.py
... ... @@ -0,0 +1,21 @@
  1 +# coding: utf-8
  2 +
  3 +from django import forms
  4 +
  5 +class ReplyForm(forms.Form):
  6 + content = forms.CharField(error_messages={
  7 + 'required': u'请填写回复内容',})
  8 +
  9 +
  10 +class CreateForm(forms.Form):
  11 + title = forms.CharField(min_length=3, max_length=56,
  12 + error_messages={
  13 + 'required': u'请填写帖子标题',
  14 + 'min_length': u'帖子标题长度过短(3-56个字符)',
  15 + 'max_length': u'帖子标题长度过长(3-56个字符)',
  16 + })
  17 + content = forms.CharField(min_length=15,
  18 + error_messages={
  19 + 'required': u'请填写帖子内容',
  20 + 'min_length': u'帖子内容长度过短(少于15个字符)',
  21 + })
... ...
forum/forms/user.py
... ... @@ -0,0 +1,172 @@
  1 +# coding: utf-8
  2 +
  3 +from django import forms
  4 +from django.contrib.auth import authenticate
  5 +from django.conf import settings
  6 +from forum.models import ForumUser
  7 +
  8 +
  9 +error_messages = {
  10 + 'username': {
  11 + 'required': u'必须填写用户名',
  12 + 'min_length': u'用户名长度过短(3-12个字符)',
  13 + 'max_length': u'用户名长度过长(3-12个字符)',
  14 + 'invalid': u'用户名格式错误(英文字母开头,数字,下划线构成)'
  15 + },
  16 + 'email': {
  17 + 'required': u'必须填写E-mail',
  18 + 'min_length': u'Email长度有误',
  19 + 'max_length': u'Email长度有误',
  20 + 'invalid': u'Email地址无效'
  21 + },
  22 + 'password': {
  23 + 'required': u'必须填写密码',
  24 + 'min_length': u'密码长度过短(6-64个字符)',
  25 + 'max_length': u'密码长度过长(6-64个字符)'
  26 + },
  27 +}
  28 +
  29 +
  30 +class SettingPasswordForm(forms.Form):
  31 + password_old = forms.CharField(min_length=6, max_length=64,
  32 + error_messages=error_messages.get('password'))
  33 + password = forms.CharField(min_length=6, max_length=64,
  34 + error_messages=error_messages.get('password'))
  35 + password_confirm = forms.CharField(required=False)
  36 +
  37 + def __init__(self, request):
  38 + self.user = request.user
  39 + super(SettingPasswordForm, self).__init__(request.POST)
  40 +
  41 + def clean(self):
  42 + password_old = self.cleaned_data.get('password_old')
  43 + password = self.cleaned_data.get('password')
  44 + password_confirm = self.cleaned_data.get('password_confirm')
  45 +
  46 + if not (password_old and self.user.check_password(password_old)):
  47 + raise forms.ValidationError(u'当前输入旧密码有误')
  48 +
  49 + if password and password_confirm and password != password_confirm:
  50 + raise forms.ValidationError(u'两次输入新密码不一致')
  51 + return self.cleaned_data
  52 +
  53 +
  54 +class ForgotPasswordForm(forms.Form):
  55 + username = forms.RegexField(min_length=3, max_length=12,
  56 + regex=r'^[a-zA-Z][a-zA-Z0-9_]*$',
  57 + error_messages=error_messages.get('username'))
  58 + email = forms.EmailField(min_length=4, max_length=64,
  59 + error_messages=error_messages.get('email'))
  60 +
  61 + def __init__(self, *args, **kwargs):
  62 + self.user_cache = None
  63 + super(ForgotPasswordForm, self).__init__(*args, **kwargs)
  64 +
  65 + def clean(self):
  66 + username = self.cleaned_data.get('username')
  67 + email = self.cleaned_data.get('email')
  68 +
  69 + if username and email:
  70 + try:
  71 + self.user_cache = ForumUser.objects.get(username=username, email=email)
  72 + except ForumUser.DoesNotExist:
  73 + raise forms.ValidationError(u'所填用户名和邮箱有误')
  74 + return self.cleaned_data
  75 +
  76 + def get_user(self):
  77 + return self.user_cache
  78 +
  79 +
  80 +class LoginForm(forms.Form):
  81 + username = forms.CharField(min_length=3, max_length=12,
  82 + error_messages=error_messages.get('username'))
  83 + password = forms.CharField(min_length=6, max_length=64,
  84 + error_messages=error_messages.get('password'))
  85 +
  86 + def __init__(self, *args, **kwargs):
  87 + self.user_cache = None
  88 + super(LoginForm, self).__init__(*args, **kwargs)
  89 +
  90 + def clean(self):
  91 + import pdb; pdb.set_trace()
  92 + username = self.cleaned_data.get('username')
  93 + password = self.cleaned_data.get('password')
  94 +
  95 + if username and password:
  96 + self.user_cache = authenticate(username=username, password=password)
  97 + if self.user_cache is None:
  98 + raise forms.ValidationError(u'用户名或者密码不正确')
  99 + elif not self.user_cache.is_active:
  100 + raise forms.ValidationError(u'用户已被锁定,请联系管理员解锁')
  101 + return self.cleaned_data
  102 +
  103 + def get_user(self):
  104 + return self.user_cache
  105 +
  106 +
  107 +class RegisterForm(forms.ModelForm):
  108 + username = forms.RegexField(min_length=3, max_length=12,
  109 + regex=r'^[a-zA-Z][a-zA-Z0-9_]*$',
  110 + error_messages=error_messages.get('username'))
  111 + email = forms.EmailField(min_length=4, max_length=64,
  112 + error_messages=error_messages.get('email'))
  113 + password = forms.CharField(min_length=6, max_length=64,
  114 + error_messages=error_messages.get('password'))
  115 + password_confirm = forms.CharField(required=False)
  116 +
  117 + class Meta:
  118 + model = ForumUser
  119 + fields = ('username', 'email')
  120 +
  121 + def clean_username(self):
  122 + username = self.cleaned_data['username']
  123 + try:
  124 + ForumUser.objects.get(username=username)
  125 + raise forms.ValidationError(u'所填用户名已经被注册过')
  126 + except ForumUser.DoesNotExist:
  127 + if username in settings.RESERVED:
  128 + raise forms.ValidationError(u'用户名被保留不可用')
  129 + return username
  130 +
  131 + def clean_email(self):
  132 + email = self.cleaned_data['email']
  133 + try:
  134 + ForumUser.objects.get(email=email)
  135 + raise forms.ValidationError(u'所填邮箱已经被注册过')
  136 + except ForumUser.DoesNotExist:
  137 + return email
  138 +
  139 + def clean_password_confirm(self):
  140 + password1 = self.cleaned_data.get('password')
  141 + password2 = self.cleaned_data.get('password_confirm')
  142 + if password1 and password2 and password1 != password2:
  143 + raise forms.ValidationError(u'两次输入密码不一致')
  144 + return password2
  145 +
  146 + def save(self, commit=True):
  147 + user = super(RegisterForm, self).save(commit=False)
  148 + user.set_password(self.cleaned_data['password'])
  149 + if commit:
  150 + user.save()
  151 + return user
  152 +
  153 +
  154 +class SettingForm(forms.Form):
  155 + username = forms.CharField() # readonly
  156 + email = forms.EmailField() # readonly
  157 + nickname = forms.CharField(min_length=3, max_length=12, required=False,
  158 + error_messages={
  159 + 'min_length': u'昵称长度过短(3-12个字符)',
  160 + 'max_length': u'昵称长度过长(3-12个字符)',
  161 + })
  162 + signature = forms.CharField(required=False)
  163 + location = forms.CharField(required=False)
  164 + website = forms.URLField(required=False,
  165 + error_messages={
  166 + 'invalid': u'请填写合法的URL地址(如:http://f2e.im)',
  167 + })
  168 + company = forms.CharField(required=False)
  169 + github = forms.CharField(required=False)
  170 + twitter = forms.CharField(required=False)
  171 + douban = forms.CharField(required=False)
  172 + self_intro = forms.CharField(required=False)
... ...
... ... @@ -0,0 +1,274 @@
  1 +#coding: utf-8
  2 +
  3 +from django.db import models
  4 +from django.contrib.auth.models import AbstractUser
  5 +
  6 +
  7 +# 工具
  8 +class Pages(object):
  9 + '''
  10 + 分页查询类
  11 + '''
  12 + def __init__(self, count, current_page=1, list_rows=40):
  13 + self.total = count
  14 + self._current = current_page
  15 + self.size = list_rows
  16 + self.pages = self.total // self.size + (1 if self.total % self.size else 0)
  17 +
  18 + if (self.pages == 0) or (self._current < 1) or (self._current > self.pages):
  19 + self.start = 0
  20 + self.end = 0
  21 + self.index = 1
  22 + else:
  23 + self.start = (self._current - 1) * self.size
  24 + self.end = self.size + self.start
  25 + self.index = self._current
  26 + self.prev = self.index - 1 if self.index > 1 else self.index
  27 + self.next = self.index + 1 if self.index < self.pages else self.index
  28 +
  29 +
  30 +# 数据库字段类型定义
  31 +class NormalTextField(models.TextField):
  32 + '''
  33 + models.TextField 默认在MySQL上的数据类型是longtext,用不到那
  34 + 么大,所以派生NormalTextField,只修改生成SQL时的数据类型text
  35 + '''
  36 + def db_type(self, connection):
  37 + return 'text'
  38 +
  39 +
  40 +# Model objects
  41 +class NodeManager(models.Manager):
  42 + '''
  43 + Node objects
  44 + '''
  45 + def get_all_hot_nodes(self):
  46 + query = self.get_queryset().filter(topic__reply_count__gt=0).order_by('-topic__reply_count')
  47 + query.query.group_by = ['id'] # Django使用GROUP BY方法
  48 + return query
  49 +
  50 +
  51 +class TopicManager(models.Manager):
  52 + '''
  53 + Topic objects
  54 + '''
  55 + def get_all_topic(self, num=36, current_page=1): # 可以考虑在这里过滤掉没有头像的用户发帖,不显示在主页
  56 + count = self.get_queryset().count()
  57 + page = Pages(count, current_page, num)
  58 + query = self.get_queryset().select_related('node', 'author', 'last_replied_by').\
  59 + all().order_by('-last_touched', '-created', '-last_replied_time', '-id')[page.start:page.end]
  60 + return query, page
  61 +
  62 + def get_all_topics_by_node_slug(self, num = 36, current_page = 1, node_slug = None):
  63 + count = self.get_queryset().filter(node__slug=node_slug).count()
  64 + page = Pages(count, current_page, num)
  65 + query = self.get_queryset().select_related('node', 'author', 'last_replied_by').\
  66 + filter(node__slug=node_slug).order_by('-last_touched', '-created', '-last_replied_time', '-id')[page.start:page.end]
  67 + return query, page
  68 +
  69 + def get_user_all_topics(self, uid, num = 36, current_page = 1):
  70 + count = self.get_queryset().filter(author__id=uid).count()
  71 + page = Pages(count, current_page, num)
  72 + query = self.get_queryset().select_related('node', 'author', 'last_replied_by').\
  73 + filter(author__id=uid).order_by('-id')[page.start:page.end]
  74 + return query, page
  75 +
  76 + def get_user_all_replied_topics(self, uid, num = 36, current_page = 1):
  77 + pass # F2E好像写的不对,留着以后有用再说
  78 +
  79 + def get_topic_by_topic_id(self, topic_id):
  80 + query = self.get_queryset().select_related('node', 'author', 'last_replied_by').get(pk=topic_id)
  81 + return query
  82 +
  83 + def get_user_last_created_topic(self, uid):
  84 + query = self.get_queryset().filter(author__id=uid).order_by('-created')[0]
  85 + return query
  86 +
  87 +
  88 +class ReplyManager(models.Manager):
  89 + '''
  90 + Reply objects
  91 + '''
  92 + def get_all_replies_by_topic_id(self, topic_id, num = 16, current_page = 1):
  93 + count = self.get_queryset().filter(topic__id=topic_id).count()
  94 + page = Pages(count, current_page, num)
  95 + query = self.get_queryset().select_related('author').\
  96 + filter(topic__id=topic_id).order_by('id')[page.start:page.end]
  97 + return query, page
  98 +
  99 + def get_user_all_replies(self, uid, num = 16, current_page = 1):
  100 + count = self.get_queryset().filter(author__id=uid).count()
  101 + page = Pages(count, current_page, num)
  102 + query = self.get_queryset().select_related('topic', 'topic__author').\
  103 + filter(author__id=uid).order_by('-id')[page.start:page.end]
  104 + return query, page
  105 +
  106 +
  107 +class FavoriteManager(models.Manager):
  108 + '''
  109 + favorite objects
  110 + '''
  111 + def get_user_all_favorites(self, uid, num = 16, current_page = 1):
  112 + count = self.get_queryset().filter(owner_user__id=uid).count()
  113 + page = Pages(count, current_page, num)
  114 + query = self.get_queryset().select_related('involved_topic', 'involved_topic__node', \
  115 + 'involved_topic__author', 'involved_topic__last_replied_by').\
  116 + filter(owner_user__id=uid).order_by('-id')[page.start:page.end]
  117 + return query, page
  118 +
  119 +
  120 +class NotificationManager(models.Manager):
  121 + '''
  122 + Notification objects
  123 + '''
  124 + def get_user_all_notifications(self, uid, num = 16, current_page = 1):
  125 + count = self.get_queryset().filter(involved_user__id=uid).count()
  126 + page = Pages(count, current_page, num)
  127 + query = self.get_queryset().select_related('trigger_user', 'involved_topic').\
  128 + filter(involved_user__id=uid).order_by('-id')[page.start:page.end]
  129 + return query, page
  130 +
  131 +
  132 +# 数据库表结构
  133 +class ForumUser(AbstractUser):
  134 + '''
  135 + django.contrib.auth.models.User 默认User类字段太少,用AbstractUser
  136 + 自定义一个User类,增加字段
  137 + '''
  138 + nickname = models.CharField(max_length=200, null=True, blank=True)
  139 + avatar = models.CharField(max_length=200, null=True, blank=True) # 头像
  140 + signature = models.CharField(max_length=500, null=True, blank=True) # 签名
  141 + location = models.CharField(max_length=200, null=True, blank=True)
  142 + website = models.URLField(null=True, blank=True)
  143 + company = models.CharField(max_length=200, null=True, blank=True)
  144 + role = models.IntegerField(null=True, blank=True) # 角色
  145 + balance = models.IntegerField(null=True, blank=True) # 余额
  146 + reputation = models.IntegerField(null=True, blank=True) # 声誉
  147 + self_intro = models.CharField(max_length=500, null=True, blank=True)# 自我介绍
  148 + updated = models.DateTimeField(null=True, blank=True)
  149 + twitter = models.CharField(max_length=200, null=True, blank=True)
  150 + github = models.CharField(max_length=200, null=True, blank=True)
  151 + douban = models.CharField(max_length=200, null=True, blank=True)
  152 +
  153 +
  154 +class Plane(models.Model):
  155 + '''
  156 + 论坛节点分类
  157 + '''
  158 + name = models.CharField(max_length=200, null=True, blank=True)
  159 + created = models.DateTimeField(null=True, blank=True)
  160 + updated = models.DateTimeField(null=True, blank=True)
  161 +
  162 + def __unicode__(self):
  163 + return self.name
  164 +
  165 +class Node(models.Model):
  166 + '''
  167 + 论坛板块单位,节点
  168 + '''
  169 + name = models.CharField(max_length=200, null=True, blank=True)
  170 + slug = models.CharField(max_length=200, null=True, blank=True) # 块,作为node的识别url
  171 + thumb = models.CharField(max_length=200, null=True, blank=True) # 拇指?
  172 + introduction = models.CharField(max_length=500, null=True, blank=True) # 介绍
  173 + created = models.DateTimeField(null=True, blank=True)
  174 + updated = models.DateTimeField(null=True, blank=True)
  175 + plane = models.ForeignKey(Plane, null=True, blank=True)
  176 + topic_count = models.IntegerField(null=True, blank=True)
  177 + custom_style = NormalTextField(null=True, blank=True)
  178 + limit_reputation = models.IntegerField(null=True, blank=True) # 最小声誉,估计是权限控制
  179 +
  180 + objects = NodeManager()
  181 +
  182 +
  183 +class Topic(models.Model):
  184 + '''
  185 + 话题表,定义了论坛帖子的基本单位
  186 + '''
  187 + title = models.CharField(max_length=200, null=True, blank=True)
  188 + content = NormalTextField(null=True, blank=True)
  189 + status = models.IntegerField(null=True, blank=True)
  190 + hits = models.IntegerField(null=True, blank=True)
  191 + created = models.DateTimeField(null=True, blank=True)
  192 + updated = models.DateTimeField(null=True, blank=True)
  193 + node = models.ForeignKey(Node, null=True, blank=True)
  194 + author = models.ForeignKey(ForumUser, related_name='topic_author', null=True, blank=True) # 设置了related_name后,可不用_set
  195 + reply_count = models.IntegerField(null=True, blank=True)
  196 + last_replied_by = models.ForeignKey(ForumUser, related_name='topic_last', null=True, blank=True)
  197 + last_replied_time = models.DateTimeField(null=True, blank=True)
  198 + up_vote = models.IntegerField(null=True, blank=True)
  199 + down_vote = models.IntegerField(null=True, blank=True)
  200 + last_touched = models.DateTimeField(null=True, blank=True)
  201 +
  202 + objects = TopicManager()
  203 +
  204 +
  205 +class Reply(models.Model):
  206 + '''
  207 + 话题的回复
  208 + '''
  209 + topic = models.ForeignKey(Topic, null=True, blank=True)
  210 + author = models.ForeignKey(ForumUser, related_name='reply_author', null=True, blank=True)
  211 + content = NormalTextField(null=True, blank=True)
  212 + created = models.DateTimeField(null=True, blank=True)
  213 + updated = models.DateTimeField(null=True, blank=True)
  214 + up_vote = models.IntegerField(null=True, blank=True)
  215 + down_vote = models.IntegerField(null=True, blank=True)
  216 + last_touched = models.DateTimeField(null=True, blank=True)
  217 +
  218 + objects = ReplyManager()
  219 +
  220 +
  221 +class Favorite(models.Model):
  222 + '''
  223 + 用户收藏的话题或回复
  224 + '''
  225 + owner_user = models.ForeignKey(ForumUser, related_name='fav_user', null=True, blank=True)
  226 + involved_type = models.IntegerField(null=True, blank=True)
  227 + involved_topic = models.ForeignKey(Topic, related_name='fav_topic', null=True, blank=True)
  228 + involved_reply = models.ForeignKey(Reply, related_name='fav_reply', null=True, blank=True)
  229 + created = models.DateTimeField(null=True, blank=True)
  230 +
  231 + objects = FavoriteManager()
  232 +
  233 +
  234 +class Notification(models.Model):
  235 + '''
  236 + 通知消息
  237 + '''
  238 + content = NormalTextField(null=True, blank=True)
  239 + status = models.IntegerField(null=True, blank=True)
  240 + involved_type = models.IntegerField(null=True, blank=True)
  241 + involved_user = models.ForeignKey(ForumUser, related_name='notify_user', null=True, blank=True)
  242 + involved_topic = models.ForeignKey(Topic, related_name='notify_topic', null=True, blank=True)
  243 + involved_reply = models.ForeignKey(Reply, related_name='notify_reply', null=True, blank=True)
  244 + trigger_user = models.ForeignKey(ForumUser, related_name='notify_trigger', null=True, blank=True)
  245 + occurrence_time = models.DateTimeField(null=True, blank=True)
  246 +
  247 + objects = NotificationManager()
  248 +
  249 +
  250 +class Transaction(models.Model):
  251 + '''
  252 + 交易
  253 + '''
  254 + type = models.IntegerField(null=True, blank=True)
  255 + reward = models.IntegerField(null=True, blank=True)
  256 + user = models.ForeignKey(ForumUser, related_name='trans_user', null=True, blank=True)
  257 + current_balance = models.IntegerField(null=True, blank=True)
  258 + involved_user = models.ForeignKey(ForumUser, related_name='trans_involved', null=True, blank=True)
  259 + involved_topic = models.ForeignKey(Topic, related_name='trans_topic', null=True, blank=True)
  260 + involved_reply = models.ForeignKey(Reply, related_name='trans_reply', null=True, blank=True)
  261 + occurrence_time = models.DateTimeField(null=True, blank=True)
  262 +
  263 +
  264 +class Vote(models.Model):
  265 + '''
  266 + 投票
  267 + '''
  268 + status = models.IntegerField(null=True, blank=True)
  269 + involved_type = models.IntegerField(null=True, blank=True)
  270 + involved_user = models.ForeignKey(ForumUser, related_name='vote_user', null=True, blank=True)
  271 + involved_topic = models.ForeignKey(Topic, related_name='vote_topic', null=True, blank=True)
  272 + involved_reply = models.ForeignKey(Reply, related_name='vote_reply', null=True, blank=True)
  273 + trigger_user = models.ForeignKey(ForumUser, related_name='vote_trigger', null=True, blank=True)
  274 + occurrence_time = models.DateTimeField(null=True, blank=True)
... ...
... ... @@ -0,0 +1,19 @@
  1 +# coding: utf-8
  2 +
  3 +
  4 +from django.contrib.sitemaps import Sitemap
  5 +from forum.models import Topic
  6 +
  7 +
  8 +class TopicSitemap(Sitemap):
  9 + changefreq = "never"
  10 + priority = 0.5
  11 +
  12 + def items(self):
  13 + return Topic.objects.all().order_by('-created', '-id')
  14 +
  15 + def lastmod(self, obj):
  16 + return obj.created
  17 +
  18 + def location(self, obj):
  19 + return '/t/%s/' % obj.id
... ...
forum/static/avatar/b_default.png

4.51 KB

forum/static/avatar/m_default.png

3.89 KB

forum/static/avatar/s_default.png

3.86 KB

forum/static/css/base/atom.css
... ... @@ -0,0 +1,379 @@
  1 +/*文字排版*/
  2 +.f12 {
  3 + font-size: 12px; }
  4 +
  5 +.f13 {
  6 + font-size: 13px; }
  7 +
  8 +.f14 {
  9 + font-size: 14px; }
  10 +
  11 +.f16 {
  12 + font-size: 16px; }
  13 +
  14 +.f20 {
  15 + font-size: 20px; }
  16 +
  17 +.fb {
  18 + font-weight: bold; }
  19 +
  20 +.fn {
  21 + font-weight: normal; }
  22 +
  23 +.t2 {
  24 + text-indent: 2em; }
  25 +
  26 +.lh150 {
  27 + line-height: 150%; }
  28 +
  29 +.lh180 {
  30 + line-height: 180%; }
  31 +
  32 +.lh200 {
  33 + line-height: 200%; }
  34 +
  35 +.unl {
  36 + text-decoration: underline; }
  37 +
  38 +.no_unl {
  39 + text-decoration: none; }
  40 +
  41 +/*定位*/
  42 +.tl {
  43 + text-align: left; }
  44 +
  45 +.tc {
  46 + text-align: center; }
  47 +
  48 +.tr {
  49 + text-align: right; }
  50 +
  51 +.bc {
  52 + margin-left: auto;
  53 + margin-right: auto; }
  54 +
  55 +.fl {
  56 + float: left;
  57 + display: inline; }
  58 +
  59 +.fr {
  60 + float: right;
  61 + display: inline; }
  62 +
  63 +.cb {
  64 + clear: both; }
  65 +
  66 +.cl {
  67 + clear: left; }
  68 +
  69 +.cr {
  70 + clear: right; }
  71 +
  72 +.clearfix:after {
  73 + content: ".";
  74 + display: block;
  75 + height: 0;
  76 + clear: both;
  77 + visibility: hidden; }
  78 +
  79 +.clearfix {
  80 + display: inline-block; }
  81 +
  82 +* html .clearfix {
  83 + height: 1%; }
  84 +
  85 +.clearfix {
  86 + display: block; }
  87 +
  88 +.vm {
  89 + vertical-align: middle; }
  90 +
  91 +.pr {
  92 + position: relative; }
  93 +
  94 +.pa {
  95 + position: absolute; }
  96 +
  97 +.abs-right {
  98 + position: absolute;
  99 + right: 0; }
  100 +
  101 +.zoom {
  102 + zoom: 1; }
  103 +
  104 +.hidden {
  105 + visibility: hidden; }
  106 +
  107 +.none {
  108 + display: none; }
  109 +
  110 +/*长度高度*/
  111 +.w10 {
  112 + width: 10px; }
  113 +
  114 +.w20 {
  115 + width: 20px; }
  116 +
  117 +.w30 {
  118 + width: 30px; }
  119 +
  120 +.w40 {
  121 + width: 40px; }
  122 +
  123 +.w50 {
  124 + width: 50px; }
  125 +
  126 +.w60 {
  127 + width: 60px; }
  128 +
  129 +.w70 {
  130 + width: 70px; }
  131 +
  132 +.w80 {
  133 + width: 80px; }
  134 +
  135 +.w90 {
  136 + width: 90px; }
  137 +
  138 +.w100 {
  139 + width: 100px; }
  140 +
  141 +.w200 {
  142 + width: 200px; }
  143 +
  144 +.w250 {
  145 + width: 250px; }
  146 +
  147 +.w300 {
  148 + width: 300px; }
  149 +
  150 +.w400 {
  151 + width: 400px; }
  152 +
  153 +.w500 {
  154 + width: 500px; }
  155 +
  156 +.w600 {
  157 + width: 600px; }
  158 +
  159 +.w700 {
  160 + width: 700px; }
  161 +
  162 +.w800 {
  163 + width: 800px; }
  164 +
  165 +.w {
  166 + width: 100%; }
  167 +
  168 +.h50 {
  169 + height: 50px; }
  170 +
  171 +.h80 {
  172 + height: 80px; }
  173 +
  174 +.h100 {
  175 + height: 100px; }
  176 +
  177 +.h200 {
  178 + height: 200px; }
  179 +
  180 +.h {
  181 + height: 100%; }
  182 +
  183 +/*边距*/
  184 +.m10 {
  185 + margin: 10px; }
  186 +
  187 +.m15 {
  188 + margin: 15px; }
  189 +
  190 +.m30 {
  191 + margin: 30px; }
  192 +
  193 +.mt5 {
  194 + margin-top: 5px; }
  195 +
  196 +.mt10 {
  197 + margin-top: 10px; }
  198 +
  199 +.mt15 {
  200 + margin-top: 15px; }
  201 +
  202 +.mt20 {
  203 + margin-top: 20px; }
  204 +
  205 +.mt30 {
  206 + margin-top: 30px; }
  207 +
  208 +.mt50 {
  209 + margin-top: 50px; }
  210 +
  211 +.mt100 {
  212 + margin-top: 100px; }
  213 +
  214 +.mb10 {
  215 + margin-bottom: 10px; }
  216 +
  217 +.mb15 {
  218 + margin-bottom: 15px; }
  219 +
  220 +.mb20 {
  221 + margin-bottom: 20px; }
  222 +
  223 +.mb30 {
  224 + margin-bottom: 30px; }
  225 +
  226 +.mb50 {
  227 + margin-bottom: 50px; }
  228 +
  229 +.mb100 {
  230 + margin-bottom: 100px; }
  231 +
  232 +.ml5 {
  233 + margin-left: 5px; }
  234 +
  235 +.ml10 {
  236 + margin-left: 10px; }
  237 +
  238 +.ml15 {
  239 + margin-left: 15px; }
  240 +
  241 +.ml20 {
  242 + margin-left: 20px; }
  243 +
  244 +.ml30 {
  245 + margin-left: 30px; }
  246 +
  247 +.ml50 {
  248 + margin-left: 50px; }
  249 +
  250 +.ml100 {
  251 + margin-left: 100px; }
  252 +
  253 +.mr5 {
  254 + margin-right: 5px; }
  255 +
  256 +.mr10 {
  257 + margin-right: 10px; }
  258 +
  259 +.mr15 {
  260 + margin-right: 15px; }
  261 +
  262 +.mr20 {
  263 + margin-right: 20px; }
  264 +
  265 +.mr30 {
  266 + margin-right: 30px; }
  267 +
  268 +.mr50 {
  269 + margin-right: 50px; }
  270 +
  271 +.mr100 {
  272 + margin-right: 100px; }
  273 +
  274 +.p10 {
  275 + padding: 10px; }
  276 +
  277 +.p15 {
  278 + padding: 15px; }
  279 +
  280 +.p20 {
  281 + padding: 20px; }
  282 +
  283 +.p30 {
  284 + padding: 30px; }
  285 +
  286 +.pt5 {
  287 + padding-top: 5px; }
  288 +
  289 +.pt10 {
  290 + padding-top: 10px; }
  291 +
  292 +.pt15 {
  293 + padding-top: 15px; }
  294 +
  295 +.pt20 {
  296 + padding-top: 20px; }
  297 +
  298 +.pt30 {
  299 + padding-top: 30px; }
  300 +
  301 +.pt50 {
  302 + padding-top: 50px; }
  303 +
  304 +.pb5 {
  305 + padding-bottom: 5px; }
  306 +
  307 +.pb10 {
  308 + padding-bottom: 10px; }
  309 +
  310 +.pb15 {
  311 + padding-bottom: 15px; }
  312 +
  313 +.pb20 {
  314 + padding-bottom: 20px; }
  315 +
  316 +.pb30 {
  317 + padding-bottom: 30px; }
  318 +
  319 +.pb50 {
  320 + padding-bottom: 50px; }
  321 +
  322 +.pb100 {
  323 + padding-bottom: 100px; }
  324 +
  325 +.pl5 {
  326 + padding-left: 5px; }
  327 +
  328 +.pl10 {
  329 + padding-left: 10px; }
  330 +
  331 +.pl15 {
  332 + padding-left: 15px; }
  333 +
  334 +.pl20 {
  335 + padding-left: 20px; }
  336 +
  337 +.pl30 {
  338 + padding-left: 30px; }
  339 +
  340 +.pl50 {
  341 + padding-left: 50px; }
  342 +
  343 +.pl100 {
  344 + padding-left: 100px; }
  345 +
  346 +.pr5 {
  347 + padding-right: 5px; }
  348 +
  349 +.pr10 {
  350 + padding-right: 10px; }
  351 +
  352 +.pr15 {
  353 + padding-right: 15px; }
  354 +
  355 +.pr20 {
  356 + padding-right: 20px; }
  357 +
  358 +.pr30 {
  359 + padding-right: 30px; }
  360 +
  361 +.pr50 {
  362 + padding-right: 50px; }
  363 +
  364 +.pr100 {
  365 + padding-right: 100px; }
  366 +
  367 +.clearfix {
  368 + zoom: 1;
  369 + /* IE < 8 */ }
  370 + .clearfix:before, .clearfix:after {
  371 + content: ".";
  372 + display: block;
  373 + height: 0;
  374 + visibility: hidden; }
  375 + .clearfix:after {
  376 + clear: both; }
  377 +
  378 +.clear {
  379 + clear: both; }
... ...
forum/static/css/base/atom.scss
... ... @@ -0,0 +1,143 @@
  1 +/*文字排版*/
  2 +.f12 {font-size:12px;}
  3 +.f13 {font-size:13px;}
  4 +.f14 {font-size:14px;}
  5 +.f16 {font-size:16px;}
  6 +.f20 {font-size:20px;}
  7 +.fb {font-weight:bold;}
  8 +.fn {font-weight:normal;}
  9 +.t2 {text-indent:2em;}
  10 +.lh150 {line-height:150%;}
  11 +.lh180 {line-height:180%;}
  12 +.lh200 {line-height:200%;}
  13 +.unl {text-decoration:underline;}
  14 +.no_unl {text-decoration:none;}
  15 +
  16 +/*定位*/
  17 +.tl {text-align:left;}
  18 +.tc {text-align:center;}
  19 +.tr {text-align:right;}
  20 +.bc {margin-left:auto;margin-right:auto;}
  21 +.fl {float:left;display:inline;}
  22 +.fr {float:right;display:inline;}
  23 +.cb {clear:both;}
  24 +.cl {clear:left;}
  25 +.cr {clear:right;}
  26 +.clearfix:after {content:".";display:block;height:0;clear:both;visibility:hidden;}
  27 +.clearfix {display:inline-block;}* html .clearfix{height:1%}.clearfix{display:block}
  28 +.vm {vertical-align:middle;}
  29 +.pr {position:relative;}
  30 +.pa {position:absolute;}
  31 +.abs-right {position:absolute;right:0;}
  32 +.zoom {zoom:1;}
  33 +.hidden {visibility:hidden;}
  34 +.none {display:none;}
  35 +
  36 +/*长度高度*/
  37 +.w10 {width:10px;}
  38 +.w20 {width:20px;}
  39 +.w30 {width:30px;}
  40 +.w40 {width:40px;}
  41 +.w50 {width:50px;}
  42 +.w60 {width:60px;}
  43 +.w70 {width:70px;}
  44 +.w80 {width:80px;}
  45 +.w90 {width:90px;}
  46 +.w100 {width:100px;}
  47 +.w200 {width:200px;}
  48 +.w250 {width:250px;}
  49 +.w300 {width:300px;}
  50 +.w400 {width:400px;}
  51 +.w500 {width:500px;}
  52 +.w600 {width:600px;}
  53 +.w700 {width:700px;}
  54 +.w800 {width:800px;}
  55 +.w {width:100%;}
  56 +.h50 {height:50px;}
  57 +.h80 {height:80px;}
  58 +.h100 {height:100px;}
  59 +.h200 {height:200px;}
  60 +.h {height:100%;}
  61 +
  62 +/*边距*/
  63 +.m10 {margin:10px;}
  64 +.m15 {margin:15px;}
  65 +.m30 {margin:30px;}
  66 +.mt5 {margin-top:5px;}
  67 +.mt10 {margin-top:10px;}
  68 +.mt15 {margin-top:15px;}
  69 +.mt20 {margin-top:20px;}
  70 +.mt30 {margin-top:30px;}
  71 +.mt50 {margin-top:50px;}
  72 +.mt100 {margin-top:100px;}
  73 +.mb10 {margin-bottom:10px;}
  74 +.mb15 {margin-bottom:15px;}
  75 +.mb20 {margin-bottom:20px;}
  76 +.mb30 {margin-bottom:30px;}
  77 +.mb50 {margin-bottom:50px;}
  78 +.mb100 {margin-bottom:100px;}
  79 +.ml5 {margin-left:5px;}
  80 +.ml10 {margin-left:10px;}
  81 +.ml15 {margin-left:15px;}
  82 +.ml20 {margin-left:20px;}
  83 +.ml30 {margin-left:30px;}
  84 +.ml50 {margin-left:50px;}
  85 +.ml100 {margin-left:100px;}
  86 +.mr5 {margin-right:5px;}
  87 +.mr10 {margin-right:10px;}
  88 +.mr15 {margin-right:15px;}
  89 +.mr20 {margin-right:20px;}
  90 +.mr30 {margin-right:30px;}
  91 +.mr50 {margin-right:50px;}
  92 +.mr100 {margin-right:100px;}
  93 +.p10 {padding:10px;}
  94 +.p15 {padding:15px;}
  95 +.p20 {padding:20px;}
  96 +.p30 {padding:30px;}
  97 +.pt5 {padding-top:5px;}
  98 +.pt10 {padding-top:10px;}
  99 +.pt15 {padding-top:15px;}
  100 +.pt20 {padding-top:20px;}
  101 +.pt30 {padding-top:30px;}
  102 +.pt50 {padding-top:50px;}
  103 +.pb5 {padding-bottom:5px;}
  104 +.pb10 {padding-bottom:10px;}
  105 +.pb15 {padding-bottom:15px;}
  106 +.pb20 {padding-bottom:20px;}
  107 +.pb30 {padding-bottom:30px;}
  108 +.pb50 {padding-bottom:50px;}
  109 +.pb100 {padding-bottom:100px;}
  110 +.pl5 {padding-left:5px;}
  111 +.pl10 {padding-left:10px;}
  112 +.pl15 {padding-left:15px;}
  113 +.pl20 {padding-left:20px;}
  114 +.pl30 {padding-left:30px;}
  115 +.pl50 {padding-left:50px;}
  116 +.pl100 {padding-left:100px;}
  117 +.pr5 {padding-right:5px;}
  118 +.pr10 {padding-right:10px;}
  119 +.pr15 {padding-right:15px;}
  120 +.pr20 {padding-right:20px;}
  121 +.pr30 {padding-right:30px;}
  122 +.pr50 {padding-right:50px;}
  123 +.pr100 {padding-right:100px;}
  124 +
  125 +.clearfix {
  126 + zoom: 1; /* IE < 8 */
  127 +
  128 + &:before,
  129 + &:after {
  130 + content: ".";
  131 + display: block;
  132 + height: 0;
  133 + visibility: hidden;
  134 + }
  135 +
  136 + &:after {
  137 + clear: both;
  138 + }
  139 +}
  140 +
  141 +.clear {
  142 + clear: both;
  143 +}
... ...
forum/static/css/base/octicons.css
... ... @@ -0,0 +1,551 @@
  1 +@font-face {
  2 + font-family: 'octicons';
  3 + src: url("/static/octicons/octicons-d3d0b82bf791ac147d72bbf0287cdde8ee5c97b8.eot");
  4 + src: url("/static/octicons/octicons-d3d0b82bf791ac147d72bbf0287cdde8ee5c97b8.eot#iefix") format("embedded-opentype"), url("/static/octicons/octicons-a60d585f754059c3c2ef731f853c38c157040b9c.woff") format("woff"), url("/static/octicons/octicons-8b97c2cd5068ec4620cbde3140db257b1924a192.ttf") format("truetype"), url("/static/octicons/octicons-a8248bbb3baccca60948d81d69e3406b71956a69.svg#octicons") format("svg");
  5 + font-weight: normal;
  6 + font-style: normal; }
  7 +
  8 +.octicon {
  9 + font: normal normal 16px octicons;
  10 + line-height: 1;
  11 + display: inline-block;
  12 + text-decoration: none;
  13 + -webkit-font-smoothing: antialiased; }
  14 +
  15 +.mega-octicon {
  16 + font: normal normal 32px octicons;
  17 + line-height: 1;
  18 + display: inline-block;
  19 + text-decoration: none;
  20 + -webkit-font-smoothing: antialiased; }
  21 +
  22 +.octicon-alert:before {
  23 + content: '\f02d'; }
  24 +
  25 +.octicon-alignment-align:before {
  26 + content: '\f08a'; }
  27 +
  28 +.octicon-alignment-aligned-to:before {
  29 + content: '\f08e'; }
  30 +
  31 +.octicon-alignment-unalign:before {
  32 + content: '\f08b'; }
  33 +
  34 +.octicon-arrow-down:before {
  35 + content: '\f03f'; }
  36 +
  37 +.octicon-arrow-left:before {
  38 + content: '\f040'; }
  39 +
  40 +.octicon-arrow-right:before {
  41 + content: '\f03e'; }
  42 +
  43 +.octicon-arrow-small-down:before {
  44 + content: '\f0a0'; }
  45 +
  46 +.octicon-arrow-small-left:before {
  47 + content: '\f0a1'; }
  48 +
  49 +.octicon-arrow-small-right:before {
  50 + content: '\f071'; }
  51 +
  52 +.octicon-arrow-small-up:before {
  53 + content: '\f09f'; }
  54 +
  55 +.octicon-arrow-up:before {
  56 + content: '\f03d'; }
  57 +
  58 +.octicon-beer:before {
  59 + content: '\f069'; }
  60 +
  61 +.octicon-book:before {
  62 + content: '\f007'; }
  63 +
  64 +.octicon-bookmark:before {
  65 + content: '\f07b'; }
  66 +
  67 +.octicon-broadcast:before {
  68 + content: '\f048'; }
  69 +
  70 +.octicon-bug:before {
  71 + content: '\f091'; }
  72 +
  73 +.octicon-calendar:before {
  74 + content: '\f068'; }
  75 +
  76 +.octicon-check:before {
  77 + content: '\f03a'; }
  78 +
  79 +.octicon-checklist:before {
  80 + content: '\f076'; }
  81 +
  82 +.octicon-chevron-down:before {
  83 + content: '\f0a3'; }
  84 +
  85 +.octicon-chevron-left:before {
  86 + content: '\f0a4'; }
  87 +
  88 +.octicon-chevron-right:before {
  89 + content: '\f078'; }
  90 +
  91 +.octicon-chevron-up:before {
  92 + content: '\f0a2'; }
  93 +
  94 +.octicon-circle-slash:before {
  95 + content: '\f084'; }
  96 +
  97 +.octicon-clippy:before {
  98 + content: '\f035'; }
  99 +
  100 +.octicon-clock:before {
  101 + content: '\f046'; }
  102 +
  103 +.octicon-cloud-download:before {
  104 + content: '\f00b'; }
  105 +
  106 +.octicon-cloud-upload:before {
  107 + content: '\f00c'; }
  108 +
  109 +.octicon-code:before {
  110 + content: '\f05f'; }
  111 +
  112 +.octicon-color-mode:before {
  113 + content: '\f065'; }
  114 +
  115 +.octicon-comment:before {
  116 + content: '\f02b'; }
  117 +
  118 +.octicon-comment-add:before {
  119 + content: '\f06f'; }
  120 +
  121 +.octicon-comment-discussion:before {
  122 + content: '\f04f'; }
  123 +
  124 +.octicon-credit-card:before {
  125 + content: '\f045'; }
  126 +
  127 +.octicon-dashboard:before {
  128 + content: '\f07d'; }
  129 +
  130 +.octicon-database:before {
  131 + content: '\f096'; }
  132 +
  133 +.octicon-device-camera:before {
  134 + content: '\f056'; }
  135 +
  136 +.octicon-device-camera-video:before {
  137 + content: '\f057'; }
  138 +
  139 +.octicon-device-desktop:before {
  140 + content: '\f27c'; }
  141 +
  142 +.octicon-device-mobile:before {
  143 + content: '\f038'; }
  144 +
  145 +.octicon-diff:before {
  146 + content: '\f04d'; }
  147 +
  148 +.octicon-diff-added:before {
  149 + content: '\f06b'; }
  150 +
  151 +.octicon-diff-ignored:before {
  152 + content: '\f099'; }
  153 +
  154 +.octicon-diff-modified:before {
  155 + content: '\f06d'; }
  156 +
  157 +.octicon-diff-removed:before {
  158 + content: '\f06c'; }
  159 +
  160 +.octicon-diff-renamed:before {
  161 + content: '\f06e'; }
  162 +
  163 +.octicon-ellipsis:before {
  164 + content: '\f09a'; }
  165 +
  166 +.octicon-eye:before {
  167 + content: '\f04e'; }
  168 +
  169 +.octicon-eye-unwatch:before {
  170 + content: '\f01e'; }
  171 +
  172 +.octicon-eye-watch:before {
  173 + content: '\f01d'; }
  174 +
  175 +.octicon-file-add:before {
  176 + content: '\f086'; }
  177 +
  178 +.octicon-file-binary:before {
  179 + content: '\f094'; }
  180 +
  181 +.octicon-file-code:before {
  182 + content: '\f010'; }
  183 +
  184 +.octicon-file-directory:before {
  185 + content: '\f016'; }
  186 +
  187 +.octicon-file-directory-create:before {
  188 + content: '\f095'; }
  189 +
  190 +.octicon-file-media:before {
  191 + content: '\f012'; }
  192 +
  193 +.octicon-file-pdf:before {
  194 + content: '\f014'; }
  195 +
  196 +.octicon-file-submodule:before {
  197 + content: '\f017'; }
  198 +
  199 +.octicon-file-symlink-directory:before {
  200 + content: '\f0b1'; }
  201 +
  202 +.octicon-file-symlink-file:before {
  203 + content: '\f0b0'; }
  204 +
  205 +.octicon-file-text:before {
  206 + content: '\f011'; }
  207 +
  208 +.octicon-file-zip:before {
  209 + content: '\f013'; }
  210 +
  211 +.octicon-gear:before {
  212 + content: '\f02f'; }
  213 +
  214 +.octicon-gift:before {
  215 + content: '\f042'; }
  216 +
  217 +.octicon-gist:before {
  218 + content: '\f00e'; }
  219 +
  220 +.octicon-gist-fork:before {
  221 + content: '\f079'; }
  222 +
  223 +.octicon-gist-new:before {
  224 + content: '\f07a'; }
  225 +
  226 +.octicon-gist-private:before {
  227 + content: '\f00f'; }
  228 +
  229 +.octicon-gist-secret:before {
  230 + content: '\f08c'; }
  231 +
  232 +.octicon-git-branch:before {
  233 + content: '\f020'; }
  234 +
  235 +.octicon-git-branch-create:before {
  236 + content: '\f098'; }
  237 +
  238 +.octicon-git-branch-delete:before {
  239 + content: '\f09b'; }
  240 +
  241 +.octicon-git-commit:before {
  242 + content: '\f01f'; }
  243 +
  244 +.octicon-git-compare:before {
  245 + content: '\f0ac'; }
  246 +
  247 +.octicon-git-fork-private:before {
  248 + content: '\f021'; }
  249 +
  250 +.octicon-git-merge:before {
  251 + content: '\f023'; }
  252 +
  253 +.octicon-git-pull-request:before {
  254 + content: '\f009'; }
  255 +
  256 +.octicon-git-pull-request-abandoned:before {
  257 + content: '\f090'; }
  258 +
  259 +.octicon-globe:before {
  260 + content: '\f0b6'; }
  261 +
  262 +.octicon-graph:before {
  263 + content: '\f043'; }
  264 +
  265 +.octicon-history:before {
  266 + content: '\f07e'; }
  267 +
  268 +.octicon-home:before {
  269 + content: '\f08d'; }
  270 +
  271 +.octicon-horizontal-rule:before {
  272 + content: '\f070'; }
  273 +
  274 +.octicon-hourglass:before {
  275 + content: '\f09e'; }
  276 +
  277 +.octicon-hubot:before {
  278 + content: '\f09d'; }
  279 +
  280 +.octicon-info:before {
  281 + content: '\f059'; }
  282 +
  283 +.octicon-issue-closed:before {
  284 + content: '\f028'; }
  285 +
  286 +.octicon-issue-opened:before {
  287 + content: '\f026'; }
  288 +
  289 +.octicon-issue-reopened:before {
  290 + content: '\f027'; }
  291 +
  292 +.octicon-jersey:before {
  293 + content: '\f019'; }
  294 +
  295 +.octicon-jump-down:before {
  296 + content: '\f072'; }
  297 +
  298 +.octicon-jump-left:before {
  299 + content: '\f0a5'; }
  300 +
  301 +.octicon-jump-right:before {
  302 + content: '\f0a6'; }
  303 +
  304 +.octicon-jump-up:before {
  305 + content: '\f073'; }
  306 +
  307 +.octicon-key:before {
  308 + content: '\f049'; }
  309 +
  310 +.octicon-keyboard:before {
  311 + content: '\f00d'; }
  312 +
  313 +.octicon-light-bulb:before {
  314 + content: '\f000'; }
  315 +
  316 +.octicon-link:before {
  317 + content: '\f05c'; }
  318 +
  319 +.octicon-link-external:before {
  320 + content: '\f07f'; }
  321 +
  322 +.octicon-list-ordered:before {
  323 + content: '\f062'; }
  324 +
  325 +.octicon-list-unordered:before {
  326 + content: '\f061'; }
  327 +
  328 +.octicon-location:before {
  329 + content: '\f060'; }
  330 +
  331 +.octicon-lock:before {
  332 + content: '\f06a'; }
  333 +
  334 +.octicon-log-in:before {
  335 + content: '\f036'; }
  336 +
  337 +.octicon-log-out:before {
  338 + content: '\f032'; }
  339 +
  340 +.octicon-logo-github:before {
  341 + content: '\f092'; }
  342 +
  343 +.octicon-mail:before {
  344 + content: '\f03b'; }
  345 +
  346 +.octicon-mail-read:before {
  347 + content: '\f03c'; }
  348 +
  349 +.octicon-mail-reply:before {
  350 + content: '\f051'; }
  351 +
  352 +.octicon-mark-github:before {
  353 + content: '\f00a'; }
  354 +
  355 +.octicon-mark-twitter:before {
  356 + content: '\f0ae'; }
  357 +
  358 +.octicon-megaphone:before {
  359 + content: '\f077'; }
  360 +
  361 +.octicon-microscope:before {
  362 + content: '\f089'; }
  363 +
  364 +.octicon-milestone:before {
  365 + content: '\f075'; }
  366 +
  367 +.octicon-mirror-private:before {
  368 + content: '\f025'; }
  369 +
  370 +.octicon-mirror-public:before {
  371 + content: '\f024'; }
  372 +
  373 +.octicon-move-down:before {
  374 + content: '\f0a8'; }
  375 +
  376 +.octicon-move-left:before {
  377 + content: '\f074'; }
  378 +
  379 +.octicon-move-right:before {
  380 + content: '\f0a9'; }
  381 +
  382 +.octicon-move-up:before {
  383 + content: '\f0a7'; }
  384 +
  385 +.octicon-mute:before {
  386 + content: '\f080'; }
  387 +
  388 +.octicon-no-newline:before {
  389 + content: '\f09c'; }
  390 +
  391 +.octicon-octoface:before {
  392 + content: '\f008'; }
  393 +
  394 +.octicon-organization:before {
  395 + content: '\f037'; }
  396 +
  397 +.octicon-pencil:before {
  398 + content: '\f058'; }
  399 +
  400 +.octicon-person:before {
  401 + content: '\f018'; }
  402 +
  403 +.octicon-person-add:before {
  404 + content: '\f01a'; }
  405 +
  406 +.octicon-person-follow:before {
  407 + content: '\f01c'; }
  408 +
  409 +.octicon-person-remove:before {
  410 + content: '\f01b'; }
  411 +
  412 +.octicon-pin:before {
  413 + content: '\f041'; }
  414 +
  415 +.octicon-plus:before {
  416 + content: '\f05d'; }
  417 +
  418 +.octicon-podium:before {
  419 + content: '\f0af'; }
  420 +
  421 +.octicon-primitive-dot:before {
  422 + content: '\f052'; }
  423 +
  424 +.octicon-primitive-square:before {
  425 + content: '\f053'; }
  426 +
  427 +.octicon-pulse:before {
  428 + content: '\f085'; }
  429 +
  430 +.octicon-question:before {
  431 + content: '\f02c'; }
  432 +
  433 +.octicon-quote:before {
  434 + content: '\f063'; }
  435 +
  436 +.octicon-radio-tower:before {
  437 + content: '\f030'; }
  438 +
  439 +.octicon-remove-close:before {
  440 + content: '\f050'; }
  441 +
  442 +.octicon-repo:before {
  443 + content: '\f001'; }
  444 +
  445 +.octicon-repo-clone:before {
  446 + content: '\f04c'; }
  447 +
  448 +.octicon-repo-create:before {
  449 + content: '\f003'; }
  450 +
  451 +.octicon-repo-delete:before {
  452 + content: '\f004'; }
  453 +
  454 +.octicon-repo-force-push:before {
  455 + content: '\f04a'; }
  456 +
  457 +.octicon-repo-forked:before {
  458 + content: '\f002'; }
  459 +
  460 +.octicon-repo-pull:before {
  461 + content: '\f006'; }
  462 +
  463 +.octicon-repo-push:before {
  464 + content: '\f005'; }
  465 +
  466 +.octicon-repo-sync:before {
  467 + content: '\f04b'; }
  468 +
  469 +.octicon-rocket:before {
  470 + content: '\f033'; }
  471 +
  472 +.octicon-rss:before {
  473 + content: '\f034'; }
  474 +
  475 +.octicon-ruby:before {
  476 + content: '\f047'; }
  477 +
  478 +.octicon-screen-full:before {
  479 + content: '\f066'; }
  480 +
  481 +.octicon-screen-normal:before {
  482 + content: '\f067'; }
  483 +
  484 +.octicon-search:before {
  485 + content: '\f02e'; }
  486 +
  487 +.octicon-server:before {
  488 + content: '\f097'; }
  489 +
  490 +.octicon-settings:before {
  491 + content: '\f07c'; }
  492 +
  493 +.octicon-squirrel:before {
  494 + content: '\f0b2'; }
  495 +
  496 +.octicon-star:before {
  497 + content: '\f02a'; }
  498 +
  499 +.octicon-star-add:before {
  500 + content: '\f082'; }
  501 +
  502 +.octicon-star-delete:before {
  503 + content: '\f083'; }
  504 +
  505 +.octicon-stop:before {
  506 + content: '\f08f'; }
  507 +
  508 +.octicon-sync:before {
  509 + content: '\f087'; }
  510 +
  511 +.octicon-tag:before {
  512 + content: '\f015'; }
  513 +
  514 +.octicon-tag-add:before {
  515 + content: '\f054'; }
  516 +
  517 +.octicon-tag-remove:before {
  518 + content: '\f055'; }
  519 +
  520 +.octicon-telescope:before {
  521 + content: '\f088'; }
  522 +
  523 +.octicon-three-bars:before {
  524 + content: '\f05e'; }
  525 +
  526 +.octicon-tools:before {
  527 + content: '\f031'; }
  528 +
  529 +.octicon-triangle-down:before {
  530 + content: '\f05b'; }
  531 +
  532 +.octicon-triangle-left:before {
  533 + content: '\f044'; }
  534 +
  535 +.octicon-triangle-right:before {
  536 + content: '\f05a'; }
  537 +
  538 +.octicon-triangle-up:before {
  539 + content: '\f0aa'; }
  540 +
  541 +.octicon-unfold:before {
  542 + content: '\f039'; }
  543 +
  544 +.octicon-versions:before {
  545 + content: '\f064'; }
  546 +
  547 +.octicon-x:before {
  548 + content: '\f081'; }
  549 +
  550 +.octicon-zap:before {
  551 + content: '\26A1'; }
... ...
forum/static/css/base/octicons.scss
... ... @@ -0,0 +1 @@
  1 +@font-face{font-family:'octicons';src:url("/static/octicons/octicons-d3d0b82bf791ac147d72bbf0287cdde8ee5c97b8.eot");src:url("/static/octicons/octicons-d3d0b82bf791ac147d72bbf0287cdde8ee5c97b8.eot#iefix") format("embedded-opentype"),url("/static/octicons/octicons-a60d585f754059c3c2ef731f853c38c157040b9c.woff") format("woff"),url("/static/octicons/octicons-8b97c2cd5068ec4620cbde3140db257b1924a192.ttf") format("truetype"),url("/static/octicons/octicons-a8248bbb3baccca60948d81d69e3406b71956a69.svg#octicons") format("svg");font-weight:normal;font-style:normal}.octicon{font:normal normal 16px octicons;line-height:1;display:inline-block;text-decoration:none;-webkit-font-smoothing:antialiased}.mega-octicon{font:normal normal 32px octicons;line-height:1;display:inline-block;text-decoration:none;-webkit-font-smoothing:antialiased}.octicon-alert:before{content:'\f02d'}.octicon-alignment-align:before{content:'\f08a'}.octicon-alignment-aligned-to:before{content:'\f08e'}.octicon-alignment-unalign:before{content:'\f08b'}.octicon-arrow-down:before{content:'\f03f'}.octicon-arrow-left:before{content:'\f040'}.octicon-arrow-right:before{content:'\f03e'}.octicon-arrow-small-down:before{content:'\f0a0'}.octicon-arrow-small-left:before{content:'\f0a1'}.octicon-arrow-small-right:before{content:'\f071'}.octicon-arrow-small-up:before{content:'\f09f'}.octicon-arrow-up:before{content:'\f03d'}.octicon-beer:before{content:'\f069'}.octicon-book:before{content:'\f007'}.octicon-bookmark:before{content:'\f07b'}.octicon-broadcast:before{content:'\f048'}.octicon-bug:before{content:'\f091'}.octicon-calendar:before{content:'\f068'}.octicon-check:before{content:'\f03a'}.octicon-checklist:before{content:'\f076'}.octicon-chevron-down:before{content:'\f0a3'}.octicon-chevron-left:before{content:'\f0a4'}.octicon-chevron-right:before{content:'\f078'}.octicon-chevron-up:before{content:'\f0a2'}.octicon-circle-slash:before{content:'\f084'}.octicon-clippy:before{content:'\f035'}.octicon-clock:before{content:'\f046'}.octicon-cloud-download:before{content:'\f00b'}.octicon-cloud-upload:before{content:'\f00c'}.octicon-code:before{content:'\f05f'}.octicon-color-mode:before{content:'\f065'}.octicon-comment:before{content:'\f02b'}.octicon-comment-add:before{content:'\f06f'}.octicon-comment-discussion:before{content:'\f04f'}.octicon-credit-card:before{content:'\f045'}.octicon-dashboard:before{content:'\f07d'}.octicon-database:before{content:'\f096'}.octicon-device-camera:before{content:'\f056'}.octicon-device-camera-video:before{content:'\f057'}.octicon-device-desktop:before{content:'\f27c'}.octicon-device-mobile:before{content:'\f038'}.octicon-diff:before{content:'\f04d'}.octicon-diff-added:before{content:'\f06b'}.octicon-diff-ignored:before{content:'\f099'}.octicon-diff-modified:before{content:'\f06d'}.octicon-diff-removed:before{content:'\f06c'}.octicon-diff-renamed:before{content:'\f06e'}.octicon-ellipsis:before{content:'\f09a'}.octicon-eye:before{content:'\f04e'}.octicon-eye-unwatch:before{content:'\f01e'}.octicon-eye-watch:before{content:'\f01d'}.octicon-file-add:before{content:'\f086'}.octicon-file-binary:before{content:'\f094'}.octicon-file-code:before{content:'\f010'}.octicon-file-directory:before{content:'\f016'}.octicon-file-directory-create:before{content:'\f095'}.octicon-file-media:before{content:'\f012'}.octicon-file-pdf:before{content:'\f014'}.octicon-file-submodule:before{content:'\f017'}.octicon-file-symlink-directory:before{content:'\f0b1'}.octicon-file-symlink-file:before{content:'\f0b0'}.octicon-file-text:before{content:'\f011'}.octicon-file-zip:before{content:'\f013'}.octicon-gear:before{content:'\f02f'}.octicon-gift:before{content:'\f042'}.octicon-gist:before{content:'\f00e'}.octicon-gist-fork:before{content:'\f079'}.octicon-gist-new:before{content:'\f07a'}.octicon-gist-private:before{content:'\f00f'}.octicon-gist-secret:before{content:'\f08c'}.octicon-git-branch:before{content:'\f020'}.octicon-git-branch-create:before{content:'\f098'}.octicon-git-branch-delete:before{content:'\f09b'}.octicon-git-commit:before{content:'\f01f'}.octicon-git-compare:before{content:'\f0ac'}.octicon-git-fork-private:before{content:'\f021'}.octicon-git-merge:before{content:'\f023'}.octicon-git-pull-request:before{content:'\f009'}.octicon-git-pull-request-abandoned:before{content:'\f090'}.octicon-globe:before{content:'\f0b6'}.octicon-graph:before{content:'\f043'}.octicon-history:before{content:'\f07e'}.octicon-home:before{content:'\f08d'}.octicon-horizontal-rule:before{content:'\f070'}.octicon-hourglass:before{content:'\f09e'}.octicon-hubot:before{content:'\f09d'}.octicon-info:before{content:'\f059'}.octicon-issue-closed:before{content:'\f028'}.octicon-issue-opened:before{content:'\f026'}.octicon-issue-reopened:before{content:'\f027'}.octicon-jersey:before{content:'\f019'}.octicon-jump-down:before{content:'\f072'}.octicon-jump-left:before{content:'\f0a5'}.octicon-jump-right:before{content:'\f0a6'}.octicon-jump-up:before{content:'\f073'}.octicon-key:before{content:'\f049'}.octicon-keyboard:before{content:'\f00d'}.octicon-light-bulb:before{content:'\f000'}.octicon-link:before{content:'\f05c'}.octicon-link-external:before{content:'\f07f'}.octicon-list-ordered:before{content:'\f062'}.octicon-list-unordered:before{content:'\f061'}.octicon-location:before{content:'\f060'}.octicon-lock:before{content:'\f06a'}.octicon-log-in:before{content:'\f036'}.octicon-log-out:before{content:'\f032'}.octicon-logo-github:before{content:'\f092'}.octicon-mail:before{content:'\f03b'}.octicon-mail-read:before{content:'\f03c'}.octicon-mail-reply:before{content:'\f051'}.octicon-mark-github:before{content:'\f00a'}.octicon-mark-twitter:before{content:'\f0ae'}.octicon-megaphone:before{content:'\f077'}.octicon-microscope:before{content:'\f089'}.octicon-milestone:before{content:'\f075'}.octicon-mirror-private:before{content:'\f025'}.octicon-mirror-public:before{content:'\f024'}.octicon-move-down:before{content:'\f0a8'}.octicon-move-left:before{content:'\f074'}.octicon-move-right:before{content:'\f0a9'}.octicon-move-up:before{content:'\f0a7'}.octicon-mute:before{content:'\f080'}.octicon-no-newline:before{content:'\f09c'}.octicon-octoface:before{content:'\f008'}.octicon-organization:before{content:'\f037'}.octicon-pencil:before{content:'\f058'}.octicon-person:before{content:'\f018'}.octicon-person-add:before{content:'\f01a'}.octicon-person-follow:before{content:'\f01c'}.octicon-person-remove:before{content:'\f01b'}.octicon-pin:before{content:'\f041'}.octicon-plus:before{content:'\f05d'}.octicon-podium:before{content:'\f0af'}.octicon-primitive-dot:before{content:'\f052'}.octicon-primitive-square:before{content:'\f053'}.octicon-pulse:before{content:'\f085'}.octicon-question:before{content:'\f02c'}.octicon-quote:before{content:'\f063'}.octicon-radio-tower:before{content:'\f030'}.octicon-remove-close:before{content:'\f050'}.octicon-repo:before{content:'\f001'}.octicon-repo-clone:before{content:'\f04c'}.octicon-repo-create:before{content:'\f003'}.octicon-repo-delete:before{content:'\f004'}.octicon-repo-force-push:before{content:'\f04a'}.octicon-repo-forked:before{content:'\f002'}.octicon-repo-pull:before{content:'\f006'}.octicon-repo-push:before{content:'\f005'}.octicon-repo-sync:before{content:'\f04b'}.octicon-rocket:before{content:'\f033'}.octicon-rss:before{content:'\f034'}.octicon-ruby:before{content:'\f047'}.octicon-screen-full:before{content:'\f066'}.octicon-screen-normal:before{content:'\f067'}.octicon-search:before{content:'\f02e'}.octicon-server:before{content:'\f097'}.octicon-settings:before{content:'\f07c'}.octicon-squirrel:before{content:'\f0b2'}.octicon-star:before{content:'\f02a'}.octicon-star-add:before{content:'\f082'}.octicon-star-delete:before{content:'\f083'}.octicon-stop:before{content:'\f08f'}.octicon-sync:before{content:'\f087'}.octicon-tag:before{content:'\f015'}.octicon-tag-add:before{content:'\f054'}.octicon-tag-remove:before{content:'\f055'}.octicon-telescope:before{content:'\f088'}.octicon-three-bars:before{content:'\f05e'}.octicon-tools:before{content:'\f031'}.octicon-triangle-down:before{content:'\f05b'}.octicon-triangle-left:before{content:'\f044'}.octicon-triangle-right:before{content:'\f05a'}.octicon-triangle-up:before{content:'\f0aa'}.octicon-unfold:before{content:'\f039'}.octicon-versions:before{content:'\f064'}.octicon-x:before{content:'\f081'}.octicon-zap:before{content:'\26A1'}
... ...
forum/static/css/base/reset.css
... ... @@ -0,0 +1,124 @@
  1 +/*
  2 +YUI 3.4.1 (build 4118)
  3 +Copyright 2011 Yahoo! Inc. All rights reserved.
  4 +Licensed under the BSD License.
  5 +http://yuilibrary.com/license/
  6 +*/
  7 +/*
  8 + TODO will need to remove settings on HTML since we can't namespace it.
  9 + TODO with the prefix, should I group by selector or property for weight savings?
  10 +*/
  11 +html{
  12 + color:#000;
  13 + background:#FFF;
  14 +}
  15 +/*
  16 + TODO remove settings on BODY since we can't namespace it.
  17 +*/
  18 +/*
  19 + TODO test putting a class on HEAD.
  20 + - Fails on FF.
  21 +*/
  22 +body,
  23 +div,
  24 +dl,
  25 +dt,
  26 +dd,
  27 +ul,
  28 +ol,
  29 +li,
  30 +h1,
  31 +h2,
  32 +h3,
  33 +h4,
  34 +h5,
  35 +h6,
  36 +pre,
  37 +code,
  38 +form,
  39 +fieldset,
  40 +legend,
  41 +input,
  42 +textarea,
  43 +p,
  44 +blockquote,
  45 +th,
  46 +td {
  47 + margin:0;
  48 + padding:0;
  49 +}
  50 +table {
  51 + border-collapse:collapse;
  52 + border-spacing:0;
  53 +}
  54 +fieldset,
  55 +img {
  56 + border:0;
  57 +}
  58 +/*
  59 + TODO think about hanlding inheritence differently, maybe letting IE6 fail a bit...
  60 +*/
  61 +address,
  62 +caption,
  63 +cite,
  64 +code,
  65 +dfn,
  66 +em,
  67 +strong,
  68 +th,
  69 +var {
  70 + font-style:normal;
  71 + font-weight:normal;
  72 +}
  73 +
  74 +ol,
  75 +ul {
  76 + list-style:none;
  77 +}
  78 +
  79 +caption,
  80 +th {
  81 + text-align:left;
  82 +}
  83 +h1,
  84 +h2,
  85 +h3,
  86 +h4,
  87 +h5,
  88 +h6 {
  89 + font-size:100%;
  90 + font-weight:normal;
  91 +}
  92 +q:before,
  93 +q:after {
  94 + content:'';
  95 +}
  96 +abbr,
  97 +acronym {
  98 + border:0;
  99 + font-variant:normal;
  100 +}
  101 +/* to preserve line-height and selector appearance */
  102 +sup {
  103 + vertical-align:text-top;
  104 +}
  105 +sub {
  106 + vertical-align:text-bottom;
  107 +}
  108 +input,
  109 +textarea,
  110 +select {
  111 + font-family:inherit;
  112 + font-size:inherit;
  113 + font-weight:inherit;
  114 +}
  115 +/*to enable resizing for IE*/
  116 +input,
  117 +textarea,
  118 +select {
  119 + *font-size:100%;
  120 +}
  121 +/*because legend doesn't inherit in IE */
  122 +legend {
  123 + color:#000;
  124 +}
... ...
forum/static/css/bootstrap/bootstrap.css
Changes suppressed. Click to show
... ... @@ -0,0 +1,5117 @@
  1 +/*!
  2 + * Bootstrap v2.2.2
  3 + *
  4 + * Copyright 2012 Twitter, Inc
  5 + * Licensed under the Apache License v2.0
  6 + * http://www.apache.org/licenses/LICENSE-2.0
  7 + *
  8 + * Designed and built with all the love in the world @twitter by @mdo and @fat.
  9 + */
  10 +.clearfix {
  11 + *zoom: 1;
  12 +}
  13 +.clearfix:before,
  14 +.clearfix:after {
  15 + display: table;
  16 + content: "";
  17 + line-height: 0;
  18 +}
  19 +.clearfix:after {
  20 + clear: both;
  21 +}
  22 +.hide-text {
  23 + font: 0/0 a;
  24 + color: transparent;
  25 + text-shadow: none;
  26 + background-color: transparent;
  27 + border: 0;
  28 +}
  29 +.input-block-level {
  30 + display: block;
  31 + width: 100%;
  32 + min-height: 30px;
  33 + -webkit-box-sizing: border-box;
  34 + -moz-box-sizing: border-box;
  35 + box-sizing: border-box;
  36 +}
  37 +article,
  38 +aside,
  39 +details,
  40 +figcaption,
  41 +figure,
  42 +footer,
  43 +header,
  44 +hgroup,
  45 +nav,
  46 +section {
  47 + display: block;
  48 +}
  49 +audio,
  50 +canvas,
  51 +video {
  52 + display: inline-block;
  53 + *display: inline;
  54 + *zoom: 1;
  55 +}
  56 +audio:not([controls]) {
  57 + display: none;
  58 +}
  59 +html {
  60 + font-size: 100%;
  61 + -webkit-text-size-adjust: 100%;
  62 + -ms-text-size-adjust: 100%;
  63 +}
  64 +a:focus {
  65 + outline: thin dotted #333;
  66 + outline: 5px auto -webkit-focus-ring-color;
  67 + outline-offset: -2px;
  68 +}
  69 +a:hover,
  70 +a:active {
  71 + outline: 0;
  72 +}
  73 +sub,
  74 +sup {
  75 + position: relative;
  76 + font-size: 75%;
  77 + line-height: 0;
  78 + vertical-align: baseline;
  79 +}
  80 +sup {
  81 + top: -0.5em;
  82 +}
  83 +sub {
  84 + bottom: -0.25em;
  85 +}
  86 +img {
  87 + /* Responsive images (ensure images don't scale beyond their parents) */
  88 +
  89 + max-width: 100%;
  90 + /* Part 1: Set a maxium relative to the parent */
  91 +
  92 + width: auto\9;
  93 + /* IE7-8 need help adjusting responsive images */
  94 +
  95 + height: auto;
  96 + /* Part 2: Scale the height according to the width, otherwise you get stretching */
  97 +
  98 + vertical-align: middle;
  99 + border: 0;
  100 + -ms-interpolation-mode: bicubic;
  101 +}
  102 +#map_canvas img,
  103 +.google-maps img {
  104 + max-width: none;
  105 +}
  106 +button,
  107 +input,
  108 +select,
  109 +textarea {
  110 + margin: 0;
  111 + font-size: 100%;
  112 + vertical-align: middle;
  113 +}
  114 +button,
  115 +input {
  116 + *overflow: visible;
  117 + line-height: normal;
  118 +}
  119 +button::-moz-focus-inner,
  120 +input::-moz-focus-inner {
  121 + padding: 0;
  122 + border: 0;
  123 +}
  124 +button,
  125 +html input[type="button"],
  126 +input[type="reset"],
  127 +input[type="submit"] {
  128 + -webkit-appearance: button;
  129 + cursor: pointer;
  130 +}
  131 +label,
  132 +select,
  133 +button,
  134 +input[type="button"],
  135 +input[type="reset"],
  136 +input[type="submit"],
  137 +input[type="radio"],
  138 +input[type="checkbox"] {
  139 + cursor: pointer;
  140 +}
  141 +input[type="search"] {
  142 + -webkit-box-sizing: content-box;
  143 + -moz-box-sizing: content-box;
  144 + box-sizing: content-box;
  145 + -webkit-appearance: textfield;
  146 +}
  147 +input[type="search"]::-webkit-search-decoration,
  148 +input[type="search"]::-webkit-search-cancel-button {
  149 + -webkit-appearance: none;
  150 +}
  151 +textarea {
  152 + overflow: auto;
  153 + vertical-align: top;
  154 +}
  155 +@media print {
  156 + * {
  157 + text-shadow: none !important;
  158 + color: #000 !important;
  159 + background: transparent !important;
  160 + box-shadow: none !important;
  161 + }
  162 + a,
  163 + a:visited {
  164 + text-decoration: underline;
  165 + }
  166 + a[href]:after {
  167 + content: " (" attr(href) ")";
  168 + }
  169 + abbr[title]:after {
  170 + content: " (" attr(title) ")";
  171 + }
  172 + .ir a:after,
  173 + a[href^="javascript:"]:after,
  174 + a[href^="#"]:after {
  175 + content: "";
  176 + }
  177 + pre,
  178 + blockquote {
  179 + border: 1px solid #999;
  180 + page-break-inside: avoid;
  181 + }
  182 + thead {
  183 + display: table-header-group;
  184 + }
  185 + tr,
  186 + img {
  187 + page-break-inside: avoid;
  188 + }
  189 + img {
  190 + max-width: 100% !important;
  191 + }
  192 + @page {
  193 + margin: 0.5cm;
  194 + }
  195 + p,
  196 + h2,
  197 + h3 {
  198 + orphans: 3;
  199 + widows: 3;
  200 + }
  201 + h2,
  202 + h3 {
  203 + page-break-after: avoid;
  204 + }
  205 +}
  206 +body {
  207 + margin: 0;
  208 + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  209 + font-size: 12px;
  210 + line-height: 20px;
  211 + color: #333333;
  212 + background-color: #ffffff;
  213 +}
  214 +a {
  215 + color: #0088cc;
  216 + text-decoration: none;
  217 +}
  218 +a:hover {
  219 + color: #005580;
  220 + text-decoration: underline;
  221 +}
  222 +.img-rounded {
  223 + -webkit-border-radius: 6px;
  224 + -moz-border-radius: 6px;
  225 + border-radius: 6px;
  226 +}
  227 +.img-polaroid {
  228 + padding: 4px;
  229 + background-color: #fff;
  230 + border: 1px solid #ccc;
  231 + border: 1px solid rgba(0, 0, 0, 0.2);
  232 + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  233 + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  234 + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  235 +}
  236 +.img-circle {
  237 + -webkit-border-radius: 500px;
  238 + -moz-border-radius: 500px;
  239 + border-radius: 500px;
  240 +}
  241 +.row {
  242 + margin-left: -20px;
  243 + *zoom: 1;
  244 +}
  245 +.row:before,
  246 +.row:after {
  247 + display: table;
  248 + content: "";
  249 + line-height: 0;
  250 +}
  251 +.row:after {
  252 + clear: both;
  253 +}
  254 +[class*="span"] {
  255 + float: left;
  256 + min-height: 1px;
  257 + margin-left: 20px;
  258 +}
  259 +.container,
  260 +.navbar-static-top .container,
  261 +.navbar-fixed-top .container,
  262 +.navbar-fixed-bottom .container {
  263 + width: 940px;
  264 +}
  265 +.span12 {
  266 + width: 940px;
  267 +}
  268 +.span11 {
  269 + width: 860px;
  270 +}
  271 +.span10 {
  272 + width: 780px;
  273 +}
  274 +.span9 {
  275 + width: 700px;
  276 +}
  277 +.span8 {
  278 + width: 620px;
  279 +}
  280 +.span7 {
  281 + width: 540px;
  282 +}
  283 +.span6 {
  284 + width: 460px;
  285 +}
  286 +.span5 {
  287 + width: 380px;
  288 +}
  289 +.span4 {
  290 + width: 300px;
  291 +}
  292 +.span3 {
  293 + width: 220px;
  294 +}
  295 +.span2 {
  296 + width: 140px;
  297 +}
  298 +.span1 {
  299 + width: 60px;
  300 +}
  301 +.offset12 {
  302 + margin-left: 980px;
  303 +}
  304 +.offset11 {
  305 + margin-left: 900px;
  306 +}
  307 +.offset10 {
  308 + margin-left: 820px;
  309 +}
  310 +.offset9 {
  311 + margin-left: 740px;
  312 +}
  313 +.offset8 {
  314 + margin-left: 660px;
  315 +}
  316 +.offset7 {
  317 + margin-left: 580px;
  318 +}
  319 +.offset6 {
  320 + margin-left: 500px;
  321 +}
  322 +.offset5 {
  323 + margin-left: 420px;
  324 +}
  325 +.offset4 {
  326 + margin-left: 340px;
  327 +}
  328 +.offset3 {
  329 + margin-left: 260px;
  330 +}
  331 +.offset2 {
  332 + margin-left: 180px;
  333 +}
  334 +.offset1 {
  335 + margin-left: 100px;
  336 +}
  337 +.row-fluid {
  338 + width: 100%;
  339 + *zoom: 1;
  340 +}
  341 +.row-fluid:before,
  342 +.row-fluid:after {
  343 + display: table;
  344 + content: "";
  345 + line-height: 0;
  346 +}
  347 +.row-fluid:after {
  348 + clear: both;
  349 +}
  350 +.row-fluid [class*="span"] {
  351 + display: block;
  352 + width: 100%;
  353 + min-height: 30px;
  354 + -webkit-box-sizing: border-box;
  355 + -moz-box-sizing: border-box;
  356 + box-sizing: border-box;
  357 + float: left;
  358 + margin-left: 2.127659574468085%;
  359 + *margin-left: 2.074468085106383%;
  360 +}
  361 +.row-fluid [class*="span"]:first-child {
  362 + margin-left: 0;
  363 +}
  364 +.row-fluid .controls-row [class*="span"] + [class*="span"] {
  365 + margin-left: 2.127659574468085%;
  366 +}
  367 +.row-fluid .span12 {
  368 + width: 100%;
  369 + *width: 99.94680851063829%;
  370 +}
  371 +.row-fluid .span11 {
  372 + width: 91.48936170212765%;
  373 + *width: 91.43617021276594%;
  374 +}
  375 +.row-fluid .span10 {
  376 + width: 82.97872340425532%;
  377 + *width: 82.92553191489361%;
  378 +}
  379 +.row-fluid .span9 {
  380 + width: 74.46808510638297%;
  381 + *width: 74.41489361702126%;
  382 +}
  383 +.row-fluid .span8 {
  384 + width: 65.95744680851064%;
  385 + *width: 65.90425531914893%;
  386 +}
  387 +.row-fluid .span7 {
  388 + width: 57.44680851063829%;
  389 + *width: 57.39361702127659%;
  390 +}
  391 +.row-fluid .span6 {
  392 + width: 48.93617021276595%;
  393 + *width: 48.88297872340425%;
  394 +}
  395 +.row-fluid .span5 {
  396 + width: 40.42553191489362%;
  397 + *width: 40.37234042553192%;
  398 +}
  399 +.row-fluid .span4 {
  400 + width: 31.914893617021278%;
  401 + *width: 31.861702127659576%;
  402 +}
  403 +.row-fluid .span3 {
  404 + width: 23.404255319148934%;
  405 + *width: 23.351063829787233%;
  406 +}
  407 +.row-fluid .span2 {
  408 + width: 14.893617021276595%;
  409 + *width: 14.840425531914894%;
  410 +}
  411 +.row-fluid .span1 {
  412 + width: 6.382978723404255%;
  413 + *width: 6.329787234042553%;
  414 +}
  415 +.row-fluid .offset12 {
  416 + margin-left: 104.25531914893617%;
  417 + *margin-left: 104.14893617021275%;
  418 +}
  419 +.row-fluid .offset12:first-child {
  420 + margin-left: 102.12765957446808%;
  421 + *margin-left: 102.02127659574467%;
  422 +}
  423 +.row-fluid .offset11 {
  424 + margin-left: 95.74468085106382%;
  425 + *margin-left: 95.6382978723404%;
  426 +}
  427 +.row-fluid .offset11:first-child {
  428 + margin-left: 93.61702127659574%;
  429 + *margin-left: 93.51063829787232%;
  430 +}
  431 +.row-fluid .offset10 {
  432 + margin-left: 87.23404255319149%;
  433 + *margin-left: 87.12765957446807%;
  434 +}
  435 +.row-fluid .offset10:first-child {
  436 + margin-left: 85.1063829787234%;
  437 + *margin-left: 84.99999999999999%;
  438 +}
  439 +.row-fluid .offset9 {
  440 + margin-left: 78.72340425531914%;
  441 + *margin-left: 78.61702127659572%;
  442 +}
  443 +.row-fluid .offset9:first-child {
  444 + margin-left: 76.59574468085106%;
  445 + *margin-left: 76.48936170212764%;
  446 +}
  447 +.row-fluid .offset8 {
  448 + margin-left: 70.2127659574468%;
  449 + *margin-left: 70.10638297872339%;
  450 +}
  451 +.row-fluid .offset8:first-child {
  452 + margin-left: 68.08510638297872%;
  453 + *margin-left: 67.9787234042553%;
  454 +}
  455 +.row-fluid .offset7 {
  456 + margin-left: 61.70212765957446%;
  457 + *margin-left: 61.59574468085106%;
  458 +}
  459 +.row-fluid .offset7:first-child {
  460 + margin-left: 59.574468085106375%;
  461 + *margin-left: 59.46808510638297%;
  462 +}
  463 +.row-fluid .offset6 {
  464 + margin-left: 53.191489361702125%;
  465 + *margin-left: 53.085106382978715%;
  466 +}
  467 +.row-fluid .offset6:first-child {
  468 + margin-left: 51.063829787234035%;
  469 + *margin-left: 50.95744680851063%;
  470 +}
  471 +.row-fluid .offset5 {
  472 + margin-left: 44.68085106382979%;
  473 + *margin-left: 44.57446808510638%;
  474 +}
  475 +.row-fluid .offset5:first-child {
  476 + margin-left: 42.5531914893617%;
  477 + *margin-left: 42.4468085106383%;
  478 +}
  479 +.row-fluid .offset4 {
  480 + margin-left: 36.170212765957444%;
  481 + *margin-left: 36.06382978723405%;
  482 +}
  483 +.row-fluid .offset4:first-child {
  484 + margin-left: 34.04255319148936%;
  485 + *margin-left: 33.93617021276596%;
  486 +}
  487 +.row-fluid .offset3 {
  488 + margin-left: 27.659574468085104%;
  489 + *margin-left: 27.5531914893617%;
  490 +}
  491 +.row-fluid .offset3:first-child {
  492 + margin-left: 25.53191489361702%;
  493 + *margin-left: 25.425531914893618%;
  494 +}
  495 +.row-fluid .offset2 {
  496 + margin-left: 19.148936170212764%;
  497 + *margin-left: 19.04255319148936%;
  498 +}
  499 +.row-fluid .offset2:first-child {
  500 + margin-left: 17.02127659574468%;
  501 + *margin-left: 16.914893617021278%;
  502 +}
  503 +.row-fluid .offset1 {
  504 + margin-left: 10.638297872340425%;
  505 + *margin-left: 10.53191489361702%;
  506 +}
  507 +.row-fluid .offset1:first-child {
  508 + margin-left: 8.51063829787234%;
  509 + *margin-left: 8.404255319148938%;
  510 +}
  511 +[class*="span"].hide,
  512 +.row-fluid [class*="span"].hide {
  513 + display: none;
  514 +}
  515 +[class*="span"].pull-right,
  516 +.row-fluid [class*="span"].pull-right {
  517 + float: right;
  518 +}
  519 +.container {
  520 + margin-right: auto;
  521 + margin-left: auto;
  522 + *zoom: 1;
  523 +}
  524 +.container:before,
  525 +.container:after {
  526 + display: table;
  527 + content: "";
  528 + line-height: 0;
  529 +}
  530 +.container:after {
  531 + clear: both;
  532 +}
  533 +.container-fluid {
  534 + padding-right: 20px;
  535 + padding-left: 20px;
  536 + *zoom: 1;
  537 +}
  538 +.container-fluid:before,
  539 +.container-fluid:after {
  540 + display: table;
  541 + content: "";
  542 + line-height: 0;
  543 +}
  544 +.container-fluid:after {
  545 + clear: both;
  546 +}
  547 +p {
  548 + margin: 0 0 10px;
  549 +}
  550 +.lead {
  551 + margin-bottom: 20px;
  552 + font-size: 18px;
  553 + font-weight: 200;
  554 + line-height: 30px;
  555 +}
  556 +small {
  557 + font-size: 85%;
  558 +}
  559 +strong {
  560 + font-weight: bold;
  561 +}
  562 +em {
  563 + font-style: italic;
  564 +}
  565 +cite {
  566 + font-style: normal;
  567 +}
  568 +.muted {
  569 + color: #999999;
  570 +}
  571 +a.muted:hover {
  572 + color: #808080;
  573 +}
  574 +.text-warning {
  575 + color: #c09853;
  576 +}
  577 +a.text-warning:hover {
  578 + color: #a47e3c;
  579 +}
  580 +.text-error {
  581 + color: #b94a48;
  582 +}
  583 +a.text-error:hover {
  584 + color: #953b39;
  585 +}
  586 +.text-info {
  587 + color: #3a87ad;
  588 +}
  589 +a.text-info:hover {
  590 + color: #2d6987;
  591 +}
  592 +.text-success {
  593 + color: #468847;
  594 +}
  595 +a.text-success:hover {
  596 + color: #356635;
  597 +}
  598 +h1,
  599 +h2,
  600 +h3,
  601 +h4,
  602 +h5,
  603 +h6 {
  604 + margin: 10px 0;
  605 + font-family: inherit;
  606 + font-weight: bold;
  607 + line-height: 20px;
  608 + color: inherit;
  609 + text-rendering: optimizelegibility;
  610 +}
  611 +h1 small,
  612 +h2 small,
  613 +h3 small,
  614 +h4 small,
  615 +h5 small,
  616 +h6 small {
  617 + font-weight: normal;
  618 + line-height: 1;
  619 + color: #999999;
  620 +}
  621 +h1,
  622 +h2,
  623 +h3 {
  624 + line-height: 40px;
  625 +}
  626 +h1 {
  627 + font-size: 33px;
  628 +}
  629 +h2 {
  630 + font-size: 27px;
  631 +}
  632 +h3 {
  633 + font-size: 21px;
  634 +}
  635 +h4 {
  636 + font-size: 15px;
  637 +}
  638 +h5 {
  639 + font-size: 12px;
  640 +}
  641 +h6 {
  642 + font-size: 10.2px;
  643 +}
  644 +h1 small {
  645 + font-size: 21px;
  646 +}
  647 +h2 small {
  648 + font-size: 15px;
  649 +}
  650 +h3 small {
  651 + font-size: 12px;
  652 +}
  653 +h4 small {
  654 + font-size: 12px;
  655 +}
  656 +.page-header {
  657 + padding-bottom: 9px;
  658 + margin: 20px 0 30px;
  659 + border-bottom: 1px solid #eeeeee;
  660 +}
  661 +ul,
  662 +ol {
  663 + padding: 0;
  664 + margin: 0 0 10px 25px;
  665 +}
  666 +ul ul,
  667 +ul ol,
  668 +ol ol,
  669 +ol ul {
  670 + margin-bottom: 0;
  671 +}
  672 +li {
  673 + line-height: 20px;
  674 +}
  675 +ul.unstyled,
  676 +ol.unstyled {
  677 + margin-left: 0;
  678 + list-style: none;
  679 +}
  680 +ul.inline,
  681 +ol.inline {
  682 + margin-left: 0;
  683 + list-style: none;
  684 +}
  685 +ul.inline > li,
  686 +ol.inline > li {
  687 + display: inline-block;
  688 + padding-left: 5px;
  689 + padding-right: 5px;
  690 +}
  691 +dl {
  692 + margin-bottom: 20px;
  693 +}
  694 +dt,
  695 +dd {
  696 + line-height: 20px;
  697 +}
  698 +dt {
  699 + font-weight: bold;
  700 +}
  701 +dd {
  702 + margin-left: 10px;
  703 +}
  704 +.dl-horizontal {
  705 + *zoom: 1;
  706 +}
  707 +.dl-horizontal:before,
  708 +.dl-horizontal:after {
  709 + display: table;
  710 + content: "";
  711 + line-height: 0;
  712 +}
  713 +.dl-horizontal:after {
  714 + clear: both;
  715 +}
  716 +.dl-horizontal dt {
  717 + float: left;
  718 + width: 160px;
  719 + clear: left;
  720 + text-align: right;
  721 + overflow: hidden;
  722 + text-overflow: ellipsis;
  723 + white-space: nowrap;
  724 +}
  725 +.dl-horizontal dd {
  726 + margin-left: 180px;
  727 +}
  728 +hr {
  729 + margin: 20px 0;
  730 + border: 0;
  731 + border-top: 1px solid #eeeeee;
  732 + border-bottom: 1px solid #ffffff;
  733 +}
  734 +abbr[title],
  735 +abbr[data-original-title] {
  736 + cursor: help;
  737 + border-bottom: 1px dotted #999999;
  738 +}
  739 +abbr.initialism {
  740 + font-size: 90%;
  741 + text-transform: uppercase;
  742 +}
  743 +blockquote {
  744 + padding: 0 0 0 15px;
  745 + margin: 0 0 20px;
  746 + border-left: 5px solid #eeeeee;
  747 +}
  748 +blockquote p {
  749 + margin-bottom: 0;
  750 + font-size: 16px;
  751 + font-weight: 300;
  752 + line-height: 25px;
  753 +}
  754 +blockquote small {
  755 + display: block;
  756 + line-height: 20px;
  757 + color: #999999;
  758 +}
  759 +blockquote small:before {
  760 + content: '\2014 \00A0';
  761 +}
  762 +blockquote.pull-right {
  763 + float: right;
  764 + padding-right: 15px;
  765 + padding-left: 0;
  766 + border-right: 5px solid #eeeeee;
  767 + border-left: 0;
  768 +}
  769 +blockquote.pull-right p,
  770 +blockquote.pull-right small {
  771 + text-align: right;
  772 +}
  773 +blockquote.pull-right small:before {
  774 + content: '';
  775 +}
  776 +blockquote.pull-right small:after {
  777 + content: '\00A0 \2014';
  778 +}
  779 +q:before,
  780 +q:after,
  781 +blockquote:before,
  782 +blockquote:after {
  783 + content: "";
  784 +}
  785 +address {
  786 + display: block;
  787 + margin-bottom: 20px;
  788 + font-style: normal;
  789 + line-height: 20px;
  790 +}
  791 +code,
  792 +pre {
  793 + padding: 0 3px 2px;
  794 + font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
  795 + font-size: 10px;
  796 + color: #333333;
  797 + -webkit-border-radius: 3px;
  798 + -moz-border-radius: 3px;
  799 + border-radius: 3px;
  800 +}
  801 +code {
  802 + padding: 2px 4px;
  803 + color: #d14;
  804 + background-color: #f7f7f9;
  805 + border: 1px solid #e1e1e8;
  806 + white-space: nowrap;
  807 +}
  808 +pre {
  809 + display: block;
  810 + padding: 9.5px;
  811 + margin: 0 0 10px;
  812 + font-size: 11px;
  813 + line-height: 20px;
  814 + word-break: break-all;
  815 + word-wrap: break-word;
  816 + white-space: pre;
  817 + white-space: pre-wrap;
  818 + background-color: #f5f5f5;
  819 + border: 1px solid #ccc;
  820 + border: 1px solid rgba(0, 0, 0, 0.15);
  821 + -webkit-border-radius: 4px;
  822 + -moz-border-radius: 4px;
  823 + border-radius: 4px;
  824 +}
  825 +pre.prettyprint {
  826 + margin-bottom: 20px;
  827 +}
  828 +pre code {
  829 + padding: 0;
  830 + color: inherit;
  831 + white-space: pre;
  832 + white-space: pre-wrap;
  833 + background-color: transparent;
  834 + border: 0;
  835 +}
  836 +.pre-scrollable {
  837 + max-height: 340px;
  838 + overflow-y: scroll;
  839 +}
  840 +.label,
  841 +.badge {
  842 + display: inline-block;
  843 + padding: 2px 4px;
  844 + font-size: 10.152px;
  845 + font-weight: bold;
  846 + line-height: 14px;
  847 + color: #ffffff;
  848 + vertical-align: baseline;
  849 + white-space: nowrap;
  850 + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  851 + background-color: #999999;
  852 +}
  853 +.label {
  854 + -webkit-border-radius: 3px;
  855 + -moz-border-radius: 3px;
  856 + border-radius: 3px;
  857 +}
  858 +.badge {
  859 + padding-left: 9px;
  860 + padding-right: 9px;
  861 + -webkit-border-radius: 9px;
  862 + -moz-border-radius: 9px;
  863 + border-radius: 9px;
  864 +}
  865 +.label:empty,
  866 +.badge:empty {
  867 + display: none;
  868 +}
  869 +a.label:hover,
  870 +a.badge:hover {
  871 + color: #ffffff;
  872 + text-decoration: none;
  873 + cursor: pointer;
  874 +}
  875 +.label-important,
  876 +.badge-important {
  877 + background-color: #b94a48;
  878 +}
  879 +.label-important[href],
  880 +.badge-important[href] {
  881 + background-color: #953b39;
  882 +}
  883 +.label-warning,
  884 +.badge-warning {
  885 + background-color: #f89406;
  886 +}
  887 +.label-warning[href],
  888 +.badge-warning[href] {
  889 + background-color: #c67605;
  890 +}
  891 +.label-success,
  892 +.badge-success {
  893 + background-color: #468847;
  894 +}
  895 +.label-success[href],
  896 +.badge-success[href] {
  897 + background-color: #356635;
  898 +}
  899 +.label-info,
  900 +.badge-info {
  901 + background-color: #3a87ad;
  902 +}
  903 +.label-info[href],
  904 +.badge-info[href] {
  905 + background-color: #2d6987;
  906 +}
  907 +.label-inverse,
  908 +.badge-inverse {
  909 + background-color: #333333;
  910 +}
  911 +.label-inverse[href],
  912 +.badge-inverse[href] {
  913 + background-color: #1a1a1a;
  914 +}
  915 +.btn .label,
  916 +.btn .badge {
  917 + position: relative;
  918 + top: -1px;
  919 +}
  920 +.btn-mini .label,
  921 +.btn-mini .badge {
  922 + top: 0;
  923 +}
  924 +table {
  925 + max-width: 100%;
  926 + background-color: transparent;
  927 + border-collapse: collapse;
  928 + border-spacing: 0;
  929 +}
  930 +.table {
  931 + width: 100%;
  932 + margin-bottom: 20px;
  933 +}
  934 +.table th,
  935 +.table td {
  936 + padding: 8px;
  937 + line-height: 20px;
  938 + text-align: left;
  939 + vertical-align: top;
  940 + border-top: 1px solid #dddddd;
  941 +}
  942 +.table th {
  943 + font-weight: bold;
  944 +}
  945 +.table thead th {
  946 + vertical-align: bottom;
  947 +}
  948 +.table caption + thead tr:first-child th,
  949 +.table caption + thead tr:first-child td,
  950 +.table colgroup + thead tr:first-child th,
  951 +.table colgroup + thead tr:first-child td,
  952 +.table thead:first-child tr:first-child th,
  953 +.table thead:first-child tr:first-child td {
  954 + border-top: 0;
  955 +}
  956 +.table tbody + tbody {
  957 + border-top: 2px solid #dddddd;
  958 +}
  959 +.table .table {
  960 + background-color: #ffffff;
  961 +}
  962 +.table-condensed th,
  963 +.table-condensed td {
  964 + padding: 4px 5px;
  965 +}
  966 +.table-bordered {
  967 + border: 1px solid #dddddd;
  968 + border-collapse: separate;
  969 + *border-collapse: collapse;
  970 + border-left: 0;
  971 + -webkit-border-radius: 4px;
  972 + -moz-border-radius: 4px;
  973 + border-radius: 4px;
  974 +}
  975 +.table-bordered th,
  976 +.table-bordered td {
  977 + border-left: 1px solid #dddddd;
  978 +}
  979 +.table-bordered caption + thead tr:first-child th,
  980 +.table-bordered caption + tbody tr:first-child th,
  981 +.table-bordered caption + tbody tr:first-child td,
  982 +.table-bordered colgroup + thead tr:first-child th,
  983 +.table-bordered colgroup + tbody tr:first-child th,
  984 +.table-bordered colgroup + tbody tr:first-child td,
  985 +.table-bordered thead:first-child tr:first-child th,
  986 +.table-bordered tbody:first-child tr:first-child th,
  987 +.table-bordered tbody:first-child tr:first-child td {
  988 + border-top: 0;
  989 +}
  990 +.table-bordered thead:first-child tr:first-child > th:first-child,
  991 +.table-bordered tbody:first-child tr:first-child > td:first-child {
  992 + -webkit-border-top-left-radius: 4px;
  993 + -moz-border-radius-topleft: 4px;
  994 + border-top-left-radius: 4px;
  995 +}
  996 +.table-bordered thead:first-child tr:first-child > th:last-child,
  997 +.table-bordered tbody:first-child tr:first-child > td:last-child {
  998 + -webkit-border-top-right-radius: 4px;
  999 + -moz-border-radius-topright: 4px;
  1000 + border-top-right-radius: 4px;
  1001 +}
  1002 +.table-bordered thead:last-child tr:last-child > th:first-child,
  1003 +.table-bordered tbody:last-child tr:last-child > td:first-child,
  1004 +.table-bordered tfoot:last-child tr:last-child > td:first-child {
  1005 + -webkit-border-bottom-left-radius: 4px;
  1006 + -moz-border-radius-bottomleft: 4px;
  1007 + border-bottom-left-radius: 4px;
  1008 +}
  1009 +.table-bordered thead:last-child tr:last-child > th:last-child,
  1010 +.table-bordered tbody:last-child tr:last-child > td:last-child,
  1011 +.table-bordered tfoot:last-child tr:last-child > td:last-child {
  1012 + -webkit-border-bottom-right-radius: 4px;
  1013 + -moz-border-radius-bottomright: 4px;
  1014 + border-bottom-right-radius: 4px;
  1015 +}
  1016 +.table-bordered tfoot + tbody:last-child tr:last-child td:first-child {
  1017 + -webkit-border-bottom-left-radius: 0;
  1018 + -moz-border-radius-bottomleft: 0;
  1019 + border-bottom-left-radius: 0;
  1020 +}
  1021 +.table-bordered tfoot + tbody:last-child tr:last-child td:last-child {
  1022 + -webkit-border-bottom-right-radius: 0;
  1023 + -moz-border-radius-bottomright: 0;
  1024 + border-bottom-right-radius: 0;
  1025 +}
  1026 +.table-bordered caption + thead tr:first-child th:first-child,
  1027 +.table-bordered caption + tbody tr:first-child td:first-child,
  1028 +.table-bordered colgroup + thead tr:first-child th:first-child,
  1029 +.table-bordered colgroup + tbody tr:first-child td:first-child {
  1030 + -webkit-border-top-left-radius: 4px;
  1031 + -moz-border-radius-topleft: 4px;
  1032 + border-top-left-radius: 4px;
  1033 +}
  1034 +.table-bordered caption + thead tr:first-child th:last-child,
  1035 +.table-bordered caption + tbody tr:first-child td:last-child,
  1036 +.table-bordered colgroup + thead tr:first-child th:last-child,
  1037 +.table-bordered colgroup + tbody tr:first-child td:last-child {
  1038 + -webkit-border-top-right-radius: 4px;
  1039 + -moz-border-radius-topright: 4px;
  1040 + border-top-right-radius: 4px;
  1041 +}
  1042 +.table-striped tbody > tr:nth-child(odd) > td,
  1043 +.table-striped tbody > tr:nth-child(odd) > th {
  1044 + background-color: #f9f9f9;
  1045 +}
  1046 +.table-hover tbody tr:hover td,
  1047 +.table-hover tbody tr:hover th {
  1048 + background-color: #f5f5f5;
  1049 +}
  1050 +table td[class*="span"],
  1051 +table th[class*="span"],
  1052 +.row-fluid table td[class*="span"],
  1053 +.row-fluid table th[class*="span"] {
  1054 + display: table-cell;
  1055 + float: none;
  1056 + margin-left: 0;
  1057 +}
  1058 +.table td.span1,
  1059 +.table th.span1 {
  1060 + float: none;
  1061 + width: 44px;
  1062 + margin-left: 0;
  1063 +}
  1064 +.table td.span2,
  1065 +.table th.span2 {
  1066 + float: none;
  1067 + width: 124px;
  1068 + margin-left: 0;
  1069 +}
  1070 +.table td.span3,
  1071 +.table th.span3 {
  1072 + float: none;
  1073 + width: 204px;
  1074 + margin-left: 0;
  1075 +}
  1076 +.table td.span4,
  1077 +.table th.span4 {
  1078 + float: none;
  1079 + width: 284px;
  1080 + margin-left: 0;
  1081 +}
  1082 +.table td.span5,
  1083 +.table th.span5 {
  1084 + float: none;
  1085 + width: 364px;
  1086 + margin-left: 0;
  1087 +}
  1088 +.table td.span6,
  1089 +.table th.span6 {
  1090 + float: none;
  1091 + width: 444px;
  1092 + margin-left: 0;
  1093 +}
  1094 +.table td.span7,
  1095 +.table th.span7 {
  1096 + float: none;
  1097 + width: 524px;
  1098 + margin-left: 0;
  1099 +}
  1100 +.table td.span8,
  1101 +.table th.span8 {
  1102 + float: none;
  1103 + width: 604px;
  1104 + margin-left: 0;
  1105 +}
  1106 +.table td.span9,
  1107 +.table th.span9 {
  1108 + float: none;
  1109 + width: 684px;
  1110 + margin-left: 0;
  1111 +}
  1112 +.table td.span10,
  1113 +.table th.span10 {
  1114 + float: none;
  1115 + width: 764px;
  1116 + margin-left: 0;
  1117 +}
  1118 +.table td.span11,
  1119 +.table th.span11 {
  1120 + float: none;
  1121 + width: 844px;
  1122 + margin-left: 0;
  1123 +}
  1124 +.table td.span12,
  1125 +.table th.span12 {
  1126 + float: none;
  1127 + width: 924px;
  1128 + margin-left: 0;
  1129 +}
  1130 +.table tbody tr.success td {
  1131 + background-color: #dff0d8;
  1132 +}
  1133 +.table tbody tr.error td {
  1134 + background-color: #f2dede;
  1135 +}
  1136 +.table tbody tr.warning td {
  1137 + background-color: #fcf8e3;
  1138 +}
  1139 +.table tbody tr.info td {
  1140 + background-color: #d9edf7;
  1141 +}
  1142 +.table-hover tbody tr.success:hover td {
  1143 + background-color: #d0e9c6;
  1144 +}
  1145 +.table-hover tbody tr.error:hover td {
  1146 + background-color: #ebcccc;
  1147 +}
  1148 +.table-hover tbody tr.warning:hover td {
  1149 + background-color: #faf2cc;
  1150 +}
  1151 +.table-hover tbody tr.info:hover td {
  1152 + background-color: #c4e3f3;
  1153 +}
  1154 +form {
  1155 + margin: 0 0 20px;
  1156 +}
  1157 +fieldset {
  1158 + padding: 0;
  1159 + margin: 0;
  1160 + border: 0;
  1161 +}
  1162 +legend {
  1163 + display: block;
  1164 + width: 100%;
  1165 + padding: 0;
  1166 + margin-bottom: 20px;
  1167 + font-size: 18px;
  1168 + line-height: 40px;
  1169 + color: #333333;
  1170 + border: 0;
  1171 + border-bottom: 1px solid #e5e5e5;
  1172 +}
  1173 +legend small {
  1174 + font-size: 15px;
  1175 + color: #999999;
  1176 +}
  1177 +label,
  1178 +input,
  1179 +button,
  1180 +select,
  1181 +textarea {
  1182 + font-size: 12px;
  1183 + font-weight: normal;
  1184 + line-height: 20px;
  1185 +}
  1186 +input,
  1187 +button,
  1188 +select,
  1189 +textarea {
  1190 + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  1191 +}
  1192 +label {
  1193 + display: block;
  1194 + margin-bottom: 5px;
  1195 +}
  1196 +select,
  1197 +textarea,
  1198 +input[type="text"],
  1199 +input[type="password"],
  1200 +input[type="datetime"],
  1201 +input[type="datetime-local"],
  1202 +input[type="date"],
  1203 +input[type="month"],
  1204 +input[type="time"],
  1205 +input[type="week"],
  1206 +input[type="number"],
  1207 +input[type="email"],
  1208 +input[type="url"],
  1209 +input[type="search"],
  1210 +input[type="tel"],
  1211 +input[type="color"],
  1212 +.uneditable-input {
  1213 + display: inline-block;
  1214 + height: 20px;
  1215 + padding: 4px 6px;
  1216 + margin-bottom: 10px;
  1217 + font-size: 12px;
  1218 + line-height: 20px;
  1219 + color: #555555;
  1220 + -webkit-border-radius: 4px;
  1221 + -moz-border-radius: 4px;
  1222 + border-radius: 4px;
  1223 + vertical-align: middle;
  1224 +}
  1225 +input,
  1226 +textarea,
  1227 +.uneditable-input {
  1228 + width: 206px;
  1229 +}
  1230 +textarea {
  1231 + height: auto;
  1232 +}
  1233 +textarea,
  1234 +input[type="text"],
  1235 +input[type="password"],
  1236 +input[type="datetime"],
  1237 +input[type="datetime-local"],
  1238 +input[type="date"],
  1239 +input[type="month"],
  1240 +input[type="time"],
  1241 +input[type="week"],
  1242 +input[type="number"],
  1243 +input[type="email"],
  1244 +input[type="url"],
  1245 +input[type="search"],
  1246 +input[type="tel"],
  1247 +input[type="color"],
  1248 +.uneditable-input {
  1249 + background-color: #ffffff;
  1250 + border: 1px solid #cccccc;
  1251 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1252 + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1253 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1254 + -webkit-transition: border linear .2s, box-shadow linear .2s;
  1255 + -moz-transition: border linear .2s, box-shadow linear .2s;
  1256 + -o-transition: border linear .2s, box-shadow linear .2s;
  1257 + transition: border linear .2s, box-shadow linear .2s;
  1258 +}
  1259 +textarea:focus,
  1260 +input[type="text"]:focus,
  1261 +input[type="password"]:focus,
  1262 +input[type="datetime"]:focus,
  1263 +input[type="datetime-local"]:focus,
  1264 +input[type="date"]:focus,
  1265 +input[type="month"]:focus,
  1266 +input[type="time"]:focus,
  1267 +input[type="week"]:focus,
  1268 +input[type="number"]:focus,
  1269 +input[type="email"]:focus,
  1270 +input[type="url"]:focus,
  1271 +input[type="search"]:focus,
  1272 +input[type="tel"]:focus,
  1273 +input[type="color"]:focus,
  1274 +.uneditable-input:focus {
  1275 + border-color: rgba(82, 168, 236, 0.8);
  1276 + outline: 0;
  1277 + outline: thin dotted \9;
  1278 + /* IE6-9 */
  1279 +
  1280 + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
  1281 + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
  1282 + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
  1283 +}
  1284 +input[type="radio"],
  1285 +input[type="checkbox"] {
  1286 + margin: 4px 0 0;
  1287 + *margin-top: 0;
  1288 + /* IE7 */
  1289 +
  1290 + margin-top: 1px \9;
  1291 + /* IE8-9 */
  1292 +
  1293 + line-height: normal;
  1294 +}
  1295 +input[type="file"],
  1296 +input[type="image"],
  1297 +input[type="submit"],
  1298 +input[type="reset"],
  1299 +input[type="button"],
  1300 +input[type="radio"],
  1301 +input[type="checkbox"] {
  1302 + width: auto;
  1303 +}
  1304 +select,
  1305 +input[type="file"] {
  1306 + height: 30px;
  1307 + /* In IE7, the height of the select element cannot be changed by height, only font-size */
  1308 +
  1309 + *margin-top: 4px;
  1310 + /* For IE7, add top margin to align select with labels */
  1311 +
  1312 + line-height: 30px;
  1313 +}
  1314 +select {
  1315 + width: 220px;
  1316 + border: 1px solid #cccccc;
  1317 + background-color: #ffffff;
  1318 +}
  1319 +select[multiple],
  1320 +select[size] {
  1321 + height: auto;
  1322 +}
  1323 +select:focus,
  1324 +input[type="file"]:focus,
  1325 +input[type="radio"]:focus,
  1326 +input[type="checkbox"]:focus {
  1327 + outline: thin dotted #333;
  1328 + outline: 5px auto -webkit-focus-ring-color;
  1329 + outline-offset: -2px;
  1330 +}
  1331 +.uneditable-input,
  1332 +.uneditable-textarea {
  1333 + color: #999999;
  1334 + background-color: #fcfcfc;
  1335 + border-color: #cccccc;
  1336 + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
  1337 + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
  1338 + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
  1339 + cursor: not-allowed;
  1340 +}
  1341 +.uneditable-input {
  1342 + overflow: hidden;
  1343 + white-space: nowrap;
  1344 +}
  1345 +.uneditable-textarea {
  1346 + width: auto;
  1347 + height: auto;
  1348 +}
  1349 +input:-moz-placeholder,
  1350 +textarea:-moz-placeholder {
  1351 + color: #999999;
  1352 +}
  1353 +input:-ms-input-placeholder,
  1354 +textarea:-ms-input-placeholder {
  1355 + color: #999999;
  1356 +}
  1357 +input::-webkit-input-placeholder,
  1358 +textarea::-webkit-input-placeholder {
  1359 + color: #999999;
  1360 +}
  1361 +.radio,
  1362 +.checkbox {
  1363 + min-height: 20px;
  1364 + padding-left: 20px;
  1365 +}
  1366 +.radio input[type="radio"],
  1367 +.checkbox input[type="checkbox"] {
  1368 + float: left;
  1369 + margin-left: -20px;
  1370 +}
  1371 +.controls > .radio:first-child,
  1372 +.controls > .checkbox:first-child {
  1373 + padding-top: 5px;
  1374 +}
  1375 +.radio.inline,
  1376 +.checkbox.inline {
  1377 + display: inline-block;
  1378 + padding-top: 5px;
  1379 + margin-bottom: 0;
  1380 + vertical-align: middle;
  1381 +}
  1382 +.radio.inline + .radio.inline,
  1383 +.checkbox.inline + .checkbox.inline {
  1384 + margin-left: 10px;
  1385 +}
  1386 +.input-mini {
  1387 + width: 60px;
  1388 +}
  1389 +.input-small {
  1390 + width: 90px;
  1391 +}
  1392 +.input-medium {
  1393 + width: 150px;
  1394 +}
  1395 +.input-large {
  1396 + width: 210px;
  1397 +}
  1398 +.input-xlarge {
  1399 + width: 270px;
  1400 +}
  1401 +.input-xxlarge {
  1402 + width: 530px;
  1403 +}
  1404 +input[class*="span"],
  1405 +select[class*="span"],
  1406 +textarea[class*="span"],
  1407 +.uneditable-input[class*="span"],
  1408 +.row-fluid input[class*="span"],
  1409 +.row-fluid select[class*="span"],
  1410 +.row-fluid textarea[class*="span"],
  1411 +.row-fluid .uneditable-input[class*="span"] {
  1412 + float: none;
  1413 + margin-left: 0;
  1414 +}
  1415 +.input-append input[class*="span"],
  1416 +.input-append .uneditable-input[class*="span"],
  1417 +.input-prepend input[class*="span"],
  1418 +.input-prepend .uneditable-input[class*="span"],
  1419 +.row-fluid input[class*="span"],
  1420 +.row-fluid select[class*="span"],
  1421 +.row-fluid textarea[class*="span"],
  1422 +.row-fluid .uneditable-input[class*="span"],
  1423 +.row-fluid .input-prepend [class*="span"],
  1424 +.row-fluid .input-append [class*="span"] {
  1425 + display: inline-block;
  1426 +}
  1427 +input,
  1428 +textarea,
  1429 +.uneditable-input {
  1430 + margin-left: 0;
  1431 +}
  1432 +.controls-row [class*="span"] + [class*="span"] {
  1433 + margin-left: 20px;
  1434 +}
  1435 +input.span12, textarea.span12, .uneditable-input.span12 {
  1436 + width: 926px;
  1437 +}
  1438 +input.span11, textarea.span11, .uneditable-input.span11 {
  1439 + width: 846px;
  1440 +}
  1441 +input.span10, textarea.span10, .uneditable-input.span10 {
  1442 + width: 766px;
  1443 +}
  1444 +input.span9, textarea.span9, .uneditable-input.span9 {
  1445 + width: 686px;
  1446 +}
  1447 +input.span8, textarea.span8, .uneditable-input.span8 {
  1448 + width: 606px;
  1449 +}
  1450 +input.span7, textarea.span7, .uneditable-input.span7 {
  1451 + width: 526px;
  1452 +}
  1453 +input.span6, textarea.span6, .uneditable-input.span6 {
  1454 + width: 446px;
  1455 +}
  1456 +input.span5, textarea.span5, .uneditable-input.span5 {
  1457 + width: 366px;
  1458 +}
  1459 +input.span4, textarea.span4, .uneditable-input.span4 {
  1460 + width: 286px;
  1461 +}
  1462 +input.span3, textarea.span3, .uneditable-input.span3 {
  1463 + width: 206px;
  1464 +}
  1465 +input.span2, textarea.span2, .uneditable-input.span2 {
  1466 + width: 126px;
  1467 +}
  1468 +input.span1, textarea.span1, .uneditable-input.span1 {
  1469 + width: 46px;
  1470 +}
  1471 +.controls-row {
  1472 + *zoom: 1;
  1473 +}
  1474 +.controls-row:before,
  1475 +.controls-row:after {
  1476 + display: table;
  1477 + content: "";
  1478 + line-height: 0;
  1479 +}
  1480 +.controls-row:after {
  1481 + clear: both;
  1482 +}
  1483 +.controls-row [class*="span"],
  1484 +.row-fluid .controls-row [class*="span"] {
  1485 + float: left;
  1486 +}
  1487 +.controls-row .checkbox[class*="span"],
  1488 +.controls-row .radio[class*="span"] {
  1489 + padding-top: 5px;
  1490 +}
  1491 +input[disabled],
  1492 +select[disabled],
  1493 +textarea[disabled],
  1494 +input[readonly],
  1495 +select[readonly],
  1496 +textarea[readonly] {
  1497 + cursor: not-allowed;
  1498 + background-color: #eeeeee;
  1499 +}
  1500 +input[type="radio"][disabled],
  1501 +input[type="checkbox"][disabled],
  1502 +input[type="radio"][readonly],
  1503 +input[type="checkbox"][readonly] {
  1504 + background-color: transparent;
  1505 +}
  1506 +.control-group.warning .control-label,
  1507 +.control-group.warning .help-block,
  1508 +.control-group.warning .help-inline {
  1509 + color: #c09853;
  1510 +}
  1511 +.control-group.warning .checkbox,
  1512 +.control-group.warning .radio,
  1513 +.control-group.warning input,
  1514 +.control-group.warning select,
  1515 +.control-group.warning textarea {
  1516 + color: #c09853;
  1517 +}
  1518 +.control-group.warning input,
  1519 +.control-group.warning select,
  1520 +.control-group.warning textarea {
  1521 + border-color: #c09853;
  1522 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1523 + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1524 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1525 +}
  1526 +.control-group.warning input:focus,
  1527 +.control-group.warning select:focus,
  1528 +.control-group.warning textarea:focus {
  1529 + border-color: #a47e3c;
  1530 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
  1531 + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
  1532 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
  1533 +}
  1534 +.control-group.warning .input-prepend .add-on,
  1535 +.control-group.warning .input-append .add-on {
  1536 + color: #c09853;
  1537 + background-color: #fcf8e3;
  1538 + border-color: #c09853;
  1539 +}
  1540 +.control-group.error .control-label,
  1541 +.control-group.error .help-block,
  1542 +.control-group.error .help-inline {
  1543 + color: #b94a48;
  1544 +}
  1545 +.control-group.error .checkbox,
  1546 +.control-group.error .radio,
  1547 +.control-group.error input,
  1548 +.control-group.error select,
  1549 +.control-group.error textarea {
  1550 + color: #b94a48;
  1551 +}
  1552 +.control-group.error input,
  1553 +.control-group.error select,
  1554 +.control-group.error textarea {
  1555 + border-color: #b94a48;
  1556 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1557 + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1558 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1559 +}
  1560 +.control-group.error input:focus,
  1561 +.control-group.error select:focus,
  1562 +.control-group.error textarea:focus {
  1563 + border-color: #953b39;
  1564 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
  1565 + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
  1566 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
  1567 +}
  1568 +.control-group.error .input-prepend .add-on,
  1569 +.control-group.error .input-append .add-on {
  1570 + color: #b94a48;
  1571 + background-color: #f2dede;
  1572 + border-color: #b94a48;
  1573 +}
  1574 +.control-group.success .control-label,
  1575 +.control-group.success .help-block,
  1576 +.control-group.success .help-inline {
  1577 + color: #468847;
  1578 +}
  1579 +.control-group.success .checkbox,
  1580 +.control-group.success .radio,
  1581 +.control-group.success input,
  1582 +.control-group.success select,
  1583 +.control-group.success textarea {
  1584 + color: #468847;
  1585 +}
  1586 +.control-group.success input,
  1587 +.control-group.success select,
  1588 +.control-group.success textarea {
  1589 + border-color: #468847;
  1590 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1591 + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1592 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1593 +}
  1594 +.control-group.success input:focus,
  1595 +.control-group.success select:focus,
  1596 +.control-group.success textarea:focus {
  1597 + border-color: #356635;
  1598 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
  1599 + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
  1600 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
  1601 +}
  1602 +.control-group.success .input-prepend .add-on,
  1603 +.control-group.success .input-append .add-on {
  1604 + color: #468847;
  1605 + background-color: #dff0d8;
  1606 + border-color: #468847;
  1607 +}
  1608 +.control-group.info .control-label,
  1609 +.control-group.info .help-block,
  1610 +.control-group.info .help-inline {
  1611 + color: #3a87ad;
  1612 +}
  1613 +.control-group.info .checkbox,
  1614 +.control-group.info .radio,
  1615 +.control-group.info input,
  1616 +.control-group.info select,
  1617 +.control-group.info textarea {
  1618 + color: #3a87ad;
  1619 +}
  1620 +.control-group.info input,
  1621 +.control-group.info select,
  1622 +.control-group.info textarea {
  1623 + border-color: #3a87ad;
  1624 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1625 + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1626 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  1627 +}
  1628 +.control-group.info input:focus,
  1629 +.control-group.info select:focus,
  1630 +.control-group.info textarea:focus {
  1631 + border-color: #2d6987;
  1632 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
  1633 + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
  1634 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
  1635 +}
  1636 +.control-group.info .input-prepend .add-on,
  1637 +.control-group.info .input-append .add-on {
  1638 + color: #3a87ad;
  1639 + background-color: #d9edf7;
  1640 + border-color: #3a87ad;
  1641 +}
  1642 +input:focus:invalid,
  1643 +textarea:focus:invalid,
  1644 +select:focus:invalid {
  1645 + color: #b94a48;
  1646 + border-color: #ee5f5b;
  1647 +}
  1648 +input:focus:invalid:focus,
  1649 +textarea:focus:invalid:focus,
  1650 +select:focus:invalid:focus {
  1651 + border-color: #e9322d;
  1652 + -webkit-box-shadow: 0 0 6px #f8b9b7;
  1653 + -moz-box-shadow: 0 0 6px #f8b9b7;
  1654 + box-shadow: 0 0 6px #f8b9b7;
  1655 +}
  1656 +.form-actions {
  1657 + padding: 19px 20px 20px;
  1658 + margin-top: 20px;
  1659 + margin-bottom: 20px;
  1660 + background-color: #f5f5f5;
  1661 + border-top: 1px solid #e5e5e5;
  1662 + *zoom: 1;
  1663 +}
  1664 +.form-actions:before,
  1665 +.form-actions:after {
  1666 + display: table;
  1667 + content: "";
  1668 + line-height: 0;
  1669 +}
  1670 +.form-actions:after {
  1671 + clear: both;
  1672 +}
  1673 +.help-block,
  1674 +.help-inline {
  1675 + color: #595959;
  1676 +}
  1677 +.help-block {
  1678 + display: block;
  1679 + margin-bottom: 10px;
  1680 +}
  1681 +.help-inline {
  1682 + display: inline-block;
  1683 + *display: inline;
  1684 + /* IE7 inline-block hack */
  1685 +
  1686 + *zoom: 1;
  1687 + vertical-align: middle;
  1688 + padding-left: 5px;
  1689 +}
  1690 +.input-append,
  1691 +.input-prepend {
  1692 + margin-bottom: 5px;
  1693 + font-size: 0;
  1694 + white-space: nowrap;
  1695 +}
  1696 +.input-append input,
  1697 +.input-prepend input,
  1698 +.input-append select,
  1699 +.input-prepend select,
  1700 +.input-append .uneditable-input,
  1701 +.input-prepend .uneditable-input,
  1702 +.input-append .dropdown-menu,
  1703 +.input-prepend .dropdown-menu {
  1704 + font-size: 12px;
  1705 +}
  1706 +.input-append input,
  1707 +.input-prepend input,
  1708 +.input-append select,
  1709 +.input-prepend select,
  1710 +.input-append .uneditable-input,
  1711 +.input-prepend .uneditable-input {
  1712 + position: relative;
  1713 + margin-bottom: 0;
  1714 + *margin-left: 0;
  1715 + vertical-align: top;
  1716 + -webkit-border-radius: 0 4px 4px 0;
  1717 + -moz-border-radius: 0 4px 4px 0;
  1718 + border-radius: 0 4px 4px 0;
  1719 +}
  1720 +.input-append input:focus,
  1721 +.input-prepend input:focus,
  1722 +.input-append select:focus,
  1723 +.input-prepend select:focus,
  1724 +.input-append .uneditable-input:focus,
  1725 +.input-prepend .uneditable-input:focus {
  1726 + z-index: 2;
  1727 +}
  1728 +.input-append .add-on,
  1729 +.input-prepend .add-on {
  1730 + display: inline-block;
  1731 + width: auto;
  1732 + height: 20px;
  1733 + min-width: 16px;
  1734 + padding: 4px 5px;
  1735 + font-size: 12px;
  1736 + font-weight: normal;
  1737 + line-height: 20px;
  1738 + text-align: center;
  1739 + text-shadow: 0 1px 0 #ffffff;
  1740 + background-color: #eeeeee;
  1741 + border: 1px solid #ccc;
  1742 +}
  1743 +.input-append .add-on,
  1744 +.input-prepend .add-on,
  1745 +.input-append .btn,
  1746 +.input-prepend .btn,
  1747 +.input-append .btn-group > .dropdown-toggle,
  1748 +.input-prepend .btn-group > .dropdown-toggle {
  1749 + vertical-align: top;
  1750 + -webkit-border-radius: 0;
  1751 + -moz-border-radius: 0;
  1752 + border-radius: 0;
  1753 +}
  1754 +.input-append .active,
  1755 +.input-prepend .active {
  1756 + background-color: #a9dba9;
  1757 + border-color: #46a546;
  1758 +}
  1759 +.input-prepend .add-on,
  1760 +.input-prepend .btn {
  1761 + margin-right: -1px;
  1762 +}
  1763 +.input-prepend .add-on:first-child,
  1764 +.input-prepend .btn:first-child {
  1765 + -webkit-border-radius: 4px 0 0 4px;
  1766 + -moz-border-radius: 4px 0 0 4px;
  1767 + border-radius: 4px 0 0 4px;
  1768 +}
  1769 +.input-append input,
  1770 +.input-append select,
  1771 +.input-append .uneditable-input {
  1772 + -webkit-border-radius: 4px 0 0 4px;
  1773 + -moz-border-radius: 4px 0 0 4px;
  1774 + border-radius: 4px 0 0 4px;
  1775 +}
  1776 +.input-append input + .btn-group .btn:last-child,
  1777 +.input-append select + .btn-group .btn:last-child,
  1778 +.input-append .uneditable-input + .btn-group .btn:last-child {
  1779 + -webkit-border-radius: 0 4px 4px 0;
  1780 + -moz-border-radius: 0 4px 4px 0;
  1781 + border-radius: 0 4px 4px 0;
  1782 +}
  1783 +.input-append .add-on,
  1784 +.input-append .btn,
  1785 +.input-append .btn-group {
  1786 + margin-left: -1px;
  1787 +}
  1788 +.input-append .add-on:last-child,
  1789 +.input-append .btn:last-child,
  1790 +.input-append .btn-group:last-child > .dropdown-toggle {
  1791 + -webkit-border-radius: 0 4px 4px 0;
  1792 + -moz-border-radius: 0 4px 4px 0;
  1793 + border-radius: 0 4px 4px 0;
  1794 +}
  1795 +.input-prepend.input-append input,
  1796 +.input-prepend.input-append select,
  1797 +.input-prepend.input-append .uneditable-input {
  1798 + -webkit-border-radius: 0;
  1799 + -moz-border-radius: 0;
  1800 + border-radius: 0;
  1801 +}
  1802 +.input-prepend.input-append input + .btn-group .btn,
  1803 +.input-prepend.input-append select + .btn-group .btn,
  1804 +.input-prepend.input-append .uneditable-input + .btn-group .btn {
  1805 + -webkit-border-radius: 0 4px 4px 0;
  1806 + -moz-border-radius: 0 4px 4px 0;
  1807 + border-radius: 0 4px 4px 0;
  1808 +}
  1809 +.input-prepend.input-append .add-on:first-child,
  1810 +.input-prepend.input-append .btn:first-child {
  1811 + margin-right: -1px;
  1812 + -webkit-border-radius: 4px 0 0 4px;
  1813 + -moz-border-radius: 4px 0 0 4px;
  1814 + border-radius: 4px 0 0 4px;
  1815 +}
  1816 +.input-prepend.input-append .add-on:last-child,
  1817 +.input-prepend.input-append .btn:last-child {
  1818 + margin-left: -1px;
  1819 + -webkit-border-radius: 0 4px 4px 0;
  1820 + -moz-border-radius: 0 4px 4px 0;
  1821 + border-radius: 0 4px 4px 0;
  1822 +}
  1823 +.input-prepend.input-append .btn-group:first-child {
  1824 + margin-left: 0;
  1825 +}
  1826 +input.search-query {
  1827 + padding-right: 14px;
  1828 + padding-right: 4px \9;
  1829 + padding-left: 14px;
  1830 + padding-left: 4px \9;
  1831 + /* IE7-8 doesn't have border-radius, so don't indent the padding */
  1832 +
  1833 + margin-bottom: 0;
  1834 + -webkit-border-radius: 15px;
  1835 + -moz-border-radius: 15px;
  1836 + border-radius: 15px;
  1837 +}
  1838 +/* Allow for input prepend/append in search forms */
  1839 +.form-search .input-append .search-query,
  1840 +.form-search .input-prepend .search-query {
  1841 + -webkit-border-radius: 0;
  1842 + -moz-border-radius: 0;
  1843 + border-radius: 0;
  1844 +}
  1845 +.form-search .input-append .search-query {
  1846 + -webkit-border-radius: 14px 0 0 14px;
  1847 + -moz-border-radius: 14px 0 0 14px;
  1848 + border-radius: 14px 0 0 14px;
  1849 +}
  1850 +.form-search .input-append .btn {
  1851 + -webkit-border-radius: 0 14px 14px 0;
  1852 + -moz-border-radius: 0 14px 14px 0;
  1853 + border-radius: 0 14px 14px 0;
  1854 +}
  1855 +.form-search .input-prepend .search-query {
  1856 + -webkit-border-radius: 0 14px 14px 0;
  1857 + -moz-border-radius: 0 14px 14px 0;
  1858 + border-radius: 0 14px 14px 0;
  1859 +}
  1860 +.form-search .input-prepend .btn {
  1861 + -webkit-border-radius: 14px 0 0 14px;
  1862 + -moz-border-radius: 14px 0 0 14px;
  1863 + border-radius: 14px 0 0 14px;
  1864 +}
  1865 +.form-search input,
  1866 +.form-inline input,
  1867 +.form-horizontal input,
  1868 +.form-search textarea,
  1869 +.form-inline textarea,
  1870 +.form-horizontal textarea,
  1871 +.form-search select,
  1872 +.form-inline select,
  1873 +.form-horizontal select,
  1874 +.form-search .help-inline,
  1875 +.form-inline .help-inline,
  1876 +.form-horizontal .help-inline,
  1877 +.form-search .uneditable-input,
  1878 +.form-inline .uneditable-input,
  1879 +.form-horizontal .uneditable-input,
  1880 +.form-search .input-prepend,
  1881 +.form-inline .input-prepend,
  1882 +.form-horizontal .input-prepend,
  1883 +.form-search .input-append,
  1884 +.form-inline .input-append,
  1885 +.form-horizontal .input-append {
  1886 + display: inline-block;
  1887 + *display: inline;
  1888 + /* IE7 inline-block hack */
  1889 +
  1890 + *zoom: 1;
  1891 + margin-bottom: 0;
  1892 + vertical-align: middle;
  1893 +}
  1894 +.form-search .hide,
  1895 +.form-inline .hide,
  1896 +.form-horizontal .hide {
  1897 + display: none;
  1898 +}
  1899 +.form-search label,
  1900 +.form-inline label,
  1901 +.form-search .btn-group,
  1902 +.form-inline .btn-group {
  1903 + display: inline-block;
  1904 +}
  1905 +.form-search .input-append,
  1906 +.form-inline .input-append,
  1907 +.form-search .input-prepend,
  1908 +.form-inline .input-prepend {
  1909 + margin-bottom: 0;
  1910 +}
  1911 +.form-search .radio,
  1912 +.form-search .checkbox,
  1913 +.form-inline .radio,
  1914 +.form-inline .checkbox {
  1915 + padding-left: 0;
  1916 + margin-bottom: 0;
  1917 + vertical-align: middle;
  1918 +}
  1919 +.form-search .radio input[type="radio"],
  1920 +.form-search .checkbox input[type="checkbox"],
  1921 +.form-inline .radio input[type="radio"],
  1922 +.form-inline .checkbox input[type="checkbox"] {
  1923 + float: left;
  1924 + margin-right: 3px;
  1925 + margin-left: 0;
  1926 +}
  1927 +.control-group {
  1928 + margin-bottom: 10px;
  1929 +}
  1930 +legend + .control-group {
  1931 + margin-top: 20px;
  1932 + -webkit-margin-top-collapse: separate;
  1933 +}
  1934 +.form-horizontal .control-group {
  1935 + margin-bottom: 20px;
  1936 + *zoom: 1;
  1937 +}
  1938 +.form-horizontal .control-group:before,
  1939 +.form-horizontal .control-group:after {
  1940 + display: table;
  1941 + content: "";
  1942 + line-height: 0;
  1943 +}
  1944 +.form-horizontal .control-group:after {
  1945 + clear: both;
  1946 +}
  1947 +.form-horizontal .control-label {
  1948 + float: left;
  1949 + width: 160px;
  1950 + padding-top: 5px;
  1951 + text-align: right;
  1952 +}
  1953 +.form-horizontal .controls {
  1954 + *display: inline-block;
  1955 + *padding-left: 20px;
  1956 + margin-left: 180px;
  1957 + *margin-left: 0;
  1958 +}
  1959 +.form-horizontal .controls:first-child {
  1960 + *padding-left: 180px;
  1961 +}
  1962 +.form-horizontal .help-block {
  1963 + margin-bottom: 0;
  1964 +}
  1965 +.form-horizontal input + .help-block,
  1966 +.form-horizontal select + .help-block,
  1967 +.form-horizontal textarea + .help-block,
  1968 +.form-horizontal .uneditable-input + .help-block,
  1969 +.form-horizontal .input-prepend + .help-block,
  1970 +.form-horizontal .input-append + .help-block {
  1971 + margin-top: 10px;
  1972 +}
  1973 +.form-horizontal .form-actions {
  1974 + padding-left: 180px;
  1975 +}
  1976 +.btn {
  1977 + display: inline-block;
  1978 + *display: inline;
  1979 + /* IE7 inline-block hack */
  1980 +
  1981 + *zoom: 1;
  1982 + padding: 4px 12px;
  1983 + margin-bottom: 0;
  1984 + font-size: 12px;
  1985 + line-height: 20px;
  1986 + text-align: center;
  1987 + vertical-align: middle;
  1988 + cursor: pointer;
  1989 + color: #333333;
  1990 + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
  1991 + background-color: #f5f5f5;
  1992 + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
  1993 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
  1994 + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
  1995 + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
  1996 + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
  1997 + background-repeat: repeat-x;
  1998 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
  1999 + border-color: #e6e6e6 #e6e6e6 #bfbfbf;
  2000 + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  2001 + *background-color: #e6e6e6;
  2002 + /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  2003 +
  2004 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  2005 + border: 1px solid #bbbbbb;
  2006 + *border: 0;
  2007 + border-bottom-color: #a2a2a2;
  2008 + -webkit-border-radius: 4px;
  2009 + -moz-border-radius: 4px;
  2010 + border-radius: 4px;
  2011 + *margin-left: .3em;
  2012 + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
  2013 + -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
  2014 + box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
  2015 +}
  2016 +.btn:hover,
  2017 +.btn:active,
  2018 +.btn.active,
  2019 +.btn.disabled,
  2020 +.btn[disabled] {
  2021 + color: #333333;
  2022 + background-color: #e6e6e6;
  2023 + *background-color: #d9d9d9;
  2024 +}
  2025 +.btn:active,
  2026 +.btn.active {
  2027 + background-color: #cccccc \9;
  2028 +}
  2029 +.btn:first-child {
  2030 + *margin-left: 0;
  2031 +}
  2032 +.btn:hover {
  2033 + color: #333333;
  2034 + text-decoration: none;
  2035 + background-position: 0 -15px;
  2036 + -webkit-transition: background-position 0.1s linear;
  2037 + -moz-transition: background-position 0.1s linear;
  2038 + -o-transition: background-position 0.1s linear;
  2039 + transition: background-position 0.1s linear;
  2040 +}
  2041 +.btn:focus {
  2042 + outline: thin dotted #333;
  2043 + outline: 5px auto -webkit-focus-ring-color;
  2044 + outline-offset: -2px;
  2045 +}
  2046 +.btn.active,
  2047 +.btn:active {
  2048 + background-image: none;
  2049 + outline: 0;
  2050 + -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
  2051 + -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
  2052 + box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
  2053 +}
  2054 +.btn.disabled,
  2055 +.btn[disabled] {
  2056 + cursor: default;
  2057 + background-image: none;
  2058 + opacity: 0.65;
  2059 + filter: alpha(opacity=65);
  2060 + -webkit-box-shadow: none;
  2061 + -moz-box-shadow: none;
  2062 + box-shadow: none;
  2063 +}
  2064 +.btn-large {
  2065 + padding: 11px 19px;
  2066 + font-size: 15px;
  2067 + -webkit-border-radius: 6px;
  2068 + -moz-border-radius: 6px;
  2069 + border-radius: 6px;
  2070 +}
  2071 +.btn-large [class^="icon-"],
  2072 +.btn-large [class*=" icon-"] {
  2073 + margin-top: 4px;
  2074 +}
  2075 +.btn-small {
  2076 + padding: 2px 10px;
  2077 + font-size: 10.2px;
  2078 + -webkit-border-radius: 3px;
  2079 + -moz-border-radius: 3px;
  2080 + border-radius: 3px;
  2081 +}
  2082 +.btn-small [class^="icon-"],
  2083 +.btn-small [class*=" icon-"] {
  2084 + margin-top: 0;
  2085 +}
  2086 +.btn-mini [class^="icon-"],
  2087 +.btn-mini [class*=" icon-"] {
  2088 + margin-top: -1px;
  2089 +}
  2090 +.btn-mini {
  2091 + padding: 0 6px;
  2092 + font-size: 9px;
  2093 + -webkit-border-radius: 3px;
  2094 + -moz-border-radius: 3px;
  2095 + border-radius: 3px;
  2096 +}
  2097 +.btn-block {
  2098 + display: block;
  2099 + width: 100%;
  2100 + padding-left: 0;
  2101 + padding-right: 0;
  2102 + -webkit-box-sizing: border-box;
  2103 + -moz-box-sizing: border-box;
  2104 + box-sizing: border-box;
  2105 +}
  2106 +.btn-block + .btn-block {
  2107 + margin-top: 5px;
  2108 +}
  2109 +input[type="submit"].btn-block,
  2110 +input[type="reset"].btn-block,
  2111 +input[type="button"].btn-block {
  2112 + width: 100%;
  2113 +}
  2114 +.btn-primary.active,
  2115 +.btn-warning.active,
  2116 +.btn-danger.active,
  2117 +.btn-success.active,
  2118 +.btn-info.active,
  2119 +.btn-inverse.active {
  2120 + color: rgba(255, 255, 255, 0.75);
  2121 +}
  2122 +.btn {
  2123 + border-color: #c5c5c5;
  2124 + border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
  2125 +}
  2126 +.btn-primary {
  2127 + color: #ffffff;
  2128 + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  2129 + background-color: #006dcc;
  2130 + background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
  2131 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
  2132 + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
  2133 + background-image: -o-linear-gradient(top, #0088cc, #0044cc);
  2134 + background-image: linear-gradient(to bottom, #0088cc, #0044cc);
  2135 + background-repeat: repeat-x;
  2136 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
  2137 + border-color: #0044cc #0044cc #002a80;
  2138 + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  2139 + *background-color: #0044cc;
  2140 + /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  2141 +
  2142 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  2143 +}
  2144 +.btn-primary:hover,
  2145 +.btn-primary:active,
  2146 +.btn-primary.active,
  2147 +.btn-primary.disabled,
  2148 +.btn-primary[disabled] {
  2149 + color: #ffffff;
  2150 + background-color: #0044cc;
  2151 + *background-color: #003bb3;
  2152 +}
  2153 +.btn-primary:active,
  2154 +.btn-primary.active {
  2155 + background-color: #003399 \9;
  2156 +}
  2157 +.btn-warning {
  2158 + color: #ffffff;
  2159 + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  2160 + background-color: #faa732;
  2161 + background-image: -moz-linear-gradient(top, #fbb450, #f89406);
  2162 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
  2163 + background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
  2164 + background-image: -o-linear-gradient(top, #fbb450, #f89406);
  2165 + background-image: linear-gradient(to bottom, #fbb450, #f89406);
  2166 + background-repeat: repeat-x;
  2167 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
  2168 + border-color: #f89406 #f89406 #ad6704;
  2169 + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  2170 + *background-color: #f89406;
  2171 + /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  2172 +
  2173 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  2174 +}
  2175 +.btn-warning:hover,
  2176 +.btn-warning:active,
  2177 +.btn-warning.active,
  2178 +.btn-warning.disabled,
  2179 +.btn-warning[disabled] {
  2180 + color: #ffffff;
  2181 + background-color: #f89406;
  2182 + *background-color: #df8505;
  2183 +}
  2184 +.btn-warning:active,
  2185 +.btn-warning.active {
  2186 + background-color: #c67605 \9;
  2187 +}
  2188 +.btn-danger {
  2189 + color: #ffffff;
  2190 + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  2191 + background-color: #da4f49;
  2192 + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
  2193 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
  2194 + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
  2195 + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
  2196 + background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
  2197 + background-repeat: repeat-x;
  2198 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
  2199 + border-color: #bd362f #bd362f #802420;
  2200 + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  2201 + *background-color: #bd362f;
  2202 + /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  2203 +
  2204 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  2205 +}
  2206 +.btn-danger:hover,
  2207 +.btn-danger:active,
  2208 +.btn-danger.active,
  2209 +.btn-danger.disabled,
  2210 +.btn-danger[disabled] {
  2211 + color: #ffffff;
  2212 + background-color: #bd362f;
  2213 + *background-color: #a9302a;
  2214 +}
  2215 +.btn-danger:active,
  2216 +.btn-danger.active {
  2217 + background-color: #942a25 \9;
  2218 +}
  2219 +.btn-success {
  2220 + color: #ffffff;
  2221 + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  2222 + background-color: #5bb75b;
  2223 + background-image: -moz-linear-gradient(top, #62c462, #51a351);
  2224 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
  2225 + background-image: -webkit-linear-gradient(top, #62c462, #51a351);
  2226 + background-image: -o-linear-gradient(top, #62c462, #51a351);
  2227 + background-image: linear-gradient(to bottom, #62c462, #51a351);
  2228 + background-repeat: repeat-x;
  2229 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
  2230 + border-color: #51a351 #51a351 #387038;
  2231 + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  2232 + *background-color: #51a351;
  2233 + /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  2234 +
  2235 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  2236 +}
  2237 +.btn-success:hover,
  2238 +.btn-success:active,
  2239 +.btn-success.active,
  2240 +.btn-success.disabled,
  2241 +.btn-success[disabled] {
  2242 + color: #ffffff;
  2243 + background-color: #51a351;
  2244 + *background-color: #499249;
  2245 +}
  2246 +.btn-success:active,
  2247 +.btn-success.active {
  2248 + background-color: #408140 \9;
  2249 +}
  2250 +.btn-info {
  2251 + color: #ffffff;
  2252 + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  2253 + background-color: #49afcd;
  2254 + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
  2255 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
  2256 + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
  2257 + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
  2258 + background-image: linear-gradient(to bottom, #5bc0de, #2f96b4);
  2259 + background-repeat: repeat-x;
  2260 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);
  2261 + border-color: #2f96b4 #2f96b4 #1f6377;
  2262 + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  2263 + *background-color: #2f96b4;
  2264 + /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  2265 +
  2266 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  2267 +}
  2268 +.btn-info:hover,
  2269 +.btn-info:active,
  2270 +.btn-info.active,
  2271 +.btn-info.disabled,
  2272 +.btn-info[disabled] {
  2273 + color: #ffffff;
  2274 + background-color: #2f96b4;
  2275 + *background-color: #2a85a0;
  2276 +}
  2277 +.btn-info:active,
  2278 +.btn-info.active {
  2279 + background-color: #24748c \9;
  2280 +}
  2281 +.btn-inverse {
  2282 + color: #ffffff;
  2283 + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  2284 + background-color: #363636;
  2285 + background-image: -moz-linear-gradient(top, #444444, #222222);
  2286 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
  2287 + background-image: -webkit-linear-gradient(top, #444444, #222222);
  2288 + background-image: -o-linear-gradient(top, #444444, #222222);
  2289 + background-image: linear-gradient(to bottom, #444444, #222222);
  2290 + background-repeat: repeat-x;
  2291 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);
  2292 + border-color: #222222 #222222 #000000;
  2293 + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  2294 + *background-color: #222222;
  2295 + /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  2296 +
  2297 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  2298 +}
  2299 +.btn-inverse:hover,
  2300 +.btn-inverse:active,
  2301 +.btn-inverse.active,
  2302 +.btn-inverse.disabled,
  2303 +.btn-inverse[disabled] {
  2304 + color: #ffffff;
  2305 + background-color: #222222;
  2306 + *background-color: #151515;
  2307 +}
  2308 +.btn-inverse:active,
  2309 +.btn-inverse.active {
  2310 + background-color: #080808 \9;
  2311 +}
  2312 +button.btn,
  2313 +input[type="submit"].btn {
  2314 + *padding-top: 3px;
  2315 + *padding-bottom: 3px;
  2316 +}
  2317 +button.btn::-moz-focus-inner,
  2318 +input[type="submit"].btn::-moz-focus-inner {
  2319 + padding: 0;
  2320 + border: 0;
  2321 +}
  2322 +button.btn.btn-large,
  2323 +input[type="submit"].btn.btn-large {
  2324 + *padding-top: 7px;
  2325 + *padding-bottom: 7px;
  2326 +}
  2327 +button.btn.btn-small,
  2328 +input[type="submit"].btn.btn-small {
  2329 + *padding-top: 3px;
  2330 + *padding-bottom: 3px;
  2331 +}
  2332 +button.btn.btn-mini,
  2333 +input[type="submit"].btn.btn-mini {
  2334 + *padding-top: 1px;
  2335 + *padding-bottom: 1px;
  2336 +}
  2337 +.btn-link,
  2338 +.btn-link:active,
  2339 +.btn-link[disabled] {
  2340 + background-color: transparent;
  2341 + background-image: none;
  2342 + -webkit-box-shadow: none;
  2343 + -moz-box-shadow: none;
  2344 + box-shadow: none;
  2345 +}
  2346 +.btn-link {
  2347 + border-color: transparent;
  2348 + cursor: pointer;
  2349 + color: #0088cc;
  2350 + -webkit-border-radius: 0;
  2351 + -moz-border-radius: 0;
  2352 + border-radius: 0;
  2353 +}
  2354 +.btn-link:hover {
  2355 + color: #005580;
  2356 + text-decoration: underline;
  2357 + background-color: transparent;
  2358 +}
  2359 +.btn-link[disabled]:hover {
  2360 + color: #333333;
  2361 + text-decoration: none;
  2362 +}
  2363 +[class^="icon-"],
  2364 +[class*=" icon-"] {
  2365 + display: inline-block;
  2366 + width: 14px;
  2367 + height: 14px;
  2368 + *margin-right: .3em;
  2369 + line-height: 14px;
  2370 + vertical-align: text-top;
  2371 + background-image: url("../img/glyphicons-halflings.png");
  2372 + background-position: 14px 14px;
  2373 + background-repeat: no-repeat;
  2374 + margin-top: 1px;
  2375 +}
  2376 +/* White icons with optional class, or on hover/active states of certain elements */
  2377 +.icon-white,
  2378 +.nav-pills > .active > a > [class^="icon-"],
  2379 +.nav-pills > .active > a > [class*=" icon-"],
  2380 +.nav-list > .active > a > [class^="icon-"],
  2381 +.nav-list > .active > a > [class*=" icon-"],
  2382 +.navbar-inverse .nav > .active > a > [class^="icon-"],
  2383 +.navbar-inverse .nav > .active > a > [class*=" icon-"],
  2384 +.dropdown-menu > li > a:hover > [class^="icon-"],
  2385 +.dropdown-menu > li > a:hover > [class*=" icon-"],
  2386 +.dropdown-menu > .active > a > [class^="icon-"],
  2387 +.dropdown-menu > .active > a > [class*=" icon-"],
  2388 +.dropdown-submenu:hover > a > [class^="icon-"],
  2389 +.dropdown-submenu:hover > a > [class*=" icon-"] {
  2390 + background-image: url("../img/glyphicons-halflings-white.png");
  2391 +}
  2392 +.icon-glass {
  2393 + background-position: 0 0;
  2394 +}
  2395 +.icon-music {
  2396 + background-position: -24px 0;
  2397 +}
  2398 +.icon-search {
  2399 + background-position: -48px 0;
  2400 +}
  2401 +.icon-envelope {
  2402 + background-position: -72px 0;
  2403 +}
  2404 +.icon-heart {
  2405 + background-position: -96px 0;
  2406 +}
  2407 +.icon-star {
  2408 + background-position: -120px 0;
  2409 +}
  2410 +.icon-star-empty {
  2411 + background-position: -144px 0;
  2412 +}
  2413 +.icon-user {
  2414 + background-position: -168px 0;
  2415 +}
  2416 +.icon-film {
  2417 + background-position: -192px 0;
  2418 +}
  2419 +.icon-th-large {
  2420 + background-position: -216px 0;
  2421 +}
  2422 +.icon-th {
  2423 + background-position: -240px 0;
  2424 +}
  2425 +.icon-th-list {
  2426 + background-position: -264px 0;
  2427 +}
  2428 +.icon-ok {
  2429 + background-position: -288px 0;
  2430 +}
  2431 +.icon-remove {
  2432 + background-position: -312px 0;
  2433 +}
  2434 +.icon-zoom-in {
  2435 + background-position: -336px 0;
  2436 +}
  2437 +.icon-zoom-out {
  2438 + background-position: -360px 0;
  2439 +}
  2440 +.icon-off {
  2441 + background-position: -384px 0;
  2442 +}
  2443 +.icon-signal {
  2444 + background-position: -408px 0;
  2445 +}
  2446 +.icon-cog {
  2447 + background-position: -432px 0;
  2448 +}
  2449 +.icon-trash {
  2450 + background-position: -456px 0;
  2451 +}
  2452 +.icon-home {
  2453 + background-position: 0 -24px;
  2454 +}
  2455 +.icon-file {
  2456 + background-position: -24px -24px;
  2457 +}
  2458 +.icon-time {
  2459 + background-position: -48px -24px;
  2460 +}
  2461 +.icon-road {
  2462 + background-position: -72px -24px;
  2463 +}
  2464 +.icon-download-alt {
  2465 + background-position: -96px -24px;
  2466 +}
  2467 +.icon-download {
  2468 + background-position: -120px -24px;
  2469 +}
  2470 +.icon-upload {
  2471 + background-position: -144px -24px;
  2472 +}
  2473 +.icon-inbox {
  2474 + background-position: -168px -24px;
  2475 +}
  2476 +.icon-play-circle {
  2477 + background-position: -192px -24px;
  2478 +}
  2479 +.icon-repeat {
  2480 + background-position: -216px -24px;
  2481 +}
  2482 +.icon-refresh {
  2483 + background-position: -240px -24px;
  2484 +}
  2485 +.icon-list-alt {
  2486 + background-position: -264px -24px;
  2487 +}
  2488 +.icon-lock {
  2489 + background-position: -287px -24px;
  2490 +}
  2491 +.icon-flag {
  2492 + background-position: -312px -24px;
  2493 +}
  2494 +.icon-headphones {
  2495 + background-position: -336px -24px;
  2496 +}
  2497 +.icon-volume-off {
  2498 + background-position: -360px -24px;
  2499 +}
  2500 +.icon-volume-down {
  2501 + background-position: -384px -24px;
  2502 +}
  2503 +.icon-volume-up {
  2504 + background-position: -408px -24px;
  2505 +}
  2506 +.icon-qrcode {
  2507 + background-position: -432px -24px;
  2508 +}
  2509 +.icon-barcode {
  2510 + background-position: -456px -24px;
  2511 +}
  2512 +.icon-tag {
  2513 + background-position: 0 -48px;
  2514 +}
  2515 +.icon-tags {
  2516 + background-position: -25px -48px;
  2517 +}
  2518 +.icon-book {
  2519 + background-position: -48px -48px;
  2520 +}
  2521 +.icon-bookmark {
  2522 + background-position: -72px -48px;
  2523 +}
  2524 +.icon-print {
  2525 + background-position: -96px -48px;
  2526 +}
  2527 +.icon-camera {
  2528 + background-position: -120px -48px;
  2529 +}
  2530 +.icon-font {
  2531 + background-position: -144px -48px;
  2532 +}
  2533 +.icon-bold {
  2534 + background-position: -167px -48px;
  2535 +}
  2536 +.icon-italic {
  2537 + background-position: -192px -48px;
  2538 +}
  2539 +.icon-text-height {
  2540 + background-position: -216px -48px;
  2541 +}
  2542 +.icon-text-width {
  2543 + background-position: -240px -48px;
  2544 +}
  2545 +.icon-align-left {
  2546 + background-position: -264px -48px;
  2547 +}
  2548 +.icon-align-center {
  2549 + background-position: -288px -48px;
  2550 +}
  2551 +.icon-align-right {
  2552 + background-position: -312px -48px;
  2553 +}
  2554 +.icon-align-justify {
  2555 + background-position: -336px -48px;
  2556 +}
  2557 +.icon-list {
  2558 + background-position: -360px -48px;
  2559 +}
  2560 +.icon-indent-left {
  2561 + background-position: -384px -48px;
  2562 +}
  2563 +.icon-indent-right {
  2564 + background-position: -408px -48px;
  2565 +}
  2566 +.icon-facetime-video {
  2567 + background-position: -432px -48px;
  2568 +}
  2569 +.icon-picture {
  2570 + background-position: -456px -48px;
  2571 +}
  2572 +.icon-pencil {
  2573 + background-position: 0 -72px;
  2574 +}
  2575 +.icon-map-marker {
  2576 + background-position: -24px -72px;
  2577 +}
  2578 +.icon-adjust {
  2579 + background-position: -48px -72px;
  2580 +}
  2581 +.icon-tint {
  2582 + background-position: -72px -72px;
  2583 +}
  2584 +.icon-edit {
  2585 + background-position: -96px -72px;
  2586 +}
  2587 +.icon-share {
  2588 + background-position: -120px -72px;
  2589 +}
  2590 +.icon-check {
  2591 + background-position: -144px -72px;
  2592 +}
  2593 +.icon-move {
  2594 + background-position: -168px -72px;
  2595 +}
  2596 +.icon-step-backward {
  2597 + background-position: -192px -72px;
  2598 +}
  2599 +.icon-fast-backward {
  2600 + background-position: -216px -72px;
  2601 +}
  2602 +.icon-backward {
  2603 + background-position: -240px -72px;
  2604 +}
  2605 +.icon-play {
  2606 + background-position: -264px -72px;
  2607 +}
  2608 +.icon-pause {
  2609 + background-position: -288px -72px;
  2610 +}
  2611 +.icon-stop {
  2612 + background-position: -312px -72px;
  2613 +}
  2614 +.icon-forward {
  2615 + background-position: -336px -72px;
  2616 +}
  2617 +.icon-fast-forward {
  2618 + background-position: -360px -72px;
  2619 +}
  2620 +.icon-step-forward {
  2621 + background-position: -384px -72px;
  2622 +}
  2623 +.icon-eject {
  2624 + background-position: -408px -72px;
  2625 +}
  2626 +.icon-chevron-left {
  2627 + background-position: -432px -72px;
  2628 +}
  2629 +.icon-chevron-right {
  2630 + background-position: -456px -72px;
  2631 +}
  2632 +.icon-plus-sign {
  2633 + background-position: 0 -96px;
  2634 +}
  2635 +.icon-minus-sign {
  2636 + background-position: -24px -96px;
  2637 +}
  2638 +.icon-remove-sign {
  2639 + background-position: -48px -96px;
  2640 +}
  2641 +.icon-ok-sign {
  2642 + background-position: -72px -96px;
  2643 +}
  2644 +.icon-question-sign {
  2645 + background-position: -96px -96px;
  2646 +}
  2647 +.icon-info-sign {
  2648 + background-position: -120px -96px;
  2649 +}
  2650 +.icon-screenshot {
  2651 + background-position: -144px -96px;
  2652 +}
  2653 +.icon-remove-circle {
  2654 + background-position: -168px -96px;
  2655 +}
  2656 +.icon-ok-circle {
  2657 + background-position: -192px -96px;
  2658 +}
  2659 +.icon-ban-circle {
  2660 + background-position: -216px -96px;
  2661 +}
  2662 +.icon-arrow-left {
  2663 + background-position: -240px -96px;
  2664 +}
  2665 +.icon-arrow-right {
  2666 + background-position: -264px -96px;
  2667 +}
  2668 +.icon-arrow-up {
  2669 + background-position: -289px -96px;
  2670 +}
  2671 +.icon-arrow-down {
  2672 + background-position: -312px -96px;
  2673 +}
  2674 +.icon-share-alt {
  2675 + background-position: -336px -96px;
  2676 +}
  2677 +.icon-resize-full {
  2678 + background-position: -360px -96px;
  2679 +}
  2680 +.icon-resize-small {
  2681 + background-position: -384px -96px;
  2682 +}
  2683 +.icon-plus {
  2684 + background-position: -408px -96px;
  2685 +}
  2686 +.icon-minus {
  2687 + background-position: -433px -96px;
  2688 +}
  2689 +.icon-asterisk {
  2690 + background-position: -456px -96px;
  2691 +}
  2692 +.icon-exclamation-sign {
  2693 + background-position: 0 -120px;
  2694 +}
  2695 +.icon-gift {
  2696 + background-position: -24px -120px;
  2697 +}
  2698 +.icon-leaf {
  2699 + background-position: -48px -120px;
  2700 +}
  2701 +.icon-fire {
  2702 + background-position: -72px -120px;
  2703 +}
  2704 +.icon-eye-open {
  2705 + background-position: -96px -120px;
  2706 +}
  2707 +.icon-eye-close {
  2708 + background-position: -120px -120px;
  2709 +}
  2710 +.icon-warning-sign {
  2711 + background-position: -144px -120px;
  2712 +}
  2713 +.icon-plane {
  2714 + background-position: -168px -120px;
  2715 +}
  2716 +.icon-calendar {
  2717 + background-position: -192px -120px;
  2718 +}
  2719 +.icon-random {
  2720 + background-position: -216px -120px;
  2721 + width: 16px;
  2722 +}
  2723 +.icon-comment {
  2724 + background-position: -240px -120px;
  2725 +}
  2726 +.icon-magnet {
  2727 + background-position: -264px -120px;
  2728 +}
  2729 +.icon-chevron-up {
  2730 + background-position: -288px -120px;
  2731 +}
  2732 +.icon-chevron-down {
  2733 + background-position: -313px -119px;
  2734 +}
  2735 +.icon-retweet {
  2736 + background-position: -336px -120px;
  2737 +}
  2738 +.icon-shopping-cart {
  2739 + background-position: -360px -120px;
  2740 +}
  2741 +.icon-folder-close {
  2742 + background-position: -384px -120px;
  2743 +}
  2744 +.icon-folder-open {
  2745 + background-position: -408px -120px;
  2746 + width: 16px;
  2747 +}
  2748 +.icon-resize-vertical {
  2749 + background-position: -432px -119px;
  2750 +}
  2751 +.icon-resize-horizontal {
  2752 + background-position: -456px -118px;
  2753 +}
  2754 +.icon-hdd {
  2755 + background-position: 0 -144px;
  2756 +}
  2757 +.icon-bullhorn {
  2758 + background-position: -24px -144px;
  2759 +}
  2760 +.icon-bell {
  2761 + background-position: -48px -144px;
  2762 +}
  2763 +.icon-certificate {
  2764 + background-position: -72px -144px;
  2765 +}
  2766 +.icon-thumbs-up {
  2767 + background-position: -96px -144px;
  2768 +}
  2769 +.icon-thumbs-down {
  2770 + background-position: -120px -144px;
  2771 +}
  2772 +.icon-hand-right {
  2773 + background-position: -144px -144px;
  2774 +}
  2775 +.icon-hand-left {
  2776 + background-position: -168px -144px;
  2777 +}
  2778 +.icon-hand-up {
  2779 + background-position: -192px -144px;
  2780 +}
  2781 +.icon-hand-down {
  2782 + background-position: -216px -144px;
  2783 +}
  2784 +.icon-circle-arrow-right {
  2785 + background-position: -240px -144px;
  2786 +}
  2787 +.icon-circle-arrow-left {
  2788 + background-position: -264px -144px;
  2789 +}
  2790 +.icon-circle-arrow-up {
  2791 + background-position: -288px -144px;
  2792 +}
  2793 +.icon-circle-arrow-down {
  2794 + background-position: -312px -144px;
  2795 +}
  2796 +.icon-globe {
  2797 + background-position: -336px -144px;
  2798 +}
  2799 +.icon-wrench {
  2800 + background-position: -360px -144px;
  2801 +}
  2802 +.icon-tasks {
  2803 + background-position: -384px -144px;
  2804 +}
  2805 +.icon-filter {
  2806 + background-position: -408px -144px;
  2807 +}
  2808 +.icon-briefcase {
  2809 + background-position: -432px -144px;
  2810 +}
  2811 +.icon-fullscreen {
  2812 + background-position: -456px -144px;
  2813 +}
  2814 +.btn-group {
  2815 + position: relative;
  2816 + display: inline-block;
  2817 + *display: inline;
  2818 + /* IE7 inline-block hack */
  2819 +
  2820 + *zoom: 1;
  2821 + font-size: 0;
  2822 + vertical-align: middle;
  2823 + white-space: nowrap;
  2824 + *margin-left: .3em;
  2825 +}
  2826 +.btn-group:first-child {
  2827 + *margin-left: 0;
  2828 +}
  2829 +.btn-group + .btn-group {
  2830 + margin-left: 5px;
  2831 +}
  2832 +.btn-toolbar {
  2833 + font-size: 0;
  2834 + margin-top: 10px;
  2835 + margin-bottom: 10px;
  2836 +}
  2837 +.btn-toolbar > .btn + .btn,
  2838 +.btn-toolbar > .btn-group + .btn,
  2839 +.btn-toolbar > .btn + .btn-group {
  2840 + margin-left: 5px;
  2841 +}
  2842 +.btn-group > .btn {
  2843 + position: relative;
  2844 + -webkit-border-radius: 0;
  2845 + -moz-border-radius: 0;
  2846 + border-radius: 0;
  2847 +}
  2848 +.btn-group > .btn + .btn {
  2849 + margin-left: -1px;
  2850 +}
  2851 +.btn-group > .btn,
  2852 +.btn-group > .dropdown-menu,
  2853 +.btn-group > .popover {
  2854 + font-size: 12px;
  2855 +}
  2856 +.btn-group > .btn-mini {
  2857 + font-size: 9px;
  2858 +}
  2859 +.btn-group > .btn-small {
  2860 + font-size: 10.2px;
  2861 +}
  2862 +.btn-group > .btn-large {
  2863 + font-size: 15px;
  2864 +}
  2865 +.btn-group > .btn:first-child {
  2866 + margin-left: 0;
  2867 + -webkit-border-top-left-radius: 4px;
  2868 + -moz-border-radius-topleft: 4px;
  2869 + border-top-left-radius: 4px;
  2870 + -webkit-border-bottom-left-radius: 4px;
  2871 + -moz-border-radius-bottomleft: 4px;
  2872 + border-bottom-left-radius: 4px;
  2873 +}
  2874 +.btn-group > .btn:last-child,
  2875 +.btn-group > .dropdown-toggle {
  2876 + -webkit-border-top-right-radius: 4px;
  2877 + -moz-border-radius-topright: 4px;
  2878 + border-top-right-radius: 4px;
  2879 + -webkit-border-bottom-right-radius: 4px;
  2880 + -moz-border-radius-bottomright: 4px;
  2881 + border-bottom-right-radius: 4px;
  2882 +}
  2883 +.btn-group > .btn.large:first-child {
  2884 + margin-left: 0;
  2885 + -webkit-border-top-left-radius: 6px;
  2886 + -moz-border-radius-topleft: 6px;
  2887 + border-top-left-radius: 6px;
  2888 + -webkit-border-bottom-left-radius: 6px;
  2889 + -moz-border-radius-bottomleft: 6px;
  2890 + border-bottom-left-radius: 6px;
  2891 +}
  2892 +.btn-group > .btn.large:last-child,
  2893 +.btn-group > .large.dropdown-toggle {
  2894 + -webkit-border-top-right-radius: 6px;
  2895 + -moz-border-radius-topright: 6px;
  2896 + border-top-right-radius: 6px;
  2897 + -webkit-border-bottom-right-radius: 6px;
  2898 + -moz-border-radius-bottomright: 6px;
  2899 + border-bottom-right-radius: 6px;
  2900 +}
  2901 +.btn-group > .btn:hover,
  2902 +.btn-group > .btn:focus,
  2903 +.btn-group > .btn:active,
  2904 +.btn-group > .btn.active {
  2905 + z-index: 2;
  2906 +}
  2907 +.btn-group .dropdown-toggle:active,
  2908 +.btn-group.open .dropdown-toggle {
  2909 + outline: 0;
  2910 +}
  2911 +.btn-group > .btn + .dropdown-toggle {
  2912 + padding-left: 8px;
  2913 + padding-right: 8px;
  2914 + -webkit-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
  2915 + -moz-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
  2916 + box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
  2917 + *padding-top: 5px;
  2918 + *padding-bottom: 5px;
  2919 +}
  2920 +.btn-group > .btn-mini + .dropdown-toggle {
  2921 + padding-left: 5px;
  2922 + padding-right: 5px;
  2923 + *padding-top: 2px;
  2924 + *padding-bottom: 2px;
  2925 +}
  2926 +.btn-group > .btn-small + .dropdown-toggle {
  2927 + *padding-top: 5px;
  2928 + *padding-bottom: 4px;
  2929 +}
  2930 +.btn-group > .btn-large + .dropdown-toggle {
  2931 + padding-left: 12px;
  2932 + padding-right: 12px;
  2933 + *padding-top: 7px;
  2934 + *padding-bottom: 7px;
  2935 +}
  2936 +.btn-group.open .dropdown-toggle {
  2937 + background-image: none;
  2938 + -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
  2939 + -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
  2940 + box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
  2941 +}
  2942 +.btn-group.open .btn.dropdown-toggle {
  2943 + background-color: #e6e6e6;
  2944 +}
  2945 +.btn-group.open .btn-primary.dropdown-toggle {
  2946 + background-color: #0044cc;
  2947 +}
  2948 +.btn-group.open .btn-warning.dropdown-toggle {
  2949 + background-color: #f89406;
  2950 +}
  2951 +.btn-group.open .btn-danger.dropdown-toggle {
  2952 + background-color: #bd362f;
  2953 +}
  2954 +.btn-group.open .btn-success.dropdown-toggle {
  2955 + background-color: #51a351;
  2956 +}
  2957 +.btn-group.open .btn-info.dropdown-toggle {
  2958 + background-color: #2f96b4;
  2959 +}
  2960 +.btn-group.open .btn-inverse.dropdown-toggle {
  2961 + background-color: #222222;
  2962 +}
  2963 +.btn .caret {
  2964 + margin-top: 8px;
  2965 + margin-left: 0;
  2966 +}
  2967 +.btn-mini .caret,
  2968 +.btn-small .caret,
  2969 +.btn-large .caret {
  2970 + margin-top: 6px;
  2971 +}
  2972 +.btn-large .caret {
  2973 + border-left-width: 5px;
  2974 + border-right-width: 5px;
  2975 + border-top-width: 5px;
  2976 +}
  2977 +.dropup .btn-large .caret {
  2978 + border-bottom-width: 5px;
  2979 +}
  2980 +.btn-primary .caret,
  2981 +.btn-warning .caret,
  2982 +.btn-danger .caret,
  2983 +.btn-info .caret,
  2984 +.btn-success .caret,
  2985 +.btn-inverse .caret {
  2986 + border-top-color: #ffffff;
  2987 + border-bottom-color: #ffffff;
  2988 +}
  2989 +.btn-group-vertical {
  2990 + display: inline-block;
  2991 + *display: inline;
  2992 + /* IE7 inline-block hack */
  2993 +
  2994 + *zoom: 1;
  2995 +}
  2996 +.btn-group-vertical > .btn {
  2997 + display: block;
  2998 + float: none;
  2999 + max-width: 100%;
  3000 + -webkit-border-radius: 0;
  3001 + -moz-border-radius: 0;
  3002 + border-radius: 0;
  3003 +}
  3004 +.btn-group-vertical > .btn + .btn {
  3005 + margin-left: 0;
  3006 + margin-top: -1px;
  3007 +}
  3008 +.btn-group-vertical > .btn:first-child {
  3009 + -webkit-border-radius: 4px 4px 0 0;
  3010 + -moz-border-radius: 4px 4px 0 0;
  3011 + border-radius: 4px 4px 0 0;
  3012 +}
  3013 +.btn-group-vertical > .btn:last-child {
  3014 + -webkit-border-radius: 0 0 4px 4px;
  3015 + -moz-border-radius: 0 0 4px 4px;
  3016 + border-radius: 0 0 4px 4px;
  3017 +}
  3018 +.btn-group-vertical > .btn-large:first-child {
  3019 + -webkit-border-radius: 6px 6px 0 0;
  3020 + -moz-border-radius: 6px 6px 0 0;
  3021 + border-radius: 6px 6px 0 0;
  3022 +}
  3023 +.btn-group-vertical > .btn-large:last-child {
  3024 + -webkit-border-radius: 0 0 6px 6px;
  3025 + -moz-border-radius: 0 0 6px 6px;
  3026 + border-radius: 0 0 6px 6px;
  3027 +}
  3028 +.nav {
  3029 + margin-left: 0;
  3030 + margin-bottom: 20px;
  3031 + list-style: none;
  3032 +}
  3033 +.nav > li > a {
  3034 + display: block;
  3035 +}
  3036 +.nav > li > a:hover {
  3037 + text-decoration: none;
  3038 + background-color: #eeeeee;
  3039 +}
  3040 +.nav > li > a > img {
  3041 + max-width: none;
  3042 +}
  3043 +.nav > .pull-right {
  3044 + float: right;
  3045 +}
  3046 +.nav-header {
  3047 + display: block;
  3048 + padding: 3px 15px;
  3049 + font-size: 11px;
  3050 + font-weight: bold;
  3051 + line-height: 20px;
  3052 + color: #999999;
  3053 + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  3054 + text-transform: uppercase;
  3055 +}
  3056 +.nav li + .nav-header {
  3057 + margin-top: 9px;
  3058 +}
  3059 +.nav-list {
  3060 + padding-left: 15px;
  3061 + padding-right: 15px;
  3062 + margin-bottom: 0;
  3063 +}
  3064 +.nav-list > li > a,
  3065 +.nav-list .nav-header {
  3066 + margin-left: -15px;
  3067 + margin-right: -15px;
  3068 + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  3069 +}
  3070 +.nav-list > li > a {
  3071 + padding: 3px 15px;
  3072 +}
  3073 +.nav-list > .active > a,
  3074 +.nav-list > .active > a:hover {
  3075 + color: #ffffff;
  3076 + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
  3077 + background-color: #0088cc;
  3078 +}
  3079 +.nav-list [class^="icon-"],
  3080 +.nav-list [class*=" icon-"] {
  3081 + margin-right: 2px;
  3082 +}
  3083 +.nav-list .divider {
  3084 + *width: 100%;
  3085 + height: 1px;
  3086 + margin: 9px 1px;
  3087 + *margin: -5px 0 5px;
  3088 + overflow: hidden;
  3089 + background-color: #e5e5e5;
  3090 + border-bottom: 1px solid #ffffff;
  3091 +}
  3092 +.nav-tabs,
  3093 +.nav-pills {
  3094 + *zoom: 1;
  3095 +}
  3096 +.nav-tabs:before,
  3097 +.nav-pills:before,
  3098 +.nav-tabs:after,
  3099 +.nav-pills:after {
  3100 + display: table;
  3101 + content: "";
  3102 + line-height: 0;
  3103 +}
  3104 +.nav-tabs:after,
  3105 +.nav-pills:after {
  3106 + clear: both;
  3107 +}
  3108 +.nav-tabs > li,
  3109 +.nav-pills > li {
  3110 + float: left;
  3111 +}
  3112 +.nav-tabs > li > a,
  3113 +.nav-pills > li > a {
  3114 + padding-right: 12px;
  3115 + padding-left: 12px;
  3116 + margin-right: 2px;
  3117 + line-height: 14px;
  3118 +}
  3119 +.nav-tabs {
  3120 + border-bottom: 1px solid #ddd;
  3121 +}
  3122 +.nav-tabs > li {
  3123 + margin-bottom: -1px;
  3124 +}
  3125 +.nav-tabs > li > a {
  3126 + padding-top: 8px;
  3127 + padding-bottom: 8px;
  3128 + line-height: 20px;
  3129 + border: 1px solid transparent;
  3130 + -webkit-border-radius: 4px 4px 0 0;
  3131 + -moz-border-radius: 4px 4px 0 0;
  3132 + border-radius: 4px 4px 0 0;
  3133 +}
  3134 +.nav-tabs > li > a:hover {
  3135 + border-color: #eeeeee #eeeeee #dddddd;
  3136 +}
  3137 +.nav-tabs > .active > a,
  3138 +.nav-tabs > .active > a:hover {
  3139 + color: #555555;
  3140 + background-color: #ffffff;
  3141 + border: 1px solid #ddd;
  3142 + border-bottom-color: transparent;
  3143 + cursor: default;
  3144 +}
  3145 +.nav-pills > li > a {
  3146 + padding-top: 8px;
  3147 + padding-bottom: 8px;
  3148 + margin-top: 2px;
  3149 + margin-bottom: 2px;
  3150 + -webkit-border-radius: 5px;
  3151 + -moz-border-radius: 5px;
  3152 + border-radius: 5px;
  3153 +}
  3154 +.nav-pills > .active > a,
  3155 +.nav-pills > .active > a:hover {
  3156 + color: #ffffff;
  3157 + background-color: #0088cc;
  3158 +}
  3159 +.nav-stacked > li {
  3160 + float: none;
  3161 +}
  3162 +.nav-stacked > li > a {
  3163 + margin-right: 0;
  3164 +}
  3165 +.nav-tabs.nav-stacked {
  3166 + border-bottom: 0;
  3167 +}
  3168 +.nav-tabs.nav-stacked > li > a {
  3169 + border: 1px solid #ddd;
  3170 + -webkit-border-radius: 0;
  3171 + -moz-border-radius: 0;
  3172 + border-radius: 0;
  3173 +}
  3174 +.nav-tabs.nav-stacked > li:first-child > a {
  3175 + -webkit-border-top-right-radius: 4px;
  3176 + -moz-border-radius-topright: 4px;
  3177 + border-top-right-radius: 4px;
  3178 + -webkit-border-top-left-radius: 4px;
  3179 + -moz-border-radius-topleft: 4px;
  3180 + border-top-left-radius: 4px;
  3181 +}
  3182 +.nav-tabs.nav-stacked > li:last-child > a {
  3183 + -webkit-border-bottom-right-radius: 4px;
  3184 + -moz-border-radius-bottomright: 4px;
  3185 + border-bottom-right-radius: 4px;
  3186 + -webkit-border-bottom-left-radius: 4px;
  3187 + -moz-border-radius-bottomleft: 4px;
  3188 + border-bottom-left-radius: 4px;
  3189 +}
  3190 +.nav-tabs.nav-stacked > li > a:hover {
  3191 + border-color: #ddd;
  3192 + z-index: 2;
  3193 +}
  3194 +.nav-pills.nav-stacked > li > a {
  3195 + margin-bottom: 3px;
  3196 +}
  3197 +.nav-pills.nav-stacked > li:last-child > a {
  3198 + margin-bottom: 1px;
  3199 +}
  3200 +.nav-tabs .dropdown-menu {
  3201 + -webkit-border-radius: 0 0 6px 6px;
  3202 + -moz-border-radius: 0 0 6px 6px;
  3203 + border-radius: 0 0 6px 6px;
  3204 +}
  3205 +.nav-pills .dropdown-menu {
  3206 + -webkit-border-radius: 6px;
  3207 + -moz-border-radius: 6px;
  3208 + border-radius: 6px;
  3209 +}
  3210 +.nav .dropdown-toggle .caret {
  3211 + border-top-color: #0088cc;
  3212 + border-bottom-color: #0088cc;
  3213 + margin-top: 6px;
  3214 +}
  3215 +.nav .dropdown-toggle:hover .caret {
  3216 + border-top-color: #005580;
  3217 + border-bottom-color: #005580;
  3218 +}
  3219 +/* move down carets for tabs */
  3220 +.nav-tabs .dropdown-toggle .caret {
  3221 + margin-top: 8px;
  3222 +}
  3223 +.nav .active .dropdown-toggle .caret {
  3224 + border-top-color: #fff;
  3225 + border-bottom-color: #fff;
  3226 +}
  3227 +.nav-tabs .active .dropdown-toggle .caret {
  3228 + border-top-color: #555555;
  3229 + border-bottom-color: #555555;
  3230 +}
  3231 +.nav > .dropdown.active > a:hover {
  3232 + cursor: pointer;
  3233 +}
  3234 +.nav-tabs .open .dropdown-toggle,
  3235 +.nav-pills .open .dropdown-toggle,
  3236 +.nav > li.dropdown.open.active > a:hover {
  3237 + color: #ffffff;
  3238 + background-color: #999999;
  3239 + border-color: #999999;
  3240 +}
  3241 +.nav li.dropdown.open .caret,
  3242 +.nav li.dropdown.open.active .caret,
  3243 +.nav li.dropdown.open a:hover .caret {
  3244 + border-top-color: #ffffff;
  3245 + border-bottom-color: #ffffff;
  3246 + opacity: 1;
  3247 + filter: alpha(opacity=100);
  3248 +}
  3249 +.tabs-stacked .open > a:hover {
  3250 + border-color: #999999;
  3251 +}
  3252 +.tabbable {
  3253 + *zoom: 1;
  3254 +}
  3255 +.tabbable:before,
  3256 +.tabbable:after {
  3257 + display: table;
  3258 + content: "";
  3259 + line-height: 0;
  3260 +}
  3261 +.tabbable:after {
  3262 + clear: both;
  3263 +}
  3264 +.tab-content {
  3265 + overflow: auto;
  3266 +}
  3267 +.tabs-below > .nav-tabs,
  3268 +.tabs-right > .nav-tabs,
  3269 +.tabs-left > .nav-tabs {
  3270 + border-bottom: 0;
  3271 +}
  3272 +.tab-content > .tab-pane,
  3273 +.pill-content > .pill-pane {
  3274 + display: none;
  3275 +}
  3276 +.tab-content > .active,
  3277 +.pill-content > .active {
  3278 + display: block;
  3279 +}
  3280 +.tabs-below > .nav-tabs {
  3281 + border-top: 1px solid #ddd;
  3282 +}
  3283 +.tabs-below > .nav-tabs > li {
  3284 + margin-top: -1px;
  3285 + margin-bottom: 0;
  3286 +}
  3287 +.tabs-below > .nav-tabs > li > a {
  3288 + -webkit-border-radius: 0 0 4px 4px;
  3289 + -moz-border-radius: 0 0 4px 4px;
  3290 + border-radius: 0 0 4px 4px;
  3291 +}
  3292 +.tabs-below > .nav-tabs > li > a:hover {
  3293 + border-bottom-color: transparent;
  3294 + border-top-color: #ddd;
  3295 +}
  3296 +.tabs-below > .nav-tabs > .active > a,
  3297 +.tabs-below > .nav-tabs > .active > a:hover {
  3298 + border-color: transparent #ddd #ddd #ddd;
  3299 +}
  3300 +.tabs-left > .nav-tabs > li,
  3301 +.tabs-right > .nav-tabs > li {
  3302 + float: none;
  3303 +}
  3304 +.tabs-left > .nav-tabs > li > a,
  3305 +.tabs-right > .nav-tabs > li > a {
  3306 + min-width: 74px;
  3307 + margin-right: 0;
  3308 + margin-bottom: 3px;
  3309 +}
  3310 +.tabs-left > .nav-tabs {
  3311 + float: left;
  3312 + margin-right: 19px;
  3313 + border-right: 1px solid #ddd;
  3314 +}
  3315 +.tabs-left > .nav-tabs > li > a {
  3316 + margin-right: -1px;
  3317 + -webkit-border-radius: 4px 0 0 4px;
  3318 + -moz-border-radius: 4px 0 0 4px;
  3319 + border-radius: 4px 0 0 4px;
  3320 +}
  3321 +.tabs-left > .nav-tabs > li > a:hover {
  3322 + border-color: #eeeeee #dddddd #eeeeee #eeeeee;
  3323 +}
  3324 +.tabs-left > .nav-tabs .active > a,
  3325 +.tabs-left > .nav-tabs .active > a:hover {
  3326 + border-color: #ddd transparent #ddd #ddd;
  3327 + *border-right-color: #ffffff;
  3328 +}
  3329 +.tabs-right > .nav-tabs {
  3330 + float: right;
  3331 + margin-left: 19px;
  3332 + border-left: 1px solid #ddd;
  3333 +}
  3334 +.tabs-right > .nav-tabs > li > a {
  3335 + margin-left: -1px;
  3336 + -webkit-border-radius: 0 4px 4px 0;
  3337 + -moz-border-radius: 0 4px 4px 0;
  3338 + border-radius: 0 4px 4px 0;
  3339 +}
  3340 +.tabs-right > .nav-tabs > li > a:hover {
  3341 + border-color: #eeeeee #eeeeee #eeeeee #dddddd;
  3342 +}
  3343 +.tabs-right > .nav-tabs .active > a,
  3344 +.tabs-right > .nav-tabs .active > a:hover {
  3345 + border-color: #ddd #ddd #ddd transparent;
  3346 + *border-left-color: #ffffff;
  3347 +}
  3348 +.nav > .disabled > a {
  3349 + color: #999999;
  3350 +}
  3351 +.nav > .disabled > a:hover {
  3352 + text-decoration: none;
  3353 + background-color: transparent;
  3354 + cursor: default;
  3355 +}
  3356 +.navbar {
  3357 + overflow: visible;
  3358 + margin-bottom: 20px;
  3359 + *position: relative;
  3360 + *z-index: 2;
  3361 +}
  3362 +.navbar-inner {
  3363 + min-height: 40px;
  3364 + padding-left: 20px;
  3365 + padding-right: 20px;
  3366 + background-color: #fafafa;
  3367 + background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2);
  3368 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));
  3369 + background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2);
  3370 + background-image: -o-linear-gradient(top, #ffffff, #f2f2f2);
  3371 + background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);
  3372 + background-repeat: repeat-x;
  3373 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
  3374 + border: 1px solid #d4d4d4;
  3375 + -webkit-border-radius: 4px;
  3376 + -moz-border-radius: 4px;
  3377 + border-radius: 4px;
  3378 + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
  3379 + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
  3380 + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
  3381 + *zoom: 1;
  3382 +}
  3383 +.navbar-inner:before,
  3384 +.navbar-inner:after {
  3385 + display: table;
  3386 + content: "";
  3387 + line-height: 0;
  3388 +}
  3389 +.navbar-inner:after {
  3390 + clear: both;
  3391 +}
  3392 +.navbar .container {
  3393 + width: auto;
  3394 +}
  3395 +.nav-collapse.collapse {
  3396 + height: auto;
  3397 + overflow: visible;
  3398 +}
  3399 +.navbar .brand {
  3400 + float: left;
  3401 + display: block;
  3402 + padding: 10px 20px 10px;
  3403 + margin-left: -20px;
  3404 + font-size: 20px;
  3405 + font-weight: 200;
  3406 + color: #777777;
  3407 + text-shadow: 0 1px 0 #ffffff;
  3408 +}
  3409 +.navbar .brand:hover {
  3410 + text-decoration: none;
  3411 +}
  3412 +.navbar-text {
  3413 + margin-bottom: 0;
  3414 + line-height: 40px;
  3415 + color: #777777;
  3416 +}
  3417 +.navbar-link {
  3418 + color: #777777;
  3419 +}
  3420 +.navbar-link:hover {
  3421 + color: #333333;
  3422 +}
  3423 +.navbar .divider-vertical {
  3424 + height: 40px;
  3425 + margin: 0 9px;
  3426 + border-left: 1px solid #f2f2f2;
  3427 + border-right: 1px solid #ffffff;
  3428 +}
  3429 +.navbar .btn,
  3430 +.navbar .btn-group {
  3431 + margin-top: 5px;
  3432 +}
  3433 +.navbar .btn-group .btn,
  3434 +.navbar .input-prepend .btn,
  3435 +.navbar .input-append .btn {
  3436 + margin-top: 0;
  3437 +}
  3438 +.navbar-form {
  3439 + margin-bottom: 0;
  3440 + *zoom: 1;
  3441 +}
  3442 +.navbar-form:before,
  3443 +.navbar-form:after {
  3444 + display: table;
  3445 + content: "";
  3446 + line-height: 0;
  3447 +}
  3448 +.navbar-form:after {
  3449 + clear: both;
  3450 +}
  3451 +.navbar-form input,
  3452 +.navbar-form select,
  3453 +.navbar-form .radio,
  3454 +.navbar-form .checkbox {
  3455 + margin-top: 5px;
  3456 +}
  3457 +.navbar-form input,
  3458 +.navbar-form select,
  3459 +.navbar-form .btn {
  3460 + display: inline-block;
  3461 + margin-bottom: 0;
  3462 +}
  3463 +.navbar-form input[type="image"],
  3464 +.navbar-form input[type="checkbox"],
  3465 +.navbar-form input[type="radio"] {
  3466 + margin-top: 3px;
  3467 +}
  3468 +.navbar-form .input-append,
  3469 +.navbar-form .input-prepend {
  3470 + margin-top: 5px;
  3471 + white-space: nowrap;
  3472 +}
  3473 +.navbar-form .input-append input,
  3474 +.navbar-form .input-prepend input {
  3475 + margin-top: 0;
  3476 +}
  3477 +.navbar-search {
  3478 + position: relative;
  3479 + float: left;
  3480 + margin-top: 5px;
  3481 + margin-bottom: 0;
  3482 +}
  3483 +.navbar-search .search-query {
  3484 + margin-bottom: 0;
  3485 + padding: 4px 14px;
  3486 + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  3487 + font-size: 13px;
  3488 + font-weight: normal;
  3489 + line-height: 1;
  3490 + -webkit-border-radius: 15px;
  3491 + -moz-border-radius: 15px;
  3492 + border-radius: 15px;
  3493 +}
  3494 +.navbar-static-top {
  3495 + position: static;
  3496 + margin-bottom: 0;
  3497 +}
  3498 +.navbar-static-top .navbar-inner {
  3499 + -webkit-border-radius: 0;
  3500 + -moz-border-radius: 0;
  3501 + border-radius: 0;
  3502 +}
  3503 +.navbar-fixed-top,
  3504 +.navbar-fixed-bottom {
  3505 + position: fixed;
  3506 + right: 0;
  3507 + left: 0;
  3508 + z-index: 1030;
  3509 + margin-bottom: 0;
  3510 +}
  3511 +.navbar-fixed-top .navbar-inner,
  3512 +.navbar-static-top .navbar-inner {
  3513 + border-width: 0 0 1px;
  3514 +}
  3515 +.navbar-fixed-bottom .navbar-inner {
  3516 + border-width: 1px 0 0;
  3517 +}
  3518 +.navbar-fixed-top .navbar-inner,
  3519 +.navbar-fixed-bottom .navbar-inner {
  3520 + padding-left: 0;
  3521 + padding-right: 0;
  3522 + -webkit-border-radius: 0;
  3523 + -moz-border-radius: 0;
  3524 + border-radius: 0;
  3525 +}
  3526 +.navbar-static-top .container,
  3527 +.navbar-fixed-top .container,
  3528 +.navbar-fixed-bottom .container {
  3529 + width: 940px;
  3530 +}
  3531 +.navbar-fixed-top {
  3532 + top: 0;
  3533 +}
  3534 +.navbar-fixed-top .navbar-inner,
  3535 +.navbar-static-top .navbar-inner {
  3536 + -webkit-box-shadow: 0 1px 10px rgba(0,0,0,.1);
  3537 + -moz-box-shadow: 0 1px 10px rgba(0,0,0,.1);
  3538 + box-shadow: 0 1px 10px rgba(0,0,0,.1);
  3539 +}
  3540 +.navbar-fixed-bottom {
  3541 + bottom: 0;
  3542 +}
  3543 +.navbar-fixed-bottom .navbar-inner {
  3544 + -webkit-box-shadow: 0 -1px 10px rgba(0,0,0,.1);
  3545 + -moz-box-shadow: 0 -1px 10px rgba(0,0,0,.1);
  3546 + box-shadow: 0 -1px 10px rgba(0,0,0,.1);
  3547 +}
  3548 +.navbar .nav {
  3549 + position: relative;
  3550 + left: 0;
  3551 + display: block;
  3552 + float: left;
  3553 + margin: 0 10px 0 0;
  3554 +}
  3555 +.navbar .nav.pull-right {
  3556 + float: right;
  3557 + margin-right: 0;
  3558 +}
  3559 +.navbar .nav > li {
  3560 + float: left;
  3561 +}
  3562 +.navbar .nav > li > a {
  3563 + float: none;
  3564 + padding: 10px 15px 10px;
  3565 + color: #777777;
  3566 + text-decoration: none;
  3567 + text-shadow: 0 1px 0 #ffffff;
  3568 +}
  3569 +.navbar .nav .dropdown-toggle .caret {
  3570 + margin-top: 8px;
  3571 +}
  3572 +.navbar .nav > li > a:focus,
  3573 +.navbar .nav > li > a:hover {
  3574 + background-color: transparent;
  3575 + color: #333333;
  3576 + text-decoration: none;
  3577 +}
  3578 +.navbar .nav > .active > a,
  3579 +.navbar .nav > .active > a:hover,
  3580 +.navbar .nav > .active > a:focus {
  3581 + color: #555555;
  3582 + text-decoration: none;
  3583 + background-color: #e5e5e5;
  3584 + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
  3585 + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
  3586 + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
  3587 +}
  3588 +.navbar .btn-navbar {
  3589 + display: none;
  3590 + float: right;
  3591 + padding: 7px 10px;
  3592 + margin-left: 5px;
  3593 + margin-right: 5px;
  3594 + color: #ffffff;
  3595 + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  3596 + background-color: #ededed;
  3597 + background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5);
  3598 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));
  3599 + background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5);
  3600 + background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5);
  3601 + background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5);
  3602 + background-repeat: repeat-x;
  3603 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);
  3604 + border-color: #e5e5e5 #e5e5e5 #bfbfbf;
  3605 + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  3606 + *background-color: #e5e5e5;
  3607 + /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  3608 +
  3609 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  3610 + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
  3611 + -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
  3612 + box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
  3613 +}
  3614 +.navbar .btn-navbar:hover,
  3615 +.navbar .btn-navbar:active,
  3616 +.navbar .btn-navbar.active,
  3617 +.navbar .btn-navbar.disabled,
  3618 +.navbar .btn-navbar[disabled] {
  3619 + color: #ffffff;
  3620 + background-color: #e5e5e5;
  3621 + *background-color: #d9d9d9;
  3622 +}
  3623 +.navbar .btn-navbar:active,
  3624 +.navbar .btn-navbar.active {
  3625 + background-color: #cccccc \9;
  3626 +}
  3627 +.navbar .btn-navbar .icon-bar {
  3628 + display: block;
  3629 + width: 18px;
  3630 + height: 2px;
  3631 + background-color: #f5f5f5;
  3632 + -webkit-border-radius: 1px;
  3633 + -moz-border-radius: 1px;
  3634 + border-radius: 1px;
  3635 + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
  3636 + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
  3637 + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
  3638 +}
  3639 +.btn-navbar .icon-bar + .icon-bar {
  3640 + margin-top: 3px;
  3641 +}
  3642 +.navbar .nav > li > .dropdown-menu:before {
  3643 + content: '';
  3644 + display: inline-block;
  3645 + border-left: 7px solid transparent;
  3646 + border-right: 7px solid transparent;
  3647 + border-bottom: 7px solid #ccc;
  3648 + border-bottom-color: rgba(0, 0, 0, 0.2);
  3649 + position: absolute;
  3650 + top: -7px;
  3651 + left: 9px;
  3652 +}
  3653 +.navbar .nav > li > .dropdown-menu:after {
  3654 + content: '';
  3655 + display: inline-block;
  3656 + border-left: 6px solid transparent;
  3657 + border-right: 6px solid transparent;
  3658 + border-bottom: 6px solid #ffffff;
  3659 + position: absolute;
  3660 + top: -6px;
  3661 + left: 10px;
  3662 +}
  3663 +.navbar-fixed-bottom .nav > li > .dropdown-menu:before {
  3664 + border-top: 7px solid #ccc;
  3665 + border-top-color: rgba(0, 0, 0, 0.2);
  3666 + border-bottom: 0;
  3667 + bottom: -7px;
  3668 + top: auto;
  3669 +}
  3670 +.navbar-fixed-bottom .nav > li > .dropdown-menu:after {
  3671 + border-top: 6px solid #ffffff;
  3672 + border-bottom: 0;
  3673 + bottom: -6px;
  3674 + top: auto;
  3675 +}
  3676 +.navbar .nav li.dropdown > a:hover .caret {
  3677 + border-top-color: #555555;
  3678 + border-bottom-color: #555555;
  3679 +}
  3680 +.navbar .nav li.dropdown.open > .dropdown-toggle,
  3681 +.navbar .nav li.dropdown.active > .dropdown-toggle,
  3682 +.navbar .nav li.dropdown.open.active > .dropdown-toggle {
  3683 + background-color: #e5e5e5;
  3684 + color: #555555;
  3685 +}
  3686 +.navbar .nav li.dropdown > .dropdown-toggle .caret {
  3687 + border-top-color: #777777;
  3688 + border-bottom-color: #777777;
  3689 +}
  3690 +.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
  3691 +.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
  3692 +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
  3693 + border-top-color: #555555;
  3694 + border-bottom-color: #555555;
  3695 +}
  3696 +.navbar .pull-right > li > .dropdown-menu,
  3697 +.navbar .nav > li > .dropdown-menu.pull-right {
  3698 + left: auto;
  3699 + right: 0;
  3700 +}
  3701 +.navbar .pull-right > li > .dropdown-menu:before,
  3702 +.navbar .nav > li > .dropdown-menu.pull-right:before {
  3703 + left: auto;
  3704 + right: 12px;
  3705 +}
  3706 +.navbar .pull-right > li > .dropdown-menu:after,
  3707 +.navbar .nav > li > .dropdown-menu.pull-right:after {
  3708 + left: auto;
  3709 + right: 13px;
  3710 +}
  3711 +.navbar .pull-right > li > .dropdown-menu .dropdown-menu,
  3712 +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu {
  3713 + left: auto;
  3714 + right: 100%;
  3715 + margin-left: 0;
  3716 + margin-right: -1px;
  3717 + -webkit-border-radius: 6px 0 6px 6px;
  3718 + -moz-border-radius: 6px 0 6px 6px;
  3719 + border-radius: 6px 0 6px 6px;
  3720 +}
  3721 +.navbar-inverse .navbar-inner {
  3722 + background-color: #1b1b1b;
  3723 + background-image: -moz-linear-gradient(top, #222222, #111111);
  3724 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));
  3725 + background-image: -webkit-linear-gradient(top, #222222, #111111);
  3726 + background-image: -o-linear-gradient(top, #222222, #111111);
  3727 + background-image: linear-gradient(to bottom, #222222, #111111);
  3728 + background-repeat: repeat-x;
  3729 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);
  3730 + border-color: #252525;
  3731 +}
  3732 +.navbar-inverse .brand,
  3733 +.navbar-inverse .nav > li > a {
  3734 + color: #999999;
  3735 + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  3736 +}
  3737 +.navbar-inverse .brand:hover,
  3738 +.navbar-inverse .nav > li > a:hover {
  3739 + color: #ffffff;
  3740 +}
  3741 +.navbar-inverse .brand {
  3742 + color: #999999;
  3743 +}
  3744 +.navbar-inverse .navbar-text {
  3745 + color: #999999;
  3746 +}
  3747 +.navbar-inverse .nav > li > a:focus,
  3748 +.navbar-inverse .nav > li > a:hover {
  3749 + background-color: transparent;
  3750 + color: #ffffff;
  3751 +}
  3752 +.navbar-inverse .nav .active > a,
  3753 +.navbar-inverse .nav .active > a:hover,
  3754 +.navbar-inverse .nav .active > a:focus {
  3755 + color: #ffffff;
  3756 + background-color: #111111;
  3757 +}
  3758 +.navbar-inverse .navbar-link {
  3759 + color: #999999;
  3760 +}
  3761 +.navbar-inverse .navbar-link:hover {
  3762 + color: #ffffff;
  3763 +}
  3764 +.navbar-inverse .divider-vertical {
  3765 + border-left-color: #111111;
  3766 + border-right-color: #222222;
  3767 +}
  3768 +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,
  3769 +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,
  3770 +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {
  3771 + background-color: #111111;
  3772 + color: #ffffff;
  3773 +}
  3774 +.navbar-inverse .nav li.dropdown > a:hover .caret {
  3775 + border-top-color: #ffffff;
  3776 + border-bottom-color: #ffffff;
  3777 +}
  3778 +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret {
  3779 + border-top-color: #999999;
  3780 + border-bottom-color: #999999;
  3781 +}
  3782 +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,
  3783 +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,
  3784 +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret {
  3785 + border-top-color: #ffffff;
  3786 + border-bottom-color: #ffffff;
  3787 +}
  3788 +.navbar-inverse .navbar-search .search-query {
  3789 + color: #ffffff;
  3790 + background-color: #515151;
  3791 + border-color: #111111;
  3792 + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
  3793 + -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
  3794 + box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
  3795 + -webkit-transition: none;
  3796 + -moz-transition: none;
  3797 + -o-transition: none;
  3798 + transition: none;
  3799 +}
  3800 +.navbar-inverse .navbar-search .search-query:-moz-placeholder {
  3801 + color: #cccccc;
  3802 +}
  3803 +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder {
  3804 + color: #cccccc;
  3805 +}
  3806 +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder {
  3807 + color: #cccccc;
  3808 +}
  3809 +.navbar-inverse .navbar-search .search-query:focus,
  3810 +.navbar-inverse .navbar-search .search-query.focused {
  3811 + padding: 5px 15px;
  3812 + color: #333333;
  3813 + text-shadow: 0 1px 0 #ffffff;
  3814 + background-color: #ffffff;
  3815 + border: 0;
  3816 + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
  3817 + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
  3818 + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
  3819 + outline: 0;
  3820 +}
  3821 +.navbar-inverse .btn-navbar {
  3822 + color: #ffffff;
  3823 + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  3824 + background-color: #0e0e0e;
  3825 + background-image: -moz-linear-gradient(top, #151515, #040404);
  3826 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));
  3827 + background-image: -webkit-linear-gradient(top, #151515, #040404);
  3828 + background-image: -o-linear-gradient(top, #151515, #040404);
  3829 + background-image: linear-gradient(to bottom, #151515, #040404);
  3830 + background-repeat: repeat-x;
  3831 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);
  3832 + border-color: #040404 #040404 #000000;
  3833 + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  3834 + *background-color: #040404;
  3835 + /* Darken IE7 buttons by default so they stand out more given they won't have borders */
  3836 +
  3837 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  3838 +}
  3839 +.navbar-inverse .btn-navbar:hover,
  3840 +.navbar-inverse .btn-navbar:active,
  3841 +.navbar-inverse .btn-navbar.active,
  3842 +.navbar-inverse .btn-navbar.disabled,
  3843 +.navbar-inverse .btn-navbar[disabled] {
  3844 + color: #ffffff;
  3845 + background-color: #040404;
  3846 + *background-color: #000000;
  3847 +}
  3848 +.navbar-inverse .btn-navbar:active,
  3849 +.navbar-inverse .btn-navbar.active {
  3850 + background-color: #000000 \9;
  3851 +}
  3852 +.breadcrumb {
  3853 + padding: 8px 15px;
  3854 + margin: 0 0 20px;
  3855 + list-style: none;
  3856 + background-color: #f5f5f5;
  3857 + -webkit-border-radius: 4px;
  3858 + -moz-border-radius: 4px;
  3859 + border-radius: 4px;
  3860 +}
  3861 +.breadcrumb > li {
  3862 + display: inline-block;
  3863 + *display: inline;
  3864 + /* IE7 inline-block hack */
  3865 +
  3866 + *zoom: 1;
  3867 + text-shadow: 0 1px 0 #ffffff;
  3868 +}
  3869 +.breadcrumb > li > .divider {
  3870 + padding: 0 5px;
  3871 + color: #ccc;
  3872 +}
  3873 +.breadcrumb > .active {
  3874 + color: #999999;
  3875 +}
  3876 +.pagination {
  3877 + margin: 20px 0;
  3878 +}
  3879 +.pagination ul {
  3880 + display: inline-block;
  3881 + *display: inline;
  3882 + /* IE7 inline-block hack */
  3883 +
  3884 + *zoom: 1;
  3885 + margin-left: 0;
  3886 + margin-bottom: 0;
  3887 + -webkit-border-radius: 4px;
  3888 + -moz-border-radius: 4px;
  3889 + border-radius: 4px;
  3890 + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  3891 + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  3892 + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  3893 +}
  3894 +.pagination ul > li {
  3895 + display: inline;
  3896 +}
  3897 +.pagination ul > li > a,
  3898 +.pagination ul > li > span {
  3899 + float: left;
  3900 + padding: 4px 12px;
  3901 + line-height: 20px;
  3902 + text-decoration: none;
  3903 + background-color: #ffffff;
  3904 + border: 1px solid #dddddd;
  3905 + border-left-width: 0;
  3906 +}
  3907 +.pagination ul > li > a:hover,
  3908 +.pagination ul > .active > a,
  3909 +.pagination ul > .active > span {
  3910 + background-color: #f5f5f5;
  3911 +}
  3912 +.pagination ul > .active > a,
  3913 +.pagination ul > .active > span {
  3914 + color: #999999;
  3915 + cursor: default;
  3916 +}
  3917 +.pagination ul > .disabled > span,
  3918 +.pagination ul > .disabled > a,
  3919 +.pagination ul > .disabled > a:hover {
  3920 + color: #999999;
  3921 + background-color: transparent;
  3922 + cursor: default;
  3923 +}
  3924 +.pagination ul > li:first-child > a,
  3925 +.pagination ul > li:first-child > span {
  3926 + border-left-width: 1px;
  3927 + -webkit-border-top-left-radius: 4px;
  3928 + -moz-border-radius-topleft: 4px;
  3929 + border-top-left-radius: 4px;
  3930 + -webkit-border-bottom-left-radius: 4px;
  3931 + -moz-border-radius-bottomleft: 4px;
  3932 + border-bottom-left-radius: 4px;
  3933 +}
  3934 +.pagination ul > li:last-child > a,
  3935 +.pagination ul > li:last-child > span {
  3936 + -webkit-border-top-right-radius: 4px;
  3937 + -moz-border-radius-topright: 4px;
  3938 + border-top-right-radius: 4px;
  3939 + -webkit-border-bottom-right-radius: 4px;
  3940 + -moz-border-radius-bottomright: 4px;
  3941 + border-bottom-right-radius: 4px;
  3942 +}
  3943 +.pagination-centered {
  3944 + text-align: center;
  3945 +}
  3946 +.pagination-right {
  3947 + text-align: right;
  3948 +}
  3949 +.pagination-large ul > li > a,
  3950 +.pagination-large ul > li > span {
  3951 + padding: 11px 19px;
  3952 + font-size: 15px;
  3953 +}
  3954 +.pagination-large ul > li:first-child > a,
  3955 +.pagination-large ul > li:first-child > span {
  3956 + -webkit-border-top-left-radius: 6px;
  3957 + -moz-border-radius-topleft: 6px;
  3958 + border-top-left-radius: 6px;
  3959 + -webkit-border-bottom-left-radius: 6px;
  3960 + -moz-border-radius-bottomleft: 6px;
  3961 + border-bottom-left-radius: 6px;
  3962 +}
  3963 +.pagination-large ul > li:last-child > a,
  3964 +.pagination-large ul > li:last-child > span {
  3965 + -webkit-border-top-right-radius: 6px;
  3966 + -moz-border-radius-topright: 6px;
  3967 + border-top-right-radius: 6px;
  3968 + -webkit-border-bottom-right-radius: 6px;
  3969 + -moz-border-radius-bottomright: 6px;
  3970 + border-bottom-right-radius: 6px;
  3971 +}
  3972 +.pagination-mini ul > li:first-child > a,
  3973 +.pagination-small ul > li:first-child > a,
  3974 +.pagination-mini ul > li:first-child > span,
  3975 +.pagination-small ul > li:first-child > span {
  3976 + -webkit-border-top-left-radius: 3px;
  3977 + -moz-border-radius-topleft: 3px;
  3978 + border-top-left-radius: 3px;
  3979 + -webkit-border-bottom-left-radius: 3px;
  3980 + -moz-border-radius-bottomleft: 3px;
  3981 + border-bottom-left-radius: 3px;
  3982 +}
  3983 +.pagination-mini ul > li:last-child > a,
  3984 +.pagination-small ul > li:last-child > a,
  3985 +.pagination-mini ul > li:last-child > span,
  3986 +.pagination-small ul > li:last-child > span {
  3987 + -webkit-border-top-right-radius: 3px;
  3988 + -moz-border-radius-topright: 3px;
  3989 + border-top-right-radius: 3px;
  3990 + -webkit-border-bottom-right-radius: 3px;
  3991 + -moz-border-radius-bottomright: 3px;
  3992 + border-bottom-right-radius: 3px;
  3993 +}
  3994 +.pagination-small ul > li > a,
  3995 +.pagination-small ul > li > span {
  3996 + padding: 2px 10px;
  3997 + font-size: 10.2px;
  3998 +}
  3999 +.pagination-mini ul > li > a,
  4000 +.pagination-mini ul > li > span {
  4001 + padding: 0 6px;
  4002 + font-size: 9px;
  4003 +}
  4004 +.pager {
  4005 + margin: 20px 0;
  4006 + list-style: none;
  4007 + text-align: center;
  4008 + *zoom: 1;
  4009 +}
  4010 +.pager:before,
  4011 +.pager:after {
  4012 + display: table;
  4013 + content: "";
  4014 + line-height: 0;
  4015 +}
  4016 +.pager:after {
  4017 + clear: both;
  4018 +}
  4019 +.pager li {
  4020 + display: inline;
  4021 +}
  4022 +.pager li > a,
  4023 +.pager li > span {
  4024 + display: inline-block;
  4025 + padding: 5px 14px;
  4026 + background-color: #fff;
  4027 + border: 1px solid #ddd;
  4028 + -webkit-border-radius: 15px;
  4029 + -moz-border-radius: 15px;
  4030 + border-radius: 15px;
  4031 +}
  4032 +.pager li > a:hover {
  4033 + text-decoration: none;
  4034 + background-color: #f5f5f5;
  4035 +}
  4036 +.pager .next > a,
  4037 +.pager .next > span {
  4038 + float: right;
  4039 +}
  4040 +.pager .previous > a,
  4041 +.pager .previous > span {
  4042 + float: left;
  4043 +}
  4044 +.pager .disabled > a,
  4045 +.pager .disabled > a:hover,
  4046 +.pager .disabled > span {
  4047 + color: #999999;
  4048 + background-color: #fff;
  4049 + cursor: default;
  4050 +}
  4051 +.thumbnails {
  4052 + margin-left: -20px;
  4053 + list-style: none;
  4054 + *zoom: 1;
  4055 +}
  4056 +.thumbnails:before,
  4057 +.thumbnails:after {
  4058 + display: table;
  4059 + content: "";
  4060 + line-height: 0;
  4061 +}
  4062 +.thumbnails:after {
  4063 + clear: both;
  4064 +}
  4065 +.row-fluid .thumbnails {
  4066 + margin-left: 0;
  4067 +}
  4068 +.thumbnails > li {
  4069 + float: left;
  4070 + margin-bottom: 20px;
  4071 + margin-left: 20px;
  4072 +}
  4073 +.thumbnail {
  4074 + display: block;
  4075 + padding: 4px;
  4076 + line-height: 20px;
  4077 + border: 1px solid #ddd;
  4078 + -webkit-border-radius: 4px;
  4079 + -moz-border-radius: 4px;
  4080 + border-radius: 4px;
  4081 + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
  4082 + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
  4083 + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
  4084 + -webkit-transition: all 0.2s ease-in-out;
  4085 + -moz-transition: all 0.2s ease-in-out;
  4086 + -o-transition: all 0.2s ease-in-out;
  4087 + transition: all 0.2s ease-in-out;
  4088 +}
  4089 +a.thumbnail:hover {
  4090 + border-color: #0088cc;
  4091 + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
  4092 + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
  4093 + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
  4094 +}
  4095 +.thumbnail > img {
  4096 + display: block;
  4097 + max-width: 100%;
  4098 + margin-left: auto;
  4099 + margin-right: auto;
  4100 +}
  4101 +.thumbnail .caption {
  4102 + padding: 9px;
  4103 + color: #555555;
  4104 +}
  4105 +.alert {
  4106 + padding: 8px 35px 8px 14px;
  4107 + margin-bottom: 20px;
  4108 + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  4109 + background-color: #fcf8e3;
  4110 + border: 1px solid #fbeed5;
  4111 + -webkit-border-radius: 4px;
  4112 + -moz-border-radius: 4px;
  4113 + border-radius: 4px;
  4114 +}
  4115 +.alert,
  4116 +.alert h4 {
  4117 + color: #c09853;
  4118 +}
  4119 +.alert h4 {
  4120 + margin: 0;
  4121 +}
  4122 +.alert .close {
  4123 + position: relative;
  4124 + top: -2px;
  4125 + right: -21px;
  4126 + line-height: 20px;
  4127 +}
  4128 +.alert-success {
  4129 + background-color: #dff0d8;
  4130 + border-color: #d6e9c6;
  4131 + color: #468847;
  4132 +}
  4133 +.alert-success h4 {
  4134 + color: #468847;
  4135 +}
  4136 +.alert-danger,
  4137 +.alert-error {
  4138 + background-color: #f2dede;
  4139 + border-color: #eed3d7;
  4140 + color: #b94a48;
  4141 +}
  4142 +.alert-danger h4,
  4143 +.alert-error h4 {
  4144 + color: #b94a48;
  4145 +}
  4146 +.alert-info {
  4147 + background-color: #d9edf7;
  4148 + border-color: #bce8f1;
  4149 + color: #3a87ad;
  4150 +}
  4151 +.alert-info h4 {
  4152 + color: #3a87ad;
  4153 +}
  4154 +.alert-block {
  4155 + padding-top: 14px;
  4156 + padding-bottom: 14px;
  4157 +}
  4158 +.alert-block > p,
  4159 +.alert-block > ul {
  4160 + margin-bottom: 0;
  4161 +}
  4162 +.alert-block p + p {
  4163 + margin-top: 5px;
  4164 +}
  4165 +@-webkit-keyframes progress-bar-stripes {
  4166 + from {
  4167 + background-position: 40px 0;
  4168 + }
  4169 + to {
  4170 + background-position: 0 0;
  4171 + }
  4172 +}
  4173 +@-moz-keyframes progress-bar-stripes {
  4174 + from {
  4175 + background-position: 40px 0;
  4176 + }
  4177 + to {
  4178 + background-position: 0 0;
  4179 + }
  4180 +}
  4181 +@-ms-keyframes progress-bar-stripes {
  4182 + from {
  4183 + background-position: 40px 0;
  4184 + }
  4185 + to {
  4186 + background-position: 0 0;
  4187 + }
  4188 +}
  4189 +@-o-keyframes progress-bar-stripes {
  4190 + from {
  4191 + background-position: 0 0;
  4192 + }
  4193 + to {
  4194 + background-position: 40px 0;
  4195 + }
  4196 +}
  4197 +@keyframes progress-bar-stripes {
  4198 + from {
  4199 + background-position: 40px 0;
  4200 + }
  4201 + to {
  4202 + background-position: 0 0;
  4203 + }
  4204 +}
  4205 +.progress {
  4206 + overflow: hidden;
  4207 + height: 20px;
  4208 + margin-bottom: 20px;
  4209 + background-color: #f7f7f7;
  4210 + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
  4211 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
  4212 + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
  4213 + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
  4214 + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
  4215 + background-repeat: repeat-x;
  4216 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
  4217 + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  4218 + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  4219 + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
  4220 + -webkit-border-radius: 4px;
  4221 + -moz-border-radius: 4px;
  4222 + border-radius: 4px;
  4223 +}
  4224 +.progress .bar {
  4225 + width: 0%;
  4226 + height: 100%;
  4227 + color: #ffffff;
  4228 + float: left;
  4229 + font-size: 12px;
  4230 + text-align: center;
  4231 + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  4232 + background-color: #0e90d2;
  4233 + background-image: -moz-linear-gradient(top, #149bdf, #0480be);
  4234 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
  4235 + background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
  4236 + background-image: -o-linear-gradient(top, #149bdf, #0480be);
  4237 + background-image: linear-gradient(to bottom, #149bdf, #0480be);
  4238 + background-repeat: repeat-x;
  4239 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
  4240 + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  4241 + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  4242 + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
  4243 + -webkit-box-sizing: border-box;
  4244 + -moz-box-sizing: border-box;
  4245 + box-sizing: border-box;
  4246 + -webkit-transition: width 0.6s ease;
  4247 + -moz-transition: width 0.6s ease;
  4248 + -o-transition: width 0.6s ease;
  4249 + transition: width 0.6s ease;
  4250 +}
  4251 +.progress .bar + .bar {
  4252 + -webkit-box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);
  4253 + -moz-box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);
  4254 + box-shadow: inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);
  4255 +}
  4256 +.progress-striped .bar {
  4257 + background-color: #149bdf;
  4258 + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  4259 + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4260 + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4261 + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4262 + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4263 + -webkit-background-size: 40px 40px;
  4264 + -moz-background-size: 40px 40px;
  4265 + -o-background-size: 40px 40px;
  4266 + background-size: 40px 40px;
  4267 +}
  4268 +.progress.active .bar {
  4269 + -webkit-animation: progress-bar-stripes 2s linear infinite;
  4270 + -moz-animation: progress-bar-stripes 2s linear infinite;
  4271 + -ms-animation: progress-bar-stripes 2s linear infinite;
  4272 + -o-animation: progress-bar-stripes 2s linear infinite;
  4273 + animation: progress-bar-stripes 2s linear infinite;
  4274 +}
  4275 +.progress-danger .bar,
  4276 +.progress .bar-danger {
  4277 + background-color: #dd514c;
  4278 + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
  4279 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
  4280 + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
  4281 + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
  4282 + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
  4283 + background-repeat: repeat-x;
  4284 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);
  4285 +}
  4286 +.progress-danger.progress-striped .bar,
  4287 +.progress-striped .bar-danger {
  4288 + background-color: #ee5f5b;
  4289 + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  4290 + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4291 + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4292 + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4293 + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4294 +}
  4295 +.progress-success .bar,
  4296 +.progress .bar-success {
  4297 + background-color: #5eb95e;
  4298 + background-image: -moz-linear-gradient(top, #62c462, #57a957);
  4299 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
  4300 + background-image: -webkit-linear-gradient(top, #62c462, #57a957);
  4301 + background-image: -o-linear-gradient(top, #62c462, #57a957);
  4302 + background-image: linear-gradient(to bottom, #62c462, #57a957);
  4303 + background-repeat: repeat-x;
  4304 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);
  4305 +}
  4306 +.progress-success.progress-striped .bar,
  4307 +.progress-striped .bar-success {
  4308 + background-color: #62c462;
  4309 + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  4310 + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4311 + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4312 + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4313 + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4314 +}
  4315 +.progress-info .bar,
  4316 +.progress .bar-info {
  4317 + background-color: #4bb1cf;
  4318 + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
  4319 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
  4320 + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
  4321 + background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
  4322 + background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
  4323 + background-repeat: repeat-x;
  4324 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);
  4325 +}
  4326 +.progress-info.progress-striped .bar,
  4327 +.progress-striped .bar-info {
  4328 + background-color: #5bc0de;
  4329 + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  4330 + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4331 + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4332 + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4333 + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4334 +}
  4335 +.progress-warning .bar,
  4336 +.progress .bar-warning {
  4337 + background-color: #faa732;
  4338 + background-image: -moz-linear-gradient(top, #fbb450, #f89406);
  4339 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
  4340 + background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
  4341 + background-image: -o-linear-gradient(top, #fbb450, #f89406);
  4342 + background-image: linear-gradient(to bottom, #fbb450, #f89406);
  4343 + background-repeat: repeat-x;
  4344 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
  4345 +}
  4346 +.progress-warning.progress-striped .bar,
  4347 +.progress-striped .bar-warning {
  4348 + background-color: #fbb450;
  4349 + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
  4350 + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4351 + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4352 + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4353 + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
  4354 +}
  4355 +.hero-unit {
  4356 + padding: 60px;
  4357 + margin-bottom: 30px;
  4358 + font-size: 18px;
  4359 + font-weight: 200;
  4360 + line-height: 30px;
  4361 + color: inherit;
  4362 + background-color: #eeeeee;
  4363 + -webkit-border-radius: 6px;
  4364 + -moz-border-radius: 6px;
  4365 + border-radius: 6px;
  4366 +}
  4367 +.hero-unit h1 {
  4368 + margin-bottom: 0;
  4369 + font-size: 60px;
  4370 + line-height: 1;
  4371 + color: inherit;
  4372 + letter-spacing: -1px;
  4373 +}
  4374 +.hero-unit li {
  4375 + line-height: 30px;
  4376 +}
  4377 +.media,
  4378 +.media-body {
  4379 + overflow: hidden;
  4380 + *overflow: visible;
  4381 + zoom: 1;
  4382 +}
  4383 +.media,
  4384 +.media .media {
  4385 + margin-top: 15px;
  4386 +}
  4387 +.media:first-child {
  4388 + margin-top: 0;
  4389 +}
  4390 +.media-object {
  4391 + display: block;
  4392 +}
  4393 +.media-heading {
  4394 + margin: 0 0 5px;
  4395 +}
  4396 +.media .pull-left {
  4397 + margin-right: 10px;
  4398 +}
  4399 +.media .pull-right {
  4400 + margin-left: 10px;
  4401 +}
  4402 +.media-list {
  4403 + margin-left: 0;
  4404 + list-style: none;
  4405 +}
  4406 +.tooltip {
  4407 + position: absolute;
  4408 + z-index: 1030;
  4409 + display: block;
  4410 + visibility: visible;
  4411 + padding: 5px;
  4412 + font-size: 11px;
  4413 + opacity: 0;
  4414 + filter: alpha(opacity=0);
  4415 +}
  4416 +.tooltip.in {
  4417 + opacity: 0.8;
  4418 + filter: alpha(opacity=80);
  4419 +}
  4420 +.tooltip.top {
  4421 + margin-top: -3px;
  4422 +}
  4423 +.tooltip.right {
  4424 + margin-left: 3px;
  4425 +}
  4426 +.tooltip.bottom {
  4427 + margin-top: 3px;
  4428 +}
  4429 +.tooltip.left {
  4430 + margin-left: -3px;
  4431 +}
  4432 +.tooltip-inner {
  4433 + max-width: 200px;
  4434 + padding: 3px 8px;
  4435 + color: #ffffff;
  4436 + text-align: center;
  4437 + text-decoration: none;
  4438 + background-color: #000000;
  4439 + -webkit-border-radius: 4px;
  4440 + -moz-border-radius: 4px;
  4441 + border-radius: 4px;
  4442 +}
  4443 +.tooltip-arrow {
  4444 + position: absolute;
  4445 + width: 0;
  4446 + height: 0;
  4447 + border-color: transparent;
  4448 + border-style: solid;
  4449 +}
  4450 +.tooltip.top .tooltip-arrow {
  4451 + bottom: 0;
  4452 + left: 50%;
  4453 + margin-left: -5px;
  4454 + border-width: 5px 5px 0;
  4455 + border-top-color: #000000;
  4456 +}
  4457 +.tooltip.right .tooltip-arrow {
  4458 + top: 50%;
  4459 + left: 0;
  4460 + margin-top: -5px;
  4461 + border-width: 5px 5px 5px 0;
  4462 + border-right-color: #000000;
  4463 +}
  4464 +.tooltip.left .tooltip-arrow {
  4465 + top: 50%;
  4466 + right: 0;
  4467 + margin-top: -5px;
  4468 + border-width: 5px 0 5px 5px;
  4469 + border-left-color: #000000;
  4470 +}
  4471 +.tooltip.bottom .tooltip-arrow {
  4472 + top: 0;
  4473 + left: 50%;
  4474 + margin-left: -5px;
  4475 + border-width: 0 5px 5px;
  4476 + border-bottom-color: #000000;
  4477 +}
  4478 +.popover {
  4479 + position: absolute;
  4480 + top: 0;
  4481 + left: 0;
  4482 + z-index: 1010;
  4483 + display: none;
  4484 + width: 236px;
  4485 + padding: 1px;
  4486 + text-align: left;
  4487 + background-color: #ffffff;
  4488 + -webkit-background-clip: padding-box;
  4489 + -moz-background-clip: padding;
  4490 + background-clip: padding-box;
  4491 + border: 1px solid #ccc;
  4492 + border: 1px solid rgba(0, 0, 0, 0.2);
  4493 + -webkit-border-radius: 6px;
  4494 + -moz-border-radius: 6px;
  4495 + border-radius: 6px;
  4496 + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  4497 + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  4498 + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  4499 + white-space: normal;
  4500 +}
  4501 +.popover.top {
  4502 + margin-top: -10px;
  4503 +}
  4504 +.popover.right {
  4505 + margin-left: 10px;
  4506 +}
  4507 +.popover.bottom {
  4508 + margin-top: 10px;
  4509 +}
  4510 +.popover.left {
  4511 + margin-left: -10px;
  4512 +}
  4513 +.popover-title {
  4514 + margin: 0;
  4515 + padding: 8px 14px;
  4516 + font-size: 14px;
  4517 + font-weight: normal;
  4518 + line-height: 18px;
  4519 + background-color: #f7f7f7;
  4520 + border-bottom: 1px solid #ebebeb;
  4521 + -webkit-border-radius: 5px 5px 0 0;
  4522 + -moz-border-radius: 5px 5px 0 0;
  4523 + border-radius: 5px 5px 0 0;
  4524 +}
  4525 +.popover-content {
  4526 + padding: 9px 14px;
  4527 +}
  4528 +.popover .arrow,
  4529 +.popover .arrow:after {
  4530 + position: absolute;
  4531 + display: block;
  4532 + width: 0;
  4533 + height: 0;
  4534 + border-color: transparent;
  4535 + border-style: solid;
  4536 +}
  4537 +.popover .arrow {
  4538 + border-width: 11px;
  4539 +}
  4540 +.popover .arrow:after {
  4541 + border-width: 10px;
  4542 + content: "";
  4543 +}
  4544 +.popover.top .arrow {
  4545 + left: 50%;
  4546 + margin-left: -11px;
  4547 + border-bottom-width: 0;
  4548 + border-top-color: #999;
  4549 + border-top-color: rgba(0, 0, 0, 0.25);
  4550 + bottom: -11px;
  4551 +}
  4552 +.popover.top .arrow:after {
  4553 + bottom: 1px;
  4554 + margin-left: -10px;
  4555 + border-bottom-width: 0;
  4556 + border-top-color: #ffffff;
  4557 +}
  4558 +.popover.right .arrow {
  4559 + top: 50%;
  4560 + left: -11px;
  4561 + margin-top: -11px;
  4562 + border-left-width: 0;
  4563 + border-right-color: #999;
  4564 + border-right-color: rgba(0, 0, 0, 0.25);
  4565 +}
  4566 +.popover.right .arrow:after {
  4567 + left: 1px;
  4568 + bottom: -10px;
  4569 + border-left-width: 0;
  4570 + border-right-color: #ffffff;
  4571 +}
  4572 +.popover.bottom .arrow {
  4573 + left: 50%;
  4574 + margin-left: -11px;
  4575 + border-top-width: 0;
  4576 + border-bottom-color: #999;
  4577 + border-bottom-color: rgba(0, 0, 0, 0.25);
  4578 + top: -11px;
  4579 +}
  4580 +.popover.bottom .arrow:after {
  4581 + top: 1px;
  4582 + margin-left: -10px;
  4583 + border-top-width: 0;
  4584 + border-bottom-color: #ffffff;
  4585 +}
  4586 +.popover.left .arrow {
  4587 + top: 50%;
  4588 + right: -11px;
  4589 + margin-top: -11px;
  4590 + border-right-width: 0;
  4591 + border-left-color: #999;
  4592 + border-left-color: rgba(0, 0, 0, 0.25);
  4593 +}
  4594 +.popover.left .arrow:after {
  4595 + right: 1px;
  4596 + border-right-width: 0;
  4597 + border-left-color: #ffffff;
  4598 + bottom: -10px;
  4599 +}
  4600 +.modal-backdrop {
  4601 + position: fixed;
  4602 + top: 0;
  4603 + right: 0;
  4604 + bottom: 0;
  4605 + left: 0;
  4606 + z-index: 1040;
  4607 + background-color: #000000;
  4608 +}
  4609 +.modal-backdrop.fade {
  4610 + opacity: 0;
  4611 +}
  4612 +.modal-backdrop,
  4613 +.modal-backdrop.fade.in {
  4614 + opacity: 0.8;
  4615 + filter: alpha(opacity=80);
  4616 +}
  4617 +.modal {
  4618 + position: fixed;
  4619 + top: 10%;
  4620 + left: 50%;
  4621 + z-index: 1050;
  4622 + width: 560px;
  4623 + margin-left: -280px;
  4624 + background-color: #ffffff;
  4625 + border: 1px solid #999;
  4626 + border: 1px solid rgba(0, 0, 0, 0.3);
  4627 + *border: 1px solid #999;
  4628 + /* IE6-7 */
  4629 +
  4630 + -webkit-border-radius: 6px;
  4631 + -moz-border-radius: 6px;
  4632 + border-radius: 6px;
  4633 + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
  4634 + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
  4635 + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
  4636 + -webkit-background-clip: padding-box;
  4637 + -moz-background-clip: padding-box;
  4638 + background-clip: padding-box;
  4639 + outline: none;
  4640 +}
  4641 +.modal.fade {
  4642 + -webkit-transition: opacity .3s linear, top .3s ease-out;
  4643 + -moz-transition: opacity .3s linear, top .3s ease-out;
  4644 + -o-transition: opacity .3s linear, top .3s ease-out;
  4645 + transition: opacity .3s linear, top .3s ease-out;
  4646 + top: -25%;
  4647 +}
  4648 +.modal.fade.in {
  4649 + top: 10%;
  4650 +}
  4651 +.modal-header {
  4652 + padding: 9px 15px;
  4653 + border-bottom: 1px solid #eee;
  4654 +}
  4655 +.modal-header .close {
  4656 + margin-top: 2px;
  4657 +}
  4658 +.modal-header h3 {
  4659 + margin: 0;
  4660 + line-height: 30px;
  4661 +}
  4662 +.modal-body {
  4663 + position: relative;
  4664 + overflow-y: auto;
  4665 + max-height: 400px;
  4666 + padding: 15px;
  4667 +}
  4668 +.modal-form {
  4669 + margin-bottom: 0;
  4670 +}
  4671 +.modal-footer {
  4672 + padding: 14px 15px 15px;
  4673 + margin-bottom: 0;
  4674 + text-align: right;
  4675 + background-color: #f5f5f5;
  4676 + border-top: 1px solid #ddd;
  4677 + -webkit-border-radius: 0 0 6px 6px;
  4678 + -moz-border-radius: 0 0 6px 6px;
  4679 + border-radius: 0 0 6px 6px;
  4680 + -webkit-box-shadow: inset 0 1px 0 #ffffff;
  4681 + -moz-box-shadow: inset 0 1px 0 #ffffff;
  4682 + box-shadow: inset 0 1px 0 #ffffff;
  4683 + *zoom: 1;
  4684 +}
  4685 +.modal-footer:before,
  4686 +.modal-footer:after {
  4687 + display: table;
  4688 + content: "";
  4689 + line-height: 0;
  4690 +}
  4691 +.modal-footer:after {
  4692 + clear: both;
  4693 +}
  4694 +.modal-footer .btn + .btn {
  4695 + margin-left: 5px;
  4696 + margin-bottom: 0;
  4697 +}
  4698 +.modal-footer .btn-group .btn + .btn {
  4699 + margin-left: -1px;
  4700 +}
  4701 +.modal-footer .btn-block + .btn-block {
  4702 + margin-left: 0;
  4703 +}
  4704 +.dropup,
  4705 +.dropdown {
  4706 + position: relative;
  4707 +}
  4708 +.dropdown-toggle {
  4709 + *margin-bottom: -3px;
  4710 +}
  4711 +.dropdown-toggle:active,
  4712 +.open .dropdown-toggle {
  4713 + outline: 0;
  4714 +}
  4715 +.caret {
  4716 + display: inline-block;
  4717 + width: 0;
  4718 + height: 0;
  4719 + vertical-align: top;
  4720 + border-top: 4px solid #000000;
  4721 + border-right: 4px solid transparent;
  4722 + border-left: 4px solid transparent;
  4723 + content: "";
  4724 +}
  4725 +.dropdown .caret {
  4726 + margin-top: 8px;
  4727 + margin-left: 2px;
  4728 +}
  4729 +.dropdown-menu {
  4730 + position: absolute;
  4731 + top: 100%;
  4732 + left: 0;
  4733 + z-index: 1000;
  4734 + display: none;
  4735 + float: left;
  4736 + min-width: 160px;
  4737 + padding: 5px 0;
  4738 + margin: 2px 0 0;
  4739 + list-style: none;
  4740 + background-color: #ffffff;
  4741 + border: 1px solid #ccc;
  4742 + border: 1px solid rgba(0, 0, 0, 0.2);
  4743 + *border-right-width: 2px;
  4744 + *border-bottom-width: 2px;
  4745 + -webkit-border-radius: 6px;
  4746 + -moz-border-radius: 6px;
  4747 + border-radius: 6px;
  4748 + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  4749 + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  4750 + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
  4751 + -webkit-background-clip: padding-box;
  4752 + -moz-background-clip: padding;
  4753 + background-clip: padding-box;
  4754 +}
  4755 +.dropdown-menu.pull-right {
  4756 + right: 0;
  4757 + left: auto;
  4758 +}
  4759 +.dropdown-menu .divider {
  4760 + *width: 100%;
  4761 + height: 1px;
  4762 + margin: 9px 1px;
  4763 + *margin: -5px 0 5px;
  4764 + overflow: hidden;
  4765 + background-color: #e5e5e5;
  4766 + border-bottom: 1px solid #ffffff;
  4767 +}
  4768 +.dropdown-menu li > a {
  4769 + display: block;
  4770 + padding: 3px 20px;
  4771 + clear: both;
  4772 + font-weight: normal;
  4773 + line-height: 20px;
  4774 + color: #333333;
  4775 + white-space: nowrap;
  4776 +}
  4777 +.dropdown-menu li > a:hover,
  4778 +.dropdown-menu li > a:focus,
  4779 +.dropdown-submenu:hover > a {
  4780 + text-decoration: none;
  4781 + color: #ffffff;
  4782 + background-color: #0081c2;
  4783 + background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
  4784 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
  4785 + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
  4786 + background-image: -o-linear-gradient(top, #0088cc, #0077b3);
  4787 + background-image: linear-gradient(to bottom, #0088cc, #0077b3);
  4788 + background-repeat: repeat-x;
  4789 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
  4790 +}
  4791 +.dropdown-menu .active > a,
  4792 +.dropdown-menu .active > a:hover {
  4793 + color: #ffffff;
  4794 + text-decoration: none;
  4795 + outline: 0;
  4796 + background-color: #0081c2;
  4797 + background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
  4798 + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
  4799 + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
  4800 + background-image: -o-linear-gradient(top, #0088cc, #0077b3);
  4801 + background-image: linear-gradient(to bottom, #0088cc, #0077b3);
  4802 + background-repeat: repeat-x;
  4803 + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
  4804 +}
  4805 +.dropdown-menu .disabled > a,
  4806 +.dropdown-menu .disabled > a:hover {
  4807 + color: #999999;
  4808 +}
  4809 +.dropdown-menu .disabled > a:hover {
  4810 + text-decoration: none;
  4811 + background-color: transparent;
  4812 + background-image: none;
  4813 + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
  4814 + cursor: default;
  4815 +}
  4816 +.open {
  4817 + *z-index: 1000;
  4818 +}
  4819 +.open > .dropdown-menu {
  4820 + display: block;
  4821 +}
  4822 +.pull-right > .dropdown-menu {
  4823 + right: 0;
  4824 + left: auto;
  4825 +}
  4826 +.dropup .caret,
  4827 +.navbar-fixed-bottom .dropdown .caret {
  4828 + border-top: 0;
  4829 + border-bottom: 4px solid #000000;
  4830 + content: "";
  4831 +}
  4832 +.dropup .dropdown-menu,
  4833 +.navbar-fixed-bottom .dropdown .dropdown-menu {
  4834 + top: auto;
  4835 + bottom: 100%;
  4836 + margin-bottom: 1px;
  4837 +}
  4838 +.dropdown-submenu {
  4839 + position: relative;
  4840 +}
  4841 +.dropdown-submenu > .dropdown-menu {
  4842 + top: 0;
  4843 + left: 100%;
  4844 + margin-top: -6px;
  4845 + margin-left: -1px;
  4846 + -webkit-border-radius: 0 6px 6px 6px;
  4847 + -moz-border-radius: 0 6px 6px 6px;
  4848 + border-radius: 0 6px 6px 6px;
  4849 +}
  4850 +.dropdown-submenu:hover > .dropdown-menu {
  4851 + display: block;
  4852 +}
  4853 +.dropup .dropdown-submenu > .dropdown-menu {
  4854 + top: auto;
  4855 + bottom: 0;
  4856 + margin-top: 0;
  4857 + margin-bottom: -2px;
  4858 + -webkit-border-radius: 5px 5px 5px 0;
  4859 + -moz-border-radius: 5px 5px 5px 0;
  4860 + border-radius: 5px 5px 5px 0;
  4861 +}
  4862 +.dropdown-submenu > a:after {
  4863 + display: block;
  4864 + content: " ";
  4865 + float: right;
  4866 + width: 0;
  4867 + height: 0;
  4868 + border-color: transparent;
  4869 + border-style: solid;
  4870 + border-width: 5px 0 5px 5px;
  4871 + border-left-color: #cccccc;
  4872 + margin-top: 5px;
  4873 + margin-right: -10px;
  4874 +}
  4875 +.dropdown-submenu:hover > a:after {
  4876 + border-left-color: #ffffff;
  4877 +}
  4878 +.dropdown-submenu.pull-left {
  4879 + float: none;
  4880 +}
  4881 +.dropdown-submenu.pull-left > .dropdown-menu {
  4882 + left: -100%;
  4883 + margin-left: 10px;
  4884 + -webkit-border-radius: 6px 0 6px 6px;
  4885 + -moz-border-radius: 6px 0 6px 6px;
  4886 + border-radius: 6px 0 6px 6px;
  4887 +}
  4888 +.dropdown .dropdown-menu .nav-header {
  4889 + padding-left: 20px;
  4890 + padding-right: 20px;
  4891 +}
  4892 +.typeahead {
  4893 + z-index: 1051;
  4894 + margin-top: 2px;
  4895 + -webkit-border-radius: 4px;
  4896 + -moz-border-radius: 4px;
  4897 + border-radius: 4px;
  4898 +}
  4899 +.accordion {
  4900 + margin-bottom: 20px;
  4901 +}
  4902 +.accordion-group {
  4903 + margin-bottom: 2px;
  4904 + border: 1px solid #e5e5e5;
  4905 + -webkit-border-radius: 4px;
  4906 + -moz-border-radius: 4px;
  4907 + border-radius: 4px;
  4908 +}
  4909 +.accordion-heading {
  4910 + border-bottom: 0;
  4911 +}
  4912 +.accordion-heading .accordion-toggle {
  4913 + display: block;
  4914 + padding: 8px 15px;
  4915 +}
  4916 +.accordion-toggle {
  4917 + cursor: pointer;
  4918 +}
  4919 +.accordion-inner {
  4920 + padding: 9px 15px;
  4921 + border-top: 1px solid #e5e5e5;
  4922 +}
  4923 +.carousel {
  4924 + position: relative;
  4925 + margin-bottom: 20px;
  4926 + line-height: 1;
  4927 +}
  4928 +.carousel-inner {
  4929 + overflow: hidden;
  4930 + width: 100%;
  4931 + position: relative;
  4932 +}
  4933 +.carousel-inner > .item {
  4934 + display: none;
  4935 + position: relative;
  4936 + -webkit-transition: 0.6s ease-in-out left;
  4937 + -moz-transition: 0.6s ease-in-out left;
  4938 + -o-transition: 0.6s ease-in-out left;
  4939 + transition: 0.6s ease-in-out left;
  4940 +}
  4941 +.carousel-inner > .item > img {
  4942 + display: block;
  4943 + line-height: 1;
  4944 +}
  4945 +.carousel-inner > .active,
  4946 +.carousel-inner > .next,
  4947 +.carousel-inner > .prev {
  4948 + display: block;
  4949 +}
  4950 +.carousel-inner > .active {
  4951 + left: 0;
  4952 +}
  4953 +.carousel-inner > .next,
  4954 +.carousel-inner > .prev {
  4955 + position: absolute;
  4956 + top: 0;
  4957 + width: 100%;
  4958 +}
  4959 +.carousel-inner > .next {
  4960 + left: 100%;
  4961 +}
  4962 +.carousel-inner > .prev {
  4963 + left: -100%;
  4964 +}
  4965 +.carousel-inner > .next.left,
  4966 +.carousel-inner > .prev.right {
  4967 + left: 0;
  4968 +}
  4969 +.carousel-inner > .active.left {
  4970 + left: -100%;
  4971 +}
  4972 +.carousel-inner > .active.right {
  4973 + left: 100%;
  4974 +}
  4975 +.carousel-control {
  4976 + position: absolute;
  4977 + top: 40%;
  4978 + left: 15px;
  4979 + width: 40px;
  4980 + height: 40px;
  4981 + margin-top: -20px;
  4982 + font-size: 60px;
  4983 + font-weight: 100;
  4984 + line-height: 30px;
  4985 + color: #ffffff;
  4986 + text-align: center;
  4987 + background: #222222;
  4988 + border: 3px solid #ffffff;
  4989 + -webkit-border-radius: 23px;
  4990 + -moz-border-radius: 23px;
  4991 + border-radius: 23px;
  4992 + opacity: 0.5;
  4993 + filter: alpha(opacity=50);
  4994 +}
  4995 +.carousel-control.right {
  4996 + left: auto;
  4997 + right: 15px;
  4998 +}
  4999 +.carousel-control:hover {
  5000 + color: #ffffff;
  5001 + text-decoration: none;
  5002 + opacity: 0.9;
  5003 + filter: alpha(opacity=90);
  5004 +}
  5005 +.carousel-caption {
  5006 + position: absolute;
  5007 + left: 0;
  5008 + right: 0;
  5009 + bottom: 0;
  5010 + padding: 15px;
  5011 + background: #333333;
  5012 + background: rgba(0, 0, 0, 0.75);
  5013 +}
  5014 +.carousel-caption h4,
  5015 +.carousel-caption p {
  5016 + color: #ffffff;
  5017 + line-height: 20px;
  5018 +}
  5019 +.carousel-caption h4 {
  5020 + margin: 0 0 5px;
  5021 +}
  5022 +.carousel-caption p {
  5023 + margin-bottom: 0;
  5024 +}
  5025 +.well {
  5026 + min-height: 20px;
  5027 + padding: 19px;
  5028 + margin-bottom: 20px;
  5029 + background-color: #f5f5f5;
  5030 + border: 1px solid #e3e3e3;
  5031 + -webkit-border-radius: 4px;
  5032 + -moz-border-radius: 4px;
  5033 + border-radius: 4px;
  5034 + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  5035 + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  5036 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  5037 +}
  5038 +.well blockquote {
  5039 + border-color: #ddd;
  5040 + border-color: rgba(0, 0, 0, 0.15);
  5041 +}
  5042 +.well-large {
  5043 + padding: 24px;
  5044 + -webkit-border-radius: 6px;
  5045 + -moz-border-radius: 6px;
  5046 + border-radius: 6px;
  5047 +}
  5048 +.well-small {
  5049 + padding: 9px;
  5050 + -webkit-border-radius: 3px;
  5051 + -moz-border-radius: 3px;
  5052 + border-radius: 3px;
  5053 +}
  5054 +.close {
  5055 + float: right;
  5056 + font-size: 20px;
  5057 + font-weight: bold;
  5058 + line-height: 20px;
  5059 + color: #000000;
  5060 + text-shadow: 0 1px 0 #ffffff;
  5061 + opacity: 0.2;
  5062 + filter: alpha(opacity=20);
  5063 +}
  5064 +.close:hover {
  5065 + color: #000000;
  5066 + text-decoration: none;
  5067 + cursor: pointer;
  5068 + opacity: 0.4;
  5069 + filter: alpha(opacity=40);
  5070 +}
  5071 +button.close {
  5072 + padding: 0;
  5073 + cursor: pointer;
  5074 + background: transparent;
  5075 + border: 0;
  5076 + -webkit-appearance: none;
  5077 +}
  5078 +.pull-right {
  5079 + float: right;
  5080 +}
  5081 +.pull-left {
  5082 + float: left;
  5083 +}
  5084 +.hide {
  5085 + display: none;
  5086 +}
  5087 +.show {
  5088 + display: block;
  5089 +}
  5090 +.invisible {
  5091 + visibility: hidden;
  5092 +}
  5093 +.affix {
  5094 + position: fixed;
  5095 +}
  5096 +.fade {
  5097 + opacity: 0;
  5098 + -webkit-transition: opacity 0.15s linear;
  5099 + -moz-transition: opacity 0.15s linear;
  5100 + -o-transition: opacity 0.15s linear;
  5101 + transition: opacity 0.15s linear;
  5102 +}
  5103 +.fade.in {
  5104 + opacity: 1;
  5105 +}
  5106 +.collapse {
  5107 + position: relative;
  5108 + height: 0;
  5109 + overflow: hidden;
  5110 + -webkit-transition: height 0.35s ease;
  5111 + -moz-transition: height 0.35s ease;
  5112 + -o-transition: height 0.35s ease;
  5113 + transition: height 0.35s ease;
  5114 +}
  5115 +.collapse.in {
  5116 + height: auto;
  5117 +}
... ...
forum/static/css/bootstrap/bootstrap.min.css
... ... @@ -0,0 +1,862 @@
  1 +/*!
  2 + * Bootstrap v2.2.2
  3 + *
  4 + * Copyright 2012 Twitter, Inc
  5 + * Licensed under the Apache License v2.0
  6 + * http://www.apache.org/licenses/LICENSE-2.0
  7 + *
  8 + * Designed and built with all the love in the world @twitter by @mdo and @fat.
  9 + */
  10 +.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
  11 +.clearfix:after{clear:both;}
  12 +.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
  13 +.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
  14 +article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
  15 +audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
  16 +audio:not([controls]){display:none;}
  17 +html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
  18 +a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
  19 +a:hover,a:active{outline:0;}
  20 +sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
  21 +sup{top:-0.5em;}
  22 +sub{bottom:-0.25em;}
  23 +img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;}
  24 +#map_canvas img,.google-maps img{max-width:none;}
  25 +button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
  26 +button,input{*overflow:visible;line-height:normal;}
  27 +button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;}
  28 +button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}
  29 +label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer;}
  30 +input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;}
  31 +input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
  32 +textarea{overflow:auto;vertical-align:top;}
  33 +@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important;} a,a:visited{text-decoration:underline;} a[href]:after{content:" (" attr(href) ")";} abbr[title]:after{content:" (" attr(title) ")";} .ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:"";} pre,blockquote{border:1px solid #999;page-break-inside:avoid;} thead{display:table-header-group;} tr,img{page-break-inside:avoid;} img{max-width:100% !important;} @page {margin:0.5cm;}p,h2,h3{orphans:3;widows:3;} h2,h3{page-break-after:avoid;}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;line-height:20px;color:#333333;background-color:#ffffff;}
  34 +a{color:#0088cc;text-decoration:none;}
  35 +a:hover{color:#005580;text-decoration:underline;}
  36 +.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
  37 +.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);}
  38 +.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px;}
  39 +.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;}
  40 +.row:after{clear:both;}
  41 +[class*="span"]{float:left;min-height:1px;margin-left:20px;}
  42 +.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
  43 +.span12{width:940px;}
  44 +.span11{width:860px;}
  45 +.span10{width:780px;}
  46 +.span9{width:700px;}
  47 +.span8{width:620px;}
  48 +.span7{width:540px;}
  49 +.span6{width:460px;}
  50 +.span5{width:380px;}
  51 +.span4{width:300px;}
  52 +.span3{width:220px;}
  53 +.span2{width:140px;}
  54 +.span1{width:60px;}
  55 +.offset12{margin-left:980px;}
  56 +.offset11{margin-left:900px;}
  57 +.offset10{margin-left:820px;}
  58 +.offset9{margin-left:740px;}
  59 +.offset8{margin-left:660px;}
  60 +.offset7{margin-left:580px;}
  61 +.offset6{margin-left:500px;}
  62 +.offset5{margin-left:420px;}
  63 +.offset4{margin-left:340px;}
  64 +.offset3{margin-left:260px;}
  65 +.offset2{margin-left:180px;}
  66 +.offset1{margin-left:100px;}
  67 +.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
  68 +.row-fluid:after{clear:both;}
  69 +.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;}
  70 +.row-fluid [class*="span"]:first-child{margin-left:0;}
  71 +.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%;}
  72 +.row-fluid .span12{width:100%;*width:99.94680851063829%;}
  73 +.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%;}
  74 +.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%;}
  75 +.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%;}
  76 +.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%;}
  77 +.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%;}
  78 +.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%;}
  79 +.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%;}
  80 +.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%;}
  81 +.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%;}
  82 +.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%;}
  83 +.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%;}
  84 +.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%;}
  85 +.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%;}
  86 +.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%;}
  87 +.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%;}
  88 +.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%;}
  89 +.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%;}
  90 +.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%;}
  91 +.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%;}
  92 +.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%;}
  93 +.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%;}
  94 +.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%;}
  95 +.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%;}
  96 +.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%;}
  97 +.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%;}
  98 +.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%;}
  99 +.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%;}
  100 +.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%;}
  101 +.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%;}
  102 +.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%;}
  103 +.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%;}
  104 +.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%;}
  105 +.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%;}
  106 +.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%;}
  107 +.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%;}
  108 +[class*="span"].hide,.row-fluid [class*="span"].hide{display:none;}
  109 +[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right;}
  110 +.container{margin-right:auto;margin-left:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";line-height:0;}
  111 +.container:after{clear:both;}
  112 +.container-fluid{padding-right:20px;padding-left:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0;}
  113 +.container-fluid:after{clear:both;}
  114 +p{margin:0 0 10px;}
  115 +.lead{margin-bottom:20px;font-size:18px;font-weight:200;line-height:30px;}
  116 +small{font-size:85%;}
  117 +strong{font-weight:bold;}
  118 +em{font-style:italic;}
  119 +cite{font-style:normal;}
  120 +.muted{color:#999999;}
  121 +a.muted:hover{color:#808080;}
  122 +.text-warning{color:#c09853;}
  123 +a.text-warning:hover{color:#a47e3c;}
  124 +.text-error{color:#b94a48;}
  125 +a.text-error:hover{color:#953b39;}
  126 +.text-info{color:#3a87ad;}
  127 +a.text-info:hover{color:#2d6987;}
  128 +.text-success{color:#468847;}
  129 +a.text-success:hover{color:#356635;}
  130 +h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999999;}
  131 +h1,h2,h3{line-height:40px;}
  132 +h1{font-size:33px;}
  133 +h2{font-size:27px;}
  134 +h3{font-size:21px;}
  135 +h4{font-size:15px;}
  136 +h5{font-size:12px;}
  137 +h6{font-size:10.2px;}
  138 +h1 small{font-size:21px;}
  139 +h2 small{font-size:15px;}
  140 +h3 small{font-size:12px;}
  141 +h4 small{font-size:12px;}
  142 +.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eeeeee;}
  143 +ul,ol{padding:0;margin:0 0 10px 25px;}
  144 +ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
  145 +li{line-height:20px;}
  146 +ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}
  147 +ul.inline,ol.inline{margin-left:0;list-style:none;}ul.inline >li,ol.inline >li{display:inline-block;padding-left:5px;padding-right:5px;}
  148 +dl{margin-bottom:20px;}
  149 +dt,dd{line-height:20px;}
  150 +dt{font-weight:bold;}
  151 +dd{margin-left:10px;}
  152 +.dl-horizontal{*zoom:1;}.dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0;}
  153 +.dl-horizontal:after{clear:both;}
  154 +.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  155 +.dl-horizontal dd{margin-left:180px;}
  156 +hr{margin:20px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;}
  157 +abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999;}
  158 +abbr.initialism{font-size:90%;text-transform:uppercase;}
  159 +blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:25px;}
  160 +blockquote small{display:block;line-height:20px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
  161 +blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
  162 +blockquote.pull-right small:before{content:'';}
  163 +blockquote.pull-right small:after{content:'\00A0 \2014';}
  164 +q:before,q:after,blockquote:before,blockquote:after{content:"";}
  165 +address{display:block;margin-bottom:20px;font-style:normal;line-height:20px;}
  166 +code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:10px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
  167 +code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;white-space:nowrap;}
  168 +pre{display:block;padding:9.5px;margin:0 0 10px;font-size:11px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}pre.prettyprint{margin-bottom:20px;}
  169 +pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0;}
  170 +.pre-scrollable{max-height:340px;overflow-y:scroll;}
  171 +.label,.badge{display:inline-block;padding:2px 4px;font-size:10.152px;font-weight:bold;line-height:14px;color:#ffffff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#999999;}
  172 +.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
  173 +.badge{padding-left:9px;padding-right:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;}
  174 +.label:empty,.badge:empty{display:none;}
  175 +a.label:hover,a.badge:hover{color:#ffffff;text-decoration:none;cursor:pointer;}
  176 +.label-important,.badge-important{background-color:#b94a48;}
  177 +.label-important[href],.badge-important[href]{background-color:#953b39;}
  178 +.label-warning,.badge-warning{background-color:#f89406;}
  179 +.label-warning[href],.badge-warning[href]{background-color:#c67605;}
  180 +.label-success,.badge-success{background-color:#468847;}
  181 +.label-success[href],.badge-success[href]{background-color:#356635;}
  182 +.label-info,.badge-info{background-color:#3a87ad;}
  183 +.label-info[href],.badge-info[href]{background-color:#2d6987;}
  184 +.label-inverse,.badge-inverse{background-color:#333333;}
  185 +.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a;}
  186 +.btn .label,.btn .badge{position:relative;top:-1px;}
  187 +.btn-mini .label,.btn-mini .badge{top:0;}
  188 +table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0;}
  189 +.table{width:100%;margin-bottom:20px;}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;}
  190 +.table th{font-weight:bold;}
  191 +.table thead th{vertical-align:bottom;}
  192 +.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;}
  193 +.table tbody+tbody{border-top:2px solid #dddddd;}
  194 +.table .table{background-color:#ffffff;}
  195 +.table-condensed th,.table-condensed td{padding:4px 5px;}
  196 +.table-bordered{border:1px solid #dddddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;}
  197 +.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
  198 +.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
  199 +.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;}
  200 +.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child{-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
  201 +.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
  202 +.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;}
  203 +.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;-moz-border-radius-bottomright:0;border-bottom-right-radius:0;}
  204 +.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
  205 +.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;}
  206 +.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9;}
  207 +.table-hover tbody tr:hover td,.table-hover tbody tr:hover th{background-color:#f5f5f5;}
  208 +table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0;}
  209 +.table td.span1,.table th.span1{float:none;width:44px;margin-left:0;}
  210 +.table td.span2,.table th.span2{float:none;width:124px;margin-left:0;}
  211 +.table td.span3,.table th.span3{float:none;width:204px;margin-left:0;}
  212 +.table td.span4,.table th.span4{float:none;width:284px;margin-left:0;}
  213 +.table td.span5,.table th.span5{float:none;width:364px;margin-left:0;}
  214 +.table td.span6,.table th.span6{float:none;width:444px;margin-left:0;}
  215 +.table td.span7,.table th.span7{float:none;width:524px;margin-left:0;}
  216 +.table td.span8,.table th.span8{float:none;width:604px;margin-left:0;}
  217 +.table td.span9,.table th.span9{float:none;width:684px;margin-left:0;}
  218 +.table td.span10,.table th.span10{float:none;width:764px;margin-left:0;}
  219 +.table td.span11,.table th.span11{float:none;width:844px;margin-left:0;}
  220 +.table td.span12,.table th.span12{float:none;width:924px;margin-left:0;}
  221 +.table tbody tr.success td{background-color:#dff0d8;}
  222 +.table tbody tr.error td{background-color:#f2dede;}
  223 +.table tbody tr.warning td{background-color:#fcf8e3;}
  224 +.table tbody tr.info td{background-color:#d9edf7;}
  225 +.table-hover tbody tr.success:hover td{background-color:#d0e9c6;}
  226 +.table-hover tbody tr.error:hover td{background-color:#ebcccc;}
  227 +.table-hover tbody tr.warning:hover td{background-color:#faf2cc;}
  228 +.table-hover tbody tr.info:hover td{background-color:#c4e3f3;}
  229 +form{margin:0 0 20px;}
  230 +fieldset{padding:0;margin:0;border:0;}
  231 +legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:18px;line-height:40px;color:#333333;border:0;border-bottom:1px solid #e5e5e5;}legend small{font-size:15px;color:#999999;}
  232 +label,input,button,select,textarea{font-size:12px;font-weight:normal;line-height:20px;}
  233 +input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
  234 +label{display:block;margin-bottom:5px;}
  235 +select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:12px;line-height:20px;color:#555555;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;vertical-align:middle;}
  236 +input,textarea,.uneditable-input{width:206px;}
  237 +textarea{height:auto;}
  238 +textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#ffffff;border:1px solid #cccccc;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear .2s, box-shadow linear .2s;-moz-transition:border linear .2s, box-shadow linear .2s;-o-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82, 168, 236, 0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);}
  239 +input[type="radio"],input[type="checkbox"]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal;}
  240 +input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto;}
  241 +select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px;}
  242 +select{width:220px;border:1px solid #cccccc;background-color:#ffffff;}
  243 +select[multiple],select[size]{height:auto;}
  244 +select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
  245 +.uneditable-input,.uneditable-textarea{color:#999999;background-color:#fcfcfc;border-color:#cccccc;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;}
  246 +.uneditable-input{overflow:hidden;white-space:nowrap;}
  247 +.uneditable-textarea{width:auto;height:auto;}
  248 +input:-moz-placeholder,textarea:-moz-placeholder{color:#999999;}
  249 +input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999999;}
  250 +input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999999;}
  251 +.radio,.checkbox{min-height:20px;padding-left:20px;}
  252 +.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px;}
  253 +.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;}
  254 +.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle;}
  255 +.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;}
  256 +.input-mini{width:60px;}
  257 +.input-small{width:90px;}
  258 +.input-medium{width:150px;}
  259 +.input-large{width:210px;}
  260 +.input-xlarge{width:270px;}
  261 +.input-xxlarge{width:530px;}
  262 +input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0;}
  263 +.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block;}
  264 +input,textarea,.uneditable-input{margin-left:0;}
  265 +.controls-row [class*="span"]+[class*="span"]{margin-left:20px;}
  266 +input.span12, textarea.span12, .uneditable-input.span12{width:926px;}
  267 +input.span11, textarea.span11, .uneditable-input.span11{width:846px;}
  268 +input.span10, textarea.span10, .uneditable-input.span10{width:766px;}
  269 +input.span9, textarea.span9, .uneditable-input.span9{width:686px;}
  270 +input.span8, textarea.span8, .uneditable-input.span8{width:606px;}
  271 +input.span7, textarea.span7, .uneditable-input.span7{width:526px;}
  272 +input.span6, textarea.span6, .uneditable-input.span6{width:446px;}
  273 +input.span5, textarea.span5, .uneditable-input.span5{width:366px;}
  274 +input.span4, textarea.span4, .uneditable-input.span4{width:286px;}
  275 +input.span3, textarea.span3, .uneditable-input.span3{width:206px;}
  276 +input.span2, textarea.span2, .uneditable-input.span2{width:126px;}
  277 +input.span1, textarea.span1, .uneditable-input.span1{width:46px;}
  278 +.controls-row{*zoom:1;}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0;}
  279 +.controls-row:after{clear:both;}
  280 +.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left;}
  281 +.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px;}
  282 +input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eeeeee;}
  283 +input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent;}
  284 +.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;}
  285 +.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;}
  286 +.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;}
  287 +.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;}
  288 +.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;}
  289 +.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;}
  290 +.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;}
  291 +.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;}
  292 +.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;}
  293 +.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;}
  294 +.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;}
  295 +.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;}
  296 +.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad;}
  297 +.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;}
  298 +.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;}
  299 +.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad;}
  300 +input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;}
  301 +.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1;}.form-actions:before,.form-actions:after{display:table;content:"";line-height:0;}
  302 +.form-actions:after{clear:both;}
  303 +.help-block,.help-inline{color:#595959;}
  304 +.help-block{display:block;margin-bottom:10px;}
  305 +.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px;}
  306 +.input-append,.input-prepend{margin-bottom:5px;font-size:0;white-space:nowrap;}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu{font-size:12px;}
  307 +.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2;}
  308 +.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:12px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#eeeeee;border:1px solid #ccc;}
  309 +.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
  310 +.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546;}
  311 +.input-prepend .add-on,.input-prepend .btn{margin-right:-1px;}
  312 +.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
  313 +.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
  314 +.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px;}
  315 +.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
  316 +.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
  317 +.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
  318 +.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
  319 +.input-prepend.input-append .btn-group:first-child{margin-left:0;}
  320 +input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
  321 +.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
  322 +.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;}
  323 +.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;}
  324 +.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;}
  325 +.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;}
  326 +.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle;}
  327 +.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none;}
  328 +.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block;}
  329 +.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0;}
  330 +.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle;}
  331 +.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0;}
  332 +.control-group{margin-bottom:10px;}
  333 +legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate;}
  334 +.form-horizontal .control-group{margin-bottom:20px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0;}
  335 +.form-horizontal .control-group:after{clear:both;}
  336 +.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right;}
  337 +.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0;}.form-horizontal .controls:first-child{*padding-left:180px;}
  338 +.form-horizontal .help-block{margin-bottom:0;}
  339 +.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px;}
  340 +.form-horizontal .form-actions{padding-left:180px;}
  341 +.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:12px;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333333;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(to bottom, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #bbbbbb;*border:0;border-bottom-color:#a2a2a2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333333;background-color:#e6e6e6;*background-color:#d9d9d9;}
  342 +.btn:active,.btn.active{background-color:#cccccc \9;}
  343 +.btn:first-child{*margin-left:0;}
  344 +.btn:hover{color:#333333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
  345 +.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
  346 +.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
  347 +.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
  348 +.btn-large{padding:11px 19px;font-size:15px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
  349 +.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px;}
  350 +.btn-small{padding:2px 10px;font-size:10.2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
  351 +.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0;}
  352 +.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px;}
  353 +.btn-mini{padding:0 6px;font-size:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
  354 +.btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
  355 +.btn-block+.btn-block{margin-top:5px;}
  356 +input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%;}
  357 +.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);}
  358 +.btn{border-color:#c5c5c5;border-color:rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);}
  359 +.btn-primary{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #0088cc, #0044cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));background-image:-webkit-linear-gradient(top, #0088cc, #0044cc);background-image:-o-linear-gradient(top, #0088cc, #0044cc);background-image:linear-gradient(to bottom, #0088cc, #0044cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);border-color:#0044cc #0044cc #002a80;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#0044cc;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#ffffff;background-color:#0044cc;*background-color:#003bb3;}
  360 +.btn-primary:active,.btn-primary.active{background-color:#003399 \9;}
  361 +.btn-warning{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#ffffff;background-color:#f89406;*background-color:#df8505;}
  362 +.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
  363 +.btn-danger{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(to bottom, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#ffffff;background-color:#bd362f;*background-color:#a9302a;}
  364 +.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
  365 +.btn-success{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(to bottom, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#ffffff;background-color:#51a351;*background-color:#499249;}
  366 +.btn-success:active,.btn-success.active{background-color:#408140 \9;}
  367 +.btn-info{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(to bottom, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#ffffff;background-color:#2f96b4;*background-color:#2a85a0;}
  368 +.btn-info:active,.btn-info.active{background-color:#24748c \9;}
  369 +.btn-inverse{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#363636;background-image:-moz-linear-gradient(top, #444444, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));background-image:-webkit-linear-gradient(top, #444444, #222222);background-image:-o-linear-gradient(top, #444444, #222222);background-image:linear-gradient(to bottom, #444444, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#222222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#ffffff;background-color:#222222;*background-color:#151515;}
  370 +.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
  371 +button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;}
  372 +button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;}
  373 +button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;}
  374 +button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;}
  375 +.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
  376 +.btn-link{border-color:transparent;cursor:pointer;color:#0088cc;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
  377 +.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent;}
  378 +.btn-link[disabled]:hover{color:#333333;text-decoration:none;}
  379 +[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;margin-top:1px;}
  380 +.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png");}
  381 +.icon-glass{background-position:0 0;}
  382 +.icon-music{background-position:-24px 0;}
  383 +.icon-search{background-position:-48px 0;}
  384 +.icon-envelope{background-position:-72px 0;}
  385 +.icon-heart{background-position:-96px 0;}
  386 +.icon-star{background-position:-120px 0;}
  387 +.icon-star-empty{background-position:-144px 0;}
  388 +.icon-user{background-position:-168px 0;}
  389 +.icon-film{background-position:-192px 0;}
  390 +.icon-th-large{background-position:-216px 0;}
  391 +.icon-th{background-position:-240px 0;}
  392 +.icon-th-list{background-position:-264px 0;}
  393 +.icon-ok{background-position:-288px 0;}
  394 +.icon-remove{background-position:-312px 0;}
  395 +.icon-zoom-in{background-position:-336px 0;}
  396 +.icon-zoom-out{background-position:-360px 0;}
  397 +.icon-off{background-position:-384px 0;}
  398 +.icon-signal{background-position:-408px 0;}
  399 +.icon-cog{background-position:-432px 0;}
  400 +.icon-trash{background-position:-456px 0;}
  401 +.icon-home{background-position:0 -24px;}
  402 +.icon-file{background-position:-24px -24px;}
  403 +.icon-time{background-position:-48px -24px;}
  404 +.icon-road{background-position:-72px -24px;}
  405 +.icon-download-alt{background-position:-96px -24px;}
  406 +.icon-download{background-position:-120px -24px;}
  407 +.icon-upload{background-position:-144px -24px;}
  408 +.icon-inbox{background-position:-168px -24px;}
  409 +.icon-play-circle{background-position:-192px -24px;}
  410 +.icon-repeat{background-position:-216px -24px;}
  411 +.icon-refresh{background-position:-240px -24px;}
  412 +.icon-list-alt{background-position:-264px -24px;}
  413 +.icon-lock{background-position:-287px -24px;}
  414 +.icon-flag{background-position:-312px -24px;}
  415 +.icon-headphones{background-position:-336px -24px;}
  416 +.icon-volume-off{background-position:-360px -24px;}
  417 +.icon-volume-down{background-position:-384px -24px;}
  418 +.icon-volume-up{background-position:-408px -24px;}
  419 +.icon-qrcode{background-position:-432px -24px;}
  420 +.icon-barcode{background-position:-456px -24px;}
  421 +.icon-tag{background-position:0 -48px;}
  422 +.icon-tags{background-position:-25px -48px;}
  423 +.icon-book{background-position:-48px -48px;}
  424 +.icon-bookmark{background-position:-72px -48px;}
  425 +.icon-print{background-position:-96px -48px;}
  426 +.icon-camera{background-position:-120px -48px;}
  427 +.icon-font{background-position:-144px -48px;}
  428 +.icon-bold{background-position:-167px -48px;}
  429 +.icon-italic{background-position:-192px -48px;}
  430 +.icon-text-height{background-position:-216px -48px;}
  431 +.icon-text-width{background-position:-240px -48px;}
  432 +.icon-align-left{background-position:-264px -48px;}
  433 +.icon-align-center{background-position:-288px -48px;}
  434 +.icon-align-right{background-position:-312px -48px;}
  435 +.icon-align-justify{background-position:-336px -48px;}
  436 +.icon-list{background-position:-360px -48px;}
  437 +.icon-indent-left{background-position:-384px -48px;}
  438 +.icon-indent-right{background-position:-408px -48px;}
  439 +.icon-facetime-video{background-position:-432px -48px;}
  440 +.icon-picture{background-position:-456px -48px;}
  441 +.icon-pencil{background-position:0 -72px;}
  442 +.icon-map-marker{background-position:-24px -72px;}
  443 +.icon-adjust{background-position:-48px -72px;}
  444 +.icon-tint{background-position:-72px -72px;}
  445 +.icon-edit{background-position:-96px -72px;}
  446 +.icon-share{background-position:-120px -72px;}
  447 +.icon-check{background-position:-144px -72px;}
  448 +.icon-move{background-position:-168px -72px;}
  449 +.icon-step-backward{background-position:-192px -72px;}
  450 +.icon-fast-backward{background-position:-216px -72px;}
  451 +.icon-backward{background-position:-240px -72px;}
  452 +.icon-play{background-position:-264px -72px;}
  453 +.icon-pause{background-position:-288px -72px;}
  454 +.icon-stop{background-position:-312px -72px;}
  455 +.icon-forward{background-position:-336px -72px;}
  456 +.icon-fast-forward{background-position:-360px -72px;}
  457 +.icon-step-forward{background-position:-384px -72px;}
  458 +.icon-eject{background-position:-408px -72px;}
  459 +.icon-chevron-left{background-position:-432px -72px;}
  460 +.icon-chevron-right{background-position:-456px -72px;}
  461 +.icon-plus-sign{background-position:0 -96px;}
  462 +.icon-minus-sign{background-position:-24px -96px;}
  463 +.icon-remove-sign{background-position:-48px -96px;}
  464 +.icon-ok-sign{background-position:-72px -96px;}
  465 +.icon-question-sign{background-position:-96px -96px;}
  466 +.icon-info-sign{background-position:-120px -96px;}
  467 +.icon-screenshot{background-position:-144px -96px;}
  468 +.icon-remove-circle{background-position:-168px -96px;}
  469 +.icon-ok-circle{background-position:-192px -96px;}
  470 +.icon-ban-circle{background-position:-216px -96px;}
  471 +.icon-arrow-left{background-position:-240px -96px;}
  472 +.icon-arrow-right{background-position:-264px -96px;}
  473 +.icon-arrow-up{background-position:-289px -96px;}
  474 +.icon-arrow-down{background-position:-312px -96px;}
  475 +.icon-share-alt{background-position:-336px -96px;}
  476 +.icon-resize-full{background-position:-360px -96px;}
  477 +.icon-resize-small{background-position:-384px -96px;}
  478 +.icon-plus{background-position:-408px -96px;}
  479 +.icon-minus{background-position:-433px -96px;}
  480 +.icon-asterisk{background-position:-456px -96px;}
  481 +.icon-exclamation-sign{background-position:0 -120px;}
  482 +.icon-gift{background-position:-24px -120px;}
  483 +.icon-leaf{background-position:-48px -120px;}
  484 +.icon-fire{background-position:-72px -120px;}
  485 +.icon-eye-open{background-position:-96px -120px;}
  486 +.icon-eye-close{background-position:-120px -120px;}
  487 +.icon-warning-sign{background-position:-144px -120px;}
  488 +.icon-plane{background-position:-168px -120px;}
  489 +.icon-calendar{background-position:-192px -120px;}
  490 +.icon-random{background-position:-216px -120px;width:16px;}
  491 +.icon-comment{background-position:-240px -120px;}
  492 +.icon-magnet{background-position:-264px -120px;}
  493 +.icon-chevron-up{background-position:-288px -120px;}
  494 +.icon-chevron-down{background-position:-313px -119px;}
  495 +.icon-retweet{background-position:-336px -120px;}
  496 +.icon-shopping-cart{background-position:-360px -120px;}
  497 +.icon-folder-close{background-position:-384px -120px;}
  498 +.icon-folder-open{background-position:-408px -120px;width:16px;}
  499 +.icon-resize-vertical{background-position:-432px -119px;}
  500 +.icon-resize-horizontal{background-position:-456px -118px;}
  501 +.icon-hdd{background-position:0 -144px;}
  502 +.icon-bullhorn{background-position:-24px -144px;}
  503 +.icon-bell{background-position:-48px -144px;}
  504 +.icon-certificate{background-position:-72px -144px;}
  505 +.icon-thumbs-up{background-position:-96px -144px;}
  506 +.icon-thumbs-down{background-position:-120px -144px;}
  507 +.icon-hand-right{background-position:-144px -144px;}
  508 +.icon-hand-left{background-position:-168px -144px;}
  509 +.icon-hand-up{background-position:-192px -144px;}
  510 +.icon-hand-down{background-position:-216px -144px;}
  511 +.icon-circle-arrow-right{background-position:-240px -144px;}
  512 +.icon-circle-arrow-left{background-position:-264px -144px;}
  513 +.icon-circle-arrow-up{background-position:-288px -144px;}
  514 +.icon-circle-arrow-down{background-position:-312px -144px;}
  515 +.icon-globe{background-position:-336px -144px;}
  516 +.icon-wrench{background-position:-360px -144px;}
  517 +.icon-tasks{background-position:-384px -144px;}
  518 +.icon-filter{background-position:-408px -144px;}
  519 +.icon-briefcase{background-position:-432px -144px;}
  520 +.icon-fullscreen{background-position:-456px -144px;}
  521 +.btn-group{position:relative;display:inline-block;*display:inline;*zoom:1;font-size:0;vertical-align:middle;white-space:nowrap;*margin-left:.3em;}.btn-group:first-child{*margin-left:0;}
  522 +.btn-group+.btn-group{margin-left:5px;}
  523 +.btn-toolbar{font-size:0;margin-top:10px;margin-bottom:10px;}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px;}
  524 +.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
  525 +.btn-group>.btn+.btn{margin-left:-1px;}
  526 +.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:12px;}
  527 +.btn-group>.btn-mini{font-size:9px;}
  528 +.btn-group>.btn-small{font-size:10.2px;}
  529 +.btn-group>.btn-large{font-size:15px;}
  530 +.btn-group>.btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
  531 +.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
  532 +.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
  533 +.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
  534 +.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2;}
  535 +.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;}
  536 +.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);*padding-top:5px;*padding-bottom:5px;}
  537 +.btn-group>.btn-mini+.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:2px;*padding-bottom:2px;}
  538 +.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px;}
  539 +.btn-group>.btn-large+.dropdown-toggle{padding-left:12px;padding-right:12px;*padding-top:7px;*padding-bottom:7px;}
  540 +.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
  541 +.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6;}
  542 +.btn-group.open .btn-primary.dropdown-toggle{background-color:#0044cc;}
  543 +.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406;}
  544 +.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f;}
  545 +.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351;}
  546 +.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4;}
  547 +.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222222;}
  548 +.btn .caret{margin-top:8px;margin-left:0;}
  549 +.btn-mini .caret,.btn-small .caret,.btn-large .caret{margin-top:6px;}
  550 +.btn-large .caret{border-left-width:5px;border-right-width:5px;border-top-width:5px;}
  551 +.dropup .btn-large .caret{border-bottom-width:5px;}
  552 +.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
  553 +.btn-group-vertical{display:inline-block;*display:inline;*zoom:1;}
  554 +.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
  555 +.btn-group-vertical>.btn+.btn{margin-left:0;margin-top:-1px;}
  556 +.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}
  557 +.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}
  558 +.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0;}
  559 +.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;}
  560 +.nav{margin-left:0;margin-bottom:20px;list-style:none;}
  561 +.nav>li>a{display:block;}
  562 +.nav>li>a:hover{text-decoration:none;background-color:#eeeeee;}
  563 +.nav>li>a>img{max-width:none;}
  564 +.nav>.pull-right{float:right;}
  565 +.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;}
  566 +.nav li+.nav-header{margin-top:9px;}
  567 +.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;}
  568 +.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
  569 +.nav-list>li>a{padding:3px 15px;}
  570 +.nav-list>.active>a,.nav-list>.active>a:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;}
  571 +.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px;}
  572 +.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
  573 +.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";line-height:0;}
  574 +.nav-tabs:after,.nav-pills:after{clear:both;}
  575 +.nav-tabs>li,.nav-pills>li{float:left;}
  576 +.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;}
  577 +.nav-tabs{border-bottom:1px solid #ddd;}
  578 +.nav-tabs>li{margin-bottom:-1px;}
  579 +.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;}
  580 +.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}
  581 +.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
  582 +.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#ffffff;background-color:#0088cc;}
  583 +.nav-stacked>li{float:none;}
  584 +.nav-stacked>li>a{margin-right:0;}
  585 +.nav-tabs.nav-stacked{border-bottom:0;}
  586 +.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
  587 +.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;}
  588 +.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
  589 +.nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2;}
  590 +.nav-pills.nav-stacked>li>a{margin-bottom:3px;}
  591 +.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;}
  592 +.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;}
  593 +.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
  594 +.nav .dropdown-toggle .caret{border-top-color:#0088cc;border-bottom-color:#0088cc;margin-top:6px;}
  595 +.nav .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580;}
  596 +.nav-tabs .dropdown-toggle .caret{margin-top:8px;}
  597 +.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff;}
  598 +.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;}
  599 +.nav>.dropdown.active>a:hover{cursor:pointer;}
  600 +.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;}
  601 +.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);}
  602 +.tabs-stacked .open>a:hover{border-color:#999999;}
  603 +.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";line-height:0;}
  604 +.tabbable:after{clear:both;}
  605 +.tab-content{overflow:auto;}
  606 +.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0;}
  607 +.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}
  608 +.tab-content>.active,.pill-content>.active{display:block;}
  609 +.tabs-below>.nav-tabs{border-top:1px solid #ddd;}
  610 +.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0;}
  611 +.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below>.nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd;}
  612 +.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd;}
  613 +.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none;}
  614 +.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;}
  615 +.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;}
  616 +.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
  617 +.tabs-left>.nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;}
  618 +.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;}
  619 +.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;}
  620 +.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
  621 +.tabs-right>.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;}
  622 +.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;}
  623 +.nav>.disabled>a{color:#999999;}
  624 +.nav>.disabled>a:hover{text-decoration:none;background-color:transparent;cursor:default;}
  625 +.navbar{overflow:visible;margin-bottom:20px;*position:relative;*z-index:2;}
  626 +.navbar-inner{min-height:40px;padding-left:20px;padding-right:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top, #ffffff, #f2f2f2);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));background-image:-webkit-linear-gradient(top, #ffffff, #f2f2f2);background-image:-o-linear-gradient(top, #ffffff, #f2f2f2);background-image:linear-gradient(to bottom, #ffffff, #f2f2f2);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);-moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);box-shadow:0 1px 4px rgba(0, 0, 0, 0.065);*zoom:1;}.navbar-inner:before,.navbar-inner:after{display:table;content:"";line-height:0;}
  627 +.navbar-inner:after{clear:both;}
  628 +.navbar .container{width:auto;}
  629 +.nav-collapse.collapse{height:auto;overflow:visible;}
  630 +.navbar .brand{float:left;display:block;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777777;text-shadow:0 1px 0 #ffffff;}.navbar .brand:hover{text-decoration:none;}
  631 +.navbar-text{margin-bottom:0;line-height:40px;color:#777777;}
  632 +.navbar-link{color:#777777;}.navbar-link:hover{color:#333333;}
  633 +.navbar .divider-vertical{height:40px;margin:0 9px;border-left:1px solid #f2f2f2;border-right:1px solid #ffffff;}
  634 +.navbar .btn,.navbar .btn-group{margin-top:5px;}
  635 +.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn{margin-top:0;}
  636 +.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";line-height:0;}
  637 +.navbar-form:after{clear:both;}
  638 +.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;}
  639 +.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0;}
  640 +.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;}
  641 +.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;}
  642 +.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0;}.navbar-search .search-query{margin-bottom:0;padding:4px 14px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
  643 +.navbar-static-top{position:static;margin-bottom:0;}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
  644 +.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;}
  645 +.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px;}
  646 +.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0;}
  647 +.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
  648 +.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
  649 +.navbar-fixed-top{top:0;}
  650 +.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,.1);box-shadow:0 1px 10px rgba(0,0,0,.1);}
  651 +.navbar-fixed-bottom{bottom:0;}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,.1);box-shadow:0 -1px 10px rgba(0,0,0,.1);}
  652 +.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;}
  653 +.navbar .nav.pull-right{float:right;margin-right:0;}
  654 +.navbar .nav>li{float:left;}
  655 +.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777777;text-decoration:none;text-shadow:0 1px 0 #ffffff;}
  656 +.navbar .nav .dropdown-toggle .caret{margin-top:8px;}
  657 +.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{background-color:transparent;color:#333333;text-decoration:none;}
  658 +.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);-moz-box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 8px rgba(0, 0, 0, 0.125);}
  659 +.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#ededed;background-image:-moz-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));background-image:-webkit-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:-o-linear-gradient(top, #f2f2f2, #e5e5e5);background-image:linear-gradient(to bottom, #f2f2f2, #e5e5e5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e5e5e5;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#ffffff;background-color:#e5e5e5;*background-color:#d9d9d9;}
  660 +.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#cccccc \9;}
  661 +.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);}
  662 +.btn-navbar .icon-bar+.icon-bar{margin-top:3px;}
  663 +.navbar .nav>li>.dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;}
  664 +.navbar .nav>li>.dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;}
  665 +.navbar-fixed-bottom .nav>li>.dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;}
  666 +.navbar-fixed-bottom .nav>li>.dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;}
  667 +.navbar .nav li.dropdown>a:hover .caret{border-top-color:#555555;border-bottom-color:#555555;}
  668 +.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:#e5e5e5;color:#555555;}
  669 +.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777777;border-bottom-color:#777777;}
  670 +.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555555;border-bottom-color:#555555;}
  671 +.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{left:auto;right:0;}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{left:auto;right:12px;}
  672 +.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{left:auto;right:13px;}
  673 +.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{left:auto;right:100%;margin-left:0;margin-right:-1px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
  674 +.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top, #222222, #111111);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));background-image:-webkit-linear-gradient(top, #222222, #111111);background-image:-o-linear-gradient(top, #222222, #111111);background-image:linear-gradient(to bottom, #222222, #111111);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);border-color:#252525;}
  675 +.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999999;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover{color:#ffffff;}
  676 +.navbar-inverse .brand{color:#999999;}
  677 +.navbar-inverse .navbar-text{color:#999999;}
  678 +.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{background-color:transparent;color:#ffffff;}
  679 +.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#ffffff;background-color:#111111;}
  680 +.navbar-inverse .navbar-link{color:#999999;}.navbar-inverse .navbar-link:hover{color:#ffffff;}
  681 +.navbar-inverse .divider-vertical{border-left-color:#111111;border-right-color:#222222;}
  682 +.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{background-color:#111111;color:#ffffff;}
  683 +.navbar-inverse .nav li.dropdown>a:hover .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
  684 +.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999999;border-bottom-color:#999999;}
  685 +.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
  686 +.navbar-inverse .navbar-search .search-query{color:#ffffff;background-color:#515151;border-color:#111111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);box-shadow:inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none;}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#cccccc;}
  687 +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#cccccc;}
  688 +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
  689 +.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;}
  690 +.navbar-inverse .btn-navbar{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e0e0e;background-image:-moz-linear-gradient(top, #151515, #040404);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));background-image:-webkit-linear-gradient(top, #151515, #040404);background-image:-o-linear-gradient(top, #151515, #040404);background-image:linear-gradient(to bottom, #151515, #040404);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);border-color:#040404 #040404 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#040404;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#ffffff;background-color:#040404;*background-color:#000000;}
  691 +.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000000 \9;}
  692 +.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.breadcrumb>li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #ffffff;}.breadcrumb>li>.divider{padding:0 5px;color:#ccc;}
  693 +.breadcrumb>.active{color:#999999;}
  694 +.pagination{margin:20px 0;}
  695 +.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);}
  696 +.pagination ul>li{display:inline;}
  697 +.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#ffffff;border:1px solid #dddddd;border-left-width:0;}
  698 +.pagination ul>li>a:hover,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5;}
  699 +.pagination ul>.active>a,.pagination ul>.active>span{color:#999999;cursor:default;}
  700 +.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover{color:#999999;background-color:transparent;cursor:default;}
  701 +.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
  702 +.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
  703 +.pagination-centered{text-align:center;}
  704 +.pagination-right{text-align:right;}
  705 +.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:15px;}
  706 +.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
  707 +.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
  708 +.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-top-left-radius:3px;-moz-border-radius-topleft:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;-moz-border-radius-bottomleft:3px;border-bottom-left-radius:3px;}
  709 +.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;-moz-border-radius-topright:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;-moz-border-radius-bottomright:3px;border-bottom-right-radius:3px;}
  710 +.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:10.2px;}
  711 +.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:9px;}
  712 +.pager{margin:20px 0;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";line-height:0;}
  713 +.pager:after{clear:both;}
  714 +.pager li{display:inline;}
  715 +.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
  716 +.pager li>a:hover{text-decoration:none;background-color:#f5f5f5;}
  717 +.pager .next>a,.pager .next>span{float:right;}
  718 +.pager .previous>a,.pager .previous>span{float:left;}
  719 +.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>span{color:#999999;background-color:#fff;cursor:default;}
  720 +.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";line-height:0;}
  721 +.thumbnails:after{clear:both;}
  722 +.row-fluid .thumbnails{margin-left:0;}
  723 +.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px;}
  724 +.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);box-shadow:0 1px 3px rgba(0, 0, 0, 0.055);-webkit-transition:all 0.2s ease-in-out;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;}
  725 +a.thumbnail:hover{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);}
  726 +.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;}
  727 +.thumbnail .caption{padding:9px;color:#555555;}
  728 +.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
  729 +.alert,.alert h4{color:#c09853;}
  730 +.alert h4{margin:0;}
  731 +.alert .close{position:relative;top:-2px;right:-21px;line-height:20px;}
  732 +.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;}
  733 +.alert-success h4{color:#468847;}
  734 +.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;}
  735 +.alert-danger h4,.alert-error h4{color:#b94a48;}
  736 +.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;}
  737 +.alert-info h4{color:#3a87ad;}
  738 +.alert-block{padding-top:14px;padding-bottom:14px;}
  739 +.alert-block>p,.alert-block>ul{margin-bottom:0;}
  740 +.alert-block p+p{margin-top:5px;}
  741 +@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-o-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(to bottom, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
  742 +.progress .bar{width:0%;height:100%;color:#ffffff;float:left;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(to bottom, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;}
  743 +.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 1px 0 0 rgba(0,0,0,.15), inset 0 -1px 0 rgba(0,0,0,.15);}
  744 +.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;}
  745 +.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}
  746 +.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(to bottom, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);}
  747 +.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
  748 +.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(to bottom, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);}
  749 +.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
  750 +.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(to bottom, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);}
  751 +.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
  752 +.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);}
  753 +.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
  754 +.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eeeeee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px;}
  755 +.hero-unit li{line-height:30px;}
  756 +.media,.media-body{overflow:hidden;*overflow:visible;zoom:1;}
  757 +.media,.media .media{margin-top:15px;}
  758 +.media:first-child{margin-top:0;}
  759 +.media-object{display:block;}
  760 +.media-heading{margin:0 0 5px;}
  761 +.media .pull-left{margin-right:10px;}
  762 +.media .pull-right{margin-left:10px;}
  763 +.media-list{margin-left:0;list-style:none;}
  764 +.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
  765 +.tooltip.top{margin-top:-3px;}
  766 +.tooltip.right{margin-left:3px;}
  767 +.tooltip.bottom{margin-top:3px;}
  768 +.tooltip.left{margin-left:-3px;}
  769 +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
  770 +.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
  771 +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
  772 +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
  773 +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
  774 +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
  775 +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;width:236px;padding:1px;text-align:left;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);white-space:normal;}.popover.top{margin-top:-10px;}
  776 +.popover.right{margin-left:10px;}
  777 +.popover.bottom{margin-top:10px;}
  778 +.popover.left{margin-left:-10px;}
  779 +.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;}
  780 +.popover-content{padding:9px 14px;}
  781 +.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;}
  782 +.popover .arrow{border-width:11px;}
  783 +.popover .arrow:after{border-width:10px;content:"";}
  784 +.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0, 0, 0, 0.25);bottom:-11px;}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff;}
  785 +.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0, 0, 0, 0.25);}.popover.right .arrow:after{left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff;}
  786 +.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0, 0, 0, 0.25);top:-11px;}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff;}
  787 +.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0, 0, 0, 0.25);}.popover.left .arrow:after{right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px;}
  788 +.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;}
  789 +.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);}
  790 +.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:none;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
  791 +.modal.fade.in{top:10%;}
  792 +.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;}
  793 +.modal-header h3{margin:0;line-height:30px;}
  794 +.modal-body{position:relative;overflow-y:auto;max-height:400px;padding:15px;}
  795 +.modal-form{margin-bottom:0;}
  796 +.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0;}
  797 +.modal-footer:after{clear:both;}
  798 +.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;}
  799 +.modal-footer .btn-group .btn+.btn{margin-left:-1px;}
  800 +.modal-footer .btn-block+.btn-block{margin-left:0;}
  801 +.dropup,.dropdown{position:relative;}
  802 +.dropdown-toggle{*margin-bottom:-3px;}
  803 +.dropdown-toggle:active,.open .dropdown-toggle{outline:0;}
  804 +.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";}
  805 +.dropdown .caret{margin-top:8px;margin-left:2px;}
  806 +.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#ffffff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;}.dropdown-menu.pull-right{right:0;left:auto;}
  807 +.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
  808 +.dropdown-menu li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333333;white-space:nowrap;}
  809 +.dropdown-menu li>a:hover,.dropdown-menu li>a:focus,.dropdown-submenu:hover>a{text-decoration:none;color:#ffffff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);}
  810 +.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#ffffff;text-decoration:none;outline:0;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);}
  811 +.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{color:#999999;}
  812 +.dropdown-menu .disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:default;}
  813 +.open{*z-index:1000;}.open >.dropdown-menu{display:block;}
  814 +.pull-right>.dropdown-menu{right:0;left:auto;}
  815 +.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"";}
  816 +.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}
  817 +.dropdown-submenu{position:relative;}
  818 +.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;}
  819 +.dropdown-submenu:hover>.dropdown-menu{display:block;}
  820 +.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0;}
  821 +.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#cccccc;margin-top:5px;margin-right:-10px;}
  822 +.dropdown-submenu:hover>a:after{border-left-color:#ffffff;}
  823 +.dropdown-submenu.pull-left{float:none;}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
  824 +.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px;}
  825 +.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
  826 +.accordion{margin-bottom:20px;}
  827 +.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
  828 +.accordion-heading{border-bottom:0;}
  829 +.accordion-heading .accordion-toggle{display:block;padding:8px 15px;}
  830 +.accordion-toggle{cursor:pointer;}
  831 +.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;}
  832 +.carousel{position:relative;margin-bottom:20px;line-height:1;}
  833 +.carousel-inner{overflow:hidden;width:100%;position:relative;}
  834 +.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;}
  835 +.carousel-inner>.item>img{display:block;line-height:1;}
  836 +.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block;}
  837 +.carousel-inner>.active{left:0;}
  838 +.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%;}
  839 +.carousel-inner>.next{left:100%;}
  840 +.carousel-inner>.prev{left:-100%;}
  841 +.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0;}
  842 +.carousel-inner>.active.left{left:-100%;}
  843 +.carousel-inner>.active.right{left:100%;}
  844 +.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#ffffff;text-align:center;background:#222222;border:3px solid #ffffff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;}
  845 +.carousel-control:hover{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);}
  846 +.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:15px;background:#333333;background:rgba(0, 0, 0, 0.75);}
  847 +.carousel-caption h4,.carousel-caption p{color:#ffffff;line-height:20px;}
  848 +.carousel-caption h4{margin:0 0 5px;}
  849 +.carousel-caption p{margin-bottom:0;}
  850 +.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
  851 +.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
  852 +.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
  853 +.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;filter:alpha(opacity=40);}
  854 +button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;}
  855 +.pull-right{float:right;}
  856 +.pull-left{float:left;}
  857 +.hide{display:none;}
  858 +.show{display:block;}
  859 +.invisible{visibility:hidden;}
  860 +.affix{position:fixed;}
  861 +.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;}
  862 +.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;}.collapse.in{height:auto;}
... ...
forum/static/css/codehilite.css
... ... @@ -0,0 +1,270 @@
  1 +/*
  2 + * from http://pygments.org/ style=default
  3 + */
  4 +.codehilite .hll {
  5 + background-color: #ffffcc; }
  6 +
  7 +.codehilite {
  8 + background: #f8f8f8; }
  9 +
  10 +.codehilite .c {
  11 + color: #408080;
  12 + font-style: italic; }
  13 +
  14 +/* Comment */
  15 +.codehilite .err {
  16 + border: 1px solid #FF0000; }
  17 +
  18 +/* Error */
  19 +.codehilite .k {
  20 + color: #008000;
  21 + font-weight: bold; }
  22 +
  23 +/* Keyword */
  24 +.codehilite .o {
  25 + color: #666666; }
  26 +
  27 +/* Operator */
  28 +.codehilite .cm {
  29 + color: #408080;
  30 + font-style: italic; }
  31 +
  32 +/* Comment.Multiline */
  33 +.codehilite .cp {
  34 + color: #BC7A00; }
  35 +
  36 +/* Comment.Preproc */
  37 +.codehilite .c1 {
  38 + color: #408080;
  39 + font-style: italic; }
  40 +
  41 +/* Comment.Single */
  42 +.codehilite .cs {
  43 + color: #408080;
  44 + font-style: italic; }
  45 +
  46 +/* Comment.Special */
  47 +.codehilite .gd {
  48 + color: #A00000; }
  49 +
  50 +/* Generic.Deleted */
  51 +.codehilite .ge {
  52 + font-style: italic; }
  53 +
  54 +/* Generic.Emph */
  55 +.codehilite .gr {
  56 + color: #FF0000; }
  57 +
  58 +/* Generic.Error */
  59 +.codehilite .gh {
  60 + color: #000080;
  61 + font-weight: bold; }
  62 +
  63 +/* Generic.Heading */
  64 +.codehilite .gi {
  65 + color: #00A000; }
  66 +
  67 +/* Generic.Inserted */
  68 +.codehilite .go {
  69 + color: #808080; }
  70 +
  71 +/* Generic.Output */
  72 +.codehilite .gp {
  73 + color: #000080;
  74 + font-weight: bold; }
  75 +
  76 +/* Generic.Prompt */
  77 +.codehilite .gs {
  78 + font-weight: bold; }
  79 +
  80 +/* Generic.Strong */
  81 +.codehilite .gu {
  82 + color: #800080;
  83 + font-weight: bold; }
  84 +
  85 +/* Generic.Subheading */
  86 +.codehilite .gt {
  87 + color: #0040D0; }
  88 +
  89 +/* Generic.Traceback */
  90 +.codehilite .kc {
  91 + color: #008000;
  92 + font-weight: bold; }
  93 +
  94 +/* Keyword.Constant */
  95 +.codehilite .kd {
  96 + color: #008000;
  97 + font-weight: bold; }
  98 +
  99 +/* Keyword.Declaration */
  100 +.codehilite .kn {
  101 + color: #008000;
  102 + font-weight: bold; }
  103 +
  104 +/* Keyword.Namespace */
  105 +.codehilite .kp {
  106 + color: #008000; }
  107 +
  108 +/* Keyword.Pseudo */
  109 +.codehilite .kr {
  110 + color: #008000;
  111 + font-weight: bold; }
  112 +
  113 +/* Keyword.Reserved */
  114 +.codehilite .kt {
  115 + color: #B00040; }
  116 +
  117 +/* Keyword.Type */
  118 +.codehilite .m {
  119 + color: #666666; }
  120 +
  121 +/* Literal.Number */
  122 +.codehilite .s {
  123 + color: #BA2121; }
  124 +
  125 +/* Literal.String */
  126 +.codehilite .na {
  127 + color: #7D9029; }
  128 +
  129 +/* Name.Attribute */
  130 +.codehilite .nb {
  131 + color: #008000; }
  132 +
  133 +/* Name.Builtin */
  134 +.codehilite .nc {
  135 + color: #0000FF;
  136 + font-weight: bold; }
  137 +
  138 +/* Name.Class */
  139 +.codehilite .no {
  140 + color: #880000; }
  141 +
  142 +/* Name.Constant */
  143 +.codehilite .nd {
  144 + color: #AA22FF; }
  145 +
  146 +/* Name.Decorator */
  147 +.codehilite .ni {
  148 + color: #999999;
  149 + font-weight: bold; }
  150 +
  151 +/* Name.Entity */
  152 +.codehilite .ne {
  153 + color: #D2413A;
  154 + font-weight: bold; }
  155 +
  156 +/* Name.Exception */
  157 +.codehilite .nf {
  158 + color: #0000FF; }
  159 +
  160 +/* Name.Function */
  161 +.codehilite .nl {
  162 + color: #A0A000; }
  163 +
  164 +/* Name.Label */
  165 +.codehilite .nn {
  166 + color: #0000FF;
  167 + font-weight: bold; }
  168 +
  169 +/* Name.Namespace */
  170 +.codehilite .nt {
  171 + color: #008000;
  172 + font-weight: bold; }
  173 +
  174 +/* Name.Tag */
  175 +.codehilite .nv {
  176 + color: #19177C; }
  177 +
  178 +/* Name.Variable */
  179 +.codehilite .ow {
  180 + color: #AA22FF;
  181 + font-weight: bold; }
  182 +
  183 +/* Operator.Word */
  184 +.codehilite .w {
  185 + color: #bbbbbb; }
  186 +
  187 +/* Text.Whitespace */
  188 +.codehilite .mf {
  189 + color: #666666; }
  190 +
  191 +/* Literal.Number.Float */
  192 +.codehilite .mh {
  193 + color: #666666; }
  194 +
  195 +/* Literal.Number.Hex */
  196 +.codehilite .mi {
  197 + color: #666666; }
  198 +
  199 +/* Literal.Number.Integer */
  200 +.codehilite .mo {
  201 + color: #666666; }
  202 +
  203 +/* Literal.Number.Oct */
  204 +.codehilite .sb {
  205 + color: #BA2121; }
  206 +
  207 +/* Literal.String.Backtick */
  208 +.codehilite .sc {
  209 + color: #BA2121; }
  210 +
  211 +/* Literal.String.Char */
  212 +.codehilite .sd {
  213 + color: #BA2121;
  214 + font-style: italic; }
  215 +
  216 +/* Literal.String.Doc */
  217 +.codehilite .s2 {
  218 + color: #BA2121; }
  219 +
  220 +/* Literal.String.Double */
  221 +.codehilite .se {
  222 + color: #BB6622;
  223 + font-weight: bold; }
  224 +
  225 +/* Literal.String.Escape */
  226 +.codehilite .sh {
  227 + color: #BA2121; }
  228 +
  229 +/* Literal.String.Heredoc */
  230 +.codehilite .si {
  231 + color: #BB6688;
  232 + font-weight: bold; }
  233 +
  234 +/* Literal.String.Interpol */
  235 +.codehilite .sx {
  236 + color: #008000; }
  237 +
  238 +/* Literal.String.Other */
  239 +.codehilite .sr {
  240 + color: #BB6688; }
  241 +
  242 +/* Literal.String.Regex */
  243 +.codehilite .s1 {
  244 + color: #BA2121; }
  245 +
  246 +/* Literal.String.Single */
  247 +.codehilite .ss {
  248 + color: #19177C; }
  249 +
  250 +/* Literal.String.Symbol */
  251 +.codehilite .bp {
  252 + color: #008000; }
  253 +
  254 +/* Name.Builtin.Pseudo */
  255 +.codehilite .vc {
  256 + color: #19177C; }
  257 +
  258 +/* Name.Variable.Class */
  259 +.codehilite .vg {
  260 + color: #19177C; }
  261 +
  262 +/* Name.Variable.Global */
  263 +.codehilite .vi {
  264 + color: #19177C; }
  265 +
  266 +/* Name.Variable.Instance */
  267 +.codehilite .il {
  268 + color: #666666; }
  269 +
  270 +/* Literal.Number.Integer.Long */
... ...
forum/static/css/codehilite.scss
... ... @@ -0,0 +1,66 @@
  1 +/*
  2 + * from http://pygments.org/ style=default
  3 + */
  4 +
  5 +.codehilite .hll { background-color: #ffffcc }
  6 +.codehilite { background: #f8f8f8; }
  7 +.codehilite .c { color: #408080; font-style: italic } /* Comment */
  8 +.codehilite .err { border: 1px solid #FF0000 } /* Error */
  9 +.codehilite .k { color: #008000; font-weight: bold } /* Keyword */
  10 +.codehilite .o { color: #666666 } /* Operator */
  11 +.codehilite .cm { color: #408080; font-style: italic } /* Comment.Multiline */
  12 +.codehilite .cp { color: #BC7A00 } /* Comment.Preproc */
  13 +.codehilite .c1 { color: #408080; font-style: italic } /* Comment.Single */
  14 +.codehilite .cs { color: #408080; font-style: italic } /* Comment.Special */
  15 +.codehilite .gd { color: #A00000 } /* Generic.Deleted */
  16 +.codehilite .ge { font-style: italic } /* Generic.Emph */
  17 +.codehilite .gr { color: #FF0000 } /* Generic.Error */
  18 +.codehilite .gh { color: #000080; font-weight: bold } /* Generic.Heading */
  19 +.codehilite .gi { color: #00A000 } /* Generic.Inserted */
  20 +.codehilite .go { color: #808080 } /* Generic.Output */
  21 +.codehilite .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
  22 +.codehilite .gs { font-weight: bold } /* Generic.Strong */
  23 +.codehilite .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
  24 +.codehilite .gt { color: #0040D0 } /* Generic.Traceback */
  25 +.codehilite .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
  26 +.codehilite .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
  27 +.codehilite .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
  28 +.codehilite .kp { color: #008000 } /* Keyword.Pseudo */
  29 +.codehilite .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
  30 +.codehilite .kt { color: #B00040 } /* Keyword.Type */
  31 +.codehilite .m { color: #666666 } /* Literal.Number */
  32 +.codehilite .s { color: #BA2121 } /* Literal.String */
  33 +.codehilite .na { color: #7D9029 } /* Name.Attribute */
  34 +.codehilite .nb { color: #008000 } /* Name.Builtin */
  35 +.codehilite .nc { color: #0000FF; font-weight: bold } /* Name.Class */
  36 +.codehilite .no { color: #880000 } /* Name.Constant */
  37 +.codehilite .nd { color: #AA22FF } /* Name.Decorator */
  38 +.codehilite .ni { color: #999999; font-weight: bold } /* Name.Entity */
  39 +.codehilite .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
  40 +.codehilite .nf { color: #0000FF } /* Name.Function */
  41 +.codehilite .nl { color: #A0A000 } /* Name.Label */
  42 +.codehilite .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
  43 +.codehilite .nt { color: #008000; font-weight: bold } /* Name.Tag */
  44 +.codehilite .nv { color: #19177C } /* Name.Variable */
  45 +.codehilite .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
  46 +.codehilite .w { color: #bbbbbb } /* Text.Whitespace */
  47 +.codehilite .mf { color: #666666 } /* Literal.Number.Float */
  48 +.codehilite .mh { color: #666666 } /* Literal.Number.Hex */
  49 +.codehilite .mi { color: #666666 } /* Literal.Number.Integer */
  50 +.codehilite .mo { color: #666666 } /* Literal.Number.Oct */
  51 +.codehilite .sb { color: #BA2121 } /* Literal.String.Backtick */
  52 +.codehilite .sc { color: #BA2121 } /* Literal.String.Char */
  53 +.codehilite .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
  54 +.codehilite .s2 { color: #BA2121 } /* Literal.String.Double */
  55 +.codehilite .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
  56 +.codehilite .sh { color: #BA2121 } /* Literal.String.Heredoc */
  57 +.codehilite .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
  58 +.codehilite .sx { color: #008000 } /* Literal.String.Other */
  59 +.codehilite .sr { color: #BB6688 } /* Literal.String.Regex */
  60 +.codehilite .s1 { color: #BA2121 } /* Literal.String.Single */
  61 +.codehilite .ss { color: #19177C } /* Literal.String.Symbol */
  62 +.codehilite .bp { color: #008000 } /* Name.Builtin.Pseudo */
  63 +.codehilite .vc { color: #19177C } /* Name.Variable.Class */
  64 +.codehilite .vg { color: #19177C } /* Name.Variable.Global */
  65 +.codehilite .vi { color: #19177C } /* Name.Variable.Instance */
  66 +.codehilite .il { color: #666666 } /* Literal.Number.Integer.Long */
... ...
forum/static/css/compass/_css3.scss
... ... @@ -0,0 +1,20 @@
  1 +@import "css3/border-radius";
  2 +@import "css3/inline-block";
  3 +@import "css3/opacity";
  4 +@import "css3/box-shadow";
  5 +@import "css3/text-shadow";
  6 +@import "css3/columns";
  7 +@import "css3/box-sizing";
  8 +@import "css3/box";
  9 +@import "css3/images";
  10 +@import "css3/background-clip";
  11 +@import "css3/background-origin";
  12 +@import "css3/background-size";
  13 +@import "css3/font-face";
  14 +@import "css3/transform";
  15 +@import "css3/transition";
  16 +@import "css3/appearance";
  17 +@import "css3/regions";
  18 +@import "css3/hyphenation";
  19 +@import "css3/filter";
  20 +@import "css3/user-interface";
... ...
forum/static/css/compass/_layout.scss
... ... @@ -0,0 +1,3 @@
  1 +@import "layout/grid-background";
  2 +@import "layout/sticky-footer";
  3 +@import "layout/stretching";
... ...
forum/static/css/compass/_reset-legacy.scss
... ... @@ -0,0 +1,3 @@
  1 +@import "reset/utilities-legacy";
  2 +
  3 +@include global-reset;
... ...
forum/static/css/compass/_reset.scss
... ... @@ -0,0 +1,3 @@
  1 +@import "reset/utilities";
  2 +
  3 +@include global-reset;
... ...
forum/static/css/compass/_support.scss
... ... @@ -0,0 +1,40 @@
  1 +// Usually compass hacks apply to both ie6 & 7 -- set this to false to disable support for both.
  2 +$legacy-support-for-ie: true !default;
  3 +
  4 +// Setting this to false will result in smaller output, but no support for ie6 hacks
  5 +$legacy-support-for-ie6: $legacy-support-for-ie !default;
  6 +
  7 +// Setting this to false will result in smaller output, but no support for ie7 hacks
  8 +$legacy-support-for-ie7: $legacy-support-for-ie !default;
  9 +
  10 +// Setting this to false will result in smaller output, but no support for legacy ie8 hacks
  11 +$legacy-support-for-ie8: $legacy-support-for-ie !default;
  12 +
  13 +// @private
  14 +// The user can simply set $legacy-support-for-ie and 6, 7, and 8 will be set accordingly,
  15 +// But in case the user set each of those explicitly, we need to sync the value of
  16 +// this combined variable.
  17 +$legacy-support-for-ie: $legacy-support-for-ie6 or $legacy-support-for-ie7 or $legacy-support-for-ie8;
  18 +
  19 +// Whether to output legacy support for mozilla.
  20 +// Usually this means hacks to support Firefox 3.6 or earlier.
  21 +$legacy-support-for-mozilla: true;
  22 +
  23 +// Support for mozilla in experimental css3 properties (-moz).
  24 +$experimental-support-for-mozilla : true !default;
  25 +// Support for webkit in experimental css3 properties (-webkit).
  26 +$experimental-support-for-webkit : true !default;
  27 +// Support for webkit's original (non-standard) gradient syntax.
  28 +$support-for-original-webkit-gradients : true !default;
  29 +// Support for opera in experimental css3 properties (-o).
  30 +$experimental-support-for-opera : true !default;
  31 +// Support for microsoft in experimental css3 properties (-ms).
  32 +$experimental-support-for-microsoft : true !default;
  33 +// Support for khtml in experimental css3 properties (-khtml).
  34 +$experimental-support-for-khtml : false !default;
  35 +// Support for svg in experimental css3 properties.
  36 +// Setting this to true might add significant size to your
  37 +// generated stylesheets.
  38 +$experimental-support-for-svg : false !default;
  39 +// Support for CSS PIE in experimental css3 properties (-pie).
  40 +$experimental-support-for-pie : false !default;
... ...
forum/static/css/compass/_typography.scss
... ... @@ -0,0 +1,4 @@
  1 +@import "typography/links";
  2 +@import "typography/lists";
  3 +@import "typography/text";
  4 +@import "typography/vertical_rhythm";
... ...
forum/static/css/compass/_utilities.scss
... ... @@ -0,0 +1,9 @@
  1 +@import "utilities/color";
  2 +@import "utilities/general";
  3 +@import "utilities/sprites";
  4 +@import "utilities/tables";
  5 +
  6 +// deprecated
  7 +@import "typography/links";
  8 +@import "typography/lists";
  9 +@import "typography/text";
... ...
forum/static/css/compass/css3/_appearance.scss
... ... @@ -0,0 +1,17 @@
  1 +@import "shared";
  2 +
  3 +// Change the appearance for Mozilla, Webkit and possibly the future.
  4 +// The appearance property is currently not present in any newer CSS specification.
  5 +//
  6 +// There is no official list of accepted values, but you might check these source:
  7 +//
  8 +// * [Mozilla](https://developer.mozilla.org/en/CSS/-moz-appearance)
  9 +// * [Webkit](http://code.google.com/p/webkit-mirror/source/browse/Source/WebCore/css/CSSValueKeywords.in?spec=svnf1aea559dcd025a8946aa7da6e4e8306f5c1b604&r=63c7d1af44430b314233fea342c3ddb2a052e365)
  10 +// (search for 'appearance' within the page)
  11 +
  12 +@mixin appearance($ap) {
  13 + $ap: unquote($ap);
  14 + @include experimental(appearance, $ap,
  15 + -moz, -webkit, not -o, not -ms, not -khtml, official
  16 + );
  17 +}
... ...
forum/static/css/compass/css3/_background-clip.scss
... ... @@ -0,0 +1,43 @@
  1 +@import "shared";
  2 +
  3 +// The default value is `padding-box` -- the box model used by modern browsers.
  4 +//
  5 +// If you wish to do so, you can override the default constant with `border-box`
  6 +//
  7 +// To override to the default border-box model, use this code:
  8 +// $default-background-clip: border-box
  9 +
  10 +$default-background-clip: padding-box !default;
  11 +
  12 +// Clip the background (image and color) at the edge of the padding or border.
  13 +//
  14 +// Legal Values:
  15 +//
  16 +// * padding-box
  17 +// * border-box
  18 +// * text
  19 +
  20 +@mixin background-clip($clip: $default-background-clip) {
  21 + // webkit and mozilla use the deprecated short [border | padding]
  22 + $clip: unquote($clip);
  23 + $deprecated: $clip;
  24 + @if $clip == padding-box { $deprecated: padding; }
  25 + @if $clip == border-box { $deprecated: border; }
  26 + // Support for webkit and mozilla's use of the deprecated short form
  27 + @include experimental(background-clip, $deprecated,
  28 + -moz,
  29 + -webkit,
  30 + not -o,
  31 + not -ms,
  32 + not -khtml,
  33 + not official
  34 + );
  35 + @include experimental(background-clip, $clip,
  36 + not -moz,
  37 + not -webkit,
  38 + not -o,
  39 + not -ms,
  40 + -khtml,
  41 + official
  42 + );
  43 +}
... ...
forum/static/css/compass/css3/_background-origin.scss
... ... @@ -0,0 +1,42 @@
  1 +// Override `$default-background-origin` to change the default.
  2 +
  3 +@import "shared";
  4 +
  5 +$default-background-origin: content-box !default;
  6 +
  7 +// Position the background off the edge of the padding, border or content
  8 +//
  9 +// * Possible values:
  10 +// * `padding-box`
  11 +// * `border-box`
  12 +// * `content-box`
  13 +// * browser defaults to `padding-box`
  14 +// * mixin defaults to `content-box`
  15 +
  16 +
  17 +@mixin background-origin($origin: $default-background-origin) {
  18 + $origin: unquote($origin);
  19 + // webkit and mozilla use the deprecated short [border | padding | content]
  20 + $deprecated: $origin;
  21 + @if $origin == padding-box { $deprecated: padding; }
  22 + @if $origin == border-box { $deprecated: border; }
  23 + @if $origin == content-box { $deprecated: content; }
  24 +
  25 + // Support for webkit and mozilla's use of the deprecated short form
  26 + @include experimental(background-origin, $deprecated,
  27 + -moz,
  28 + -webkit,
  29 + not -o,
  30 + not -ms,
  31 + not -khtml,
  32 + not official
  33 + );
  34 + @include experimental(background-origin, $origin,
  35 + not -moz,
  36 + not -webkit,
  37 + -o,
  38 + -ms,
  39 + -khtml,
  40 + official
  41 + );
  42 +}
... ...
forum/static/css/compass/css3/_background-size.scss
... ... @@ -0,0 +1,26 @@
  1 +@import "shared";
  2 +
  3 +// override to change the default
  4 +$default-background-size: 100% auto !default;
  5 +
  6 +// Set the size of background images using px, width and height, or percentages.
  7 +// Currently supported in: Opera, Gecko, Webkit.
  8 +//
  9 +// * percentages are relative to the background-origin (default = padding-box)
  10 +// * mixin defaults to: `$default-background-size`
  11 +@mixin background-size(
  12 + $size-1: $default-background-size,
  13 + $size-2: false,
  14 + $size-3: false,
  15 + $size-4: false,
  16 + $size-5: false,
  17 + $size-6: false,
  18 + $size-7: false,
  19 + $size-8: false,
  20 + $size-9: false,
  21 + $size-10: false
  22 +) {
  23 + $size-1: if(type-of($size-1) == string, unquote($size-1), $size-1);
  24 + $sizes: compact($size-1, $size-2, $size-3, $size-4, $size-5, $size-6, $size-7, $size-8, $size-9, $size-10);
  25 + @include experimental(background-size, $sizes, -moz, -webkit, -o, not -ms, not -khtml);
  26 +}
... ...
forum/static/css/compass/css3/_border-radius.scss
... ... @@ -0,0 +1,130 @@
  1 +@import "shared";
  2 +
  3 +$default-border-radius: 5px !default;
  4 +
  5 +// Round all corners by a specific amount, defaults to value of `$default-border-radius`.
  6 +//
  7 +// When two values are passed, the first is the horizontal radius
  8 +// and the second is the vertical radius.
  9 +//
  10 +// Note: webkit does not support shorthand syntax for several corners at once.
  11 +// So in the case where you pass several values only the first will be passed to webkit.
  12 +//
  13 +// Examples:
  14 +//
  15 +// .simple { @include border-radius(4px, 4px); }
  16 +// .compound { @include border-radius(2px 5px, 3px 6px); }
  17 +// .crazy { @include border-radius(1px 3px 5px 7px, 2px 4px 6px 8px)}
  18 +//
  19 +// Which generates:
  20 +//
  21 +// .simple {
  22 +// -webkit-border-radius: 4px 4px;
  23 +// -moz-border-radius: 4px / 4px;
  24 +// -khtml-border-radius: 4px / 4px;
  25 +// border-radius: 4px / 4px; }
  26 +//
  27 +// .compound {
  28 +// -webkit-border-radius: 2px 3px;
  29 +// -moz-border-radius: 2px 5px / 3px 6px;
  30 +// -khtml-border-radius: 2px 5px / 3px 6px;
  31 +// border-radius: 2px 5px / 3px 6px; }
  32 +//
  33 +// .crazy {
  34 +// -webkit-border-radius: 1px 2px;
  35 +// -moz-border-radius: 1px 3px 5px 7px / 2px 4px 6px 8px;
  36 +// -khtml-border-radius: 1px 3px 5px 7px / 2px 4px 6px 8px;
  37 +// border-radius: 1px 3px 5px 7px / 2px 4px 6px 8px; }
  38 +
  39 +@mixin border-radius($radius: $default-border-radius, $vertical-radius: false) {
  40 +
  41 + @if $vertical-radius {
  42 + // Webkit doesn't understand the official shorthand syntax for specifying
  43 + // a vertical radius unless so in case there's several we only take the first.
  44 + @include experimental(border-radius, first-value-of($radius) first-value-of($vertical-radius),
  45 + not -moz,
  46 + -webkit,
  47 + not -o,
  48 + not -ms,
  49 + not -khtml,
  50 + not official
  51 + );
  52 + @include experimental("border-radius", $radius unquote("/") $vertical-radius,
  53 + -moz,
  54 + not -webkit,
  55 + not -o,
  56 + not -ms,
  57 + -khtml,
  58 + official
  59 + );
  60 + }
  61 + @else {
  62 + @include experimental(border-radius, $radius);
  63 + }
  64 +}
  65 +
  66 +// Round radius at position by amount.
  67 +//
  68 +// * legal values for `$vert`: `top`, `bottom`
  69 +// * legal values for `$horz`: `left`, `right`
  70 +
  71 +@mixin border-corner-radius($vert, $horz, $radius: $default-border-radius) {
  72 + // Support for mozilla's syntax for specifying a corner
  73 + @include experimental("border-radius-#{$vert}#{$horz}", $radius,
  74 + -moz,
  75 + not -webkit,
  76 + not -o,
  77 + not -ms,
  78 + not -khtml,
  79 + not official
  80 + );
  81 + @include experimental("border-#{$vert}-#{$horz}-radius", $radius,
  82 + not -moz,
  83 + -webkit,
  84 + not -o,
  85 + not -ms,
  86 + -khtml,
  87 + official
  88 + );
  89 +
  90 +}
  91 +
  92 +// Round top-left corner only
  93 +
  94 +@mixin border-top-left-radius($radius: $default-border-radius) {
  95 + @include border-corner-radius(top, left, $radius); }
  96 +
  97 +// Round top-right corner only
  98 +
  99 +@mixin border-top-right-radius($radius: $default-border-radius) {
  100 + @include border-corner-radius(top, right, $radius); }
  101 +
  102 +// Round bottom-left corner only
  103 +
  104 +@mixin border-bottom-left-radius($radius: $default-border-radius) {
  105 + @include border-corner-radius(bottom, left, $radius); }
  106 +
  107 +// Round bottom-right corner only
  108 +
  109 +@mixin border-bottom-right-radius($radius: $default-border-radius) {
  110 + @include border-corner-radius(bottom, right, $radius); }
  111 +
  112 +// Round both top corners by amount
  113 +@mixin border-top-radius($radius: $default-border-radius) {
  114 + @include border-top-left-radius($radius);
  115 + @include border-top-right-radius($radius); }
  116 +
  117 +// Round both right corners by amount
  118 +@mixin border-right-radius($radius: $default-border-radius) {
  119 + @include border-top-right-radius($radius);
  120 + @include border-bottom-right-radius($radius); }
  121 +
  122 +// Round both bottom corners by amount
  123 +@mixin border-bottom-radius($radius: $default-border-radius) {
  124 + @include border-bottom-left-radius($radius);
  125 + @include border-bottom-right-radius($radius); }
  126 +
  127 +// Round both left corners by amount
  128 +@mixin border-left-radius($radius: $default-border-radius) {
  129 + @include border-top-left-radius($radius);
  130 + @include border-bottom-left-radius($radius); }
... ...
forum/static/css/compass/css3/_box-shadow.scss
... ... @@ -0,0 +1,76 @@
  1 +// @doc off
  2 +// These defaults make the arguments optional for this mixin
  3 +// If you like, set different defaults before importing.
  4 +// @doc on
  5 +
  6 +@import "shared";
  7 +
  8 +
  9 +// The default color for box shadows
  10 +$default-box-shadow-color: #333333 !default;
  11 +
  12 +// The default horizontal offset. Positive is to the right.
  13 +$default-box-shadow-h-offset: 0px !default;
  14 +
  15 +// The default vertical offset. Positive is down.
  16 +$default-box-shadow-v-offset: 0px !default;
  17 +
  18 +// The default blur length.
  19 +$default-box-shadow-blur: 5px !default;
  20 +
  21 +// The default spread length.
  22 +$default-box-shadow-spread : false !default;
  23 +
  24 +// The default shadow inset: inset or false (for standard shadow).
  25 +$default-box-shadow-inset : false !default;
  26 +
  27 +// Provides cross-browser for Webkit, Gecko, and CSS3 box shadows when one or more box
  28 +// shadows are needed.
  29 +// Each shadow argument should adhere to the standard css3 syntax for the
  30 +// box-shadow property.
  31 +@mixin box-shadow(
  32 + $shadow-1 : default,
  33 + $shadow-2 : false,
  34 + $shadow-3 : false,
  35 + $shadow-4 : false,
  36 + $shadow-5 : false,
  37 + $shadow-6 : false,
  38 + $shadow-7 : false,
  39 + $shadow-8 : false,
  40 + $shadow-9 : false,
  41 + $shadow-10: false
  42 +) {
  43 + @if $shadow-1 == default {
  44 + $shadow-1 : -compass-space-list(compact(if($default-box-shadow-inset, inset, false), $default-box-shadow-h-offset, $default-box-shadow-v-offset, $default-box-shadow-blur, $default-box-shadow-spread, $default-box-shadow-color));
  45 + }
  46 + $shadow : compact($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10);
  47 + @include experimental(box-shadow, $shadow,
  48 + -moz, -webkit, not -o, not -ms, not -khtml, official
  49 + );
  50 +}
  51 +
  52 +// Provides a single cross-browser CSS box shadow for Webkit, Gecko, and CSS3.
  53 +// Includes default arguments for color, horizontal offset, vertical offset, blur length, spread length, and inset.
  54 +@mixin single-box-shadow(
  55 + $color : $default-box-shadow-color,
  56 + $hoff : $default-box-shadow-h-offset,
  57 + $voff : $default-box-shadow-v-offset,
  58 + $blur : $default-box-shadow-blur,
  59 + $spread : $default-box-shadow-spread,
  60 + $inset : $default-box-shadow-inset
  61 +) {
  62 + @if not ($inset == true or $inset == false or $inset == inset) {
  63 + @warn "$inset expected to be true or the inset keyword. Got #{$inset} instead. Using: inset";
  64 + }
  65 +
  66 + @if $color == none {
  67 + @include box-shadow(none);
  68 + } @else {
  69 + $full : $hoff $voff;
  70 + @if $blur { $full: $full $blur; }
  71 + @if $spread { $full: $full $spread; }
  72 + @if $color { $full: $full $color; }
  73 + @if $inset { $full: inset $full; }
  74 + @include box-shadow($full);
  75 + }
  76 +}
... ...
forum/static/css/compass/css3/_box-sizing.scss
... ... @@ -0,0 +1,13 @@
  1 +@import "shared";
  2 +
  3 +// Change the box model for Mozilla, Webkit, IE8 and the future
  4 +//
  5 +// @param $bs
  6 +// [ content-box | border-box ]
  7 +
  8 +@mixin box-sizing($bs) {
  9 + $bs: unquote($bs);
  10 + @include experimental(box-sizing, $bs,
  11 + -moz, -webkit, not -o, not -ms, not -khtml, official
  12 + );
  13 +}
... ...
forum/static/css/compass/css3/_box.scss
... ... @@ -0,0 +1,111 @@
  1 +@import "shared";
  2 +
  3 +// display:box; must be used for any of the other flexbox mixins to work properly
  4 +@mixin display-box {
  5 + @include experimental-value(display, box,
  6 + -moz, -webkit, not -o, -ms, not -khtml, official
  7 + );
  8 +}
  9 +
  10 +// Default box orientation, assuming that the user wants something less block-like
  11 +$default-box-orient: horizontal !default;
  12 +
  13 +// Box orientation [ horizontal | vertical | inline-axis | block-axis | inherit ]
  14 +@mixin box-orient(
  15 + $orientation: $default-box-orient
  16 +) {
  17 + $orientation : unquote($orientation);
  18 + @include experimental(box-orient, $orientation,
  19 + -moz, -webkit, not -o, -ms, not -khtml, official
  20 + );
  21 +}
  22 +
  23 +// Default box-align
  24 +$default-box-align: stretch !default;
  25 +
  26 +// Box align [ start | end | center | baseline | stretch ]
  27 +@mixin box-align(
  28 + $alignment: $default-box-align
  29 +) {
  30 + $alignment : unquote($alignment);
  31 + @include experimental(box-align, $alignment,
  32 + -moz, -webkit, not -o, -ms, not -khtml, official
  33 + );
  34 +}
  35 +
  36 +// Default box flex
  37 +$default-box-flex: 0 !default;
  38 +
  39 +// mixin which takes an int argument for box flex. Apply this to the children inside the box.
  40 +//
  41 +// For example: "div.display-box > div.child-box" would get the box flex mixin.
  42 +@mixin box-flex(
  43 + $flex: $default-box-flex
  44 +) {
  45 + @include experimental(box-flex, $flex,
  46 + -moz, -webkit, not -o, -ms, not -khtml, official
  47 + );
  48 +}
  49 +
  50 +// Default flex group
  51 +$default-box-flex-group: 1 !default;
  52 +
  53 +// mixin which takes an int argument for flexible grouping
  54 +@mixin box-flex-group(
  55 + $group: $default-box-flex-group
  56 +) {
  57 + @include experimental(box-flex-group, $group,
  58 + -moz, -webkit, not -o, -ms, not -khtml, official
  59 + );
  60 +}
  61 +
  62 +// default for ordinal group
  63 +$default-box-ordinal-group: 1 !default;
  64 +
  65 +// mixin which takes an int argument for ordinal grouping and rearranging the order
  66 +@mixin box-ordinal-group(
  67 + $group: $default-ordinal-flex-group
  68 +) {
  69 + @include experimental(box-ordinal-group, $group,
  70 + -moz, -webkit, not -o, -ms, not -khtml, official
  71 + );
  72 +}
  73 +
  74 +// Box direction default value
  75 +$default-box-direction: normal !default;
  76 +
  77 +// mixin for box-direction [ normal | reverse | inherit ]
  78 +@mixin box-direction(
  79 + $direction: $default-box-direction
  80 +) {
  81 + $direction: unquote($direction);
  82 + @include experimental(box-direction, $direction,
  83 + -moz, -webkit, not -o, -ms, not -khtml, official
  84 + );
  85 +}
  86 +
  87 +// default for box lines
  88 +$default-box-lines: single !default;
  89 +
  90 +// mixin for box lines [ single | multiple ]
  91 +@mixin box-lines(
  92 + $lines: $default-box-lines
  93 +) {
  94 + $lines: unquote($lines);
  95 + @include experimental(box-lines, $lines,
  96 + -moz, -webkit, not -o, -ms, not -khtml, official
  97 + );
  98 +}
  99 +
  100 +// default for box pack
  101 +$default-box-pack: start !default;
  102 +
  103 +// mixin for box pack [ start | end | center | justify ]
  104 +@mixin box-pack(
  105 + $pack: $default-box-pack
  106 +) {
  107 + $pack: unquote($pack);
  108 + @include experimental(box-pack, $pack,
  109 + -moz, -webkit, not -o, -ms, not -khtml, official
  110 + );
  111 +}
0 112 \ No newline at end of file
... ...
forum/static/css/compass/css3/_columns.scss
... ... @@ -0,0 +1,148 @@
  1 +@import "shared";
  2 +
  3 +// Specify the shorthand `columns` property.
  4 +//
  5 +// Example:
  6 +//
  7 +// @include columns(20em 2)
  8 +@mixin columns($width-and-count) {
  9 + @include experimental(columns, $width-and-count,
  10 + -moz, -webkit, -o, -ms, not -khtml, official
  11 + );
  12 +}
  13 +
  14 +// Specify the number of columns
  15 +@mixin column-count($count) {
  16 + @include experimental(column-count, $count,
  17 + -moz, -webkit, -o, -ms, not -khtml, official
  18 + );
  19 +}
  20 +
  21 +// Specify the gap between columns e.g. `20px`
  22 +@mixin column-gap($width) {
  23 + @include experimental(column-gap, $width,
  24 + -moz, -webkit, -o, -ms, not -khtml, official
  25 + );
  26 +}
  27 +
  28 +// Specify the width of columns e.g. `100px`
  29 +@mixin column-width($width) {
  30 + @include experimental(column-width, $width,
  31 + -moz, -webkit, -o, -ms, not -khtml, official
  32 + );
  33 +}
  34 +
  35 +// Specify the width of the rule between columns e.g. `1px`
  36 +@mixin column-rule-width($width) {
  37 + @include experimental(column-rule-width, $width,
  38 + -moz, -webkit, -o, -ms, not -khtml, official
  39 + );
  40 +}
  41 +
  42 +// Specify the style of the rule between columns e.g. `dotted`.
  43 +// This works like border-style.
  44 +@mixin column-rule-style($style) {
  45 + @include experimental(column-rule-style, unquote($style),
  46 + -moz, -webkit, -o, -ms, not -khtml, official
  47 + );
  48 +}
  49 +
  50 +// Specify the color of the rule between columns e.g. `blue`.
  51 +// This works like border-color.
  52 +@mixin column-rule-color($color) {
  53 + @include experimental(column-rule-color, $color,
  54 + -moz, -webkit, -o, -ms, not -khtml, official
  55 + );
  56 +}
  57 +
  58 +// Mixin encompassing all column rule properties
  59 +// For example:
  60 +//
  61 +// @include column-rule(1px, solid, #c00)
  62 +//
  63 +// Or the values can be space separated:
  64 +//
  65 +// @include column-rule(1px solid #c00)
  66 +@mixin column-rule($width, $style: false, $color: false) {
  67 + $full : -compass-space-list(compact($width, $style, $color));
  68 + @include experimental(column-rule, $full,
  69 + -moz, -webkit, -o, -ms, not -khtml, official
  70 + );
  71 +}
  72 +
  73 +// Mixin for setting column-break-before
  74 +//
  75 +// * legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
  76 +//
  77 +// Example:
  78 +// h2.before {@include column-break-before(always);}
  79 +//
  80 +// Which generates:
  81 +//
  82 +// h2.before {
  83 +// -webkit-column-break-before: always;
  84 +// column-break-before: always;}
  85 +@mixin column-break-before($value: auto){
  86 + @include experimental(column-break-before, $value, not -moz, -webkit, not -o, not -ms, not -khtml, official );
  87 +}
  88 +
  89 +// Mixin for setting column-break-after
  90 +//
  91 +// * legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
  92 +//
  93 +// Example:
  94 +// h2.after {@include column-break-after(always); }
  95 +//
  96 +// Which generates:
  97 +//
  98 +// h2.after {
  99 +// -webkit-column-break-after: always;
  100 +// column-break-after: always; }
  101 +@mixin column-break-after($value: auto){
  102 + @include experimental(column-break-after, $value, not -moz, -webkit, not -o, not -ms, not -khtml, official );
  103 +}
  104 +
  105 +// Mixin for setting column-break-inside
  106 +//
  107 +// * legal values are auto, avoid, avoid-page, avoid-column
  108 +//
  109 +// Example:
  110 +// h2.inside {@include column-break-inside();}
  111 +// Which generates:
  112 +//
  113 +// h2.inside {
  114 +// -webkit-column-break-inside: auto;
  115 +// column-break-inside: auto;}
  116 +@mixin column-break-inside($value: auto){
  117 + @include experimental(column-break-inside, $value, not -moz, -webkit, not -o, not -ms, not -khtml, official );
  118 +}
  119 +
  120 +// All-purpose mixin for setting column breaks.
  121 +//
  122 +// * legal values for $type : before, after, inside
  123 +// * legal values for '$value' are dependent on $type
  124 +// * when $type = before, legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
  125 +// * when $type = after, legal values are auto, always, avoid, left, right, page, column, avoid-page, avoid-column
  126 +// * when $type = inside, legal values are auto, avoid, avoid-page, avoid-column
  127 +//
  128 +// Examples:
  129 +// h2.before {@include column-break(before, always);}
  130 +// h2.after {@include column-break(after, always); }
  131 +// h2.inside {@include column-break(inside); }
  132 +//
  133 +// Which generates:
  134 +// h2.before {
  135 +// -webkit-column-break-before: always;
  136 +// column-break-before: always;}
  137 +//
  138 +// h2.after {
  139 +// -webkit-column-break-after: always;
  140 +// column-break-after: always; }
  141 +//
  142 +// h2.inside {
  143 +// -webkit-column-break-inside: auto;
  144 +// column-break-inside: auto;}
  145 +
  146 +@mixin column-break($type: before, $value: auto){
  147 + @include experimental("column-break-#{$type}", $value, not -moz, -webkit, not -o, not -ms, not -khtml, official );
  148 +}
0 149 \ No newline at end of file
... ...
forum/static/css/compass/css3/_filter.scss
... ... @@ -0,0 +1,23 @@
  1 +@import "shared";
  2 +
  3 +// Provides cross-browser support for the upcoming (?) css3 filter property.
  4 +//
  5 +// Each filter argument should adhere to the standard css3 syntax for the
  6 +// filter property.
  7 +@mixin filter (
  8 + $filter-1,
  9 + $filter-2 : false,
  10 + $filter-3 : false,
  11 + $filter-4 : false,
  12 + $filter-5 : false,
  13 + $filter-6 : false,
  14 + $filter-7 : false,
  15 + $filter-8 : false,
  16 + $filter-9 : false,
  17 + $filter-10: false
  18 +) {
  19 + $filter : compact($filter-1, $filter-2, $filter-3, $filter-4, $filter-5, $filter-6, $filter-7, $filter-8, $filter-9, $filter-10);
  20 + @include experimental(filter, $filter,
  21 + -moz, -webkit, not -o, not -ms, not -khtml, official
  22 + );
  23 +}
... ...
forum/static/css/compass/css3/_font-face.scss
... ... @@ -0,0 +1,48 @@
  1 +@import "shared";
  2 +
  3 +// Cross-browser support for @font-face. Supports IE, Gecko, Webkit, Opera.
  4 +//
  5 +// * $name is required, arbitrary, and what you will use in font stacks.
  6 +// * $font-files is required using font-files('relative/location', 'format').
  7 +// for best results use this order: woff, opentype/truetype, svg
  8 +// * $eot is required by IE, and is a relative location of the eot file.
  9 +// * $weight shows if the font is bold, defaults to normal
  10 +// * $style defaults to normal, might be also italic
  11 +// * For android 2.2 Compatiblity, please ensure that your web page has
  12 +// a meta viewport tag.
  13 +// * To support iOS < 4.2, an SVG file must be provided
  14 +//
  15 +// If you need to generate other formats check out the Font Squirrel
  16 +// [font generator](http://www.fontsquirrel.com/fontface/generator)
  17 +//
  18 +
  19 +// In order to refer to a specific style of the font in your stylesheets as
  20 +// e.g. "font-style: italic;", you may add a couple of @font-face includes
  21 +// containing the respective font files for each style and specying
  22 +// respective the $style parameter.
  23 +
  24 +// Order of the includes matters, and it is: normal, bold, italic, bold+italic.
  25 +
  26 +@mixin font-face(
  27 + $name,
  28 + $font-files,
  29 + $eot: false,
  30 + $weight: false,
  31 + $style: false
  32 +) {
  33 + $iefont: unquote("#{$eot}?#iefix");
  34 + @font-face {
  35 + font-family: quote($name);
  36 + @if $eot {
  37 + src: font-url($eot);
  38 + $font-files: font-url($iefont) unquote("format('eot')"), $font-files;
  39 + }
  40 + src: $font-files;
  41 + @if $weight {
  42 + font-weight: $weight;
  43 + }
  44 + @if $style {
  45 + font-style: $style;
  46 + }
  47 + }
  48 +}
... ...
forum/static/css/compass/css3/_hyphenation.scss
... ... @@ -0,0 +1,77 @@
  1 +@import "shared";
  2 +
  3 +// Mixins to support specific CSS Text Level 3 elements
  4 +//
  5 +//
  6 +//
  7 +// Mixin for word-break properties
  8 +// http://www.w3.org/css3-text/#word-break
  9 +// * legal values for $type : normal, keep-all, break-all
  10 +//
  11 +// Example:
  12 +// p.wordBreak {@include word-break(break-all);}
  13 +//
  14 +// Which generates:
  15 +// p.wordBreak {
  16 +// -ms-word-break: break-all;
  17 +// word-break: break-all;
  18 +// word-break: break-word;}
  19 +//
  20 +@mixin word-break($value: normal){
  21 + @if $value == break-all {
  22 + //Most browsers handle the break-all case the same...
  23 + @include experimental(word-break, $value,
  24 + not -moz, not -webkit, not -o, -ms, not -khtml, official
  25 + );
  26 + //Webkit handles break-all differently... as break-word
  27 + @include experimental(word-break, break-word,
  28 + not -moz, not -webkit, not -o, not -ms, not -khtml, official
  29 + );
  30 + }
  31 + @else {
  32 + @include experimental(word-break, $value,
  33 + not -moz, not -webkit, not -o, -ms, not -khtml, official
  34 + );
  35 + }
  36 +}
  37 +
  38 +// Mixin for the hyphens property
  39 +//
  40 +// W3C specification: http://www.w3.org/TR/css3-text/#hyphens
  41 +// * legal values for $type : auto, manual, none
  42 +//
  43 +// Example:
  44 +// p {
  45 +// @include hyphens(auto);}
  46 +// Which generates:
  47 +// p {
  48 +// -moz-hyphens: auto;
  49 +// -webkit-hyphens: auto;
  50 +// hyphens: auto;}
  51 +//
  52 +@mixin hyphens($value: auto){
  53 + @include experimental(hyphens, $value,
  54 + -moz, -webkit, not -o, not -ms, not -khtml, official
  55 + );
  56 +}
  57 +
  58 +// Mixin for x-browser hyphenation based on @auchenberg's post:
  59 +// Removes the need for the <wbr/> HTML tag
  60 +// http://blog.kenneth.io/blog/2012/03/04/word-wrapping-hypernation-using-css/
  61 +//
  62 +// Example:
  63 +// div {@include hyphenation;}
  64 +//
  65 +// Which generates:
  66 +// div {
  67 +// -ms-word-break: break-all;
  68 +// word-break: break-all;
  69 +// word-break: break-word;
  70 +// -moz-hyphens: auto;
  71 +// -webkit-hyphens: auto;
  72 +// hyphens: auto;}
  73 +//
  74 +@mixin hyphenation{
  75 + @include word-break(break-all);
  76 + @include hyphens;
  77 +}
... ...
forum/static/css/compass/css3/_images.scss
... ... @@ -0,0 +1,132 @@
  1 +@import "shared";
  2 +@import "compass/utilities/general/hacks";
  3 +
  4 +// Background property support for vendor prefixing within values.
  5 +@mixin background(
  6 + $background-1,
  7 + $background-2: false,
  8 + $background-3: false,
  9 + $background-4: false,
  10 + $background-5: false,
  11 + $background-6: false,
  12 + $background-7: false,
  13 + $background-8: false,
  14 + $background-9: false,
  15 + $background-10: false
  16 +) {
  17 + $backgrounds: compact($background-1, $background-2, $background-3, $background-4, $background-5,
  18 + $background-6, $background-7, $background-8, $background-9, $background-10);
  19 + $mult-bgs: -compass-list-size($backgrounds) > 1;
  20 + $add-pie-bg: prefixed(-pie, $backgrounds) or $mult-bgs;
  21 + @if $experimental-support-for-svg and prefixed(-svg, $backgrounds) { background: -svg($backgrounds); }
  22 + @if $support-for-original-webkit-gradients and prefixed(-owg, $backgrounds) { background: -owg($backgrounds); }
  23 + @if $experimental-support-for-webkit and prefixed(-webkit, $backgrounds) { background: -webkit($backgrounds); }
  24 + @if $experimental-support-for-mozilla and prefixed(-moz, $backgrounds) { background: -moz($backgrounds); }
  25 + @if $experimental-support-for-opera and prefixed(-o, $backgrounds) { background: -o($backgrounds); }
  26 + @if $experimental-support-for-pie and $add-pie-bg { -pie-background: -pie($backgrounds); }
  27 + background: $backgrounds ;
  28 +}
  29 +
  30 +@mixin background-with-css2-fallback(
  31 + $background-1,
  32 + $background-2: false,
  33 + $background-3: false,
  34 + $background-4: false,
  35 + $background-5: false,
  36 + $background-6: false,
  37 + $background-7: false,
  38 + $background-8: false,
  39 + $background-9: false,
  40 + $background-10: false
  41 +) {
  42 + $backgrounds: compact($background-1, $background-2, $background-3, $background-4, $background-5,
  43 + $background-6, $background-7, $background-8, $background-9, $background-10);
  44 + $mult-bgs: -compass-list-size($backgrounds) > 1;
  45 + $simple-background: if($mult-bgs or prefixed(-css2, $backgrounds), -css2(-compass-nth($backgrounds, last)), false);
  46 + @if not blank($simple-background) { background: $simple-background; }
  47 + @include background($background-1, $background-2, $background-3, $background-4, $background-5,
  48 + $background-6, $background-7, $background-8, $background-9, $background-10);
  49 +}
  50 +
  51 +
  52 +// Background image property support for vendor prefixing within values.
  53 +@mixin background-image(
  54 + $image-1,
  55 + $image-2: false,
  56 + $image-3: false,
  57 + $image-4: false,
  58 + $image-5: false,
  59 + $image-6: false,
  60 + $image-7: false,
  61 + $image-8: false,
  62 + $image-9: false,
  63 + $image-10: false
  64 +) {
  65 + $images: compact($image-1, $image-2, $image-3, $image-4, $image-5, $image-6, $image-7, $image-8, $image-9, $image-10);
  66 + $add-pie-bg: prefixed(-pie, $images) or -compass-list-size($images) > 1;
  67 +
  68 + @if $experimental-support-for-svg and prefixed(-svg, $images) { background-image: -svg($images); background-size: 100%; }
  69 + @if $support-for-original-webkit-gradients and prefixed(-owg, $images) { background-image: -owg($images); }
  70 + @if $experimental-support-for-webkit and prefixed(-webkit, $images) { background-image: -webkit($images); }
  71 + @if $experimental-support-for-mozilla and prefixed(-moz, $images) { background-image: -moz($images); }
  72 + @if $experimental-support-for-opera and prefixed(-o, $images) { background-image: -o($images); }
  73 + @if $experimental-support-for-pie and $add-pie-bg { @warn "PIE does not support background-image. Use @include background(#{$images}) instead." }
  74 + background-image: $images ;
  75 +}
  76 +
  77 +// Emit a IE-Specific filters that renders a simple linear gradient.
  78 +// For use in IE 6 - 8. Best practice would have you apply this via a
  79 +// conditional IE stylesheet, but if you must, you should place this before
  80 +// any background-image properties that you have specified.
  81 +//
  82 +// For the `$orientation` parameter, you can pass `vertical` or `horizontal`.
  83 +@mixin filter-gradient($start-color, $end-color, $orientation: vertical) {
  84 + @include has-layout;
  85 + $gradient-type: if($orientation == vertical, 0, 1);
  86 + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 or $legacy-support-for-ie8 {
  87 + filter: progid:DXImageTransform.Microsoft.gradient(gradientType=#{$gradient-type}, startColorstr='#{ie-hex-str($start-color)}', endColorstr='#{ie-hex-str($end-color)}');
  88 + }
  89 +}
  90 +
  91 +
  92 +// Border image property support for vendor prefixing properties and values.
  93 +@mixin border-image($value) {
  94 + @if $experimental-support-for-mozilla { -moz-border-image: -moz(reject(-compass-list($value), fill)); }
  95 + @if $support-for-original-webkit-gradients { -webkit-border-image: -owg(reject(-compass-list($value), fill)); }
  96 + @if $experimental-support-for-webkit { -webkit-border-image: -webkit(reject(-compass-list($value), fill)); }
  97 + @if $experimental-support-for-opera { -o-border-image: -o(reject(-compass-list($value), fill)); }
  98 + @if $experimental-support-for-svg { border-image: -svg(reject(-compass-list($value), fill)); }
  99 + border-image: $value;
  100 +}
  101 +
  102 +// List style image property support for vendor prefixing within values.
  103 +@mixin list-style-image($image) {
  104 + @if $experimental-support-for-mozilla and prefixed(-moz, $image) { list-style-image: -moz($image); }
  105 + @if $support-for-original-webkit-gradients and prefixed(-owg, $image) { list-style-image: -owg($image); }
  106 + @if $experimental-support-for-webkit and prefixed(-webkit, $image) { list-style-image: -webkit($image); }
  107 + @if $experimental-support-for-opera and prefixed(-o, $image) { list-style-image: -o($image); }
  108 + @if $experimental-support-for-svg and prefixed(-svg, $image) { list-style-image: -svg($image); }
  109 + list-style-image: $image ;
  110 +}
  111 +
  112 +// List style property support for vendor prefixing within values.
  113 +@mixin list-style($value) {
  114 + $value: -compass-list($value);
  115 + @if $experimental-support-for-mozilla and prefixed(-moz, $value) { list-style-image: -moz($value); }
  116 + @if $support-for-original-webkit-gradients and prefixed(-owg, $value) { list-style-image: -owg($value); }
  117 + @if $experimental-support-for-webkit and prefixed(-webkit, $value) { list-style-image: -webkit($value); }
  118 + @if $experimental-support-for-opera and prefixed(-o, $value) { list-style-image: -o($value); }
  119 + @if $experimental-support-for-svg and prefixed(-svg, $value) { list-style-image: -svg($value); }
  120 + list-style-image: $value ;
  121 +}
  122 +
  123 +// content property support for vendor prefixing within values.
  124 +@mixin content($value) {
  125 + $value: -compass-list($value);
  126 + @if $experimental-support-for-mozilla and prefixed(-moz, $value) { content: -moz($value); }
  127 + @if $support-for-original-webkit-gradients and prefixed(-owg, $value) { content: -owg($value); }
  128 + @if $experimental-support-for-webkit and prefixed(-webkit, $value) { content: -webkit($value); }
  129 + @if $experimental-support-for-opera and prefixed(-o, $value) { content: -o($value); }
  130 + @if $experimental-support-for-svg and prefixed(-svg, $value) { content: -svg($value); }
  131 + content: $value ;
  132 +}
... ...
forum/static/css/compass/css3/_inline-block.scss
... ... @@ -0,0 +1,22 @@
  1 +@import "shared";
  2 +
  3 +// Set `$inline-block-alignment` to `none` or `false` to disable the output
  4 +// of a vertical-align property in the inline-block mixin.
  5 +// Or set it to a legal value for `vertical-align` to change the default.
  6 +$inline-block-alignment: middle !default;
  7 +
  8 +// Provides a cross-browser method to implement `display: inline-block;`
  9 +@mixin inline-block($alignment: $inline-block-alignment) {
  10 + @if $legacy-support-for-mozilla {
  11 + display: -moz-inline-stack;
  12 + }
  13 + display: inline-block;
  14 + @if $alignment and $alignment != none {
  15 + vertical-align: $alignment;
  16 + }
  17 + @if $legacy-support-for-ie {
  18 + *vertical-align: auto;
  19 + zoom: 1;
  20 + *display: inline;
  21 + }
  22 +}
... ...
forum/static/css/compass/css3/_opacity.scss
... ... @@ -0,0 +1,19 @@
  1 +@import "shared";
  2 +
  3 +// Provides cross-browser CSS opacity. Takes a number between 0 and 1 as the argument, e.g. 0.5 for 50% opacity.
  4 +//
  5 +// @param $opacity
  6 +// A number between 0 and 1, where 0 is transparent and 1 is opaque.
  7 +
  8 +@mixin opacity($opacity) {
  9 + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 or $legacy-support-for-ie8 {
  10 + filter: unquote("progid:DXImageTransform.Microsoft.Alpha(Opacity=#{round($opacity * 100)})");
  11 + }
  12 + opacity: $opacity;
  13 +}
  14 +
  15 +// Make an element completely transparent.
  16 +@mixin transparent { @include opacity(0); }
  17 +
  18 +// Make an element completely opaque.
  19 +@mixin opaque { @include opacity(1); }
... ...
forum/static/css/compass/css3/_pie.scss
... ... @@ -0,0 +1,73 @@
  1 +$experimental-support-for-pie: true;
  2 +
  3 +// It is recommended that you use Sass's @extend directive to apply the behavior
  4 +// to your PIE elements. To assist you, Compass provides this variable.
  5 +// When set, it will cause the `@include pie` mixin to extend this class.
  6 +// The class name you provide should **not** include the `.`.
  7 +$pie-base-class: false !default;
  8 +
  9 +// The default approach to using PIE.
  10 +// Can be one of:
  11 +//
  12 +// * relative (default)
  13 +// * z-index
  14 +// * none
  15 +$pie-default-approach: relative !default;
  16 +
  17 +// The location of your PIE behavior file
  18 +// This should be root-relative to your web server
  19 +// relative assets don't work. It is recommended that
  20 +// you set this yourself.
  21 +$pie-behavior: stylesheet-url("PIE.htc") !default;
  22 +
  23 +// When using the z-index approach, the
  24 +// first ancestor of the PIE element at
  25 +// or before the container's opaque background
  26 +// should have a z-index set as well to ensure
  27 +// propert z-index stacking.
  28 +//
  29 +// The `$position` argument must be some non-static
  30 +// value (absolute, relative, etc.)
  31 +@mixin pie-container($z-index: 0, $position: relative) {
  32 + z-index: $z-index;
  33 + position: $position;
  34 +}
  35 +
  36 +// PIE elements must have this behavior attached to them.
  37 +// IE is broken -- it doesn't think of behavior urls as
  38 +// relative to the stylesheet. It considers them relative
  39 +// to the webpage. As a result, you cannot reliably use
  40 +// compass's relative_assets with PIE.
  41 +//
  42 +// * `$approach` - one of: relative, z-index, or none
  43 +// * `$z-index` - when using the z-index approach, this
  44 +// is the z-index that is applied.
  45 +@mixin pie-element(
  46 + $approach: $pie-default-approach,
  47 + $z-index: 0
  48 +) {
  49 + behavior: $pie-behavior;
  50 + @if $approach == relative {
  51 + position: relative;
  52 + }
  53 + @else if $approach == z-index {
  54 + z-index: $z-index;
  55 + }
  56 +}
  57 +
  58 +// a smart mixin that knows to extend or include pie-element according
  59 +// to your stylesheet's configuration variables.
  60 +@mixin pie($base-class: $pie-base-class) {
  61 + @if $base-class {
  62 + @extend .#{$base-class};
  63 + }
  64 + @else {
  65 + @include pie-element;
  66 + }
  67 +}
  68 +
  69 +// Watch `$n` levels of ancestors for changes to their class attribute
  70 +// So that cascading styles will work correctly on the PIE element.
  71 +@mixin pie-watch-ancestors($n) {
  72 + -pie-watch-ancestors: $n;
  73 +}
0 74 \ No newline at end of file
... ...
forum/static/css/compass/css3/_regions.scss
... ... @@ -0,0 +1,22 @@
  1 +@import "shared";
  2 +
  3 +// Webkit, IE10 and future support for [CSS Regions](http://dev.w3.org/csswg/css3-regions/)
  4 +//
  5 +// $target is a value you use to link two regions of your css. Give the source of your content the flow-into property, and give your target container the flow-from property.
  6 +//
  7 +// For a visual explanation, see the diagrams at Chris Coyier's
  8 +// [CSS-Tricks](http://css-tricks.com/content-folding/)
  9 +
  10 +@mixin flow-into($target) {
  11 + $target: unquote($target);
  12 + @include experimental(flow-into, $target,
  13 + not -moz, -webkit, not -o, -ms, not -khtml, not official
  14 + );
  15 +}
  16 +
  17 +@mixin flow-from($target) {
  18 + $target: unquote($target);
  19 + @include experimental(flow-from, $target,
  20 + not -moz, -webkit, not -o, -ms, not -khtml, not official
  21 + );
  22 +}
0 23 \ No newline at end of file
... ...
forum/static/css/compass/css3/_shared.scss
... ... @@ -0,0 +1,38 @@
  1 +@import "compass/support";
  2 +
  3 +// This mixin provides basic support for CSS3 properties and
  4 +// their corresponding experimental CSS2 properties when
  5 +// the implementations are identical except for the property
  6 +// prefix.
  7 +@mixin experimental($property, $value,
  8 + $moz : $experimental-support-for-mozilla,
  9 + $webkit : $experimental-support-for-webkit,
  10 + $o : $experimental-support-for-opera,
  11 + $ms : $experimental-support-for-microsoft,
  12 + $khtml : $experimental-support-for-khtml,
  13 + $official : true
  14 +) {
  15 + @if $webkit and $experimental-support-for-webkit { -webkit-#{$property} : $value; }
  16 + @if $khtml and $experimental-support-for-khtml { -khtml-#{$property} : $value; }
  17 + @if $moz and $experimental-support-for-mozilla { -moz-#{$property} : $value; }
  18 + @if $ms and $experimental-support-for-microsoft { -ms-#{$property} : $value; }
  19 + @if $o and $experimental-support-for-opera { -o-#{$property} : $value; }
  20 + @if $official { #{$property} : $value; }
  21 +}
  22 +
  23 +// Same as experimental(), but for cases when the property is the same and the value is vendorized
  24 +@mixin experimental-value($property, $value,
  25 + $moz : $experimental-support-for-mozilla,
  26 + $webkit : $experimental-support-for-webkit,
  27 + $o : $experimental-support-for-opera,
  28 + $ms : $experimental-support-for-microsoft,
  29 + $khtml : $experimental-support-for-khtml,
  30 + $official : true
  31 +) {
  32 + @if $webkit and $experimental-support-for-webkit { #{$property} : -webkit-#{$value}; }
  33 + @if $khtml and $experimental-support-for-khtml { #{$property} : -khtml-#{$value}; }
  34 + @if $moz and $experimental-support-for-mozilla { #{$property} : -moz-#{$value}; }
  35 + @if $ms and $experimental-support-for-microsoft { #{$property} : -ms-#{$value}; }
  36 + @if $o and $experimental-support-for-opera { #{$property} : -o-#{$value}; }
  37 + @if $official { #{$property} : #{$value}; }
  38 +}
... ...
forum/static/css/compass/css3/_text-shadow.scss
... ... @@ -0,0 +1,87 @@
  1 +@import "shared";
  2 +
  3 +// These defaults make the arguments optional for this mixin
  4 +// If you like, set different defaults in your project
  5 +
  6 +$default-text-shadow-color: #aaa !default;
  7 +$default-text-shadow-h-offset: 0px !default;
  8 +$default-text-shadow-v-offset: 0px !default;
  9 +$default-text-shadow-blur: 1px !default;
  10 +$default-text-shadow-spread: false !default;
  11 +
  12 +// Provides cross-browser text shadows when one or more shadows are needed.
  13 +// Each shadow argument should adhere to the standard css3 syntax for the
  14 +// text-shadow property.
  15 +//
  16 +// Note: if any shadow has a spread parameter, this will cause the mixin
  17 +// to emit the shadow declaration twice, first without the spread,
  18 +// then with the spread included. This allows you to progressively
  19 +// enhance the browsers that do support the spread parameter.
  20 +@mixin text-shadow(
  21 + $shadow-1 : default,
  22 + $shadow-2 : false,
  23 + $shadow-3 : false,
  24 + $shadow-4 : false,
  25 + $shadow-5 : false,
  26 + $shadow-6 : false,
  27 + $shadow-7 : false,
  28 + $shadow-8 : false,
  29 + $shadow-9 : false,
  30 + $shadow-10: false
  31 +) {
  32 + @if $shadow-1 == default {
  33 + $shadow-1: compact($default-text-shadow-h-offset $default-text-shadow-v-offset $default-text-shadow-blur $default-text-shadow-spread $default-text-shadow-color);
  34 + }
  35 + $shadows-without-spread: join((),(),comma);
  36 + $shadows: join((),(),comma);
  37 + $has-spread: false;
  38 + @each $shadow in compact($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5,
  39 + $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10) {
  40 + @if length($shadow) > 4 {
  41 + $has-spread: true;
  42 + $shadows-without-spread: append($shadows-without-spread, nth($shadow,1) nth($shadow,2) nth($shadow,3) nth($shadow,5));
  43 + $shadows: append($shadows, $shadow);
  44 + } else {
  45 + $shadows-without-spread: append($shadows-without-spread, $shadow);
  46 + $shadows: append($shadows, $shadow);
  47 + }
  48 + }
  49 + @if $has-spread {
  50 + text-shadow: $shadows-without-spread;
  51 + }
  52 + text-shadow: $shadows;
  53 +}
  54 +
  55 +// Provides a single cross-browser CSS text shadow.
  56 +//
  57 +// Provides sensible defaults for the color, horizontal offset, vertical offset, blur, and spread
  58 +// according to the configuration defaults above.
  59 +@mixin single-text-shadow(
  60 + $hoff: false,
  61 + $voff: false,
  62 + $blur: false,
  63 + $spread: false,
  64 + $color: false
  65 +) {
  66 + // A lot of people think the color comes first. It doesn't.
  67 + @if type-of($hoff) == color {
  68 + $temp-color: $hoff;
  69 + $hoff: $voff;
  70 + $voff: $blur;
  71 + $blur: $spread;
  72 + $spread: $color;
  73 + $color: $temp-color;
  74 + }
  75 + // Can't rely on default assignment with multiple supported argument orders.
  76 + $hoff: if($hoff, $hoff, $default-text-shadow-h-offset);
  77 + $voff: if($voff, $voff, $default-text-shadow-v-offset);
  78 + $blur: if($blur, $blur, $default-text-shadow-blur );
  79 + $spread: if($spread, $spread, $default-text-shadow-spread );
  80 + $color: if($color, $color, $default-text-shadow-color );
  81 + // We don't need experimental support for this property.
  82 + @if $color == none or $hoff == none {
  83 + @include text-shadow(none);
  84 + } @else {
  85 + @include text-shadow(compact($hoff $voff $blur $spread $color));
  86 + }
  87 +}
... ...
forum/static/css/compass/css3/_transform-legacy.scss
... ... @@ -0,0 +1,87 @@
  1 +@import "shared";
  2 +
  3 +@warn "This version of the transform module has been deprecated and will be removed.";
  4 +
  5 +// CSS Transform and Transform-Origin
  6 +
  7 +// Apply a transform sent as a complete string.
  8 +
  9 +@mixin apply-transform($transform) {
  10 + @include experimental(transform, $transform,
  11 + -moz, -webkit, -o, not -ms, not -khtml, official
  12 + );
  13 +}
  14 +
  15 +// Apply a transform-origin sent as a complete string.
  16 +
  17 +@mixin apply-origin($origin) {
  18 + @include experimental(transform-origin, $origin,
  19 + -moz, -webkit, -o, not -ms, not -khtml, official
  20 + );
  21 +}
  22 +
  23 +// transform-origin requires x and y coordinates
  24 +//
  25 +// * only applies the coordinates if they are there so that it can be called by scale, rotate and skew safely
  26 +
  27 +@mixin transform-origin($originx: 50%, $originy: 50%) {
  28 + @if $originx or $originy {
  29 + @if $originy {
  30 + @include apply-origin($originx or 50% $originy);
  31 + } @else {
  32 + @include apply-origin($originx);
  33 + }
  34 + }
  35 +}
  36 +
  37 +// A full transform mixin with everything you could want
  38 +//
  39 +// * including origin adjustments if you want them
  40 +// * scale, rotate and skew require units of degrees(deg)
  41 +// * scale takes a multiplier, rotate and skew take degrees
  42 +
  43 +@mixin transform(
  44 + $scale: 1,
  45 + $rotate: 0deg,
  46 + $transx: 0,
  47 + $transy: 0,
  48 + $skewx: 0deg,
  49 + $skewy: 0deg,
  50 + $originx: false,
  51 + $originy: false
  52 +) {
  53 + $transform : scale($scale) rotate($rotate) translate($transx, $transy) skew($skewx, $skewy);
  54 + @include apply-transform($transform);
  55 + @include transform-origin($originx, $originy);
  56 +}
  57 +
  58 +// Transform Partials
  59 +//
  60 +// These work well on their own, but they don't add to each other, they override.
  61 +// Use them with extra origin args, or along side +transform-origin
  62 +
  63 +// Adjust only the scale, with optional origin coordinates
  64 +
  65 +@mixin scale($scale: 1.25, $originx: false, $originy: false) {
  66 + @include apply-transform(scale($scale));
  67 + @include transform-origin($originx, $originy);
  68 +}
  69 +
  70 +// Adjust only the rotation, with optional origin coordinates
  71 +
  72 +@mixin rotate($rotate: 45deg, $originx: false, $originy: false) {
  73 + @include apply-transform(rotate($rotate));
  74 + @include transform-origin($originx, $originy);
  75 +}
  76 +
  77 +// Adjust only the translation
  78 +
  79 +@mixin translate($transx: 0, $transy: 0) {
  80 + @include apply-transform(translate($transx, $transy));
  81 +}
  82 +
  83 +// Adjust only the skew, with optional origin coordinates
  84 +@mixin skew($skewx: 0deg, $skewy: 0deg, $originx: false, $originy: false) {
  85 + @include apply-transform(skew($skewx, $skewy));
  86 + @include transform-origin($originx, $originy);
  87 +}
... ...
forum/static/css/compass/css3/_transform.scss
... ... @@ -0,0 +1,598 @@
  1 +@import "shared";
  2 +
  3 +// @doc off
  4 +// Note ----------------------------------------------------------------------
  5 +// Safari, Chrome, and Firefox all support 3D transforms. However,
  6 +// only in the most recent builds. You should also provide fallback 2d support for
  7 +// Opera and IE. IE10 is slated to have 3d enabled, but is currently unreleased.
  8 +// To make that easy, all 2D transforms include an browser-targeting toggle ($only3d)
  9 +// to switch between the two support lists. The toggle defaults to 'false' (2D),
  10 +// and also accepts 'true' (3D). Currently the lists are as follows:
  11 +// 2D: Mozilla, Webkit, Opera, Official
  12 +// 3D: Webkit, Firefox.
  13 +
  14 +// Available Transforms ------------------------------------------------------
  15 +// - Scale (2d and 3d)
  16 +// - Rotate (2d and 3d)
  17 +// - Translate (2d and 3d)
  18 +// - Skew (2d only)
  19 +
  20 +// Transform Parameters ------------------------------------------------------
  21 +// - Transform Origin (2d and 3d)
  22 +// - Perspective (3d)
  23 +// - Perspective Origin (3d)
  24 +// - Transform Style (3d)
  25 +// - Backface Visibility (3d)
  26 +
  27 +// Mixins --------------------------------------------------------------------
  28 +// transform-origin
  29 +// - shortcuts: transform-origin2d, transform-origin3d
  30 +// - helpers: apply-origin
  31 +// transform
  32 +// - shortcuts: transform2d, transform3d
  33 +// - helpers: simple-transform, create-transform
  34 +// perspective
  35 +// - helpers: perspective-origin
  36 +// transform-style
  37 +// backface-visibility
  38 +// scale
  39 +// - shortcuts: scaleX, scaleY, scaleZ, scale3d
  40 +// rotate
  41 +// - shortcuts: rotateX, rotateY, rotate3d
  42 +// translate
  43 +// - shortcuts: translateX, translateY, translateZ, translate3d
  44 +// skew
  45 +// - shortcuts: skewX, skewY
  46 +
  47 +// Defaults ------------------------------------------------------------------
  48 +// @doc on
  49 +
  50 +// The default x-origin for transforms
  51 +$default-origin-x : 50% !default;
  52 +// The default y-origin for transforms
  53 +$default-origin-y : 50% !default;
  54 +// The default z-origin for transforms
  55 +$default-origin-z : 50% !default;
  56 +
  57 +
  58 +// The default x-multiplier for scaling
  59 +$default-scale-x : 1.25 !default;
  60 +// The default y-multiplier for scaling
  61 +$default-scale-y : $default-scale-x !default;
  62 +// The default z-multiplier for scaling
  63 +$default-scale-z : $default-scale-x !default;
  64 +
  65 +
  66 +// The default angle for rotations
  67 +$default-rotate : 45deg !default;
  68 +
  69 +
  70 +// The default x-vector for the axis of 3d rotations
  71 +$default-vector-x : 1 !default;
  72 +// The default y-vector for the axis of 3d rotations
  73 +$default-vector-y : 1 !default;
  74 +// The default z-vector for the axis of 3d rotations
  75 +$default-vector-z : 1 !default;
  76 +
  77 +
  78 +// The default x-length for translations
  79 +$default-translate-x : 1em !default;
  80 +// The default y-length for translations
  81 +$default-translate-y : $default-translate-x !default;
  82 +// The default z-length for translations
  83 +$default-translate-z : $default-translate-x !default;
  84 +
  85 +
  86 +// The default x-angle for skewing
  87 +$default-skew-x : 5deg !default;
  88 +// The default y-angle for skewing
  89 +$default-skew-y : 5deg !default;
  90 +
  91 +
  92 +// **Transform-origin**
  93 +// Transform-origin sent as a complete string
  94 +//
  95 +// @include apply-origin( origin [, 3D-only ] )
  96 +//
  97 +// where 'origin' is a space separated list containing 1-3 (x/y/z) coordinates
  98 +// in percentages, absolute (px, cm, in, em etc..) or relative
  99 +// (left, top, right, bottom, center) units
  100 +//
  101 +// @param only3d Set this to true to only apply this
  102 +// mixin where browsers have 3D support.
  103 +@mixin apply-origin($origin, $only3d) {
  104 + $only3d: $only3d or -compass-list-size(-compass-list($origin)) > 2;
  105 + @if $only3d {
  106 + @include experimental(transform-origin, $origin,
  107 + -moz, -webkit, -o, -ms, not -khtml, official
  108 + );
  109 + } @else {
  110 + @include experimental(transform-origin, $origin,
  111 + -moz, -webkit, -o, -ms, not -khtml, official
  112 + );
  113 + }
  114 +}
  115 +
  116 +// Transform-origin sent as individual arguments:
  117 +//
  118 +// @include transform-origin( [ origin-x, origin-y, origin-z, 3D-only ] )
  119 +//
  120 +// where the 3 'origin-' arguments represent x/y/z coordinates.
  121 +//
  122 +// **NOTE:** setting z coordinates triggers 3D support list, leave false for 2D support
  123 +@mixin transform-origin(
  124 + $origin-x: $default-origin-x,
  125 + $origin-y: $default-origin-y,
  126 + $origin-z: false,
  127 + $only3d: if($origin-z, true, false)
  128 +) {
  129 + $origin: unquote('');
  130 + @if $origin-x or $origin-y or $origin-z {
  131 + @if $origin-x { $origin: $origin-x; } @else { $origin: 50%; }
  132 + @if $origin-y { $origin: $origin $origin-y; } @else { @if $origin-z { $origin: $origin 50%; }}
  133 + @if $origin-z { $origin: $origin $origin-z; }
  134 + @include apply-origin($origin, $only3d);
  135 + }
  136 +}
  137 +
  138 +
  139 +// Transform sent as a complete string:
  140 +//
  141 +// @include transform( transforms [, 3D-only ] )
  142 +//
  143 +// where 'transforms' is a space separated list of all the transforms to be applied.
  144 +@mixin transform(
  145 + $transform,
  146 + $only3d: false
  147 +) {
  148 + @if $only3d {
  149 + @include experimental(transform, $transform,
  150 + -moz, -webkit, -o, -ms, not -khtml, official
  151 + );
  152 + } @else {
  153 + @include experimental(transform, $transform,
  154 + -moz, -webkit, -o, -ms, not -khtml, official
  155 + );
  156 + }
  157 +}
  158 +
  159 +// Shortcut to target all browsers with 2D transform support
  160 +@mixin transform2d($trans) {
  161 + @include transform($trans, false);
  162 +}
  163 +
  164 +// Shortcut to target only browsers with 3D transform support
  165 +@mixin transform3d($trans) {
  166 + @include transform($trans, true);
  167 +}
  168 +
  169 +// @doc off
  170 +// 3D Parameters -------------------------------------------------------------
  171 +// @doc on
  172 +
  173 +// Set the perspective of 3D transforms on the children of an element:
  174 +//
  175 +// @include perspective( perspective )
  176 +//
  177 +// where 'perspective' is a unitless number representing the depth of the
  178 +// z-axis. The higher the perspective, the more exaggerated the foreshortening.
  179 +// values from 500 to 1000 are more-or-less "normal" - a good starting-point.
  180 +@mixin perspective($p) {
  181 + @include experimental(perspective, $p,
  182 + -moz, -webkit, -o, -ms, not -khtml, official
  183 + );
  184 +}
  185 +
  186 +// Set the origin position for the perspective
  187 +//
  188 +// @include perspective-origin(origin-x [origin-y])
  189 +//
  190 +// where the two arguments represent x/y coordinates
  191 +@mixin perspective-origin($origin: 50%) {
  192 + @include experimental(perspective-origin, $origin,
  193 + -moz, -webkit, -o, -ms, not -khtml, official
  194 + );
  195 +}
  196 +
  197 +// Determine whether a 3D objects children also live in the given 3D space
  198 +//
  199 +// @include transform-style( [ style ] )
  200 +//
  201 +// where `style` can be either `flat` or `preserve-3d`.
  202 +// Browsers default to `flat`, mixin defaults to `preserve-3d`.
  203 +@mixin transform-style($style: preserve-3d) {
  204 + @include experimental(transform-style, $style,
  205 + -moz, -webkit, -o, -ms, not -khtml, official
  206 + );
  207 +}
  208 +
  209 +// Determine the visibility of an element when it's back is turned
  210 +//
  211 +// @include backface-visibility( [ visibility ] )
  212 +//
  213 +// where `visibility` can be either `visible` or `hidden`.
  214 +// Browsers default to visible, mixin defaults to hidden
  215 +@mixin backface-visibility($visibility: hidden) {
  216 + @include experimental(backface-visibility, $visibility,
  217 + -moz, -webkit, -o, -ms, not -khtml, official
  218 + );
  219 +}
  220 +
  221 +// @doc off
  222 +// Transform Partials --------------------------------------------------------
  223 +// These work well on their own, but they don't add to each other, they override.
  224 +// Use along with transform parameter mixins to adjust origin, perspective and style
  225 +// ---------------------------------------------------------------------------
  226 +
  227 +
  228 +// Scale ---------------------------------------------------------------------
  229 +// @doc on
  230 +
  231 +// Scale an object along the x and y axis:
  232 +//
  233 +// @include scale( [ scale-x, scale-y, perspective, 3D-only ] )
  234 +//
  235 +// where the 'scale-' arguments are unitless multipliers of the x and y dimensions
  236 +// and perspective, which works the same as the stand-alone perspective property/mixin
  237 +// but applies to the individual element (multiplied with any parent perspective)
  238 +//
  239 +// **Note** This mixin cannot be combined with other transform mixins.
  240 +@mixin scale(
  241 + $scale-x: $default-scale-x,
  242 + $scale-y: $scale-x,
  243 + $perspective: false,
  244 + $only3d: false
  245 +) {
  246 + $trans: scale($scale-x, $scale-y);
  247 + @if $perspective { $trans: perspective($perspective) $trans; }
  248 + @include transform($trans, $only3d);
  249 +}
  250 +
  251 +// Scale an object along the x axis
  252 +// @include scaleX( [ scale-x, perspective, 3D-only ] )
  253 +//
  254 +// **Note** This mixin cannot be combined with other transform mixins.
  255 +@mixin scaleX(
  256 + $scale: $default-scale-x,
  257 + $perspective: false,
  258 + $only3d: false
  259 +) {
  260 + $trans: scaleX($scale);
  261 + @if $perspective { $trans: perspective($perspective) $trans; }
  262 + @include transform($trans, $only3d);
  263 +}
  264 +
  265 +// Scale an object along the y axis
  266 +// @include scaleY( [ scale-y, perspective, 3D-only ] )
  267 +//
  268 +// **Note** This mixin cannot be combined with other transform mixins.
  269 +@mixin scaleY(
  270 + $scale: $default-scale-y,
  271 + $perspective: false,
  272 + $only3d: false
  273 +) {
  274 + $trans: scaleY($scale);
  275 + @if $perspective { $trans: perspective($perspective) $trans; }
  276 + @include transform($trans, $only3d);
  277 +}
  278 +
  279 +// Scale an object along the z axis
  280 +// @include scaleZ( [ scale-z, perspective ] )
  281 +//
  282 +// **Note** This mixin cannot be combined with other transform mixins.
  283 +@mixin scaleZ(
  284 + $scale: $default-scale-z,
  285 + $perspective: false
  286 +) {
  287 + $trans: scaleZ($scale);
  288 + @if $perspective { $trans: perspective($perspective) $trans; }
  289 + @include transform3d($trans);
  290 +}
  291 +
  292 +// Scale and object along all three axis
  293 +// @include scale3d( [ scale-x, scale-y, scale-z, perspective ] )
  294 +//
  295 +// **Note** This mixin cannot be combined with other transform mixins.
  296 +@mixin scale3d(
  297 + $scale-x: $default-scale-x,
  298 + $scale-y: $default-scale-y,
  299 + $scale-z: $default-scale-z,
  300 + $perspective: false
  301 +) {
  302 + $trans: scale3d($scale-x, $scale-y, $scale-z);
  303 + @if $perspective { $trans: perspective($perspective) $trans; }
  304 + @include transform3d($trans);
  305 +}
  306 +
  307 +// @doc off
  308 +// Rotate --------------------------------------------------------------------
  309 +// @doc on
  310 +
  311 +// Rotate an object around the z axis (2D)
  312 +// @include rotate( [ rotation, perspective, 3D-only ] )
  313 +// where 'rotation' is an angle set in degrees (deg) or radian (rad) units
  314 +//
  315 +// **Note** This mixin cannot be combined with other transform mixins.
  316 +@mixin rotate(
  317 + $rotate: $default-rotate,
  318 + $perspective: false,
  319 + $only3d: false
  320 +) {
  321 + $trans: rotate($rotate);
  322 + @if $perspective { $trans: perspective($perspective) $trans; }
  323 + @include transform($trans, $only3d);
  324 +}
  325 +
  326 +// A longcut for 'rotate' in case you forget that 'z' is implied
  327 +//
  328 +// **Note** This mixin cannot be combined with other transform mixins.
  329 +@mixin rotateZ(
  330 + $rotate: $default-rotate,
  331 + $perspective: false,
  332 + $only3d: false
  333 +) {
  334 + @include rotate($rotate, $perspective, $only3d);
  335 +}
  336 +
  337 +// Rotate an object around the x axis (3D)
  338 +// @include rotateX( [ rotation, perspective ] )
  339 +//
  340 +// **Note** This mixin cannot be combined with other transform mixins.
  341 +@mixin rotateX(
  342 + $rotate: $default-rotate,
  343 + $perspective: false
  344 +) {
  345 + $trans: rotateX($rotate);
  346 + @if $perspective { $trans: perspective($perspective) $trans; }
  347 + @include transform3d($trans);
  348 +}
  349 +
  350 +// Rotate an object around the y axis (3D)
  351 +// @include rotate( [ rotation, perspective ] )
  352 +//
  353 +// **Note** This mixin cannot be combined with other transform mixins.
  354 +@mixin rotateY(
  355 + $rotate: $default-rotate,
  356 + $perspective: false
  357 +) {
  358 + $trans: rotateY($rotate);
  359 + @if $perspective { $trans: perspective($perspective) $trans; }
  360 + @include transform3d($trans);
  361 +}
  362 +
  363 +// Rotate an object around an arbitrary axis (3D)
  364 +// @include rotate( [ vector-x, vector-y, vector-z, rotation, perspective ] )
  365 +// where the 'vector-' arguments accept unitless numbers.
  366 +// These numbers are not important on their own, but in relation to one another
  367 +// creating an axis from your transform-origin, along the axis of Xx = Yy = Zz.
  368 +//
  369 +// **Note** This mixin cannot be combined with other transform mixins.
  370 +@mixin rotate3d(
  371 + $vector-x: $default-vector-x,
  372 + $vector-y: $default-vector-y,
  373 + $vector-z: $default-vector-z,
  374 + $rotate: $default-rotate,
  375 + $perspective: false
  376 +) {
  377 + $trans: rotate3d($vector-x, $vector-y, $vector-z, $rotate);
  378 + @if $perspective { $trans: perspective($perspective) $trans; }
  379 + @include transform3d($trans);
  380 +}
  381 +
  382 +// @doc off
  383 +// Translate -----------------------------------------------------------------
  384 +// @doc on
  385 +
  386 +// Move an object along the x or y axis (2D)
  387 +// @include translate( [ translate-x, translate-y, perspective, 3D-only ] )
  388 +// where the 'translate-' arguments accept any distance in percentages or absolute (px, cm, in, em etc..) units.
  389 +//
  390 +// **Note** This mixin cannot be combined with other transform mixins.
  391 +@mixin translate(
  392 + $translate-x: $default-translate-x,
  393 + $translate-y: $default-translate-y,
  394 + $perspective: false,
  395 + $only3d: false
  396 +) {
  397 + $trans: translate($translate-x, $translate-y);
  398 + @if $perspective { $trans: perspective($perspective) $trans; }
  399 + @include transform($trans, $only3d);
  400 +}
  401 +
  402 +// Move an object along the x axis (2D)
  403 +// @include translate( [ translate-x, perspective, 3D-only ] )
  404 +//
  405 +// **Note** This mixin cannot be combined with other transform mixins.
  406 +@mixin translateX(
  407 + $trans-x: $default-translate-x,
  408 + $perspective: false,
  409 + $only3d: false
  410 +) {
  411 + $trans: translateX($trans-x);
  412 + @if $perspective { $trans: perspective($perspective) $trans; }
  413 + @include transform($trans, $only3d);
  414 +}
  415 +
  416 +// Move an object along the y axis (2D)
  417 +// @include translate( [ translate-y, perspective, 3D-only ] )
  418 +//
  419 +// **Note** This mixin cannot be combined with other transform mixins.
  420 +@mixin translateY(
  421 + $trans-y: $default-translate-y,
  422 + $perspective: false,
  423 + $only3d: false
  424 +) {
  425 + $trans: translateY($trans-y);
  426 + @if $perspective { $trans: perspective($perspective) $trans; }
  427 + @include transform($trans, $only3d);
  428 +}
  429 +
  430 +// Move an object along the z axis (3D)
  431 +// @include translate( [ translate-z, perspective ] )
  432 +//
  433 +// **Note** This mixin cannot be combined with other transform mixins.
  434 +@mixin translateZ(
  435 + $trans-z: $default-translate-z,
  436 + $perspective: false
  437 +) {
  438 + $trans: translateZ($trans-z);
  439 + @if $perspective { $trans: perspective($perspective) $trans; }
  440 + @include transform3d($trans);
  441 +}
  442 +
  443 +// Move an object along the x, y and z axis (3D)
  444 +// @include translate( [ translate-x, translate-y, translate-z, perspective ] )
  445 +//
  446 +// **Note** This mixin cannot be combined with other transform mixins.
  447 +@mixin translate3d(
  448 + $translate-x: $default-translate-x,
  449 + $translate-y: $default-translate-y,
  450 + $translate-z: $default-translate-z,
  451 + $perspective: false
  452 +) {
  453 + $trans: translate3d($translate-x, $translate-y, $translate-z);
  454 + @if $perspective { $trans: perspective($perspective) $trans; }
  455 + @include transform3d($trans);
  456 +}
  457 +
  458 +// @doc off
  459 +// Skew ----------------------------------------------------------------------
  460 +// @doc on
  461 +
  462 +// Skew an element:
  463 +//
  464 +// @include skew( [ skew-x, skew-y, 3D-only ] )
  465 +//
  466 +// where the 'skew-' arguments accept css angles in degrees (deg) or radian (rad) units.
  467 +//
  468 +// **Note** This mixin cannot be combined with other transform mixins.
  469 +@mixin skew(
  470 + $skew-x: $default-skew-x,
  471 + $skew-y: $default-skew-y,
  472 + $only3d: false
  473 +) {
  474 + $trans: skew($skew-x, $skew-y);
  475 + @include transform($trans, $only3d);
  476 +}
  477 +
  478 +// Skew an element along the x axiz
  479 +//
  480 +// @include skew( [ skew-x, 3D-only ] )
  481 +//
  482 +// **Note** This mixin cannot be combined with other transform mixins.
  483 +@mixin skewX(
  484 + $skew-x: $default-skew-x,
  485 + $only3d: false
  486 +) {
  487 + $trans: skewX($skew-x);
  488 + @include transform($trans, $only3d);
  489 +}
  490 +
  491 +// Skew an element along the y axis
  492 +//
  493 +// @include skew( [ skew-y, 3D-only ] )
  494 +//
  495 +// **Note** This mixin cannot be combined with other transform mixins.
  496 +@mixin skewY(
  497 + $skew-y: $default-skew-y,
  498 + $only3d: false
  499 +) {
  500 + $trans: skewY($skew-y);
  501 + @include transform($trans, $only3d);
  502 +}
  503 +
  504 +
  505 +// Full transform mixins
  506 +// For settings any combination of transforms as arguments
  507 +// These are complex and not highly recommended for daily use. They are mainly
  508 +// here for backward-compatibility purposes.
  509 +//
  510 +// * they include origin adjustments
  511 +// * scale takes a multiplier (unitless), rotate and skew take degrees (deg)
  512 +//
  513 +// **Note** This mixin cannot be combined with other transform mixins.
  514 +@mixin create-transform(
  515 + $perspective: false,
  516 + $scale-x: false,
  517 + $scale-y: false,
  518 + $scale-z: false,
  519 + $rotate-x: false,
  520 + $rotate-y: false,
  521 + $rotate-z: false,
  522 + $rotate3d: false,
  523 + $trans-x: false,
  524 + $trans-y: false,
  525 + $trans-z: false,
  526 + $skew-x: false,
  527 + $skew-y: false,
  528 + $origin-x: false,
  529 + $origin-y: false,
  530 + $origin-z: false,
  531 + $only3d: false
  532 +) {
  533 + $trans: unquote("");
  534 +
  535 + // perspective
  536 + @if $perspective { $trans: perspective($perspective) ; }
  537 +
  538 + // scale
  539 + @if $scale-x and $scale-y {
  540 + @if $scale-z { $trans: $trans scale3d($scale-x, $scale-y, $scale-z); }
  541 + @else { $trans: $trans scale($scale-x, $scale-y); }
  542 + } @else {
  543 + @if $scale-x { $trans: $trans scaleX($scale-x); }
  544 + @if $scale-y { $trans: $trans scaleY($scale-y); }
  545 + @if $scale-z { $trans: $trans scaleZ($scale-z); }
  546 + }
  547 +
  548 + // rotate
  549 + @if $rotate-x { $trans: $trans rotateX($rotate-x); }
  550 + @if $rotate-y { $trans: $trans rotateY($rotate-y); }
  551 + @if $rotate-z { $trans: $trans rotateZ($rotate-z); }
  552 + @if $rotate3d { $trans: $trans rotate3d($rotate3d); }
  553 +
  554 + // translate
  555 + @if $trans-x and $trans-y {
  556 + @if $trans-z { $trans: $trans translate3d($trans-x, $trans-y, $trans-z); }
  557 + @else { $trans: $trans translate($trans-x, $trans-y); }
  558 + } @else {
  559 + @if $trans-x { $trans: $trans translateX($trans-x); }
  560 + @if $trans-y { $trans: $trans translateY($trans-y); }
  561 + @if $trans-z { $trans: $trans translateZ($trans-z); }
  562 + }
  563 +
  564 + // skew
  565 + @if $skew-x and $skew-y { $trans: $trans skew($skew-x, $skew-y); }
  566 + @else {
  567 + @if $skew-x { $trans: $trans skewX($skew-x); }
  568 + @if $skew-y { $trans: $trans skewY($skew-y); }
  569 + }
  570 +
  571 + // apply it!
  572 + @include transform($trans, $only3d);
  573 + @include transform-origin($origin-x, $origin-y, $origin-z, $only3d);
  574 +}
  575 +
  576 +
  577 +// A simplified set of options
  578 +// backwards-compatible with the previous version of the 'transform' mixin
  579 +@mixin simple-transform(
  580 + $scale: false,
  581 + $rotate: false,
  582 + $trans-x: false,
  583 + $trans-y: false,
  584 + $skew-x: false,
  585 + $skew-y: false,
  586 + $origin-x: false,
  587 + $origin-y: false
  588 +) {
  589 + @include create-transform(
  590 + false,
  591 + $scale, $scale, false,
  592 + false, false, $rotate, false,
  593 + $trans-x, $trans-y, false,
  594 + $skew-x, $skew-y,
  595 + $origin-x, $origin-y, false,
  596 + false
  597 + );
  598 +}
... ...
forum/static/css/compass/css3/_transition.scss
... ... @@ -0,0 +1,221 @@
  1 +@import "shared";
  2 +
  3 +// CSS Transitions
  4 +// Currently only works in Webkit.
  5 +//
  6 +// * expected in CSS3, FireFox 3.6/7 and Opera Presto 2.3
  7 +// * We'll be prepared.
  8 +//
  9 +// Including this submodule sets following defaults for the mixins:
  10 +//
  11 +// $default-transition-property : all
  12 +// $default-transition-duration : 1s
  13 +// $default-transition-function : false
  14 +// $default-transition-delay : false
  15 +//
  16 +// Override them if you like. Timing-function and delay are set to false for browser defaults (ease, 0s).
  17 +
  18 +$default-transition-property: all !default;
  19 +
  20 +$default-transition-duration: 1s !default;
  21 +
  22 +$default-transition-function: false !default;
  23 +
  24 +$default-transition-delay: false !default;
  25 +
  26 +$transitionable-prefixed-values: transform, transform-origin !default;
  27 +
  28 +// One or more properties to transition
  29 +//
  30 +// * for multiple, use a comma-delimited list
  31 +// * also accepts "all" or "none"
  32 +
  33 +@mixin transition-property($property-1: $default-transition-property,
  34 + $property-2 : false,
  35 + $property-3 : false,
  36 + $property-4 : false,
  37 + $property-5 : false,
  38 + $property-6 : false,
  39 + $property-7 : false,
  40 + $property-8 : false,
  41 + $property-9 : false,
  42 + $property-10: false
  43 +) {
  44 + @if type-of($property-1) == string { $property-1: unquote($property-1); }
  45 + $properties: compact($property-1, $property-2, $property-3, $property-4, $property-5, $property-6, $property-7, $property-8, $property-9, $property-10);
  46 + @if $experimental-support-for-webkit { -webkit-transition-property : prefixed-for-transition(-webkit, $properties); }
  47 + @if $experimental-support-for-mozilla { -moz-transition-property : prefixed-for-transition(-moz, $properties); }
  48 + @if $experimental-support-for-opera { -o-transition-property : prefixed-for-transition(-o, $properties); }
  49 + transition-property : $properties;
  50 +}
  51 +
  52 +// One or more durations in seconds
  53 +//
  54 +// * for multiple, use a comma-delimited list
  55 +// * these durations will affect the properties in the same list position
  56 +
  57 +@mixin transition-duration($duration-1: $default-transition-duration,
  58 + $duration-2 : false,
  59 + $duration-3 : false,
  60 + $duration-4 : false,
  61 + $duration-5 : false,
  62 + $duration-6 : false,
  63 + $duration-7 : false,
  64 + $duration-8 : false,
  65 + $duration-9 : false,
  66 + $duration-10: false
  67 +) {
  68 + @if type-of($duration-1) == string { $duration-1: unquote($duration-1); }
  69 + $durations: compact($duration-1, $duration-2, $duration-3, $duration-4, $duration-5, $duration-6, $duration-7, $duration-8, $duration-9, $duration-10);
  70 + @include experimental(transition-duration, $durations,
  71 + -moz, -webkit, -o, not -ms, not -khtml, official
  72 + );
  73 +}
  74 +
  75 +// One or more timing functions
  76 +//
  77 +// * [ ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(x1, y1, x2, y2)]
  78 +// * For multiple, use a comma-delimited list
  79 +// * These functions will effect the properties in the same list position
  80 +
  81 +@mixin transition-timing-function($function-1: $default-transition-function,
  82 + $function-2 : false,
  83 + $function-3 : false,
  84 + $function-4 : false,
  85 + $function-5 : false,
  86 + $function-6 : false,
  87 + $function-7 : false,
  88 + $function-8 : false,
  89 + $function-9 : false,
  90 + $function-10: false
  91 +) {
  92 + $function-1: unquote($function-1);
  93 + $functions: compact($function-1, $function-2, $function-3, $function-4, $function-5, $function-6, $function-7, $function-8, $function-9, $function-10);
  94 + @include experimental(transition-timing-function, $functions,
  95 + -moz, -webkit, -o, not -ms, not -khtml, official
  96 + );
  97 +}
  98 +
  99 +// One or more transition-delays in seconds
  100 +//
  101 +// * for multiple, use a comma-delimited list
  102 +// * these delays will effect the properties in the same list position
  103 +
  104 +@mixin transition-delay($delay-1: $default-transition-delay,
  105 + $delay-2 : false,
  106 + $delay-3 : false,
  107 + $delay-4 : false,
  108 + $delay-5 : false,
  109 + $delay-6 : false,
  110 + $delay-7 : false,
  111 + $delay-8 : false,
  112 + $delay-9 : false,
  113 + $delay-10: false
  114 +) {
  115 + @if type-of($delay-1) == string { $delay-1: unquote($delay-1); }
  116 + $delays: compact($delay-1, $delay-2, $delay-3, $delay-4, $delay-5, $delay-6, $delay-7, $delay-8, $delay-9, $delay-10);
  117 + @include experimental(transition-delay, $delays,
  118 + -moz, -webkit, -o, not -ms, not -khtml, official
  119 + );
  120 +}
  121 +
  122 +// Transition all-in-one shorthand
  123 +
  124 +@mixin single-transition(
  125 + $property: $default-transition-property,
  126 + $duration: $default-transition-duration,
  127 + $function: $default-transition-function,
  128 + $delay: $default-transition-delay
  129 +) {
  130 + @include transition(compact($property $duration $function $delay));
  131 +}
  132 +
  133 +@mixin transition(
  134 + $transition-1 : default,
  135 + $transition-2 : false,
  136 + $transition-3 : false,
  137 + $transition-4 : false,
  138 + $transition-5 : false,
  139 + $transition-6 : false,
  140 + $transition-7 : false,
  141 + $transition-8 : false,
  142 + $transition-9 : false,
  143 + $transition-10: false
  144 +) {
  145 + @if $transition-1 == default {
  146 + $transition-1 : compact($default-transition-property $default-transition-duration $default-transition-function $default-transition-delay);
  147 + }
  148 + $transitions: false;
  149 + @if type-of($transition-1) == list and type-of(nth($transition-1,1)) == list {
  150 + $transitions: join($transition-1, compact($transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10), comma);
  151 + } @else {
  152 + $transitions : compact($transition-1, $transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10);
  153 + }
  154 + $delays: comma-list();
  155 + $has-delays: false;
  156 + $webkit-value: comma-list();
  157 + $moz-value: comma-list();
  158 + $o-value: comma-list();
  159 +
  160 + // This block can be made considerably simpler at the point in time that
  161 + // we no longer need to deal with the differences in how delays are treated.
  162 + @each $transition in $transitions {
  163 + // Extract the values from the list
  164 + // (this would be cleaner if nth took a 3rd argument to provide a default value).
  165 + $property: nth($transition, 1);
  166 + $duration: false;
  167 + $timing-function: false;
  168 + $delay: false;
  169 + @if length($transition) > 1 { $duration: nth($transition, 2); }
  170 + @if length($transition) > 2 { $timing-function: nth($transition, 3); }
  171 + @if length($transition) > 3 { $delay: nth($transition, 4); $has-delays: true; }
  172 +
  173 + // If a delay is provided without a timing function
  174 + @if is-time($timing-function) and not $delay { $delay: $timing-function; $timing-function: false; $has-delays: true; }
  175 +
  176 + // Keep a list of delays in case one is specified
  177 + $delays: append($delays, if($delay, $delay, 0s));
  178 +
  179 + $webkit-value: append($webkit-value, compact(prefixed-for-transition(-webkit, $property) $duration $timing-function));
  180 + $moz-value: append( $moz-value, compact(prefixed-for-transition( -moz, $property) $duration $timing-function $delay));
  181 + $o-value: append( $o-value, compact(prefixed-for-transition( -o, $property) $duration $timing-function $delay));
  182 + }
  183 +
  184 + @if $experimental-support-for-webkit { -webkit-transition : $webkit-value;
  185 + // old webkit doesn't support the delay parameter in the shorthand so we progressively enhance it.
  186 + @if $has-delays { -webkit-transition-delay : $delays; } }
  187 + @if $experimental-support-for-mozilla { -moz-transition : $moz-value; }
  188 + @if $experimental-support-for-opera { -o-transition : $o-value; }
  189 + transition : $transitions;
  190 +}
  191 +
  192 +// coerce a list to be comma delimited or make a new, empty comma delimited list.
  193 +@function comma-list($list: ()) {
  194 + @return join((), $list, comma);
  195 +}
  196 +
  197 +// Returns `$property` with the given prefix if it is found in `$transitionable-prefixed-values`.
  198 +@function prefixed-for-transition($prefix, $property) {
  199 + @if type-of($property) == list {
  200 + $new-list: comma-list();
  201 + @each $v in $property {
  202 + $new-list: append($new-list, prefixed-for-transition($prefix, $v));
  203 + }
  204 + @return $new-list;
  205 + } @else {
  206 + @if index($transitionable-prefixed-values, $property) {
  207 + @return #{$prefix}-#{$property};
  208 + } @else {
  209 + @return $property;
  210 + }
  211 + }
  212 +}
  213 +
  214 +// Checks if the value given is a unit of time.
  215 +@function is-time($value) {
  216 + @if type-of($value) == number {
  217 + @return not not index(s ms, unit($value));
  218 + } @else {
  219 + @return false;
  220 + }
  221 +}
... ...
forum/static/css/compass/css3/_user-interface.scss
... ... @@ -0,0 +1,17 @@
  1 +// User Interface ------------------------------------------------------------
  2 +// This file can be expanded to handle all the user interface properties as
  3 +// they become available in browsers:
  4 +// http://www.w3.org/TR/2000/WD-css3-userint-20000216
  5 +@import "shared";
  6 +
  7 +
  8 +// This property controls the selection model and granularity of an element.
  9 +//
  10 +// @param $select
  11 +// [ none | text | toggle | element | elements | all | inherit ]
  12 +@mixin user-select($select) {
  13 + $select: unquote($select);
  14 + @include experimental(user-select, $select,
  15 + -moz, -webkit, not -o, not -ms, -khtml, official
  16 + );
  17 +}
... ...
forum/static/css/compass/layout/_grid-background.scss
... ... @@ -0,0 +1,178 @@
  1 +@import "compass/css3/images";
  2 +@import "compass/css3/background-size";
  3 +
  4 +// Set the color of your columns
  5 +$grid-background-column-color : rgba(100, 100, 225, 0.25) !default;
  6 +// Set the color of your gutters
  7 +$grid-background-gutter-color : rgba(0, 0, 0, 0) !default;
  8 +
  9 +// Set the total number of columns in your grid
  10 +$grid-background-total-columns : 24 !default;
  11 +// Set the width of your columns
  12 +$grid-background-column-width : 30px !default;
  13 +// Set the width of your gutters
  14 +$grid-background-gutter-width : 10px !default;
  15 +// Set the offset, if your columns are padded in from the container edge
  16 +$grid-background-offset : 0px !default;
  17 +
  18 +// Set the color of your baseline
  19 +$grid-background-baseline-color : rgba(0, 0, 0, 0.5) !default;
  20 +// Set the height of your baseline grid
  21 +$grid-background-baseline-height : 1.5em !default;
  22 +
  23 +// toggle your columns grids on and off
  24 +$show-column-grid-backgrounds : true !default;
  25 +// toggle your vertical grids on and off
  26 +$show-baseline-grid-backgrounds : true !default;
  27 +// toggle all your grids on and off
  28 +$show-grid-backgrounds : true !default;
  29 +
  30 +// optionally force your grid-image to remain fluid
  31 +// no matter what units you used to declared your grid.
  32 +$grid-background-force-fluid : false !default;
  33 +
  34 +
  35 +// Create the gradient needed for baseline grids
  36 +@function get-baseline-gradient(
  37 + $color : $grid-background-baseline-color
  38 +) {
  39 + $gradient: linear-gradient(bottom, $color 5%, rgba($color,0) 5%);
  40 + @return $gradient;
  41 +}
  42 +
  43 +// Create the color-stops needed for horizontal grids
  44 +@function build-grid-background(
  45 + $total : $grid-background-total-columns,
  46 + $column : $grid-background-column-width,
  47 + $gutter : $grid-background-gutter-width,
  48 + $offset : $grid-background-offset,
  49 + $column-color : $grid-background-column-color,
  50 + $gutter-color : $grid-background-gutter-color
  51 +) {
  52 + $grid: compact();
  53 + $grid: append($grid, $gutter-color $offset, comma);
  54 + @for $i from 0 to $total {
  55 +
  56 + // $a represents the start of this column, initially equal to the offset
  57 + $a: $offset;
  58 + @if $i > 0 { $a: $a + (($column + $gutter) * $i); }
  59 +
  60 + // $g represents the start of this gutter, equal to $a plus one column-width
  61 + $g: $a + $column;
  62 +
  63 + // $z represents the end of a gutter, equal to $g plus one gutter-width
  64 + $z: $g + $gutter;
  65 +
  66 + @if (unit($a) == "%") and ($i == ($total - 1)) {
  67 + $z: 100%;
  68 + }
  69 +
  70 + // and we add this column/gutter pair to our grid
  71 + $grid: join($grid, ($column-color $a, $column-color $g, $gutter-color $g, $gutter-color $z));
  72 + }
  73 +
  74 + @return $grid;
  75 +}
  76 +
  77 +// Return the gradient needed for horizontal grids
  78 +@function get-column-gradient(
  79 + $total : $grid-background-total-columns,
  80 + $column : $grid-background-column-width,
  81 + $gutter : $grid-background-gutter-width,
  82 + $offset : $grid-background-offset,
  83 + $column-color : $grid-background-column-color,
  84 + $gutter-color : $grid-background-gutter-color,
  85 + $force-fluid : $grid-background-force-fluid
  86 +) {
  87 + $grid: unquote("");
  88 +
  89 + // don't force fluid grids when they are already fluid.
  90 + @if unit($column) == "%" { $force-fluid: false; }
  91 +
  92 + @if $force-fluid {
  93 + $grid: get-column-fluid-grid($total,$column,$gutter,$offset,$column-color,$gutter-color);
  94 + } @else {
  95 + $grid: build-grid-background($total,$column,$gutter,$offset,$column-color,$gutter-color);
  96 + }
  97 +
  98 + // return the horizontal grid as a gradient
  99 + $gradient: linear-gradient(left, $grid);
  100 + @return $gradient;
  101 +}
  102 +
  103 +// Convert a grid from fixed units into percentages.
  104 +@function get-column-fluid-grid(
  105 + $total : $grid-background-total-columns,
  106 + $column : $grid-background-column-width,
  107 + $gutter : $grid-background-gutter-width,
  108 + $offset : $grid-background-offset,
  109 + $column-color : $grid-background-column-color,
  110 + $gutter-color : $grid-background-gutter-color
  111 +) {
  112 + $context: ($column * $total) + ($gutter * ($total - 1) + ($offset * 2));
  113 + $offset: $offset / $context * 100%;
  114 + $column: $column / $context * 100%;
  115 + $gutter: $gutter / $context * 100%;
  116 +
  117 + // return the horizontal grid as a set of color-stops
  118 + $grid: build-grid-background($total,$column,$gutter,$offset,$column-color,$gutter-color);
  119 + @return $grid;
  120 +}
  121 +
  122 +
  123 +// Add just the baseline grid to an element's background
  124 +@mixin baseline-grid-background(
  125 + $baseline : $grid-background-baseline-height,
  126 + $color : $grid-background-baseline-color
  127 +) {
  128 + @if $show-grid-backgrounds and $show-baseline-grid-backgrounds {
  129 + @include background-image(get-baseline-gradient($color));
  130 + @include background-size(100% $baseline);
  131 + background-position: left top;
  132 + }
  133 +}
  134 +
  135 +// Add just the horizontal grid to an element's background
  136 +@mixin column-grid-background(
  137 + $total : $grid-background-total-columns,
  138 + $column : $grid-background-column-width,
  139 + $gutter : $grid-background-gutter-width,
  140 + $offset : $grid-background-offset,
  141 + $column-color : $grid-background-column-color,
  142 + $gutter-color : $grid-background-gutter-color,
  143 + $force-fluid : $grid-background-force-fluid
  144 +) {
  145 + @if $show-grid-backgrounds and $show-column-grid-backgrounds {
  146 + @include background-image(
  147 + get-column-gradient($total,$column,$gutter,$offset,$column-color,$gutter-color, $force-fluid)
  148 + );
  149 + background-position: left top;
  150 + }
  151 +}
  152 +
  153 +// Add both horizontal and baseline grids to an element's background
  154 +@mixin grid-background(
  155 + $total : $grid-background-total-columns,
  156 + $column : $grid-background-column-width,
  157 + $gutter : $grid-background-gutter-width,
  158 + $baseline : $grid-background-baseline-height,
  159 + $offset : $grid-background-offset,
  160 + $column-color : $grid-background-column-color,
  161 + $gutter-color : $grid-background-gutter-color,
  162 + $baseline-color : $grid-background-baseline-color,
  163 + $force-fluid : $grid-background-force-fluid
  164 +) {
  165 + @if $show-grid-backgrounds {
  166 + @if $show-baseline-grid-backgrounds and $show-column-grid-backgrounds {
  167 + @include background-image(
  168 + get-baseline-gradient($baseline-color),
  169 + get-column-gradient($total,$column,$gutter,$offset,$column-color,$gutter-color, $force-fluid)
  170 + );
  171 + @include background-size(100% $baseline, auto);
  172 + background-position: left top;
  173 + } @else {
  174 + @include baseline-grid-background($baseline, $baseline-color);
  175 + @include column-grid-background($total,$column,$gutter,$offset,$column-color,$gutter-color, $force-fluid);
  176 + }
  177 + }
  178 +}
... ...
forum/static/css/compass/layout/_sticky-footer.scss
... ... @@ -0,0 +1,23 @@
  1 +// Based on a [blog post by Ryan Fait](http://ryanfait.com/resources/footer-stick-to-bottom-of-page/).
  2 +//
  3 +// Must be mixed into the top level of your stylesheet.
  4 +//
  5 +// Footer element must be outside of root wrapper element.
  6 +//
  7 +// Footer must be a fixed height.
  8 +
  9 +@mixin sticky-footer($footer-height, $root-selector: unquote("#root"), $root-footer-selector: unquote("#root_footer"), $footer-selector: unquote("#footer")) {
  10 + html, body {
  11 + height: 100%; }
  12 + #{$root-selector} {
  13 + clear: both;
  14 + min-height: 100%;
  15 + height: auto !important;
  16 + height: 100%;
  17 + margin-bottom: -$footer-height;
  18 + #{$root-footer-selector} {
  19 + height: $footer-height; } }
  20 + #{$footer-selector} {
  21 + clear: both;
  22 + position: relative;
  23 + height: $footer-height; } }
... ...
forum/static/css/compass/layout/_stretching.scss
... ... @@ -0,0 +1,24 @@
  1 +
  2 +// stretch element height to specified top and bottom position
  3 +
  4 +@mixin stretch-y($offset-top:0, $offset-bottom:0) {
  5 + @include stretch($offset-top, false, $offset-bottom, false);
  6 +}
  7 +
  8 +
  9 +// stretch element width to specified left and right position
  10 +
  11 +@mixin stretch-x($offset-left:0, $offset-right:0) {
  12 + @include stretch(false, $offset-right, false, $offset-left);
  13 +}
  14 +
  15 +
  16 +// shorthand to stretch element height and width
  17 +
  18 +@mixin stretch($offset-top:0, $offset-right:0, $offset-bottom:0, $offset-left:0) {
  19 + position: absolute;
  20 + @if $offset-top { top: $offset-top; }
  21 + @if $offset-bottom { bottom: $offset-bottom; }
  22 + @if $offset-left { left: $offset-left; }
  23 + @if $offset-right { right: $offset-right; }
  24 +}
0 25 \ No newline at end of file
... ...
forum/static/css/compass/reset/_utilities-legacy.scss
... ... @@ -0,0 +1,135 @@
  1 +// Based on [Eric Meyer's reset](http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/)
  2 +// Global reset rules.
  3 +// For more specific resets, use the reset mixins provided below
  4 +//
  5 +// *Please Note*: tables still need `cellspacing="0"` in the markup.
  6 +@mixin global-reset {
  7 + html, body, div, span, applet, object, iframe,
  8 + h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  9 + a, abbr, acronym, address, big, cite, code,
  10 + del, dfn, em, font, img, ins, kbd, q, s, samp,
  11 + small, strike, strong, sub, sup, tt, var,
  12 + dl, dt, dd, ol, ul, li,
  13 + fieldset, form, label, legend,
  14 + table, caption, tbody, tfoot, thead, tr, th, td {
  15 + @include reset-box-model;
  16 + @include reset-font; }
  17 + body {
  18 + @include reset-body; }
  19 + ol, ul {
  20 + @include reset-list-style; }
  21 + table {
  22 + @include reset-table; }
  23 + caption, th, td {
  24 + @include reset-table-cell; }
  25 + q, blockquote {
  26 + @include reset-quotation; }
  27 + a img {
  28 + @include reset-image-anchor-border; } }
  29 +
  30 +// Reset all elements within some selector scope. To reset the selector itself,
  31 +// mixin the appropriate reset mixin for that element type as well. This could be
  32 +// useful if you want to style a part of your page in a dramatically different way.
  33 +//
  34 +// *Please Note*: tables still need `cellspacing="0"` in the markup.
  35 +@mixin nested-reset {
  36 + div, span, object, iframe, h1, h2, h3, h4, h5, h6, p,
  37 + pre, a, abbr, acronym, address, code, del, dfn, em, img,
  38 + dl, dt, dd, ol, ul, li, fieldset, form, label, legend, caption, tbody, tfoot, thead, tr {
  39 + @include reset-box-model;
  40 + @include reset-font; }
  41 + table {
  42 + @include reset-table; }
  43 + caption, th, td {
  44 + @include reset-table-cell; }
  45 + q, blockquote {
  46 + @include reset-quotation; }
  47 + a img {
  48 + @include reset-image-anchor-border; } }
  49 +
  50 +// Reset the box model measurements.
  51 +@mixin reset-box-model {
  52 + margin: 0;
  53 + padding: 0;
  54 + border: 0;
  55 + outline: 0; }
  56 +
  57 +// Reset the font and vertical alignment.
  58 +@mixin reset-font {
  59 + font: {
  60 + weight: inherit;
  61 + style: inherit;
  62 + size: 100%;
  63 + family: inherit; };
  64 + vertical-align: baseline; }
  65 +
  66 +// Resets the outline when focus.
  67 +// For accessibility you need to apply some styling in its place.
  68 +@mixin reset-focus {
  69 + outline: 0; }
  70 +
  71 +// Reset a body element.
  72 +@mixin reset-body {
  73 + line-height: 1;
  74 + color: black;
  75 + background: white; }
  76 +
  77 +// Reset the list style of an element.
  78 +@mixin reset-list-style {
  79 + list-style: none; }
  80 +
  81 +// Reset a table
  82 +@mixin reset-table {
  83 + border-collapse: separate;
  84 + border-spacing: 0;
  85 + vertical-align: middle; }
  86 +
  87 +// Reset a table cell (`th`, `td`)
  88 +@mixin reset-table-cell {
  89 + text-align: left;
  90 + font-weight: normal;
  91 + vertical-align: middle; }
  92 +
  93 +// Reset a quotation (`q`, `blockquote`)
  94 +@mixin reset-quotation {
  95 + quotes: "" "";
  96 + &:before, &:after {
  97 + content: ""; } }
  98 +
  99 +// Resets the border.
  100 +@mixin reset-image-anchor-border {
  101 + border: none; }
  102 +
  103 +// Unrecognized elements are displayed inline.
  104 +// This reset provides a basic reset for html5 elements
  105 +// so they are rendered correctly in browsers that don't recognize them
  106 +// and reset in browsers that have default styles for them.
  107 +@mixin reset-html5 {
  108 + #{elements-of-type(html5-block)} {
  109 + @include reset-box-model;
  110 + display: block; } }
  111 +
  112 +// Resets the display of inline and block elements to their default display
  113 +// according to their tag type. Elements that have a default display that varies across
  114 +// versions of html or browser are not handled here, but this covers the 90% use case.
  115 +// Usage Example:
  116 +//
  117 +// // Turn off the display for both of these classes
  118 +// .unregistered-only, .registered-only
  119 +// display: none
  120 +// // Now turn only one of them back on depending on some other context.
  121 +// body.registered
  122 +// +reset-display(".registered-only")
  123 +// body.unregistered
  124 +// +reset-display(".unregistered-only")
  125 +@mixin reset-display($selector: "", $important: false) {
  126 + #{append-selector(elements-of-type("inline"), $selector)} {
  127 + @if $important {
  128 + display: inline !important; }
  129 + @else {
  130 + display: inline; } }
  131 + #{append-selector(elements-of-type("block"), $selector)} {
  132 + @if $important {
  133 + display: block !important; }
  134 + @else {
  135 + display: block; } } }
... ...
forum/static/css/compass/reset/_utilities.scss
... ... @@ -0,0 +1,142 @@
  1 +// Based on [Eric Meyer's reset 2.0](http://meyerweb.com/eric/tools/css/reset/index.html)
  2 +// Global reset rules.
  3 +// For more specific resets, use the reset mixins provided below
  4 +@mixin global-reset {
  5 + html, body, div, span, applet, object, iframe,
  6 + h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  7 + a, abbr, acronym, address, big, cite, code,
  8 + del, dfn, em, img, ins, kbd, q, s, samp,
  9 + small, strike, strong, sub, sup, tt, var,
  10 + b, u, i, center,
  11 + dl, dt, dd, ol, ul, li,
  12 + fieldset, form, label, legend,
  13 + table, caption, tbody, tfoot, thead, tr, th, td,
  14 + article, aside, canvas, details, embed,
  15 + figure, figcaption, footer, header, hgroup,
  16 + menu, nav, output, ruby, section, summary,
  17 + time, mark, audio, video {
  18 + @include reset-box-model;
  19 + @include reset-font; }
  20 + // Unlike Eric's original reset, we reset the html element to be compatible
  21 + // with the vertical rhythm mixins.
  22 + html {
  23 + @include reset-body; }
  24 + ol, ul {
  25 + @include reset-list-style; }
  26 + table {
  27 + @include reset-table; }
  28 + caption, th, td {
  29 + @include reset-table-cell; }
  30 + q, blockquote {
  31 + @include reset-quotation; }
  32 + a img {
  33 + @include reset-image-anchor-border; }
  34 + @include reset-html5; }
  35 +
  36 +// Reset all elements within some selector scope. To reset the selector itself,
  37 +// mixin the appropriate reset mixin for that element type as well. This could be
  38 +// useful if you want to style a part of your page in a dramatically different way.
  39 +@mixin nested-reset {
  40 + div, span, applet, object, iframe,
  41 + h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  42 + a, abbr, acronym, address, big, cite, code,
  43 + del, dfn, em, img, ins, kbd, q, s, samp,
  44 + small, strike, strong, sub, sup, tt, var,
  45 + b, u, i, center,
  46 + dl, dt, dd, ol, ul, li,
  47 + fieldset, form, label, legend,
  48 + table, caption, tbody, tfoot, thead, tr, th, td,
  49 + article, aside, canvas, details, embed,
  50 + figure, figcaption, footer, header, hgroup,
  51 + menu, nav, output, ruby, section, summary,
  52 + time, mark, audio, video {
  53 + @include reset-box-model;
  54 + @include reset-font; }
  55 + table {
  56 + @include reset-table; }
  57 + caption, th, td {
  58 + @include reset-table-cell; }
  59 + q, blockquote {
  60 + @include reset-quotation; }
  61 + a img {
  62 + @include reset-image-anchor-border; } }
  63 +
  64 +// Reset the box model measurements.
  65 +@mixin reset-box-model {
  66 + margin: 0;
  67 + padding: 0;
  68 + border: 0; }
  69 +
  70 +// Reset the font and vertical alignment.
  71 +@mixin reset-font {
  72 + font: inherit;
  73 + font-size: 100%;
  74 + vertical-align: baseline; }
  75 +
  76 +// Resets the outline when focus.
  77 +// For accessibility you need to apply some styling in its place.
  78 +@mixin reset-focus {
  79 + outline: 0; }
  80 +
  81 +// Reset a body element.
  82 +@mixin reset-body {
  83 + line-height: 1; }
  84 +
  85 +// Reset the list style of an element.
  86 +@mixin reset-list-style {
  87 + list-style: none; }
  88 +
  89 +// Reset a table
  90 +@mixin reset-table {
  91 + border-collapse: collapse;
  92 + border-spacing: 0; }
  93 +
  94 +// Reset a table cell (`th`, `td`)
  95 +@mixin reset-table-cell {
  96 + text-align: left;
  97 + font-weight: normal;
  98 + vertical-align: middle; }
  99 +
  100 +// Reset a quotation (`q`, `blockquote`)
  101 +@mixin reset-quotation {
  102 + quotes: none;
  103 + &:before, &:after {
  104 + content: "";
  105 + content: none; } }
  106 +
  107 +// Resets the border.
  108 +@mixin reset-image-anchor-border {
  109 + border: none; }
  110 +
  111 +// Unrecognized elements are displayed inline.
  112 +// This reset provides a basic reset for block html5 elements
  113 +// so they are rendered correctly in browsers that don't recognize them
  114 +// and reset in browsers that have default styles for them.
  115 +@mixin reset-html5 {
  116 + #{elements-of-type(html5-block)} {
  117 + display: block; } }
  118 +
  119 +// Resets the display of inline and block elements to their default display
  120 +// according to their tag type. Elements that have a default display that varies across
  121 +// versions of html or browser are not handled here, but this covers the 90% use case.
  122 +// Usage Example:
  123 +//
  124 +// // Turn off the display for both of these classes
  125 +// .unregistered-only, .registered-only
  126 +// display: none
  127 +// // Now turn only one of them back on depending on some other context.
  128 +// body.registered
  129 +// +reset-display(".registered-only")
  130 +// body.unregistered
  131 +// +reset-display(".unregistered-only")
  132 +@mixin reset-display($selector: "", $important: false) {
  133 + #{append-selector(elements-of-type("inline"), $selector)} {
  134 + @if $important {
  135 + display: inline !important; }
  136 + @else {
  137 + display: inline; } }
  138 + #{append-selector(elements-of-type("block"), $selector)} {
  139 + @if $important {
  140 + display: block !important; }
  141 + @else {
  142 + display: block; } } }
... ...
forum/static/css/compass/typography/_links.scss
... ... @@ -0,0 +1,3 @@
  1 +@import "links/hover-link";
  2 +@import "links/link-colors";
  3 +@import "links/unstyled-link";
... ...
forum/static/css/compass/typography/_lists.scss
... ... @@ -0,0 +1,4 @@
  1 +@import "lists/horizontal-list";
  2 +@import "lists/inline-list";
  3 +@import "lists/inline-block-list";
  4 +@import "lists/bullets";
... ...
forum/static/css/compass/typography/_text.scss
... ... @@ -0,0 +1,4 @@
  1 +@import "text/ellipsis";
  2 +@import "text/nowrap";
  3 +@import "text/replacement";
  4 +@import "text/force-wrap";
... ...
forum/static/css/compass/typography/_vertical_rhythm.scss
... ... @@ -0,0 +1,221 @@
  1 +@import "compass/layout/grid-background";
  2 +
  3 +// The base font size.
  4 +$base-font-size: 16px !default;
  5 +
  6 +// The base line height determines the basic unit of vertical rhythm.
  7 +$base-line-height: 24px !default;
  8 +
  9 +// Set the default border style for rhythm borders.
  10 +$default-rhythm-border-style: solid !default;
  11 +
  12 +// The default font size in all browsers.
  13 +$browser-default-font-size: 16px;
  14 +
  15 +// Set to false if you want to use absolute pixels in sizing your typography.
  16 +$relative-font-sizing: true !default;
  17 +
  18 +// Allows the `adjust-font-size-to` mixin and the `lines-for-font-size` function
  19 +// to round the line height to the nearest half line height instead of the
  20 +// nearest integral line height to avoid large spacing between lines.
  21 +$round-to-nearest-half-line: false !default;
  22 +
  23 +// Ensure there is at least this many pixels
  24 +// of vertical padding above and below the text.
  25 +$min-line-padding: 2px !default;
  26 +
  27 +// $base-font-size but in your output unit of choice.
  28 +// Defaults to 1em when `$relative-font-sizing` is true.
  29 +$font-unit: if($relative-font-sizing, 1em, $base-font-size) !default;
  30 +
  31 +// The basic unit of font rhythm.
  32 +$base-rhythm-unit: $base-line-height / $base-font-size * $font-unit;
  33 +
  34 +// The leader is the amount of whitespace in a line.
  35 +// It might be useful in your calculations.
  36 +$base-leader: ($base-line-height - $base-font-size) * $font-unit / $base-font-size;
  37 +
  38 +// The half-leader is the amount of whitespace above and below a line.
  39 +// It might be useful in your calculations.
  40 +$base-half-leader: $base-leader / 2;
  41 +
  42 +// True if a number has a relative unit.
  43 +@function relative-unit($number) {
  44 + @return unit($number) == "%" or unit($number) == "em" or unit($number) == "rem"
  45 +}
  46 +
  47 +// True if a number has an absolute unit.
  48 +@function absolute-unit($number) {
  49 + @return not (relative-unit($number) or unitless($number));
  50 +}
  51 +
  52 +@if $relative-font-sizing and not relative-unit($font-unit) {
  53 + @warn "$relative-font-sizing is true but $font-unit is set to #{$font-unit} which is not a relative unit.";
  54 +}
  55 +
  56 +// Establishes a font baseline for the given font-size.
  57 +@mixin establish-baseline($font-size: $base-font-size) {
  58 + // IE 6 refuses to resize fonts set in pixels and it weirdly resizes fonts
  59 + // whose root is set in ems. So we set the root font size in percentages of
  60 + // the default font size.
  61 + * html {
  62 + font-size: 100% * ($font-size / $browser-default-font-size);
  63 + }
  64 + html {
  65 + font-size: $font-size;
  66 + @include adjust-leading-to(1, if($relative-font-sizing, $font-size, $base-font-size));
  67 + }
  68 +}
  69 +
  70 +// Resets the line-height to 1 vertical rhythm unit.
  71 +// Does not work on elements whose font-size is different from $base-font-size.
  72 +//
  73 +// @deprecated This mixin will be removed in the next release.
  74 +// Please use the `adjust-leading-to` mixin instead.
  75 +@mixin reset-baseline {
  76 + @include adjust-leading-to(1, if($relative-font-sizing, $base-font-size, $base-font-size));
  77 +}
  78 +
  79 +// Show a background image that can be used to debug your alignments.
  80 +// Include the $img argument if you would rather use your own image than the
  81 +// Compass default gradient image.
  82 +@mixin debug-vertical-alignment($img: false) {
  83 + @if $img {
  84 + background: image-url($img);
  85 + } @else {
  86 + @include baseline-grid-background($base-rhythm-unit);
  87 + }
  88 +}
  89 +
  90 +// Adjust a block to have a different font size and line height to maintain the
  91 +// rhythm. $lines specifies how many multiples of the baseline rhythm each line
  92 +// of this font should use up. It does not have to be an integer, but it
  93 +// defaults to the smallest integer that is large enough to fit the font.
  94 +// Use $from-size to adjust from a font-size other than the base font-size.
  95 +@mixin adjust-font-size-to($to-size, $lines: lines-for-font-size($to-size), $from-size: $base-font-size) {
  96 + @if not $relative-font-sizing and $from-size != $base-font-size {
  97 + @warn "$relative-font-sizing is false but a relative font size was passed to adjust-font-size-to";
  98 + }
  99 + font-size: $font-unit * $to-size / $from-size;
  100 + @include adjust-leading-to($lines, if($relative-font-sizing, $to-size, $base-font-size));
  101 +}
  102 +
  103 +// Adjust a block to have different line height to maintain the rhythm.
  104 +// $lines specifies how many multiples of the baseline rhythm each line of this
  105 +// font should use up. It does not have to be an integer, but it defaults to the
  106 +// smallest integer that is large enough to fit the font.
  107 +@mixin adjust-leading-to($lines, $font-size: $base-font-size) {
  108 + line-height: rhythm($lines, $font-size);
  109 +}
  110 +
  111 +// Calculate rhythm units.
  112 +@function rhythm(
  113 + $lines: 1,
  114 + $font-size: $base-font-size,
  115 + $offset: 0
  116 +) {
  117 + @if not $relative-font-sizing and $font-size != $base-font-size {
  118 + @warn "$relative-font-sizing is false but a relative font size was passed to the rhythm function";
  119 + }
  120 + $rhythm: $font-unit * ($lines * $base-line-height - $offset) / $font-size;
  121 + // Round the pixels down to nearest integer.
  122 + @if unit($rhythm) == px {
  123 + $rhythm: floor($rhythm);
  124 + }
  125 + @return $rhythm;
  126 +}
  127 +
  128 +// Calculate the minimum multiple of rhythm units needed to contain the font-size.
  129 +@function lines-for-font-size($font-size) {
  130 + $lines: if($round-to-nearest-half-line,
  131 + ceil(2 * $font-size / $base-line-height) / 2,
  132 + ceil($font-size / $base-line-height));
  133 + @if $lines * $base-line-height - $font-size < $min-line-padding * 2 {
  134 + $lines: $lines + if($round-to-nearest-half-line, 0.5, 1);
  135 + }
  136 + @return $lines;
  137 +}
  138 +
  139 +// Apply leading whitespace. The $property can be margin or padding.
  140 +@mixin leader($lines: 1, $font-size: $base-font-size, $property: margin) {
  141 + #{$property}-top: rhythm($lines, $font-size);
  142 +}
  143 +
  144 +// Apply leading whitespace as padding.
  145 +@mixin padding-leader($lines: 1, $font-size: $base-font-size) {
  146 + padding-top: rhythm($lines, $font-size);
  147 +}
  148 +
  149 +// Apply leading whitespace as margin.
  150 +@mixin margin-leader($lines: 1, $font-size: $base-font-size) {
  151 + margin-top: rhythm($lines, $font-size);
  152 +}
  153 +
  154 +// Apply trailing whitespace. The $property can be margin or padding.
  155 +@mixin trailer($lines: 1, $font-size: $base-font-size, $property: margin) {
  156 + #{$property}-bottom: rhythm($lines, $font-size);
  157 +}
  158 +
  159 +// Apply trailing whitespace as padding.
  160 +@mixin padding-trailer($lines: 1, $font-size: $base-font-size) {
  161 + padding-bottom: rhythm($lines, $font-size);
  162 +}
  163 +
  164 +// Apply trailing whitespace as margin.
  165 +@mixin margin-trailer($lines: 1, $font-size: $base-font-size) {
  166 + margin-bottom: rhythm($lines, $font-size);
  167 +}
  168 +
  169 +// Shorthand mixin to apply whitespace for top and bottom margins and padding.
  170 +@mixin rhythm($leader: 0, $padding-leader: 0, $padding-trailer: 0, $trailer: 0, $font-size: $base-font-size) {
  171 + @include leader($leader, $font-size);
  172 + @include padding-leader($padding-leader, $font-size);
  173 + @include padding-trailer($padding-trailer, $font-size);
  174 + @include trailer($trailer, $font-size);
  175 +}
  176 +
  177 +// Apply a border and whitespace to any side without destroying the vertical
  178 +// rhythm. The whitespace must be greater than the width of the border.
  179 +@mixin apply-side-rhythm-border($side, $width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
  180 + @if not $relative-font-sizing and $font-size != $base-font-size {
  181 + @warn "$relative-font-sizing is false but a relative font size was passed to apply-side-rhythm-border";
  182 + }
  183 + border-#{$side}: {
  184 + style: $border-style;
  185 + width: $font-unit * $width / $font-size;
  186 + };
  187 + padding-#{$side}: rhythm($lines, $font-size, $offset: $width);
  188 +}
  189 +
  190 +// Apply borders and whitespace equally to all sides.
  191 +@mixin rhythm-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
  192 + @if not $relative-font-sizing and $font-size != $base-font-size {
  193 + @warn "$relative-font-sizing is false but a relative font size was passed to rhythm-borders";
  194 + }
  195 + border: {
  196 + style: $border-style;
  197 + width: $font-unit * $width / $font-size;
  198 + };
  199 + padding: rhythm($lines, $font-size, $offset: $width);
  200 +}
  201 +
  202 +// Apply a leading border.
  203 +@mixin leading-border($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
  204 + @include apply-side-rhythm-border(top, $width, $lines, $font-size, $border-style);
  205 +}
  206 +
  207 +// Apply a trailing border.
  208 +@mixin trailing-border($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
  209 + @include apply-side-rhythm-border(bottom, $width, $lines, $font-size, $border-style);
  210 +}
  211 +
  212 +// Apply both leading and trailing borders.
  213 +@mixin horizontal-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
  214 + @include leading-border($width, $lines, $font-size, $border-style);
  215 + @include trailing-border($width, $lines, $font-size, $border-style);
  216 +}
  217 +
  218 +// Alias for `horizontal-borders` mixin.
  219 +@mixin h-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
  220 + @include horizontal-borders($width, $lines, $font-size, $border-style);
  221 +}
... ...
forum/static/css/compass/typography/links/_hover-link.scss
... ... @@ -0,0 +1,5 @@
  1 +// a link that only has an underline when you hover over it
  2 +@mixin hover-link {
  3 + text-decoration: none;
  4 + &:hover {
  5 + text-decoration: underline; } }
... ...
forum/static/css/compass/typography/links/_link-colors.scss
... ... @@ -0,0 +1,28 @@
  1 +// Set all the colors for a link with one mixin call.
  2 +// Order of arguments is:
  3 +//
  4 +// 1. normal
  5 +// 2. hover
  6 +// 3. active
  7 +// 4. visited
  8 +// 5. focus
  9 +//
  10 +// Those states not specified will inherit.
  11 +// Mixin to an anchor link like so:
  12 +// a
  13 +// +link-colors(#00c, #0cc, #c0c, #ccc, #cc0)
  14 +
  15 +@mixin link-colors($normal, $hover: false, $active: false, $visited: false, $focus: false) {
  16 + color: $normal;
  17 + @if $visited {
  18 + &:visited {
  19 + color: $visited; } }
  20 + @if $focus {
  21 + &:focus {
  22 + color: $focus; } }
  23 + @if $hover {
  24 + &:hover {
  25 + color: $hover; } }
  26 + @if $active {
  27 + &:active {
  28 + color: $active; } } }
... ...
forum/static/css/compass/typography/links/_unstyled-link.scss
... ... @@ -0,0 +1,7 @@
  1 +// A link that looks and acts like the text it is contained within
  2 +@mixin unstyled-link {
  3 + color: inherit;
  4 + text-decoration: inherit;
  5 + cursor: inherit;
  6 + &:active, &:focus {
  7 + outline: none; } }
... ...
forum/static/css/compass/typography/lists/_bullets.scss
... ... @@ -0,0 +1,34 @@
  1 +// Turn off the bullet for an element of a list
  2 +@mixin no-bullet {
  3 + list-style-image : none;
  4 + list-style-type : none;
  5 + margin-left : 0;
  6 +}
  7 +
  8 +// turns off the bullets for an entire list
  9 +@mixin no-bullets {
  10 + list-style: none;
  11 + li { @include no-bullet; }
  12 +}
  13 +
  14 +// Make a list(ul/ol) have an image bullet.
  15 +//
  16 +// The mixin should be used like this for an icon that is 5x7:
  17 +//
  18 +// ul.pretty
  19 +// +pretty-bullets("my-icon.png", 5px, 7px)
  20 +//
  21 +// Additionally, if the image dimensions are not provided,
  22 +// The image dimensions will be extracted from the image itself.
  23 +//
  24 +// ul.pretty
  25 +// +pretty-bullets("my-icon.png")
  26 +//
  27 +@mixin pretty-bullets($bullet-icon, $width: image-width($bullet-icon), $height: image-height($bullet-icon), $line-height: 18px, $padding: 14px) {
  28 + margin-left: 0;
  29 + li {
  30 + padding-left: $padding;
  31 + background: image-url($bullet-icon) no-repeat ($padding - $width) / 2 ($line-height - $height) / 2;
  32 + list-style-type: none;
  33 + }
  34 +}
... ...
forum/static/css/compass/typography/lists/_horizontal-list.scss
... ... @@ -0,0 +1,61 @@
  1 +// Horizontal list layout module.
  2 +//
  3 +// Easy mode using simple descendant li selectors:
  4 +//
  5 +// ul.nav
  6 +// +horizontal-list
  7 +//
  8 +// Advanced mode:
  9 +// If you need to target the list items using a different selector then use
  10 +// +horizontal-list-container on your ul/ol and +horizontal-list-item on your li.
  11 +// This may help when working on layouts involving nested lists. For example:
  12 +//
  13 +// ul.nav
  14 +// +horizontal-list-container
  15 +// > li
  16 +// +horizontal-list-item
  17 +
  18 +@import "bullets";
  19 +@import "compass/utilities/general/clearfix";
  20 +@import "compass/utilities/general/reset";
  21 +@import "compass/utilities/general/float";
  22 +
  23 +// Can be mixed into any selector that target a ul or ol that is meant
  24 +// to have a horizontal layout. Used to implement +horizontal-list.
  25 +@mixin horizontal-list-container {
  26 + @include reset-box-model;
  27 + @include clearfix; }
  28 +
  29 +// Can be mixed into any li selector that is meant to participate in a horizontal layout.
  30 +// Used to implement +horizontal-list.
  31 +//
  32 +// :last-child is not fully supported
  33 +// see http://www.quirksmode.org/css/contents.html#t29 for the support matrix
  34 +//
  35 +// IE8 ignores rules that are included on the same line as :last-child
  36 +// see http://www.richardscarrott.co.uk/posts/view/ie8-last-child-bug for details
  37 +//
  38 +// Setting `$padding` to `false` disables the padding between list elements
  39 +@mixin horizontal-list-item($padding: 4px, $direction: left) {
  40 + @include no-bullet;
  41 + white-space: nowrap;
  42 + @include float($direction);
  43 + @if $padding {
  44 + padding: {
  45 + left: $padding;
  46 + right: $padding;
  47 + }
  48 + &:first-child, &.first { padding-#{$direction}: 0; }
  49 + &:last-child { padding-#{opposite-position($direction)}: 0; }
  50 + &.last { padding-#{opposite-position($direction)}: 0; }
  51 + }
  52 +}
  53 +
  54 +// A list(ol,ul) that is layed out such that the elements are floated left and won't wrap.
  55 +// This is not an inline list.
  56 +//
  57 +// Setting `$padding` to `false` disables the padding between list elements
  58 +@mixin horizontal-list($padding: 4px, $direction: left) {
  59 + @include horizontal-list-container;
  60 + li {
  61 + @include horizontal-list-item($padding, $direction); } }
... ...
forum/static/css/compass/typography/lists/_inline-block-list.scss
... ... @@ -0,0 +1,50 @@
  1 +// Inline-Block list layout module.
  2 +//
  3 +// Easy mode using simple descendant li selectors:
  4 +//
  5 +// ul.nav {
  6 +// @import inline-block-list;
  7 +// }
  8 +//
  9 +// Advanced mode:
  10 +// If you need to target the list items using a different selector then use
  11 +// `@include inline-block-list-container` on your ul/ol and
  12 +// `@include inline-block-list-item` on your li. This may help when working
  13 +// on layouts involving nested lists. For example:
  14 +//
  15 +// ul.nav {
  16 +// @include inline-block-list-container;
  17 +// > li {
  18 +// @include inline-block-list-item;
  19 +// }
  20 +// }
  21 +
  22 +@import "bullets";
  23 +@import "horizontal-list";
  24 +@import "compass/utilities/general/float";
  25 +@import "compass/css3/inline-block";
  26 +
  27 +// Can be mixed into any selector that target a ul or ol that is meant
  28 +// to have an inline-block layout. Used to implement `inline-block-list`.
  29 +@mixin inline-block-list-container {
  30 + @include horizontal-list-container; }
  31 +
  32 +// Can be mixed into any li selector that is meant to participate in a horizontal layout.
  33 +// Used to implement `inline-block-list`.
  34 +@mixin inline-block-list-item($padding: false) {
  35 + @include no-bullet;
  36 + @include inline-block;
  37 + white-space: nowrap;
  38 + @if $padding {
  39 + padding: {
  40 + left: $padding;
  41 + right: $padding;
  42 + };
  43 + }
  44 +}
  45 +
  46 +// A list(ol,ul) that is layed out such that the elements are inline-block and won't wrap.
  47 +@mixin inline-block-list($padding: false) {
  48 + @include inline-block-list-container;
  49 + li {
  50 + @include inline-block-list-item($padding); } }
... ...
forum/static/css/compass/typography/lists/_inline-list.scss
... ... @@ -0,0 +1,44 @@
  1 +// makes a list inline.
  2 +
  3 +@mixin inline-list {
  4 + list-style-type: none;
  5 + &, & li {
  6 + margin: 0px;
  7 + padding: 0px;
  8 + display: inline;
  9 + }
  10 +}
  11 +
  12 +// makes an inline list delimited with the passed string.
  13 +// Defaults to making a comma-separated list.
  14 +//
  15 +// Please make note of the browser support issues before using this mixin:
  16 +//
  17 +// use of `content` and `:after` is not fully supported in all browsers.
  18 +// See quirksmode for the [support matrix](http://www.quirksmode.org/css/contents.html#t15)
  19 +//
  20 +// `:last-child` is not fully supported.
  21 +// see quirksmode for the [support matrix](http://www.quirksmode.org/css/contents.html#t29).
  22 +//
  23 +// IE8 ignores rules that are included on the same line as :last-child
  24 +// see http://www.richardscarrott.co.uk/posts/view/ie8-last-child-bug for details
  25 +
  26 +@mixin delimited-list($separator: ", ") {
  27 + @include inline-list;
  28 + li {
  29 + &:after { content: $separator; }
  30 + &:last-child {
  31 + &:after { content: ""; }
  32 + }
  33 + &.last {
  34 + &:after { content: ""; }
  35 + }
  36 + }
  37 +}
  38 +
  39 +// See [delimited-list](#mixin-delimited-list)
  40 +// @deprecated
  41 +@mixin comma-delimited-list {
  42 + @warn "comma-delimited-list is deprecated. Please use delimited-list instead.";
  43 + @include delimited-list;
  44 +}
... ...
forum/static/css/compass/typography/text/_ellipsis.scss
... ... @@ -0,0 +1,25 @@
  1 +@import "compass/css3/shared";
  2 +
  3 +// To get full firefox support, you must install the ellipsis pattern:
  4 +//
  5 +// compass install compass/ellipsis
  6 +$use-mozilla-ellipsis-binding: false !default;
  7 +
  8 +// This technique, by [Justin Maxwell](http://code404.com/), was originally
  9 +// published [here](http://mattsnider.com/css/css-string-truncation-with-ellipsis/).
  10 +// Firefox implementation by [Rikkert Koppes](http://www.rikkertkoppes.com/thoughts/2008/6/).
  11 +@mixin ellipsis($no-wrap: true) {
  12 + @if $no-wrap { white-space: nowrap; }
  13 + overflow: hidden;
  14 + @include experimental(text-overflow, ellipsis,
  15 + not -moz,
  16 + not -webkit,
  17 + -o,
  18 + -ms,
  19 + not -khtml,
  20 + official
  21 + );
  22 + @if $experimental-support-for-mozilla and $use-mozilla-ellipsis-binding {
  23 + -moz-binding: stylesheet-url(unquote("xml/ellipsis.xml#ellipsis"));
  24 + }
  25 +}
... ...
forum/static/css/compass/typography/text/_force-wrap.scss
... ... @@ -0,0 +1,12 @@
  1 +// Prevent long urls and text from breaking layouts
  2 +// [originally from perishablepress.com](http://perishablepress.com/press/2010/06/01/wrapping-content/)
  3 +@mixin force-wrap {
  4 + white-space: pre; // CSS 2.0
  5 + white-space: pre-wrap; // CSS 2.1
  6 + white-space: pre-line; // CSS 3.0
  7 + white-space: -pre-wrap; // Opera 4-6
  8 + white-space: -o-pre-wrap; // Opera 7
  9 + white-space: -moz-pre-wrap; // Mozilla
  10 + white-space: -hp-pre-wrap; // HP Printers
  11 + word-wrap: break-word; // IE 5+
  12 +}
... ...
forum/static/css/compass/typography/text/_nowrap.scss
... ... @@ -0,0 +1,2 @@
  1 +// When remembering whether or not there's a hyphen in white-space is too hard
  2 +@mixin nowrap { white-space: nowrap; }
... ...
forum/static/css/compass/typography/text/_replacement.scss
... ... @@ -0,0 +1,68 @@
  1 +// Indicates the direction you prefer to move your text
  2 +// when hiding it.
  3 +//
  4 +// `left` is more robust, especially in older browsers.
  5 +// `right` seems have better runtime performance.
  6 +$hide-text-direction: left !default;
  7 +
  8 +// Hides html text and replaces it with an image.
  9 +// If you use this on an inline element, you will need to change the display to block or inline-block.
  10 +// Also, if the size of the image differs significantly from the font size, you'll need to set the width and/or height.
  11 +//
  12 +// Parameters:
  13 +//
  14 +// * `img` -- the relative path from the project image directory to the image, or a url literal.
  15 +// * `x` -- the x position of the background image.
  16 +// * `y` -- the y position of the background image.
  17 +@mixin replace-text($img, $x: 50%, $y: 50%) {
  18 + @include hide-text;
  19 + background: {
  20 + @if is-url($img) {
  21 + image: $img;
  22 + } @else {
  23 + image: image-url($img);
  24 + }
  25 + repeat: no-repeat;
  26 + position: $x $y;
  27 + };
  28 +}
  29 +
  30 +// Like the `replace-text` mixin, but also sets the width
  31 +// and height of the element according the dimensions of the image.
  32 +//
  33 +// If you set `$inline` to true, then an inline image (data uri) will be used.
  34 +@mixin replace-text-with-dimensions($img, $x: 50%, $y: 50%, $inline: false) {
  35 + @include replace-text(if($inline, inline-image($img), $img), $x, $y);
  36 + width: image-width($img);
  37 + height: image-height($img);
  38 +}
  39 +
  40 +// Hides text in an element so you can see the background.
  41 +//
  42 +// The direction indicates how the text should be moved out of view.
  43 +//
  44 +// See `$hide-text-direction` for more information and to set this globally
  45 +// for your application.
  46 +@mixin hide-text($direction: $hide-text-direction) {
  47 + @if $direction == left {
  48 + $approximate-em-value: 12px / 1em;
  49 + $wider-than-any-screen: -9999em;
  50 + text-indent: $wider-than-any-screen * $approximate-em-value;
  51 + overflow: hidden;
  52 + text-align: left;
  53 + } @else {
  54 + // slightly wider than the box prevents issues with inline-block elements
  55 + text-indent: 110%;
  56 + white-space: nowrap;
  57 + overflow: hidden;
  58 + }
  59 +}
  60 +
  61 +// Hides text in an element by squishing the text into oblivion.
  62 +// Use this if you need to hide text contained in an inline element
  63 +// but still have it read by a screen reader.
  64 +@mixin squish-text {
  65 + font: 0/0 serif;
  66 + text-shadow: none;
  67 + color: transparent;
  68 +}
... ...
forum/static/css/compass/utilities/_color.scss
... ... @@ -0,0 +1 @@
  1 +@import "color/contrast";
0 2 \ No newline at end of file
... ...
forum/static/css/compass/utilities/_general.scss
... ... @@ -0,0 +1,6 @@
  1 +@import "general/reset";
  2 +@import "general/clearfix";
  3 +@import "general/float";
  4 +@import "general/tag-cloud";
  5 +@import "general/hacks";
  6 +@import "general/min";
... ...
forum/static/css/compass/utilities/_links.scss
... ... @@ -0,0 +1,5 @@
  1 +@warn "This import is deprecated. Use 'compass/typography/links' instead.";
  2 +
  3 +@import "../typography/links/hover-link";
  4 +@import "../typography/links/link-colors";
  5 +@import "../typography/links/unstyled-link";
... ...
forum/static/css/compass/utilities/_lists.scss
... ... @@ -0,0 +1,6 @@
  1 +@warn "This import is deprecated. Use 'compass/typography/lists' instead.";
  2 +
  3 +@import "../typography/lists/horizontal-list";
  4 +@import "../typography/lists/inline-list";
  5 +@import "../typography/lists/inline-block-list";
  6 +@import "../typography/lists/bullets";
... ...
forum/static/css/compass/utilities/_print.scss
... ... @@ -0,0 +1,17 @@
  1 +// Classes that are useful for controlling what gets printed.
  2 +// You must mix `+print-utilities` into your print stylesheet
  3 +// and `+print-utilities(screen)` into your screen stylesheet.
  4 +// Note: these aren't semantic.
  5 +@mixin print-utilities($media: print) {
  6 + @if $media == print {
  7 + .noprint, .no-print { display: none; }
  8 + #{elements-of-type(block)} {
  9 + &.print-only { display: block; }
  10 + }
  11 + #{elements-of-type(inline)} {
  12 + &.print-only { display: inline; }
  13 + }
  14 + } @else {
  15 + .print-only { display: none; }
  16 + }
  17 +}
... ...
forum/static/css/compass/utilities/_sprites.scss
... ... @@ -0,0 +1,2 @@
  1 +@import "sprites/base";
  2 +@import "sprites/sprite-img";
... ...
forum/static/css/compass/utilities/_tables.scss
... ... @@ -0,0 +1,3 @@
  1 +@import "tables/alternating-rows-and-columns";
  2 +@import "tables/borders";
  3 +@import "tables/scaffolding";
... ...
forum/static/css/compass/utilities/_text.scss
... ... @@ -0,0 +1,5 @@
  1 +@warn "This import is deprecated. Use 'compass/typography/text' instead.";
  2 +
  3 +@import "../typography/text/ellipsis";
  4 +@import "../typography/text/nowrap";
  5 +@import "../typography/text/replacement";
... ...
forum/static/css/compass/utilities/color/_contrast.scss
... ... @@ -0,0 +1,28 @@
  1 +$contrasted-dark-default: #000 !default;
  2 +$contrasted-light-default: #fff !default;
  3 +$contrasted-lightness-threshold: 30% !default;
  4 +
  5 +// Returns the `$light` color when the `$color` is dark
  6 +// and the `$dark` color when the `$color` is light.
  7 +// The `$threshold` is a percent between `0%` and `100%` and it determines
  8 +// when the lightness of `$color` changes from "dark" to "light".
  9 +@function contrast-color(
  10 + $color,
  11 + $dark: $contrasted-dark-default,
  12 + $light: $contrasted-light-default,
  13 + $threshold: $contrasted-lightness-threshold
  14 +) {
  15 + @return if(lightness($color) < $threshold, $light, $dark)
  16 +}
  17 +
  18 +// Sets the specified background color and calculates a dark or light contrasted text color.
  19 +// The arguments are passed through to the [contrast-color function](#function-contrast-color).
  20 +@mixin contrasted(
  21 + $background-color,
  22 + $dark: $contrasted-dark-default,
  23 + $light: $contrasted-light-default,
  24 + $threshold: $contrasted-lightness-threshold
  25 +) {
  26 + background-color: $background-color;
  27 + color: contrast-color($background-color, $dark, $light, $threshold);
  28 +}
0 29 \ No newline at end of file
... ...
forum/static/css/compass/utilities/general/_clearfix.scss
... ... @@ -0,0 +1,44 @@
  1 +// @doc off
  2 +// Extends the bottom of the element to enclose any floats it contains.
  3 +// @doc on
  4 +
  5 +@import "hacks";
  6 +
  7 +// This basic method is preferred for the usual case, when positioned
  8 +// content will not show outside the bounds of the container.
  9 +//
  10 +// Recommendations include using this in conjunction with a width.
  11 +// Credit: [quirksmode.org](http://www.quirksmode.org/blog/archives/2005/03/clearing_floats.html)
  12 +@mixin clearfix {
  13 + overflow: hidden;
  14 + @include has-layout;
  15 +}
  16 +
  17 +// This older method from Position Is Everything called
  18 +// [Easy Clearing](http://www.positioniseverything.net/easyclearing.html)
  19 +// has the advantage of allowing positioned elements to hang
  20 +// outside the bounds of the container at the expense of more tricky CSS.
  21 +@mixin legacy-pie-clearfix {
  22 + &:after {
  23 + content : "\0020";
  24 + display : block;
  25 + height : 0;
  26 + clear : both;
  27 + overflow : hidden;
  28 + visibility : hidden;
  29 + }
  30 + @include has-layout;
  31 +}
  32 +
  33 +// This is an updated version of the PIE clearfix method that reduces the amount of CSS output.
  34 +// If you need to support Firefox before 3.5 you need to use `legacy-pie-clearfix` instead.
  35 +//
  36 +// Adapted from: [A new micro clearfix hack](http://nicolasgallagher.com/micro-clearfix-hack/)
  37 +@mixin pie-clearfix {
  38 + &:after {
  39 + content: "";
  40 + display: table;
  41 + clear: both;
  42 + }
  43 + @include has-layout;
  44 +}
... ...
forum/static/css/compass/utilities/general/_float.scss
... ... @@ -0,0 +1,30 @@
  1 +// Implementation of float:left with fix for the
  2 +// [double-margin bug in IE5/6](http://www.positioniseverything.net/explorer/doubled-margin.html)
  3 +@mixin float-left {
  4 + @include float(left); }
  5 +
  6 +// Implementation of float:right with fix for the
  7 +// [double-margin bug in IE5/6](http://www.positioniseverything.net/explorer/doubled-margin.html)
  8 +@mixin float-right {
  9 + @include float(right); }
  10 +
  11 +// Direction independent float mixin that fixes the
  12 +// [double-margin bug in IE5/6](http://www.positioniseverything.net/explorer/doubled-margin.html)
  13 +@mixin float($side: left) {
  14 + display: inline;
  15 + float: unquote($side); }
  16 +
  17 +// Resets floated elements back to their default of `float: none` and defaults
  18 +// to `display: block` unless you pass `inline` as an argument
  19 +//
  20 +// Usage Example:
  21 +//
  22 +// body.homepage
  23 +// #footer li
  24 +// +float-left
  25 +// body.signup
  26 +// #footer li
  27 +// +reset-float
  28 +@mixin reset-float($display: block) {
  29 + float: none;
  30 + display: $display; }
0 31 \ No newline at end of file
... ...
forum/static/css/compass/utilities/general/_hacks.scss
... ... @@ -0,0 +1,46 @@
  1 +@import "compass/support";
  2 +
  3 +// The `zoom` approach generates less CSS but does not validate.
  4 +// Set this to `block` to use the display-property to hack the
  5 +// element to gain layout.
  6 +$default-has-layout-approach: zoom !default;
  7 +
  8 +// This mixin causes an element matching the selector
  9 +// to gain the "hasLayout" property in internet explorer.
  10 +// More information on [hasLayout](http://reference.sitepoint.com/css/haslayout).
  11 +@mixin has-layout($approach: $default-has-layout-approach) {
  12 + @if $legacy-support-for-ie {
  13 + @if $approach == zoom {
  14 + @include has-layout-zoom;
  15 + } @else if $approach == block {
  16 + @include has-layout-block;
  17 + } @else {
  18 + @warn "Unknown has-layout approach: #{$approach}";
  19 + @include has-layout-zoom;
  20 + }
  21 + }
  22 +}
  23 +
  24 +@mixin has-layout-zoom {
  25 + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 {
  26 + *zoom: 1;
  27 + }
  28 +}
  29 +
  30 +@mixin has-layout-block {
  31 + @if $legacy-support-for-ie {
  32 + // This makes ie6 get layout
  33 + display: inline-block;
  34 + // and this puts it back to block
  35 + & { display: block; }
  36 + }
  37 +}
  38 +
  39 +// A hack to supply IE6 (and below) with a different property value.
  40 +// [Read more](http://www.cssportal.com/css-hacks/#in_css-important).
  41 +@mixin bang-hack($property, $value, $ie6-value) {
  42 + @if $legacy-support-for-ie6 {
  43 + #{$property}: #{$value} !important;
  44 + #{$property}: #{$ie6-value};
  45 + }
  46 +}
... ...
forum/static/css/compass/utilities/general/_min.scss
... ... @@ -0,0 +1,16 @@
  1 +@import "hacks";
  2 +
  3 +//**
  4 +// Cross browser min-height mixin.
  5 +@mixin min-height($value) {
  6 + @include hacked-minimum(height, $value); }
  7 +
  8 +//**
  9 +// Cross browser min-width mixin.
  10 +@mixin min-width($value) {
  11 + @include hacked-minimum(width, $value); }
  12 +
  13 +// @private This mixin is not meant to be used directly.
  14 +@mixin hacked-minimum($property, $value) {
  15 + min-#{$property}: $value;
  16 + @include bang-hack($property, auto, $value); }
... ...
forum/static/css/compass/utilities/general/_reset.scss
... ... @@ -0,0 +1,2 @@
  1 +// This module has moved.
  2 +@import "compass/reset/utilities";
0 3 \ No newline at end of file
... ...
forum/static/css/compass/utilities/general/_tabs.scss
No preview for this file type
forum/static/css/compass/utilities/general/_tag-cloud.scss
... ... @@ -0,0 +1,18 @@
  1 +// Emits styles for a tag cloud
  2 +@mixin tag-cloud($base-size: 1em) {
  3 + font-size: $base-size;
  4 + line-height: 1.2 * $base-size;
  5 + .xxs, .xs, .s, .l, .xl, .xxl {
  6 + line-height: 1.2 * $base-size; }
  7 + .xxs {
  8 + font-size: $base-size / 2; }
  9 + .xs {
  10 + font-size: 2 * $base-size / 3; }
  11 + .s {
  12 + font-size: 3 * $base-size / 4; }
  13 + .l {
  14 + font-size: 4 * $base-size / 3; }
  15 + .xl {
  16 + font-size: 3 * $base-size / 2; }
  17 + .xxl {
  18 + font-size: 2 * $base-size; } }
... ...
forum/static/css/compass/utilities/links/_hover-link.scss
... ... @@ -0,0 +1,3 @@
  1 +@warn "This import is deprecated. Use 'compass/typography/links/hover-link' instead.";
  2 +
  3 +@import "../../typography/links/hover-link";
... ...
forum/static/css/compass/utilities/links/_link-colors.scss
... ... @@ -0,0 +1,3 @@
  1 +@warn "This import is deprecated. Use 'compass/typography/links/link-colors' instead.";
  2 +
  3 +@import "../../typography/links/link-colors";
... ...
forum/static/css/compass/utilities/links/_unstyled-link.scss
... ... @@ -0,0 +1,3 @@
  1 +@warn "This import is deprecated. Use 'compass/typography/links/unstyled-link' instead.";
  2 +
  3 +@import "../../typography/links/unstyled-link";
... ...
forum/static/css/compass/utilities/lists/_bullets.scss
... ... @@ -0,0 +1,3 @@
  1 +@warn "This import is deprecated. Use 'compass/typography/lists/bullets' instead.";
  2 +
  3 +@import "../../typography/lists/bullets";
... ...
forum/static/css/compass/utilities/lists/_horizontal-list.scss
... ... @@ -0,0 +1,3 @@
  1 +@warn "This import is deprecated. Use 'compass/typography/lists/horizontal-list' instead.";
  2 +
  3 +@import "../../typography/lists/horizontal-list";
... ...
forum/static/css/compass/utilities/lists/_inline-block-list.scss
... ... @@ -0,0 +1,3 @@
  1 +@warn "This import is deprecated. Use 'compass/typography/lists/inline-block-list' instead.";
  2 +
  3 +@import "../../typography/lists/inline-block-list";
... ...
forum/static/css/compass/utilities/lists/_inline-list.scss
... ... @@ -0,0 +1,3 @@
  1 +@warn "This import is deprecated. Use 'compass/typography/lists/inline-list' instead.";
  2 +
  3 +@import "../../typography/lists/inline-list";
... ...
forum/static/css/compass/utilities/sprites/_base.scss
... ... @@ -0,0 +1,66 @@
  1 +// Determines those states for which you want to enable magic sprite selectors
  2 +$sprite-selectors: hover, target, active !default;
  3 +
  4 +// Set the width and height of an element to the original
  5 +// dimensions of an image before it was included in the sprite.
  6 +@mixin sprite-dimensions($map, $sprite) {
  7 + height: image-height(sprite-file($map, $sprite));
  8 + width: image-width(sprite-file($map, $sprite));
  9 +}
  10 +
  11 +// Set the background position of the given sprite `$map` to display the
  12 +// sprite of the given `$sprite` name. You can move the image relative to its
  13 +// natural position by passing `$offset-x` and `$offset-y`.
  14 +@mixin sprite-background-position($map, $sprite, $offset-x: 0, $offset-y: 0) {
  15 + background-position: sprite-position($map, $sprite, $offset-x, $offset-y);
  16 +}
  17 +
  18 +
  19 +// Determines if you want to include magic selectors in your sprites
  20 +$disable-magic-sprite-selectors:false !default;
  21 +
  22 +// Include the position and (optionally) dimensions of this `$sprite`
  23 +// in the given sprite `$map`. The sprite url should come from either a base
  24 +// class or you can specify the `sprite-url` explicitly like this:
  25 +//
  26 +// background: $map no-repeat;
  27 +@mixin sprite($map, $sprite, $dimensions: false, $offset-x: 0, $offset-y: 0) {
  28 + @include sprite-background-position($map, $sprite, $offset-x, $offset-y);
  29 + @if $dimensions {
  30 + @include sprite-dimensions($map, $sprite);
  31 + }
  32 + @if not $disable-magic-sprite-selectors {
  33 + @include sprite-selectors($map, $sprite, $sprite, $offset-x, $offset-y);
  34 + }
  35 +}
  36 +
  37 +// Include the selectors for the `$sprite` given the `$map` and the
  38 +// `$full-sprite-name`
  39 +// @private
  40 +@mixin sprite-selectors($map, $sprite-name, $full-sprite-name, $offset-x: 0, $offset-y: 0) {
  41 + @each $selector in $sprite-selectors {
  42 + @if sprite_has_selector($map, $sprite-name, $selector) {
  43 + &:#{$selector}, &.#{$full-sprite-name}_#{$selector}, &.#{$full-sprite-name}-#{$selector} {
  44 + @include sprite-background-position($map, "#{$sprite-name}_#{$selector}", $offset-x, $offset-y);
  45 + }
  46 + }
  47 + }
  48 +}
  49 +
  50 +// Generates a class for each space separated name in `$sprite-names`.
  51 +// The class will be of the form .<map-name>-<sprite-name>.
  52 +//
  53 +// If a base class is provided, then each class will extend it.
  54 +//
  55 +// If `$dimensions` is `true`, the sprite dimensions will specified.
  56 +@mixin sprites($map, $sprite-names, $base-class: false, $dimensions: false, $prefix: sprite-map-name($map), $offset-x: 0, $offset-y: 0) {
  57 + @each $sprite-name in $sprite-names {
  58 + @if sprite_does_not_have_parent($map, $sprite-name) {
  59 + $full-sprite-name: "#{$prefix}-#{$sprite-name}";
  60 + .#{$full-sprite-name} {
  61 + @if $base-class { @extend #{$base-class}; }
  62 + @include sprite($map, $sprite-name, $dimensions, $offset-x, $offset-y);
  63 + }
  64 + }
  65 + }
  66 +}
0 67 \ No newline at end of file
... ...
forum/static/css/compass/utilities/sprites/_sprite-img.scss
... ... @@ -0,0 +1,79 @@
  1 +// @doc off
  2 +// Example 1:
  3 +//
  4 +// a.twitter
  5 +// +sprite-img("icons-32.png", 1)
  6 +// a.facebook
  7 +// +sprite-img("icons-32png", 2)
  8 +//
  9 +// Example 2:
  10 +//
  11 +// a
  12 +// +sprite-background("icons-32.png")
  13 +// a.twitter
  14 +// +sprite-column(1)
  15 +// a.facebook
  16 +// +sprite-row(2)
  17 +// @doc on
  18 +
  19 +$sprite-default-size: 32px !default;
  20 +
  21 +$sprite-default-margin: 0px !default;
  22 +
  23 +$sprite-image-default-width: $sprite-default-size !default;
  24 +
  25 +$sprite-image-default-height: $sprite-default-size !default;
  26 +
  27 +// Sets all the rules for a sprite from a given sprite image to show just one of the sprites.
  28 +// To reduce duplication use a sprite-bg mixin for common properties and a sprite-select mixin for positioning.
  29 +@mixin sprite-img($img, $col, $row: 1, $width: $sprite-image-default-width, $height: $sprite-image-default-height, $margin: $sprite-default-margin) {
  30 + @include sprite-background($img, $width, $height);
  31 + @include sprite-position($col, $row, $width, $height, $margin);
  32 +}
  33 +
  34 +// Sets rules common for all sprites, assumes you want a square, but allows a rectangular region.
  35 +@mixin sprite-background($img, $width: $sprite-default-size, $height: $width) {
  36 + @include sprite-background-rectangle($img, $width, $height);
  37 +}
  38 +
  39 +// Sets rules common for all sprites, assumes a rectangular region.
  40 +@mixin sprite-background-rectangle($img, $width: $sprite-image-default-width, $height: $sprite-image-default-height) {
  41 + background: image-url($img) no-repeat;
  42 + width: $width;
  43 + height: $height;
  44 + overflow: hidden;
  45 +}
  46 +
  47 +// Allows horizontal sprite positioning optimized for a single row of sprites.
  48 +@mixin sprite-column($col, $width: $sprite-image-default-width, $margin: $sprite-default-margin) {
  49 + @include sprite-position($col, 1, $width, 0px, $margin);
  50 +}
  51 +
  52 +// Allows vertical sprite positioning optimized for a single column of sprites.
  53 +@mixin sprite-row($row, $height: $sprite-image-default-height, $margin: $sprite-default-margin) {
  54 + @include sprite-position(1, $row, 0px, $height, $margin);
  55 +}
  56 +
  57 +// Allows vertical and horizontal sprite positioning from a grid of equal dimensioned sprites.
  58 +@mixin sprite-position($col, $row: 1, $width: $sprite-image-default-width, $height: $sprite-image-default-height, $margin: $sprite-default-margin) {
  59 + $x: ($col - 1) * -$width - ($col - 1) * $margin;
  60 + $y: ($row - 1) * -$height - ($row - 1) * $margin;
  61 + background-position: $x $y;
  62 +}
  63 +
  64 +
  65 +
  66 +// Similar to 'sprite-replace-text-with-dimensions' but does not autmaticly set the demensions
  67 +@mixin sprite-replace-text ($map, $sprite, $dimensions: false, $offset-x: 0, $offset-y: 0) {
  68 + @include hide-text;
  69 + @include sprite($map, $sprite, $dimensions, $offset-x, $offset-y);
  70 + background-image: $map;
  71 + background-repeat: no-repeat;
  72 +}
  73 +
  74 +// Similar to 'replace-text-with-dimensions' but with sprites
  75 +// To use, create your sprite and then pass it in the `$map` param
  76 +// The name of the image in the sprite folder should be `$img-name`
  77 +@mixin sprite-replace-text-with-dimensions ($map, $sprite, $offset-x: 0, $offset-y: 0){
  78 + @include sprite-replace-text ($map, $sprite, true, $offset-x, $offset-y);
  79 +}
0 80 \ No newline at end of file
... ...