机器学习回顾篇(6):KNN算法
.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 引言¶
本文将从算法原理出发,展开介绍KNN算法,并结合机器学习中常用的Iris数据集通过代码实例演示KNN算法用法和实现。
2 算法原理¶
KNN(kNN,k-NearestNeighbor)算法,或者说K近邻算法,应该算是机器学习中众多分类算法最好理解的一个了。古语有云:物以类聚,人以群分。没错,KNN算法正是这一思想为核心,对数据进行分类。
而所谓K近邻,意思是对于每一个待分类样本,都可以以与其最近的K个样本点的多数分类来来进行划分。举个例子,办公室新来了一个同事,他的位置边上坐着的10个(K=10)同事都是大多是Python程序员,我们会猜测这个新同事是Python程序员;如果把判断依据扩大的整个办公室,假设办公室有50个人(K=50),其中java程序员35个,那么我们就会认为这个新同事是java程序员。
回到KNN算法,对数据进行分类的思想和流程与我们判断新同事的工作是一样的:
(1)计算待分类样本与所有已知分类的样本之间的距离;
(2)对多有距离进行按升序排序;
(3)取前K个样本;
(4)统计前K个样本中各分类出现的频数;
(5)将待分类样本划分到频数最高的分类中。
好了,我想现在你应该对KNN算法有了基本的认识了。不过有几个问题还得明确一下:
K值如何确定?
如何度量距离?
先来说说如何确定K值。对于K值,从KNN算法的名称中,我们可以看出K值得重要性是毋庸置疑的。我们用下图的例子来说一说K值得样本分类的重要性: aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgYAAAC7CAYAAAAe9FYiAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFEmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0xMC0wM1QyMjoyODozNiswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTktMTAtMDNUMjI6MzA6MjgrMDg6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMTktMTAtMDNUMjI6MzA6MjgrMDg6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YzU0NTdlMWUtMjhhNC0zZTQ0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" alt="image" /> 图中所有圆点构成一个数据集,圆点颜色代表分类,那么,图中无色圆点划分到哪个类呢?
当K=1时,离透明点最近的点是蓝点,那么我们应该将透明圆点划分到蓝点所在类别中;
当K=5时,离透明点最近的5个点中有4个红点,1个蓝点,那么我们应该将透明圆点划分到红点所属的类别中;
当K=10时,离透明点最近的10个点中有4个红点,6个蓝点,那么我们应该将透明圆点划分到蓝点所属的类别中。
你看,最终的结果因K值而异,K值过大过小都会对数据的分类产生不同程度的影响:
当K取较小值时,意味着根据与待测样本距离较小的小范围内样本对待测样本的类别进行预测,这么做的优点是较远范围的样本数据不会对分类结果产生影响,训练误差(机器学习模型在训练数据集上表现出的误差叫做训练误差)较小。但却容易导致过拟合现象的产生,增大泛化误差(在任意一个测试数据样本上表现出的误差的期望值叫做泛化误差)模型变得复杂,一旦带测验本附近有异常数据存在,分类经过就可能会产生较大的影响,例如上图上K=1时,如果最近的蓝点是异常数据,那么对透明圆点的预测结果就因此变得异常。
当K较大值时,意味着综合更大范围的样本对待测验本类别进行预测,优点是可以减少泛化误差,但训练误差随之增大,模型变得简单。一个极端的例子就是如上图所示,当K取值为整个数据集规模时,整个预测过程就没有太大价值,所有待测样本类别都会被预测为数据集中样本数量多的一类。
对于K值的确定,目前并没有专门的理论方案,一个较普遍的做法就是将数据集分为两部分,一部分用作训练集,一部分用作测试集,从K取一个较小值开始,逐步增加K值,最终去准确率最高的一个K值。
一般而言,K取值不超过20,上限是n的开方,随着数据集的增大,K的值也要增大。另外,K的取值尽量要取奇数,以保证在计算结果最后会产生一个较多的类别,如果取偶数可能会产生相等的情况,不利于预测。
关于距离度量,我们最熟悉的、使用最广泛的就是欧式距离了。对于$d$维数据点$x$和$y$之间的欧氏距离定义为: $$E(x,y) = \sqrt {\sum\limits_{i = 0}^d {{{({x_i} - {y_i})}^2}} } $$
除了欧氏距离外,距离度量方法还有余弦距离、哈曼顿距离、切比雪夫距离等,但使用不多,不介绍了。
最后总结一下KNN算法:
KNN的主要优点有:
1) 理论成熟,思想简单,既可以用来做分类也可以用来做回归
2) 可用于非线性分类
3) 和朴素贝叶斯之类的算法比,对数据没有假设,准确度高,对异常点不敏感
4) 由于KNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,KNN方法较其他方法更为适合
5)该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分
KNN的主要缺点有:
1)计算量大,尤其是特征数非常多的时候
2)样本不平衡的时候,对稀有类别的预测准确率低
3)使用懒散学习方法,基本上不学习,导致预测时速度比起逻辑回归之类的算法慢
4)相比决策树模型,KNN模型可解释性不强
3 Python实现KNN算法¶
我们用Python来手动实现KNN算法,采用的数据集为Iris数据集,可以从UCI官网上下载,然后放到当前目录下:
# -*- coding: utf-8 -*-
import pandas as pd
from sklearn.utils import shuffle
# 读取数据,并指定列名
names = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class_name'] # 为每列指定一个列名
iris_data = pd.read_csv('./data/iris.data',names=names)
查看一下数据的基本情况:
iris_data.describe().T
aaarticlea/png;base64,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" alt="image" />
可以看到,各属性均值、值域各不相同,为了消除各属性因为取值范围的不同对算法的不良影响,最好对数据进行归一化:
# 数据归一化
for col in names[:-1]:
clo_max = iris_data[col].max()
clo_min = iris_data[col].min()
iris_data[col] = (iris_data[col] - clo_min) / (clo_max - clo_min)
iris_data.head(10)
aaarticlea/png;base64,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" alt="image" />
源数据集是根据样本类别进行排序的,所以需要先打乱数据:
iris_data = shuffle(iris_data) # 打乱数据
iris_data = iris_data.reset_index(drop=True) # 重设索引
iris_data.head(10)
aaarticlea/png;base64,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" alt="image" />
将数据集分为两部分,一部分用作训练模型,一部分用作测试模型:
train_data = iris_data[:120] # 前120条作为训练集
test_data = iris_data[120:] # 120~150作为作测试集
def distance(data1,data2): # 计算两点距离
dist = 0
for i, j in zip(data1, data2):
dist = dist + (i - j) ** 2
dist = dist ** 0.5
return dist
def knn(predict_data, train_data, k):
dist_list = []
for index, row in train_data.iterrows(): # 与每一个训练集中数据计算距离
dist = distance(predict_data[:-1], row[:-1])
dist_list.append(dist)
dist_df = train_data.loc[:,['class_name']]
dist_df['distance'] = dist_list # 将距离和类标签放入同一DataFrame中
dist_df = dist_df.sort_values(by=['distance'],ascending=True) # 根据距离进行升序排序
dist_df_k = dist_df[:k] #取前K个
predict_class = 'Iris-setosa'
class_num = 0
for class_name in ['Iris-setosa','Iris-versicolor','Iris-virginica']: # 统计三个类别那个最多
temp_num = dist_df_k.groupby(['class_name']).size().get(class_name,0) # 各类别的数量
if temp_num > class_num:
predict_class = class_name
class_num = temp_num
return predict_class
def predict(test_data, train_data, k):
predict_class_list = []
for _, test_row in test_data.iterrows():
predict_class = knn(test_row, train_data, k)
predict_class_list.append(predict_class)
result_df = test_data.copy()
result_df['predict_class'] = predict_class_list
print(result_df.loc[:,['class_name','predict_class']].head(10))
return result_df
result_df = predict(test_data, train_data, 10)
# 计算准确率
def calculate_accuracy(result_df):
sum = len(result_df)
right = 0
for index, row in result_df.iterrows():
if row['class_name'] == row['predict_class']:
right += 1
accuracy = right / sum
print('准确率:',accuracy)
calculate_accuracy(result_df)
4 sklearn库中的KNN算法¶
最后通过调用sklearn库中的KNN算法来实现Iris数据预测。
虽然sklearn库中自带Iris数据集,不过为了更好与上一章节实现进行对比,我们还是和上面一样从文件中读取数据。
from sklearn.neighbors import KNeighborsClassifier # KNN算法
from sklearn.model_selection import train_test_split # 分割数据集
from sklearn.preprocessing import MinMaxScaler # 数据归一化
import pandas as pd
# 读取数据,并指定列名
names = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class_name'] # 为每列指定一个列名
iris_data = pd.read_csv('iris.data',names=names)
在使用sklearn库进行预测时,属性和分类必须分开保存:
iris_x = iris_data.loc[:,['sepal_length', 'sepal_width', 'petal_length', 'petal_width']] # 取出所有属性
iris_y = iris_data.loc[:,['class_name']] # 取出所有分类
用sklearn自带库对数据进行归一化:
iris_x = MinMaxScaler().fit_transform(iris_x)
# 将数据分为训练集和测试机,train_test_split自带打乱功能
train_data_x,test_data_x,train_data_y,test_data_y = train_test_split(iris_x, iris_y, test_size=0.25, random_state=0)
train_data_y = [elem[0] for elem in train_data_y.values] # 转换为一维list,训练模型时类别最好使用一维数组存放
# 定义模型
knn=KNeighborsClassifier(n_neighbors=10)
# 训练模型
knn.fit(train_data_x,train_data_y)
result=knn.predict(test_data_x) # 预测
test_data_y = test_data_y.reset_index(drop=True) # 重设索引,不然索引也是乱序的,下面不好遍历
# 计算准确率
count=0
for i,row in test_data_y.iterrows():
if result[i]==row['class_name']:
count+=1
print('准确率:',float(count)/float(len(test_data_y)))
机器学习回顾篇(6):KNN算法的更多相关文章
- python机器学习(2:KNN算法)
1.KNN 简介:knn算法是监督学习中分类方法的一种.它又被叫k近邻算法,是一个概念极其简单而分类效果又很优秀的分类算法. 核心思想:在训练集中选出离输入的数据最近的k个数据,根据这k个数据的类别判 ...
- 机器学习回顾篇(9):K-means聚类算法. slides
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- SVM(支持向量机)与统计机器学习 & 也说一下KNN算法
因为SVM和统计机器学习内容很多,所以从 http://www.cnblogs.com/charlesblc/p/6188562.html 这篇文章里面分出来,单独写. 为什么说SVM和统计学关系很大 ...
- 机器学习第一篇——最近邻kNN
机器学习监督学习中,根据解决问题的连续性和离散型,分为分类问题和回归问题.最邻近算法kNN是一种最为直接和简便的分类方法. kNN本质上,是计算目标到模型的欧式距离,从而判定目标所属的类别. 首先,在 ...
- 机器学习回顾篇(7):决策树算法(ID3、C4.5)
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 机器学习回顾篇(12):集成学习之Bagging与随机森林
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 机器学习回顾篇(13):集成学习之AdaBoost
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 机器学习回顾篇(15):集成学习之GDBT
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 机器学习回顾篇(8):CART决策树算法
1 引言 上一篇博客中介绍了ID3和C4.5两种决策树算法,这两种决策树都只能用于分类问题,而本文要说的CART(classification and regression tree)决策树不仅能用于 ...
随机推荐
- 逆向破解之160个CrackMe —— 025
CrackMe —— 025 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...
- 第二十四届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题
第二十四届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题 1.原题呈现 2.试题答案 3.题目解析 因博客园无法打出公式等,所以给你们几个小编推荐的链接去看看,在这里小编深感抱歉! https ...
- 关于工作流引擎ccflow待办分类 研究与技术实现
关于工作流引擎待办分类 研究与技术实现 关键字:工作流引擎 BPM系统 待办类型 名词:待办 概要介绍:待办就是当前的登录人员要处理的工作,在工作流程里面的节点类型不同,业务场景不同,我们把待办分为如 ...
- P2805 [NOI2009]植物大战僵尸 + 最大权闭合子图 X 拓扑排序
传送门:https://www.luogu.org/problemnew/show/P2805 题意 有一个n * m的地图,你可以操纵僵尸从地图的右边向左边走,走的一些地方是有能量值的,有些地方会被 ...
- 2018年全国多校算法寒假训练营练习比赛(第五场)H Tree Recovery
Tree Recovery 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 链接:https://w ...
- poj2528 Mayor's posters(线段树区间修改+特殊离散化)
Description The citizens of Bytetown, AB, could not stand that the candidates in the mayoral electio ...
- codeforces 701 D. As Fast As Possible(数学题)
题目链接:http://codeforces.com/problemset/problem/701/D 题意:给你n个人,每个人走路的速度v1,有一辆车速度为v2,每次可以载k个人,总路程为l,每个人 ...
- JS数据结构第六篇 --- 二叉树力扣练习题
1.第226题:翻转二叉树 递归+迭代两种实现方式: /** 反转二叉树 * Definition for a binary tree node. * function TreeNode(val) { ...
- Python学习之旅:使用virtualenv创建Python环境及PyQT5环境配置
一.写在前面 从学 Python 的第一天起,我就知道了使用 pip 命令来安装包,从学习爬虫到学习 Web 开发,安装的库越来越多,从 requests 到 lxml,从 Django 到 Flas ...
- springmvc两种非注解的处理器映射器
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...