.caret,
.dropup > .btn > .caret {
border-top-color: #000 !important;
}
.label {
border: 1px solid #000;
}
.table {
border-collapse: collapse !important;
}
.table td,
.table th {
background-color: #fff !important;
}
.table-bordered th,
.table-bordered td {
border: 1px solid #ddd !important;
}
}
@font-face {
font-family: 'Glyphicons Halflings';
src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
position: relative;
top: 1px;
display: inline-block;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
content: "\002a";
}
.glyphicon-plus:before {
content: "\002b";
}
.glyphicon-euro:before,
.glyphicon-eur:before {
content: "\20ac";
}
.glyphicon-minus:before {
content: "\2212";
}
.glyphicon-cloud:before {
content: "\2601";
}
.glyphicon-envelope:before {
content: "\2709";
}
.glyphicon-pencil:before {
content: "\270f";
}
.glyphicon-glass:before {
content: "\e001";
}
.glyphicon-music:before {
content: "\e002";
}
.glyphicon-search:before {
content: "\e003";
}
.glyphicon-heart:before {
content: "\e005";
}
.glyphicon-star:before {
content: "\e006";
}
.glyphicon-star-empty:before {
content: "\e007";
}
.glyphicon-user:before {
content: "\e008";
}
.glyphicon-film:before {
content: "\e009";
}
.glyphicon-th-large:before {
content: "\e010";
}
.glyphicon-th:before {
content: "\e011";
}
.glyphicon-th-list:before {
content: "\e012";
}
.glyphicon-ok:before {
content: "\e013";
}
.glyphicon-remove:before {
content: "\e014";
}
.glyphicon-zoom-in:before {
content: "\e015";
}
.glyphicon-zoom-out:before {
content: "\e016";
}
.glyphicon-off:before {
content: "\e017";
}
.glyphicon-signal:before {
content: "\e018";
}
.glyphicon-cog:before {
content: "\e019";
}
.glyphicon-trash:before {
content: "\e020";
}
.glyphicon-home:before {
content: "\e021";
}
.glyphicon-file:before {
content: "\e022";
}
.glyphicon-time:before {
content: "\e023";
}
.glyphicon-road:before {
content: "\e024";
}
.glyphicon-download-alt:before {
content: "\e025";
}
.glyphicon-download:before {
content: "\e026";
}
.glyphicon-upload:before {
content: "\e027";
}
.glyphicon-inbox:before {
content: "\e028";
}
.glyphicon-play-circle:before {
content: "\e029";
}
.glyphicon-repeat:before {
content: "\e030";
}
.glyphicon-refresh:before {
content: "\e031";
}
.glyphicon-list-alt:before {
content: "\e032";
}
.glyphicon-lock:before {
content: "\e033";
}
.glyphicon-flag:before {
content: "\e034";
}
.glyphicon-headphones:before {
content: "\e035";
}
.glyphicon-volume-off:before {
content: "\e036";
}
.glyphicon-volume-down:before {
content: "\e037";
}
.glyphicon-volume-up:before {
content: "\e038";
}
.glyphicon-qrcode:before {
content: "\e039";
}
.glyphicon-barcode:before {
content: "\e040";
}
.glyphicon-tag:before {
content: "\e041";
}
.glyphicon-tags:before {
content: "\e042";
}
.glyphicon-book:before {
content: "\e043";
}
.glyphicon-bookmark:before {
content: "\e044";
}
.glyphicon-print:before {
content: "\e045";
}
.glyphicon-camera:before {
content: "\e046";
}
.glyphicon-font:before {
content: "\e047";
}
.glyphicon-bold:before {
content: "\e048";
}
.glyphicon-italic:before {
content: "\e049";
}
.glyphicon-text-height:before {
content: "\e050";
}
.glyphicon-text-width:before {
content: "\e051";
}
.glyphicon-align-left:before {
content: "\e052";
}
.glyphicon-align-center:before {
content: "\e053";
}
.glyphicon-align-right:before {
content: "\e054";
}
.glyphicon-align-justify:before {
content: "\e055";
}
.glyphicon-list:before {
content: "\e056";
}
.glyphicon-indent-left:before {
content: "\e057";
}
.glyphicon-indent-right:before {
content: "\e058";
}
.glyphicon-facetime-video:before {
content: "\e059";
}
.glyphicon-picture:before {
content: "\e060";
}
.glyphicon-map-marker:before {
content: "\e062";
}
.glyphicon-adjust:before {
content: "\e063";
}
.glyphicon-tint:before {
content: "\e064";
}
.glyphicon-edit:before {
content: "\e065";
}
.glyphicon-share:before {
content: "\e066";
}
.glyphicon-check:before {
content: "\e067";
}
.glyphicon-move:before {
content: "\e068";
}
.glyphicon-step-backward:before {
content: "\e069";
}
.glyphicon-fast-backward:before {
content: "\e070";
}
.glyphicon-backward:before {
content: "\e071";
}
.glyphicon-play:before {
content: "\e072";
}
.glyphicon-pause:before {
content: "\e073";
}
.glyphicon-stop:before {
content: "\e074";
}
.glyphicon-forward:before {
content: "\e075";
}
.glyphicon-fast-forward:before {
content: "\e076";
}
.glyphicon-step-forward:before {
content: "\e077";
}
.glyphicon-eject:before {
content: "\e078";
}
.glyphicon-chevron-left:before {
content: "\e079";
}
.glyphicon-chevron-right:before {
content: "\e080";
}
.glyphicon-plus-sign:before {
content: "\e081";
}
.glyphicon-minus-sign:before {
content: "\e082";
}
.glyphicon-remove-sign:before {
content: "\e083";
}
.glyphicon-ok-sign:before {
content: "\e084";
}
.glyphicon-question-sign:before {
content: "\e085";
}
.glyphicon-info-sign:before {
content: "\e086";
}
.glyphicon-screenshot:before {
content: "\e087";
}
.glyphicon-remove-circle:before {
content: "\e088";
}
.glyphicon-ok-circle:before {
content: "\e089";
}
.glyphicon-ban-circle:before {
content: "\e090";
}
.glyphicon-arrow-left:before {
content: "\e091";
}
.glyphicon-arrow-right:before {
content: "\e092";
}
.glyphicon-arrow-up:before {
content: "\e093";
}
.glyphicon-arrow-down:before {
content: "\e094";
}
.glyphicon-share-alt:before {
content: "\e095";
}
.glyphicon-resize-full:before {
content: "\e096";
}
.glyphicon-resize-small:before {
content: "\e097";
}
.glyphicon-exclamation-sign:before {
content: "\e101";
}
.glyphicon-gift:before {
content: "\e102";
}
.glyphicon-leaf:before {
content: "\e103";
}
.glyphicon-fire:before {
content: "\e104";
}
.glyphicon-eye-open:before {
content: "\e105";
}
.glyphicon-eye-close:before {
content: "\e106";
}
.glyphicon-warning-sign:before {
content: "\e107";
}
.glyphicon-plane:before {
content: "\e108";
}
.glyphicon-calendar:before {
content: "\e109";
}
.glyphicon-random:before {
content: "\e110";
}
.glyphicon-comment:before {
content: "\e111";
}
.glyphicon-magnet:before {
content: "\e112";
}
.glyphicon-chevron-up:before {
content: "\e113";
}
.glyphicon-chevron-down:before {
content: "\e114";
}
.glyphicon-retweet:before {
content: "\e115";
}
.glyphicon-shopping-cart:before {
content: "\e116";
}
.glyphicon-folder-close:before {
content: "\e117";
}
.glyphicon-folder-open:before {
content: "\e118";
}
.glyphicon-resize-vertical:before {
content: "\e119";
}
.glyphicon-resize-horizontal:before {
content: "\e120";
}
.glyphicon-hdd:before {
content: "\e121";
}
.glyphicon-bullhorn:before {
content: "\e122";
}
.glyphicon-bell:before {
content: "\e123";
}
.glyphicon-certificate:before {
content: "\e124";
}
.glyphicon-thumbs-up:before {
content: "\e125";
}
.glyphicon-thumbs-down:before {
content: "\e126";
}
.glyphicon-hand-right:before {
content: "\e127";
}
.glyphicon-hand-left:before {
content: "\e128";
}
.glyphicon-hand-up:before {
content: "\e129";
}
.glyphicon-hand-down:before {
content: "\e130";
}
.glyphicon-circle-arrow-right:before {
content: "\e131";
}
.glyphicon-circle-arrow-left:before {
content: "\e132";
}
.glyphicon-circle-arrow-up:before {
content: "\e133";
}
.glyphicon-circle-arrow-down:before {
content: "\e134";
}
.glyphicon-globe:before {
content: "\e135";
}
.glyphicon-wrench:before {
content: "\e136";
}
.glyphicon-tasks:before {
content: "\e137";
}
.glyphicon-filter:before {
content: "\e138";
}
.glyphicon-briefcase:before {
content: "\e139";
}
.glyphicon-fullscreen:before {
content: "\e140";
}
.glyphicon-dashboard:before {
content: "\e141";
}
.glyphicon-paperclip:before {
content: "\e142";
}
.glyphicon-heart-empty:before {
content: "\e143";
}
.glyphicon-link:before {
content: "\e144";
}
.glyphicon-phone:before {
content: "\e145";
}
.glyphicon-pushpin:before {
content: "\e146";
}
.glyphicon-usd:before {
content: "\e148";
}
.glyphicon-gbp:before {
content: "\e149";
}
.glyphicon-sort:before {
content: "\e150";
}
.glyphicon-sort-by-alphabet:before {
content: "\e151";
}
.glyphicon-sort-by-alphabet-alt:before {
content: "\e152";
}
.glyphicon-sort-by-order:before {
content: "\e153";
}
.glyphicon-sort-by-order-alt:before {
content: "\e154";
}
.glyphicon-sort-by-attributes:before {
content: "\e155";
}
.glyphicon-sort-by-attributes-alt:before {
content: "\e156";
}
.glyphicon-unchecked:before {
content: "\e157";
}
.glyphicon-expand:before {
content: "\e158";
}
.glyphicon-collapse-down:before {
content: "\e159";
}
.glyphicon-collapse-up:before {
content: "\e160";
}
.glyphicon-log-in:before {
content: "\e161";
}
.glyphicon-flash:before {
content: "\e162";
}
.glyphicon-log-out:before {
content: "\e163";
}
.glyphicon-new-window:before {
content: "\e164";
}
.glyphicon-record:before {
content: "\e165";
}
.glyphicon-save:before {
content: "\e166";
}
.glyphicon-open:before {
content: "\e167";
}
.glyphicon-saved:before {
content: "\e168";
}
.glyphicon-import:before {
content: "\e169";
}
.glyphicon-export:before {
content: "\e170";
}
.glyphicon-send:before {
content: "\e171";
}
.glyphicon-floppy-disk:before {
content: "\e172";
}
.glyphicon-floppy-saved:before {
content: "\e173";
}
.glyphicon-floppy-remove:before {
content: "\e174";
}
.glyphicon-floppy-save:before {
content: "\e175";
}
.glyphicon-floppy-open:before {
content: "\e176";
}
.glyphicon-credit-card:before {
content: "\e177";
}
.glyphicon-transfer:before {
content: "\e178";
}
.glyphicon-cutlery:before {
content: "\e179";
}
.glyphicon-header:before {
content: "\e180";
}
.glyphicon-compressed:before {
content: "\e181";
}
.glyphicon-earphone:before {
content: "\e182";
}
.glyphicon-phone-alt:before {
content: "\e183";
}
.glyphicon-tower:before {
content: "\e184";
}
.glyphicon-stats:before {
content: "\e185";
}
.glyphicon-sd-video:before {
content: "\e186";
}
.glyphicon-hd-video:before {
content: "\e187";
}
.glyphicon-subtitles:before {
content: "\e188";
}
.glyphicon-sound-stereo:before {
content: "\e189";
}
.glyphicon-sound-dolby:before {
content: "\e190";
}
.glyphicon-sound-5-1:before {
content: "\e191";
}
.glyphicon-sound-6-1:before {
content: "\e192";
}
.glyphicon-sound-7-1:before {
content: "\e193";
}
.glyphicon-copyright-mark:before {
content: "\e194";
}
.glyphicon-registration-mark:before {
content: "\e195";
}
.glyphicon-cloud-download:before {
content: "\e197";
}
.glyphicon-cloud-upload:before {
content: "\e198";
}
.glyphicon-tree-conifer:before {
content: "\e199";
}
.glyphicon-tree-deciduous:before {
content: "\e200";
}
.glyphicon-cd:before {
content: "\e201";
}
.glyphicon-save-file:before {
content: "\e202";
}
.glyphicon-open-file:before {
content: "\e203";
}
.glyphicon-level-up:before {
content: "\e204";
}
.glyphicon-copy:before {
content: "\e205";
}
.glyphicon-paste:before {
content: "\e206";
}
.glyphicon-alert:before {
content: "\e209";
}
.glyphicon-equalizer:before {
content: "\e210";
}
.glyphicon-king:before {
content: "\e211";
}
.glyphicon-queen:before {
content: "\e212";
}
.glyphicon-pawn:before {
content: "\e213";
}
.glyphicon-bishop:before {
content: "\e214";
}
.glyphicon-knight:before {
content: "\e215";
}
.glyphicon-baby-formula:before {
content: "\e216";
}
.glyphicon-tent:before {
content: "\26fa";
}
.glyphicon-blackboard:before {
content: "\e218";
}
.glyphicon-bed:before {
content: "\e219";
}
.glyphicon-apple:before {
content: "\f8ff";
}
.glyphicon-erase:before {
content: "\e221";
}
.glyphicon-hourglass:before {
content: "\231b";
}
.glyphicon-lamp:before {
content: "\e223";
}
.glyphicon-duplicate:before {
content: "\e224";
}
.glyphicon-piggy-bank:before {
content: "\e225";
}
.glyphicon-scissors:before {
content: "\e226";
}
.glyphicon-bitcoin:before {
content: "\e227";
}
.glyphicon-btc:before {
content: "\e227";
}
.glyphicon-xbt:before {
content: "\e227";
}
.glyphicon-yen:before {
content: "\00a5";
}
.glyphicon-jpy:before {
content: "\00a5";
}
.glyphicon-ruble:before {
content: "\20bd";
}
.glyphicon-rub:before {
content: "\20bd";
}
.glyphicon-scale:before {
content: "\e230";
}
.glyphicon-ice-lolly:before {
content: "\e231";
}
.glyphicon-ice-lolly-tasted:before {
content: "\e232";
}
.glyphicon-education:before {
content: "\e233";
}
.glyphicon-option-horizontal:before {
content: "\e234";
}
.glyphicon-option-vertical:before {
content: "\e235";
}
.glyphicon-menu-hamburger:before {
content: "\e236";
}
.glyphicon-modal-window:before {
content: "\e237";
}
.glyphicon-oil:before {
content: "\e238";
}
.glyphicon-grain:before {
content: "\e239";
}
.glyphicon-sunglasses:before {
content: "\e240";
}
.glyphicon-text-size:before {
content: "\e241";
}
.glyphicon-text-color:before {
content: "\e242";
}
.glyphicon-text-background:before {
content: "\e243";
}
.glyphicon-object-align-top:before {
content: "\e244";
}
.glyphicon-object-align-bottom:before {
content: "\e245";
}
.glyphicon-object-align-horizontal:before {
content: "\e246";
}
.glyphicon-object-align-left:before {
content: "\e247";
}
.glyphicon-object-align-vertical:before {
content: "\e248";
}
.glyphicon-object-align-right:before {
content: "\e249";
}
.glyphicon-triangle-right:before {
content: "\e250";
}
.glyphicon-triangle-left:before {
content: "\e251";
}
.glyphicon-triangle-bottom:before {
content: "\e252";
}
.glyphicon-triangle-top:before {
content: "\e253";
}
.glyphicon-console:before {
content: "\e254";
}
.glyphicon-superscript:before {
content: "\e255";
}
.glyphicon-subscript:before {
content: "\e256";
}
.glyphicon-menu-left:before {
content: "\e257";
}
.glyphicon-menu-right:before {
content: "\e258";
}
.glyphicon-menu-down:before {
content: "\e259";
}
.glyphicon-menu-up:before {
content: "\e260";
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
*:before,
*:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html {
font-size: 10px;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 13px;
line-height: 1.42857143;
color: #000;
background-color: #fff;
}
input,
button,
select,
textarea {
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
a {
color: #337ab7;
text-decoration: none;
}
a:hover,
a:focus {
color: #23527c;
text-decoration: underline;
}
a:focus {
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
figure {
margin: 0;
}
img {
vertical-align: middle;
}
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
display: block;
max-width: 100%;
height: auto;
}
.img-rounded {
border-radius: 3px;
}
.img-thumbnail {
padding: 4px;
line-height: 1.42857143;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 2px;
-webkit-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
display: inline-block;
max-width: 100%;
height: auto;
}
.img-circle {
border-radius: 50%;
}
hr {
margin-top: 18px;
margin-bottom: 18px;
border: 0;
border-top: 1px solid #eeeeee;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
position: static;
width: auto;
height: auto;
margin: 0;
overflow: visible;
clip: auto;
}
[role="button"] {
cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
font-family: inherit;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
font-weight: normal;
line-height: 1;
color: #777777;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
margin-top: 18px;
margin-bottom: 9px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
margin-top: 9px;
margin-bottom: 9px;
}
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small,
h4 .small,
.h4 .small,
h5 .small,
.h5 .small,
h6 .small,
.h6 .small {
font-size: 75%;
}
h1,
.h1 {
font-size: 33px;
}
h2,
.h2 {
font-size: 27px;
}
h3,
.h3 {
font-size: 23px;
}
h4,
.h4 {
font-size: 17px;
}
h5,
.h5 {
font-size: 13px;
}
h6,
.h6 {
font-size: 12px;
}
p {
margin: 0 0 9px;
}
.lead {
margin-bottom: 18px;
font-size: 14px;
font-weight: 300;
line-height: 1.4;
}
@media (min-width: 768px) {
.lead {
font-size: 19.5px;
}
}
small,
.small {
font-size: 92%;
}
mark,
.mark {
background-color: #fcf8e3;
padding: .2em;
}
.text-left {
text-align: left;
}
.text-right {
text-align: right;
}
.text-center {
text-align: center;
}
.text-justify {
text-align: justify;
}
.text-nowrap {
white-space: nowrap;
}
.text-lowercase {
text-transform: lowercase;
}
.text-uppercase {
text-transform: uppercase;
}
.text-capitalize {
text-transform: capitalize;
}
.text-muted {
color: #777777;
}
.text-primary {
color: #337ab7;
}
a.text-primary:hover,
a.text-primary:focus {
color: #286090;
}
.text-success {
color: #3c763d;
}
a.text-success:hover,
a.text-success:focus {
color: #2b542c;
}
.text-info {
color: #31708f;
}
a.text-info:hover,
a.text-info:focus {
color: #245269;
}
.text-warning {
color: #8a6d3b;
}
a.text-warning:hover,
a.text-warning:focus {
color: #66512c;
}
.text-danger {
color: #a94442;
}
a.text-danger:hover,
a.text-danger:focus {
color: #843534;
}
.bg-primary {
color: #fff;
background-color: #337ab7;
}
a.bg-primary:hover,
a.bg-primary:focus {
background-color: #286090;
}
.bg-success {
background-color: #dff0d8;
}
a.bg-success:hover,
a.bg-success:focus {
background-color: #c1e2b3;
}
.bg-info {
background-color: #d9edf7;
}
a.bg-info:hover,
a.bg-info:focus {
background-color: #afd9ee;
}
.bg-warning {
background-color: #fcf8e3;
}
a.bg-warning:hover,
a.bg-warning:focus {
background-color: #f7ecb5;
}
.bg-danger {
background-color: #f2dede;
}
a.bg-danger:hover,
a.bg-danger:focus {
background-color: #e4b9b9;
}
.page-header {
padding-bottom: 8px;
margin: 36px 0 18px;
border-bottom: 1px solid #eeeeee;
}
ul,
ol {
margin-top: 0;
margin-bottom: 9px;
}
ul ul,
ol ul,
ul ol,
ol ol {
margin-bottom: 0;
}
.list-unstyled {
padding-left: 0;
list-style: none;
}
.list-inline {
padding-left: 0;
list-style: none;
margin-left: -5px;
}
.list-inline > li {
display: inline-block;
padding-left: 5px;
padding-right: 5px;
}
dl {
margin-top: 0;
margin-bottom: 18px;
}
dt,
dd {
line-height: 1.42857143;
}
dt {
font-weight: bold;
}
dd {
margin-left: 0;
}
@media (min-width: 541px) {
.dl-horizontal dt {
float: left;
width: 160px;
clear: left;
text-align: right;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.dl-horizontal dd {
margin-left: 180px;
}
}
abbr[title],
abbr[data-original-title] {
cursor: help;
border-bottom: 1px dotted #777777;
}
.initialism {
font-size: 90%;
text-transform: uppercase;
}
blockquote {
padding: 9px 18px;
margin: 0 0 18px;
font-size: inherit;
border-left: 5px solid #eeeeee;
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
margin-bottom: 0;
}
blockquote footer,
blockquote small,
blockquote .small {
display: block;
font-size: 80%;
line-height: 1.42857143;
color: #777777;
}
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
content: '\2014 \00A0';
}
.blockquote-reverse,
blockquote.pull-right {
padding-right: 15px;
padding-left: 0;
border-right: 5px solid #eeeeee;
border-left: 0;
text-align: right;
}
.blockquote-reverse footer:before,
blockquote.pull-right footer:before,
.blockquote-reverse small:before,
blockquote.pull-right small:before,
.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
content: '';
}
.blockquote-reverse footer:after,
blockquote.pull-right footer:after,
.blockquote-reverse small:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
content: '\00A0 \2014';
}
address {
margin-bottom: 18px;
font-style: normal;
line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
font-family: monospace;
}
code {
padding: 2px 4px;
font-size: 90%;
color: #c7254e;
background-color: #f9f2f4;
border-radius: 2px;
}
kbd {
padding: 2px 4px;
font-size: 90%;
color: #888;
background-color: transparent;
border-radius: 1px;
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
kbd kbd {
padding: 0;
font-size: 100%;
font-weight: bold;
box-shadow: none;
}
pre {
display: block;
padding: 8.5px;
margin: 0 0 9px;
font-size: 12px;
line-height: 1.42857143;
word-break: break-all;
word-wrap: break-word;
color: #333333;
background-color: #f5f5f5;
border: 1px solid #ccc;
border-radius: 2px;
}
pre code {
padding: 0;
font-size: inherit;
color: inherit;
white-space: pre-wrap;
background-color: transparent;
border-radius: 0;
}
.pre-scrollable {
max-height: 340px;
overflow-y: scroll;
}
.container {
margin-right: auto;
margin-left: auto;
padding-left: 0px;
padding-right: 0px;
}
@media (min-width: 768px) {
.container {
width: 768px;
}
}
@media (min-width: 992px) {
.container {
width: 940px;
}
}
@media (min-width: 1200px) {
.container {
width: 1140px;
}
}
.container-fluid {
margin-right: auto;
margin-left: auto;
padding-left: 0px;
padding-right: 0px;
}
.row {
margin-left: 0px;
margin-right: 0px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
position: relative;
min-height: 1px;
padding-left: 0px;
padding-right: 0px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
float: left;
}
.col-xs-12 {
width: 100%;
}
.col-xs-11 {
width: 91.66666667%;
}
.col-xs-10 {
width: 83.33333333%;
}
.col-xs-9 {
width: 75%;
}
.col-xs-8 {
width: 66.66666667%;
}
.col-xs-7 {
width: 58.33333333%;
}
.col-xs-6 {
width: 50%;
}
.col-xs-5 {
width: 41.66666667%;
}
.col-xs-4 {
width: 33.33333333%;
}
.col-xs-3 {
width: 25%;
}
.col-xs-2 {
width: 16.66666667%;
}
.col-xs-1 {
width: 8.33333333%;
}
.col-xs-pull-12 {
right: 100%;
}
.col-xs-pull-11 {
right: 91.66666667%;
}
.col-xs-pull-10 {
right: 83.33333333%;
}
.col-xs-pull-9 {
right: 75%;
}
.col-xs-pull-8 {
right: 66.66666667%;
}
.col-xs-pull-7 {
right: 58.33333333%;
}
.col-xs-pull-6 {
right: 50%;
}
.col-xs-pull-5 {
right: 41.66666667%;
}
.col-xs-pull-4 {
right: 33.33333333%;
}
.col-xs-pull-3 {
right: 25%;
}
.col-xs-pull-2 {
right: 16.66666667%;
}
.col-xs-pull-1 {
right: 8.33333333%;
}
.col-xs-pull-0 {
right: auto;
}
.col-xs-push-12 {
left: 100%;
}
.col-xs-push-11 {
left: 91.66666667%;
}
.col-xs-push-10 {
left: 83.33333333%;
}
.col-xs-push-9 {
left: 75%;
}
.col-xs-push-8 {
left: 66.66666667%;
}
.col-xs-push-7 {
left: 58.33333333%;
}
.col-xs-push-6 {
left: 50%;
}
.col-xs-push-5 {
left: 41.66666667%;
}
.col-xs-push-4 {
left: 33.33333333%;
}
.col-xs-push-3 {
left: 25%;
}
.col-xs-push-2 {
left: 16.66666667%;
}
.col-xs-push-1 {
left: 8.33333333%;
}
.col-xs-push-0 {
left: auto;
}
.col-xs-offset-12 {
margin-left: 100%;
}
.col-xs-offset-11 {
margin-left: 91.66666667%;
}
.col-xs-offset-10 {
margin-left: 83.33333333%;
}
.col-xs-offset-9 {
margin-left: 75%;
}
.col-xs-offset-8 {
margin-left: 66.66666667%;
}
.col-xs-offset-7 {
margin-left: 58.33333333%;
}
.col-xs-offset-6 {
margin-left: 50%;
}
.col-xs-offset-5 {
margin-left: 41.66666667%;
}
.col-xs-offset-4 {
margin-left: 33.33333333%;
}
.col-xs-offset-3 {
margin-left: 25%;
}
.col-xs-offset-2 {
margin-left: 16.66666667%;
}
.col-xs-offset-1 {
margin-left: 8.33333333%;
}
.col-xs-offset-0 {
margin-left: 0%;
}
@media (min-width: 768px) {
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
float: left;
}
.col-sm-12 {
width: 100%;
}
.col-sm-11 {
width: 91.66666667%;
}
.col-sm-10 {
width: 83.33333333%;
}
.col-sm-9 {
width: 75%;
}
.col-sm-8 {
width: 66.66666667%;
}
.col-sm-7 {
width: 58.33333333%;
}
.col-sm-6 {
width: 50%;
}
.col-sm-5 {
width: 41.66666667%;
}
.col-sm-4 {
width: 33.33333333%;
}
.col-sm-3 {
width: 25%;
}
.col-sm-2 {
width: 16.66666667%;
}
.col-sm-1 {
width: 8.33333333%;
}
.col-sm-pull-12 {
right: 100%;
}
.col-sm-pull-11 {
right: 91.66666667%;
}
.col-sm-pull-10 {
right: 83.33333333%;
}
.col-sm-pull-9 {
right: 75%;
}
.col-sm-pull-8 {
right: 66.66666667%;
}
.col-sm-pull-7 {
right: 58.33333333%;
}
.col-sm-pull-6 {
right: 50%;
}
.col-sm-pull-5 {
right: 41.66666667%;
}
.col-sm-pull-4 {
right: 33.33333333%;
}
.col-sm-pull-3 {
right: 25%;
}
.col-sm-pull-2 {
right: 16.66666667%;
}
.col-sm-pull-1 {
right: 8.33333333%;
}
.col-sm-pull-0 {
right: auto;
}
.col-sm-push-12 {
left: 100%;
}
.col-sm-push-11 {
left: 91.66666667%;
}
.col-sm-push-10 {
left: 83.33333333%;
}
.col-sm-push-9 {
left: 75%;
}
.col-sm-push-8 {
left: 66.66666667%;
}
.col-sm-push-7 {
left: 58.33333333%;
}
.col-sm-push-6 {
left: 50%;
}
.col-sm-push-5 {
left: 41.66666667%;
}
.col-sm-push-4 {
left: 33.33333333%;
}
.col-sm-push-3 {
left: 25%;
}
.col-sm-push-2 {
left: 16.66666667%;
}
.col-sm-push-1 {
left: 8.33333333%;
}
.col-sm-push-0 {
left: auto;
}
.col-sm-offset-12 {
margin-left: 100%;
}
.col-sm-offset-11 {
margin-left: 91.66666667%;
}
.col-sm-offset-10 {
margin-left: 83.33333333%;
}
.col-sm-offset-9 {
margin-left: 75%;
}
.col-sm-offset-8 {
margin-left: 66.66666667%;
}
.col-sm-offset-7 {
margin-left: 58.33333333%;
}
.col-sm-offset-6 {
margin-left: 50%;
}
.col-sm-offset-5 {
margin-left: 41.66666667%;
}
.col-sm-offset-4 {
margin-left: 33.33333333%;
}
.col-sm-offset-3 {
margin-left: 25%;
}
.col-sm-offset-2 {
margin-left: 16.66666667%;
}
.col-sm-offset-1 {
margin-left: 8.33333333%;
}
.col-sm-offset-0 {
margin-left: 0%;
}
}
@media (min-width: 992px) {
.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
float: left;
}
.col-md-12 {
width: 100%;
}
.col-md-11 {
width: 91.66666667%;
}
.col-md-10 {
width: 83.33333333%;
}
.col-md-9 {
width: 75%;
}
.col-md-8 {
width: 66.66666667%;
}
.col-md-7 {
width: 58.33333333%;
}
.col-md-6 {
width: 50%;
}
.col-md-5 {
width: 41.66666667%;
}
.col-md-4 {
width: 33.33333333%;
}
.col-md-3 {
width: 25%;
}
.col-md-2 {
width: 16.66666667%;
}
.col-md-1 {
width: 8.33333333%;
}
.col-md-pull-12 {
right: 100%;
}
.col-md-pull-11 {
right: 91.66666667%;
}
.col-md-pull-10 {
right: 83.33333333%;
}
.col-md-pull-9 {
right: 75%;
}
.col-md-pull-8 {
right: 66.66666667%;
}
.col-md-pull-7 {
right: 58.33333333%;
}
.col-md-pull-6 {
right: 50%;
}
.col-md-pull-5 {
right: 41.66666667%;
}
.col-md-pull-4 {
right: 33.33333333%;
}
.col-md-pull-3 {
right: 25%;
}
.col-md-pull-2 {
right: 16.66666667%;
}
.col-md-pull-1 {
right: 8.33333333%;
}
.col-md-pull-0 {
right: auto;
}
.col-md-push-12 {
left: 100%;
}
.col-md-push-11 {
left: 91.66666667%;
}
.col-md-push-10 {
left: 83.33333333%;
}
.col-md-push-9 {
left: 75%;
}
.col-md-push-8 {
left: 66.66666667%;
}
.col-md-push-7 {
left: 58.33333333%;
}
.col-md-push-6 {
left: 50%;
}
.col-md-push-5 {
left: 41.66666667%;
}
.col-md-push-4 {
left: 33.33333333%;
}
.col-md-push-3 {
left: 25%;
}
.col-md-push-2 {
left: 16.66666667%;
}
.col-md-push-1 {
left: 8.33333333%;
}
.col-md-push-0 {
left: auto;
}
.col-md-offset-12 {
margin-left: 100%;
}
.col-md-offset-11 {
margin-left: 91.66666667%;
}
.col-md-offset-10 {
margin-left: 83.33333333%;
}
.col-md-offset-9 {
margin-left: 75%;
}
.col-md-offset-8 {
margin-left: 66.66666667%;
}
.col-md-offset-7 {
margin-left: 58.33333333%;
}
.col-md-offset-6 {
margin-left: 50%;
}
.col-md-offset-5 {
margin-left: 41.66666667%;
}
.col-md-offset-4 {
margin-left: 33.33333333%;
}
.col-md-offset-3 {
margin-left: 25%;
}
.col-md-offset-2 {
margin-left: 16.66666667%;
}
.col-md-offset-1 {
margin-left: 8.33333333%;
}
.col-md-offset-0 {
margin-left: 0%;
}
}
@media (min-width: 1200px) {
.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
float: left;
}
.col-lg-12 {
width: 100%;
}
.col-lg-11 {
width: 91.66666667%;
}
.col-lg-10 {
width: 83.33333333%;
}
.col-lg-9 {
width: 75%;
}
.col-lg-8 {
width: 66.66666667%;
}
.col-lg-7 {
width: 58.33333333%;
}
.col-lg-6 {
width: 50%;
}
.col-lg-5 {
width: 41.66666667%;
}
.col-lg-4 {
width: 33.33333333%;
}
.col-lg-3 {
width: 25%;
}
.col-lg-2 {
width: 16.66666667%;
}
.col-lg-1 {
width: 8.33333333%;
}
.col-lg-pull-12 {
right: 100%;
}
.col-lg-pull-11 {
right: 91.66666667%;
}
.col-lg-pull-10 {
right: 83.33333333%;
}
.col-lg-pull-9 {
right: 75%;
}
.col-lg-pull-8 {
right: 66.66666667%;
}
.col-lg-pull-7 {
right: 58.33333333%;
}
.col-lg-pull-6 {
right: 50%;
}
.col-lg-pull-5 {
right: 41.66666667%;
}
.col-lg-pull-4 {
right: 33.33333333%;
}
.col-lg-pull-3 {
right: 25%;
}
.col-lg-pull-2 {
right: 16.66666667%;
}
.col-lg-pull-1 {
right: 8.33333333%;
}
.col-lg-pull-0 {
right: auto;
}
.col-lg-push-12 {
left: 100%;
}
.col-lg-push-11 {
left: 91.66666667%;
}
.col-lg-push-10 {
left: 83.33333333%;
}
.col-lg-push-9 {
left: 75%;
}
.col-lg-push-8 {
left: 66.66666667%;
}
.col-lg-push-7 {
left: 58.33333333%;
}
.col-lg-push-6 {
left: 50%;
}
.col-lg-push-5 {
left: 41.66666667%;
}
.col-lg-push-4 {
left: 33.33333333%;
}
.col-lg-push-3 {
left: 25%;
}
.col-lg-push-2 {
left: 16.66666667%;
}
.col-lg-push-1 {
left: 8.33333333%;
}
.col-lg-push-0 {
left: auto;
}
.col-lg-offset-12 {
margin-left: 100%;
}
.col-lg-offset-11 {
margin-left: 91.66666667%;
}
.col-lg-offset-10 {
margin-left: 83.33333333%;
}
.col-lg-offset-9 {
margin-left: 75%;
}
.col-lg-offset-8 {
margin-left: 66.66666667%;
}
.col-lg-offset-7 {
margin-left: 58.33333333%;
}
.col-lg-offset-6 {
margin-left: 50%;
}
.col-lg-offset-5 {
margin-left: 41.66666667%;
}
.col-lg-offset-4 {
margin-left: 33.33333333%;
}
.col-lg-offset-3 {
margin-left: 25%;
}
.col-lg-offset-2 {
margin-left: 16.66666667%;
}
.col-lg-offset-1 {
margin-left: 8.33333333%;
}
.col-lg-offset-0 {
margin-left: 0%;
}
}
table {
background-color: transparent;
}
caption {
padding-top: 8px;
padding-bottom: 8px;
color: #777777;
text-align: left;
}
th {
text-align: left;
}
.table {
width: 100%;
max-width: 100%;
margin-bottom: 18px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid #ddd;
}
.table > thead > tr > th {
vertical-align: bottom;
border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
border-top: 0;
}
.table > tbody + tbody {
border-top: 2px solid #ddd;
}
.table .table {
background-color: #fff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
padding: 5px;
}
.table-bordered {
border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
background-color: #f5f5f5;
}
table col[class*="col-"] {
position: static;
float: none;
display: table-column;
}
table td[class*="col-"],
table th[class*="col-"] {
position: static;
float: none;
display: table-cell;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
background-color: #ebcccc;
}
.table-responsive {
overflow-x: auto;
min-height: 0.01%;
}
@media screen and (max-width: 767px) {
.table-responsive {
width: 100%;
margin-bottom: 13.5px;
overflow-y: hidden;
-ms-overflow-style: -ms-autohiding-scrollbar;
border: 1px solid #ddd;
}
.table-responsive > .table {
margin-bottom: 0;
}
.table-responsive > .table > thead > tr > th,
.table-responsive > .table > tbody > tr > th,
.table-responsive > .table > tfoot > tr > th,
.table-responsive > .table > thead > tr > td,
.table-responsive > .table > tbody > tr > td,
.table-responsive > .table > tfoot > tr > td {
white-space: nowrap;
}
.table-responsive > .table-bordered {
border: 0;
}
.table-responsive > .table-bordered > thead > tr > th:first-child,
.table-responsive > .table-bordered > tbody > tr > th:first-child,
.table-responsive > .table-bordered > tfoot > tr > th:first-child,
.table-responsive > .table-bordered > thead > tr > td:first-child,
.table-responsive > .table-bordered > tbody > tr > td:first-child,
.table-responsive > .table-bordered > tfoot > tr > td:first-child {
border-left: 0;
}
.table-responsive > .table-bordered > thead > tr > th:last-child,
.table-responsive > .table-bordered > tbody > tr > th:last-child,
.table-responsive > .table-bordered > tfoot > tr > th:last-child,
.table-responsive > .table-bordered > thead > tr > td:last-child,
.table-responsive > .table-bordered > tbody > tr > td:last-child,
.table-responsive > .table-bordered > tfoot > tr > td:last-child {
border-right: 0;
}
.table-responsive > .table-bordered > tbody > tr:last-child > th,
.table-responsive > .table-bordered > tfoot > tr:last-child > th,
.table-responsive > .table-bordered > tbody > tr:last-child > td,
.table-responsive > .table-bordered > tfoot > tr:last-child > td {
border-bottom: 0;
}
}
fieldset {
padding: 0;
margin: 0;
border: 0;
min-width: 0;
}
legend {
display: block;
width: 100%;
padding: 0;
margin-bottom: 18px;
font-size: 19.5px;
line-height: inherit;
color: #333333;
border: 0;
border-bottom: 1px solid #e5e5e5;
}
label {
display: inline-block;
max-width: 100%;
margin-bottom: 5px;
font-weight: bold;
}
input[type="search"] {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
input[type="radio"],
input[type="checkbox"] {
margin: 4px 0 0;
margin-top: 1px \9;
line-height: normal;
}
input[type="file"] {
display: block;
}
input[type="range"] {
display: block;
width: 100%;
}
select[multiple],
select[size] {
height: auto;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
output {
display: block;
padding-top: 7px;
font-size: 13px;
line-height: 1.42857143;
color: #555555;
}
.form-control {
display: block;
width: 100%;
height: 32px;
padding: 6px 12px;
font-size: 13px;
line-height: 1.42857143;
color: #555555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 2px;
-webkit-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-color ease-in-out .15s, box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
color: #999;
opacity: 1;
}
.form-control:-ms-input-placeholder {
color: #999;
}
.form-control::-webkit-input-placeholder {
color: #999;
}
.form-control::-ms-expand {
border: 0;
background-color: transparent;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
background-color: #eeeeee;
opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
cursor: not-allowed;
}
textarea.form-control {
height: auto;
}
input[type="search"] {
-webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
input[type="date"].form-control,
input[type="time"].form-control,
input[type="datetime-local"].form-control,
input[type="month"].form-control {
line-height: 32px;
}
input[type="date"].input-sm,
input[type="time"].input-sm,
input[type="datetime-local"].input-sm,
input[type="month"].input-sm,
.input-group-sm input[type="date"],
.input-group-sm input[type="time"],
.input-group-sm input[type="datetime-local"],
.input-group-sm input[type="month"] {
line-height: 30px;
}
input[type="date"].input-lg,
input[type="time"].input-lg,
input[type="datetime-local"].input-lg,
input[type="month"].input-lg,
.input-group-lg input[type="date"],
.input-group-lg input[type="time"],
.input-group-lg input[type="datetime-local"],
.input-group-lg input[type="month"] {
line-height: 45px;
}
}
.form-group {
margin-bottom: 15px;
}
.radio,
.checkbox {
position: relative;
display: block;
margin-top: 10px;
margin-bottom: 10px;
}
.radio label,
.checkbox label {
min-height: 18px;
padding-left: 20px;
margin-bottom: 0;
font-weight: normal;
cursor: pointer;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
position: absolute;
margin-left: -20px;
margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
margin-top: -5px;
}
.radio-inline,
.checkbox-inline {
position: relative;
display: inline-block;
padding-left: 20px;
margin-bottom: 0;
vertical-align: middle;
font-weight: normal;
cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
margin-top: 0;
margin-left: 10px;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"].disabled,
input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
cursor: not-allowed;
}
.radio-inline.disabled,
.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
cursor: not-allowed;
}
.radio.disabled label,
.checkbox.disabled label,
fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
cursor: not-allowed;
}
.form-control-static {
padding-top: 7px;
padding-bottom: 7px;
margin-bottom: 0;
min-height: 31px;
}
.form-control-static.input-lg,
.form-control-static.input-sm {
padding-left: 0;
padding-right: 0;
}
.input-sm {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
select.input-sm {
height: 30px;
line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
height: auto;
}
.form-group-sm .form-control {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
.form-group-sm select.form-control {
height: 30px;
line-height: 30px;
}
.form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control {
height: auto;
}
.form-group-sm .form-control-static {
height: 30px;
min-height: 30px;
padding: 6px 10px;
font-size: 12px;
line-height: 1.5;
}
.input-lg {
height: 45px;
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
select.input-lg {
height: 45px;
line-height: 45px;
}
textarea.input-lg,
select[multiple].input-lg {
height: auto;
}
.form-group-lg .form-control {
height: 45px;
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
.form-group-lg select.form-control {
height: 45px;
line-height: 45px;
}
.form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control {
height: auto;
}
.form-group-lg .form-control-static {
height: 45px;
min-height: 35px;
padding: 11px 16px;
font-size: 17px;
line-height: 1.3333333;
}
.has-feedback {
position: relative;
}
.has-feedback .form-control {
padding-right: 40px;
}
.form-control-feedback {
position: absolute;
top: 0;
right: 0;
z-index: 2;
display: block;
width: 32px;
height: 32px;
line-height: 32px;
text-align: center;
pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
width: 45px;
height: 45px;
line-height: 45px;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
width: 30px;
height: 30px;
line-height: 30px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
color: #3c763d;
}
.has-success .form-control {
border-color: #3c763d;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-success .form-control:focus {
border-color: #2b542c;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
color: #3c763d;
border-color: #3c763d;
background-color: #dff0d8;
}
.has-success .form-control-feedback {
color: #3c763d;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
color: #8a6d3b;
}
.has-warning .form-control {
border-color: #8a6d3b;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-warning .form-control:focus {
border-color: #66512c;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
color: #8a6d3b;
border-color: #8a6d3b;
background-color: #fcf8e3;
}
.has-warning .form-control-feedback {
color: #8a6d3b;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
color: #a94442;
}
.has-error .form-control {
border-color: #a94442;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .form-control:focus {
border-color: #843534;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
color: #a94442;
border-color: #a94442;
background-color: #f2dede;
}
.has-error .form-control-feedback {
color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
top: 23px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
top: 0;
}
.help-block {
display: block;
margin-top: 5px;
margin-bottom: 10px;
color: #404040;
}
@media (min-width: 768px) {
.form-inline .form-group {
display: inline-block;
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .form-control {
display: inline-block;
width: auto;
vertical-align: middle;
}
.form-inline .form-control-static {
display: inline-block;
}
.form-inline .input-group {
display: inline-table;
vertical-align: middle;
}
.form-inline .input-group .input-group-addon,
.form-inline .input-group .input-group-btn,
.form-inline .input-group .form-control {
width: auto;
}
.form-inline .input-group > .form-control {
width: 100%;
}
.form-inline .control-label {
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .radio,
.form-inline .checkbox {
display: inline-block;
margin-top: 0;
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .radio label,
.form-inline .checkbox label {
padding-left: 0;
}
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
position: relative;
margin-left: 0;
}
.form-inline .has-feedback .form-control-feedback {
top: 0;
}
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
margin-top: 0;
margin-bottom: 0;
padding-top: 7px;
}
.form-horizontal .radio,
.form-horizontal .checkbox {
min-height: 25px;
}
.form-horizontal .form-group {
margin-left: 0px;
margin-right: 0px;
}
@media (min-width: 768px) {
.form-horizontal .control-label {
text-align: right;
margin-bottom: 0;
padding-top: 7px;
}
}
.form-horizontal .has-feedback .form-control-feedback {
right: 0px;
}
@media (min-width: 768px) {
.form-horizontal .form-group-lg .control-label {
padding-top: 11px;
font-size: 17px;
}
}
@media (min-width: 768px) {
.form-horizontal .form-group-sm .control-label {
padding-top: 6px;
font-size: 12px;
}
}
.btn {
display: inline-block;
margin-bottom: 0;
font-weight: normal;
text-align: center;
vertical-align: middle;
touch-action: manipulation;
cursor: pointer;
background-image: none;
border: 1px solid transparent;
white-space: nowrap;
padding: 6px 12px;
font-size: 13px;
line-height: 1.42857143;
border-radius: 2px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
color: #333;
text-decoration: none;
}
.btn:active,
.btn.active {
outline: 0;
background-image: none;
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
cursor: not-allowed;
opacity: 0.65;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
box-shadow: none;
}
a.btn.disabled,
fieldset[disabled] a.btn {
pointer-events: none;
}
.btn-default {
color: #333;
background-color: #fff;
border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
color: #333;
background-color: #e6e6e6;
border-color: #8c8c8c;
}
.btn-default:hover {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
color: #333;
background-color: #d4d4d4;
border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
background-image: none;
}
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus {
background-color: #fff;
border-color: #ccc;
}
.btn-default .badge {
color: #fff;
background-color: #333;
}
.btn-primary {
color: #fff;
background-color: #337ab7;
border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
color: #fff;
background-color: #286090;
border-color: #122b40;
}
.btn-primary:hover {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
color: #fff;
background-color: #204d74;
border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
background-image: none;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
background-color: #337ab7;
border-color: #2e6da4;
}
.btn-primary .badge {
color: #337ab7;
background-color: #fff;
}
.btn-success {
color: #fff;
background-color: #5cb85c;
border-color: #4cae4c;
}
.btn-success:focus,
.btn-success.focus {
color: #fff;
background-color: #449d44;
border-color: #255625;
}
.btn-success:hover {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.btn-success:active:hover,
.btn-success.active:hover,
.open > .dropdown-toggle.btn-success:hover,
.btn-success:active:focus,
.btn-success.active:focus,
.open > .dropdown-toggle.btn-success:focus,
.btn-success:active.focus,
.btn-success.active.focus,
.open > .dropdown-toggle.btn-success.focus {
color: #fff;
background-color: #398439;
border-color: #255625;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
background-image: none;
}
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus {
background-color: #5cb85c;
border-color: #4cae4c;
}
.btn-success .badge {
color: #5cb85c;
background-color: #fff;
}
.btn-info {
color: #fff;
background-color: #5bc0de;
border-color: #46b8da;
}
.btn-info:focus,
.btn-info.focus {
color: #fff;
background-color: #31b0d5;
border-color: #1b6d85;
}
.btn-info:hover {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
color: #fff;
background-color: #269abc;
border-color: #1b6d85;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
background-image: none;
}
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus {
background-color: #5bc0de;
border-color: #46b8da;
}
.btn-info .badge {
color: #5bc0de;
background-color: #fff;
}
.btn-warning {
color: #fff;
background-color: #f0ad4e;
border-color: #eea236;
}
.btn-warning:focus,
.btn-warning.focus {
color: #fff;
background-color: #ec971f;
border-color: #985f0d;
}
.btn-warning:hover {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.btn-warning:active:hover,
.btn-warning.active:hover,
.open > .dropdown-toggle.btn-warning:hover,
.btn-warning:active:focus,
.btn-warning.active:focus,
.open > .dropdown-toggle.btn-warning:focus,
.btn-warning:active.focus,
.btn-warning.active.focus,
.open > .dropdown-toggle.btn-warning.focus {
color: #fff;
background-color: #d58512;
border-color: #985f0d;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
background-image: none;
}
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus {
background-color: #f0ad4e;
border-color: #eea236;
}
.btn-warning .badge {
color: #f0ad4e;
background-color: #fff;
}
.btn-danger {
color: #fff;
background-color: #d9534f;
border-color: #d43f3a;
}
.btn-danger:focus,
.btn-danger.focus {
color: #fff;
background-color: #c9302c;
border-color: #761c19;
}
.btn-danger:hover {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.btn-danger:active:hover,
.btn-danger.active:hover,
.open > .dropdown-toggle.btn-danger:hover,
.btn-danger:active:focus,
.btn-danger.active:focus,
.open > .dropdown-toggle.btn-danger:focus,
.btn-danger:active.focus,
.btn-danger.active.focus,
.open > .dropdown-toggle.btn-danger.focus {
color: #fff;
background-color: #ac2925;
border-color: #761c19;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
background-image: none;
}
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus {
background-color: #d9534f;
border-color: #d43f3a;
}
.btn-danger .badge {
color: #d9534f;
background-color: #fff;
}
.btn-link {
color: #337ab7;
font-weight: normal;
border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
background-color: transparent;
-webkit-box-shadow: none;
box-shadow: none;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
border-color: transparent;
}
.btn-link:hover,
.btn-link:focus {
color: #23527c;
text-decoration: underline;
background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
color: #777777;
text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
.btn-sm,
.btn-group-sm > .btn {
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
.btn-xs,
.btn-group-xs > .btn {
padding: 1px 5px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
.btn-block {
display: block;
width: 100%;
}
.btn-block + .btn-block {
margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
width: 100%;
}
.fade {
opacity: 0;
-webkit-transition: opacity 0.15s linear;
-o-transition: opacity 0.15s linear;
transition: opacity 0.15s linear;
}
.fade.in {
opacity: 1;
}
.collapse {
display: none;
}
.collapse.in {
display: block;
}
tr.collapse.in {
display: table-row;
}
tbody.collapse.in {
display: table-row-group;
}
.collapsing {
position: relative;
height: 0;
overflow: hidden;
-webkit-transition-property: height, visibility;
transition-property: height, visibility;
-webkit-transition-duration: 0.35s;
transition-duration: 0.35s;
-webkit-transition-timing-function: ease;
transition-timing-function: ease;
}
.caret {
display: inline-block;
width: 0;
height: 0;
margin-left: 2px;
vertical-align: middle;
border-top: 4px dashed;
border-top: 4px solid \9;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
}
.dropup,
.dropdown {
position: relative;
}
.dropdown-toggle:focus {
outline: 0;
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 160px;
padding: 5px 0;
margin: 2px 0 0;
list-style: none;
font-size: 13px;
text-align: left;
background-color: #fff;
border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 2px;
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
background-clip: padding-box;
}
.dropdown-menu.pull-right {
right: 0;
left: auto;
}
.dropdown-menu .divider {
height: 1px;
margin: 8px 0;
overflow: hidden;
background-color: #e5e5e5;
}
.dropdown-menu > li > a {
display: block;
padding: 3px 20px;
clear: both;
font-weight: normal;
line-height: 1.42857143;
color: #333333;
white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
text-decoration: none;
color: #262626;
background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
color: #fff;
text-decoration: none;
outline: 0;
background-color: #337ab7;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
color: #777777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
text-decoration: none;
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
cursor: not-allowed;
}
.open > .dropdown-menu {
display: block;
}
.open > a {
outline: 0;
}
.dropdown-menu-right {
left: auto;
right: 0;
}
.dropdown-menu-left {
left: 0;
right: auto;
}
.dropdown-header {
display: block;
padding: 3px 20px;
font-size: 12px;
line-height: 1.42857143;
color: #777777;
white-space: nowrap;
}
.dropdown-backdrop {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
z-index: 990;
}
.pull-right > .dropdown-menu {
right: 0;
left: auto;
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
border-top: 0;
border-bottom: 4px dashed;
border-bottom: 4px solid \9;
content: "";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
top: auto;
bottom: 100%;
margin-bottom: 2px;
}
@media (min-width: 541px) {
.navbar-right .dropdown-menu {
left: auto;
right: 0;
}
.navbar-right .dropdown-menu-left {
left: 0;
right: auto;
}
}
.btn-group,
.btn-group-vertical {
position: relative;
display: inline-block;
vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
position: relative;
float: left;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
z-index: 2;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
margin-left: -1px;
}
.btn-toolbar {
margin-left: -5px;
}
.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
float: left;
}
.btn-toolbar > .btn,
.btn-toolbar > .btn-group,
.btn-toolbar > .input-group {
margin-left: 5px;
}
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
border-radius: 0;
}
.btn-group > .btn:first-child {
margin-left: 0;
}
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.btn-group > .btn-group {
float: left;
}
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0;
}
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
padding-left: 8px;
padding-right: 8px;
}
.btn-group > .btn-lg + .dropdown-toggle {
padding-left: 12px;
padding-right: 12px;
}
.btn-group.open .dropdown-toggle {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn-group.open .dropdown-toggle.btn-link {
-webkit-box-shadow: none;
box-shadow: none;
}
.btn .caret {
margin-left: 0;
}
.btn-lg .caret {
border-width: 5px 5px 0;
border-bottom-width: 0;
}
.dropup .btn-lg .caret {
border-width: 0 5px 5px;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
display: block;
float: none;
width: 100%;
max-width: 100%;
}
.btn-group-vertical > .btn-group > .btn {
float: none;
}
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
margin-top: -1px;
margin-left: 0;
}
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
border-radius: 0;
}
.btn-group-vertical > .btn:first-child:not(:last-child) {
border-top-right-radius: 2px;
border-top-left-radius: 2px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
border-top-right-radius: 0;
border-top-left-radius: 0;
border-bottom-right-radius: 2px;
border-bottom-left-radius: 2px;
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0;
}
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.btn-group-justified {
display: table;
width: 100%;
table-layout: fixed;
border-collapse: separate;
}
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
float: none;
display: table-cell;
width: 1%;
}
.btn-group-justified > .btn-group .btn {
width: 100%;
}
.btn-group-justified > .btn-group .dropdown-menu {
left: auto;
}
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
position: absolute;
clip: rect(0, 0, 0, 0);
pointer-events: none;
}
.input-group {
position: relative;
display: table;
border-collapse: separate;
}
.input-group[class*="col-"] {
float: none;
padding-left: 0;
padding-right: 0;
}
.input-group .form-control {
position: relative;
z-index: 2;
float: left;
width: 100%;
margin-bottom: 0;
}
.input-group .form-control:focus {
z-index: 3;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
height: 45px;
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
height: 45px;
line-height: 45px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
height: 30px;
line-height: 30px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
height: auto;
}
.input-group-addon,
.input-group-btn,
.input-group .form-control {
display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
border-radius: 0;
}
.input-group-addon,
.input-group-btn {
width: 1%;
white-space: nowrap;
vertical-align: middle;
}
.input-group-addon {
padding: 6px 12px;
font-size: 13px;
font-weight: normal;
line-height: 1;
color: #555555;
text-align: center;
background-color: #eeeeee;
border: 1px solid #ccc;
border-radius: 2px;
}
.input-group-addon.input-sm {
padding: 5px 10px;
font-size: 12px;
border-radius: 1px;
}
.input-group-addon.input-lg {
padding: 10px 16px;
font-size: 17px;
border-radius: 3px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
margin-top: 0;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.input-group-addon:first-child {
border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.input-group-addon:last-child {
border-left: 0;
}
.input-group-btn {
position: relative;
font-size: 0;
white-space: nowrap;
}
.input-group-btn > .btn {
position: relative;
}
.input-group-btn > .btn + .btn {
margin-left: -1px;
}
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
z-index: 2;
}
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group {
margin-right: -1px;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
z-index: 2;
margin-left: -1px;
}
.nav {
margin-bottom: 0;
padding-left: 0;
list-style: none;
}
.nav > li {
position: relative;
display: block;
}
.nav > li > a {
position: relative;
display: block;
padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
text-decoration: none;
background-color: #eeeeee;
}
.nav > li.disabled > a {
color: #777777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
color: #777777;
text-decoration: none;
background-color: transparent;
cursor: not-allowed;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
background-color: #eeeeee;
border-color: #337ab7;
}
.nav .nav-divider {
height: 1px;
margin: 8px 0;
overflow: hidden;
background-color: #e5e5e5;
}
.nav > li > a > img {
max-width: none;
}
.nav-tabs {
border-bottom: 1px solid #ddd;
}
.nav-tabs > li {
float: left;
margin-bottom: -1px;
}
.nav-tabs > li > a {
margin-right: 2px;
line-height: 1.42857143;
border: 1px solid transparent;
border-radius: 2px 2px 0 0;
}
.nav-tabs > li > a:hover {
border-color: #eeeeee #eeeeee #ddd;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
color: #555555;
background-color: #fff;
border: 1px solid #ddd;
border-bottom-color: transparent;
cursor: default;
}
.nav-tabs.nav-justified {
width: 100%;
border-bottom: 0;
}
.nav-tabs.nav-justified > li {
float: none;
}
.nav-tabs.nav-justified > li > a {
text-align: center;
margin-bottom: 5px;
}
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
top: auto;
left: auto;
}
@media (min-width: 768px) {
.nav-tabs.nav-justified > li {
display: table-cell;
width: 1%;
}
.nav-tabs.nav-justified > li > a {
margin-bottom: 0;
}
}
.nav-tabs.nav-justified > li > a {
margin-right: 0;
border-radius: 2px;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
border: 1px solid #ddd;
}
@media (min-width: 768px) {
.nav-tabs.nav-justified > li > a {
border-bottom: 1px solid #ddd;
border-radius: 2px 2px 0 0;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
border-bottom-color: #fff;
}
}
.nav-pills > li {
float: left;
}
.nav-pills > li > a {
border-radius: 2px;
}
.nav-pills > li + li {
margin-left: 2px;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
color: #fff;
background-color: #337ab7;
}
.nav-stacked > li {
float: none;
}
.nav-stacked > li + li {
margin-top: 2px;
margin-left: 0;
}
.nav-justified {
width: 100%;
}
.nav-justified > li {
float: none;
}
.nav-justified > li > a {
text-align: center;
margin-bottom: 5px;
}
.nav-justified > .dropdown .dropdown-menu {
top: auto;
left: auto;
}
@media (min-width: 768px) {
.nav-justified > li {
display: table-cell;
width: 1%;
}
.nav-justified > li > a {
margin-bottom: 0;
}
}
.nav-tabs-justified {
border-bottom: 0;
}
.nav-tabs-justified > li > a {
margin-right: 0;
border-radius: 2px;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
border: 1px solid #ddd;
}
@media (min-width: 768px) {
.nav-tabs-justified > li > a {
border-bottom: 1px solid #ddd;
border-radius: 2px 2px 0 0;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
border-bottom-color: #fff;
}
}
.tab-content > .tab-pane {
display: none;
}
.tab-content > .active {
display: block;
}
.nav-tabs .dropdown-menu {
margin-top: -1px;
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.navbar {
position: relative;
min-height: 30px;
margin-bottom: 18px;
border: 1px solid transparent;
}
@media (min-width: 541px) {
.navbar {
border-radius: 2px;
}
}
@media (min-width: 541px) {
.navbar-header {
float: left;
}
}
.navbar-collapse {
overflow-x: visible;
padding-right: 0px;
padding-left: 0px;
border-top: 1px solid transparent;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
-webkit-overflow-scrolling: touch;
}
.navbar-collapse.in {
overflow-y: auto;
}
@media (min-width: 541px) {
.navbar-collapse {
width: auto;
border-top: 0;
box-shadow: none;
}
.navbar-collapse.collapse {
display: block !important;
height: auto !important;
padding-bottom: 0;
overflow: visible !important;
}
.navbar-collapse.in {
overflow-y: visible;
}
.navbar-fixed-top .navbar-collapse,
.navbar-static-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
padding-left: 0;
padding-right: 0;
}
}
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
max-height: 340px;
}
@media (max-device-width: 540px) and (orientation: landscape) {
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
max-height: 200px;
}
}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
margin-right: 0px;
margin-left: 0px;
}
@media (min-width: 541px) {
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
margin-right: 0;
margin-left: 0;
}
}
.navbar-static-top {
z-index: 1000;
border-width: 0 0 1px;
}
@media (min-width: 541px) {
.navbar-static-top {
border-radius: 0;
}
}
.navbar-fixed-top,
.navbar-fixed-bottom {
position: fixed;
right: 0;
left: 0;
z-index: 1030;
}
@media (min-width: 541px) {
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
}
.navbar-fixed-top {
top: 0;
border-width: 0 0 1px;
}
.navbar-fixed-bottom {
bottom: 0;
margin-bottom: 0;
border-width: 1px 0 0;
}
.navbar-brand {
float: left;
padding: 6px 0px;
font-size: 17px;
line-height: 18px;
height: 30px;
}
.navbar-brand:hover,
.navbar-brand:focus {
text-decoration: none;
}
.navbar-brand > img {
display: block;
}
@media (min-width: 541px) {
.navbar > .container .navbar-brand,
.navbar > .container-fluid .navbar-brand {
margin-left: 0px;
}
}
.navbar-toggle {
position: relative;
float: right;
margin-right: 0px;
padding: 9px 10px;
margin-top: -2px;
margin-bottom: -2px;
background-color: transparent;
background-image: none;
border: 1px solid transparent;
border-radius: 2px;
}
.navbar-toggle:focus {
outline: 0;
}
.navbar-toggle .icon-bar {
display: block;
width: 22px;
height: 2px;
border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar {
margin-top: 4px;
}
@media (min-width: 541px) {
.navbar-toggle {
display: none;
}
}
.navbar-nav {
margin: 3px 0px;
}
.navbar-nav > li > a {
padding-top: 10px;
padding-bottom: 10px;
line-height: 18px;
}
@media (max-width: 540px) {
.navbar-nav .open .dropdown-menu {
position: static;
float: none;
width: auto;
margin-top: 0;
background-color: transparent;
border: 0;
box-shadow: none;
}
.navbar-nav .open .dropdown-menu > li > a,
.navbar-nav .open .dropdown-menu .dropdown-header {
padding: 5px 15px 5px 25px;
}
.navbar-nav .open .dropdown-menu > li > a {
line-height: 18px;
}
.navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-nav .open .dropdown-menu > li > a:focus {
background-image: none;
}
}
@media (min-width: 541px) {
.navbar-nav {
float: left;
margin: 0;
}
.navbar-nav > li {
float: left;
}
.navbar-nav > li > a {
padding-top: 6px;
padding-bottom: 6px;
}
}
.navbar-form {
margin-left: 0px;
margin-right: 0px;
padding: 10px 0px;
border-top: 1px solid transparent;
border-bottom: 1px solid transparent;
-webkit-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);
margin-top: -1px;
margin-bottom: -1px;
}
@media (min-width: 768px) {
.navbar-form .form-group {
display: inline-block;
margin-bottom: 0;
vertical-align: middle;
}
.navbar-form .form-control {
display: inline-block;
width: auto;
vertical-align: middle;
}
.navbar-form .form-control-static {
display: inline-block;
}
.navbar-form .input-group {
display: inline-table;
vertical-align: middle;
}
.navbar-form .input-group .input-group-addon,
.navbar-form .input-group .input-group-btn,
.navbar-form .input-group .form-control {
width: auto;
}
.navbar-form .input-group > .form-control {
width: 100%;
}
.navbar-form .control-label {
margin-bottom: 0;
vertical-align: middle;
}
.navbar-form .radio,
.navbar-form .checkbox {
display: inline-block;
margin-top: 0;
margin-bottom: 0;
vertical-align: middle;
}
.navbar-form .radio label,
.navbar-form .checkbox label {
padding-left: 0;
}
.navbar-form .radio input[type="radio"],
.navbar-form .checkbox input[type="checkbox"] {
position: relative;
margin-left: 0;
}
.navbar-form .has-feedback .form-control-feedback {
top: 0;
}
}
@media (max-width: 540px) {
.navbar-form .form-group {
margin-bottom: 5px;
}
.navbar-form .form-group:last-child {
margin-bottom: 0;
}
}
@media (min-width: 541px) {
.navbar-form {
width: auto;
border: 0;
margin-left: 0;
margin-right: 0;
padding-top: 0;
padding-bottom: 0;
-webkit-box-shadow: none;
box-shadow: none;
}
}
.navbar-nav > li > .dropdown-menu {
margin-top: 0;
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
margin-bottom: 0;
border-top-right-radius: 2px;
border-top-left-radius: 2px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.navbar-btn {
margin-top: -1px;
margin-bottom: -1px;
}
.navbar-btn.btn-sm {
margin-top: 0px;
margin-bottom: 0px;
}
.navbar-btn.btn-xs {
margin-top: 4px;
margin-bottom: 4px;
}
.navbar-text {
margin-top: 6px;
margin-bottom: 6px;
}
@media (min-width: 541px) {
.navbar-text {
float: left;
margin-left: 0px;
margin-right: 0px;
}
}
@media (min-width: 541px) {
.navbar-left {
float: left !important;
float: left;
}
.navbar-right {
float: right !important;
float: right;
margin-right: 0px;
}
.navbar-right ~ .navbar-right {
margin-right: 0;
}
}
.navbar-default {
background-color: #f8f8f8;
border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
color: #5e5e5e;
background-color: transparent;
}
.navbar-default .navbar-text {
color: #777;
}
.navbar-default .navbar-nav > li > a {
color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
color: #333;
background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
color: #555;
background-color: #e7e7e7;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
color: #ccc;
background-color: transparent;
}
.navbar-default .navbar-toggle {
border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
background-color: #888;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
border-color: #e7e7e7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
background-color: #e7e7e7;
color: #555;
}
@media (max-width: 540px) {
.navbar-default .navbar-nav .open .dropdown-menu > li > a {
color: #777;
}
.navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
color: #333;
background-color: transparent;
}
.navbar-default .navbar-nav .open .dropdown-menu > .active > a,
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #555;
background-color: #e7e7e7;
}
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
color: #ccc;
background-color: transparent;
}
}
.navbar-default .navbar-link {
color: #777;
}
.navbar-default .navbar-link:hover {
color: #333;
}
.navbar-default .btn-link {
color: #777;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
color: #333;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
color: #ccc;
}
.navbar-inverse {
background-color: #222;
border-color: #080808;
}
.navbar-inverse .navbar-brand {
color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-text {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
color: #fff;
background-color: #080808;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
color: #444;
background-color: transparent;
}
.navbar-inverse .navbar-toggle {
border-color: #333;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
background-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
background-color: #fff;
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
border-color: #101010;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
background-color: #080808;
color: #fff;
}
@media (max-width: 540px) {
.navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
border-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu .divider {
background-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #fff;
background-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
color: #444;
background-color: transparent;
}
}
.navbar-inverse .navbar-link {
color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
color: #fff;
}
.navbar-inverse .btn-link {
color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
color: #fff;
}
.navbar-inverse .btn-link[disabled]:hover,
fieldset[disabled] .navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link[disabled]:focus,
fieldset[disabled] .navbar-inverse .btn-link:focus {
color: #444;
}
.breadcrumb {
padding: 8px 15px;
margin-bottom: 18px;
list-style: none;
background-color: #f5f5f5;
border-radius: 2px;
}
.breadcrumb > li {
display: inline-block;
}
.breadcrumb > li + li:before {
content: "/\00a0";
padding: 0 5px;
color: #5e5e5e;
}
.breadcrumb > .active {
color: #777777;
}
.pagination {
display: inline-block;
padding-left: 0;
margin: 18px 0;
border-radius: 2px;
}
.pagination > li {
display: inline;
}
.pagination > li > a,
.pagination > li > span {
position: relative;
float: left;
padding: 6px 12px;
line-height: 1.42857143;
text-decoration: none;
color: #337ab7;
background-color: #fff;
border: 1px solid #ddd;
margin-left: -1px;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
margin-left: 0;
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
border-bottom-right-radius: 2px;
border-top-right-radius: 2px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
z-index: 2;
color: #23527c;
background-color: #eeeeee;
border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
z-index: 3;
color: #fff;
background-color: #337ab7;
border-color: #337ab7;
cursor: default;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
color: #777777;
background-color: #fff;
border-color: #ddd;
cursor: not-allowed;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
border-bottom-left-radius: 3px;
border-top-left-radius: 3px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
border-bottom-right-radius: 3px;
border-top-right-radius: 3px;
}
.pagination-sm > li > a,
.pagination-sm > li > span {
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
border-bottom-left-radius: 1px;
border-top-left-radius: 1px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
border-bottom-right-radius: 1px;
border-top-right-radius: 1px;
}
.pager {
padding-left: 0;
margin: 18px 0;
list-style: none;
text-align: center;
}
.pager li {
display: inline;
}
.pager li > a,
.pager li > span {
display: inline-block;
padding: 5px 14px;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
text-decoration: none;
background-color: #eeeeee;
}
.pager .next > a,
.pager .next > span {
float: right;
}
.pager .previous > a,
.pager .previous > span {
float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
color: #777777;
background-color: #fff;
cursor: not-allowed;
}
.label {
display: inline;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: bold;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
}
a.label:hover,
a.label:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
.label:empty {
display: none;
}
.btn .label {
position: relative;
top: -1px;
}
.label-default {
background-color: #777777;
}
.label-default[href]:hover,
.label-default[href]:focus {
background-color: #5e5e5e;
}
.label-primary {
background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
background-color: #286090;
}
.label-success {
background-color: #5cb85c;
}
.label-success[href]:hover,
.label-success[href]:focus {
background-color: #449d44;
}
.label-info {
background-color: #5bc0de;
}
.label-info[href]:hover,
.label-info[href]:focus {
background-color: #31b0d5;
}
.label-warning {
background-color: #f0ad4e;
}
.label-warning[href]:hover,
.label-warning[href]:focus {
background-color: #ec971f;
}
.label-danger {
background-color: #d9534f;
}
.label-danger[href]:hover,
.label-danger[href]:focus {
background-color: #c9302c;
}
.badge {
display: inline-block;
min-width: 10px;
padding: 3px 7px;
font-size: 12px;
font-weight: bold;
color: #fff;
line-height: 1;
vertical-align: middle;
white-space: nowrap;
text-align: center;
background-color: #777777;
border-radius: 10px;
}
.badge:empty {
display: none;
}
.btn .badge {
position: relative;
top: -1px;
}
.btn-xs .badge,
.btn-group-xs > .btn .badge {
top: 0;
padding: 1px 5px;
}
a.badge:hover,
a.badge:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
color: #337ab7;
background-color: #fff;
}
.list-group-item > .badge {
float: right;
}
.list-group-item > .badge + .badge {
margin-right: 5px;
}
.nav-pills > li > a > .badge {
margin-left: 3px;
}
.jumbotron {
padding-top: 30px;
padding-bottom: 30px;
margin-bottom: 30px;
color: inherit;
background-color: #eeeeee;
}
.jumbotron h1,
.jumbotron .h1 {
color: inherit;
}
.jumbotron p {
margin-bottom: 15px;
font-size: 20px;
font-weight: 200;
}
.jumbotron > hr {
border-top-color: #d5d5d5;
}
.container .jumbotron,
.container-fluid .jumbotron {
border-radius: 3px;
padding-left: 0px;
padding-right: 0px;
}
.jumbotron .container {
max-width: 100%;
}
@media screen and (min-width: 768px) {
.jumbotron {
padding-top: 48px;
padding-bottom: 48px;
}
.container .jumbotron,
.container-fluid .jumbotron {
padding-left: 60px;
padding-right: 60px;
}
.jumbotron h1,
.jumbotron .h1 {
font-size: 59px;
}
}
.thumbnail {
display: block;
padding: 4px;
margin-bottom: 18px;
line-height: 1.42857143;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 2px;
-webkit-transition: border 0.2s ease-in-out;
-o-transition: border 0.2s ease-in-out;
transition: border 0.2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
margin-left: auto;
margin-right: auto;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
border-color: #337ab7;
}
.thumbnail .caption {
padding: 9px;
color: #000;
}
.alert {
padding: 15px;
margin-bottom: 18px;
border: 1px solid transparent;
border-radius: 2px;
}
.alert h4 {
margin-top: 0;
color: inherit;
}
.alert .alert-link {
font-weight: bold;
}
.alert > p,
.alert > ul {
margin-bottom: 0;
}
.alert > p + p {
margin-top: 5px;
}
.alert-dismissable,
.alert-dismissible {
padding-right: 35px;
}
.alert-dismissable .close,
.alert-dismissible .close {
position: relative;
top: -2px;
right: -21px;
color: inherit;
}
.alert-success {
background-color: #dff0d8;
border-color: #d6e9c6;
color: #3c763d;
}
.alert-success hr {
border-top-color: #c9e2b3;
}
.alert-success .alert-link {
color: #2b542c;
}
.alert-info {
background-color: #d9edf7;
border-color: #bce8f1;
color: #31708f;
}
.alert-info hr {
border-top-color: #a6e1ec;
}
.alert-info .alert-link {
color: #245269;
}
.alert-warning {
background-color: #fcf8e3;
border-color: #faebcc;
color: #8a6d3b;
}
.alert-warning hr {
border-top-color: #f7e1b5;
}
.alert-warning .alert-link {
color: #66512c;
}
.alert-danger {
background-color: #f2dede;
border-color: #ebccd1;
color: #a94442;
}
.alert-danger hr {
border-top-color: #e4b9c0;
}
.alert-danger .alert-link {
color: #843534;
}
@-webkit-keyframes progress-bar-stripes {
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
@keyframes progress-bar-stripes {
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
.progress {
overflow: hidden;
height: 18px;
margin-bottom: 18px;
background-color: #f5f5f5;
border-radius: 2px;
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar {
float: left;
width: 0%;
height: 100%;
font-size: 12px;
line-height: 18px;
color: #fff;
text-align: center;
background-color: #337ab7;
-webkit-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-transition: width 0.6s ease;
-o-transition: width 0.6s ease;
transition: width 0.6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
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: -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);
background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
-webkit-animation: progress-bar-stripes 2s linear infinite;
-o-animation: progress-bar-stripes 2s linear infinite;
animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 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);
}
.progress-bar-info {
background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
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: -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);
}
.progress-bar-warning {
background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
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: -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);
}
.progress-bar-danger {
background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
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: -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);
}
.media {
margin-top: 15px;
}
.media:first-child {
margin-top: 0;
}
.media,
.media-body {
zoom: 1;
overflow: hidden;
}
.media-body {
width: 10000px;
}
.media-object {
display: block;
}
.media-object.img-thumbnail {
max-width: none;
}
.media-right,
.media > .pull-right {
padding-left: 10px;
}
.media-left,
.media > .pull-left {
padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
display: table-cell;
vertical-align: top;
}
.media-middle {
vertical-align: middle;
}
.media-bottom {
vertical-align: bottom;
}
.media-heading {
margin-top: 0;
margin-bottom: 5px;
}
.media-list {
padding-left: 0;
list-style: none;
}
.list-group {
margin-bottom: 20px;
padding-left: 0;
}
.list-group-item {
position: relative;
display: block;
padding: 10px 15px;
margin-bottom: -1px;
background-color: #fff;
border: 1px solid #ddd;
}
.list-group-item:first-child {
border-top-right-radius: 2px;
border-top-left-radius: 2px;
}
.list-group-item:last-child {
margin-bottom: 0;
border-bottom-right-radius: 2px;
border-bottom-left-radius: 2px;
}
a.list-group-item,
button.list-group-item {
color: #555;
}
a.list-group-item .list-group-item-heading,
button.list-group-item .list-group-item-heading {
color: #333;
}
a.list-group-item:hover,
button.list-group-item:hover,
a.list-group-item:focus,
button.list-group-item:focus {
text-decoration: none;
color: #555;
background-color: #f5f5f5;
}
button.list-group-item {
width: 100%;
text-align: left;
}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
background-color: #eeeeee;
color: #777777;
cursor: not-allowed;
}
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
color: #777777;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
z-index: 2;
color: #fff;
background-color: #337ab7;
border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
color: #c7ddef;
}
.list-group-item-success {
color: #3c763d;
background-color: #dff0d8;
}
a.list-group-item-success,
button.list-group-item-success {
color: #3c763d;
}
a.list-group-item-success .list-group-item-heading,
button.list-group-item-success .list-group-item-heading {
color: inherit;
}
a.list-group-item-success:hover,
button.list-group-item-success:hover,
a.list-group-item-success:focus,
button.list-group-item-success:focus {
color: #3c763d;
background-color: #d0e9c6;
}
a.list-group-item-success.active,
button.list-group-item-success.active,
a.list-group-item-success.active:hover,
button.list-group-item-success.active:hover,
a.list-group-item-success.active:focus,
button.list-group-item-success.active:focus {
color: #fff;
background-color: #3c763d;
border-color: #3c763d;
}
.list-group-item-info {
color: #31708f;
background-color: #d9edf7;
}
a.list-group-item-info,
button.list-group-item-info {
color: #31708f;
}
a.list-group-item-info .list-group-item-heading,
button.list-group-item-info .list-group-item-heading {
color: inherit;
}
a.list-group-item-info:hover,
button.list-group-item-info:hover,
a.list-group-item-info:focus,
button.list-group-item-info:focus {
color: #31708f;
background-color: #c4e3f3;
}
a.list-group-item-info.active,
button.list-group-item-info.active,
a.list-group-item-info.active:hover,
button.list-group-item-info.active:hover,
a.list-group-item-info.active:focus,
button.list-group-item-info.active:focus {
color: #fff;
background-color: #31708f;
border-color: #31708f;
}
.list-group-item-warning {
color: #8a6d3b;
background-color: #fcf8e3;
}
a.list-group-item-warning,
button.list-group-item-warning {
color: #8a6d3b;
}
a.list-group-item-warning .list-group-item-heading,
button.list-group-item-warning .list-group-item-heading {
color: inherit;
}
a.list-group-item-warning:hover,
button.list-group-item-warning:hover,
a.list-group-item-warning:focus,
button.list-group-item-warning:focus {
color: #8a6d3b;
background-color: #faf2cc;
}
a.list-group-item-warning.active,
button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
button.list-group-item-warning.active:hover,
a.list-group-item-warning.active:focus,
button.list-group-item-warning.active:focus {
color: #fff;
background-color: #8a6d3b;
border-color: #8a6d3b;
}
.list-group-item-danger {
color: #a94442;
background-color: #f2dede;
}
a.list-group-item-danger,
button.list-group-item-danger {
color: #a94442;
}
a.list-group-item-danger .list-group-item-heading,
button.list-group-item-danger .list-group-item-heading {
color: inherit;
}
a.list-group-item-danger:hover,
button.list-group-item-danger:hover,
a.list-group-item-danger:focus,
button.list-group-item-danger:focus {
color: #a94442;
background-color: #ebcccc;
}
a.list-group-item-danger.active,
button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
button.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus,
button.list-group-item-danger.active:focus {
color: #fff;
background-color: #a94442;
border-color: #a94442;
}
.list-group-item-heading {
margin-top: 0;
margin-bottom: 5px;
}
.list-group-item-text {
margin-bottom: 0;
line-height: 1.3;
}
.panel {
margin-bottom: 18px;
background-color: #fff;
border: 1px solid transparent;
border-radius: 2px;
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}
.panel-body {
padding: 15px;
}
.panel-heading {
padding: 10px 15px;
border-bottom: 1px solid transparent;
border-top-right-radius: 1px;
border-top-left-radius: 1px;
}
.panel-heading > .dropdown .dropdown-toggle {
color: inherit;
}
.panel-title {
margin-top: 0;
margin-bottom: 0;
font-size: 15px;
color: inherit;
}
.panel-title > a,
.panel-title > small,
.panel-title > .small,
.panel-title > small > a,
.panel-title > .small > a {
color: inherit;
}
.panel-footer {
padding: 10px 15px;
background-color: #f5f5f5;
border-top: 1px solid #ddd;
border-bottom-right-radius: 1px;
border-bottom-left-radius: 1px;
}
.panel > .list-group,
.panel > .panel-collapse > .list-group {
margin-bottom: 0;
}
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
border-width: 1px 0;
border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
border-top: 0;
border-top-right-radius: 1px;
border-top-left-radius: 1px;
}
.panel > .list-group:last-child .list-group-item:last-child,
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
border-bottom: 0;
border-bottom-right-radius: 1px;
border-bottom-left-radius: 1px;
}
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.panel-heading + .list-group .list-group-item:first-child {
border-top-width: 0;
}
.list-group + .panel-footer {
border-top-width: 0;
}
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
padding-left: 15px;
padding-right: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
border-top-right-radius: 1px;
border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
border-top-left-radius: 1px;
border-top-right-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
border-top-right-radius: 1px;
}
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
border-bottom-right-radius: 1px;
border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
border-bottom-left-radius: 1px;
border-bottom-right-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
border-bottom-right-radius: 1px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
border-top: 0;
}
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
border: 0;
}
.panel > .table-bordered > thead > tr > th:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
.panel > .table-bordered > tbody > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
.panel > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-bordered > thead > tr > td:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
.panel > .table-bordered > tbody > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
.panel > .table-bordered > tfoot > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
border-left: 0;
}
.panel > .table-bordered > thead > tr > th:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
.panel > .table-bordered > tbody > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
.panel > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-bordered > thead > tr > td:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
.panel > .table-bordered > tbody > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
.panel > .table-bordered > tfoot > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
border-right: 0;
}
.panel > .table-bordered > thead > tr:first-child > td,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
.panel > .table-bordered > tbody > tr:first-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
.panel > .table-bordered > thead > tr:first-child > th,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
.panel > .table-bordered > tbody > tr:first-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
border-bottom: 0;
}
.panel > .table-bordered > tbody > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
.panel > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-bordered > tbody > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
.panel > .table-bordered > tfoot > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
border-bottom: 0;
}
.panel > .table-responsive {
border: 0;
margin-bottom: 0;
}
.panel-group {
margin-bottom: 18px;
}
.panel-group .panel {
margin-bottom: 0;
border-radius: 2px;
}
.panel-group .panel + .panel {
margin-top: 5px;
}
.panel-group .panel-heading {
border-bottom: 0;
}
.panel-group .panel-heading + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .list-group {
border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
border-top: 0;
}
.panel-group .panel-footer + .panel-collapse .panel-body {
border-bottom: 1px solid #ddd;
}
.panel-default {
border-color: #ddd;
}
.panel-default > .panel-heading {
color: #333333;
background-color: #f5f5f5;
border-color: #ddd;
}
.panel-default > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #ddd;
}
.panel-default > .panel-heading .badge {
color: #f5f5f5;
background-color: #333333;
}
.panel-default > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #ddd;
}
.panel-primary {
border-color: #337ab7;
}
.panel-primary > .panel-heading {
color: #fff;
background-color: #337ab7;
border-color: #337ab7;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #337ab7;
}
.panel-primary > .panel-heading .badge {
color: #337ab7;
background-color: #fff;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #337ab7;
}
.panel-success {
border-color: #d6e9c6;
}
.panel-success > .panel-heading {
color: #3c763d;
background-color: #dff0d8;
border-color: #d6e9c6;
}
.panel-success > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #d6e9c6;
}
.panel-success > .panel-heading .badge {
color: #dff0d8;
background-color: #3c763d;
}
.panel-success > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #d6e9c6;
}
.panel-info {
border-color: #bce8f1;
}
.panel-info > .panel-heading {
color: #31708f;
background-color: #d9edf7;
border-color: #bce8f1;
}
.panel-info > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #bce8f1;
}
.panel-info > .panel-heading .badge {
color: #d9edf7;
background-color: #31708f;
}
.panel-info > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #bce8f1;
}
.panel-warning {
border-color: #faebcc;
}
.panel-warning > .panel-heading {
color: #8a6d3b;
background-color: #fcf8e3;
border-color: #faebcc;
}
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #faebcc;
}
.panel-warning > .panel-heading .badge {
color: #fcf8e3;
background-color: #8a6d3b;
}
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #faebcc;
}
.panel-danger {
border-color: #ebccd1;
}
.panel-danger > .panel-heading {
color: #a94442;
background-color: #f2dede;
border-color: #ebccd1;
}
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #ebccd1;
}
.panel-danger > .panel-heading .badge {
color: #f2dede;
background-color: #a94442;
}
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #ebccd1;
}
.embed-responsive {
position: relative;
display: block;
height: 0;
padding: 0;
overflow: hidden;
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
position: absolute;
top: 0;
left: 0;
bottom: 0;
height: 100%;
width: 100%;
border: 0;
}
.embed-responsive-16by9 {
padding-bottom: 56.25%;
}
.embed-responsive-4by3 {
padding-bottom: 75%;
}
.well {
min-height: 20px;
padding: 19px;
margin-bottom: 20px;
background-color: #f5f5f5;
border: 1px solid #e3e3e3;
border-radius: 2px;
-webkit-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);
}
.well-lg {
padding: 24px;
border-radius: 3px;
}
.well-sm {
padding: 9px;
border-radius: 1px;
}
.close {
float: right;
font-size: 19.5px;
font-weight: bold;
line-height: 1;
color: #000;
text-shadow: 0 1px 0 #fff;
opacity: 0.2;
filter: alpha(opacity=20);
}
.close:hover,
.close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
opacity: 0.5;
filter: alpha(opacity=50);
}
button.close {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
.modal-open {
overflow: hidden;
}
.modal {
display: none;
overflow: hidden;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1050;
-webkit-overflow-scrolling: touch;
outline: 0;
}
.modal.fade .modal-dialog {
-webkit-transform: translate(0, -25%);
-ms-transform: translate(0, -25%);
-o-transform: translate(0, -25%);
transform: translate(0, -25%);
-webkit-transition: -webkit-transform 0.3s ease-out;
-moz-transition: -moz-transform 0.3s ease-out;
-o-transition: -o-transform 0.3s ease-out;
transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
-o-transform: translate(0, 0);
transform: translate(0, 0);
}
.modal-open .modal {
overflow-x: hidden;
overflow-y: auto;
}
.modal-dialog {
position: relative;
width: auto;
margin: 10px;
}
.modal-content {
position: relative;
background-color: #fff;
border: 1px solid #999;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 3px;
-webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
background-clip: padding-box;
outline: 0;
}
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
background-color: #000;
}
.modal-backdrop.fade {
opacity: 0;
filter: alpha(opacity=0);
}
.modal-backdrop.in {
opacity: 0.5;
filter: alpha(opacity=50);
}
.modal-header {
padding: 15px;
border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
margin-top: -2px;
}
.modal-title {
margin: 0;
line-height: 1.42857143;
}
.modal-body {
position: relative;
padding: 15px;
}
.modal-footer {
padding: 15px;
text-align: right;
border-top: 1px solid #e5e5e5;
}
.modal-footer .btn + .btn {
margin-left: 5px;
margin-bottom: 0;
}
.modal-footer .btn-group .btn + .btn {
margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
margin-left: 0;
}
.modal-scrollbar-measure {
position: absolute;
top: -9999px;
width: 50px;
height: 50px;
overflow: scroll;
}
@media (min-width: 768px) {
.modal-dialog {
width: 600px;
margin: 30px auto;
}
.modal-content {
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
}
.modal-sm {
width: 300px;
}
}
@media (min-width: 992px) {
.modal-lg {
width: 900px;
}
}
.tooltip {
position: absolute;
z-index: 1070;
display: block;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-style: normal;
font-weight: normal;
letter-spacing: normal;
line-break: auto;
line-height: 1.42857143;
text-align: left;
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
white-space: normal;
word-break: normal;
word-spacing: normal;
word-wrap: normal;
font-size: 12px;
opacity: 0;
filter: alpha(opacity=0);
}
.tooltip.in {
opacity: 0.9;
filter: alpha(opacity=90);
}
.tooltip.top {
margin-top: -3px;
padding: 5px 0;
}
.tooltip.right {
margin-left: 3px;
padding: 0 5px;
}
.tooltip.bottom {
margin-top: 3px;
padding: 5px 0;
}
.tooltip.left {
margin-left: -3px;
padding: 0 5px;
}
.tooltip-inner {
max-width: 200px;
padding: 3px 8px;
color: #fff;
text-align: center;
background-color: #000;
border-radius: 2px;
}
.tooltip-arrow {
position: absolute;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.tooltip.top .tooltip-arrow {
bottom: 0;
left: 50%;
margin-left: -5px;
border-width: 5px 5px 0;
border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
bottom: 0;
right: 5px;
margin-bottom: -5px;
border-width: 5px 5px 0;
border-top-color: #000;
}
.tooltip.top-right .tooltip-arrow {
bottom: 0;
left: 5px;
margin-bottom: -5px;
border-width: 5px 5px 0;
border-top-color: #000;
}
.tooltip.right .tooltip-arrow {
top: 50%;
left: 0;
margin-top: -5px;
border-width: 5px 5px 5px 0;
border-right-color: #000;
}
.tooltip.left .tooltip-arrow {
top: 50%;
right: 0;
margin-top: -5px;
border-width: 5px 0 5px 5px;
border-left-color: #000;
}
.tooltip.bottom .tooltip-arrow {
top: 0;
left: 50%;
margin-left: -5px;
border-width: 0 5px 5px;
border-bottom-color: #000;
}
.tooltip.bottom-left .tooltip-arrow {
top: 0;
right: 5px;
margin-top: -5px;
border-width: 0 5px 5px;
border-bottom-color: #000;
}
.tooltip.bottom-right .tooltip-arrow {
top: 0;
left: 5px;
margin-top: -5px;
border-width: 0 5px 5px;
border-bottom-color: #000;
}
.popover {
position: absolute;
top: 0;
left: 0;
z-index: 1060;
display: none;
max-width: 276px;
padding: 1px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-style: normal;
font-weight: normal;
letter-spacing: normal;
line-break: auto;
line-height: 1.42857143;
text-align: left;
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
white-space: normal;
word-break: normal;
word-spacing: normal;
word-wrap: normal;
font-size: 13px;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 3px;
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.popover.top {
margin-top: -10px;
}
.popover.right {
margin-left: 10px;
}
.popover.bottom {
margin-top: 10px;
}
.popover.left {
margin-left: -10px;
}
.popover-title {
margin: 0;
padding: 8px 14px;
font-size: 13px;
background-color: #f7f7f7;
border-bottom: 1px solid #ebebeb;
border-radius: 2px 2px 0 0;
}
.popover-content {
padding: 9px 14px;
}
.popover > .arrow,
.popover > .arrow:after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.popover > .arrow {
border-width: 11px;
}
.popover > .arrow:after {
border-width: 10px;
content: "";
}
.popover.top > .arrow {
left: 50%;
margin-left: -11px;
border-bottom-width: 0;
border-top-color: #999999;
border-top-color: rgba(0, 0, 0, 0.25);
bottom: -11px;
}
.popover.top > .arrow:after {
content: " ";
bottom: 1px;
margin-left: -10px;
border-bottom-width: 0;
border-top-color: #fff;
}
.popover.right > .arrow {
top: 50%;
left: -11px;
margin-top: -11px;
border-left-width: 0;
border-right-color: #999999;
border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.right > .arrow:after {
content: " ";
left: 1px;
bottom: -10px;
border-left-width: 0;
border-right-color: #fff;
}
.popover.bottom > .arrow {
left: 50%;
margin-left: -11px;
border-top-width: 0;
border-bottom-color: #999999;
border-bottom-color: rgba(0, 0, 0, 0.25);
top: -11px;
}
.popover.bottom > .arrow:after {
content: " ";
top: 1px;
margin-left: -10px;
border-top-width: 0;
border-bottom-color: #fff;
}
.popover.left > .arrow {
top: 50%;
right: -11px;
margin-top: -11px;
border-right-width: 0;
border-left-color: #999999;
border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.left > .arrow:after {
content: " ";
right: 1px;
border-right-width: 0;
border-left-color: #fff;
bottom: -10px;
}
.carousel {
position: relative;
}
.carousel-inner {
position: relative;
overflow: hidden;
width: 100%;
}
.carousel-inner > .item {
display: none;
position: relative;
-webkit-transition: 0.6s ease-in-out left;
-o-transition: 0.6s ease-in-out left;
transition: 0.6s ease-in-out left;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
line-height: 1;
}
@media all and (transform-3d), (-webkit-transform-3d) {
.carousel-inner > .item {
-webkit-transition: -webkit-transform 0.6s ease-in-out;
-moz-transition: -moz-transform 0.6s ease-in-out;
-o-transition: -o-transform 0.6s ease-in-out;
transition: transform 0.6s ease-in-out;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-perspective: 1000px;
-moz-perspective: 1000px;
perspective: 1000px;
}
.carousel-inner > .item.next,
.carousel-inner > .item.active.right {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
left: 0;
}
.carousel-inner > .item.prev,
.carousel-inner > .item.active.left {
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
left: 0;
}
.carousel-inner > .item.next.left,
.carousel-inner > .item.prev.right,
.carousel-inner > .item.active {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
left: 0;
}
}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
display: block;
}
.carousel-inner > .active {
left: 0;
}
.carousel-inner > .next,
.carousel-inner > .prev {
position: absolute;
top: 0;
width: 100%;
}
.carousel-inner > .next {
left: 100%;
}
.carousel-inner > .prev {
left: -100%;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
left: 0;
}
.carousel-inner > .active.left {
left: -100%;
}
.carousel-inner > .active.right {
left: 100%;
}
.carousel-control {
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 15%;
opacity: 0.5;
filter: alpha(opacity=50);
font-size: 20px;
color: #fff;
text-align: center;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
background-color: rgba(0, 0, 0, 0);
}
.carousel-control.left {
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
}
.carousel-control.right {
left: auto;
right: 0;
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
}
.carousel-control:hover,
.carousel-control:focus {
outline: 0;
color: #fff;
text-decoration: none;
opacity: 0.9;
filter: alpha(opacity=90);
}
.carousel-control .icon-prev,
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right {
position: absolute;
top: 50%;
margin-top: -10px;
z-index: 5;
display: inline-block;
}
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
left: 50%;
margin-left: -10px;
}
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
right: 50%;
margin-right: -10px;
}
.carousel-control .icon-prev,
.carousel-control .icon-next {
width: 20px;
height: 20px;
line-height: 1;
font-family: serif;
}
.carousel-control .icon-prev:before {
content: '\2039';
}
.carousel-control .icon-next:before {
content: '\203a';
}
.carousel-indicators {
position: absolute;
bottom: 10px;
left: 50%;
z-index: 15;
width: 60%;
margin-left: -30%;
padding-left: 0;
list-style: none;
text-align: center;
}
.carousel-indicators li {
display: inline-block;
width: 10px;
height: 10px;
margin: 1px;
text-indent: -999px;
border: 1px solid #fff;
border-radius: 10px;
cursor: pointer;
background-color: #000 \9;
background-color: rgba(0, 0, 0, 0);
}
.carousel-indicators .active {
margin: 0;
width: 12px;
height: 12px;
background-color: #fff;
}
.carousel-caption {
position: absolute;
left: 15%;
right: 15%;
bottom: 20px;
z-index: 10;
padding-top: 20px;
padding-bottom: 20px;
color: #fff;
text-align: center;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.carousel-caption .btn {
text-shadow: none;
}
@media screen and (min-width: 768px) {
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right,
.carousel-control .icon-prev,
.carousel-control .icon-next {
width: 30px;
height: 30px;
margin-top: -10px;
font-size: 30px;
}
.carousel-control .glyphicon-chevron-left,
.carousel-control .icon-prev {
margin-left: -10px;
}
.carousel-control .glyphicon-chevron-right,
.carousel-control .icon-next {
margin-right: -10px;
}
.carousel-caption {
left: 20%;
right: 20%;
padding-bottom: 30px;
}
.carousel-indicators {
bottom: 20px;
}
}
.clearfix:before,
.clearfix:after,
.dl-horizontal dd:before,
.dl-horizontal dd:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after,
.btn-toolbar:before,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after,
.pager:before,
.pager:after,
.panel-body:before,
.panel-body:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after,
.item_buttons:before,
.item_buttons:after {
content: " ";
display: table;
}
.clearfix:after,
.dl-horizontal dd:after,
.container:after,
.container-fluid:after,
.row:after,
.form-horizontal .form-group:after,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:after,
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after,
.pager:after,
.panel-body:after,
.modal-header:after,
.modal-footer:after,
.item_buttons:after {
clear: both;
}
.center-block {
display: block;
margin-left: auto;
margin-right: auto;
}
.pull-right {
float: right !important;
}
.pull-left {
float: left !important;
}
.hide {
display: none !important;
}
.show {
display: block !important;
}
.invisible {
visibility: hidden;
}
.text-hide {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.hidden {
display: none !important;
}
.affix {
position: fixed;
}
@-ms-viewport {
width: device-width;
}
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
display: none !important;
}
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
display: none !important;
}
@media (max-width: 767px) {
.visible-xs {
display: block !important;
}
table.visible-xs {
display: table !important;
}
tr.visible-xs {
display: table-row !important;
}
th.visible-xs,
td.visible-xs {
display: table-cell !important;
}
}
@media (max-width: 767px) {
.visible-xs-block {
display: block !important;
}
}
@media (max-width: 767px) {
.visible-xs-inline {
display: inline !important;
}
}
@media (max-width: 767px) {
.visible-xs-inline-block {
display: inline-block !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm {
display: block !important;
}
table.visible-sm {
display: table !important;
}
tr.visible-sm {
display: table-row !important;
}
th.visible-sm,
td.visible-sm {
display: table-cell !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-block {
display: block !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-inline {
display: inline !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-inline-block {
display: inline-block !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md {
display: block !important;
}
table.visible-md {
display: table !important;
}
tr.visible-md {
display: table-row !important;
}
th.visible-md,
td.visible-md {
display: table-cell !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-block {
display: block !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-inline {
display: inline !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-inline-block {
display: inline-block !important;
}
}
@media (min-width: 1200px) {
.visible-lg {
display: block !important;
}
table.visible-lg {
display: table !important;
}
tr.visible-lg {
display: table-row !important;
}
th.visible-lg,
td.visible-lg {
display: table-cell !important;
}
}
@media (min-width: 1200px) {
.visible-lg-block {
display: block !important;
}
}
@media (min-width: 1200px) {
.visible-lg-inline {
display: inline !important;
}
}
@media (min-width: 1200px) {
.visible-lg-inline-block {
display: inline-block !important;
}
}
@media (max-width: 767px) {
.hidden-xs {
display: none !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.hidden-sm {
display: none !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.hidden-md {
display: none !important;
}
}
@media (min-width: 1200px) {
.hidden-lg {
display: none !important;
}
}
.visible-print {
display: none !important;
}
@media print {
.visible-print {
display: block !important;
}
table.visible-print {
display: table !important;
}
tr.visible-print {
display: table-row !important;
}
th.visible-print,
td.visible-print {
display: table-cell !important;
}
}
.visible-print-block {
display: none !important;
}
@media print {
.visible-print-block {
display: block !important;
}
}
.visible-print-inline {
display: none !important;
}
@media print {
.visible-print-inline {
display: inline !important;
}
}
.visible-print-inline-block {
display: none !important;
}
@media print {
.visible-print-inline-block {
display: inline-block !important;
}
}
@media print {
.hidden-print {
display: none !important;
}
}
/*!
*
* Font Awesome
*
*/
/*!
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'FontAwesome';
src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0');
src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
font-weight: normal;
font-style: normal;
}
.fa {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
font-size: 1.33333333em;
line-height: 0.75em;
vertical-align: -15%;
}
.fa-2x {
font-size: 2em;
}
.fa-3x {
font-size: 3em;
}
.fa-4x {
font-size: 4em;
}
.fa-5x {
font-size: 5em;
}
.fa-fw {
width: 1.28571429em;
text-align: center;
}
.fa-ul {
padding-left: 0;
margin-left: 2.14285714em;
list-style-type: none;
}
.fa-ul > li {
position: relative;
}
.fa-li {
position: absolute;
left: -2.14285714em;
width: 2.14285714em;
top: 0.14285714em;
text-align: center;
}
.fa-li.fa-lg {
left: -1.85714286em;
}
.fa-border {
padding: .2em .25em .15em;
border: solid 0.08em #eee;
border-radius: .1em;
}
.fa-pull-left {
float: left;
}
.fa-pull-right {
float: right;
}
.fa.fa-pull-left {
margin-right: .3em;
}
.fa.fa-pull-right {
margin-left: .3em;
}
/* Deprecated as of 4.4.0 */
.pull-right {
float: right;
}
.pull-left {
float: left;
}
.fa.pull-left {
margin-right: .3em;
}
.fa.pull-right {
margin-left: .3em;
}
.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;
}
.fa-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8);
}
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
.fa-rotate-90 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.fa-rotate-180 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.fa-rotate-270 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.fa-flip-horizontal {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
-webkit-transform: scale(-1, 1);
-ms-transform: scale(-1, 1);
transform: scale(-1, 1);
}
.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(1, -1);
-ms-transform: scale(1, -1);
transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
filter: none;
}
.fa-stack {
position: relative;
display: inline-block;
width: 2em;
height: 2em;
line-height: 2em;
vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
position: absolute;
left: 0;
width: 100%;
text-align: center;
}
.fa-stack-1x {
line-height: inherit;
}
.fa-stack-2x {
font-size: 2em;
}
.fa-inverse {
color: #fff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.fa-glass:before {
content: "\f000";
}
.fa-music:before {
content: "\f001";
}
.fa-search:before {
content: "\f002";
}
.fa-envelope-o:before {
content: "\f003";
}
.fa-heart:before {
content: "\f004";
}
.fa-star:before {
content: "\f005";
}
.fa-star-o:before {
content: "\f006";
}
.fa-user:before {
content: "\f007";
}
.fa-film:before {
content: "\f008";
}
.fa-th-large:before {
content: "\f009";
}
.fa-th:before {
content: "\f00a";
}
.fa-th-list:before {
content: "\f00b";
}
.fa-check:before {
content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
content: "\f00d";
}
.fa-search-plus:before {
content: "\f00e";
}
.fa-search-minus:before {
content: "\f010";
}
.fa-power-off:before {
content: "\f011";
}
.fa-signal:before {
content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
content: "\f013";
}
.fa-trash-o:before {
content: "\f014";
}
.fa-home:before {
content: "\f015";
}
.fa-file-o:before {
content: "\f016";
}
.fa-clock-o:before {
content: "\f017";
}
.fa-road:before {
content: "\f018";
}
.fa-download:before {
content: "\f019";
}
.fa-arrow-circle-o-down:before {
content: "\f01a";
}
.fa-arrow-circle-o-up:before {
content: "\f01b";
}
.fa-inbox:before {
content: "\f01c";
}
.fa-play-circle-o:before {
content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
content: "\f01e";
}
.fa-refresh:before {
content: "\f021";
}
.fa-list-alt:before {
content: "\f022";
}
.fa-lock:before {
content: "\f023";
}
.fa-flag:before {
content: "\f024";
}
.fa-headphones:before {
content: "\f025";
}
.fa-volume-off:before {
content: "\f026";
}
.fa-volume-down:before {
content: "\f027";
}
.fa-volume-up:before {
content: "\f028";
}
.fa-qrcode:before {
content: "\f029";
}
.fa-barcode:before {
content: "\f02a";
}
.fa-tag:before {
content: "\f02b";
}
.fa-tags:before {
content: "\f02c";
}
.fa-book:before {
content: "\f02d";
}
.fa-bookmark:before {
content: "\f02e";
}
.fa-print:before {
content: "\f02f";
}
.fa-camera:before {
content: "\f030";
}
.fa-font:before {
content: "\f031";
}
.fa-bold:before {
content: "\f032";
}
.fa-italic:before {
content: "\f033";
}
.fa-text-height:before {
content: "\f034";
}
.fa-text-width:before {
content: "\f035";
}
.fa-align-left:before {
content: "\f036";
}
.fa-align-center:before {
content: "\f037";
}
.fa-align-right:before {
content: "\f038";
}
.fa-align-justify:before {
content: "\f039";
}
.fa-list:before {
content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
content: "\f03b";
}
.fa-indent:before {
content: "\f03c";
}
.fa-video-camera:before {
content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
content: "\f03e";
}
.fa-pencil:before {
content: "\f040";
}
.fa-map-marker:before {
content: "\f041";
}
.fa-adjust:before {
content: "\f042";
}
.fa-tint:before {
content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
content: "\f044";
}
.fa-share-square-o:before {
content: "\f045";
}
.fa-check-square-o:before {
content: "\f046";
}
.fa-arrows:before {
content: "\f047";
}
.fa-step-backward:before {
content: "\f048";
}
.fa-fast-backward:before {
content: "\f049";
}
.fa-backward:before {
content: "\f04a";
}
.fa-play:before {
content: "\f04b";
}
.fa-pause:before {
content: "\f04c";
}
.fa-stop:before {
content: "\f04d";
}
.fa-forward:before {
content: "\f04e";
}
.fa-fast-forward:before {
content: "\f050";
}
.fa-step-forward:before {
content: "\f051";
}
.fa-eject:before {
content: "\f052";
}
.fa-chevron-left:before {
content: "\f053";
}
.fa-chevron-right:before {
content: "\f054";
}
.fa-plus-circle:before {
content: "\f055";
}
.fa-minus-circle:before {
content: "\f056";
}
.fa-times-circle:before {
content: "\f057";
}
.fa-check-circle:before {
content: "\f058";
}
.fa-question-circle:before {
content: "\f059";
}
.fa-info-circle:before {
content: "\f05a";
}
.fa-crosshairs:before {
content: "\f05b";
}
.fa-times-circle-o:before {
content: "\f05c";
}
.fa-check-circle-o:before {
content: "\f05d";
}
.fa-ban:before {
content: "\f05e";
}
.fa-arrow-left:before {
content: "\f060";
}
.fa-arrow-right:before {
content: "\f061";
}
.fa-arrow-up:before {
content: "\f062";
}
.fa-arrow-down:before {
content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
content: "\f064";
}
.fa-expand:before {
content: "\f065";
}
.fa-compress:before {
content: "\f066";
}
.fa-plus:before {
content: "\f067";
}
.fa-minus:before {
content: "\f068";
}
.fa-asterisk:before {
content: "\f069";
}
.fa-exclamation-circle:before {
content: "\f06a";
}
.fa-gift:before {
content: "\f06b";
}
.fa-leaf:before {
content: "\f06c";
}
.fa-fire:before {
content: "\f06d";
}
.fa-eye:before {
content: "\f06e";
}
.fa-eye-slash:before {
content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
content: "\f071";
}
.fa-plane:before {
content: "\f072";
}
.fa-calendar:before {
content: "\f073";
}
.fa-random:before {
content: "\f074";
}
.fa-comment:before {
content: "\f075";
}
.fa-magnet:before {
content: "\f076";
}
.fa-chevron-up:before {
content: "\f077";
}
.fa-chevron-down:before {
content: "\f078";
}
.fa-retweet:before {
content: "\f079";
}
.fa-shopping-cart:before {
content: "\f07a";
}
.fa-folder:before {
content: "\f07b";
}
.fa-folder-open:before {
content: "\f07c";
}
.fa-arrows-v:before {
content: "\f07d";
}
.fa-arrows-h:before {
content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
content: "\f080";
}
.fa-twitter-square:before {
content: "\f081";
}
.fa-facebook-square:before {
content: "\f082";
}
.fa-camera-retro:before {
content: "\f083";
}
.fa-key:before {
content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
content: "\f085";
}
.fa-comments:before {
content: "\f086";
}
.fa-thumbs-o-up:before {
content: "\f087";
}
.fa-thumbs-o-down:before {
content: "\f088";
}
.fa-star-half:before {
content: "\f089";
}
.fa-heart-o:before {
content: "\f08a";
}
.fa-sign-out:before {
content: "\f08b";
}
.fa-linkedin-square:before {
content: "\f08c";
}
.fa-thumb-tack:before {
content: "\f08d";
}
.fa-external-link:before {
content: "\f08e";
}
.fa-sign-in:before {
content: "\f090";
}
.fa-trophy:before {
content: "\f091";
}
.fa-github-square:before {
content: "\f092";
}
.fa-upload:before {
content: "\f093";
}
.fa-lemon-o:before {
content: "\f094";
}
.fa-phone:before {
content: "\f095";
}
.fa-square-o:before {
content: "\f096";
}
.fa-bookmark-o:before {
content: "\f097";
}
.fa-phone-square:before {
content: "\f098";
}
.fa-twitter:before {
content: "\f099";
}
.fa-facebook-f:before,
.fa-facebook:before {
content: "\f09a";
}
.fa-github:before {
content: "\f09b";
}
.fa-unlock:before {
content: "\f09c";
}
.fa-credit-card:before {
content: "\f09d";
}
.fa-feed:before,
.fa-rss:before {
content: "\f09e";
}
.fa-hdd-o:before {
content: "\f0a0";
}
.fa-bullhorn:before {
content: "\f0a1";
}
.fa-bell:before {
content: "\f0f3";
}
.fa-certificate:before {
content: "\f0a3";
}
.fa-hand-o-right:before {
content: "\f0a4";
}
.fa-hand-o-left:before {
content: "\f0a5";
}
.fa-hand-o-up:before {
content: "\f0a6";
}
.fa-hand-o-down:before {
content: "\f0a7";
}
.fa-arrow-circle-left:before {
content: "\f0a8";
}
.fa-arrow-circle-right:before {
content: "\f0a9";
}
.fa-arrow-circle-up:before {
content: "\f0aa";
}
.fa-arrow-circle-down:before {
content: "\f0ab";
}
.fa-globe:before {
content: "\f0ac";
}
.fa-wrench:before {
content: "\f0ad";
}
.fa-tasks:before {
content: "\f0ae";
}
.fa-filter:before {
content: "\f0b0";
}
.fa-briefcase:before {
content: "\f0b1";
}
.fa-arrows-alt:before {
content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
content: "\f0c1";
}
.fa-cloud:before {
content: "\f0c2";
}
.fa-flask:before {
content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
content: "\f0c5";
}
.fa-paperclip:before {
content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
content: "\f0c7";
}
.fa-square:before {
content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
content: "\f0c9";
}
.fa-list-ul:before {
content: "\f0ca";
}
.fa-list-ol:before {
content: "\f0cb";
}
.fa-strikethrough:before {
content: "\f0cc";
}
.fa-underline:before {
content: "\f0cd";
}
.fa-table:before {
content: "\f0ce";
}
.fa-magic:before {
content: "\f0d0";
}
.fa-truck:before {
content: "\f0d1";
}
.fa-pinterest:before {
content: "\f0d2";
}
.fa-pinterest-square:before {
content: "\f0d3";
}
.fa-google-plus-square:before {
content: "\f0d4";
}
.fa-google-plus:before {
content: "\f0d5";
}
.fa-money:before {
content: "\f0d6";
}
.fa-caret-down:before {
content: "\f0d7";
}
.fa-caret-up:before {
content: "\f0d8";
}
.fa-caret-left:before {
content: "\f0d9";
}
.fa-caret-right:before {
content: "\f0da";
}
.fa-columns:before {
content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
content: "\f0de";
}
.fa-envelope:before {
content: "\f0e0";
}
.fa-linkedin:before {
content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
content: "\f0e4";
}
.fa-comment-o:before {
content: "\f0e5";
}
.fa-comments-o:before {
content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
content: "\f0e7";
}
.fa-sitemap:before {
content: "\f0e8";
}
.fa-umbrella:before {
content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
content: "\f0ea";
}
.fa-lightbulb-o:before {
content: "\f0eb";
}
.fa-exchange:before {
content: "\f0ec";
}
.fa-cloud-download:before {
content: "\f0ed";
}
.fa-cloud-upload:before {
content: "\f0ee";
}
.fa-user-md:before {
content: "\f0f0";
}
.fa-stethoscope:before {
content: "\f0f1";
}
.fa-suitcase:before {
content: "\f0f2";
}
.fa-bell-o:before {
content: "\f0a2";
}
.fa-coffee:before {
content: "\f0f4";
}
.fa-cutlery:before {
content: "\f0f5";
}
.fa-file-text-o:before {
content: "\f0f6";
}
.fa-building-o:before {
content: "\f0f7";
}
.fa-hospital-o:before {
content: "\f0f8";
}
.fa-ambulance:before {
content: "\f0f9";
}
.fa-medkit:before {
content: "\f0fa";
}
.fa-fighter-jet:before {
content: "\f0fb";
}
.fa-beer:before {
content: "\f0fc";
}
.fa-h-square:before {
content: "\f0fd";
}
.fa-plus-square:before {
content: "\f0fe";
}
.fa-angle-double-left:before {
content: "\f100";
}
.fa-angle-double-right:before {
content: "\f101";
}
.fa-angle-double-up:before {
content: "\f102";
}
.fa-angle-double-down:before {
content: "\f103";
}
.fa-angle-left:before {
content: "\f104";
}
.fa-angle-right:before {
content: "\f105";
}
.fa-angle-up:before {
content: "\f106";
}
.fa-angle-down:before {
content: "\f107";
}
.fa-desktop:before {
content: "\f108";
}
.fa-laptop:before {
content: "\f109";
}
.fa-tablet:before {
content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
content: "\f10b";
}
.fa-circle-o:before {
content: "\f10c";
}
.fa-quote-left:before {
content: "\f10d";
}
.fa-quote-right:before {
content: "\f10e";
}
.fa-spinner:before {
content: "\f110";
}
.fa-circle:before {
content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
content: "\f112";
}
.fa-github-alt:before {
content: "\f113";
}
.fa-folder-o:before {
content: "\f114";
}
.fa-folder-open-o:before {
content: "\f115";
}
.fa-smile-o:before {
content: "\f118";
}
.fa-frown-o:before {
content: "\f119";
}
.fa-meh-o:before {
content: "\f11a";
}
.fa-gamepad:before {
content: "\f11b";
}
.fa-keyboard-o:before {
content: "\f11c";
}
.fa-flag-o:before {
content: "\f11d";
}
.fa-flag-checkered:before {
content: "\f11e";
}
.fa-terminal:before {
content: "\f120";
}
.fa-code:before {
content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
content: "\f123";
}
.fa-location-arrow:before {
content: "\f124";
}
.fa-crop:before {
content: "\f125";
}
.fa-code-fork:before {
content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
content: "\f127";
}
.fa-question:before {
content: "\f128";
}
.fa-info:before {
content: "\f129";
}
.fa-exclamation:before {
content: "\f12a";
}
.fa-superscript:before {
content: "\f12b";
}
.fa-subscript:before {
content: "\f12c";
}
.fa-eraser:before {
content: "\f12d";
}
.fa-puzzle-piece:before {
content: "\f12e";
}
.fa-microphone:before {
content: "\f130";
}
.fa-microphone-slash:before {
content: "\f131";
}
.fa-shield:before {
content: "\f132";
}
.fa-calendar-o:before {
content: "\f133";
}
.fa-fire-extinguisher:before {
content: "\f134";
}
.fa-rocket:before {
content: "\f135";
}
.fa-maxcdn:before {
content: "\f136";
}
.fa-chevron-circle-left:before {
content: "\f137";
}
.fa-chevron-circle-right:before {
content: "\f138";
}
.fa-chevron-circle-up:before {
content: "\f139";
}
.fa-chevron-circle-down:before {
content: "\f13a";
}
.fa-html5:before {
content: "\f13b";
}
.fa-css3:before {
content: "\f13c";
}
.fa-anchor:before {
content: "\f13d";
}
.fa-unlock-alt:before {
content: "\f13e";
}
.fa-bullseye:before {
content: "\f140";
}
.fa-ellipsis-h:before {
content: "\f141";
}
.fa-ellipsis-v:before {
content: "\f142";
}
.fa-rss-square:before {
content: "\f143";
}
.fa-play-circle:before {
content: "\f144";
}
.fa-ticket:before {
content: "\f145";
}
.fa-minus-square:before {
content: "\f146";
}
.fa-minus-square-o:before {
content: "\f147";
}
.fa-level-up:before {
content: "\f148";
}
.fa-level-down:before {
content: "\f149";
}
.fa-check-square:before {
content: "\f14a";
}
.fa-pencil-square:before {
content: "\f14b";
}
.fa-external-link-square:before {
content: "\f14c";
}
.fa-share-square:before {
content: "\f14d";
}
.fa-compass:before {
content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
content: "\f153";
}
.fa-gbp:before {
content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
content: "\f158";
}
.fa-won:before,
.fa-krw:before {
content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
content: "\f15a";
}
.fa-file:before {
content: "\f15b";
}
.fa-file-text:before {
content: "\f15c";
}
.fa-sort-alpha-asc:before {
content: "\f15d";
}
.fa-sort-alpha-desc:before {
content: "\f15e";
}
.fa-sort-amount-asc:before {
content: "\f160";
}
.fa-sort-amount-desc:before {
content: "\f161";
}
.fa-sort-numeric-asc:before {
content: "\f162";
}
.fa-sort-numeric-desc:before {
content: "\f163";
}
.fa-thumbs-up:before {
content: "\f164";
}
.fa-thumbs-down:before {
content: "\f165";
}
.fa-youtube-square:before {
content: "\f166";
}
.fa-youtube:before {
content: "\f167";
}
.fa-xing:before {
content: "\f168";
}
.fa-xing-square:before {
content: "\f169";
}
.fa-youtube-play:before {
content: "\f16a";
}
.fa-dropbox:before {
content: "\f16b";
}
.fa-stack-overflow:before {
content: "\f16c";
}
.fa-instagram:before {
content: "\f16d";
}
.fa-flickr:before {
content: "\f16e";
}
.fa-adn:before {
content: "\f170";
}
.fa-bitbucket:before {
content: "\f171";
}
.fa-bitbucket-square:before {
content: "\f172";
}
.fa-tumblr:before {
content: "\f173";
}
.fa-tumblr-square:before {
content: "\f174";
}
.fa-long-arrow-down:before {
content: "\f175";
}
.fa-long-arrow-up:before {
content: "\f176";
}
.fa-long-arrow-left:before {
content: "\f177";
}
.fa-long-arrow-right:before {
content: "\f178";
}
.fa-apple:before {
content: "\f179";
}
.fa-windows:before {
content: "\f17a";
}
.fa-android:before {
content: "\f17b";
}
.fa-linux:before {
content: "\f17c";
}
.fa-dribbble:before {
content: "\f17d";
}
.fa-skype:before {
content: "\f17e";
}
.fa-foursquare:before {
content: "\f180";
}
.fa-trello:before {
content: "\f181";
}
.fa-female:before {
content: "\f182";
}
.fa-male:before {
content: "\f183";
}
.fa-gittip:before,
.fa-gratipay:before {
content: "\f184";
}
.fa-sun-o:before {
content: "\f185";
}
.fa-moon-o:before {
content: "\f186";
}
.fa-archive:before {
content: "\f187";
}
.fa-bug:before {
content: "\f188";
}
.fa-vk:before {
content: "\f189";
}
.fa-weibo:before {
content: "\f18a";
}
.fa-renren:before {
content: "\f18b";
}
.fa-pagelines:before {
content: "\f18c";
}
.fa-stack-exchange:before {
content: "\f18d";
}
.fa-arrow-circle-o-right:before {
content: "\f18e";
}
.fa-arrow-circle-o-left:before {
content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
content: "\f191";
}
.fa-dot-circle-o:before {
content: "\f192";
}
.fa-wheelchair:before {
content: "\f193";
}
.fa-vimeo-square:before {
content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
content: "\f195";
}
.fa-plus-square-o:before {
content: "\f196";
}
.fa-space-shuttle:before {
content: "\f197";
}
.fa-slack:before {
content: "\f198";
}
.fa-envelope-square:before {
content: "\f199";
}
.fa-wordpress:before {
content: "\f19a";
}
.fa-openid:before {
content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
content: "\f19d";
}
.fa-yahoo:before {
content: "\f19e";
}
.fa-google:before {
content: "\f1a0";
}
.fa-reddit:before {
content: "\f1a1";
}
.fa-reddit-square:before {
content: "\f1a2";
}
.fa-stumbleupon-circle:before {
content: "\f1a3";
}
.fa-stumbleupon:before {
content: "\f1a4";
}
.fa-delicious:before {
content: "\f1a5";
}
.fa-digg:before {
content: "\f1a6";
}
.fa-pied-piper-pp:before {
content: "\f1a7";
}
.fa-pied-piper-alt:before {
content: "\f1a8";
}
.fa-drupal:before {
content: "\f1a9";
}
.fa-joomla:before {
content: "\f1aa";
}
.fa-language:before {
content: "\f1ab";
}
.fa-fax:before {
content: "\f1ac";
}
.fa-building:before {
content: "\f1ad";
}
.fa-child:before {
content: "\f1ae";
}
.fa-paw:before {
content: "\f1b0";
}
.fa-spoon:before {
content: "\f1b1";
}
.fa-cube:before {
content: "\f1b2";
}
.fa-cubes:before {
content: "\f1b3";
}
.fa-behance:before {
content: "\f1b4";
}
.fa-behance-square:before {
content: "\f1b5";
}
.fa-steam:before {
content: "\f1b6";
}
.fa-steam-square:before {
content: "\f1b7";
}
.fa-recycle:before {
content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
content: "\f1ba";
}
.fa-tree:before {
content: "\f1bb";
}
.fa-spotify:before {
content: "\f1bc";
}
.fa-deviantart:before {
content: "\f1bd";
}
.fa-soundcloud:before {
content: "\f1be";
}
.fa-database:before {
content: "\f1c0";
}
.fa-file-pdf-o:before {
content: "\f1c1";
}
.fa-file-word-o:before {
content: "\f1c2";
}
.fa-file-excel-o:before {
content: "\f1c3";
}
.fa-file-powerpoint-o:before {
content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
content: "\f1c8";
}
.fa-file-code-o:before {
content: "\f1c9";
}
.fa-vine:before {
content: "\f1ca";
}
.fa-codepen:before {
content: "\f1cb";
}
.fa-jsfiddle:before {
content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
content: "\f1cd";
}
.fa-circle-o-notch:before {
content: "\f1ce";
}
.fa-ra:before,
.fa-resistance:before,
.fa-rebel:before {
content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
content: "\f1d1";
}
.fa-git-square:before {
content: "\f1d2";
}
.fa-git:before {
content: "\f1d3";
}
.fa-y-combinator-square:before,
.fa-yc-square:before,
.fa-hacker-news:before {
content: "\f1d4";
}
.fa-tencent-weibo:before {
content: "\f1d5";
}
.fa-qq:before {
content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
content: "\f1d9";
}
.fa-history:before {
content: "\f1da";
}
.fa-circle-thin:before {
content: "\f1db";
}
.fa-header:before {
content: "\f1dc";
}
.fa-paragraph:before {
content: "\f1dd";
}
.fa-sliders:before {
content: "\f1de";
}
.fa-share-alt:before {
content: "\f1e0";
}
.fa-share-alt-square:before {
content: "\f1e1";
}
.fa-bomb:before {
content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
content: "\f1e3";
}
.fa-tty:before {
content: "\f1e4";
}
.fa-binoculars:before {
content: "\f1e5";
}
.fa-plug:before {
content: "\f1e6";
}
.fa-slideshare:before {
content: "\f1e7";
}
.fa-twitch:before {
content: "\f1e8";
}
.fa-yelp:before {
content: "\f1e9";
}
.fa-newspaper-o:before {
content: "\f1ea";
}
.fa-wifi:before {
content: "\f1eb";
}
.fa-calculator:before {
content: "\f1ec";
}
.fa-paypal:before {
content: "\f1ed";
}
.fa-google-wallet:before {
content: "\f1ee";
}
.fa-cc-visa:before {
content: "\f1f0";
}
.fa-cc-mastercard:before {
content: "\f1f1";
}
.fa-cc-discover:before {
content: "\f1f2";
}
.fa-cc-amex:before {
content: "\f1f3";
}
.fa-cc-paypal:before {
content: "\f1f4";
}
.fa-cc-stripe:before {
content: "\f1f5";
}
.fa-bell-slash:before {
content: "\f1f6";
}
.fa-bell-slash-o:before {
content: "\f1f7";
}
.fa-trash:before {
content: "\f1f8";
}
.fa-copyright:before {
content: "\f1f9";
}
.fa-at:before {
content: "\f1fa";
}
.fa-eyedropper:before {
content: "\f1fb";
}
.fa-paint-brush:before {
content: "\f1fc";
}
.fa-birthday-cake:before {
content: "\f1fd";
}
.fa-area-chart:before {
content: "\f1fe";
}
.fa-pie-chart:before {
content: "\f200";
}
.fa-line-chart:before {
content: "\f201";
}
.fa-lastfm:before {
content: "\f202";
}
.fa-lastfm-square:before {
content: "\f203";
}
.fa-toggle-off:before {
content: "\f204";
}
.fa-toggle-on:before {
content: "\f205";
}
.fa-bicycle:before {
content: "\f206";
}
.fa-bus:before {
content: "\f207";
}
.fa-ioxhost:before {
content: "\f208";
}
.fa-angellist:before {
content: "\f209";
}
.fa-cc:before {
content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
content: "\f20b";
}
.fa-meanpath:before {
content: "\f20c";
}
.fa-buysellads:before {
content: "\f20d";
}
.fa-connectdevelop:before {
content: "\f20e";
}
.fa-dashcube:before {
content: "\f210";
}
.fa-forumbee:before {
content: "\f211";
}
.fa-leanpub:before {
content: "\f212";
}
.fa-sellsy:before {
content: "\f213";
}
.fa-shirtsinbulk:before {
content: "\f214";
}
.fa-simplybuilt:before {
content: "\f215";
}
.fa-skyatlas:before {
content: "\f216";
}
.fa-cart-plus:before {
content: "\f217";
}
.fa-cart-arrow-down:before {
content: "\f218";
}
.fa-diamond:before {
content: "\f219";
}
.fa-ship:before {
content: "\f21a";
}
.fa-user-secret:before {
content: "\f21b";
}
.fa-motorcycle:before {
content: "\f21c";
}
.fa-street-view:before {
content: "\f21d";
}
.fa-heartbeat:before {
content: "\f21e";
}
.fa-venus:before {
content: "\f221";
}
.fa-mars:before {
content: "\f222";
}
.fa-mercury:before {
content: "\f223";
}
.fa-intersex:before,
.fa-transgender:before {
content: "\f224";
}
.fa-transgender-alt:before {
content: "\f225";
}
.fa-venus-double:before {
content: "\f226";
}
.fa-mars-double:before {
content: "\f227";
}
.fa-venus-mars:before {
content: "\f228";
}
.fa-mars-stroke:before {
content: "\f229";
}
.fa-mars-stroke-v:before {
content: "\f22a";
}
.fa-mars-stroke-h:before {
content: "\f22b";
}
.fa-neuter:before {
content: "\f22c";
}
.fa-genderless:before {
content: "\f22d";
}
.fa-facebook-official:before {
content: "\f230";
}
.fa-pinterest-p:before {
content: "\f231";
}
.fa-whatsapp:before {
content: "\f232";
}
.fa-server:before {
content: "\f233";
}
.fa-user-plus:before {
content: "\f234";
}
.fa-user-times:before {
content: "\f235";
}
.fa-hotel:before,
.fa-bed:before {
content: "\f236";
}
.fa-viacoin:before {
content: "\f237";
}
.fa-train:before {
content: "\f238";
}
.fa-subway:before {
content: "\f239";
}
.fa-medium:before {
content: "\f23a";
}
.fa-yc:before,
.fa-y-combinator:before {
content: "\f23b";
}
.fa-optin-monster:before {
content: "\f23c";
}
.fa-opencart:before {
content: "\f23d";
}
.fa-expeditedssl:before {
content: "\f23e";
}
.fa-battery-4:before,
.fa-battery:before,
.fa-battery-full:before {
content: "\f240";
}
.fa-battery-3:before,
.fa-battery-three-quarters:before {
content: "\f241";
}
.fa-battery-2:before,
.fa-battery-half:before {
content: "\f242";
}
.fa-battery-1:before,
.fa-battery-quarter:before {
content: "\f243";
}
.fa-battery-0:before,
.fa-battery-empty:before {
content: "\f244";
}
.fa-mouse-pointer:before {
content: "\f245";
}
.fa-i-cursor:before {
content: "\f246";
}
.fa-object-group:before {
content: "\f247";
}
.fa-object-ungroup:before {
content: "\f248";
}
.fa-sticky-note:before {
content: "\f249";
}
.fa-sticky-note-o:before {
content: "\f24a";
}
.fa-cc-jcb:before {
content: "\f24b";
}
.fa-cc-diners-club:before {
content: "\f24c";
}
.fa-clone:before {
content: "\f24d";
}
.fa-balance-scale:before {
content: "\f24e";
}
.fa-hourglass-o:before {
content: "\f250";
}
.fa-hourglass-1:before,
.fa-hourglass-start:before {
content: "\f251";
}
.fa-hourglass-2:before,
.fa-hourglass-half:before {
content: "\f252";
}
.fa-hourglass-3:before,
.fa-hourglass-end:before {
content: "\f253";
}
.fa-hourglass:before {
content: "\f254";
}
.fa-hand-grab-o:before,
.fa-hand-rock-o:before {
content: "\f255";
}
.fa-hand-stop-o:before,
.fa-hand-paper-o:before {
content: "\f256";
}
.fa-hand-scissors-o:before {
content: "\f257";
}
.fa-hand-lizard-o:before {
content: "\f258";
}
.fa-hand-spock-o:before {
content: "\f259";
}
.fa-hand-pointer-o:before {
content: "\f25a";
}
.fa-hand-peace-o:before {
content: "\f25b";
}
.fa-trademark:before {
content: "\f25c";
}
.fa-registered:before {
content: "\f25d";
}
.fa-creative-commons:before {
content: "\f25e";
}
.fa-gg:before {
content: "\f260";
}
.fa-gg-circle:before {
content: "\f261";
}
.fa-tripadvisor:before {
content: "\f262";
}
.fa-odnoklassniki:before {
content: "\f263";
}
.fa-odnoklassniki-square:before {
content: "\f264";
}
.fa-get-pocket:before {
content: "\f265";
}
.fa-wikipedia-w:before {
content: "\f266";
}
.fa-safari:before {
content: "\f267";
}
.fa-chrome:before {
content: "\f268";
}
.fa-firefox:before {
content: "\f269";
}
.fa-opera:before {
content: "\f26a";
}
.fa-internet-explorer:before {
content: "\f26b";
}
.fa-tv:before,
.fa-television:before {
content: "\f26c";
}
.fa-contao:before {
content: "\f26d";
}
.fa-500px:before {
content: "\f26e";
}
.fa-amazon:before {
content: "\f270";
}
.fa-calendar-plus-o:before {
content: "\f271";
}
.fa-calendar-minus-o:before {
content: "\f272";
}
.fa-calendar-times-o:before {
content: "\f273";
}
.fa-calendar-check-o:before {
content: "\f274";
}
.fa-industry:before {
content: "\f275";
}
.fa-map-pin:before {
content: "\f276";
}
.fa-map-signs:before {
content: "\f277";
}
.fa-map-o:before {
content: "\f278";
}
.fa-map:before {
content: "\f279";
}
.fa-commenting:before {
content: "\f27a";
}
.fa-commenting-o:before {
content: "\f27b";
}
.fa-houzz:before {
content: "\f27c";
}
.fa-vimeo:before {
content: "\f27d";
}
.fa-black-tie:before {
content: "\f27e";
}
.fa-fonticons:before {
content: "\f280";
}
.fa-reddit-alien:before {
content: "\f281";
}
.fa-edge:before {
content: "\f282";
}
.fa-credit-card-alt:before {
content: "\f283";
}
.fa-codiepie:before {
content: "\f284";
}
.fa-modx:before {
content: "\f285";
}
.fa-fort-awesome:before {
content: "\f286";
}
.fa-usb:before {
content: "\f287";
}
.fa-product-hunt:before {
content: "\f288";
}
.fa-mixcloud:before {
content: "\f289";
}
.fa-scribd:before {
content: "\f28a";
}
.fa-pause-circle:before {
content: "\f28b";
}
.fa-pause-circle-o:before {
content: "\f28c";
}
.fa-stop-circle:before {
content: "\f28d";
}
.fa-stop-circle-o:before {
content: "\f28e";
}
.fa-shopping-bag:before {
content: "\f290";
}
.fa-shopping-basket:before {
content: "\f291";
}
.fa-hashtag:before {
content: "\f292";
}
.fa-bluetooth:before {
content: "\f293";
}
.fa-bluetooth-b:before {
content: "\f294";
}
.fa-percent:before {
content: "\f295";
}
.fa-gitlab:before {
content: "\f296";
}
.fa-wpbeginner:before {
content: "\f297";
}
.fa-wpforms:before {
content: "\f298";
}
.fa-envira:before {
content: "\f299";
}
.fa-universal-access:before {
content: "\f29a";
}
.fa-wheelchair-alt:before {
content: "\f29b";
}
.fa-question-circle-o:before {
content: "\f29c";
}
.fa-blind:before {
content: "\f29d";
}
.fa-audio-description:before {
content: "\f29e";
}
.fa-volume-control-phone:before {
content: "\f2a0";
}
.fa-braille:before {
content: "\f2a1";
}
.fa-assistive-listening-systems:before {
content: "\f2a2";
}
.fa-asl-interpreting:before,
.fa-american-sign-language-interpreting:before {
content: "\f2a3";
}
.fa-deafness:before,
.fa-hard-of-hearing:before,
.fa-deaf:before {
content: "\f2a4";
}
.fa-glide:before {
content: "\f2a5";
}
.fa-glide-g:before {
content: "\f2a6";
}
.fa-signing:before,
.fa-sign-language:before {
content: "\f2a7";
}
.fa-low-vision:before {
content: "\f2a8";
}
.fa-viadeo:before {
content: "\f2a9";
}
.fa-viadeo-square:before {
content: "\f2aa";
}
.fa-snapchat:before {
content: "\f2ab";
}
.fa-snapchat-ghost:before {
content: "\f2ac";
}
.fa-snapchat-square:before {
content: "\f2ad";
}
.fa-pied-piper:before {
content: "\f2ae";
}
.fa-first-order:before {
content: "\f2b0";
}
.fa-yoast:before {
content: "\f2b1";
}
.fa-themeisle:before {
content: "\f2b2";
}
.fa-google-plus-circle:before,
.fa-google-plus-official:before {
content: "\f2b3";
}
.fa-fa:before,
.fa-font-awesome:before {
content: "\f2b4";
}
.fa-handshake-o:before {
content: "\f2b5";
}
.fa-envelope-open:before {
content: "\f2b6";
}
.fa-envelope-open-o:before {
content: "\f2b7";
}
.fa-linode:before {
content: "\f2b8";
}
.fa-address-book:before {
content: "\f2b9";
}
.fa-address-book-o:before {
content: "\f2ba";
}
.fa-vcard:before,
.fa-address-card:before {
content: "\f2bb";
}
.fa-vcard-o:before,
.fa-address-card-o:before {
content: "\f2bc";
}
.fa-user-circle:before {
content: "\f2bd";
}
.fa-user-circle-o:before {
content: "\f2be";
}
.fa-user-o:before {
content: "\f2c0";
}
.fa-id-badge:before {
content: "\f2c1";
}
.fa-drivers-license:before,
.fa-id-card:before {
content: "\f2c2";
}
.fa-drivers-license-o:before,
.fa-id-card-o:before {
content: "\f2c3";
}
.fa-quora:before {
content: "\f2c4";
}
.fa-free-code-camp:before {
content: "\f2c5";
}
.fa-telegram:before {
content: "\f2c6";
}
.fa-thermometer-4:before,
.fa-thermometer:before,
.fa-thermometer-full:before {
content: "\f2c7";
}
.fa-thermometer-3:before,
.fa-thermometer-three-quarters:before {
content: "\f2c8";
}
.fa-thermometer-2:before,
.fa-thermometer-half:before {
content: "\f2c9";
}
.fa-thermometer-1:before,
.fa-thermometer-quarter:before {
content: "\f2ca";
}
.fa-thermometer-0:before,
.fa-thermometer-empty:before {
content: "\f2cb";
}
.fa-shower:before {
content: "\f2cc";
}
.fa-bathtub:before,
.fa-s15:before,
.fa-bath:before {
content: "\f2cd";
}
.fa-podcast:before {
content: "\f2ce";
}
.fa-window-maximize:before {
content: "\f2d0";
}
.fa-window-minimize:before {
content: "\f2d1";
}
.fa-window-restore:before {
content: "\f2d2";
}
.fa-times-rectangle:before,
.fa-window-close:before {
content: "\f2d3";
}
.fa-times-rectangle-o:before,
.fa-window-close-o:before {
content: "\f2d4";
}
.fa-bandcamp:before {
content: "\f2d5";
}
.fa-grav:before {
content: "\f2d6";
}
.fa-etsy:before {
content: "\f2d7";
}
.fa-imdb:before {
content: "\f2d8";
}
.fa-ravelry:before {
content: "\f2d9";
}
.fa-eercast:before {
content: "\f2da";
}
.fa-microchip:before {
content: "\f2db";
}
.fa-snowflake-o:before {
content: "\f2dc";
}
.fa-superpowers:before {
content: "\f2dd";
}
.fa-wpexplorer:before {
content: "\f2de";
}
.fa-meetup:before {
content: "\f2e0";
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
position: static;
width: auto;
height: auto;
margin: 0;
overflow: visible;
clip: auto;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
position: static;
width: auto;
height: auto;
margin: 0;
overflow: visible;
clip: auto;
}
/*!
*
* IPython base
*
*/
.modal.fade .modal-dialog {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
-o-transform: translate(0, 0);
transform: translate(0, 0);
}
code {
color: #000;
}
pre {
font-size: inherit;
line-height: inherit;
}
label {
font-weight: normal;
}
/* Make the page background atleast 100% the height of the view port */
/* Make the page itself atleast 70% the height of the view port */
.border-box-sizing {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.corner-all {
border-radius: 2px;
}
.no-padding {
padding: 0px;
}
/* Flexible box model classes */
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
/* This file is a compatability layer. It allows the usage of flexible box
model layouts accross multiple browsers, including older browsers. The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below). Browsers that are known to implement this
new spec completely include:

Firefox 28.0+
Chrome 29.0+
Internet Explorer 11+
Opera 17.0+

Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
.hbox {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
.hbox > * {
/* Old browsers */
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
/* Modern browsers */
flex: none;
}
.vbox {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
.vbox > * {
/* Old browsers */
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
/* Modern browsers */
flex: none;
}
.hbox.reverse,
.vbox.reverse,
.reverse {
/* Old browsers */
-webkit-box-direction: reverse;
-moz-box-direction: reverse;
box-direction: reverse;
/* Modern browsers */
flex-direction: row-reverse;
}
.hbox.box-flex0,
.vbox.box-flex0,
.box-flex0 {
/* Old browsers */
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
/* Modern browsers */
flex: none;
width: auto;
}
.hbox.box-flex1,
.vbox.box-flex1,
.box-flex1 {
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
.hbox.box-flex,
.vbox.box-flex,
.box-flex {
/* Old browsers */
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
.hbox.box-flex2,
.vbox.box-flex2,
.box-flex2 {
/* Old browsers */
-webkit-box-flex: 2;
-moz-box-flex: 2;
box-flex: 2;
/* Modern browsers */
flex: 2;
}
.box-group1 {
/* Deprecated */
-webkit-box-flex-group: 1;
-moz-box-flex-group: 1;
box-flex-group: 1;
}
.box-group2 {
/* Deprecated */
-webkit-box-flex-group: 2;
-moz-box-flex-group: 2;
box-flex-group: 2;
}
.hbox.start,
.vbox.start,
.start {
/* Old browsers */
-webkit-box-pack: start;
-moz-box-pack: start;
box-pack: start;
/* Modern browsers */
justify-content: flex-start;
}
.hbox.end,
.vbox.end,
.end {
/* Old browsers */
-webkit-box-pack: end;
-moz-box-pack: end;
box-pack: end;
/* Modern browsers */
justify-content: flex-end;
}
.hbox.center,
.vbox.center,
.center {
/* Old browsers */
-webkit-box-pack: center;
-moz-box-pack: center;
box-pack: center;
/* Modern browsers */
justify-content: center;
}
.hbox.baseline,
.vbox.baseline,
.baseline {
/* Old browsers */
-webkit-box-pack: baseline;
-moz-box-pack: baseline;
box-pack: baseline;
/* Modern browsers */
justify-content: baseline;
}
.hbox.stretch,
.vbox.stretch,
.stretch {
/* Old browsers */
-webkit-box-pack: stretch;
-moz-box-pack: stretch;
box-pack: stretch;
/* Modern browsers */
justify-content: stretch;
}
.hbox.align-start,
.vbox.align-start,
.align-start {
/* Old browsers */
-webkit-box-align: start;
-moz-box-align: start;
box-align: start;
/* Modern browsers */
align-items: flex-start;
}
.hbox.align-end,
.vbox.align-end,
.align-end {
/* Old browsers */
-webkit-box-align: end;
-moz-box-align: end;
box-align: end;
/* Modern browsers */
align-items: flex-end;
}
.hbox.align-center,
.vbox.align-center,
.align-center {
/* Old browsers */
-webkit-box-align: center;
-moz-box-align: center;
box-align: center;
/* Modern browsers */
align-items: center;
}
.hbox.align-baseline,
.vbox.align-baseline,
.align-baseline {
/* Old browsers */
-webkit-box-align: baseline;
-moz-box-align: baseline;
box-align: baseline;
/* Modern browsers */
align-items: baseline;
}
.hbox.align-stretch,
.vbox.align-stretch,
.align-stretch {
/* Old browsers */
-webkit-box-align: stretch;
-moz-box-align: stretch;
box-align: stretch;
/* Modern browsers */
align-items: stretch;
}
div.error {
margin: 2em;
text-align: center;
}
div.error > h1 {
font-size: 500%;
line-height: normal;
}
div.error > p {
font-size: 200%;
line-height: normal;
}
div.traceback-wrapper {
text-align: left;
max-width: 800px;
margin: auto;
}
div.traceback-wrapper pre.traceback {
max-height: 600px;
overflow: auto;
}
/**
* Primary styles
*
* Author: Jupyter Development Team
*/
body {
background-color: #fff;
/* This makes sure that the body covers the entire window and needs to
be in a different element than the display: box in wrapper below */
position: absolute;
left: 0px;
right: 0px;
top: 0px;
bottom: 0px;
overflow: visible;
}
body > #header {
/* Initially hidden to prevent FLOUC */
display: none;
background-color: #fff;
/* Display over codemirror */
position: relative;
z-index: 100;
}
body > #header #header-container {
display: flex;
flex-direction: row;
justify-content: space-between;
padding: 5px;
padding-bottom: 5px;
padding-top: 5px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
body > #header .header-bar {
width: 100%;
height: 1px;
background: #e7e7e7;
margin-bottom: -1px;
}
@media print {
body > #header {
display: none !important;
}
}
#header-spacer {
width: 100%;
visibility: hidden;
}
@media print {
#header-spacer {
display: none;
}
}
#ipython_notebook {
padding-left: 0px;
padding-top: 1px;
padding-bottom: 1px;
}
[dir="rtl"] #ipython_notebook {
margin-right: 10px;
margin-left: 0;
}
[dir="rtl"] #ipython_notebook.pull-left {
float: right !important;
float: right;
}
.flex-spacer {
flex: 1;
}
#noscript {
width: auto;
padding-top: 16px;
padding-bottom: 16px;
text-align: center;
font-size: 22px;
color: red;
font-weight: bold;
}
#ipython_notebook img {
height: 28px;
}
#site {
width: 100%;
display: none;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
overflow: auto;
}
@media print {
#site {
height: auto !important;
}
}
/* Smaller buttons */
.ui-button .ui-button-text {
padding: 0.2em 0.8em;
font-size: 77%;
}
input.ui-button {
padding: 0.3em 0.9em;
}
span#kernel_logo_widget {
margin: 0 10px;
}
span#login_widget {
float: right;
}
[dir="rtl"] span#login_widget {
float: left;
}
span#login_widget > .button,
#logout {
color: #333;
background-color: #fff;
border-color: #ccc;
}
span#login_widget > .button:focus,
#logout:focus,
span#login_widget > .button.focus,
#logout.focus {
color: #333;
background-color: #e6e6e6;
border-color: #8c8c8c;
}
span#login_widget > .button:hover,
#logout:hover {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
span#login_widget > .button:active:hover,
#logout:active:hover,
span#login_widget > .button.active:hover,
#logout.active:hover,
.open > .dropdown-togglespan#login_widget > .button:hover,
.open > .dropdown-toggle#logout:hover,
span#login_widget > .button:active:focus,
#logout:active:focus,
span#login_widget > .button.active:focus,
#logout.active:focus,
.open > .dropdown-togglespan#login_widget > .button:focus,
.open > .dropdown-toggle#logout:focus,
span#login_widget > .button:active.focus,
#logout:active.focus,
span#login_widget > .button.active.focus,
#logout.active.focus,
.open > .dropdown-togglespan#login_widget > .button.focus,
.open > .dropdown-toggle#logout.focus {
color: #333;
background-color: #d4d4d4;
border-color: #8c8c8c;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
background-image: none;
}
span#login_widget > .button.disabled:hover,
#logout.disabled:hover,
span#login_widget > .button[disabled]:hover,
#logout[disabled]:hover,
fieldset[disabled] span#login_widget > .button:hover,
fieldset[disabled] #logout:hover,
span#login_widget > .button.disabled:focus,
#logout.disabled:focus,
span#login_widget > .button[disabled]:focus,
#logout[disabled]:focus,
fieldset[disabled] span#login_widget > .button:focus,
fieldset[disabled] #logout:focus,
span#login_widget > .button.disabled.focus,
#logout.disabled.focus,
span#login_widget > .button[disabled].focus,
#logout[disabled].focus,
fieldset[disabled] span#login_widget > .button.focus,
fieldset[disabled] #logout.focus {
background-color: #fff;
border-color: #ccc;
}
span#login_widget > .button .badge,
#logout .badge {
color: #fff;
background-color: #333;
}
.nav-header {
text-transform: none;
}
#header > span {
margin-top: 10px;
}
.modal_stretch .modal-dialog {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
min-height: 80vh;
}
.modal_stretch .modal-dialog .modal-body {
max-height: calc(100vh - 200px);
overflow: auto;
flex: 1;
}
.modal-header {
cursor: move;
}
@media (min-width: 768px) {
.modal .modal-dialog {
width: 700px;
}
}
@media (min-width: 768px) {
select.form-control {
margin-left: 12px;
margin-right: 12px;
}
}
/*!
*
* IPython auth
*
*/
.center-nav {
display: inline-block;
margin-bottom: -4px;
}
[dir="rtl"] .center-nav form.pull-left {
float: right !important;
float: right;
}
[dir="rtl"] .center-nav .navbar-text {
float: right;
}
[dir="rtl"] .navbar-inner {
text-align: right;
}
[dir="rtl"] div.text-left {
text-align: right;
}
/*!
*
* IPython tree view
*
*/
/* We need an invisible input field on top of the sentense*/
/* "Drag file onto the list ..." */
.alternate_upload {
background-color: none;
display: inline;
}
.alternate_upload.form {
padding: 0;
margin: 0;
}
.alternate_upload input.fileinput {
position: absolute;
display: block;
width: 100%;
height: 100%;
overflow: hidden;
cursor: pointer;
opacity: 0;
z-index: 2;
}
.alternate_upload .btn-xs > input.fileinput {
margin: -1px -5px;
}
.alternate_upload .btn-upload {
position: relative;
height: 22px;
}
::-webkit-file-upload-button {
cursor: pointer;
}
/**
* Primary styles
*
* Author: Jupyter Development Team
*/
ul#tabs {
margin-bottom: 4px;
}
ul#tabs a {
padding-top: 6px;
padding-bottom: 4px;
}
[dir="rtl"] ul#tabs.nav-tabs > li {
float: right;
}
[dir="rtl"] ul#tabs.nav.nav-tabs {
padding-right: 0;
}
ul.breadcrumb a:focus,
ul.breadcrumb a:hover {
text-decoration: none;
}
ul.breadcrumb i.icon-home {
font-size: 16px;
margin-right: 4px;
}
ul.breadcrumb span {
color: #5e5e5e;
}
.list_toolbar {
padding: 4px 0 4px 0;
vertical-align: middle;
}
.list_toolbar .tree-buttons {
padding-top: 1px;
}
[dir="rtl"] .list_toolbar .tree-buttons .pull-right {
float: left !important;
float: left;
}
[dir="rtl"] .list_toolbar .col-sm-4,
[dir="rtl"] .list_toolbar .col-sm-8 {
float: right;
}
.dynamic-buttons {
padding-top: 3px;
display: inline-block;
}
.list_toolbar [class*="span"] {
min-height: 24px;
}
.list_header {
font-weight: bold;
background-color: #EEE;
}
.list_placeholder {
font-weight: bold;
padding-top: 4px;
padding-bottom: 4px;
padding-left: 7px;
padding-right: 7px;
}
.list_container {
margin-top: 4px;
margin-bottom: 20px;
border: 1px solid #ddd;
border-radius: 2px;
}
.list_container > div {
border-bottom: 1px solid #ddd;
}
.list_container > div:hover .list-item {
background-color: red;
}
.list_container > div:last-child {
border: none;
}
.list_item:hover .list_item {
background-color: #ddd;
}
.list_item a {
text-decoration: none;
}
.list_item:hover {
background-color: #fafafa;
}
.list_header > div,
.list_item > div {
padding-top: 4px;
padding-bottom: 4px;
padding-left: 7px;
padding-right: 7px;
line-height: 22px;
}
.list_header > div input,
.list_item > div input {
margin-right: 7px;
margin-left: 14px;
vertical-align: text-bottom;
line-height: 22px;
position: relative;
top: -1px;
}
.list_header > div .item_link,
.list_item > div .item_link {
margin-left: -1px;
vertical-align: baseline;
line-height: 22px;
}
[dir="rtl"] .list_item > div input {
margin-right: 0;
}
.new-file input[type=checkbox] {
visibility: hidden;
}
.item_name {
line-height: 22px;
height: 24px;
}
.item_icon {
font-size: 14px;
color: #5e5e5e;
margin-right: 7px;
margin-left: 7px;
line-height: 22px;
vertical-align: baseline;
}
.item_modified {
margin-right: 7px;
margin-left: 7px;
}
[dir="rtl"] .item_modified.pull-right {
float: left !important;
float: left;
}
.item_buttons {
line-height: 1em;
margin-left: -5px;
}
.item_buttons .btn,
.item_buttons .btn-group,
.item_buttons .input-group {
float: left;
}
.item_buttons > .btn,
.item_buttons > .btn-group,
.item_buttons > .input-group {
margin-left: 5px;
}
.item_buttons .btn {
min-width: 13ex;
}
.item_buttons .running-indicator {
padding-top: 4px;
color: #5cb85c;
}
.item_buttons .kernel-name {
padding-top: 4px;
color: #5bc0de;
margin-right: 7px;
float: left;
}
[dir="rtl"] .item_buttons.pull-right {
float: left !important;
float: left;
}
[dir="rtl"] .item_buttons .kernel-name {
margin-left: 7px;
float: right;
}
.toolbar_info {
height: 24px;
line-height: 24px;
}
.list_item input:not([type=checkbox]) {
padding-top: 3px;
padding-bottom: 3px;
height: 22px;
line-height: 14px;
margin: 0px;
}
.highlight_text {
color: blue;
}
#project_name {
display: inline-block;
padding-left: 7px;
margin-left: -2px;
}
#project_name > .breadcrumb {
padding: 0px;
margin-bottom: 0px;
background-color: transparent;
font-weight: bold;
}
.sort_button {
display: inline-block;
padding-left: 7px;
}
[dir="rtl"] .sort_button.pull-right {
float: left !important;
float: left;
}
#tree-selector {
padding-right: 0px;
}
#button-select-all {
min-width: 50px;
}
[dir="rtl"] #button-select-all.btn {
float: right ;
}
#select-all {
margin-left: 7px;
margin-right: 2px;
margin-top: 2px;
height: 16px;
}
[dir="rtl"] #select-all.pull-left {
float: right !important;
float: right;
}
.menu_icon {
margin-right: 2px;
}
.tab-content .row {
margin-left: 0px;
margin-right: 0px;
}
.folder_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f114";
}
.folder_icon:before.fa-pull-left {
margin-right: .3em;
}
.folder_icon:before.fa-pull-right {
margin-left: .3em;
}
.folder_icon:before.pull-left {
margin-right: .3em;
}
.folder_icon:before.pull-right {
margin-left: .3em;
}
.notebook_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f02d";
position: relative;
top: -1px;
}
.notebook_icon:before.fa-pull-left {
margin-right: .3em;
}
.notebook_icon:before.fa-pull-right {
margin-left: .3em;
}
.notebook_icon:before.pull-left {
margin-right: .3em;
}
.notebook_icon:before.pull-right {
margin-left: .3em;
}
.running_notebook_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f02d";
position: relative;
top: -1px;
color: #5cb85c;
}
.running_notebook_icon:before.fa-pull-left {
margin-right: .3em;
}
.running_notebook_icon:before.fa-pull-right {
margin-left: .3em;
}
.running_notebook_icon:before.pull-left {
margin-right: .3em;
}
.running_notebook_icon:before.pull-right {
margin-left: .3em;
}
.file_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f016";
position: relative;
top: -2px;
}
.file_icon:before.fa-pull-left {
margin-right: .3em;
}
.file_icon:before.fa-pull-right {
margin-left: .3em;
}
.file_icon:before.pull-left {
margin-right: .3em;
}
.file_icon:before.pull-right {
margin-left: .3em;
}
#notebook_toolbar .pull-right {
padding-top: 0px;
margin-right: -1px;
}
ul#new-menu {
left: auto;
right: 0;
}
#new-menu .dropdown-header {
font-size: 10px;
border-bottom: 1px solid #e5e5e5;
padding: 0 0 3px;
margin: -3px 20px 0;
}
.kernel-menu-icon {
padding-right: 12px;
width: 24px;
content: "\f096";
}
.kernel-menu-icon:before {
content: "\f096";
}
.kernel-menu-icon-current:before {
content: "\f00c";
}
#tab_content {
padding-top: 20px;
}
#running .panel-group .panel {
margin-top: 3px;
margin-bottom: 1em;
}
#running .panel-group .panel .panel-heading {
background-color: #EEE;
padding-top: 4px;
padding-bottom: 4px;
padding-left: 7px;
padding-right: 7px;
line-height: 22px;
}
#running .panel-group .panel .panel-heading a:focus,
#running .panel-group .panel .panel-heading a:hover {
text-decoration: none;
}
#running .panel-group .panel .panel-body {
padding: 0px;
}
#running .panel-group .panel .panel-body .list_container {
margin-top: 0px;
margin-bottom: 0px;
border: 0px;
border-radius: 0px;
}
#running .panel-group .panel .panel-body .list_container .list_item {
border-bottom: 1px solid #ddd;
}
#running .panel-group .panel .panel-body .list_container .list_item:last-child {
border-bottom: 0px;
}
.delete-button {
display: none;
}
.duplicate-button {
display: none;
}
.rename-button {
display: none;
}
.move-button {
display: none;
}
.download-button {
display: none;
}
.shutdown-button {
display: none;
}
.dynamic-instructions {
display: inline-block;
padding-top: 4px;
}
/*!
*
* IPython text editor webapp
*
*/
.selected-keymap i.fa {
padding: 0px 5px;
}
.selected-keymap i.fa:before {
content: "\f00c";
}
#mode-menu {
overflow: auto;
max-height: 20em;
}
.edit_app #header {
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.edit_app #menubar .navbar {
/* Use a negative 1 bottom margin, so the border overlaps the border of the
header */
margin-bottom: -1px;
}
.dirty-indicator {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
width: 20px;
}
.dirty-indicator.fa-pull-left {
margin-right: .3em;
}
.dirty-indicator.fa-pull-right {
margin-left: .3em;
}
.dirty-indicator.pull-left {
margin-right: .3em;
}
.dirty-indicator.pull-right {
margin-left: .3em;
}
.dirty-indicator-dirty {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
width: 20px;
}
.dirty-indicator-dirty.fa-pull-left {
margin-right: .3em;
}
.dirty-indicator-dirty.fa-pull-right {
margin-left: .3em;
}
.dirty-indicator-dirty.pull-left {
margin-right: .3em;
}
.dirty-indicator-dirty.pull-right {
margin-left: .3em;
}
.dirty-indicator-clean {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
width: 20px;
}
.dirty-indicator-clean.fa-pull-left {
margin-right: .3em;
}
.dirty-indicator-clean.fa-pull-right {
margin-left: .3em;
}
.dirty-indicator-clean.pull-left {
margin-right: .3em;
}
.dirty-indicator-clean.pull-right {
margin-left: .3em;
}
.dirty-indicator-clean:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f00c";
}
.dirty-indicator-clean:before.fa-pull-left {
margin-right: .3em;
}
.dirty-indicator-clean:before.fa-pull-right {
margin-left: .3em;
}
.dirty-indicator-clean:before.pull-left {
margin-right: .3em;
}
.dirty-indicator-clean:before.pull-right {
margin-left: .3em;
}
#filename {
font-size: 16pt;
display: table;
padding: 0px 5px;
}
#current-mode {
padding-left: 5px;
padding-right: 5px;
}
#texteditor-backdrop {
padding-top: 20px;
padding-bottom: 20px;
}
@media not print {
#texteditor-backdrop {
background-color: #EEE;
}
}
@media print {
#texteditor-backdrop #texteditor-container .CodeMirror-gutter,
#texteditor-backdrop #texteditor-container .CodeMirror-gutters {
background-color: #fff;
}
}
@media not print {
#texteditor-backdrop #texteditor-container .CodeMirror-gutter,
#texteditor-backdrop #texteditor-container .CodeMirror-gutters {
background-color: #fff;
}
}
@media not print {
#texteditor-backdrop #texteditor-container {
padding: 0px;
background-color: #fff;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
}
.CodeMirror-dialog {
background-color: #fff;
}
/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI escape sequences */
/* The color values are a mix of
http://www.xcolors.net/dl/baskerville-ivorylight and
http://www.xcolors.net/dl/euphrasia */
.ansi-black-fg {
color: #3E424D;
}
.ansi-black-bg {
background-color: #3E424D;
}
.ansi-black-intense-fg {
color: #282C36;
}
.ansi-black-intense-bg {
background-color: #282C36;
}
.ansi-red-fg {
color: #E75C58;
}
.ansi-red-bg {
background-color: #E75C58;
}
.ansi-red-intense-fg {
color: #B22B31;
}
.ansi-red-intense-bg {
background-color: #B22B31;
}
.ansi-green-fg {
color: #00A250;
}
.ansi-green-bg {
background-color: #00A250;
}
.ansi-green-intense-fg {
color: #007427;
}
.ansi-green-intense-bg {
background-color: #007427;
}
.ansi-yellow-fg {
color: #DDB62B;
}
.ansi-yellow-bg {
background-color: #DDB62B;
}
.ansi-yellow-intense-fg {
color: #B27D12;
}
.ansi-yellow-intense-bg {
background-color: #B27D12;
}
.ansi-blue-fg {
color: #208FFB;
}
.ansi-blue-bg {
background-color: #208FFB;
}
.ansi-blue-intense-fg {
color: #0065CA;
}
.ansi-blue-intense-bg {
background-color: #0065CA;
}
.ansi-magenta-fg {
color: #D160C4;
}
.ansi-magenta-bg {
background-color: #D160C4;
}
.ansi-magenta-intense-fg {
color: #A03196;
}
.ansi-magenta-intense-bg {
background-color: #A03196;
}
.ansi-cyan-fg {
color: #60C6C8;
}
.ansi-cyan-bg {
background-color: #60C6C8;
}
.ansi-cyan-intense-fg {
color: #258F8F;
}
.ansi-cyan-intense-bg {
background-color: #258F8F;
}
.ansi-white-fg {
color: #C5C1B4;
}
.ansi-white-bg {
background-color: #C5C1B4;
}
.ansi-white-intense-fg {
color: #A1A6B2;
}
.ansi-white-intense-bg {
background-color: #A1A6B2;
}
.ansi-default-inverse-fg {
color: #FFFFFF;
}
.ansi-default-inverse-bg {
background-color: #000000;
}
.ansi-bold {
font-weight: bold;
}
.ansi-underline {
text-decoration: underline;
}
/* The following styles are deprecated an will be removed in a future version */
.ansibold {
font-weight: bold;
}
.ansi-inverse {
outline: 0.5px dotted;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
color: black;
}
.ansired {
color: darkred;
}
.ansigreen {
color: darkgreen;
}
.ansiyellow {
color: #c4a000;
}
.ansiblue {
color: darkblue;
}
.ansipurple {
color: darkviolet;
}
.ansicyan {
color: steelblue;
}
.ansigray {
color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
background-color: black;
}
.ansibgred {
background-color: red;
}
.ansibggreen {
background-color: green;
}
.ansibgyellow {
background-color: yellow;
}
.ansibgblue {
background-color: blue;
}
.ansibgpurple {
background-color: magenta;
}
.ansibgcyan {
background-color: cyan;
}
.ansibggray {
background-color: gray;
}
div.cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
border-radius: 2px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
border-width: 1px;
border-style: solid;
border-color: transparent;
width: 100%;
padding: 5px;
/* This acts as a spacer between cells, that is outside the border */
margin: 0px;
outline: none;
position: relative;
overflow: visible;
}
div.cell:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: transparent;
}
div.cell.jupyter-soft-selected {
border-left-color: #E3F2FD;
border-left-width: 1px;
padding-left: 5px;
border-right-color: #E3F2FD;
border-right-width: 1px;
background: #E3F2FD;
}
@media print {
div.cell.jupyter-soft-selected {
border-color: transparent;
}
}
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: #ababab;
}
div.cell.selected:before,
div.cell.selected.jupyter-soft-selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #42A5F5;
}
@media print {
div.cell.selected,
div.cell.selected.jupyter-soft-selected {
border-color: transparent;
}
}
.edit_mode div.cell.selected {
border-color: #66BB6A;
}
.edit_mode div.cell.selected:before {
position: absolute;
display: block;
top: -1px;
left: -1px;
width: 5px;
height: calc(100% + 2px);
content: '';
background: #66BB6A;
}
@media print {
.edit_mode div.cell.selected {
border-color: transparent;
}
}
.prompt {
/* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
min-width: 14ex;
/* This padding is tuned to match the padding on the CodeMirror editor. */
padding: 0.4em;
margin: 0px;
font-family: monospace;
text-align: right;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
/* Don't highlight prompt number selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* Use default cursor */
cursor: default;
}
@media (max-width: 540px) {
.prompt {
text-align: left;
}
}
div.inner_cell {
min-width: 0;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
border: 1px solid #cfcfcf;
border-radius: 2px;
background: #f7f7f7;
line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
is no content in the output_subarea and the prompt. The main purpose of this is
to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
padding-top: 0;
padding-bottom: 0;
}
div.unrecognized_cell {
padding: 5px 5px 5px 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.unrecognized_cell .inner_cell {
border-radius: 2px;
padding: 5px;
font-weight: bold;
color: red;
border: 1px solid #cfcfcf;
background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
color: inherit;
text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
color: inherit;
text-decoration: none;
}
@media (max-width: 540px) {
div.unrecognized_cell > div.prompt {
display: none;
}
}
div.code_cell {
/* avoid page breaking on code cells when printing */
}
@media print {
div.code_cell {
page-break-inside: avoid;
}
}
/* any special styling for code cells that are currently running goes here */
div.input {
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.input {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
color: #303F9F;
border-top: 1px solid transparent;
}
div.input_area > div.highlight {
margin: 0.4em;
border: none;
padding: 0px;
background-color: transparent;
}
div.input_area > div.highlight > pre {
margin: 0px;
border: none;
padding: 0px;
background-color: transparent;
}
/* The following gets added to the if it is detected that the user has a
* monospace font with inconsistent normal/bold/italic height. See
* notebookmain.js. Such fonts will have keywords vertically offset with
* respect to the rest of the text. The user should select a better font.
* See: https://github.com/ipython/ipython/issues/1503
*
* .CodeMirror span {
* vertical-align: bottom;
* }
*/
.CodeMirror {
line-height: 1.21429em;
/* Changed from 1em to our global default */
font-size: 14px;
height: auto;
/* Changed to auto to autogrow */
background: none;
/* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
/* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
/* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
overflow-y: hidden;
overflow-x: auto;
}
.CodeMirror-lines {
/* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
/* we have set a different line-height and want this to scale with that. */
/* Note that this should set vertical padding only, since CodeMirror assumes
that horizontal padding will be set on CodeMirror pre */
padding: 0.4em 0;
}
.CodeMirror-linenumber {
padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.CodeMirror pre {
/* In CM3 this went to 4px from 0 in CM2. This sets horizontal padding only,
use .CodeMirror-lines for vertical */
padding: 0 0.4em;
border: 0;
border-radius: 0;
}
.CodeMirror-cursor {
border-left: 1.4px solid black;
}
@media screen and (min-width: 2138px) and (max-width: 4319px) {
.CodeMirror-cursor {
border-left: 2px solid black;
}
}
@media screen and (min-width: 4320px) {
.CodeMirror-cursor {
border-left: 4px solid black;
}
}
/*

Original style from softwaremaniacs.org (c) Ivan Sagalaev
Adapted from GitHub theme

*/
.highlight-base {
color: #000;
}
.highlight-variable {
color: #000;
}
.highlight-variable-2 {
color: #1a1a1a;
}
.highlight-variable-3 {
color: #333333;
}
.highlight-string {
color: #BA2121;
}
.highlight-comment {
color: #408080;
font-style: italic;
}
.highlight-number {
color: #080;
}
.highlight-atom {
color: #88F;
}
.highlight-keyword {
color: #008000;
font-weight: bold;
}
.highlight-builtin {
color: #008000;
}
.highlight-error {
color: #f00;
}
.highlight-operator {
color: #AA22FF;
font-weight: bold;
}
.highlight-meta {
color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
color: #00f;
}
.highlight-string-2 {
color: #f50;
}
.highlight-qualifier {
color: #555;
}
.highlight-bracket {
color: #997;
}
.highlight-tag {
color: #170;
}
.highlight-attribute {
color: #00c;
}
.highlight-header {
color: blue;
}
.highlight-quote {
color: #090;
}
.highlight-link {
color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
color: #008000;
font-weight: bold;
}
.cm-s-ipython span.cm-atom {
color: #88F;
}
.cm-s-ipython span.cm-number {
color: #080;
}
.cm-s-ipython span.cm-def {
color: #00f;
}
.cm-s-ipython span.cm-variable {
color: #000;
}
.cm-s-ipython span.cm-operator {
color: #AA22FF;
font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
color: #333333;
}
.cm-s-ipython span.cm-comment {
color: #408080;
font-style: italic;
}
.cm-s-ipython span.cm-string {
color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
color: #f50;
}
.cm-s-ipython span.cm-meta {
color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
color: #555;
}
.cm-s-ipython span.cm-builtin {
color: #008000;
}
.cm-s-ipython span.cm-bracket {
color: #997;
}
.cm-s-ipython span.cm-tag {
color: #170;
}
.cm-s-ipython span.cm-attribute {
color: #00c;
}
.cm-s-ipython span.cm-header {
color: blue;
}
.cm-s-ipython span.cm-quote {
color: #090;
}
.cm-s-ipython span.cm-link {
color: #00c;
}
.cm-s-ipython span.cm-error {
color: #f00;
}
.cm-s-ipython span.cm-tab {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
background-position: right;
background-repeat: no-repeat;
}
div.output_wrapper {
/* this position must be relative to enable descendents to be absolute within it */
position: relative;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
/* ideally, this would be max-height, but FF barfs all over that */
height: 24em;
/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
width: 100%;
overflow: auto;
border-radius: 2px;
-webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
margin: 0px;
padding: 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
div.out_prompt_overlay {
height: 100%;
padding: 0px 0.4em;
position: absolute;
border-radius: 2px;
}
div.out_prompt_overlay:hover {
/* use inner shadow to get border that is computed the same on WebKit/FF */
-webkit-box-shadow: inset 0 0 1px #000;
box-shadow: inset 0 0 1px #000;
background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
padding: 0px;
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.output_area .MathJax_Display {
text-align: left !important;
}
div.output_area .rendered_html table {
margin-left: 0;
margin-right: 0;
}
div.output_area .rendered_html img {
margin-left: 0;
margin-right: 0;
}
div.output_area img,
div.output_area svg {
max-width: 100%;
height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
max-width: none;
}
div.output_area .mglyph > img {
max-width: none;
}
/* This is needed to protect the pre formating from global settings such
as that of bootstrap */
.output {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
@media (max-width: 540px) {
div.output_area {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
div.output_area pre {
margin: 0;
padding: 1px 0 1px 0;
border: 0;
vertical-align: baseline;
color: black;
background-color: transparent;
border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
the prompt div. */
div.output_subarea {
overflow-x: auto;
padding: 0.4em;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
output types */
/* all text output has this class: */
div.output_text {
text-align: left;
color: #000;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
background: #fdd;
/* very light red background for stderr */
}
div.output_latex {
text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
padding: 0;
}
.js-error {
color: darkred;
}
/* raw_input styles */
div.raw_input_container {
line-height: 1.21429em;
padding-top: 5px;
}
pre.raw_input_prompt {
/* nothing needed here. */
}
input.raw_input {
font-family: monospace;
font-size: inherit;
color: inherit;
width: auto;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0em 0.25em;
margin: 0em 0.25em;
}
input.raw_input:focus {
box-shadow: none;
}
p.p-space {
margin-bottom: 10px;
}
div.output_unrecognized {
padding: 5px;
font-weight: bold;
color: red;
}
div.output_unrecognized a {
color: inherit;
text-decoration: none;
}
div.output_unrecognized a:hover {
color: inherit;
text-decoration: none;
}
.rendered_html {
color: #000;
/* any extras will just be numbers: */
}
.rendered_html em {
font-style: italic;
}
.rendered_html strong {
font-weight: bold;
}
.rendered_html u {
text-decoration: underline;
}
.rendered_html :link {
text-decoration: underline;
}
.rendered_html :visited {
text-decoration: underline;
}
.rendered_html h1 {
font-size: 185.7%;
margin: 1.08em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h2 {
font-size: 157.1%;
margin: 1.27em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h3 {
font-size: 128.6%;
margin: 1.55em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h4 {
font-size: 100%;
margin: 2em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h5 {
font-size: 100%;
margin: 2em 0 0 0;
font-weight: bold;
line-height: 1.0;
font-style: italic;
}
.rendered_html h6 {
font-size: 100%;
margin: 2em 0 0 0;
font-weight: bold;
line-height: 1.0;
font-style: italic;
}
.rendered_html h1:first-child {
margin-top: 0.538em;
}
.rendered_html h2:first-child {
margin-top: 0.636em;
}
.rendered_html h3:first-child {
margin-top: 0.777em;
}
.rendered_html h4:first-child {
margin-top: 1em;
}
.rendered_html h5:first-child {
margin-top: 1em;
}
.rendered_html h6:first-child {
margin-top: 1em;
}
.rendered_html ul:not(.list-inline),
.rendered_html ol:not(.list-inline) {
padding-left: 2em;
}
.rendered_html ul {
list-style: disc;
}
.rendered_html ul ul {
list-style: square;
margin-top: 0;
}
.rendered_html ul ul ul {
list-style: circle;
}
.rendered_html ol {
list-style: decimal;
}
.rendered_html ol ol {
list-style: upper-alpha;
margin-top: 0;
}
.rendered_html ol ol ol {
list-style: lower-alpha;
}
.rendered_html ol ol ol ol {
list-style: lower-roman;
}
.rendered_html ol ol ol ol ol {
list-style: decimal;
}
.rendered_html * + ul {
margin-top: 1em;
}
.rendered_html * + ol {
margin-top: 1em;
}
.rendered_html hr {
color: black;
background-color: black;
}
.rendered_html pre {
margin: 1em 2em;
padding: 0px;
background-color: #fff;
}
.rendered_html code {
background-color: #eff0f1;
}
.rendered_html p code {
padding: 1px 5px;
}
.rendered_html pre code {
background-color: #fff;
}
.rendered_html pre,
.rendered_html code {
border: 0;
color: #000;
font-size: 100%;
}
.rendered_html blockquote {
margin: 1em 2em;
}
.rendered_html table {
margin-left: auto;
margin-right: auto;
border: none;
border-collapse: collapse;
border-spacing: 0;
color: black;
font-size: 12px;
table-layout: fixed;
}
.rendered_html thead {
border-bottom: 1px solid black;
vertical-align: bottom;
}
.rendered_html tr,
.rendered_html th,
.rendered_html td {
text-align: right;
vertical-align: middle;
padding: 0.5em 0.5em;
line-height: normal;
white-space: normal;
max-width: none;
border: none;
}
.rendered_html th {
font-weight: bold;
}
.rendered_html tbody tr:nth-child(odd) {
background: #f5f5f5;
}
.rendered_html tbody tr:hover {
background: rgba(66, 165, 245, 0.2);
}
.rendered_html * + table {
margin-top: 1em;
}
.rendered_html p {
text-align: left;
}
.rendered_html * + p {
margin-top: 1em;
}
.rendered_html img {
display: block;
margin-left: auto;
margin-right: auto;
}
.rendered_html * + img {
margin-top: 1em;
}
.rendered_html img,
.rendered_html svg {
max-width: 100%;
height: auto;
}
.rendered_html img.unconfined,
.rendered_html svg.unconfined {
max-width: none;
}
.rendered_html .alert {
margin-bottom: initial;
}
.rendered_html * + .alert {
margin-top: 1em;
}
[dir="rtl"] .rendered_html p {
text-align: right;
}
div.text_cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.text_cell > div.prompt {
display: none;
}
}
div.text_cell_render {
/*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
outline: none;
resize: none;
width: inherit;
border-style: none;
padding: 0.5em 0.5em 0.5em 0.4em;
color: #000;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
a.anchor-link:link {
text-decoration: none;
padding: 0px 20px;
visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
visibility: visible;
}
.text_cell.rendered .input_area {
display: none;
}
.text_cell.rendered .rendered_html {
overflow-x: auto;
overflow-y: hidden;
}
.text_cell.rendered .rendered_html tr,
.text_cell.rendered .rendered_html th,
.text_cell.rendered .rendered_html td {
max-width: none;
}
.text_cell.unrendered .text_cell_render {
display: none;
}
.text_cell .dropzone .input_area {
border: 2px dashed #bababa;
margin: -1px;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
font-weight: bold;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
font-size: 185.7%;
}
.cm-header-2 {
font-size: 157.1%;
}
.cm-header-3 {
font-size: 128.6%;
}
.cm-header-4 {
font-size: 110%;
}
.cm-header-5 {
font-size: 100%;
font-style: italic;
}
.cm-header-6 {
font-size: 100%;
font-style: italic;
}
/*!
*
* IPython notebook webapp
*
*/
@media (max-width: 767px) {
.notebook_app {
padding-left: 0px;
padding-right: 0px;
}
}
#ipython-main-app {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
height: 100%;
}
div#notebook_panel {
margin: 0px;
padding: 0px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
height: 100%;
}
div#notebook {
font-size: 14px;
line-height: 20px;
overflow-y: hidden;
overflow-x: auto;
width: 100%;
/* This spaces the page away from the edge of the notebook area */
padding-top: 20px;
margin: 0px;
outline: none;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
min-height: 100%;
}
@media not print {
#notebook-container {
padding: 15px;
background-color: #fff;
min-height: 0;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
}
@media print {
#notebook-container {
width: 100%;
}
}
div.ui-widget-content {
border: 1px solid #ababab;
outline: none;
}
pre.dialog {
background-color: #f7f7f7;
border: 1px solid #ddd;
border-radius: 2px;
padding: 0.4em;
padding-left: 2em;
}
p.dialog {
padding: 0.2em;
}
/* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems
to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do.
*/
pre,
code,
kbd,
samp {
white-space: pre-wrap;
}
#fonttest {
font-family: monospace;
}
p {
margin-bottom: 0;
}
.end_space {
min-height: 100px;
transition: height .2s ease;
}
.notebook_app > #header {
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
@media not print {
.notebook_app {
background-color: #EEE;
}
}
kbd {
border-style: solid;
border-width: 1px;
box-shadow: none;
margin: 2px;
padding-left: 2px;
padding-right: 2px;
padding-top: 1px;
padding-bottom: 1px;
}
.jupyter-keybindings {
padding: 1px;
line-height: 24px;
border-bottom: 1px solid gray;
}
.jupyter-keybindings input {
margin: 0;
padding: 0;
border: none;
}
.jupyter-keybindings i {
padding: 6px;
}
.well code {
background-color: #ffffff;
border-color: #ababab;
border-width: 1px;
border-style: solid;
padding: 2px;
padding-top: 1px;
padding-bottom: 1px;
}
/* CSS for the cell toolbar */
.celltoolbar {
border: thin solid #CFCFCF;
border-bottom: none;
background: #EEE;
border-radius: 2px 2px 0px 0px;
width: 100%;
height: 29px;
padding-right: 4px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
/* Old browsers */
-webkit-box-pack: end;
-moz-box-pack: end;
box-pack: end;
/* Modern browsers */
justify-content: flex-end;
display: -webkit-flex;
}
@media print {
.celltoolbar {
display: none;
}
}
.ctb_hideshow {
display: none;
vertical-align: bottom;
}
/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
Cell toolbars are only shown when the ctb_global_show class is also set.
*/
.ctb_global_show .ctb_show.ctb_hideshow {
display: block;
}
.ctb_global_show .ctb_show + .input_area,
.ctb_global_show .ctb_show + div.text_cell_input,
.ctb_global_show .ctb_show ~ div.text_cell_render {
border-top-right-radius: 0px;
border-top-left-radius: 0px;
}
.ctb_global_show .ctb_show ~ div.text_cell_render {
border: 1px solid #cfcfcf;
}
.celltoolbar {
font-size: 87%;
padding-top: 3px;
}
.celltoolbar select {
display: block;
width: 100%;
height: 32px;
padding: 6px 12px;
font-size: 13px;
line-height: 1.42857143;
color: #555555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 2px;
-webkit-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-color ease-in-out .15s, box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
width: inherit;
font-size: inherit;
height: 22px;
padding: 0px;
display: inline-block;
}
.celltoolbar select:focus {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.celltoolbar select::-moz-placeholder {
color: #999;
opacity: 1;
}
.celltoolbar select:-ms-input-placeholder {
color: #999;
}
.celltoolbar select::-webkit-input-placeholder {
color: #999;
}
.celltoolbar select::-ms-expand {
border: 0;
background-color: transparent;
}
.celltoolbar select[disabled],
.celltoolbar select[readonly],
fieldset[disabled] .celltoolbar select {
background-color: #eeeeee;
opacity: 1;
}
.celltoolbar select[disabled],
fieldset[disabled] .celltoolbar select {
cursor: not-allowed;
}
textarea.celltoolbar select {
height: auto;
}
select.celltoolbar select {
height: 30px;
line-height: 30px;
}
textarea.celltoolbar select,
select[multiple].celltoolbar select {
height: auto;
}
.celltoolbar label {
margin-left: 5px;
margin-right: 5px;
}
.tags_button_container {
width: 100%;
display: flex;
}
.tag-container {
display: flex;
flex-direction: row;
flex-grow: 1;
overflow: hidden;
position: relative;
}
.tag-container > * {
margin: 0 4px;
}
.remove-tag-btn {
margin-left: 4px;
}
.tags-input {
display: flex;
}
.cell-tag:last-child:after {
content: "";
position: absolute;
right: 0;
width: 40px;
height: 100%;
/* Fade to background color of cell toolbar */
background: linear-gradient(to right, rgba(0, 0, 0, 0), #EEE);
}
.tags-input > * {
margin-left: 4px;
}
.cell-tag,
.tags-input input,
.tags-input button {
display: block;
width: 100%;
height: 32px;
padding: 6px 12px;
font-size: 13px;
line-height: 1.42857143;
color: #555555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 2px;
-webkit-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-color ease-in-out .15s, box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
box-shadow: none;
width: inherit;
font-size: inherit;
height: 22px;
line-height: 22px;
padding: 0px 4px;
display: inline-block;
}
.cell-tag:focus,
.tags-input input:focus,
.tags-input button:focus {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.cell-tag::-moz-placeholder,
.tags-input input::-moz-placeholder,
.tags-input button::-moz-placeholder {
color: #999;
opacity: 1;
}
.cell-tag:-ms-input-placeholder,
.tags-input input:-ms-input-placeholder,
.tags-input button:-ms-input-placeholder {
color: #999;
}
.cell-tag::-webkit-input-placeholder,
.tags-input input::-webkit-input-placeholder,
.tags-input button::-webkit-input-placeholder {
color: #999;
}
.cell-tag::-ms-expand,
.tags-input input::-ms-expand,
.tags-input button::-ms-expand {
border: 0;
background-color: transparent;
}
.cell-tag[disabled],
.tags-input input[disabled],
.tags-input button[disabled],
.cell-tag[readonly],
.tags-input input[readonly],
.tags-input button[readonly],
fieldset[disabled] .cell-tag,
fieldset[disabled] .tags-input input,
fieldset[disabled] .tags-input button {
background-color: #eeeeee;
opacity: 1;
}
.cell-tag[disabled],
.tags-input input[disabled],
.tags-input button[disabled],
fieldset[disabled] .cell-tag,
fieldset[disabled] .tags-input input,
fieldset[disabled] .tags-input button {
cursor: not-allowed;
}
textarea.cell-tag,
textarea.tags-input input,
textarea.tags-input button {
height: auto;
}
select.cell-tag,
select.tags-input input,
select.tags-input button {
height: 30px;
line-height: 30px;
}
textarea.cell-tag,
textarea.tags-input input,
textarea.tags-input button,
select[multiple].cell-tag,
select[multiple].tags-input input,
select[multiple].tags-input button {
height: auto;
}
.cell-tag,
.tags-input button {
padding: 0px 4px;
}
.cell-tag {
background-color: #fff;
white-space: nowrap;
}
.tags-input input[type=text]:focus {
outline: none;
box-shadow: none;
border-color: #ccc;
}
.completions {
position: absolute;
z-index: 110;
overflow: hidden;
border: 1px solid #ababab;
border-radius: 2px;
-webkit-box-shadow: 0px 6px 10px -1px #adadad;
box-shadow: 0px 6px 10px -1px #adadad;
line-height: 1;
}
.completions select {
background: white;
outline: none;
border: none;
padding: 0px;
margin: 0px;
overflow: auto;
font-family: monospace;
font-size: 110%;
color: #000;
width: auto;
}
.completions select option.context {
color: #286090;
}
#kernel_logo_widget .current_kernel_logo {
display: none;
margin-top: -1px;
margin-bottom: -1px;
width: 32px;
height: 32px;
}
[dir="rtl"] #kernel_logo_widget {
float: left !important;
float: left;
}
.modal .modal-body .move-path {
display: flex;
flex-direction: row;
justify-content: space;
align-items: center;
}
.modal .modal-body .move-path .server-root {
padding-right: 20px;
}
.modal .modal-body .move-path .path-input {
flex: 1;
}
#menubar {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
margin-top: 1px;
}
#menubar .navbar {
border-top: 1px;
border-radius: 0px 0px 2px 2px;
margin-bottom: 0px;
}
#menubar .navbar-toggle {
float: left;
padding-top: 7px;
padding-bottom: 7px;
border: none;
}
#menubar .navbar-collapse {
clear: left;
}
[dir="rtl"] #menubar .navbar-toggle {
float: right;
}
[dir="rtl"] #menubar .navbar-collapse {
clear: right;
}
[dir="rtl"] #menubar .navbar-nav {
float: right;
}
[dir="rtl"] #menubar .nav {
padding-right: 0px;
}
[dir="rtl"] #menubar .navbar-nav > li {
float: right;
}
[dir="rtl"] #menubar .navbar-right {
float: left !important;
}
[dir="rtl"] ul.dropdown-menu {
text-align: right;
left: auto;
}
[dir="rtl"] ul#new-menu.dropdown-menu {
right: auto;
left: 0;
}
.nav-wrapper {
border-bottom: 1px solid #e7e7e7;
}
i.menu-icon {
padding-top: 4px;
}
[dir="rtl"] i.menu-icon.pull-right {
float: left !important;
float: left;
}
ul#help_menu li a {
overflow: hidden;
padding-right: 2.2em;
}
ul#help_menu li a i {
margin-right: -1.2em;
}
[dir="rtl"] ul#help_menu li a {
padding-left: 2.2em;
}
[dir="rtl"] ul#help_menu li a i {
margin-right: 0;
margin-left: -1.2em;
}
[dir="rtl"] ul#help_menu li a i.pull-right {
float: left !important;
float: left;
}
.dropdown-submenu {
position: relative;
}
.dropdown-submenu > .dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
}
[dir="rtl"] .dropdown-submenu > .dropdown-menu {
right: 100%;
margin-right: -1px;
}
.dropdown-submenu:hover > .dropdown-menu {
display: block;
}
.dropdown-submenu > a:after {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
display: block;
content: "\f0da";
float: right;
color: #333333;
margin-top: 2px;
margin-right: -10px;
}
.dropdown-submenu > a:after.fa-pull-left {
margin-right: .3em;
}
.dropdown-submenu > a:after.fa-pull-right {
margin-left: .3em;
}
.dropdown-submenu > a:after.pull-left {
margin-right: .3em;
}
.dropdown-submenu > a:after.pull-right {
margin-left: .3em;
}
[dir="rtl"] .dropdown-submenu > a:after {
float: left;
content: "\f0d9";
margin-right: 0;
margin-left: -10px;
}
.dropdown-submenu:hover > a:after {
color: #262626;
}
.dropdown-submenu.pull-left {
float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
left: -100%;
margin-left: 10px;
}
#notification_area {
float: right !important;
float: right;
z-index: 10;
}
[dir="rtl"] #notification_area {
float: left !important;
float: left;
}
.indicator_area {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
}
[dir="rtl"] .indicator_area {
float: left !important;
float: left;
}
#kernel_indicator {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
border-left: 1px solid;
}
#kernel_indicator .kernel_indicator_name {
padding-left: 5px;
padding-right: 5px;
}
[dir="rtl"] #kernel_indicator {
float: left !important;
float: left;
border-left: 0;
border-right: 1px solid;
}
#modal_indicator {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
}
[dir="rtl"] #modal_indicator {
float: left !important;
float: left;
}
#readonly-indicator {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
margin-top: 2px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
display: none;
}
.modal_indicator:before {
width: 1.28571429em;
text-align: center;
}
.edit_mode .modal_indicator:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f040";
}
.edit_mode .modal_indicator:before.fa-pull-left {
margin-right: .3em;
}
.edit_mode .modal_indicator:before.fa-pull-right {
margin-left: .3em;
}
.edit_mode .modal_indicator:before.pull-left {
margin-right: .3em;
}
.edit_mode .modal_indicator:before.pull-right {
margin-left: .3em;
}
.command_mode .modal_indicator:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: ' ';
}
.command_mode .modal_indicator:before.fa-pull-left {
margin-right: .3em;
}
.command_mode .modal_indicator:before.fa-pull-right {
margin-left: .3em;
}
.command_mode .modal_indicator:before.pull-left {
margin-right: .3em;
}
.command_mode .modal_indicator:before.pull-right {
margin-left: .3em;
}
.kernel_idle_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f10c";
}
.kernel_idle_icon:before.fa-pull-left {
margin-right: .3em;
}
.kernel_idle_icon:before.fa-pull-right {
margin-left: .3em;
}
.kernel_idle_icon:before.pull-left {
margin-right: .3em;
}
.kernel_idle_icon:before.pull-right {
margin-left: .3em;
}
.kernel_busy_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f111";
}
.kernel_busy_icon:before.fa-pull-left {
margin-right: .3em;
}
.kernel_busy_icon:before.fa-pull-right {
margin-left: .3em;
}
.kernel_busy_icon:before.pull-left {
margin-right: .3em;
}
.kernel_busy_icon:before.pull-right {
margin-left: .3em;
}
.kernel_dead_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f1e2";
}
.kernel_dead_icon:before.fa-pull-left {
margin-right: .3em;
}
.kernel_dead_icon:before.fa-pull-right {
margin-left: .3em;
}
.kernel_dead_icon:before.pull-left {
margin-right: .3em;
}
.kernel_dead_icon:before.pull-right {
margin-left: .3em;
}
.kernel_disconnected_icon:before {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\f127";
}
.kernel_disconnected_icon:before.fa-pull-left {
margin-right: .3em;
}
.kernel_disconnected_icon:before.fa-pull-right {
margin-left: .3em;
}
.kernel_disconnected_icon:before.pull-left {
margin-right: .3em;
}
.kernel_disconnected_icon:before.pull-right {
margin-left: .3em;
}
.notification_widget {
color: #777;
z-index: 10;
background: rgba(240, 240, 240, 0.5);
margin-right: 4px;
color: #333;
background-color: #fff;
border-color: #ccc;
}
.notification_widget:focus,
.notification_widget.focus {
color: #333;
background-color: #e6e6e6;
border-color: #8c8c8c;
}
.notification_widget:hover {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.notification_widget:active:hover,
.notification_widget.active:hover,
.open > .dropdown-toggle.notification_widget:hover,
.notification_widget:active:focus,
.notification_widget.active:focus,
.open > .dropdown-toggle.notification_widget:focus,
.notification_widget:active.focus,
.notification_widget.active.focus,
.open > .dropdown-toggle.notification_widget.focus {
color: #333;
background-color: #d4d4d4;
border-color: #8c8c8c;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
background-image: none;
}
.notification_widget.disabled:hover,
.notification_widget[disabled]:hover,
fieldset[disabled] .notification_widget:hover,
.notification_widget.disabled:focus,
.notification_widget[disabled]:focus,
fieldset[disabled] .notification_widget:focus,
.notification_widget.disabled.focus,
.notification_widget[disabled].focus,
fieldset[disabled] .notification_widget.focus {
background-color: #fff;
border-color: #ccc;
}
.notification_widget .badge {
color: #fff;
background-color: #333;
}
.notification_widget.warning {
color: #fff;
background-color: #f0ad4e;
border-color: #eea236;
}
.notification_widget.warning:focus,
.notification_widget.warning.focus {
color: #fff;
background-color: #ec971f;
border-color: #985f0d;
}
.notification_widget.warning:hover {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.notification_widget.warning:active:hover,
.notification_widget.warning.active:hover,
.open > .dropdown-toggle.notification_widget.warning:hover,
.notification_widget.warning:active:focus,
.notification_widget.warning.active:focus,
.open > .dropdown-toggle.notification_widget.warning:focus,
.notification_widget.warning:active.focus,
.notification_widget.warning.active.focus,
.open > .dropdown-toggle.notification_widget.warning.focus {
color: #fff;
background-color: #d58512;
border-color: #985f0d;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
background-image: none;
}
.notification_widget.warning.disabled:hover,
.notification_widget.warning[disabled]:hover,
fieldset[disabled] .notification_widget.warning:hover,
.notification_widget.warning.disabled:focus,
.notification_widget.warning[disabled]:focus,
fieldset[disabled] .notification_widget.warning:focus,
.notification_widget.warning.disabled.focus,
.notification_widget.warning[disabled].focus,
fieldset[disabled] .notification_widget.warning.focus {
background-color: #f0ad4e;
border-color: #eea236;
}
.notification_widget.warning .badge {
color: #f0ad4e;
background-color: #fff;
}
.notification_widget.success {
color: #fff;
background-color: #5cb85c;
border-color: #4cae4c;
}
.notification_widget.success:focus,
.notification_widget.success.focus {
color: #fff;
background-color: #449d44;
border-color: #255625;
}
.notification_widget.success:hover {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.notification_widget.success:active:hover,
.notification_widget.success.active:hover,
.open > .dropdown-toggle.notification_widget.success:hover,
.notification_widget.success:active:focus,
.notification_widget.success.active:focus,
.open > .dropdown-toggle.notification_widget.success:focus,
.notification_widget.success:active.focus,
.notification_widget.success.active.focus,
.open > .dropdown-toggle.notification_widget.success.focus {
color: #fff;
background-color: #398439;
border-color: #255625;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
background-image: none;
}
.notification_widget.success.disabled:hover,
.notification_widget.success[disabled]:hover,
fieldset[disabled] .notification_widget.success:hover,
.notification_widget.success.disabled:focus,
.notification_widget.success[disabled]:focus,
fieldset[disabled] .notification_widget.success:focus,
.notification_widget.success.disabled.focus,
.notification_widget.success[disabled].focus,
fieldset[disabled] .notification_widget.success.focus {
background-color: #5cb85c;
border-color: #4cae4c;
}
.notification_widget.success .badge {
color: #5cb85c;
background-color: #fff;
}
.notification_widget.info {
color: #fff;
background-color: #5bc0de;
border-color: #46b8da;
}
.notification_widget.info:focus,
.notification_widget.info.focus {
color: #fff;
background-color: #31b0d5;
border-color: #1b6d85;
}
.notification_widget.info:hover {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.notification_widget.info:active:hover,
.notification_widget.info.active:hover,
.open > .dropdown-toggle.notification_widget.info:hover,
.notification_widget.info:active:focus,
.notification_widget.info.active:focus,
.open > .dropdown-toggle.notification_widget.info:focus,
.notification_widget.info:active.focus,
.notification_widget.info.active.focus,
.open > .dropdown-toggle.notification_widget.info.focus {
color: #fff;
background-color: #269abc;
border-color: #1b6d85;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
background-image: none;
}
.notification_widget.info.disabled:hover,
.notification_widget.info[disabled]:hover,
fieldset[disabled] .notification_widget.info:hover,
.notification_widget.info.disabled:focus,
.notification_widget.info[disabled]:focus,
fieldset[disabled] .notification_widget.info:focus,
.notification_widget.info.disabled.focus,
.notification_widget.info[disabled].focus,
fieldset[disabled] .notification_widget.info.focus {
background-color: #5bc0de;
border-color: #46b8da;
}
.notification_widget.info .badge {
color: #5bc0de;
background-color: #fff;
}
.notification_widget.danger {
color: #fff;
background-color: #d9534f;
border-color: #d43f3a;
}
.notification_widget.danger:focus,
.notification_widget.danger.focus {
color: #fff;
background-color: #c9302c;
border-color: #761c19;
}
.notification_widget.danger:hover {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.notification_widget.danger:active:hover,
.notification_widget.danger.active:hover,
.open > .dropdown-toggle.notification_widget.danger:hover,
.notification_widget.danger:active:focus,
.notification_widget.danger.active:focus,
.open > .dropdown-toggle.notification_widget.danger:focus,
.notification_widget.danger:active.focus,
.notification_widget.danger.active.focus,
.open > .dropdown-toggle.notification_widget.danger.focus {
color: #fff;
background-color: #ac2925;
border-color: #761c19;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
background-image: none;
}
.notification_widget.danger.disabled:hover,
.notification_widget.danger[disabled]:hover,
fieldset[disabled] .notification_widget.danger:hover,
.notification_widget.danger.disabled:focus,
.notification_widget.danger[disabled]:focus,
fieldset[disabled] .notification_widget.danger:focus,
.notification_widget.danger.disabled.focus,
.notification_widget.danger[disabled].focus,
fieldset[disabled] .notification_widget.danger.focus {
background-color: #d9534f;
border-color: #d43f3a;
}
.notification_widget.danger .badge {
color: #d9534f;
background-color: #fff;
}
div#pager {
background-color: #fff;
font-size: 14px;
line-height: 20px;
overflow: hidden;
display: none;
position: fixed;
bottom: 0px;
width: 100%;
max-height: 50%;
padding-top: 8px;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
/* Display over codemirror */
z-index: 100;
/* Hack which prevents jquery ui resizable from changing top. */
top: auto !important;
}
div#pager pre {
line-height: 1.21429em;
color: #000;
background-color: #f7f7f7;
padding: 0.4em;
}
div#pager #pager-button-area {
position: absolute;
top: 8px;
right: 20px;
}
div#pager #pager-contents {
position: relative;
overflow: auto;
width: 100%;
height: 100%;
}
div#pager #pager-contents #pager-container {
position: relative;
padding: 15px 0px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
div#pager .ui-resizable-handle {
top: 0px;
height: 8px;
background: #f7f7f7;
border-top: 1px solid #cfcfcf;
border-bottom: 1px solid #cfcfcf;
/* This injects handle bars (a short, wide = symbol) for
the resize handle. */
}
div#pager .ui-resizable-handle::after {
content: '';
top: 2px;
left: 50%;
height: 3px;
width: 30px;
margin-left: -15px;
position: absolute;
border-top: 1px solid #cfcfcf;
}
.quickhelp {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
line-height: 1.8em;
}
.shortcut_key {
display: inline-block;
width: 21ex;
text-align: right;
font-family: monospace;
}
.shortcut_descr {
display: inline-block;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
span.save_widget {
height: 30px;
margin-top: 4px;
display: flex;
justify-content: flex-start;
align-items: baseline;
width: 50%;
flex: 1;
}
span.save_widget span.filename {
height: 100%;
line-height: 1em;
margin-left: 16px;
border: none;
font-size: 146.5%;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
border-radius: 2px;
}
span.save_widget span.filename:hover {
background-color: #e6e6e6;
}
[dir="rtl"] span.save_widget.pull-left {
float: right !important;
float: right;
}
[dir="rtl"] span.save_widget span.filename {
margin-left: 0;
margin-right: 16px;
}
span.checkpoint_status,
span.autosave_status {
font-size: small;
white-space: nowrap;
padding: 0 5px;
}
@media (max-width: 767px) {
span.save_widget {
font-size: small;
padding: 0 0 0 5px;
}
span.checkpoint_status,
span.autosave_status {
display: none;
}
}
@media (min-width: 768px) and (max-width: 991px) {
span.checkpoint_status {
display: none;
}
span.autosave_status {
font-size: x-small;
}
}
.toolbar {
padding: 0px;
margin-left: -5px;
margin-top: 2px;
margin-bottom: 5px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.toolbar select,
.toolbar label {
width: auto;
vertical-align: middle;
margin-right: 2px;
margin-bottom: 0px;
display: inline;
font-size: 92%;
margin-left: 0.3em;
margin-right: 0.3em;
padding: 0px;
padding-top: 3px;
}
.toolbar .btn {
padding: 2px 8px;
}
.toolbar .btn-group {
margin-top: 0px;
margin-left: 5px;
}
.toolbar-btn-label {
margin-left: 6px;
}
#maintoolbar {
margin-bottom: -3px;
margin-top: -8px;
border: 0px;
min-height: 27px;
margin-left: 0px;
padding-top: 11px;
padding-bottom: 3px;
}
#maintoolbar .navbar-text {
float: none;
vertical-align: middle;
text-align: right;
margin-left: 5px;
margin-right: 0px;
margin-top: 0px;
}
.select-xs {
height: 24px;
}
[dir="rtl"] .btn-group > .btn,
.btn-group-vertical > .btn {
float: right;
}
.pulse,
.dropdown-menu > li > a.pulse,
li.pulse > a.dropdown-toggle,
li.pulse.open > a.dropdown-toggle {
background-color: #F37626;
color: white;
}
/**
* Primary styles
*
* Author: Jupyter Development Team
*/
/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
* of chance of beeing generated from the ../less/[samename].less file, you can
* try to get back the less file by reverting somme commit in history
**/
/*
* We'll try to get something pretty, so we
* have some strange css to have the scroll bar on
* the left with fix button on the top right of the tooltip
*/
@-moz-keyframes fadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@-webkit-keyframes fadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@-moz-keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@-webkit-keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
/*properties of tooltip after "expand"*/
.bigtooltip {
overflow: auto;
height: 200px;
-webkit-transition-property: height;
-webkit-transition-duration: 500ms;
-moz-transition-property: height;
-moz-transition-duration: 500ms;
transition-property: height;
transition-duration: 500ms;
}
/*properties of tooltip before "expand"*/
.smalltooltip {
-webkit-transition-property: height;
-webkit-transition-duration: 500ms;
-moz-transition-property: height;
-moz-transition-duration: 500ms;
transition-property: height;
transition-duration: 500ms;
text-overflow: ellipsis;
overflow: hidden;
height: 80px;
}
.tooltipbuttons {
position: absolute;
padding-right: 15px;
top: 0px;
right: 0px;
}
.tooltiptext {
/*avoid the button to overlap on some docstring*/
padding-right: 30px;
}
.ipython_tooltip {
max-width: 700px;
/*fade-in animation when inserted*/
-webkit-animation: fadeOut 400ms;
-moz-animation: fadeOut 400ms;
animation: fadeOut 400ms;
-webkit-animation: fadeIn 400ms;
-moz-animation: fadeIn 400ms;
animation: fadeIn 400ms;
vertical-align: middle;
background-color: #f7f7f7;
overflow: visible;
border: #ababab 1px solid;
outline: none;
padding: 3px;
margin: 0px;
padding-left: 7px;
font-family: monospace;
min-height: 50px;
-moz-box-shadow: 0px 6px 10px -1px #adadad;
-webkit-box-shadow: 0px 6px 10px -1px #adadad;
box-shadow: 0px 6px 10px -1px #adadad;
border-radius: 2px;
position: absolute;
z-index: 1000;
}
.ipython_tooltip a {
float: right;
}
.ipython_tooltip .tooltiptext pre {
border: 0;
border-radius: 0;
font-size: 100%;
background-color: #f7f7f7;
}
.pretooltiparrow {
left: 0px;
margin: 0px;
top: -16px;
width: 40px;
height: 16px;
overflow: hidden;
position: absolute;
}
.pretooltiparrow:before {
background-color: #f7f7f7;
border: 1px #ababab solid;
z-index: 11;
content: "";
position: absolute;
left: 15px;
top: 10px;
width: 25px;
height: 25px;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
}
ul.typeahead-list i {
margin-left: -10px;
width: 18px;
}
[dir="rtl"] ul.typeahead-list i {
margin-left: 0;
margin-right: -10px;
}
ul.typeahead-list {
max-height: 80vh;
overflow: auto;
}
ul.typeahead-list > li > a {
/** Firefox bug **/
/* see https://github.com/jupyter/notebook/issues/559 */
white-space: normal;
}
ul.typeahead-list > li > a.pull-right {
float: left !important;
float: left;
}
[dir="rtl"] .typeahead-list {
text-align: right;
}
.cmd-palette .modal-body {
padding: 7px;
}
.cmd-palette form {
background: white;
}
.cmd-palette input {
outline: none;
}
.no-shortcut {
min-width: 20px;
color: transparent;
}
[dir="rtl"] .no-shortcut.pull-right {
float: left !important;
float: left;
}
[dir="rtl"] .command-shortcut.pull-right {
float: left !important;
float: left;
}
.command-shortcut:before {
content: "(command mode)";
padding-right: 3px;
color: #777777;
}
.edit-shortcut:before {
content: "(edit)";
padding-right: 3px;
color: #777777;
}
[dir="rtl"] .edit-shortcut.pull-right {
float: left !important;
float: left;
}
#find-and-replace #replace-preview .match,
#find-and-replace #replace-preview .insert {
background-color: #BBDEFB;
border-color: #90CAF9;
border-style: solid;
border-width: 1px;
border-radius: 0px;
}
[dir="ltr"] #find-and-replace .input-group-btn + .form-control {
border-left: none;
}
[dir="rtl"] #find-and-replace .input-group-btn + .form-control {
border-right: none;
}
#find-and-replace #replace-preview .replace .match {
background-color: #FFCDD2;
border-color: #EF9A9A;
border-radius: 0px;
}
#find-and-replace #replace-preview .replace .insert {
background-color: #C8E6C9;
border-color: #A5D6A7;
border-radius: 0px;
}
#find-and-replace #replace-preview {
max-height: 60vh;
overflow: auto;
}
#find-and-replace #replace-preview pre {
padding: 5px 10px;
}
.terminal-app {
background: #EEE;
}
.terminal-app #header {
background: #fff;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.terminal-app .terminal {
width: 100%;
float: left;
font-family: monospace;
color: white;
background: black;
padding: 0.4em;
border-radius: 2px;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
}
.terminal-app .terminal,
.terminal-app .terminal dummy-screen {
line-height: 1em;
font-size: 14px;
}
.terminal-app .terminal .xterm-rows {
padding: 10px;
}
.terminal-app .terminal-cursor {
color: black;
background: white;
}
.terminal-app #terminado-container {
margin-top: 20px;
}
/*# sourceMappingURL=style.min.css.map */

