Notes : <Hands-on ML with Sklearn & TF> Chapter 3
Chapter 3-Classification
.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";
}
* {
-moz-
}
*:before,
*:after {
-moz-
}
html {
font-size: 10px;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
}
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,
h7,
h4,
h5,
h6,
.h1,
.h2,
.h7,
.h4,
.h5,
.h6 {
font-family: inherit;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
h1 small,
h2 small,
h7 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h7 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h7 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h7 .small,
.h4 .small,
.h5 .small,
.h6 .small {
font-weight: normal;
line-height: 1;
color: #777777;
}
h1,
.h1,
h2,
.h2,
h7,
.h7 {
margin-top: 18px;
margin-bottom: 9px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h7 small,
.h7 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h7 .small,
.h7 .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;
}
h7,
.h7 {
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"] {
-moz-
}
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.2.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.2.0');
src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.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;
}
.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;
}
@-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 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.fa-rotate-180 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.fa-rotate-270 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.fa-flip-horizontal {
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 {
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:before {
content: "\f09a";
}
.fa-github:before {
content: "\f09b";
}
.fa-unlock:before {
content: "\f09c";
}
.fa-credit-card:before {
content: "\f09d";
}
.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 {
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: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-rebel:before {
content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
content: "\f1d1";
}
.fa-git-square:before {
content: "\f1d2";
}
.fa-git:before {
content: "\f1d3";
}
.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";
}
/*!
*
* 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 {
-moz-
}
.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;
}
/**
* 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 {
padding-bottom: 5px;
padding-top: 5px;
-moz-
}
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;
}
@media (max-width: 991px) {
#ipython_notebook {
margin-left: 10px;
}
}
[dir="rtl"] #ipython_notebook {
float: right !important;
}
#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;
-moz-
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#login_widget {
float: right;
}
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;
}
@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;
}
/*!
*
* 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 {
text-align: center;
vertical-align: middle;
display: inline;
opacity: 0;
z-index: 2;
width: 12ex;
margin-right: -12ex;
}
.alternate_upload .btn-upload {
height: 22px;
}
/**
* Primary styles
*
* Author: Jupyter Development Team
*/
[dir="rtl"] #tabs li {
float: right;
}
ul#tabs {
margin-bottom: 4px;
}
[dir="rtl"] ul#tabs {
margin-right: 0px;
}
ul#tabs a {
padding-top: 6px;
padding-bottom: 4px;
}
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 {
float: left !important;
}
[dir="rtl"] .list_toolbar .pull-right {
padding-top: 1px;
float: left !important;
}
[dir="rtl"] .list_toolbar .pull-left {
float: right !important;
}
.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: baseline;
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;
}
.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_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;
}
.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;
}
#tree-selector {
padding-right: 0px;
}
[dir="rtl"] #tree-selector a {
float: right;
}
#button-select-all {
min-width: 50px;
}
#select-all {
margin-left: 7px;
margin-right: 2px;
}
.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.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.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.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.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;
}
[dir="rtl"] #new-menu {
text-align: right;
}
.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;
}
[dir="rtl"] #running .col-sm-8 {
float: right !important;
}
.delete-button {
display: none;
}
.duplicate-button {
display: none;
}
.rename-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.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.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.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.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);
}
}
/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI colors. */
.ansibold {
font-weight: bold;
}
/* 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;
-moz-
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;
border-left-width: 1px;
padding-left: 5px;
background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
}
div.cell.jupyter-soft-selected {
border-left-color: #90CAF9;
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 {
border-color: #ababab;
border-left-width: 0px;
padding-left: 6px;
background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%);
}
@media print {
div.cell.selected {
border-color: transparent;
}
}
div.cell.selected.jupyter-soft-selected {
border-left-width: 0;
padding-left: 6px;
background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%);
}
.edit_mode div.cell.selected {
border-color: #66BB6A;
border-left-width: 0px;
padding-left: 6px;
background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%);
}
@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. */
padding: 0.4em;
}
.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. We need the 0 value because of how we size */
/* .CodeMirror-lines */
padding: 0;
border: 0;
border-radius: 0;
}
/*
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;
}
/* 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: 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 h7 {
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 h7: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 {
list-style: disc;
margin: 0em 2em;
padding-left: 0px;
}
.rendered_html ul ul {
list-style: square;
margin: 0em 2em;
}
.rendered_html ul ul ul {
list-style: circle;
margin: 0em 2em;
}
.rendered_html ol {
list-style: decimal;
margin: 0em 2em;
padding-left: 0px;
}
.rendered_html ol ol {
list-style: upper-alpha;
margin: 0em 2em;
}
.rendered_html ol ol ol {
list-style: lower-alpha;
margin: 0em 2em;
}
.rendered_html ol ol ol ol {
list-style: lower-roman;
margin: 0em 2em;
}
.rendered_html ol ol ol ol ol {
list-style: decimal;
margin: 0em 2em;
}
.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;
}
.rendered_html pre,
.rendered_html code {
border: 0;
background-color: #fff;
color: #000;
font-size: 100%;
padding: 0px;
}
.rendered_html blockquote {
margin: 1em 2em;
}
.rendered_html table {
margin-left: auto;
margin-right: auto;
border: 1px solid black;
border-collapse: collapse;
}
.rendered_html tr,
.rendered_html th,
.rendered_html td {
border: 1px solid black;
border-collapse: collapse;
margin: 1em 2em;
}
.rendered_html td,
.rendered_html th {
text-align: left;
vertical-align: middle;
padding: 4px;
}
.rendered_html th {
font-weight: bold;
}
.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;
}
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;
-moz-
}
a.anchor-link:link {
text-decoration: none;
padding: 0px 20px;
visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h7: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.unrendered .text_cell_render {
display: none;
}
.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 {
-moz-
height: 100%;
}
div#notebook_panel {
margin: 0px;
padding: 0px;
-moz-
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;
-moz-
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;
}
/* 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;
}
.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 {
float: right !important;
float: right;
}
#kernel_logo_widget .current_kernel_logo {
display: none;
margin-top: -1px;
margin-bottom: -1px;
width: 32px;
height: 32px;
}
#menubar {
-moz-
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;
}
.nav-wrapper {
border-bottom: 1px solid #e7e7e7;
}
i.menu-icon {
padding-top: 4px;
}
ul#help_menu li a {
overflow: hidden;
padding-right: 2.2em;
}
ul#help_menu li a i {
margin-right: -1.2em;
}
.dropdown-submenu {
position: relative;
}
.dropdown-submenu > .dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -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.pull-left {
margin-right: .3em;
}
.dropdown-submenu > a:after.pull-right {
margin-left: .3em;
}
.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;
}
.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;
}
#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;
}
#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;
}
#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.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.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.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.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.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.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;
-moz-
}
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 {
margin-top: 6px;
}
span.save_widget span.filename {
height: 1em;
line-height: 1em;
padding: 3px;
margin-left: 16px;
border: none;
font-size: 146.5%;
border-radius: 2px;
}
span.save_widget span.filename:hover {
background-color: #e6e6e6;
}
span.checkpoint_status,
span.autosave_status {
font-size: small;
}
@media (max-width: 767px) {
span.save_widget {
font-size: small;
}
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;
-moz-
}
.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;
}
#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;
}
.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;
}
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;
}
.cmd-palette .modal-body {
padding: 7px;
}
.cmd-palette form {
background: white;
}
.cmd-palette input {
outline: none;
}
.no-shortcut {
display: none;
}
.command-shortcut:before {
content: "(command)";
padding-right: 3px;
color: #777777;
}
.edit-shortcut:before {
content: "(edit)";
padding-right: 3px;
color: #777777;
}
#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;
}
#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 */
-->
MNIST¶
- MNIST is a dataset which has 70,000 small images
- "Hello World" of Machine Learning
# fetch MNIST,
from sklearn.datasets import fetch_mldata
mnist = fetch_mldata('MNIST original')
#但是总是显示下载失败,下载mnist-original.mat到~/scikit_learn_data/mldata/内。
#mldata.org//google
- A DESCR key describing the dataset
- A data key containing an array with one row per instance and one column per feature
- A target containing an array with the labels
X, y = mnist["data"],mnist["target"]
print(X.shape,y.shape) #784 = 28pixels x 28pixels from 0-255(white-black)
(70000, 784) (70000,)
#show
%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt some_digit = X[12345]
some_digit_image = some_digit.reshape(28,28) plt.imshow(some_digit_image, cmap=matplotlib.cm.binary, interpolation="nearest")
plt.axis('off')
plt.show()
AAALEgAACxIB0t1+/AAABSNJREFUeJzt3TGPjFscwOGZGxEhETRKhY3QC4mISrWNQiI+w/YShURU
PoDIdr6EUiHbUNBoEEKiUNkKtVW4ubnNHHZnd3bt73na/553TvPLKc6+M9ONjY0J0PPPbm8A2B3i
hyjxQ5T4IUr8ECV+iBI/RIkfosQPUQcW/Hn+nRB23vRP/sjJD1HihyjxQ5T4IUr8ECV+iBI/RIkf
osQPUeKHKPFDlPghSvwQJX6IEj9EiR+ixA9R4oco8UOU+CFK/BAlfogSP0SJH6LED1HihyjxQ5T4
IUr8ECV+iFr0T3TDf96/fz+cnzlzZji/ffv2cH7//v1N76nEyQ9R4oco8UOU+CFK/BAlfogSP0S5
52fXfP/+fTifTqfD+bNnz7ZzOzlOfogSP0SJH6LED1HihyjxQ5T4Ico9P7vmwYMHc60/ceLENu2k
yckPUeKHKPFDlPghSvwQJX6IctXHjnr79u3M2dOnT4drDx8+PJzfunVrS3viFyc/RIkfosQPUeKH
KPFDlPghSvwQ5Z6fHbW+vj5z9unTp+Ha3/3E9qVLl7a0J35x8kOU+CFK/BAlfogSP0SJH6LED1Hu
+dlRFy5cmDlbXl4erj19+vR2b4f/cfJDlPghSvwQJX6IEj9EiR+ixA9R7vmZy8rKynB+9OjRmbPL
ly8P1169enVLe+LPOPkhSvwQJX6IEj9EiR+ixA9R4oco9/wMvXr1ajhfXV0dzqfT6czZo0ePhmuP
HTs2nDMfJz9EiR+ixA9R4oco8UOU+CHKVR9Dd+7cmWv9kSNHZs7OnTs317OZj5MfosQPUeKHKPFD
lPghSvwQJX6Ics8f9+LFi+F8bW1truffu3dv5uzixYtzPZv5OPkhSvwQJX6IEj9EiR+ixA9R4oco
9/xxz58/H86/ffs2nB88eHA4v3Llyqb3xGI4+SFK/BAlfogSP0SJH6LED1Hihyj3/HFPnjwZzkc/
sT2ZTCY3b94czs+fP7/pPbEYTn6IEj9EiR+ixA9R4oco8UOU+CFqurGxscjPW+iHMZl8/fp1OF9a
WhrO19fXh/MfP35sek/suPE/Z/zLyQ9R4oco8UOU+CFK/BAlfojySu8+9/Dhw+H8d1d5J0+e3M7t
sIc4+SFK/BAlfogSP0SJH6LED1Hihyj3/PvAly9fZs5WV1fnevbdu3fnWs/e5eSHKPFDlPghSvwQ
JX6IEj9EiR+ifHX3X2B0jz+ZTCY3btyYOVtbWxuuPXXq1HD+5s2b4fzQoUPDObvCV3cDs4kfosQP
UeKHKPFDlPghSvwQ5X3+v8DLly+H89Fd/vLy8nDt9evXh3P3+PuXkx+ixA9R4oco8UOU+CFK/BDl
ld6/wLVr14bzx48fz5y9e/duuHZpaWlLe2JP80ovMJv4IUr8ECV+iBI/RIkfosQPUV7p3QM+f/48
nL9+/XpBO6HEyQ9R4oco8UOU+CFK/BAlfogSP0S5598DPn78OJx/+PBhOD979uzM2fHjx7e0J/Y/
Jz9EiR+ixA9R4oco8UOU+CFK/BDle/th//G9/cBs4oco8UOU+CFK/BAlfogSP0SJH6LED1Hihyjx
Q5T4IUr8ECV+iBI/RIkfosQPUeKHKPFDlPghSvwQJX6IEj9EiR+ixA9R4oco8UOU+CFK/BAlfog6
sODP+6OfDgZ2npMfosQPUeKHKPFDlPghSvwQJX6IEj9EiR+ixA9R4oco8UOU+CFK/BAlfogSP0SJ
H6LED1HihyjxQ5T4IUr8ECV+iPoJxAWDSjXd8icAAAAASUVORK5CYII=
" alt="" />
# EXTRA
import numpy as np
def plot_digits(instances, images_per_row=10, **options):
size = 28
images_per_row = min(len(instances), images_per_row)
images = [instance.reshape(size,size) for instance in instances] #转换成100个像素阵
n_rows = (len(instances) - 1) // images_per_row + 1
row_images = []
n_empty = n_rows * images_per_row - len(instances)
images.append(np.zeros((size, size * n_empty)))
for row in range(n_rows):
rimages = images[row * images_per_row : (row + 1) * images_per_row]
row_images.append(np.concatenate(rimages, axis=1)) #实现list的reshape
image = np.concatenate(row_images, axis=0)
plt.imshow(image, cmap = matplotlib.cm.binary, **options)
plt.axis("off") plt.figure(figsize=(9,9))
example_images = np.r_[X[:12000:600], X[13000:30600:600], X[30600:60000:590]] #把这100个图连起来
plot_digits(example_images, images_per_row=10)
plt.show()
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
qYLh14komFJhGIZhGEZwJGVJqYyIyhdt2LAhaRtbaTd/9913O4XipZdeAuD6668/6O+feOKJTqlQ
XvLtt98GQiWQQTB48GAglG+sXr064KkQl19+ORDKq2rXr89K3oP33nvPmSDPOeecQNacV9RkTXz+
+efOmJYInH322YDnC1GUCPD+++8DXon1kiVLAPjwww/p0KED4BmeFYk2a9aM3r17AweNZnKFzHy/
//67uy07BlLl5q+99logpFToPFJkZ0pF3pAxXiW+imofffRRl+cXtWvXBqBAgQLu3+Kpp54CQp+R
FMzOnTvHbuFZIB/Siy++6JStl19+GYAjjzwSgJo1azoFTGp4uL8tlujvjB07FsA3lQK81xKu8Ouz
jebByCmmVBiGYRiG4QtJqVSI22+/HQh5Cdq3bw+Eck8Axx57bNzWlROkSixZssRFjtlRKMRjjz3m
8m7K5cv1rtLBWCGntyLYs846y0XwKq8MJzM1ad++fS5nmUjIb5Qd31G0CiRV86hUDbzcs59VOTfc
cAPgqQpbtmzh119/Bbzy1jp16rjHX3PNNQA0adIEgPvvvx+AcePGuXb3kZQsWdK5zmNBtGqmf/75
J9u/n5PHGtln586dNGvWDMCVp6taAkLRfDjPPvssEPJI6Pqj65L8EyVKlHB+ozJlysRw9ZmzcuVK
IHRu67tCZa5FihQBQudOZCWVzpVYk5qaCsA777xz0MeWK1cuQ+sAKUjxOC+S0qgZyfLly93BrQN5
9uzZAFSoUCGPS4sNKluqWrUqEOr8+cMPPwAhU2N22bhxIyeccAIAVapUAXDPEytkUlKqo0CBAkDI
bBptM5EZr776KhDaBOmL9+KLL/ZxpXkjqz4VukD27dvX3aYLgTpwStrdvn27e0wse1loc6lNA3gd
ALXB0bESjlIPV199dbr0A3ib8x49emQoW4sF2mytWrXKmWCXLVsGeCW74cisrXLAtLQ0tynXhj0W
6ZqsUA+NH374gb/++gvwNnxTp04FoH79+k6C//HHHwGoUaOGe4z+rXNaHH/88c5cd/7558fyZQDw
3XffufNcJb1Kr4YzadIkwHt9jRo1cteh8M8G4JFHHnGlwPFCx1SVKlVc0KDblPq78847GTp0KOD1
AJo2bRoQ/Vj0Ex03WaXulFqeMGGCM1YLGfT1msLRplDGeYCrrroK8D5bpRUjMCv7OMAAACAASURB
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
OK2VWYBTrAAAAABJRU5ErkJggg==
" alt="" />
y[12345]
1.0
- shuffle the train set
- similar cross-validation folds
- some algorithms sensitive to instance's order , similar instances in a row performs poorly
import numpy as np
X_train, X_test, y_train, y_test = X[:60000], X[60000:], y[:60000], y[60000:]
shuffle_index = np.random.permutation(60000)
X_train, y_train = X_train[shuffle_index], y_train[shuffle_index]
Train a Binary Classifer¶
- 判断一张图是不是某个数字就是一个 Binary Classifer问题。 如: 5 or not-5
- Stochastic Grandient Descant(SGD) Classifer 随机梯度下降分类
- train instance independently
y_train_5 = (y_train == 5)
y_test_5 = (y_test == 5) from sklearn.linear_model import SGDClassifier sgd_clf = SGDClassifier(random_state = 42)
sgd_clf.fit(X_train, y_train_5) sgd_clf.predict([X[36000]])
array([ True], dtype=bool)
Preformance Measures¶
Measuing Accuracy Using Cross-Validation
- need more control
from sklearn.model_selection import StratifiedKFold
from sklearn.base import clone
#StratifiedKFold performs stratified sampling
skfolds = StratifiedKFold(n_splits=3, random_state=42) for train_index, test_index in skfolds.split(X_train, y_train_5):
clone_clf = clone(sgd_clf)
X_train_folds = X_train[train_index]
y_train_folds = (y_train_5[train_index])
X_test_fold = X_train[test_index]
y_test_fold = (y_train_5[test_index]) clone_clf.fit(X_train_folds, y_train_folds)
y_pred = clone_clf.predict(X_test_fold)
n_current = sum(y_pred == y_test_fold)
print(n_current/len(y_pred))
0.953
0.9525
0.95515
# use cross_val_score
from sklearn.model_selection import cross_val_score
cross_val_score(sgd_clf, X_train, y_train_5, cv=3, scoring='accuracy')
array([ 0.953 , 0.9525 , 0.95515])
这并不代表精确度高,因为即使全为no-5s的交叉验证的正确率也有90%
from sklearn.base import BaseEstimator class Never5Classifier(BaseEstimator):
def fit(self, X, y=None):
pass
def predict(self, X):
return np.zeros((len(X), 1), dtype=bool) never_5_clf = Never5Classifier()
cross_val_score(never_5_clf, X_train, y_train_5, cv=3, scoring='accuracy')
array([ 0.90825, 0.9112 , 0.9095 ])
Confusion Matrix
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import cross_val_predict y_train_pred = cross_val_predict(sgd_clf, X_train, y_train_5, cv=3)
confusion_matrix(y_train_5, y_train_pred)
array([[53207, 1372],
[ 1415, 4006]])
y_train_perfect_predictions = y_train_5
confusion_matrix(y_train_5, y_train_perfect_predictions)
array([[54579, 0],
[ 0, 5421]])
Precision and Recall
from sklearn.metrics import precision_score, recall_score print(precision_score(y_train_5, y_train_pred))
print(recall_score(y_train_5, y_train_pred))
0.744886574935
0.738978048331
# f1 is the harmonic mean
from sklearn.metrics import f1_score
f1_score(y_train_5, y_train_pred)
0.7419205481989074
f1 favor classifier that has similar precision and recall</br> 但情况并不总是这样</br> 宁可错杀一百,不可放过一个:low recall, high precision , 如:视频等级划分;或者情况相反:如抓小偷</br>
Precision / Recall Tradeoff
- lowing the threshold increase recall and reduce precision
- sklearn doesn't let you set the threshold directly and give you access to the decision secores(use to prediction)
some_digit_index = 36000
some_digit = X[some_digit_index]
y_scores = sgd_clf.decision_function([some_digit])
y_scores
array([ 45981.28253526])
threshold = 0
y_some_digit_pred = (y_scores > threshold)
y_some_digit_pred
array([ True], dtype=bool)
threshold = 200000
y_some_digit_pred = (y_scores > threshold)
y_some_digit_pred
array([False], dtype=bool)
decide which threshlod to use
#使用交叉验证获取分数
y_scores = cross_val_predict(sgd_clf, X_train, y_train_5, cv=3, method="decision_function")
from sklearn.metrics import precision_recall_curve
#计算所有precision和recall
precisions, recalls, thresholds = precision_recall_curve(y_train_5, y_scores)
#画出来
def plot_precision_recall_vs_threshold(precisions, recalls, threshold):
plt.plot(thresholds, precisions[:-1], "b--", label="Precision")
plt.plot(thresholds, recalls[:-1], "g-", label="Recall")
plt.xlabel("Threshold")
plt.legend(loc="upper left")
plt.ylim([0,1]) plot_precision_recall_vs_threshold(precisions, recalls, thresholds)
plt.show()
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
3ppAT2QAAAAASUVORK5CYII=
" alt="" />
y_train_pred_90 = (y_scores > 250000)
precision_score(y_train_5, y_train_pred_90)
0.96514161220043571
recall_score(y_train_5, y_train_pred_90)
0.32687695997048516
just set the a high enough threshold to creat a classifier with virtually any precision
ROC 受试者工作特征曲线 : the true positive rate against the false positive rate
from sklearn.metrics import roc_curve fpr, tpr, thresholds = roc_curve(y_train_5, y_scores) def plot_roc_curve(fpr, tpr, label=None):
plt.plot(fpr, tpr, linewidth=2, label=label)
plt.plot([0,1], [0,1], 'k--')
plt.axis([0, 1, 0, 1])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate') plot_roc_curve(fpr, tpr)
plt.show()
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
AElFTkSuQmCC
" alt="" />
# compute the area under the curve(AUC)
from sklearn.metrics import roc_auc_score
roc_auc_score(y_train_5, y_scores)
0.9568006259068953
- positive calss is rare or more care the false negatives use the PR curve
- otherwise use the ROC(ROC, AUC)
- sklearn give decision_function() or predict_proba()(return an array containing an row per instance and a column per class, each containing the probability that the given instance belongs to the given calss)
from sklearn.ensemble import RandomForestClassifier forest_clf = RandomForestClassifier(random_state = 42)
y_probas_forest = cross_val_predict(forest_clf, X_train, y_train_5, cv=3, method="predict_proba")
# use the posobility as the scores
y_scores_forest = y_probas_forest[:,1]
fprs_forest, tprs_forest, thresholds_forest = roc_curve(y_train_5, y_scores_forest)
plt.plot(fpr, tpr, 'b:', label="SGD")
plot_roc_curve(fprs_forest, tprs_forest, "Random forest")
plt.legend(loc='bottom right')
plt.show()
/usr/local/lib/python3.5/dist-packages/matplotlib/legend.py:326: UserWarning: Unrecognized location "bottom right". Falling back on "best"; valid locations are
lower left
center right
upper right
center
right
upper center
lower right
upper left
center left
lower center
best six.iterkeys(self.codes))))
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
BmFZAAAAAElFTkSuQmCC
" alt="" />
roc_auc_score(y_train_5, y_scores_forest)
0.99114321301880992
- how to train binary classifier
- choose metric for task
- evaluate your classifiers using cross-validation
- select the Precision/Recall tradeoff that fits your needs and compare various medel using ROC curve and ROC/AUC scores
Multiclass Classification¶
- 有些算法本身支持多分类
- 也可使用多个二分类代替的策略
- 多个二分类,要分类时,每个都进行分类,选最高分(OvA)
- 为每一对训练一个分类,如:1-2,1-3,...,9-8,...,一共需要N(N-1)/2,称为one versus one(OvO)
- 一些数据集规模和算法规模关联性不强的使用OvO,如:SVM;其他的使用OvA
- sklearn在使用二分类处理多分类时,自动合适的使用OvA或者OvO
#try SGDClassifier
sgd_clf.fit(X_train, y_train)
sgd_clf.predict([some_digit])
array([ 5.])
some_digit_secores = sgd_clf.decision_function([some_digit])
some_digit_secores
array([[-305117.56076994, -572405.6562905 , -386686.20587505,
-198578.92561098, -312977.5748752 , 45981.28253526,
-752588.92027703, -425193.41816061, -692575.39314386,
-732446.97820597]])
np.argmax(some_digit_secores)
5
sgd_clf.classes_
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
sgd_clf.classes_[5] #巧了
5.0
#force sklearn to use OvO or OvA: use OneVsOneClassifer or OneVsRestClassifer
from sklearn.multiclass import OneVsOneClassifier ovo_clf=OneVsOneClassifier(SGDClassifier(random_state=42))
ovo_clf.fit(X_train, y_train)
ovo_clf.predict([some_digit])
array([ 5.])
forest_clf.fit(X_train, y_train)
forest_clf.predict([some_digit])
array([ 5.])
forest_clf.predict_proba([some_digit])
array([[ 0. , 0. , 0. , 0. , 0.1, 0.9, 0. , 0. , 0. , 0. ]])
cross_val_score(sgd_clf, X_train, y_train, cv=3, scoring='accuracy')
array([ 0.87037592, 0.88059403, 0.84912737])
#简单的对输入的缩放:StandardScaler
from sklearn.preprocessing import StandardScaler scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train.astype(np.float64))
cross_val_score(sgd_clf, X_train_scaled, y_train, cv=3, scoring='accuracy')
array([ 0.91071786, 0.90684534, 0.91233685])
Error Analysis¶
- look at the confusion matrix
- plot on the errors
- divide each value in confusion matrix by number of images in the corresopnding class
- fill the diagonals with zeros to keep only the errors
#1-1
y_train_pred = cross_val_predict(sgd_clf, X_train_scaled, y_train, cv=3)
conf_mx = confusion_matrix(y_train, y_train_pred)
conf_mx
array([[5729, 2, 23, 8, 11, 50, 49, 9, 40, 2],
[ 1, 6505, 42, 21, 6, 40, 6, 10, 100, 11],
[ 53, 41, 5336, 102, 81, 26, 84, 67, 154, 14],
[ 45, 45, 140, 5359, 6, 220, 36, 49, 134, 97],
[ 16, 30, 38, 10, 5361, 11, 50, 33, 77, 216],
[ 73, 41, 34, 184, 73, 4588, 104, 32, 195, 97],
[ 31, 28, 51, 1, 51, 86, 5613, 8, 49, 0],
[ 22, 21, 70, 30, 55, 12, 5, 5815, 18, 217],
[ 49, 173, 74, 151, 14, 153, 55, 21, 5021, 140],
[ 43, 37, 25, 85, 166, 32, 3, 204, 83, 5271]])
plt.matshow(conf_mx, cmap=plt.cm.gray)
plt.show()
AAALEgAACxIB0t1+/AAACvlJREFUeJzt3c+LXfUZx/HPJ/ODMbGood2YCUnAYhGxRIeiBkSMi7aK
InRhRaFusmk1iiDajf+AiC6KMMS6MegiBiyhWAvqoi5CJz8wZsaAqE2iEVNCVVxM5sfTxb2CNenc
M+197pnr836BkBlPvjzczHvOuXfO/Y4jQgBqWdf2AAAGj/CBgggfKIjwgYIIHyiI8IGCWgvf9s9t
n7D9ge0n2pqjKdubbb9le9b2cdu7256pCdsjto/YPtD2LE3Yvtz2Ptvv256zfVPbM/Vi+9Hu18R7
tl+2PdH2TL20Er7tEUl/kPQLSddI+rXta9qYZRUWJT0WEddIulHSb4dgZknaLWmu7SFW4TlJr0fE
TyT9VGt8dtubJD0saSoirpU0Iunedqfqra0z/s8kfRARH0bEeUmvSLq7pVkaiYgzEXG4++ev1PmC
3NTuVCuzPSnpDkl72p6lCduXSbpF0guSFBHnI+Jf7U7VyKikS2yPSlov6dOW5+mprfA3STr1rY9P
a41H9G22t0raLulgu5P09KykxyUttz1IQ9sknZX0YvfpyR7bG9oeaiUR8YmkpyWdlHRG0hcR8Ua7
U/XGi3urZPtSSa9KeiQivmx7nv/G9p2SPo+IQ23Psgqjkq6X9HxEbJf0taQ1/fqP7SvUuVrdJulK
SRts39/uVL21Ff4nkjZ/6+PJ7ufWNNtj6kS/NyL2tz1PDzsk3WX7Y3WeSt1m+6V2R+rptKTTEfHN
ldQ+db4RrGW3S/ooIs5GxIKk/ZJubnmmntoK/++Sfmx7m+1xdV4M+VNLszRi2+o895yLiGfanqeX
iHgyIiYjYqs6j++bEbGmz0QR8ZmkU7av7n5qp6TZFkdq4qSkG22v736N7NQaf0FS6lxaDVxELNr+
naS/qPMq6B8j4ngbs6zCDkkPSDpm+2j3c7+PiD+3ONP30UOS9nZPCB9KerDleVYUEQdt75N0WJ2f
/ByRNN3uVL2Zt+UC9fDiHlAQ4QMFET5QEOEDBRE+UFDr4dve1fYMqzFs80rMPAjDNm/r4UsaqgdM
wzevxMyDMFTzroXwAQxYyg08GzdujMnJyUbHnjt3Ths3bmx07LFjx/6fsYASIsK9jkm5ZXdyclIH
DvR/w5ctW7b0fU1cqHPL+XDJugM187Fo865ZLvWBgggfKIjwgYIIHyiI8IGCGoU/bHvgA1hZz/CH
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
" alt="" />
most images are on the main diagonal which means that they were classified correctly and 5s is darker means fewer 5s images in the dataset or classifier doesn't perform well
#2-1
row_sums = conf_mx.sum(axis=1, keepdims=True)
norm_conf_mx = conf_mx/row_sums
#2-2
np.fill_diagonal(norm_conf_mx, 0)
plt.matshow(norm_conf_mx, cmap=plt.cm.gray)
plt.show()
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
" alt="" />
- row represent the actual classes
- improve 8s, 9s, 3/5
- count the number of close loops
cl_a, cl_b = 3, 5
X_aa = X_train[(y_train == cl_a) & (y_train_pred == cl_a)]
X_ab = X_train[(y_train == cl_a) & (y_train_pred == cl_b)]
X_ba = X_train[(y_train == cl_b) & (y_train_pred == cl_a)]
X_bb = X_train[(y_train == cl_b) & (y_train_pred == cl_b)] plt.figure(figsize=(8,8))
plt.subplot(221)
plot_digits(X_aa[:25], images_per_row=5)
plt.subplot(222)
plot_digits(X_ab[:25], images_per_row=5)
plt.subplot(223)
plot_digits(X_ba[:25], images_per_row=5)
plt.subplot(224)
plot_digits(X_bb[:25], images_per_row=5)
plt.show()
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
" alt="" />
看到顶部的直线的底部的弧线中间的连接方式:偏向左边一条直线就是5,偏向右边就是3
Multilabel Classification¶
from sklearn.neighbors import KNeighborsClassifier #support multilabel classification y_train_large = (y_train >= 7)
y_train_odd = (y_train % 2 == 1)
y_multilabel = np.c_[y_train_large, y_train_odd] knn_clf = KNeighborsClassifier()
knn_clf.fit(X_train, y_multilabel)
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
metric_params=None, n_jobs=1, n_neighbors=5, p=2,
weights='uniform')
knn_clf.predict([some_digit])
array([[False, True]], dtype=bool)
#evaluate by f1 score
from sklearn.metrics import f1_score y_train_knn_pred = cross_val_predict(knn_clf, X_train, y_train, cv=3) f1_score(y_train, y_train_knn_pred, average='macro')
---------------------------------------------------------------------------
KeyboardInterrupt Traceback (most recent call last)
KeyboardInterrupt:
Multioutput Classification¶
import numpy.random as rnd
noise = rnd.randint(0, 100, (len(X_train), 784))
X_train_mod = X_train + noise
y_train_mod = X_train
noise = rnd.randint(0, 100, (len(X_test), 784))
X_test_mod = X_test + noise
y_test_mod = X_test
def plot_digit(data):
image = data.reshape(28, 28)
plt.imshow(image, cmap = matplotlib.cm.binary,
interpolation="nearest")
plt.axis("off") some_index = 5500
plt.subplot(121); plot_digit(X_test_mod[some_index])
plt.subplot(122); plot_digit(y_test_mod[some_index])
plt.show()
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
RU5ErkJggg==
" alt="" />
knn_clf.fit(X_train_mod, y_train_mod)
clean_digit=knn_clf.predict([X_test_mod[some_index]])
plot_digit(clean_digit)
AAALEgAACxIB0t1+/AAABU1JREFUeJzt3a9vFVkYgOF7N8XV4GgIkCBQYAgOi0KQVKAQkJCQYEn6
H+AQBEeCAYdC4lAoRBVcDQhAQiBgKrpikzWbOXT74xZ4n8d+nc4RfXPE6czMt7e3Z0DPX4e9AOBw
iB+ixA9R4oco8UOU+CFK/BAlfogSP0StLPl+/p0QDt58Jz9k54co8UOU+CFK/BAlfogSP0SJH6LE
D1HihyjxQ5T4IUr8ECV+iBI/RIkfosQPUeKHKPFDlPghSvwQJX6IEj9EiR+ixA9R4oco8UOU+CFK
/BAlfogSP0SJH6LED1HihyjxQ5T4IUr8ECV+iBI/RIkfosQPUeKHKPFDlPghSvwQJX6IEj9EiR+i
xA9R4oco8UOU+CFK/BAlfohaOewFwJ9oa2trOD9y5MiSVjLNzg9R4oco8UOU+CFK/BAlfogSP0Q5
5497//79cL5YLIbzkydPDuenTp2anH3//n147dra2nB+79694Xxzc3Ny9vTp0+G16+vrw/mPHz+G
8+vXrw/nd+7cmZx9+vRpeO1+sfNDlPghSvwQJX6IEj9EiR+ixA9R8+3t7WXeb6k3q5jP54e9hJwl
d/N/7egPws4PUeKHKPFDlPghSvwQJX6IEj9EeZ7/N/Dw4cPDXsKkjY2N4fzcuXMHdu+LFy8O56dP
nz6we/8J7PwQJX6IEj9EiR+ixA9R4oco8UOU5/l/AaP3y89ms9mFCxd2/bt/9p34lRX/6vEH8jw/
ME38ECV+iBI/RIkfosQPUc55luD169fD+V6O8maz2ezx48eTM0d5TLHzQ5T4IUr8ECV+iBI/RIkf
osQPUR7pXYJHjx4N57du3Tqwe//in5LmYHikF5gmfogSP0SJH6LED1HihyjxQ5Rz/iWYz3d07Hog
7t+/P5xfvnx5OD9z5sx+LoflcM4PTBM/RIkfosQPUeKHKPFDlPghyjn/L+DLly/D+fPnz4fza9eu
7frei8ViOL958+ZwfvXq1eF89K6C1dXV4bXsmnN+YJr4IUr8ECV+iBI/RIkfosQPUc75GXry5Mlw
fuPGjeF8fX19cvbs2bPdLImfc84PTBM/RIkfosQPUeKHKPFDlKM+ht68eTOcX7lyZTh/+/bt5Gxz
c3N47fnz54dzJjnqA6aJH6LED1HihyjxQ5T4IUr8EOWcnz35+PHjcH78+PFdX7u2trarNeGcHxgQ
P0SJH6LED1HihyjxQ5T4IWrlsBfA7+3Vq1fD+bFjxyZnzvEPl50fosQPUeKHKPFDlPghSvwQJX6I
cs7P0OfPn4fzu3fvDue3b9/ez+Wwj+z8ECV+iBI/RIkfosQPUeKHKK/uZmg+39FboCct+e+Lf3h1
NzBN/BAlfogSP0SJH6LED1HihyiP9C7B2bNnh/MHDx4M5+/evRvOT5w48X+X9K8XL17s+trZbDZ7
+fLlnq7n8Nj5IUr8ECV+iBI/RIkfosQPUeKHKOf8S7BYLIbzS5cuLWkl/7WxsTGcf/v2bThfXV3d
z+WwRHZ+iBI/RIkfosQPUeKHKPFDlPghyjn/Evzs3fVbW1vD+devX4fzDx8+TM6OHj06vHYv7wLg
92bnhyjxQ5T4IUr8ECV+iBI/RIkfouZL/n66j7XDwZvv5Ifs/BAlfogSP0SJH6LED1HihyjxQ5T4
IUr8ECV+iBI/RIkfosQPUeKHKPFDlPghSvwQJX6IEj9EiR+ixA9R4oeoZX+ie0evFAYOnp0fosQP
UeKHKPFDlPghSvwQJX6IEj9EiR+ixA9R4oco8UOU+CFK/BAlfogSP0SJH6LED1HihyjxQ5T4IUr8
ECV+iPob3byufrwOPwwAAAAASUVORK5CYII=
" alt="" />
Notes : <Hands-on ML with Sklearn & TF> Chapter 3的更多相关文章
- Notes : <Hands-on ML with Sklearn & TF> Chapter 1
<Hands-on ML with Sklearn & TF> Chapter 1 what is ml from experience E with respect to som ...
- Notes : <Hands-on ML with Sklearn & TF> Chapter 5
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- Notes : <Hands-on ML with Sklearn & TF> Chapter 7
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- Notes : <Hands-on ML with Sklearn & TF> Chapter 6
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- Notes : <Hands-on ML with Sklearn & TF> Chapter 4
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- Book : <Hands-on ML with Sklearn & TF> pdf/epub
非常好的书,最近发现了pdf版本,链接:http://www.finelybook.com/hands-on-machine-learning-with-scikit-learn-and-tensor ...
- H5 Notes:PostMessage Cross-Origin Communication
Javascript中要实现跨域通信,主要有window.name,jsonp,document.domain,cors等方法.不过在H5中有一种新的方法postMessage可以安全实现跨域通信,并 ...
- H5 Notes:Navigator Geolocation
H5的地理位置API可以帮助我们来获取用户的地理位置,经纬度.海拔等,因此我们可以利用该API做天气应用.地图服务等. Geolocation对象是我们获取地理位置用到的对象. 首先判断浏览器是否支持 ...
- notes:spm多重比较校正
SPM做完统计后,statistical table中的FDRc实际上是在该p-uncorrected下,可以令FDR-correcred p<=0.05的最小cluster中的voxel数目: ...
随机推荐
- EF 一个简单的使用
原文:https://www.cnblogs.com/leotsai/p/entity-framework-doesnt-need-additional-repository.html 花猫.NET的 ...
- 每日笔记-redis的理解及相关应用
原文链接:常见面试题 本文大纲与之类似,在其基础上加入了自己在实际项目中对部分知识点的理解 Q1:谈谈对redis的理解 Q2:谈谈实际应用中怎么用redis的 2.1 缓存 2.2 分布式锁 2.3 ...
- Commit can not be set while enrolled in a transaction
[java] Exception: java.sql.SQLException [java] Message: Commit can not be set while enrolled in a tr ...
- c# webBrowser 转图片
class NativeMethods { [ComImport] [Guid("0000010D-0000-0000-C000-000000000046")] [Interfac ...
- mysql学习笔记--go使用mysql
一. 连接数据库 a. //用户名:密码@[连接方式](主机名:端口号)/数据库名 db,_:=sql.Open("mysql","root:7758521123jf@( ...
- mysql学习笔记--数据库视图
一.视图 1. 概念 a. 视图是一张虚拟表,它表示一张表的部分或多张表的综合的结构 b. 视图仅仅是表结构,没有数据.视图的结构和数据建立在表的基础上 2. 创建视图 a. 语法: create [ ...
- 20175126《Java程序设计》第七周学习总结
# 20175126 2016-2017-2 <Java程序设计>第七周学习总结 ## 教材学习内容总结 - 本周学习方式主要为手动敲代码并理解内容学习. - 学习内容为教材第八章,本章主 ...
- React forwardRef:跳转引用
一 在DOM组件中使用 import React, { Component } from 'react'; // 跳转引用对象本身并不关心ref,而是由渲染函数转发ref const FancyBut ...
- swift 关于FDFullscreenPopGesture的右滑返回
关于导航栏右滑返回的工具库 FDFullscreenPopGesture 是 OC 版本,用了 runtime 等各种骚操作 关于 swift ,我在 UINavigationController 的 ...
- java使用ffmpeg实现上传视频的转码,提取视频的截图等功能
ffmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像,还可以进行屏幕录制,同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用. 1.能支持的格式 ff ...