Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Most of the Living Organs site.

  • Loading branch information...
commit d7d40f6281b6249b606dc30da14e5973a8a0faef 1 parent 91397e2
@davidlehn authored
View
4 .gitignore
@@ -0,0 +1,4 @@
+*~
+*.sw[po]
+data.db
+*.py[co]
View
22 about.html
@@ -0,0 +1,22 @@
+{% extends "base.html" %}
+{% block title %}About{% endblock %}
+{% block content %}
+<h3>Living Organs</h3>
+<div>
+<p>Living Organs is a site designed to help organ donors and those in need of organs.</p>
+
+</div>
+
+<h3>Goals</h3>
+<ul>
+ <li>Bring together organ donors and optimize the matching process.</li>
+</ul>
+
+<h3>History</h3>
+<div>
+ <dl>
+ <dt>2012-04-13 - 2012-04-14</dt>
+ <dd>Idea formed and initial implementation done at the Hokie Health Code-a-thon at TechPad in Blacksburg, VA.</dd>
+ </dl>
+</div>
+{% endblock %}
View
8 api.html
@@ -0,0 +1,8 @@
+{% extends "base.html" %}
+{% block title %}API{% endblock %}
+{% block content %}
+<h3>API</h3>
+<div class="alert alert-info">
+<em>The API is under development. Please <a href="/contact">contact</a> us if you need assistance.</em>
+</div>
+{% endblock %}
View
33 app.yaml
@@ -0,0 +1,33 @@
+application: livingorgans
+version: 1
+runtime: python27
+api_version: 1
+threadsafe: true
+
+handlers:
+- url: /favicon\.ico
+ static_files: static/favicon.ico
+ upload: static/favicon.ico
+ mime_type: image/x-icon
+- url: /robots\.txt
+ static_files: static/robots.txt
+ upload: static/robots.txt
+- url: /static
+ static_dir: static
+- url: /datastore_admin
+ script: google.appengine.ext.datastore_admin.main.APP
+- url: /.*
+ script: main.app
+
+libraries:
+- name: jinja2
+ version: "2.6"
+- name: markupsafe
+ version: "0.15"
+- name: setuptools
+ version: "0.6c11"
+- name: webapp2
+ version: "2.3"
+
+builtins:
+- deferred: on
View
114 base.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ {% block head -%}
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8">
+ <title>{% block title %}...{% endblock %} - Living Organs</title>
+ {#-<meta name="title" content="{% block title %}Home{% endblock %} - {{ site.name|e }} - IFCDB" />-#}
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ {#<meta name="description" content="{% block meta_description %}Living Organs - Internet Fortune Cookie Database{% endblock %}" />#}
+ <meta name="keywords" content="{% block meta_keywords %}{% endblock %}" />
+ <meta name="author" content="{% block meta_author %}{% endblock %}" />
+
+ <!-- HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Icons -->
+ <link rel="shortcut icon" href="/static/favicon.ico" type="image/x-icon"/>
+ <link rel="apple-touch-icon" href="/static/apple-touch-icon.png"/>
+ <link rel="apple-touch-icon" sizes="72x72" href="/static/apple-touch-icon-72x72.png"/>
+ <link rel="apple-touch-icon" sizes="114x114" href="/static/apple-touch-icon-114x114.png"/>
+
+ <!-- Style -->
+ <link rel="stylesheet" type="text/css" href="/static/bootstrap/css/bootstrap.min.css"/>
+ <link rel="stylesheet" type="text/css" href="/static/bootstrap/css/bootstrap-responsive.min.css"/>
+ <link rel="stylesheet" type="text/css" href="/static/lo.css"/>
+
+ <!-- Scripts -->
+ <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
+ <script type="text/javascript" src="/static/bootstrap/js/bootstrap.min.js"></script>
+{#
+ {% if use_forms -%}
+ <script type="text/javascript" src="/static/jquery.form.js"></script>
+ {%- endif %}
+#}
+ <!-- <script type="text/javascript" src="/static/lo.js"></script> -->
+ <script type="text/javascript">
+ {% block script -%}{%- endblock %}
+ </script>
+ {%- endblock %}
+ </head>
+
+ <body>
+ <div class="navbar navbar-fixed-top">
+ <div class="navbar-inner">
+ <div class="container">
+ <a class="brand" href="/">Living Organs</a>
+ <ul class="nav">
+ <!--<li><i class="icon-home icon-white"></i> <a href="#">Home</a></li>-->
+ <li><a href="/"><i class="icon-home icon-white"></i> Home</a></li>
+ <li><a href="/pairs"><i class="icon-user icon-white"></i> Pairs</a></li>
+ <li><a href="/matches"><i class="icon-retweet icon-white"></i> Matches</a></li>
+ <li><a href="/pairs/-/add"><i class="icon-plus icon-white"></i> Add</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+
+ <div class="container">
+ <div class="row">
+ <div class="span2">
+ <!--Sidebar -->
+ <div class="sidebar">
+ <ul class="unstyled">
+ <li><a href="/"><i class="icon-home"></i> Living Organs</a></li>
+ <li><a href="/pairs"><i class="icon-user"></i> Pairs</a></li>
+ <li><a href="/matches"><i class="icon-retweet"></i> Matches</a></li>
+ <li><a href="/pairs/-/add"><i class="icon-plus"></i> Add</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="span8">
+ <!--Main -->
+ <div class="top-header">
+ <h1>Living Organs <small>Using the Cloud to Crowd Source Transplants</small></h1>
+ <!--<h3><strong>THE</strong> source for brief moments of amusement and enlightenment.</h3>-->
+ <hr/>
+ {% if notice -%}
+ <div class="notice">
+ {{ notice }}
+ </div>
+ <hr/>
+ {%- endif -%}
+ </div>
+ <div class="content">
+ {% block content %}{% endblock %}
+ </div>
+ </div>
+ <div class="span2">
+ <h3></h3>
+ <p></p>
+ <p></p>
+ <p></p>
+ </div>
+ </div>
+ <div class="row">
+ <div class="span12 footer">
+ <hr/>
+ <span><a href="/about">About</a></span> |
+ <span><a href="/contact">Contact</a></span> |
+ <span><a href="/legal">Legal</a></span> |
+ <span><a href="/terms">Terms of Service</a></span> |
+ <span><a href="/privacy">Privacy Policy</a></span> |
+ <span><a href="/help">Help</a></span> |
+ <span><a href="/api">API</a></span>
+ <br/>
+ <span>Copyright &copy; 2012 Living Organs</span>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
View
8 contact.html
@@ -0,0 +1,8 @@
+{% extends "base.html" %}
+{% block title %}Contact{% endblock %}
+{% block content %}
+<h3>Contact Information</h3>
+<div>
+<p>The Living Organs Team can be found roaming southwest VA.</p>
+</div>
+{% endblock %}
View
8 help.html
@@ -0,0 +1,8 @@
+{% extends "base.html" %}
+{% block title %}Help{% endblock %}
+{% block content %}
+<h3>Help</h3>
+<div class="alert alert-info">
+<em>Help contents are under development. Please <a href="/contact">contact</a> us if you need assistance.</em>
+</div>
+{% endblock %}
View
7 home.html
@@ -0,0 +1,7 @@
+{% extends "base.html" %}
+{% block title %}Home{% endblock %}
+{% block content %}
+<div>
+<p>Match up organs with code from elite hokie health hackers!</p>
+</div>
+{% endblock %}
View
11 index.yaml
@@ -0,0 +1,11 @@
+indexes:
+
+# AUTOGENERATED
+
+# This index.yaml is automatically updated whenever the dev_appserver
+# detects that a new type of query is run. If you want to manage the
+# index.yaml file manually, remove the above marker line (the line
+# saying "# AUTOGENERATED"). If you want to manage some indexes
+# manually, move them above the marker line. The index.yaml file is
+# automatically uploaded to the admin console when you next deploy
+# your application using appcfg.py.
View
11 legal.html
@@ -0,0 +1,11 @@
+{% extends "base.html" %}
+{% block title %}Legal{% endblock %}
+{% block content %}
+<h3>Legal Information</h3>
+<div class="alert alert-info">
+<em>This information is under development and not yet final.</em>
+</div>
+<div>
+<p>Living Organs makes every attempt to follow all applicable laws.</p>
+</div>
+{% endblock %}
View
255 main.py
@@ -0,0 +1,255 @@
+import hashlib
+import json
+import logging
+import os
+import random
+import re
+import sys
+import urllib
+import datetime
+
+#sys.path[0:0] = ['lib']
+
+import webapp2
+from webapp2 import Route
+from webapp2_extras import routes
+from webapp2_extras import jinja2
+from google.appengine.ext import ndb
+from google.appengine.ext import blobstore
+from google.appengine.ext.webapp import blobstore_handlers
+from google.appengine.ext import deferred
+from google.appengine.api import files
+
+logging.getLogger().setLevel(logging.DEBUG)
+
+class BaseHandler(webapp2.RequestHandler):
+ @webapp2.cached_property
+ def jinja2(self):
+ return jinja2.get_jinja2(app=self.app)
+
+ def render_template(self, filename, **template_args):
+ self.response.write(self.jinja2.render_template(filename, **template_args))
+
+ def render_json(self, data, debug=False):
+ separators = (',',':')
+ indent = None
+ if debug:
+ indent = 2
+ separators = (', ',': ')
+ self.response.content_type = 'application/json'
+ self.response.write(json.dumps(data, indent=indent, separators=separators))
+
+class ResourceHandler(BaseHandler):
+ def __init__(self, *args, **kwds):
+ super(ResourceHandler, self).__init__(*args, **kwds)
+ self._type_map = {
+ 'text/html': self.get_html,
+ 'application/json': self.get_json,
+ }
+ self._types = self._type_map.keys()
+
+ def get(self, *args, **kwds):
+ ct = self.request.accept.best_match(self._types)
+ get_type = self._type_map[ct]
+ return get_type(*args, **kwds)
+
+ def get_html(self, *args, **kwds):
+ self.abort(500)
+
+ def get_json(self, *args, **kwds):
+ self.abort(500)
+
+class HomeHandler(BaseHandler):
+ def get(self):
+ pairs = Pair.query().fetch(100)
+ args = {
+ 'pairs': pairs,
+ }
+ #self.render_template('index.html', name=self.request.get('name'))
+ self.render_template('home.html', **args)
+
+class Person(ndb.Model):
+ name = ndb.StringProperty()
+ contact = ndb.StringProperty()
+ blood_type = ndb.StringProperty()
+
+ @staticmethod
+ def clear():
+ q = Person.query()
+ data = q.fetch(100)
+ while len(data):
+ for d in data:
+ d.delete()
+ data = q.fetch(100)
+
+class Pair(ndb.Model):
+ donor = ndb.KeyProperty(required=True, kind=Person)
+ recipient = ndb.KeyProperty(required=True, kind=Person)
+
+ @staticmethod
+ def clear():
+ q = Pair.query()
+ data = q.fetch(100)
+ while len(data):
+ for d in data:
+ d.delete()
+ data = q.fetch(100)
+
+ @staticmethod
+ def add(dn, dc, dbt, rn, rc, rbt):
+ d = Person(name=dn, contact=dc, blood_type=dbt)
+ r = Person(name=dn, contact=dc, blood_type=dbt)
+ d.put()
+ r.put()
+
+ first, last = Pair.allocate_ids(1)
+ p = Pair(id=str(first))
+ p.donor = d.key
+ p.recipient = r.key
+ p.put()
+
+class PairsHandler(BaseHandler):
+ def get(self):
+ pairs = Pair.query().fetch(100)
+ args = {
+ 'pairs': pairs,
+ }
+ #self.render_template('index.html', name=self.request.get('name'))
+ self.render_template('pairs-all.html', **args)
+
+ def post(self):
+ Pair.add(
+ self.request.get(pre + "d_name"),
+ self.request.get(pre + "d_contact"),
+ self.request.get(pre + "d_blood_type"),
+ self.request.get(pre + "r_name"),
+ self.request.get(pre + "r_contact"),
+ self.request.get(pre + "r_blood_type"))
+ logging.info("pair created")
+ self.redirect('/pairs')
+
+class AddPairHandler(BaseHandler):
+ def get(self):
+ args = {}
+ self.render_template('pairs-add.html', **args)
+
+class PairHandler(ResourceHandler):
+ def get(self, pair_id):
+ pair_id = int(pair_id)
+ key = ndb.Key('Pair', pair_id)
+ pair = key.get()
+ args = {
+ 'pair': pair,
+ }
+ self.render_template('pairs-pair.html', **args)
+
+ def get_html(self, pair_id):
+ pair = Pair.get_by_id(pair_id)
+ args = {
+ 'pair': pair,
+ }
+ self.render_template('pair-pair.html', **args)
+
+ def get_json(self, fc):
+ pair = Pair.get_by_id(pair_id)
+ data = {
+ '@id': '/pairs/' + pair.key.id(),
+ '@type': 'Pair',
+ 'pair': pair,
+ }
+ self.render_json(data)
+
+ def post(self):
+ return # FIXME
+ p = Pair()
+ p.foo = self.request.get("...")
+ p.put()
+ logging.info("pair created")
+
+class EditPairHandler(BaseHandler):
+ def get(self):
+ args = {}
+ self.render_template('pair-edit.html', **args)
+
+def find_groups(pairs):
+ return []
+
+class MatchesHandler(BaseHandler):
+ def get(self):
+ q = Pair.query()
+ pairs = q.fetch(100)
+ _pairs = []
+ #while len(pairs):
+ # for p in pairs:
+ # d = p.donor.get()
+ # r = p.recipient.get()
+ # _pairs.append({
+ # 'donor': {
+ # 'name': d.name,
+ # 'contact': d.contact,
+ # 'blood_type': d.blood_type,
+ # },
+ # 'recipient': {
+ # 'name': r.name,
+ # 'contact': r.contact,
+ # 'blood_type': r.blood_type,
+ # }
+ # })
+ # pairs = q.fetch(100)
+
+ groups = find_groups(_pairs)
+
+ args = {
+ 'groups': groups,
+ }
+ self.render_template('matches.html', **args)
+
+class InfoHandler(BaseHandler):
+ def get(self, page):
+ self.render_template('%s.html' % (page))
+
+class Test1(BaseHandler):
+ def post(self):
+ logging.info('TEST1')
+ Pair.clear()
+ Person.clear()
+ Pair.add(
+ 'Donor 1', '@D1', 'A',
+ 'Recipient 1', '@R1', 'AB')
+ Pair.add(
+ 'Donor 2', '@D2', 'B',
+ 'Recipient 2', '@R2', 'A')
+ self.redirect('/pairs')
+
+class Test2(BaseHandler):
+ def post(self):
+ pass
+
+class Test3(BaseHandler):
+ def post(self):
+ pass
+
+routes = [
+ Route(r'/', handler='main.HomeHandler'),
+ Route(r'/pairs', handler='main.PairsHandler'),
+ routes.PathPrefixRoute(r'/pairs', [
+ Route(r'/', handler='main.PairsHandler'),
+ Route(r'/-/add', handler='main.AddPairHandler'),
+ Route(r'/<pair>/edit', handler='main.EditPairHandler'),
+ Route(r'/<pair>/matches', handler='main.PairMatchesHandler'),
+ Route(r'/<pair>', handler='main.PairHandler'),
+ Route(r'/-/tests/1', handler='main.Test1'),
+ Route(r'/-/tests/2', handler='main.Test2'),
+ Route(r'/-/tests/3', handler='main.Test3'),
+ ]),
+ Route(r'/matches', 'main.MatchesHandler'),
+ Route(r'/<:(about|contact|legal|privacy|terms|help|api)>', 'main.InfoHandler'),
+]
+debug = os.environ.get('SERVER_SOFTWARE', '').startswith('Dev')
+config = {}
+config['webapp2_extras.jinja2'] = {
+ 'template_path': ''
+}
+
+app = ndb.toplevel(webapp2.WSGIApplication(
+ routes=routes, debug=debug, config=config))
View
13 matches.html
@@ -0,0 +1,13 @@
+{% extends "base.html" %}
+{% block title %}Matches{% endblock %}
+{% block content %}
+{% if matches %}
+<div class="matches">
+ {% for m in matches %}
+ <div>Match: {{ m }}</div>
+ {% endfor %}
+</div>
+{% else %}
+<p>No matches.</p>
+{% endif %}
+{% endblock %}
View
101 pairs-add.html
@@ -0,0 +1,101 @@
+{% extends "base.html" %}
+{% block title %}Create Fortune Cookie{% endblock %}
+{% block script %}
+$(document).ready(function() {
+ $('#create').click(function() {
+ $('#pair').ajaxSubmit({
+ url: '/pairs/'
+ });
+ return false;
+ });
+ $('.demo-buttons button').click(function() {
+ $.ajax({
+ type: 'POST',
+ url: '/pairs/-/tests/' + $(this).attr('data-test'),
+ success: function() {
+ window.location = '/pairs';
+ },
+ error: function() {
+ console.error('TEST ERROR', arguments);
+ }
+ });
+ return false;
+ });
+});
+{% endblock %}
+{% block content %}
+<h2>New Donor and Recipient Pair</h2>
+<div>
+ <div class="demo-buttons">
+ <span class="label label-important">Load Demo Data</span>:
+ <button class="btn" data-test="1">Demo 1</button>
+ <button class="btn" data-test="2">Demo 2</button>
+ <button class="btn" data-test="3">Demo 3</button>
+ </div>
+
+ <p>Please enter information for a new donor and recipient pair:</p>
+
+ <form id="pair" class="form-horizontal" action="/pairs/" method="post">
+ <fieldset>
+ <legend>Donor Information</legend>
+ <div class="control-group">
+ <label class="control-label" for="d_name">Name</label>
+ <div class="controls">
+ <input type="text" class="input-xlarge" id="d_name" name="d_name" />
+ </div>
+ </div>
+ <div class="control-group">
+ <label class="control-label" for="d_contact">Contact</label>
+ <div class="controls">
+ <input type="text" class="input-xlarge" id="d_contact" name="d_contact" />
+ </div>
+ </div>
+ <div class="control-group">
+ <label class="control-label" for="d_blood_type">Blood Type</label>
+ <div class="controls">
+ <select id="d_blood_type" name="d_blood_type">
+ <option></option>
+ <option>A</option>
+ <option>B</option>
+ <option>AB</option>
+ <option>O</option>
+ </select>
+ </div>
+ </div>
+ </fieldset>
+ <fieldset>
+ <legend>Recipient Information</legend>
+ <div class="control-group">
+ <label class="control-label" for="r_name">Name</label>
+ <div class="controls">
+ <input type="text" class="input-xlarge" id="r_name" name="r_name" />
+ </div>
+ </div>
+ <div class="control-group">
+ <label class="control-label" for="r_contact">Contact</label>
+ <div class="controls">
+ <input type="text" class="input-xlarge" id="r_contact" name="r_contact" />
+ </div>
+ </div>
+ <div class="control-group">
+ <label class="control-label" for="r_blood_type">Blood Type</label>
+ <div class="controls">
+ <select id="r_blood_type" name="r_blood_type">
+ <option></option>
+ <option>A</option>
+ <option>B</option>
+ <option>AB</option>
+ <option>O</option>
+ </select>
+ </div>
+ </div>
+ </fieldset>
+ <fieldset>
+ <div class="form-actions">
+ <button type="submit" class="btn btn-primary"><i class="icon-plus icon-white"></i> Create Pair</button>
+ <button type="btn">Cancel</button>
+ </div>
+ </fieldset>
+ </form>
+</div>
+{% endblock %}
View
33 pairs-all.html
@@ -0,0 +1,33 @@
+{% extends "base.html" %}
+{% block title %}Pairs{% endblock %}
+{% block content %}
+{% if pairs %}
+<div class="pairs">
+ <table class="table table-condensed">
+ <thead>
+ <tr>
+ <th>ID</th>
+ <th>Donor</th>
+ <th>Donor Blood Type</th>
+ <th>Recipient</th>
+ <th>Recipient Blood Type</th>
+ </thead>
+ <tbody>
+ {% for p in pairs %}
+ <tr>
+ <td><a href="/pairs/{{ p.key.id() }}">{{ p.key.id() }}</a></td>
+ <td>{{ p.donor.get().name|default('-')|e }} ({{ p.donor.get().contact|default('-')|e }})</td>
+ <td>{{ p.donor.get().blood_type|default('-')|e }}</td>
+ <td>{{ p.recipient.get().name|default('-')|e }} ({{ p.recipient.get().contact|default('-')|e }})</td>
+ <td>{{ p.recipient.get().blood_type|default('-')|e }}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+</div>
+{% else %}
+<p>No pairs.</p>
+{% endif %}
+<br/>
+<a class="btn btn-success" href="/pairs/-/add"><i class="icon-plus icon-white"></i> Add Pair</a>
+{% endblock %}
View
11 privacy.html
@@ -0,0 +1,11 @@
+{% extends "base.html" %}
+{% block title %}Privacy Policy{% endblock %}
+{% block content %}
+<h3>Privacy Policy</h3>
+<div class="alert alert-info">
+<em>This policy is under development and not yet final.</em>
+</div>
+<div>
+<p>Living Organs will protect the privacy of everyone using the service.</p>
+</div>
+{% endblock %}
View
643 static/bootstrap/css/bootstrap-responsive.css
@@ -0,0 +1,643 @@
+/*!
+ * Bootstrap Responsive v2.0.1
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+.clearfix {
+ *zoom: 1;
+}
+.clearfix:before,
+.clearfix:after {
+ display: table;
+ content: "";
+}
+.clearfix:after {
+ clear: both;
+}
+.hidden {
+ display: none;
+ visibility: hidden;
+}
+@media (max-width: 480px) {
+ .nav-collapse {
+ -webkit-transform: translate3d(0, 0, 0);
+ }
+ .page-header h1 small {
+ display: block;
+ line-height: 18px;
+ }
+ input[class*="span"],
+ select[class*="span"],
+ textarea[class*="span"],
+ .uneditable-input {
+ display: block;
+ width: 100%;
+ min-height: 28px;
+ /* Make inputs at least the height of their button counterpart */
+
+ /* Makes inputs behave like true block-level elements */
+
+ -webkit-box-sizing: border-box;
+ /* Older Webkit */
+
+ -moz-box-sizing: border-box;
+ /* Older FF */
+
+ -ms-box-sizing: border-box;
+ /* IE8 */
+
+ box-sizing: border-box;
+ /* CSS3 spec*/
+
+ }
+ .input-prepend input[class*="span"],
+ .input-append input[class*="span"] {
+ width: auto;
+ }
+ input[type="checkbox"],
+ input[type="radio"] {
+ border: 1px solid #ccc;
+ }
+ .form-horizontal .control-group > label {
+ float: none;
+ width: auto;
+ padding-top: 0;
+ text-align: left;
+ }
+ .form-horizontal .controls {
+ margin-left: 0;
+ }
+ .form-horizontal .control-list {
+ padding-top: 0;
+ }
+ .form-horizontal .form-actions {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+ .modal {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ right: 10px;
+ width: auto;
+ margin: 0;
+ }
+ .modal.fade.in {
+ top: auto;
+ }
+ .modal-header .close {
+ padding: 10px;
+ margin: -10px;
+ }
+ .carousel-caption {
+ position: static;
+ }
+}
+@media (max-width: 767px) {
+ .container {
+ width: auto;
+ padding: 0 20px;
+ }
+ .row-fluid {
+ width: 100%;
+ }
+ .row {
+ margin-left: 0;
+ }
+ .row > [class*="span"],
+ .row-fluid > [class*="span"] {
+ float: none;
+ display: block;
+ width: auto;
+ margin: 0;
+ }
+}
+@media (min-width: 768px) and (max-width: 979px) {
+ .row {
+ margin-left: -20px;
+ *zoom: 1;
+ }
+ .row:before,
+ .row:after {
+ display: table;
+ content: "";
+ }
+ .row:after {
+ clear: both;
+ }
+ [class*="span"] {
+ float: left;
+ margin-left: 20px;
+ }
+ .span1 {
+ width: 42px;
+ }
+ .span2 {
+ width: 104px;
+ }
+ .span3 {
+ width: 166px;
+ }
+ .span4 {
+ width: 228px;
+ }
+ .span5 {
+ width: 290px;
+ }
+ .span6 {
+ width: 352px;
+ }
+ .span7 {
+ width: 414px;
+ }
+ .span8 {
+ width: 476px;
+ }
+ .span9 {
+ width: 538px;
+ }
+ .span10 {
+ width: 600px;
+ }
+ .span11 {
+ width: 662px;
+ }
+ .span12,
+ .container {
+ width: 724px;
+ }
+ .offset1 {
+ margin-left: 82px;
+ }
+ .offset2 {
+ margin-left: 144px;
+ }
+ .offset3 {
+ margin-left: 206px;
+ }
+ .offset4 {
+ margin-left: 268px;
+ }
+ .offset5 {
+ margin-left: 330px;
+ }
+ .offset6 {
+ margin-left: 392px;
+ }
+ .offset7 {
+ margin-left: 454px;
+ }
+ .offset8 {
+ margin-left: 516px;
+ }
+ .offset9 {
+ margin-left: 578px;
+ }
+ .offset10 {
+ margin-left: 640px;
+ }
+ .offset11 {
+ margin-left: 702px;
+ }
+ .row-fluid {
+ width: 100%;
+ *zoom: 1;
+ }
+ .row-fluid:before,
+ .row-fluid:after {
+ display: table;
+ content: "";
+ }
+ .row-fluid:after {
+ clear: both;
+ }
+ .row-fluid > [class*="span"] {
+ float: left;
+ margin-left: 2.762430939%;
+ }
+ .row-fluid > [class*="span"]:first-child {
+ margin-left: 0;
+ }
+ .row-fluid > .span1 {
+ width: 5.801104972%;
+ }
+ .row-fluid > .span2 {
+ width: 14.364640883%;
+ }
+ .row-fluid > .span3 {
+ width: 22.928176794%;
+ }
+ .row-fluid > .span4 {
+ width: 31.491712705%;
+ }
+ .row-fluid > .span5 {
+ width: 40.055248616%;
+ }
+ .row-fluid > .span6 {
+ width: 48.618784527%;
+ }
+ .row-fluid > .span7 {
+ width: 57.182320438000005%;
+ }
+ .row-fluid > .span8 {
+ width: 65.74585634900001%;
+ }
+ .row-fluid > .span9 {
+ width: 74.30939226%;
+ }
+ .row-fluid > .span10 {
+ width: 82.87292817100001%;
+ }
+ .row-fluid > .span11 {
+ width: 91.436464082%;
+ }
+ .row-fluid > .span12 {
+ width: 99.999999993%;
+ }
+ input.span1,
+ textarea.span1,
+ .uneditable-input.span1 {
+ width: 32px;
+ }
+ input.span2,
+ textarea.span2,
+ .uneditable-input.span2 {
+ width: 94px;
+ }
+ input.span3,
+ textarea.span3,
+ .uneditable-input.span3 {
+ width: 156px;
+ }
+ input.span4,
+ textarea.span4,
+ .uneditable-input.span4 {
+ width: 218px;
+ }
+ input.span5,
+ textarea.span5,
+ .uneditable-input.span5 {
+ width: 280px;
+ }
+ input.span6,
+ textarea.span6,
+ .uneditable-input.span6 {
+ width: 342px;
+ }
+ input.span7,
+ textarea.span7,
+ .uneditable-input.span7 {
+ width: 404px;
+ }
+ input.span8,
+ textarea.span8,
+ .uneditable-input.span8 {
+ width: 466px;
+ }
+ input.span9,
+ textarea.span9,
+ .uneditable-input.span9 {
+ width: 528px;
+ }
+ input.span10,
+ textarea.span10,
+ .uneditable-input.span10 {
+ width: 590px;
+ }
+ input.span11,
+ textarea.span11,
+ .uneditable-input.span11 {
+ width: 652px;
+ }
+ input.span12,
+ textarea.span12,
+ .uneditable-input.span12 {
+ width: 714px;
+ }
+}
+@media (max-width: 979px) {
+ body {
+ padding-top: 0;
+ }
+ .navbar-fixed-top {
+ position: static;
+ margin-bottom: 18px;
+ }
+ .navbar-fixed-top .navbar-inner {
+ padding: 5px;
+ }
+ .navbar .container {
+ width: auto;
+ padding: 0;
+ }
+ .navbar .brand {
+ padding-left: 10px;
+ padding-right: 10px;
+ margin: 0 0 0 -5px;
+ }
+ .navbar .nav-collapse {
+ clear: left;
+ }
+ .navbar .nav {
+ float: none;
+ margin: 0 0 9px;
+ }
+ .navbar .nav > li {
+ float: none;
+ }
+ .navbar .nav > li > a {
+ margin-bottom: 2px;
+ }
+ .navbar .nav > .divider-vertical {
+ display: none;
+ }
+ .navbar .nav .nav-header {
+ color: #999999;
+ text-shadow: none;
+ }
+ .navbar .nav > li > a,
+ .navbar .dropdown-menu a {
+ padding: 6px 15px;
+ font-weight: bold;
+ color: #999999;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+ }
+ .navbar .dropdown-menu li + li a {
+ margin-bottom: 2px;
+ }
+ .navbar .nav > li > a:hover,
+ .navbar .dropdown-menu a:hover {
+ background-color: #222222;
+ }
+ .navbar .dropdown-menu {
+ position: static;
+ top: auto;
+ left: auto;
+ float: none;
+ display: block;
+ max-width: none;
+ margin: 0 15px;
+ padding: 0;
+ background-color: transparent;
+ border: none;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+ }
+ .navbar .dropdown-menu:before,
+ .navbar .dropdown-menu:after {
+ display: none;
+ }
+ .navbar .dropdown-menu .divider {
+ display: none;
+ }
+ .navbar-form,
+ .navbar-search {
+ float: none;
+ padding: 9px 15px;
+ margin: 9px 0;
+ border-top: 1px solid #222222;
+ border-bottom: 1px solid #222222;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ }
+ .navbar .nav.pull-right {
+ float: none;
+ margin-left: 0;
+ }
+ .navbar-static .navbar-inner {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+ .btn-navbar {
+ display: block;
+ }
+ .nav-collapse {
+ overflow: hidden;
+ height: 0;
+ }
+}
+@media (min-width: 980px) {
+ .nav-collapse.collapse {
+ height: auto !important;
+ }
+}
+@media (min-width: 1200px) {
+ .row {
+ margin-left: -30px;
+ *zoom: 1;
+ }
+ .row:before,
+ .row:after {
+ display: table;
+ content: "";
+ }
+ .row:after {
+ clear: both;
+ }
+ [class*="span"] {
+ float: left;
+ margin-left: 30px;
+ }
+ .span1 {
+ width: 70px;
+ }
+ .span2 {
+ width: 170px;
+ }
+ .span3 {
+ width: 270px;
+ }
+ .span4 {
+ width: 370px;
+ }
+ .span5 {
+ width: 470px;
+ }
+ .span6 {
+ width: 570px;
+ }
+ .span7 {
+ width: 670px;
+ }
+ .span8 {
+ width: 770px;
+ }
+ .span9 {
+ width: 870px;
+ }
+ .span10 {
+ width: 970px;
+ }
+ .span11 {
+ width: 1070px;
+ }
+ .span12,
+ .container {
+ width: 1170px;
+ }
+ .offset1 {
+ margin-left: 130px;
+ }
+ .offset2 {
+ margin-left: 230px;
+ }
+ .offset3 {
+ margin-left: 330px;
+ }
+ .offset4 {
+ margin-left: 430px;
+ }
+ .offset5 {
+ margin-left: 530px;
+ }
+ .offset6 {
+ margin-left: 630px;
+ }
+ .offset7 {
+ margin-left: 730px;
+ }
+ .offset8 {
+ margin-left: 830px;
+ }
+ .offset9 {
+ margin-left: 930px;
+ }
+ .offset10 {
+ margin-left: 1030px;
+ }
+ .offset11 {
+ margin-left: 1130px;
+ }
+ .row-fluid {
+ width: 100%;
+ *zoom: 1;
+ }
+ .row-fluid:before,
+ .row-fluid:after {
+ display: table;
+ content: "";
+ }
+ .row-fluid:after {
+ clear: both;
+ }
+ .row-fluid > [class*="span"] {
+ float: left;
+ margin-left: 2.564102564%;
+ }
+ .row-fluid > [class*="span"]:first-child {
+ margin-left: 0;
+ }
+ .row-fluid > .span1 {
+ width: 5.982905983%;
+ }
+ .row-fluid > .span2 {
+ width: 14.529914530000001%;
+ }
+ .row-fluid > .span3 {
+ width: 23.076923077%;
+ }
+ .row-fluid > .span4 {
+ width: 31.623931624%;
+ }
+ .row-fluid > .span5 {
+ width: 40.170940171000005%;
+ }
+ .row-fluid > .span6 {
+ width: 48.717948718%;
+ }
+ .row-fluid > .span7 {
+ width: 57.264957265%;
+ }
+ .row-fluid > .span8 {
+ width: 65.81196581200001%;
+ }
+ .row-fluid > .span9 {
+ width: 74.358974359%;
+ }
+ .row-fluid > .span10 {
+ width: 82.905982906%;
+ }
+ .row-fluid > .span11 {
+ width: 91.45299145300001%;
+ }
+ .row-fluid > .span12 {
+ width: 100%;
+ }
+ input.span1,
+ textarea.span1,
+ .uneditable-input.span1 {
+ width: 60px;
+ }
+ input.span2,
+ textarea.span2,
+ .uneditable-input.span2 {
+ width: 160px;
+ }
+ input.span3,
+ textarea.span3,
+ .uneditable-input.span3 {
+ width: 260px;
+ }
+ input.span4,
+ textarea.span4,
+ .uneditable-input.span4 {
+ width: 360px;
+ }
+ input.span5,
+ textarea.span5,
+ .uneditable-input.span5 {
+ width: 460px;
+ }
+ input.span6,
+ textarea.span6,
+ .uneditable-input.span6 {
+ width: 560px;
+ }
+ input.span7,
+ textarea.span7,
+ .uneditable-input.span7 {
+ width: 660px;
+ }
+ input.span8,
+ textarea.span8,
+ .uneditable-input.span8 {
+ width: 760px;
+ }
+ input.span9,
+ textarea.span9,
+ .uneditable-input.span9 {
+ width: 860px;
+ }
+ input.span10,
+ textarea.span10,
+ .uneditable-input.span10 {
+ width: 960px;
+ }
+ input.span11,
+ textarea.span11,
+ .uneditable-input.span11 {
+ width: 1060px;
+ }
+ input.span12,
+ textarea.span12,
+ .uneditable-input.span12 {
+ width: 1160px;
+ }
+ .thumbnails {
+ margin-left: -30px;
+ }
+ .thumbnails > li {
+ margin-left: 30px;
+ }
+}
View
4 static/bootstrap/css/bootstrap-responsive.min.css
@@ -0,0 +1,4 @@
+.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";}
+.clearfix:after{clear:both;}
+.hidden{display:none;visibility:hidden;}
+@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:18px;} input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} .input-prepend input[class*="span"],.input-append input[class*="span"]{width:auto;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .modal{position:absolute;top:10px;left:10px;right:10px;width:auto;margin:0;}.modal.fade.in{top:auto;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:767px){.container{width:auto;padding:0 20px;} .row-fluid{width:100%;} .row{margin-left:0;} .row>[class*="span"],.row-fluid>[class*="span"]{float:none;display:block;width:auto;margin:0;}}@media (min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:20px;} .span1{width:42px;} .span2{width:104px;} .span3{width:166px;} .span4{width:228px;} .span5{width:290px;} .span6{width:352px;} .span7{width:414px;} .span8{width:476px;} .span9{width:538px;} .span10{width:600px;} .span11{width:662px;} .span12,.container{width:724px;} .offset1{margin-left:82px;} .offset2{margin-left:144px;} .offset3{margin-left:206px;} .offset4{margin-left:268px;} .offset5{margin-left:330px;} .offset6{margin-left:392px;} .offset7{margin-left:454px;} .offset8{margin-left:516px;} .offset9{margin-left:578px;} .offset10{margin-left:640px;} .offset11{margin-left:702px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.762430939%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid>.span1{width:5.801104972%;} .row-fluid>.span2{width:14.364640883%;} .row-fluid>.span3{width:22.928176794%;} .row-fluid>.span4{width:31.491712705%;} .row-fluid>.span5{width:40.055248616%;} .row-fluid>.span6{width:48.618784527%;} .row-fluid>.span7{width:57.182320438000005%;} .row-fluid>.span8{width:65.74585634900001%;} .row-fluid>.span9{width:74.30939226%;} .row-fluid>.span10{width:82.87292817100001%;} .row-fluid>.span11{width:91.436464082%;} .row-fluid>.span12{width:99.999999993%;} input.span1,textarea.span1,.uneditable-input.span1{width:32px;} input.span2,textarea.span2,.uneditable-input.span2{width:94px;} input.span3,textarea.span3,.uneditable-input.span3{width:156px;} input.span4,textarea.span4,.uneditable-input.span4{width:218px;} input.span5,textarea.span5,.uneditable-input.span5{width:280px;} input.span6,textarea.span6,.uneditable-input.span6{width:342px;} input.span7,textarea.span7,.uneditable-input.span7{width:404px;} input.span8,textarea.span8,.uneditable-input.span8{width:466px;} input.span9,textarea.span9,.uneditable-input.span9{width:528px;} input.span10,textarea.span10,.uneditable-input.span10{width:590px;} input.span11,textarea.span11,.uneditable-input.span11{width:652px;} input.span12,textarea.span12,.uneditable-input.span12{width:714px;}}@media (max-width:979px){body{padding-top:0;} .navbar-fixed-top{position:static;margin-bottom:18px;} .navbar-fixed-top .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .navbar .nav-collapse{clear:left;} .navbar .nav{float:none;margin:0 0 9px;} .navbar .nav>li{float:none;} .navbar .nav>li>a{margin-bottom:2px;} .navbar .nav>.divider-vertical{display:none;} .navbar .nav .nav-header{color:#999999;text-shadow:none;} .navbar .nav>li>a,.navbar .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .navbar .dropdown-menu li+li a{margin-bottom:2px;} .navbar .nav>li>a:hover,.navbar .dropdown-menu a:hover{background-color:#222222;} .navbar .dropdown-menu{position:static;top:auto;left:auto;float:none;display:block;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .navbar .dropdown-menu:before,.navbar .dropdown-menu:after{display:none;} .navbar .dropdown-menu .divider{display:none;} .navbar-form,.navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222222;border-bottom:1px solid #222222;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);} .navbar .nav.pull-right{float:none;margin-left:0;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;} .btn-navbar{display:block;} .nav-collapse{overflow:hidden;height:0;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:30px;} .span1{width:70px;} .span2{width:170px;} .span3{width:270px;} .span4{width:370px;} .span5{width:470px;} .span6{width:570px;} .span7{width:670px;} .span8{width:770px;} .span9{width:870px;} .span10{width:970px;} .span11{width:1070px;} .span12,.container{width:1170px;} .offset1{margin-left:130px;} .offset2{margin-left:230px;} .offset3{margin-left:330px;} .offset4{margin-left:430px;} .offset5{margin-left:530px;} .offset6{margin-left:630px;} .offset7{margin-left:730px;} .offset8{margin-left:830px;} .offset9{margin-left:930px;} .offset10{margin-left:1030px;} .offset11{margin-left:1130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.564102564%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid>.span1{width:5.982905983%;} .row-fluid>.span2{width:14.529914530000001%;} .row-fluid>.span3{width:23.076923077%;} .row-fluid>.span4{width:31.623931624%;} .row-fluid>.span5{width:40.170940171000005%;} .row-fluid>.span6{width:48.717948718%;} .row-fluid>.span7{width:57.264957265%;} .row-fluid>.span8{width:65.81196581200001%;} .row-fluid>.span9{width:74.358974359%;} .row-fluid>.span10{width:82.905982906%;} .row-fluid>.span11{width:91.45299145300001%;} .row-fluid>.span12{width:100%;} input.span1,textarea.span1,.uneditable-input.span1{width:60px;} input.span2,textarea.span2,.uneditable-input.span2{width:160px;} input.span3,textarea.span3,.uneditable-input.span3{width:260px;} input.span4,textarea.span4,.uneditable-input.span4{width:360px;} input.span5,textarea.span5,.uneditable-input.span5{width:460px;} input.span6,textarea.span6,.uneditable-input.span6{width:560px;} input.span7,textarea.span7,.uneditable-input.span7{width:660px;} input.span8,textarea.span8,.uneditable-input.span8{width:760px;} input.span9,textarea.span9,.uneditable-input.span9{width:860px;} input.span10,textarea.span10,.uneditable-input.span10{width:960px;} input.span11,textarea.span11,.uneditable-input.span11{width:1060px;} input.span12,textarea.span12,.uneditable-input.span12{width:1160px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;}}
View
3,682 static/bootstrap/css/bootstrap.css
@@ -0,0 +1,3682 @@
+/*!
+ * Bootstrap v2.0.1
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+nav,
+section {
+ display: block;
+}
+audio,
+canvas,
+video {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+}
+audio:not([controls]) {
+ display: none;
+}
+html {
+ font-size: 100%;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+a:focus {
+ outline: thin dotted #333;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+a:hover,
+a:active {
+ outline: 0;
+}
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+sup {
+ top: -0.5em;
+}
+sub {
+ bottom: -0.25em;
+}
+img {
+ max-width: 100%;
+ height: auto;
+ border: 0;
+ -ms-interpolation-mode: bicubic;
+}
+button,
+input,
+select,
+textarea {
+ margin: 0;
+ font-size: 100%;
+ vertical-align: middle;
+}
+button,
+input {
+ *overflow: visible;
+ line-height: normal;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ padding: 0;
+ border: 0;
+}
+button,
+input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ cursor: pointer;
+ -webkit-appearance: button;
+}
+input[type="search"] {
+ -webkit-appearance: textfield;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+input[type="search"]::-webkit-search-decoration,
+input[type="search"]::-webkit-search-cancel-button {
+ -webkit-appearance: none;
+}
+textarea {
+ overflow: auto;
+ vertical-align: top;
+}
+.clearfix {
+ *zoom: 1;
+}
+.clearfix:before,
+.clearfix:after {
+ display: table;
+ content: "";
+}
+.clearfix:after {
+ clear: both;
+}
+body {
+ margin: 0;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 13px;
+ line-height: 18px;
+ color: #333333;
+ background-color: #ffffff;
+}
+a {
+ color: #0088cc;
+ text-decoration: none;
+}
+a:hover {
+ color: #005580;
+ text-decoration: underline;
+}
+.row {
+ margin-left: -20px;
+ *zoom: 1;
+}
+.row:before,
+.row:after {
+ display: table;
+ content: "";
+}
+.row:after {
+ clear: both;
+}
+[class*="span"] {
+ float: left;
+ margin-left: 20px;
+}
+.span1 {
+ width: 60px;
+}
+.span2 {
+ width: 140px;
+}
+.span3 {
+ width: 220px;
+}
+.span4 {
+ width: 300px;
+}
+.span5 {
+ width: 380px;
+}
+.span6 {
+ width: 460px;
+}
+.span7 {
+ width: 540px;
+}
+.span8 {
+ width: 620px;
+}
+.span9 {
+ width: 700px;
+}
+.span10 {
+ width: 780px;
+}
+.span11 {
+ width: 860px;
+}
+.span12,
+.container {
+ width: 940px;
+}
+.offset1 {
+ margin-left: 100px;
+}
+.offset2 {
+ margin-left: 180px;
+}
+.offset3 {
+ margin-left: 260px;
+}
+.offset4 {
+ margin-left: 340px;
+}
+.offset5 {
+ margin-left: 420px;
+}
+.offset6 {
+ margin-left: 500px;
+}
+.offset7 {
+ margin-left: 580px;
+}
+.offset8 {
+ margin-left: 660px;
+}
+.offset9 {
+ margin-left: 740px;
+}
+.offset10 {
+ margin-left: 820px;
+}
+.offset11 {
+ margin-left: 900px;
+}
+.row-fluid {
+ width: 100%;
+ *zoom: 1;
+}
+.row-fluid:before,
+.row-fluid:after {
+ display: table;
+ content: "";
+}
+.row-fluid:after {
+ clear: both;
+}
+.row-fluid > [class*="span"] {
+ float: left;
+ margin-left: 2.127659574%;
+}
+.row-fluid > [class*="span"]:first-child {
+ margin-left: 0;
+}
+.row-fluid > .span1 {
+ width: 6.382978723%;
+}
+.row-fluid > .span2 {
+ width: 14.89361702%;
+}
+.row-fluid > .span3 {
+ width: 23.404255317%;
+}
+.row-fluid > .span4 {
+ width: 31.914893614%;
+}
+.row-fluid > .span5 {
+ width: 40.425531911%;
+}
+.row-fluid > .span6 {
+ width: 48.93617020799999%;
+}
+.row-fluid > .span7 {
+ width: 57.446808505%;
+}
+.row-fluid > .span8 {
+ width: 65.95744680199999%;
+}
+.row-fluid > .span9 {
+ width: 74.468085099%;
+}
+.row-fluid > .span10 {
+ width: 82.97872339599999%;
+}
+.row-fluid > .span11 {
+ width: 91.489361693%;
+}
+.row-fluid > .span12 {
+ width: 99.99999998999999%;
+}
+.container {
+ width: 940px;
+ margin-left: auto;
+ margin-right: auto;
+ *zoom: 1;
+}
+.container:before,
+.container:after {
+ display: table;
+ content: "";
+}
+.container:after {
+ clear: both;
+}
+.container-fluid {
+ padding-left: 20px;
+ padding-right: 20px;
+ *zoom: 1;
+}
+.container-fluid:before,
+.container-fluid:after {
+ display: table;
+ content: "";
+}
+.container-fluid:after {
+ clear: both;
+}
+p {
+ margin: 0 0 9px;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 13px;
+ line-height: 18px;
+}
+p small {
+ font-size: 11px;
+ color: #999999;
+}
+.lead {
+ margin-bottom: 18px;
+ font-size: 20px;
+ font-weight: 200;
+ line-height: 27px;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ margin: 0;
+ font-weight: bold;
+ color: #333333;
+ text-rendering: optimizelegibility;
+}
+h1 small,
+h2 small,
+h3 small,
+h4 small,
+h5 small,
+h6 small {
+ font-weight: normal;
+ color: #999999;
+}
+h1 {
+ font-size: 30px;
+ line-height: 36px;
+}
+h1 small {
+ font-size: 18px;
+}
+h2 {
+ font-size: 24px;
+ line-height: 36px;
+}
+h2 small {
+ font-size: 18px;
+}
+h3 {
+ line-height: 27px;
+ font-size: 18px;
+}
+h3 small {
+ font-size: 14px;
+}
+h4,
+h5,
+h6 {
+ line-height: 18px;
+}
+h4 {
+ font-size: 14px;
+}
+h4 small {
+ font-size: 12px;
+}
+h5 {
+ font-size: 12px;
+}
+h6 {
+ font-size: 11px;
+ color: #999999;
+ text-transform: uppercase;
+}
+.page-header {
+ padding-bottom: 17px;
+ margin: 18px 0;
+ border-bottom: 1px solid #eeeeee;
+}
+.page-header h1 {
+ line-height: 1;
+}
+ul,
+ol {
+ padding: 0;
+ margin: 0 0 9px 25px;
+}
+ul ul,
+ul ol,
+ol ol,
+ol ul {
+ margin-bottom: 0;
+}
+ul {
+ list-style: disc;
+}
+ol {
+ list-style: decimal;
+}
+li {
+ line-height: 18px;
+}
+ul.unstyled,
+ol.unstyled {
+ margin-left: 0;
+ list-style: none;
+}
+dl {
+ margin-bottom: 18px;
+}
+dt,
+dd {
+ line-height: 18px;
+}
+dt {
+ font-weight: bold;
+}
+dd {
+ margin-left: 9px;
+}
+hr {
+ margin: 18px 0;
+ border: 0;
+ border-top: 1px solid #eeeeee;
+ border-bottom: 1px solid #ffffff;
+}
+strong {
+ font-weight: bold;
+}
+em {
+ font-style: italic;
+}
+.muted {
+ color: #999999;
+}
+abbr {
+ font-size: 90%;
+ text-transform: uppercase;
+ border-bottom: 1px dotted #ddd;
+ cursor: help;
+}
+blockquote {
+ padding: 0 0 0 15px;
+ margin: 0 0 18px;
+ border-left: 5px solid #eeeeee;
+}
+blockquote p {
+ margin-bottom: 0;
+ font-size: 16px;
+ font-weight: 300;
+ line-height: 22.5px;
+}
+blockquote small {
+ display: block;
+ line-height: 18px;
+ color: #999999;
+}
+blockquote small:before {
+ content: '\2014 \00A0';
+}
+blockquote.pull-right {
+ float: right;
+ padding-left: 0;
+ padding-right: 15px;
+ border-left: 0;
+ border-right: 5px solid #eeeeee;
+}
+blockquote.pull-right p,
+blockquote.pull-right small {
+ text-align: right;
+}
+q:before,
+q:after,
+blockquote:before,
+blockquote:after {
+ content: "";
+}
+address {
+ display: block;
+ margin-bottom: 18px;
+ line-height: 18px;
+ font-style: normal;
+}
+small {
+ font-size: 100%;
+}
+cite {
+ font-style: normal;
+}
+code,
+pre {
+ padding: 0 3px 2px;
+ font-family: Menlo, Monaco, "Courier New", monospace;
+ font-size: 12px;
+ color: #333333;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+code {
+ padding: 3px 4px;
+ color: #d14;
+ background-color: #f7f7f9;
+ border: 1px solid #e1e1e8;
+}
+pre {
+ display: block;
+ padding: 8.5px;
+ margin: 0 0 9px;
+ font-size: 12px;
+ line-height: 18px;
+ 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;
+ white-space: pre;
+ white-space: pre-wrap;
+ word-break: break-all;
+ word-wrap: break-word;
+}
+pre.prettyprint {
+ margin-bottom: 18px;
+}
+pre code {
+ padding: 0;
+ color: inherit;
+ background-color: transparent;
+ border: 0;
+}
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
+form {
+ margin: 0 0 18px;
+}
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 27px;
+ font-size: 19.5px;
+ line-height: 36px;
+ color: #333333;
+ border: 0;
+ border-bottom: 1px solid #eee;
+}
+legend small {
+ font-size: 13.5px;
+ color: #999999;
+}
+label,
+input,
+button,
+select,
+textarea {
+ font-size: 13px;
+ font-weight: normal;
+ line-height: 18px;
+}
+input,
+button,
+select,
+textarea {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
+label {
+ display: block;
+ margin-bottom: 5px;
+ color: #333333;
+}
+input,
+textarea,
+select,
+.uneditable-input {
+ display: inline-block;
+ width: 210px;
+ height: 18px;
+ padding: 4px;
+ margin-bottom: 9px;
+ font-size: 13px;
+ line-height: 18px;
+ color: #555555;
+ border: 1px solid #ccc;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+.uneditable-textarea {
+ width: auto;
+ height: auto;
+}
+label input,
+label textarea,
+label select {
+ display: block;
+}
+input[type="image"],
+input[type="checkbox"],
+input[type="radio"] {
+ width: auto;
+ height: auto;
+ padding: 0;
+ margin: 3px 0;
+ *margin-top: 0;
+ /* IE7 */
+
+ line-height: normal;
+ cursor: pointer;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+ border: 0 \9;
+ /* IE9 and down */
+
+}
+input[type="image"] {
+ border: 0;
+}
+input[type="file"] {
+ width: auto;
+ padding: initial;
+ line-height: initial;
+ border: initial;
+ background-color: #ffffff;
+ background-color: initial;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ width: auto;
+ height: auto;
+}
+select,
+input[type="file"] {
+ height: 28px;
+ /* In IE7, the height of the select element cannot be changed by height, only font-size */
+
+ *margin-top: 4px;
+ /* For IE7, add top margin to align select with labels */
+
+ line-height: 28px;
+}
+input[type="file"] {
+ line-height: 18px \9;
+}
+select {
+ width: 220px;
+ background-color: #ffffff;
+}
+select[multiple],
+select[size] {
+ height: auto;
+}
+input[type="image"] {
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+textarea {
+ height: auto;
+}
+input[type="hidden"] {
+ display: none;
+}
+.radio,
+.checkbox {
+ padding-left: 18px;
+}
+.radio input[type="radio"],
+.checkbox input[type="checkbox"] {
+ float: left;
+ margin-left: -18px;
+}
+.controls > .radio:first-child,
+.controls > .checkbox:first-child {
+ padding-top: 5px;
+}
+.radio.inline,
+.checkbox.inline {
+ display: inline-block;
+ padding-top: 5px;
+ margin-bottom: 0;
+ vertical-align: middle;
+}
+.radio.inline + .radio.inline,
+.checkbox.inline + .checkbox.inline {
+ margin-left: 10px;
+}
+input,
+textarea {
+ -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 0.2s, box-shadow linear 0.2s;
+ -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
+ -ms-transition: border linear 0.2s, box-shadow linear 0.2s;
+ -o-transition: border linear 0.2s, box-shadow linear 0.2s;
+ transition: border linear 0.2s, box-shadow linear 0.2s;
+}
+input:focus,
+textarea:focus {
+ border-color: rgba(82, 168, 236, 0.8);
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
+ outline: 0;
+ outline: thin dotted \9;
+ /* IE6-9 */
+
+}
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus,
+select:focus {
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+ outline: thin dotted #333;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+.input-mini {
+ width: 60px;
+}
+.input-small {
+ width: 90px;
+}
+.input-medium {
+ width: 150px;
+}
+.input-large {
+ width: 210px;
+}
+.input-xlarge {
+ width: 270px;
+}
+.input-xxlarge {
+ width: 530px;
+}
+input[class*="span"],
+select[class*="span"],
+textarea[class*="span"],
+.uneditable-input {
+ float: none;
+ margin-left: 0;
+}
+input.span1,
+textarea.span1,
+.uneditable-input.span1 {
+ width: 50px;
+}
+input.span2,
+textarea.span2,
+.uneditable-input.span2 {
+ width: 130px;
+}
+input.span3,
+textarea.span3,
+.uneditable-input.span3 {
+ width: 210px;
+}
+input.span4,
+textarea.span4,
+.uneditable-input.span4 {
+ width: 290px;
+}
+input.span5,
+textarea.span5,
+.uneditable-input.span5 {
+ width: 370px;
+}
+input.span6,
+textarea.span6,
+.uneditable-input.span6 {
+ width: 450px;
+}
+input.span7,
+textarea.span7,
+.uneditable-input.span7 {
+ width: 530px;
+}
+input.span8,
+textarea.span8,
+.uneditable-input.span8 {
+ width: 610px;
+}
+input.span9,
+textarea.span9,
+.uneditable-input.span9 {
+ width: 690px;
+}
+input.span10,
+textarea.span10,
+.uneditable-input.span10 {
+ width: 770px;
+}
+input.span11,
+textarea.span11,
+.uneditable-input.span11 {
+ width: 850px;
+}
+input.span12,
+textarea.span12,
+.uneditable-input.span12 {
+ width: 930px;
+}
+input[disabled],
+select[disabled],
+textarea[disabled],
+input[readonly],
+select[readonly],
+textarea[readonly] {
+ background-color: #f5f5f5;
+ border-color: #ddd;
+ cursor: not-allowed;
+}
+.control-group.warning > label,
+.control-group.warning .help-block,
+.control-group.warning .help-inline {
+ color: #c09853;
+}
+.control-group.warning input,
+.control-group.warning select,
+.control-group.warning textarea {
+ color: #c09853;
+ border-color: #c09853;
+}
+.control-group.warning input:focus,
+.control-group.warning select:focus,
+.control-group.warning textarea:focus {
+ border-color: #a47e3c;
+ -webkit-box-shadow: 0 0 6px #dbc59e;
+ -moz-box-shadow: 0 0 6px #dbc59e;
+ box-shadow: 0 0 6px #dbc59e;
+}
+.control-group.warning .input-prepend .add-on,
+.control-group.warning .input-append .add-on {
+ color: #c09853;
+ background-color: #fcf8e3;
+ border-color: #c09853;
+}
+.control-group.error > label,
+.control-group.error .help-block,
+.control-group.error .help-inline {
+ color: #b94a48;
+}
+.control-group.error input,
+.control-group.error select,
+.control-group.error textarea {
+ color: #b94a48;
+ border-color: #b94a48;
+}
+.control-group.error input:focus,
+.control-group.error select:focus,
+.control-group.error textarea:focus {
+ border-color: #953b39;
+ -webkit-box-shadow: 0 0 6px #d59392;
+ -moz-box-shadow: 0 0 6px #d59392;
+ box-shadow: 0 0 6px #d59392;
+}
+.control-group.error .input-prepend .add-on,
+.control-group.error .input-append .add-on {
+ color: #b94a48;
+ background-color: #f2dede;
+ border-color: #b94a48;
+}
+.control-group.success > label,
+.control-group.success .help-block,
+.control-group.success .help-inline {
+ color: #468847;
+}
+.control-group.success input,
+.control-group.success select,
+.control-group.success textarea {
+ color: #468847;
+ border-color: #468847;
+}
+.control-group.success input:focus,
+.control-group.success select:focus,
+.control-group.success textarea:focus {
+ border-color: #356635;
+ -webkit-box-shadow: 0 0 6px #7aba7b;
+ -moz-box-shadow: 0 0 6px #7aba7b;
+ box-shadow: 0 0 6px #7aba7b;
+}
+.control-group.success .input-prepend .add-on,
+.control-group.success .input-append .add-on {
+ color: #468847;
+ background-color: #dff0d8;
+ border-color: #468847;
+}
+input:focus:required:invalid,
+textarea:focus:required:invalid,
+select:focus:required:invalid {
+ color: #b94a48;
+ border-color: #ee5f5b;
+}
+input:focus:required:invalid:focus,
+textarea:focus:required:invalid:focus,
+select:focus:required: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;
+}
+.form-actions {
+ padding: 17px 20px 18px;
+ margin-top: 18px;
+ margin-bottom: 18px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #ddd;
+}
+.uneditable-input {
+ display: block;
+ background-color: #ffffff;
+ border-color: #eee;
+ -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;
+}
+:-moz-placeholder {
+ color: #999999;
+}
+::-webkit-input-placeholder {
+ color: #999999;
+}
+.help-block {
+ display: block;
+ margin-top: 5px;
+ margin-bottom: 0;
+ color: #999999;
+}
+.help-inline {
+ display: inline-block;
+ *display: inline;
+ /* IE7 inline-block hack */
+
+ *zoom: 1;
+ margin-bottom: 9px;
+ vertical-align: middle;
+ padding-left: 5px;
+}
+.input-prepend,
+.input-append {
+ margin-bottom: 5px;
+ *zoom: 1;
+}
+.input-prepend:before,
+.input-append:before,
+.input-prepend:after,
+.input-append:after {
+ display: table;
+ content: "";
+}
+.input-prepend:after,
+.input-append:after {
+ clear: both;
+}
+.input-prepend input,
+.input-append input,
+.input-prepend .uneditable-input,
+.input-append .uneditable-input {
+ -webkit-border-radius: 0 3px 3px 0;
+ -moz-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 0;
+}
+.input-prepend input:focus,
+.input-append input:focus,
+.input-prepend .uneditable-input:focus,
+.input-append .uneditable-input:focus {
+ position: relative;
+ z-index: 2;
+}
+.input-prepend .uneditable-input,
+.input-append .uneditable-input {
+ border-left-color: #ccc;
+}
+.input-prepend .add-on,
+.input-append .add-on {
+ float: left;
+ display: block;
+ width: auto;
+ min-width: 16px;
+ height: 18px;
+ margin-right: -1px;
+ padding: 4px 5px;
+ font-weight: normal;
+ line-height: 18px;
+ color: #999999;
+ text-align: center;
+ text-shadow: 0 1px 0 #ffffff;
+ background-color: #f5f5f5;
+ border: 1px solid #ccc;
+ -webkit-border-radius: 3px 0 0 3px;
+ -moz-border-radius: 3px 0 0 3px;
+ border-radius: 3px 0 0 3px;
+}
+.input-prepend .active,
+.input-append .active {
+ background-color: #a9dba9;
+ border-color: #46a546;
+}
+.input-prepend .add-on {
+ *margin-top: 1px;
+ /* IE6-7 */
+
+}
+.input-append input,
+.input-append .uneditable-input {
+ float: left;
+ -webkit-border-radius: 3px 0 0 3px;
+ -moz-border-radius: 3px 0 0 3px;
+ border-radius: 3px 0 0 3px;
+}
+.input-append .uneditable-input {
+ border-left-color: #eee;
+ border-right-color: #ccc;
+}
+.input-append .add-on {
+ margin-right: 0;
+ margin-left: -1px;
+ -webkit-border-radius: 0 3px 3px 0;
+ -moz-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 0;
+}
+.input-append input:first-child {
+ *margin-left: -160px;
+}
+.input-append input:first-child + .add-on {
+ *margin-left: -21px;
+}
+.search-query {
+ padding-left: 14px;
+ padding-right: 14px;
+ margin-bottom: 0;
+ -webkit-border-radius: 14px;
+ -moz-border-radius: 14px;
+ border-radius: 14px;
+}
+.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 {
+ display: inline-block;
+ margin-bottom: 0;
+}
+.form-search .hide,
+.form-inline .hide,
+.form-horizontal .hide {
+ display: none;
+}
+.form-search label,
+.form-inline label,
+.form-search .input-append,
+.form-inline .input-append,
+.form-search .input-prepend,
+.form-inline .input-prepend {
+ display: inline-block;
+}
+.form-search .input-append .add-on,
+.form-inline .input-prepend .add-on,
+.form-search .input-append .add-on,
+.form-inline .input-prepend .add-on {
+ vertical-align: middle;
+}
+.form-search .radio,
+.form-inline .radio,
+.form-search .checkbox,
+.form-inline .checkbox {
+ margin-bottom: 0;
+ vertical-align: middle;
+}
+.control-group {
+ margin-bottom: 9px;
+}
+legend + .control-group {
+ margin-top: 18px;
+ -webkit-margin-top-collapse: separate;
+}
+.form-horizontal .control-group {
+ margin-bottom: 18px;
+ *zoom: 1;
+}
+.form-horizontal .control-group:before,
+.form-horizontal .control-group:after {
+ display: table;
+ content: "";
+}
+.form-horizontal .control-group:after {
+ clear: both;
+}
+.form-horizontal .control-label {
+ float: left;
+ width: 140px;
+ padding-top: 5px;
+ text-align: right;
+}
+.form-horizontal .controls {
+ margin-left: 160px;
+}
+.form-horizontal .form-actions {
+ padding-left: 160px;
+}
+table {
+ max-width: 100%;
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+.table {
+ width: 100%;
+ margin-bottom: 18px;
+}
+.table th,
+.table td {
+ padding: 8px;
+ line-height: 18px;
+ text-align: left;
+ vertical-align: top;
+ border-top: 1px solid #ddd;
+}
+.table th {
+ font-weight: bold;
+}
+.table thead th {
+ vertical-align: bottom;
+}
+.table thead:first-child tr th,
+.table thead:first-child tr td {
+ border-top: 0;
+}
+.table tbody + tbody {
+ border-top: 2px solid #ddd;
+}
+.table-condensed th,
+.table-condensed td {
+ padding: 4px 5px;
+}
+.table-bordered {
+ border: 1px solid #ddd;
+ border-collapse: separate;
+ *border-collapse: collapsed;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+.table-bordered th + th,
+.table-bordered td + td,
+.table-bordered th + td,
+.table-bordered td + th {
+ border-left: 1px solid #ddd;
+}
+.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;
+}
+.table-bordered thead:first-child tr:first-child th:first-child,
+.table-bordered tbody:first-child tr:first-child td:first-child {
+ -webkit-border-radius: 4px 0 0 0;
+ -moz-border-radius: 4px 0 0 0;
+ border-radius: 4px 0 0 0;
+}
+.table-bordered thead:first-child tr:first-child th:last-child,
+.table-bordered tbody:first-child tr:first-child td:last-child {
+ -webkit-border-radius: 0 4px 0 0;
+ -moz-border-radius: 0 4px 0 0;
+ border-radius: 0 4px 0 0;
+}
+.table-bordered thead:last-child tr:last-child th:first-child,
+.table-bordered tbody:last-child tr:last-child td:first-child {
+ -webkit-border-radius: 0 0 0 4px;
+ -moz-border-radius: 0 0 0 4px;
+ border-radius: 0 0 0 4px;
+}
+.table-bordered thead:last-child tr:last-child th:last-child,
+.table-bordered tbody:last-child tr:last-child td:last-child {
+ -webkit-border-radius: 0 0 4px 0;
+ -moz-border-radius: 0 0 4px 0;
+ border-radius: 0 0 4px 0;
+}
+.table-striped tbody tr:nth-child(odd) td,
+.table-striped tbody tr:nth-child(odd) th {
+ background-color: #f9f9f9;
+}
+.table tbody tr:hover td,
+.table tbody tr:hover th {
+ background-color: #f5f5f5;
+}
+table .span1 {
+ float: none;
+ width: 44px;
+ margin-left: 0;