-->


 

1 引言

集成学习算法是当下炙手可热的一类算法,在诸多机器学习大赛中都频繁出现它的身影。准确来说,集成学习算法并不是一个单独的机器学习算法,而是通过构建多个学习器,博采众家之长,共同求解问题的一种思想。古语有云:“三个臭皮匠顶个诸葛亮”。一个简单的学习器也许不能很好的拟合数据,但是结合多个不同的学习器去解决问题,往往就可能有更加不俗的表现。 本篇博文中,我们先来详细说说集成学习思想以及分类,然后对其中的Bagging算法展开介绍。

2 集成学习

引言中说过,所谓集成学习就是先产生一组单个的学习器,我们姑且将这些单个的学习器称为“个体学习器”,然后通过某种策略将这些个体学习器结合起来共同完成学习任务,如下图所示。那么,有两个问题需要解决:第一,如果获得个体学习器;第二,如何将各个体学习器的结果结合到一起。
aaarticlea/jpeg;base64,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" alt="image">

在回答第一个问题前,我们必须明确,对集成学习中单个学习器必须满足两个条件:
(1)学习器之间应该有差异性。如果使用的单个学习器将没有差异,那么集成起来的结果是没有变化的。
(2)每个学习器的精度必须大于0.5。在集成学习中,单个分类器不需要很强,因为越强的分类器训练过程就越复杂,甚至容易发生过拟合,只需要保证每个学习器准确率大于0.5,因为如果单个学习的的准确率小于0.5,随着集成规模的增加,分类精度不断下降,反之如果精度大于0.5,就算简单的学习器,通过足够数量的组合最终精度也会可以趋向于1。可以通过下图来理解这两个条件。
aaarticlea/png;base64,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" alt="image">

 

