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.

File was created 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
56
File was created 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.
22
File was created 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.
File was created 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 */;
604
forum/__init__.py
File was created 1 # coding: utf-8
2
3 from django.contrib import admin
4 from forum.models import ForumUser, Plane, Node, Topic, Reply, Favorite, Notification, Transaction, Vote
5
6
7 class ForumUserAdmin(admin.ModelAdmin):
8 list_display = ('username', 'email', 'is_active', 'is_staff', 'date_joined')
9 search_fields = ('username', 'email', 'nickname')
10 list_filter = ('is_active', 'is_staff', 'date_joined')
11
12
13 class PlaneAdmin(admin.ModelAdmin):
14 list_display = ('name', 'created')
15 search_fields = ('name',)
16 list_filter = ('created',)
17
18
19 class NodeAdmin(admin.ModelAdmin):
20 list_display = ('name', 'slug', 'created', 'plane')
21 search_fields = ('name',)
22 list_filter = ('created',)
23
24
25 class TopicAdmin(admin.ModelAdmin):
26 list_display = ('title', 'created')
27 search_fields = ('title', 'content')
28 list_filter = ('created',)
29
30
31 class ReplyAdmin(admin.ModelAdmin):
32 list_display = ('content', 'created')
33 search_fields = ('content',)
34 list_filter = ('created',)
35
36
37 admin.site.register(ForumUser, ForumUserAdmin)
38 admin.site.register(Plane, PlaneAdmin)
39 admin.site.register(Node, NodeAdmin)
40 admin.site.register(Topic, TopicAdmin)
41 admin.site.register(Reply, ReplyAdmin)
42 admin.site.register(Favorite)
43 admin.site.register(Notification)
44 admin.site.register(Transaction)
45 admin.site.register(Vote)
46
forum/backends.py
File was created 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
22
forum/context_processors.py
File was created 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 )
12
forum/forms/__init__.py
forum/forms/topic.py
File was created 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 })
22
forum/forms/user.py
File was created 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)
173
File was created 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)
275
File was created 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
20
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
File was created 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; }
380
forum/static/css/base/atom.scss
File was created 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 }
144
forum/static/css/base/octicons.css
File was created 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'; }
552
forum/static/css/base/octicons.scss
File was created 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'}
2
forum/static/css/base/reset.css
File was created 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 }
125
forum/static/css/bootstrap/bootstrap.css
File was created 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 }
5118
forum/static/css/bootstrap/bootstrap.min.css
File was created 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;}
863
forum/static/css/codehilite.css
File was created 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 */
271
forum/static/css/codehilite.scss
File was created 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 */
67
forum/static/css/compass/_css3.scss
File was created 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";
21
forum/static/css/compass/_layout.scss
File was created 1 @import "layout/grid-background";
2 @import "layout/sticky-footer";
3 @import "layout/stretching";
4
forum/static/css/compass/_reset-legacy.scss
File was created 1 @import "reset/utilities-legacy";
2
3 @include global-reset;
4
forum/static/css/compass/_reset.scss
File was created 1 @import "reset/utilities";
2
3 @include global-reset;
4
forum/static/css/compass/_support.scss
File was created 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;
41
forum/static/css/compass/_typography.scss
File was created 1 @import "typography/links";
2 @import "typography/lists";
3 @import "typography/text";
4 @import "typography/vertical_rhythm";
5
forum/static/css/compass/_utilities.scss
File was created 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";
10
forum/static/css/compass/css3/_appearance.scss
File was created 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 }
18
forum/static/css/compass/css3/_background-clip.scss
File was created 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 }
44
forum/static/css/compass/css3/_background-origin.scss
File was created 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 }
43
forum/static/css/compass/css3/_background-size.scss
File was created 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 }
27
forum/static/css/compass/css3/_border-radius.scss
File was created 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); }
131
forum/static/css/compass/css3/_box-shadow.scss
File was created 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 }
77
forum/static/css/compass/css3/_box-sizing.scss
File was created 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 }
14
forum/static/css/compass/css3/_box.scss
File was created 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 }
forum/static/css/compass/css3/_columns.scss
File was created 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 }
forum/static/css/compass/css3/_filter.scss
File was created 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 }
24
forum/static/css/compass/css3/_font-face.scss
File was created 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 }
49
forum/static/css/compass/css3/_hyphenation.scss
File was created 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 }
78
forum/static/css/compass/css3/_images.scss
File was created 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 }
133
forum/static/css/compass/css3/_inline-block.scss
File was created 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 }
23
forum/static/css/compass/css3/_opacity.scss
File was created 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); }
20
forum/static/css/compass/css3/_pie.scss
File was created 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 }
forum/static/css/compass/css3/_regions.scss
File was created 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 }
forum/static/css/compass/css3/_shared.scss
File was created 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 }
39
forum/static/css/compass/css3/_text-shadow.scss
File was created 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 }
88
forum/static/css/compass/css3/_transform-legacy.scss
File was created 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 }
88
forum/static/css/compass/css3/_transform.scss
File was created 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 }
599
forum/static/css/compass/css3/_transition.scss
File was created 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 }
222
forum/static/css/compass/css3/_user-interface.scss
File was created 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 }
18
forum/static/css/compass/layout/_grid-background.scss
File was created 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 }
179
forum/static/css/compass/layout/_sticky-footer.scss
File was created 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; } }
24
forum/static/css/compass/layout/_stretching.scss
File was created 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 }
forum/static/css/compass/reset/_utilities-legacy.scss
File was created 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; } } }
136
forum/static/css/compass/reset/_utilities.scss
File was created 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; } } }
143
forum/static/css/compass/typography/_links.scss
File was created 1 @import "links/hover-link";
2 @import "links/link-colors";
3 @import "links/unstyled-link";
4
forum/static/css/compass/typography/_lists.scss
File was created 1 @import "lists/horizontal-list";
2 @import "lists/inline-list";
3 @import "lists/inline-block-list";
4 @import "lists/bullets";
5
forum/static/css/compass/typography/_text.scss
File was created 1 @import "text/ellipsis";
2 @import "text/nowrap";
3 @import "text/replacement";
4 @import "text/force-wrap";
5
forum/static/css/compass/typography/_vertical_rhythm.scss
File was created 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 }
222
forum/static/css/compass/typography/links/_hover-link.scss
File was created 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; } }
6
forum/static/css/compass/typography/links/_link-colors.scss
File was created 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; } } }
29
forum/static/css/compass/typography/links/_unstyled-link.scss
File was created 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; } }
8
forum/static/css/compass/typography/lists/_bullets.scss
File was created 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 }
35
forum/static/css/compass/typography/lists/_horizontal-list.scss
File was created 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); } }
62
forum/static/css/compass/typography/lists/_inline-block-list.scss
File was created 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); } }
51
forum/static/css/compass/typography/lists/_inline-list.scss
File was created 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 }
45
forum/static/css/compass/typography/text/_ellipsis.scss
File was created 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 }
26
forum/static/css/compass/typography/text/_force-wrap.scss
File was created 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 }
13
forum/static/css/compass/typography/text/_nowrap.scss
File was created 1 // When remembering whether or not there's a hyphen in white-space is too hard
2 @mixin nowrap { white-space: nowrap; }
3
forum/static/css/compass/typography/text/_replacement.scss
File was created 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 }
69
forum/static/css/compass/utilities/_color.scss
File was created 1 @import "color/contrast";
forum/static/css/compass/utilities/_general.scss
File was created 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";
7
forum/static/css/compass/utilities/_links.scss
File was created 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";
6
forum/static/css/compass/utilities/_lists.scss
File was created 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";
7
forum/static/css/compass/utilities/_print.scss
File was created 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 }
18
forum/static/css/compass/utilities/_sprites.scss
File was created 1 @import "sprites/base";
2 @import "sprites/sprite-img";
3
forum/static/css/compass/utilities/_tables.scss
File was created 1 @import "tables/alternating-rows-and-columns";
2 @import "tables/borders";
3 @import "tables/scaffolding";
4
forum/static/css/compass/utilities/_text.scss
File was created 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";
6
forum/static/css/compass/utilities/color/_contrast.scss
File was created 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 }
forum/static/css/compass/utilities/general/_clearfix.scss
File was created 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 }
45
forum/static/css/compass/utilities/general/_float.scss
File was created 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; }
forum/static/css/compass/utilities/general/_hacks.scss
File was created 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 }
47
forum/static/css/compass/utilities/general/_min.scss
File was created 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); }
17
forum/static/css/compass/utilities/general/_reset.scss
File was created 1 // This module has moved.
2 @import "compass/reset/utilities";
forum/static/css/compass/utilities/general/_tabs.scss
No preview for this file type
forum/static/css/compass/utilities/general/_tag-cloud.scss
File was created 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; } }
19
forum/static/css/compass/utilities/links/_hover-link.scss
File was created 1 @warn "This import is deprecated. Use 'compass/typography/links/hover-link' instead.";
2
3 @import "../../typography/links/hover-link";
4
forum/static/css/compass/utilities/links/_link-colors.scss
File was created 1 @warn "This import is deprecated. Use 'compass/typography/links/link-colors' instead.";
2
3 @import "../../typography/links/link-colors";
4
forum/static/css/compass/utilities/links/_unstyled-link.scss
File was created 1 @warn "This import is deprecated. Use 'compass/typography/links/unstyled-link' instead.";
2
3 @import "../../typography/links/unstyled-link";
4
forum/static/css/compass/utilities/lists/_bullets.scss
File was created 1 @warn "This import is deprecated. Use 'compass/typography/lists/bullets' instead.";
2
3 @import "../../typography/lists/bullets";
4
forum/static/css/compass/utilities/lists/_horizontal-list.scss
File was created 1 @warn "This import is deprecated. Use 'compass/typography/lists/horizontal-list' instead.";
2
3 @import "../../typography/lists/horizontal-list";
4
forum/static/css/compass/utilities/lists/_inline-block-list.scss
File was created 1 @warn "This import is deprecated. Use 'compass/typography/lists/inline-block-list' instead.";
2
3 @import "../../typography/lists/inline-block-list";
4
forum/static/css/compass/utilities/lists/_inline-list.scss
File was created 1 @warn "This import is deprecated. Use 'compass/typography/lists/inline-list' instead.";
2
3 @import "../../typography/lists/inline-list";
4
forum/static/css/compass/utilities/sprites/_base.scss
File was created 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 }
forum/static/css/compass/utilities/sprites/_sprite-img.scss
File was created 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 }