在这两个条件前提下,对于第一个问题,有两种解决思路。一种是使用不同类别的算法来构建个体学习器,例如对于同一个任务分别使用决策树算法、支持向量机、神经网络等不同算法来构建学习器。另一种思路是所有个体学习器都使用同一种算法进行构建,这种思路是目前集成学习算法的主流。在所有个体学习器都使用同种算法构建时,如何保证学习器之间的差异性呢?有两种方案:

  • 每次训练个体学习器时,对原始数据集进行抽样获得不同数据集作为当前训练集,每一个训练样本在抽样训练集中可以多次或不出现,经过$T$次训练后,可得到$T$个不同的没有相互依赖的个体学习器学习器。Bagging、随机森林就是这种方案的代表。
  • 通过更新权重的方式不断地使用一个弱学习器弥补前一个弱学习器的“不足”的过程,来串行地构造一个较强的学习器,这个强学习器能够使目标函数值足够小。这一方案的代表是Boosting系列的算法,包括Adaboost、GBDT、XGBOOST等

在本文中,我们先对第一种方案的两种算法——Bagging和随机森林进行介绍,在后续的博文中,再对Adaboost、GBDT等算法进行分析。

3 Bagging

Bagging是并行式集成学习方法的最典型代表,算法名称来源于Bootstrap aggregating的简写,又称装袋算法,这种算法直接采用自助采样法获得$T$个各不相同的数据集,分别使用这$T$个数据集进行训练可获得$T$个个体学习器,再将这些学习器组合起来共同完成分类或者回归任务。当完成分类任务时,采用简单投票法对$T$个体学习器结果进行组合后输出;当染成回归任务时,采用简单平均法对$T$个个体学习器学习结果进行组合输出。

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqsAAACdCAYAAACTpzFoAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAADt6SURBVHhe7Z0H2BXF9f8VFEuwIEUQpUgRAcUgUkWDigULWEBj7CBi1EQTDVH4RRPsFRuKioLG2HvBiKKi0quohKKCSlBAQBABBc7//x1nwrzzzt4td8vsvefzPOe5O7Oze2dnp+3MmTNbEcMwDMMwDMM4CndWGYZhGIZhGGfhzirDMAzDMAzjLNxZZRiGYRiGYZyFO6sMwzAMwzCMs3BnlWEYhmEYhnEW7qwyDMMwDMMwzsKdVYZhGIZhGMZZuLNaorzwwgvUt29fatOmDe2+++70m9/8hrbaaquCgjAI27VrVzr//PPppZdekndjmPKByw7DMIxbcGe1xHjzzTfp0EMPpV69etGoUaNo5syZ9M0338iz/iDsxx9/TA888ACdcMIJ1KFDB3r//fflWYYpXbjsMAzDuAl3VkuICy64gLp3707r1q2TPsWzZMkSOvjgg+nCCy+UPgxTenDZYRiGcRfurJYA69evp1q1atH9998vfeJn2LBhVKNGDfFfDFMqcNkpzGuvvUYDBgygtm3bUr169f6nErH11ltTlSpVqGrVqkK22WYb2nbbbalatWpCtttuO9p+++1phx12ELLjjjvSr371K6pevbqQnXbaiXbeeWfaZZddhOy6664ijXbbbTchNWvWFO+ldu3aQurUqSPULOrWrSsEcdljjz2ofv36Qvbcc0/aa6+9qEGDBkIaNmxIjRo1osaNGwvZe++9qUmTJtS0aVMhzZo1o+bNm9M+++wjpEWLFrTvvvtSy5YthbRq1Ypat25N++23n5D9999fqIUccMABQn7961+LNDnwwAOFtGvXjg466CBq3769EIyqd+zYkTp16iSkc+fO1KVLF/HxAoG6yCGHHCJG8vv160enn346XXXVVaw+wjAecGe1BEAjsHDhQulKjnnz5omGIg9wI8uNbBC47NiZNGkSHX744dSjRw8aMWIETZs2jf773//Ks0SbN2+mTZs20caNG4X8/PPP9NNPP9GGDRuEoGOOUeoff/xRyNq1a+mHH36gNWvWCFm9ejV9//33tGrVKiErV66kFStW0HfffSdk+fLltGzZMlq6dKmQ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" alt="image">

3.1 自助采样法

自助采样法(Bootstrap sampling是一种从给定原始数据集中有放回的均匀抽样,也就是说,每当选中一个样本,它等可能地被再次选中并被再次添加到训练集中。对于给定包含$m$个样本的原始数据集$D$,进行自助采样获得$D'$,具体操作方式:每次采样时,从几何$D$中随机抽取一个样本拷贝一份到集合$D'$中,然后将样本放回集合$D$中,是的该羊被后续采样中仍有可能被采集到;重复这一步骤$m$次后,就可以获得同样包含$m$个样本的集合$D'$,集合$D'$就是自助采样的最终结果。可以想象,集合$D$中的样本有一部分会在集合$D'$中出现重复出现,而有些样本却一次都不出现。在$m$次抽样中,某个样本从未被抽到的概率为${(1 - \frac{1}{m})^m}$,当集合$D$样本足够多时有:
$$\mathop {\lim }\limits_{m \to \infty } {(1 - \frac{1}{m})^m} = \frac{1}{e} \approx 0.368$$
也就是说,原始集合$D$中有36.8%的样本不包含在通过自助采样法获得的集合$D'$中。在Bagging中,未被采集到的36.8%的样本可以用作测试集对个体学习器性能进行评估,当个体学习器使用决策树算法构建时,这部分用本可以用来辅助树剪枝;使用神经网络构建个体学习器时,可以用来防止过拟合。

3.2 结合策略

假设共有$T$个个体学习器,以$\{ {h_1},{h_2}, \cdots ,{h_T}\} $表示,其中样本$x$经$h_i$后的输出值为$h_i(x)$。对于结合$T$个个体学习器输出值,主要有一下几种策略:

(1)平均法
平均法常用于回归类任务的数值型输出,包括简单平均法、加权平均法等。

  • 简单平均法
    $$H(x) = \frac{1}{T}\sum\limits_{i = 1}^T {{h_i}(x)} $$
  • 加权平均法
    $$H(x) = \sum\limits_{i = 1}^T {{w_i}{h_i}(x)} $$
    式中,$w_i$是个体学习器$h_i$的权重,通常要求${w_i} \geqslant 0$且$\sum\limits_{i = 1}^T {{w_i}} = 1$。至于$w_i$的具体值,可以根据$h_i$的具体表现来确定,$h_i$准确率越高,$w_i$越大。
    对于两种平均法的选择上,当个体学习器性能相差较大时,选用加权平均法;当各个体学习器性能相近时,使用简单加权平均法。

(2)投票法
投票法更多用于作为分类任务的集成学习的结合策略。

  • 相对多数投票法
    也可以认为是多数决策法,即预测结果中票数最高的分类类别。如果不止一个类别获得最高票,则随机选择一个作为最终类别。
  • 绝对多数投票法
    不光要求获得票数最高,而且要求票数过半,否则决绝输出。
  • 加权投票法
    与加权平均法类似,每个个体学习器的分类票数要乘以一个权重,最终将各个类别的加权票数求和,最大的值对应的类别为最终类别。

(3)学习法
学习法是一种比平均法和投票法更为强大复杂的结合策略,学习法以所有个体学习器的输出作为一个数据集,额外使用一个学习器对该数据及进行学习,然后输出最终的结果。Stacking方法是学习法的一个经典代表,目前大多数应用中所说的学习法都是指Stacking方法。甚至因为Stacking方法的特殊性和复杂性,很多资料中将Stacking方法当做是与Bagging和Boosting一样的一类集成学习算法。
Stacking方法中将之前提到的所有个体学习器称为初级学习器,将用于结合的学习器称为次级学习器。Stacking方法先从原始数据集训练处初级学习器,然后“生成”一个新的数据集用于训练次级学习器。在新的数据集中,初级学习器的输出被当做样本输出特征,而初始样本的类别标签人被当做新数据及的类别标签。(注:关于Stacking可以参考这篇博客

 

4 随机森林

4.1 算法介绍

随机森林(Random Forest,建成RF)也是一种十分流行的算法,原理与Bagging非常相似,甚至有很多资料认为随机森林是Bagging的一个分支,一个扩展变体。如果已经理解了Bagging算法,那么现在再来看随机森林将再将单不过。
从名称上可以推测,随机森林是以决策树为学习算法构建个体学习器并采用Bagging思想集成的一种算法。确实也是如此,但却不止如此,因为随机森林在构建决策时,不仅在样本选择上进行了随机采样,同时在特征属性的选择上也进行了随机选取。在之前介绍决策树算法的博客中说过,传统的决策树算法在选择最优特征属性时总是从当前数据集所有特征属性(假设共有$d$个特征属性)中选择一个最优的特征属性作为当前树节点对数据集进行划分;但在随机森林中,使用决策树算法构建个体学习器时,先从$d$个属性中随机选择$k$个组成新的训练集,选择最优分裂属性时,从这$k$个属性中进行择优选取。这就是随机森林中构建决策树与传统决策树的不同。

需要注意,有两个因素对随机森林性能影响很大:

  • 森林中任意两棵树的相关性:相关性越大,错误率越大;
  • 森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低

$k$控制了选择特征训练集的随机程度,无论是相关性还是分类能力,都与$k$值选取息息相关,减小特征选择个数$k$,树的相关性和分类能力也会相应的降低;增大$k$,两者也会随之增大。所以关键问题是如何选择最优的m(或者是范围),这也是随机森林唯一的一个参数。当$k=d$时,与传统的决策树算法就没有什么区别了,都是从原始完整的训练集中进行选择,当$k=1$时,则是随机选择一个特征属性进行训练;一般情况下,推荐$k = {\log _2}d$。

随机森林不仅在每个个体学习器训练样本选择上,延用了Bagging算法中的自助采样法,保证了每个个体学习器训练集的差异性,同时也通过特征属性的选择,进一步进行扰动,保证了个体信息器的多样性,这也是随机森林在众多集成算法中表现突出的原因。 最后总结一下随机森林的优缺点:

优点:
(1) 每棵树都选择部分样本及部分特征,一定程度避免过拟合;
(2) 每棵树随机选择样本并随机选择特征,使得具有很好的抗噪能力,性能稳定;
(3) 能处理很高维度的数据,并且不用做特征选择;
(4) 适合并行计算;
(5) 实现比较简单;
缺点:
(1)当随机森林中的决策树个数很多时,训练时需要的空间和时间会较大;
(2)随机森林模型还有许多不好解释的地方,有点算个黑盒模型。

4.2 代码实现

为了方便展示,还是使用自定义的二维数据集:

In [43]:
import numpy as np
import matplotlib.pyplot as plt
import copy
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D a = np.random.normal(20,5,300)
b = np.random.normal(15,5,300)
c = np.random.normal(20,5,300)
cluster1 = np.array([[x, y, z, 1] for x, y, z in zip(a,b, c)]) a = np.random.normal(20,5,300)
b = np.random.normal(45,5,300)
c = np.random.normal(45,5,300)
cluster2 = np.array([[x, y, z, 2] for x, y, z in zip(a,b,c)]) a = np.random.normal(55,5,300)
b = np.random.normal(30,5,300)
c = np.random.normal(45,5,300)
cluster3 = np.array([[x, y, z, 3] for x, y, z in zip(a,b,c)]) dataset = np.append(np.append(cluster1,cluster2, axis=0),cluster3, axis=0)
In [44]:
from sklearn.model_selection import train_test_split
from sklearn.utils import shuffle
x_train,x_test,y_train,y_test = train_test_split(dataset[:,:3],dataset[:,-1],test_size=0.3,random_state=0) # 将数据划分为训练集,测试集
x_train,y_train = shuffle(x_train,y_train) # 随机打乱数据
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.set_zlabel('Z') # 坐标轴
ax.set_ylabel('Y')
ax.set_xlabel('X')
ax.scatter(x_train[:,0], x_train[:,1], x_train[:,2])
plt.show()
 
aaarticlea/png;base64,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
" alt="" />
In [45]:
from sklearn.ensemble import RandomForestClassifier   # 导入随机森林
clf = RandomForestClassifier()
clf.fit(x_train, y_train)
 
/home/chb/anaconda3/envs/study_python/lib/python3.7/site-packages/sklearn/ensemble/forest.py:245: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.
"10 in version 0.20 to 100 in 0.22.", FutureWarning)
Out[45]:
RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
max_depth=None, max_features='auto', max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, n_estimators=10,
n_jobs=None, oob_score=False, random_state=None,
verbose=0, warm_start=False)
In [46]:
dataset[0]
Out[46]:
array([31.35045639, 14.1587136 , 11.3989477 ,  1.        ])
In [47]:
clf.predict([[22.63809831, 24.57126294, 18.54161034]])  # 对当个样本类别进行预测
Out[47]:
array([1.])
In [49]:
# 验证准确率
from sklearn.metrics import accuracy_score
print('模型准确率为:',accuracy_score(y_test, clf.predict(x_test)))
 
模型准确率为: 1.0
In [50]:
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
for x, y, z, p in zip(x_test[:,0], x_test[:,1], x_test[:,2], y_test):
if int(p)==1:
ax.scatter(x, y, z, c='r')
elif int(p)==2:
ax.scatter(x, y, z, c='y')
else:
ax.scatter(x, y, z, c='g')
ax.set_zlabel('Z') # 坐标轴
ax.set_ylabel('Y')
ax.set_xlabel('X')
plt.show()
 
aaarticlea/png;base64,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
" alt="" />

机器学习回顾篇(12):集成学习之Bagging与随机森林的更多相关文章

  1. 机器学习回顾篇(13):集成学习之AdaBoost

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  2. Bagging与随机森林算法原理小结

    在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系.另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合. ...

  3. [白话解析] 通俗解析集成学习之bagging,boosting & 随机森林

    [白话解析] 通俗解析集成学习之bagging,boosting & 随机森林 0x00 摘要 本文将尽量使用通俗易懂的方式,尽可能不涉及数学公式,而是从整体的思路上来看,运用感性直觉的思考来 ...

  4. 机器学习 —— 决策树及其集成算法(Bagging、随机森林、Boosting)

    本文为senlie原创,转载请保留此地址:http://www.cnblogs.com/senlie/ 决策树--------------------------------------------- ...

  5. 机器学习总结(二)bagging与随机森林

    一:Bagging与随机森林 与Boosting族算法不同的是,Bagging和随机森林的个体学习器之间不存在强的依赖关系,可同时生成并行化的方法. Bagging算法 bagging的算法过程如下: ...

  6. Bagging之随机森林

    随机森林(Random Forest)是一种Bagging(Bootstrap Aggregating)集成算法,在样本随机(样本扰动)的基础上,进一步运用特征随机(属性扰动)的机制,得到比一般的Ba ...

  7. (数据科学学习手札26)随机森林分类器原理详解&Python与R实现

    一.简介 作为集成学习中非常著名的方法,随机森林被誉为“代表集成学习技术水平的方法”,由于其简单.容易实现.计算开销小,使得它在现实任务中得到广泛使用,因为其来源于决策树和bagging,决策树我在前 ...

  8. [ML学习笔记] 决策树与随机森林(Decision Tree&Random Forest)

    [ML学习笔记] 决策树与随机森林(Decision Tree&Random Forest) 决策树 决策树算法以树状结构表示数据分类的结果.每个决策点实现一个具有离散输出的测试函数,记为分支 ...

  9. Bagging与随机森林(RF)算法原理总结

    Bagging与随机森林算法原理总结 在集成学习原理小结中,我们学习到了两个流派,一个是Boosting,它的特点是各个弱学习器之间存在依赖和关系,另一个是Bagging,它的特点是各个弱学习器之间没 ...

随机推荐

  1. Myeclipse 方法中文注释看不到

    参考以下几种解决方式: 1 改变整个文件类型的编码格式 1) eclipse->window->preferences->General->Content Types 2) 找 ...

  2. Java练习 SDUT-1580_闰年

    闰年 Time Limit: 1000 ms Memory Limit: 32768 KiB Problem Description 时间过得真快啊,又要过年了,同时,我们的人生也增长了一年的阅历,又 ...

  3. ros:出现:error: ros/ros.h: No such file or directory

    出现这个问题是因为在cmakelist.txt中没有声明对roscpp的依赖.在find_package中添加roscpp,重新执行就ok了.

  4. Quick BI 3.0 - 强大的多维分析表格:交叉表

    写在开头 对于普通的表格展示数据,相信大家都非常熟悉了,今天给大家介绍的是BI领域的分析利器-交叉表,这个在BI分析场景中使用占比最多的分析利器.通过交叉表对数据的承载和管理,用户可以一目了然地分析出 ...

  5. day2_python之字符编码

    一 .计算机基础知识 二.文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放与内存中的, ...

  6. iptables 网址转译 (Network Address Translation,NAT)

    当封包流经NAT電腦時,其位址/通訊端口會被修改,以達到改变包目的地(或旅程),或是让目的地误以为包是源自NAT电脑的效果.換言之,对封包执行NAT的电脑,可以成为新包的来源或目的地,或是成为真正来源 ...

  7. 学习微信小程序

    1.从小程序指南文档开始看起:小程序指南 2.开发者工具下载:小程序开发工具

  8. 使用提示(Hints)

    对于表的访问,可以使用两种Hints. FULL 和 ROWID FULL hint 告诉ORACLE使用全表扫描的方式访问指定表. 例如: SELECT /*+ FULL(EMP) */ * FRO ...

  9. 【原生JS】滑动门效果

    效果图: 思路:通过每次鼠标移动至目标上使所有图片重置为初始样式再向左移动目标及其左侧每个图片隐藏部分距离即实现. HTML: <!DOCTYPE html> <html> & ...

  10. <STL源码剖析> 6.3.6 power

    计算power的算法说明 http://www.sxt.cn/u/324/blog/2112 翻译自  http://videlalvaro.github.io/2014/03/the-power-a ...