From 131c8fe28922431c36a84dc3b1104f76ca4508b3 Mon Sep 17 00:00:00 2001 From: Nastya Bukina Date: Tue, 21 Aug 2018 10:02:21 +0300 Subject: [PATCH 1/5] new files for phone book --- css/bootstrap.css | 7737 +++++++++++++++++ css/main.css | 377 + .../glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../glyphicons-halflings-regular.svg | 288 + .../glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes images/user-face-mini.png | Bin 0 -> 22600 bytes images/user-face.png | Bin 0 -> 64550 bytes index.html | 40 + scss/_bootstrap-custom.scss | 24 + scss/base/_helpers.scss | 59 + scss/base/_include-media.scss | 560 ++ scss/base/_mixins.scss | 154 + scss/bootstrap.scss | 56 + scss/bootstrap/_alerts.scss | 73 + scss/bootstrap/_badges.scss | 68 + scss/bootstrap/_breadcrumbs.scss | 28 + scss/bootstrap/_button-groups.scss | 244 + scss/bootstrap/_buttons.scss | 168 + scss/bootstrap/_carousel.scss | 270 + scss/bootstrap/_close.scss | 36 + scss/bootstrap/_code.scss | 69 + scss/bootstrap/_component-animations.scss | 37 + scss/bootstrap/_dropdowns.scss | 216 + scss/bootstrap/_forms.scss | 617 ++ scss/bootstrap/_glyphicons.scss | 307 + scss/bootstrap/_grid.scss | 84 + scss/bootstrap/_input-groups.scss | 171 + scss/bootstrap/_jumbotron.scss | 54 + scss/bootstrap/_labels.scss | 66 + scss/bootstrap/_list-group.scss | 130 + scss/bootstrap/_media.scss | 66 + scss/bootstrap/_mixins.scss | 40 + scss/bootstrap/_modals.scss | 150 + scss/bootstrap/_navbar.scss | 662 ++ scss/bootstrap/_navs.scss | 242 + scss/bootstrap/_normalize.scss | 424 + scss/bootstrap/_pager.scss | 54 + scss/bootstrap/_pagination.scss | 89 + scss/bootstrap/_panels.scss | 271 + scss/bootstrap/_popovers.scss | 131 + scss/bootstrap/_print.scss | 101 + scss/bootstrap/_progress-bars.scss | 87 + scss/bootstrap/_responsive-embed.scss | 35 + scss/bootstrap/_responsive-utilities.scss | 179 + scss/bootstrap/_scaffolding.scss | 161 + scss/bootstrap/_tables.scss | 234 + scss/bootstrap/_theme.scss | 291 + scss/bootstrap/_thumbnails.scss | 38 + scss/bootstrap/_tooltip.scss | 101 + scss/bootstrap/_type.scss | 298 + scss/bootstrap/_utilities.scss | 55 + scss/bootstrap/_variables.scss | 874 ++ scss/bootstrap/_wells.scss | 29 + scss/bootstrap/mixins/_alerts.scss | 14 + .../bootstrap/mixins/_background-variant.scss | 12 + scss/bootstrap/mixins/_border-radius.scss | 18 + scss/bootstrap/mixins/_buttons.scss | 65 + scss/bootstrap/mixins/_center-block.scss | 7 + scss/bootstrap/mixins/_clearfix.scss | 22 + scss/bootstrap/mixins/_forms.scss | 88 + scss/bootstrap/mixins/_gradients.scss | 58 + scss/bootstrap/mixins/_grid-framework.scss | 81 + scss/bootstrap/mixins/_grid.scss | 122 + scss/bootstrap/mixins/_hide-text.scss | 21 + scss/bootstrap/mixins/_image.scss | 33 + scss/bootstrap/mixins/_labels.scss | 12 + scss/bootstrap/mixins/_list-group.scss | 32 + scss/bootstrap/mixins/_nav-divider.scss | 10 + .../bootstrap/mixins/_nav-vertical-align.scss | 9 + scss/bootstrap/mixins/_opacity.scss | 8 + scss/bootstrap/mixins/_pagination.scss | 24 + scss/bootstrap/mixins/_panels.scss | 24 + scss/bootstrap/mixins/_progress-bar.scss | 10 + scss/bootstrap/mixins/_reset-filter.scss | 8 + scss/bootstrap/mixins/_reset-text.scss | 18 + scss/bootstrap/mixins/_resize.scss | 6 + .../mixins/_responsive-visibility.scss | 21 + scss/bootstrap/mixins/_size.scss | 10 + scss/bootstrap/mixins/_tab-focus.scss | 9 + scss/bootstrap/mixins/_table-row.scss | 28 + scss/bootstrap/mixins/_text-emphasis.scss | 12 + scss/bootstrap/mixins/_text-overflow.scss | 8 + scss/bootstrap/mixins/_vendor-prefixes.scss | 222 + scss/main.scss | 376 + 86 files changed, 17933 insertions(+) create mode 100644 css/bootstrap.css create mode 100644 css/main.css create mode 100644 fonts/bootstrap/glyphicons-halflings-regular.eot create mode 100644 fonts/bootstrap/glyphicons-halflings-regular.svg create mode 100644 fonts/bootstrap/glyphicons-halflings-regular.ttf create mode 100644 fonts/bootstrap/glyphicons-halflings-regular.woff create mode 100644 fonts/bootstrap/glyphicons-halflings-regular.woff2 create mode 100644 images/user-face-mini.png create mode 100644 images/user-face.png create mode 100644 index.html create mode 100644 scss/_bootstrap-custom.scss create mode 100644 scss/base/_helpers.scss create mode 100644 scss/base/_include-media.scss create mode 100644 scss/base/_mixins.scss create mode 100644 scss/bootstrap.scss create mode 100644 scss/bootstrap/_alerts.scss create mode 100644 scss/bootstrap/_badges.scss create mode 100644 scss/bootstrap/_breadcrumbs.scss create mode 100644 scss/bootstrap/_button-groups.scss create mode 100644 scss/bootstrap/_buttons.scss create mode 100644 scss/bootstrap/_carousel.scss create mode 100644 scss/bootstrap/_close.scss create mode 100644 scss/bootstrap/_code.scss create mode 100644 scss/bootstrap/_component-animations.scss create mode 100644 scss/bootstrap/_dropdowns.scss create mode 100644 scss/bootstrap/_forms.scss create mode 100644 scss/bootstrap/_glyphicons.scss create mode 100644 scss/bootstrap/_grid.scss create mode 100644 scss/bootstrap/_input-groups.scss create mode 100644 scss/bootstrap/_jumbotron.scss create mode 100644 scss/bootstrap/_labels.scss create mode 100644 scss/bootstrap/_list-group.scss create mode 100644 scss/bootstrap/_media.scss create mode 100644 scss/bootstrap/_mixins.scss create mode 100644 scss/bootstrap/_modals.scss create mode 100644 scss/bootstrap/_navbar.scss create mode 100644 scss/bootstrap/_navs.scss create mode 100644 scss/bootstrap/_normalize.scss create mode 100644 scss/bootstrap/_pager.scss create mode 100644 scss/bootstrap/_pagination.scss create mode 100644 scss/bootstrap/_panels.scss create mode 100644 scss/bootstrap/_popovers.scss create mode 100644 scss/bootstrap/_print.scss create mode 100644 scss/bootstrap/_progress-bars.scss create mode 100644 scss/bootstrap/_responsive-embed.scss create mode 100644 scss/bootstrap/_responsive-utilities.scss create mode 100644 scss/bootstrap/_scaffolding.scss create mode 100644 scss/bootstrap/_tables.scss create mode 100644 scss/bootstrap/_theme.scss create mode 100644 scss/bootstrap/_thumbnails.scss create mode 100644 scss/bootstrap/_tooltip.scss create mode 100644 scss/bootstrap/_type.scss create mode 100644 scss/bootstrap/_utilities.scss create mode 100644 scss/bootstrap/_variables.scss create mode 100644 scss/bootstrap/_wells.scss create mode 100644 scss/bootstrap/mixins/_alerts.scss create mode 100644 scss/bootstrap/mixins/_background-variant.scss create mode 100644 scss/bootstrap/mixins/_border-radius.scss create mode 100644 scss/bootstrap/mixins/_buttons.scss create mode 100644 scss/bootstrap/mixins/_center-block.scss create mode 100644 scss/bootstrap/mixins/_clearfix.scss create mode 100644 scss/bootstrap/mixins/_forms.scss create mode 100644 scss/bootstrap/mixins/_gradients.scss create mode 100644 scss/bootstrap/mixins/_grid-framework.scss create mode 100644 scss/bootstrap/mixins/_grid.scss create mode 100644 scss/bootstrap/mixins/_hide-text.scss create mode 100644 scss/bootstrap/mixins/_image.scss create mode 100644 scss/bootstrap/mixins/_labels.scss create mode 100644 scss/bootstrap/mixins/_list-group.scss create mode 100644 scss/bootstrap/mixins/_nav-divider.scss create mode 100644 scss/bootstrap/mixins/_nav-vertical-align.scss create mode 100644 scss/bootstrap/mixins/_opacity.scss create mode 100644 scss/bootstrap/mixins/_pagination.scss create mode 100644 scss/bootstrap/mixins/_panels.scss create mode 100644 scss/bootstrap/mixins/_progress-bar.scss create mode 100644 scss/bootstrap/mixins/_reset-filter.scss create mode 100644 scss/bootstrap/mixins/_reset-text.scss create mode 100644 scss/bootstrap/mixins/_resize.scss create mode 100644 scss/bootstrap/mixins/_responsive-visibility.scss create mode 100644 scss/bootstrap/mixins/_size.scss create mode 100644 scss/bootstrap/mixins/_tab-focus.scss create mode 100644 scss/bootstrap/mixins/_table-row.scss create mode 100644 scss/bootstrap/mixins/_text-emphasis.scss create mode 100644 scss/bootstrap/mixins/_text-overflow.scss create mode 100644 scss/bootstrap/mixins/_vendor-prefixes.scss create mode 100644 scss/main.scss diff --git a/css/bootstrap.css b/css/bootstrap.css new file mode 100644 index 0000000..be25e31 --- /dev/null +++ b/css/bootstrap.css @@ -0,0 +1,7737 @@ +@charset "UTF-8"; +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +[hidden], +template { + display: none; +} + +a { + background-color: transparent; +} + +a:active, +a:hover { + outline: 0; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, +strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +mark { + background: #ff0; + color: #000; +} + +small { + font-size: 80%; +} + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + border: 0; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 1em 40px; +} + +hr { + box-sizing: content-box; + height: 0; +} + +pre { + overflow: auto; +} + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +button, +input, +optgroup, +select, +textarea { + color: inherit; + font: inherit; + margin: 0; +} + +button { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} + +button[disabled], +html input[disabled] { + cursor: default; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +input { + line-height: normal; +} + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + padding: 0; +} + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +input[type="search"] { + -webkit-appearance: textfield; + box-sizing: content-box; +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +legend { + border: 0; + padding: 0; +} + +textarea { + overflow: auto; +} + +optgroup { + font-weight: bold; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} + +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, + *:before, + *:after { + background: transparent !important; + color: #000 !important; + box-shadow: none !important; + text-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .btn > .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("../fonts/bootstrap/glyphicons-halflings-regular.eot"); + src: url("../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff2") format("woff2"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff") format("woff"), url("../fonts/bootstrap/glyphicons-halflings-regular.ttf") format("truetype"), url("../fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg"); +} + +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.glyphicon-asterisk:before { + content: "\002a"; +} + +.glyphicon-plus:before { + content: "\002b"; +} + +.glyphicon-euro:before, +.glyphicon-eur:before { + content: "\20ac"; +} + +.glyphicon-minus:before { + content: "\2212"; +} + +.glyphicon-cloud:before { + content: "\2601"; +} + +.glyphicon-envelope:before { + content: "\2709"; +} + +.glyphicon-pencil:before { + content: "\270f"; +} + +.glyphicon-glass:before { + content: "\e001"; +} + +.glyphicon-music:before { + content: "\e002"; +} + +.glyphicon-search:before { + content: "\e003"; +} + +.glyphicon-heart:before { + content: "\e005"; +} + +.glyphicon-star:before { + content: "\e006"; +} + +.glyphicon-star-empty:before { + content: "\e007"; +} + +.glyphicon-user:before { + content: "\e008"; +} + +.glyphicon-film:before { + content: "\e009"; +} + +.glyphicon-th-large:before { + content: "\e010"; +} + +.glyphicon-th:before { + content: "\e011"; +} + +.glyphicon-th-list:before { + content: "\e012"; +} + +.glyphicon-ok:before { + content: "\e013"; +} + +.glyphicon-remove:before { + content: "\e014"; +} + +.glyphicon-zoom-in:before { + content: "\e015"; +} + +.glyphicon-zoom-out:before { + content: "\e016"; +} + +.glyphicon-off:before { + content: "\e017"; +} + +.glyphicon-signal:before { + content: "\e018"; +} + +.glyphicon-cog:before { + content: "\e019"; +} + +.glyphicon-trash:before { + content: "\e020"; +} + +.glyphicon-home:before { + content: "\e021"; +} + +.glyphicon-file:before { + content: "\e022"; +} + +.glyphicon-time:before { + content: "\e023"; +} + +.glyphicon-road:before { + content: "\e024"; +} + +.glyphicon-download-alt:before { + content: "\e025"; +} + +.glyphicon-download:before { + content: "\e026"; +} + +.glyphicon-upload:before { + content: "\e027"; +} + +.glyphicon-inbox:before { + content: "\e028"; +} + +.glyphicon-play-circle:before { + content: "\e029"; +} + +.glyphicon-repeat:before { + content: "\e030"; +} + +.glyphicon-refresh:before { + content: "\e031"; +} + +.glyphicon-list-alt:before { + content: "\e032"; +} + +.glyphicon-lock:before { + content: "\e033"; +} + +.glyphicon-flag:before { + content: "\e034"; +} + +.glyphicon-headphones:before { + content: "\e035"; +} + +.glyphicon-volume-off:before { + content: "\e036"; +} + +.glyphicon-volume-down:before { + content: "\e037"; +} + +.glyphicon-volume-up:before { + content: "\e038"; +} + +.glyphicon-qrcode:before { + content: "\e039"; +} + +.glyphicon-barcode:before { + content: "\e040"; +} + +.glyphicon-tag:before { + content: "\e041"; +} + +.glyphicon-tags:before { + content: "\e042"; +} + +.glyphicon-book:before { + content: "\e043"; +} + +.glyphicon-bookmark:before { + content: "\e044"; +} + +.glyphicon-print:before { + content: "\e045"; +} + +.glyphicon-camera:before { + content: "\e046"; +} + +.glyphicon-font:before { + content: "\e047"; +} + +.glyphicon-bold:before { + content: "\e048"; +} + +.glyphicon-italic:before { + content: "\e049"; +} + +.glyphicon-text-height:before { + content: "\e050"; +} + +.glyphicon-text-width:before { + content: "\e051"; +} + +.glyphicon-align-left:before { + content: "\e052"; +} + +.glyphicon-align-center:before { + content: "\e053"; +} + +.glyphicon-align-right:before { + content: "\e054"; +} + +.glyphicon-align-justify:before { + content: "\e055"; +} + +.glyphicon-list:before { + content: "\e056"; +} + +.glyphicon-indent-left:before { + content: "\e057"; +} + +.glyphicon-indent-right:before { + content: "\e058"; +} + +.glyphicon-facetime-video:before { + content: "\e059"; +} + +.glyphicon-picture:before { + content: "\e060"; +} + +.glyphicon-map-marker:before { + content: "\e062"; +} + +.glyphicon-adjust:before { + content: "\e063"; +} + +.glyphicon-tint:before { + content: "\e064"; +} + +.glyphicon-edit:before { + content: "\e065"; +} + +.glyphicon-share:before { + content: "\e066"; +} + +.glyphicon-check:before { + content: "\e067"; +} + +.glyphicon-move:before { + content: "\e068"; +} + +.glyphicon-step-backward:before { + content: "\e069"; +} + +.glyphicon-fast-backward:before { + content: "\e070"; +} + +.glyphicon-backward:before { + content: "\e071"; +} + +.glyphicon-play:before { + content: "\e072"; +} + +.glyphicon-pause:before { + content: "\e073"; +} + +.glyphicon-stop:before { + content: "\e074"; +} + +.glyphicon-forward:before { + content: "\e075"; +} + +.glyphicon-fast-forward:before { + content: "\e076"; +} + +.glyphicon-step-forward:before { + content: "\e077"; +} + +.glyphicon-eject:before { + content: "\e078"; +} + +.glyphicon-chevron-left:before { + content: "\e079"; +} + +.glyphicon-chevron-right:before { + content: "\e080"; +} + +.glyphicon-plus-sign:before { + content: "\e081"; +} + +.glyphicon-minus-sign:before { + content: "\e082"; +} + +.glyphicon-remove-sign:before { + content: "\e083"; +} + +.glyphicon-ok-sign:before { + content: "\e084"; +} + +.glyphicon-question-sign:before { + content: "\e085"; +} + +.glyphicon-info-sign:before { + content: "\e086"; +} + +.glyphicon-screenshot:before { + content: "\e087"; +} + +.glyphicon-remove-circle:before { + content: "\e088"; +} + +.glyphicon-ok-circle:before { + content: "\e089"; +} + +.glyphicon-ban-circle:before { + content: "\e090"; +} + +.glyphicon-arrow-left:before { + content: "\e091"; +} + +.glyphicon-arrow-right:before { + content: "\e092"; +} + +.glyphicon-arrow-up:before { + content: "\e093"; +} + +.glyphicon-arrow-down:before { + content: "\e094"; +} + +.glyphicon-share-alt:before { + content: "\e095"; +} + +.glyphicon-resize-full:before { + content: "\e096"; +} + +.glyphicon-resize-small:before { + content: "\e097"; +} + +.glyphicon-exclamation-sign:before { + content: "\e101"; +} + +.glyphicon-gift:before { + content: "\e102"; +} + +.glyphicon-leaf:before { + content: "\e103"; +} + +.glyphicon-fire:before { + content: "\e104"; +} + +.glyphicon-eye-open:before { + content: "\e105"; +} + +.glyphicon-eye-close:before { + content: "\e106"; +} + +.glyphicon-warning-sign:before { + content: "\e107"; +} + +.glyphicon-plane:before { + content: "\e108"; +} + +.glyphicon-calendar:before { + content: "\e109"; +} + +.glyphicon-random:before { + content: "\e110"; +} + +.glyphicon-comment:before { + content: "\e111"; +} + +.glyphicon-magnet:before { + content: "\e112"; +} + +.glyphicon-chevron-up:before { + content: "\e113"; +} + +.glyphicon-chevron-down:before { + content: "\e114"; +} + +.glyphicon-retweet:before { + content: "\e115"; +} + +.glyphicon-shopping-cart:before { + content: "\e116"; +} + +.glyphicon-folder-close:before { + content: "\e117"; +} + +.glyphicon-folder-open:before { + content: "\e118"; +} + +.glyphicon-resize-vertical:before { + content: "\e119"; +} + +.glyphicon-resize-horizontal:before { + content: "\e120"; +} + +.glyphicon-hdd:before { + content: "\e121"; +} + +.glyphicon-bullhorn:before { + content: "\e122"; +} + +.glyphicon-bell:before { + content: "\e123"; +} + +.glyphicon-certificate:before { + content: "\e124"; +} + +.glyphicon-thumbs-up:before { + content: "\e125"; +} + +.glyphicon-thumbs-down:before { + content: "\e126"; +} + +.glyphicon-hand-right:before { + content: "\e127"; +} + +.glyphicon-hand-left:before { + content: "\e128"; +} + +.glyphicon-hand-up:before { + content: "\e129"; +} + +.glyphicon-hand-down:before { + content: "\e130"; +} + +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} + +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} + +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} + +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} + +.glyphicon-globe:before { + content: "\e135"; +} + +.glyphicon-wrench:before { + content: "\e136"; +} + +.glyphicon-tasks:before { + content: "\e137"; +} + +.glyphicon-filter:before { + content: "\e138"; +} + +.glyphicon-briefcase:before { + content: "\e139"; +} + +.glyphicon-fullscreen:before { + content: "\e140"; +} + +.glyphicon-dashboard:before { + content: "\e141"; +} + +.glyphicon-paperclip:before { + content: "\e142"; +} + +.glyphicon-heart-empty:before { + content: "\e143"; +} + +.glyphicon-link:before { + content: "\e144"; +} + +.glyphicon-phone:before { + content: "\e145"; +} + +.glyphicon-pushpin:before { + content: "\e146"; +} + +.glyphicon-usd:before { + content: "\e148"; +} + +.glyphicon-gbp:before { + content: "\e149"; +} + +.glyphicon-sort:before { + content: "\e150"; +} + +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} + +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} + +.glyphicon-sort-by-order:before { + content: "\e153"; +} + +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} + +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} + +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} + +.glyphicon-unchecked:before { + content: "\e157"; +} + +.glyphicon-expand:before { + content: "\e158"; +} + +.glyphicon-collapse-down:before { + content: "\e159"; +} + +.glyphicon-collapse-up:before { + content: "\e160"; +} + +.glyphicon-log-in:before { + content: "\e161"; +} + +.glyphicon-flash:before { + content: "\e162"; +} + +.glyphicon-log-out:before { + content: "\e163"; +} + +.glyphicon-new-window:before { + content: "\e164"; +} + +.glyphicon-record:before { + content: "\e165"; +} + +.glyphicon-save:before { + content: "\e166"; +} + +.glyphicon-open:before { + content: "\e167"; +} + +.glyphicon-saved:before { + content: "\e168"; +} + +.glyphicon-import:before { + content: "\e169"; +} + +.glyphicon-export:before { + content: "\e170"; +} + +.glyphicon-send:before { + content: "\e171"; +} + +.glyphicon-floppy-disk:before { + content: "\e172"; +} + +.glyphicon-floppy-saved:before { + content: "\e173"; +} + +.glyphicon-floppy-remove:before { + content: "\e174"; +} + +.glyphicon-floppy-save:before { + content: "\e175"; +} + +.glyphicon-floppy-open:before { + content: "\e176"; +} + +.glyphicon-credit-card:before { + content: "\e177"; +} + +.glyphicon-transfer:before { + content: "\e178"; +} + +.glyphicon-cutlery:before { + content: "\e179"; +} + +.glyphicon-header:before { + content: "\e180"; +} + +.glyphicon-compressed:before { + content: "\e181"; +} + +.glyphicon-earphone:before { + content: "\e182"; +} + +.glyphicon-phone-alt:before { + content: "\e183"; +} + +.glyphicon-tower:before { + content: "\e184"; +} + +.glyphicon-stats:before { + content: "\e185"; +} + +.glyphicon-sd-video:before { + content: "\e186"; +} + +.glyphicon-hd-video:before { + content: "\e187"; +} + +.glyphicon-subtitles:before { + content: "\e188"; +} + +.glyphicon-sound-stereo:before { + content: "\e189"; +} + +.glyphicon-sound-dolby:before { + content: "\e190"; +} + +.glyphicon-sound-5-1:before { + content: "\e191"; +} + +.glyphicon-sound-6-1:before { + content: "\e192"; +} + +.glyphicon-sound-7-1:before { + content: "\e193"; +} + +.glyphicon-copyright-mark:before { + content: "\e194"; +} + +.glyphicon-registration-mark:before { + content: "\e195"; +} + +.glyphicon-cloud-download:before { + content: "\e197"; +} + +.glyphicon-cloud-upload:before { + content: "\e198"; +} + +.glyphicon-tree-conifer:before { + content: "\e199"; +} + +.glyphicon-tree-deciduous:before { + content: "\e200"; +} + +.glyphicon-cd:before { + content: "\e201"; +} + +.glyphicon-save-file:before { + content: "\e202"; +} + +.glyphicon-open-file:before { + content: "\e203"; +} + +.glyphicon-level-up:before { + content: "\e204"; +} + +.glyphicon-copy:before { + content: "\e205"; +} + +.glyphicon-paste:before { + content: "\e206"; +} + +.glyphicon-alert:before { + content: "\e209"; +} + +.glyphicon-equalizer:before { + content: "\e210"; +} + +.glyphicon-king:before { + content: "\e211"; +} + +.glyphicon-queen:before { + content: "\e212"; +} + +.glyphicon-pawn:before { + content: "\e213"; +} + +.glyphicon-bishop:before { + content: "\e214"; +} + +.glyphicon-knight:before { + content: "\e215"; +} + +.glyphicon-baby-formula:before { + content: "\e216"; +} + +.glyphicon-tent:before { + content: "\26fa"; +} + +.glyphicon-blackboard:before { + content: "\e218"; +} + +.glyphicon-bed:before { + content: "\e219"; +} + +.glyphicon-apple:before { + content: "\f8ff"; +} + +.glyphicon-erase:before { + content: "\e221"; +} + +.glyphicon-hourglass:before { + content: "\231b"; +} + +.glyphicon-lamp:before { + content: "\e223"; +} + +.glyphicon-duplicate:before { + content: "\e224"; +} + +.glyphicon-piggy-bank:before { + content: "\e225"; +} + +.glyphicon-scissors:before { + content: "\e226"; +} + +.glyphicon-bitcoin:before { + content: "\e227"; +} + +.glyphicon-btc:before { + content: "\e227"; +} + +.glyphicon-xbt:before { + content: "\e227"; +} + +.glyphicon-yen:before { + content: "\00a5"; +} + +.glyphicon-jpy:before { + content: "\00a5"; +} + +.glyphicon-ruble:before { + content: "\20bd"; +} + +.glyphicon-rub:before { + content: "\20bd"; +} + +.glyphicon-scale:before { + content: "\e230"; +} + +.glyphicon-ice-lolly:before { + content: "\e231"; +} + +.glyphicon-ice-lolly-tasted:before { + content: "\e232"; +} + +.glyphicon-education:before { + content: "\e233"; +} + +.glyphicon-option-horizontal:before { + content: "\e234"; +} + +.glyphicon-option-vertical:before { + content: "\e235"; +} + +.glyphicon-menu-hamburger:before { + content: "\e236"; +} + +.glyphicon-modal-window:before { + content: "\e237"; +} + +.glyphicon-oil:before { + content: "\e238"; +} + +.glyphicon-grain:before { + content: "\e239"; +} + +.glyphicon-sunglasses:before { + content: "\e240"; +} + +.glyphicon-text-size:before { + content: "\e241"; +} + +.glyphicon-text-color:before { + content: "\e242"; +} + +.glyphicon-text-background:before { + content: "\e243"; +} + +.glyphicon-object-align-top:before { + content: "\e244"; +} + +.glyphicon-object-align-bottom:before { + content: "\e245"; +} + +.glyphicon-object-align-horizontal:before { + content: "\e246"; +} + +.glyphicon-object-align-left:before { + content: "\e247"; +} + +.glyphicon-object-align-vertical:before { + content: "\e248"; +} + +.glyphicon-object-align-right:before { + content: "\e249"; +} + +.glyphicon-triangle-right:before { + content: "\e250"; +} + +.glyphicon-triangle-left:before { + content: "\e251"; +} + +.glyphicon-triangle-bottom:before { + content: "\e252"; +} + +.glyphicon-triangle-top:before { + content: "\e253"; +} + +.glyphicon-console:before { + content: "\e254"; +} + +.glyphicon-superscript:before { + content: "\e255"; +} + +.glyphicon-subscript:before { + content: "\e256"; +} + +.glyphicon-menu-left:before { + content: "\e257"; +} + +.glyphicon-menu-right:before { + content: "\e258"; +} + +.glyphicon-menu-down:before { + content: "\e259"; +} + +.glyphicon-menu-up:before { + content: "\e260"; +} + +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-size: 10px; + -webkit-tap-highlight-color: transparent; +} + +body { + font-family: "Oxygen", Arial, sans-serif; + font-size: 16px; + line-height: 1.429; + color: #000; + background-color: #000; +} + +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +a { + color: #000; + text-decoration: none; +} + +a:hover, a:focus { + color: black; + text-decoration: underline; +} + +a:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +figure { + margin: 0; +} + +img { + vertical-align: middle; +} + +.img-responsive { + display: block; + max-width: 100%; + height: auto; +} + +.img-rounded { + border-radius: 0; +} + +.img-thumbnail { + padding: 4px; + line-height: 1.429; + background-color: #000; + border: 1px solid #ddd; + border-radius: 25px; + -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: 22px; + margin-bottom: 22px; + border: 0; + border-top: 1px solid #eeeeee; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} + +[role="button"] { + cursor: pointer; +} + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + font-family: "Oxygen", Arial, sans-serif; + font-weight: 500; + line-height: 1.1; + color: inherit; +} + +h1 small, +h1 .small, h2 small, +h2 .small, h3 small, +h3 .small, h4 small, +h4 .small, h5 small, +h5 .small, h6 small, +h6 .small, +.h1 small, +.h1 .small, .h2 small, +.h2 .small, .h3 small, +.h3 .small, .h4 small, +.h4 .small, .h5 small, +.h5 .small, .h6 small, +.h6 .small { + font-weight: normal; + line-height: 1; + color: #777777; +} + +h1, .h1, +h2, .h2, +h3, .h3 { + margin-top: 22px; + margin-bottom: 11px; +} + +h1 small, +h1 .small, .h1 small, +.h1 .small, +h2 small, +h2 .small, .h2 small, +.h2 .small, +h3 small, +h3 .small, .h3 small, +.h3 .small { + font-size: 65%; +} + +h4, .h4, +h5, .h5, +h6, .h6 { + margin-top: 11px; + margin-bottom: 11px; +} + +h4 small, +h4 .small, .h4 small, +.h4 .small, +h5 small, +h5 .small, .h5 small, +.h5 .small, +h6 small, +h6 .small, .h6 small, +.h6 .small { + font-size: 75%; +} + +h1, .h1 { + font-size: 24px; +} + +h2, .h2 { + font-size: 22px; +} + +h3, .h3 { + font-size: 16px; +} + +h4, .h4 { + font-size: 20px; +} + +h5, .h5 { + font-size: 16px; +} + +h6, .h6 { + font-size: 14px; +} + +p { + margin: 0 0 11px; +} + +.lead { + margin-bottom: 22px; + font-size: 18px; + font-weight: 300; + line-height: 1.4; +} + +@media (min-width: 768px) { + .lead { + font-size: 24px; + } +} + +small, +.small { + font-size: 87%; +} + +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, .initialism { + 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; +} + +.bg-primary { + 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: 10px; + margin: 44px 0 22px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + margin-top: 0; + margin-bottom: 11px; +} + +ul ul, +ul ol, +ol ul, +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: 22px; +} + +dt, +dd { + line-height: 1.429; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 0; +} + +.dl-horizontal dd:before, .dl-horizontal dd:after { + content: " "; + display: table; +} + +.dl-horizontal dd:after { + clear: both; +} + +@media (min-width: 768px) { + .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%; +} + +blockquote { + padding: 11px 22px; + margin: 0 0 22px; + font-size: 20px; + 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.429; + 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-reverse small:before, +.blockquote-reverse .small:before, +blockquote.pull-right footer:before, +blockquote.pull-right small:before, +blockquote.pull-right .small:before { + content: ''; +} + +.blockquote-reverse footer:after, +.blockquote-reverse small:after, +.blockquote-reverse .small:after, +blockquote.pull-right footer:after, +blockquote.pull-right small:after, +blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} + +address { + margin-bottom: 22px; + font-style: normal; + line-height: 1.429; +} + +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} + +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 25px; +} + +kbd { + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 0; + 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: 10.5px; + margin: 0 0 11px; + font-size: 15px; + line-height: 1.429; + word-break: break-all; + word-wrap: break-word; + color: #333333; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 25px; +} + +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: 15px; + padding-right: 15px; +} + +.container:before, .container:after { + content: " "; + display: table; +} + +.container:after { + clear: both; +} + +@media (min-width: 768px) { + .container { + width: 750px; + } +} + +@media (min-width: 992px) { + .container { + width: 970px; + } +} + +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} + +.container-fluid { + margin-right: auto; + margin-left: auto; + padding-left: 15px; + padding-right: 15px; +} + +.container-fluid:before, .container-fluid:after { + content: " "; + display: table; +} + +.container-fluid:after { + clear: both; +} + +.row { + margin-left: -15px; + margin-right: -15px; +} + +.row:before, .row:after { + content: " "; + display: table; +} + +.row:after { + clear: both; +} + +.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: 15px; + padding-right: 15px; +} + +.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-1 { + width: 8.33333%; +} + +.col-xs-2 { + width: 16.66667%; +} + +.col-xs-3 { + width: 25%; +} + +.col-xs-4 { + width: 33.33333%; +} + +.col-xs-5 { + width: 41.66667%; +} + +.col-xs-6 { + width: 50%; +} + +.col-xs-7 { + width: 58.33333%; +} + +.col-xs-8 { + width: 66.66667%; +} + +.col-xs-9 { + width: 75%; +} + +.col-xs-10 { + width: 83.33333%; +} + +.col-xs-11 { + width: 91.66667%; +} + +.col-xs-12 { + width: 100%; +} + +.col-xs-pull-0 { + right: auto; +} + +.col-xs-pull-1 { + right: 8.33333%; +} + +.col-xs-pull-2 { + right: 16.66667%; +} + +.col-xs-pull-3 { + right: 25%; +} + +.col-xs-pull-4 { + right: 33.33333%; +} + +.col-xs-pull-5 { + right: 41.66667%; +} + +.col-xs-pull-6 { + right: 50%; +} + +.col-xs-pull-7 { + right: 58.33333%; +} + +.col-xs-pull-8 { + right: 66.66667%; +} + +.col-xs-pull-9 { + right: 75%; +} + +.col-xs-pull-10 { + right: 83.33333%; +} + +.col-xs-pull-11 { + right: 91.66667%; +} + +.col-xs-pull-12 { + right: 100%; +} + +.col-xs-push-0 { + left: auto; +} + +.col-xs-push-1 { + left: 8.33333%; +} + +.col-xs-push-2 { + left: 16.66667%; +} + +.col-xs-push-3 { + left: 25%; +} + +.col-xs-push-4 { + left: 33.33333%; +} + +.col-xs-push-5 { + left: 41.66667%; +} + +.col-xs-push-6 { + left: 50%; +} + +.col-xs-push-7 { + left: 58.33333%; +} + +.col-xs-push-8 { + left: 66.66667%; +} + +.col-xs-push-9 { + left: 75%; +} + +.col-xs-push-10 { + left: 83.33333%; +} + +.col-xs-push-11 { + left: 91.66667%; +} + +.col-xs-push-12 { + left: 100%; +} + +.col-xs-offset-0 { + margin-left: 0%; +} + +.col-xs-offset-1 { + margin-left: 8.33333%; +} + +.col-xs-offset-2 { + margin-left: 16.66667%; +} + +.col-xs-offset-3 { + margin-left: 25%; +} + +.col-xs-offset-4 { + margin-left: 33.33333%; +} + +.col-xs-offset-5 { + margin-left: 41.66667%; +} + +.col-xs-offset-6 { + margin-left: 50%; +} + +.col-xs-offset-7 { + margin-left: 58.33333%; +} + +.col-xs-offset-8 { + margin-left: 66.66667%; +} + +.col-xs-offset-9 { + margin-left: 75%; +} + +.col-xs-offset-10 { + margin-left: 83.33333%; +} + +.col-xs-offset-11 { + margin-left: 91.66667%; +} + +.col-xs-offset-12 { + margin-left: 100%; +} + +@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-1 { + width: 8.33333%; + } + .col-sm-2 { + width: 16.66667%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-4 { + width: 33.33333%; + } + .col-sm-5 { + width: 41.66667%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-7 { + width: 58.33333%; + } + .col-sm-8 { + width: 66.66667%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-10 { + width: 83.33333%; + } + .col-sm-11 { + width: 91.66667%; + } + .col-sm-12 { + width: 100%; + } + .col-sm-pull-0 { + right: auto; + } + .col-sm-pull-1 { + right: 8.33333%; + } + .col-sm-pull-2 { + right: 16.66667%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-4 { + right: 33.33333%; + } + .col-sm-pull-5 { + right: 41.66667%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-7 { + right: 58.33333%; + } + .col-sm-pull-8 { + right: 66.66667%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-10 { + right: 83.33333%; + } + .col-sm-pull-11 { + right: 91.66667%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-push-0 { + left: auto; + } + .col-sm-push-1 { + left: 8.33333%; + } + .col-sm-push-2 { + left: 16.66667%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-4 { + left: 33.33333%; + } + .col-sm-push-5 { + left: 41.66667%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-7 { + left: 58.33333%; + } + .col-sm-push-8 { + left: 66.66667%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-10 { + left: 83.33333%; + } + .col-sm-push-11 { + left: 91.66667%; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-offset-0 { + margin-left: 0%; + } + .col-sm-offset-1 { + margin-left: 8.33333%; + } + .col-sm-offset-2 { + margin-left: 16.66667%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-4 { + margin-left: 33.33333%; + } + .col-sm-offset-5 { + margin-left: 41.66667%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-7 { + margin-left: 58.33333%; + } + .col-sm-offset-8 { + margin-left: 66.66667%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-10 { + margin-left: 83.33333%; + } + .col-sm-offset-11 { + margin-left: 91.66667%; + } + .col-sm-offset-12 { + margin-left: 100%; + } +} + +@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-1 { + width: 8.33333%; + } + .col-md-2 { + width: 16.66667%; + } + .col-md-3 { + width: 25%; + } + .col-md-4 { + width: 33.33333%; + } + .col-md-5 { + width: 41.66667%; + } + .col-md-6 { + width: 50%; + } + .col-md-7 { + width: 58.33333%; + } + .col-md-8 { + width: 66.66667%; + } + .col-md-9 { + width: 75%; + } + .col-md-10 { + width: 83.33333%; + } + .col-md-11 { + width: 91.66667%; + } + .col-md-12 { + width: 100%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-pull-1 { + right: 8.33333%; + } + .col-md-pull-2 { + right: 16.66667%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-4 { + right: 33.33333%; + } + .col-md-pull-5 { + right: 41.66667%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-7 { + right: 58.33333%; + } + .col-md-pull-8 { + right: 66.66667%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-10 { + right: 83.33333%; + } + .col-md-pull-11 { + right: 91.66667%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-push-0 { + left: auto; + } + .col-md-push-1 { + left: 8.33333%; + } + .col-md-push-2 { + left: 16.66667%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-4 { + left: 33.33333%; + } + .col-md-push-5 { + left: 41.66667%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-7 { + left: 58.33333%; + } + .col-md-push-8 { + left: 66.66667%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-10 { + left: 83.33333%; + } + .col-md-push-11 { + left: 91.66667%; + } + .col-md-push-12 { + left: 100%; + } + .col-md-offset-0 { + margin-left: 0%; + } + .col-md-offset-1 { + margin-left: 8.33333%; + } + .col-md-offset-2 { + margin-left: 16.66667%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-4 { + margin-left: 33.33333%; + } + .col-md-offset-5 { + margin-left: 41.66667%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-7 { + margin-left: 58.33333%; + } + .col-md-offset-8 { + margin-left: 66.66667%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-10 { + margin-left: 83.33333%; + } + .col-md-offset-11 { + margin-left: 91.66667%; + } + .col-md-offset-12 { + margin-left: 100%; + } +} + +@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-1 { + width: 8.33333%; + } + .col-lg-2 { + width: 16.66667%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-4 { + width: 33.33333%; + } + .col-lg-5 { + width: 41.66667%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-7 { + width: 58.33333%; + } + .col-lg-8 { + width: 66.66667%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-10 { + width: 83.33333%; + } + .col-lg-11 { + width: 91.66667%; + } + .col-lg-12 { + width: 100%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-pull-1 { + right: 8.33333%; + } + .col-lg-pull-2 { + right: 16.66667%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-4 { + right: 33.33333%; + } + .col-lg-pull-5 { + right: 41.66667%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-7 { + right: 58.33333%; + } + .col-lg-pull-8 { + right: 66.66667%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-10 { + right: 83.33333%; + } + .col-lg-pull-11 { + right: 91.66667%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-push-1 { + left: 8.33333%; + } + .col-lg-push-2 { + left: 16.66667%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-4 { + left: 33.33333%; + } + .col-lg-push-5 { + left: 41.66667%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-7 { + left: 58.33333%; + } + .col-lg-push-8 { + left: 66.66667%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-10 { + left: 83.33333%; + } + .col-lg-push-11 { + left: 91.66667%; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-offset-0 { + margin-left: 0%; + } + .col-lg-offset-1 { + margin-left: 8.33333%; + } + .col-lg-offset-2 { + margin-left: 16.66667%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-4 { + margin-left: 33.33333%; + } + .col-lg-offset-5 { + margin-left: 41.66667%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-7 { + margin-left: 58.33333%; + } + .col-lg-offset-8 { + margin-left: 66.66667%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-10 { + margin-left: 83.33333%; + } + .col-lg-offset-11 { + margin-left: 91.66667%; + } + .col-lg-offset-12 { + margin-left: 100%; + } +} + +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: 22px; +} + +.table > thead > tr > th, +.table > thead > tr > td, +.table > tbody > tr > th, +.table > tbody > tr > td, +.table > tfoot > tr > th, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.429; + 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 > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > th, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} + +.table > tbody + tbody { + border-top: 2px solid #ddd; +} + +.table .table { + background-color: #000; +} + +.table-condensed > thead > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > th, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > th, +.table-condensed > tfoot > tr > td { + padding: 5px; +} + +.table-bordered { + border: 1px solid #ddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > th, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > th, +.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 > thead > tr > th.active, +.table > thead > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr > td.active, +.table > tbody > tr > th.active, +.table > tbody > tr.active > td, +.table > tbody > tr.active > th, +.table > tfoot > tr > td.active, +.table > tfoot > tr > th.active, +.table > tfoot > tr.active > td, +.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 > thead > tr > th.success, +.table > thead > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr > td.success, +.table > tbody > tr > th.success, +.table > tbody > tr.success > td, +.table > tbody > tr.success > th, +.table > tfoot > tr > td.success, +.table > tfoot > tr > th.success, +.table > tfoot > tr.success > td, +.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 > thead > tr > th.info, +.table > thead > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr > td.info, +.table > tbody > tr > th.info, +.table > tbody > tr.info > td, +.table > tbody > tr.info > th, +.table > tfoot > tr > td.info, +.table > tfoot > tr > th.info, +.table > tfoot > tr.info > td, +.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 > thead > tr > th.warning, +.table > thead > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr > td.warning, +.table > tbody > tr > th.warning, +.table > tbody > tr.warning > td, +.table > tbody > tr.warning > th, +.table > tfoot > tr > td.warning, +.table > tfoot > tr > th.warning, +.table > tfoot > tr.warning > td, +.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 > thead > tr > th.danger, +.table > thead > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr > td.danger, +.table > tbody > tr > th.danger, +.table > tbody > tr.danger > td, +.table > tbody > tr.danger > th, +.table > tfoot > tr > td.danger, +.table > tfoot > tr > th.danger, +.table > tfoot > tr.danger > td, +.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: 16.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 > thead > tr > td, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > th, + .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 > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > th: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 > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > th: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 > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .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: 22px; + font-size: 24px; + line-height: inherit; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: bold; +} + +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; +} + +input[type="file"] { + display: block; +} + +input[type="range"] { + display: block; + width: 100%; +} + +select[multiple], +select[size] { + height: auto; +} + +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +output { + display: block; + padding-top: 7px; + font-size: 16px; + line-height: 1.429; + color: #000; +} + +.form-control { + display: block; + width: 100%; + height: 36px; + padding: 6px 12px; + font-size: 16px; + line-height: 1.429; + color: #000; + background-color: #eee; + background-image: none; + border: 1px solid #ccc; + border-radius: 20px; + -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 0.15s, box-shadow ease-in-out 0.15s; + -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; +} + +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 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: 36px; + } + input[type="date"].input-sm, .input-group-sm > input[type="date"].form-control, + .input-group-sm > input[type="date"].input-group-addon, + .input-group-sm > .input-group-btn > input[type="date"].btn, + .input-group-sm input[type="date"], + input[type="time"].input-sm, + .input-group-sm > input[type="time"].form-control, + .input-group-sm > input[type="time"].input-group-addon, + .input-group-sm > .input-group-btn > input[type="time"].btn, + .input-group-sm + input[type="time"], + input[type="datetime-local"].input-sm, + .input-group-sm > input[type="datetime-local"].form-control, + .input-group-sm > input[type="datetime-local"].input-group-addon, + .input-group-sm > .input-group-btn > input[type="datetime-local"].btn, + .input-group-sm + input[type="datetime-local"], + input[type="month"].input-sm, + .input-group-sm > input[type="month"].form-control, + .input-group-sm > input[type="month"].input-group-addon, + .input-group-sm > .input-group-btn > input[type="month"].btn, + .input-group-sm + input[type="month"] { + line-height: 33px; + } + input[type="date"].input-lg, .input-group-lg > input[type="date"].form-control, + .input-group-lg > input[type="date"].input-group-addon, + .input-group-lg > .input-group-btn > input[type="date"].btn, + .input-group-lg input[type="date"], + input[type="time"].input-lg, + .input-group-lg > input[type="time"].form-control, + .input-group-lg > input[type="time"].input-group-addon, + .input-group-lg > .input-group-btn > input[type="time"].btn, + .input-group-lg + input[type="time"], + input[type="datetime-local"].input-lg, + .input-group-lg > input[type="datetime-local"].form-control, + .input-group-lg > input[type="datetime-local"].input-group-addon, + .input-group-lg > .input-group-btn > input[type="datetime-local"].btn, + .input-group-lg + input[type="datetime-local"], + input[type="month"].input-lg, + .input-group-lg > input[type="month"].form-control, + .input-group-lg > input[type="month"].input-group-addon, + .input-group-lg > .input-group-btn > input[type="month"].btn, + .input-group-lg + input[type="month"] { + line-height: 49px; + } +} + +.form-group { + margin-bottom: 15px; +} + +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} + +.radio label, +.checkbox label { + min-height: 22px; + 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="radio"].disabled, +fieldset[disabled] input[type="radio"], +input[type="checkbox"][disabled], +input[type="checkbox"].disabled, +fieldset[disabled] +input[type="checkbox"] { + cursor: not-allowed; +} + +.radio-inline.disabled, +fieldset[disabled] .radio-inline, +.checkbox-inline.disabled, +fieldset[disabled] +.checkbox-inline { + cursor: not-allowed; +} + +.radio.disabled label, +fieldset[disabled] .radio label, +.checkbox.disabled label, +fieldset[disabled] +.checkbox label { + cursor: not-allowed; +} + +.form-control-static { + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; + min-height: 38px; +} + +.form-control-static.input-lg, .input-group-lg > .form-control-static.form-control, +.input-group-lg > .form-control-static.input-group-addon, +.input-group-lg > .input-group-btn > .form-control-static.btn, .form-control-static.input-sm, .input-group-sm > .form-control-static.form-control, +.input-group-sm > .form-control-static.input-group-addon, +.input-group-sm > .input-group-btn > .form-control-static.btn { + padding-left: 0; + padding-right: 0; +} + +.input-sm, .input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 33px; + padding: 5px 10px; + font-size: 14px; + line-height: 1.5; + border-radius: 0; +} + +select.input-sm, .input-group-sm > select.form-control, +.input-group-sm > select.input-group-addon, +.input-group-sm > .input-group-btn > select.btn { + height: 33px; + line-height: 33px; +} + +textarea.input-sm, .input-group-sm > textarea.form-control, +.input-group-sm > textarea.input-group-addon, +.input-group-sm > .input-group-btn > textarea.btn, +select[multiple].input-sm, +.input-group-sm > select[multiple].form-control, +.input-group-sm > select[multiple].input-group-addon, +.input-group-sm > .input-group-btn > select[multiple].btn { + height: auto; +} + +.form-group-sm .form-control { + height: 33px; + padding: 5px 10px; + font-size: 14px; + line-height: 1.5; + border-radius: 0; +} + +.form-group-sm select.form-control { + height: 33px; + line-height: 33px; +} + +.form-group-sm textarea.form-control, +.form-group-sm select[multiple].form-control { + height: auto; +} + +.form-group-sm .form-control-static { + height: 33px; + min-height: 36px; + padding: 6px 10px; + font-size: 14px; + line-height: 1.5; +} + +.input-lg, .input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 49px; + padding: 10px 16px; + font-size: 20px; + line-height: 1.33333; + border-radius: 0; +} + +select.input-lg, .input-group-lg > select.form-control, +.input-group-lg > select.input-group-addon, +.input-group-lg > .input-group-btn > select.btn { + height: 49px; + line-height: 49px; +} + +textarea.input-lg, .input-group-lg > textarea.form-control, +.input-group-lg > textarea.input-group-addon, +.input-group-lg > .input-group-btn > textarea.btn, +select[multiple].input-lg, +.input-group-lg > select[multiple].form-control, +.input-group-lg > select[multiple].input-group-addon, +.input-group-lg > .input-group-btn > select[multiple].btn { + height: auto; +} + +.form-group-lg .form-control { + height: 49px; + padding: 10px 16px; + font-size: 20px; + line-height: 1.33333; + border-radius: 0; +} + +.form-group-lg select.form-control { + height: 49px; + line-height: 49px; +} + +.form-group-lg textarea.form-control, +.form-group-lg select[multiple].form-control { + height: auto; +} + +.form-group-lg .form-control-static { + height: 49px; + min-height: 42px; + padding: 11px 16px; + font-size: 20px; + line-height: 1.33333; +} + +.has-feedback { + position: relative; +} + +.has-feedback .form-control { + padding-right: 45px; +} + +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 36px; + height: 36px; + line-height: 36px; + text-align: center; + pointer-events: none; +} + +.input-lg + .form-control-feedback, .input-group-lg > .form-control + .form-control-feedback, +.input-group-lg > .input-group-addon + .form-control-feedback, +.input-group-lg > .input-group-btn > .btn + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback { + width: 49px; + height: 49px; + line-height: 49px; +} + +.input-sm + .form-control-feedback, .input-group-sm > .form-control + .form-control-feedback, +.input-group-sm > .input-group-addon + .form-control-feedback, +.input-group-sm > .input-group-btn > .btn + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback { + width: 33px; + height: 33px; + line-height: 33px; +} + +.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: 27px; +} + +.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: 29px; +} + +.form-horizontal .form-group { + margin-left: -15px; + margin-right: -15px; +} + +.form-horizontal .form-group:before, .form-horizontal .form-group:after { + content: " "; + display: table; +} + +.form-horizontal .form-group:after { + clear: both; +} + +@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: 15px; +} + +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 11px; + font-size: 20px; + } +} + +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + font-size: 14px; + } +} + +.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: 16px; + line-height: 1.429; + border-radius: 25px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.btn:focus, .btn.focus, .btn:active:focus, .btn:active.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 > .btn-default.dropdown-toggle { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} + +.btn-default:active:hover, .btn-default:active:focus, .btn-default:active.focus, .btn-default.active:hover, .btn-default.active:focus, .btn-default.active.focus, +.open > .btn-default.dropdown-toggle:hover, +.open > .btn-default.dropdown-toggle:focus, +.open > .btn-default.dropdown-toggle.focus { + color: #333; + background-color: #d4d4d4; + border-color: #8c8c8c; +} + +.btn-default:active, .btn-default.active, +.open > .btn-default.dropdown-toggle { + background-image: none; +} + +.btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled.focus, .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled].focus, +fieldset[disabled] .btn-default:hover, +fieldset[disabled] .btn-default: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 > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #286090; + border-color: #204d74; +} + +.btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus, +.open > .btn-primary.dropdown-toggle:hover, +.open > .btn-primary.dropdown-toggle:focus, +.open > .btn-primary.dropdown-toggle.focus { + color: #fff; + background-color: #204d74; + border-color: #122b40; +} + +.btn-primary:active, .btn-primary.active, +.open > .btn-primary.dropdown-toggle { + background-image: none; +} + +.btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus, +fieldset[disabled] .btn-primary:hover, +fieldset[disabled] .btn-primary: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 > .btn-success.dropdown-toggle { + color: #fff; + background-color: #449d44; + border-color: #398439; +} + +.btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus, +.open > .btn-success.dropdown-toggle:hover, +.open > .btn-success.dropdown-toggle:focus, +.open > .btn-success.dropdown-toggle.focus { + color: #fff; + background-color: #398439; + border-color: #255625; +} + +.btn-success:active, .btn-success.active, +.open > .btn-success.dropdown-toggle { + background-image: none; +} + +.btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled].focus, +fieldset[disabled] .btn-success:hover, +fieldset[disabled] .btn-success: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 > .btn-info.dropdown-toggle { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} + +.btn-info:active:hover, .btn-info:active:focus, .btn-info:active.focus, .btn-info.active:hover, .btn-info.active:focus, .btn-info.active.focus, +.open > .btn-info.dropdown-toggle:hover, +.open > .btn-info.dropdown-toggle:focus, +.open > .btn-info.dropdown-toggle.focus { + color: #fff; + background-color: #269abc; + border-color: #1b6d85; +} + +.btn-info:active, .btn-info.active, +.open > .btn-info.dropdown-toggle { + background-image: none; +} + +.btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled].focus, +fieldset[disabled] .btn-info:hover, +fieldset[disabled] .btn-info: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 > .btn-warning.dropdown-toggle { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} + +.btn-warning:active:hover, .btn-warning:active:focus, .btn-warning:active.focus, .btn-warning.active:hover, .btn-warning.active:focus, .btn-warning.active.focus, +.open > .btn-warning.dropdown-toggle:hover, +.open > .btn-warning.dropdown-toggle:focus, +.open > .btn-warning.dropdown-toggle.focus { + color: #fff; + background-color: #d58512; + border-color: #985f0d; +} + +.btn-warning:active, .btn-warning.active, +.open > .btn-warning.dropdown-toggle { + background-image: none; +} + +.btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled].focus, +fieldset[disabled] .btn-warning:hover, +fieldset[disabled] .btn-warning: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 > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} + +.btn-danger:active:hover, .btn-danger:active:focus, .btn-danger:active.focus, .btn-danger.active:hover, .btn-danger.active:focus, .btn-danger.active.focus, +.open > .btn-danger.dropdown-toggle:hover, +.open > .btn-danger.dropdown-toggle:focus, +.open > .btn-danger.dropdown-toggle.focus { + color: #fff; + background-color: #ac2925; + border-color: #761c19; +} + +.btn-danger:active, .btn-danger.active, +.open > .btn-danger.dropdown-toggle { + background-image: none; +} + +.btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled].focus, +fieldset[disabled] .btn-danger:hover, +fieldset[disabled] .btn-danger:focus, +fieldset[disabled] .btn-danger.focus { + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} + +.btn-link { + color: #000; + 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: black; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, .btn-link[disabled]:focus, +fieldset[disabled] .btn-link:hover, +fieldset[disabled] .btn-link:focus { + color: #777777; + text-decoration: none; +} + +.btn-lg, .btn-group-lg > .btn { + padding: 10px 16px; + font-size: 20px; + line-height: 1.33333; + border-radius: 0; +} + +.btn-sm, .btn-group-sm > .btn { + padding: 5px 10px; + font-size: 14px; + line-height: 1.5; + border-radius: 0; +} + +.btn-xs, .btn-group-xs > .btn { + padding: 1px 5px; + font-size: 14px; + line-height: 1.5; + border-radius: 0; +} + +.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: 16px; + text-align: left; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 25px; + -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: 10px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.429; + 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: 14px; + line-height: 1.429; + 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: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + .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 > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .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:before, .btn-toolbar:after { + content: " "; + display: table; +} + +.btn-toolbar:after { + clear: both; +} + +.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, .btn-group-lg.btn-group > .btn + .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, .btn-group-lg > .btn .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} + +.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .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:before, .btn-group-vertical > .btn-group:after { + content: " "; + display: table; +} + +.btn-group-vertical > .btn-group:after { + clear: both; +} + +.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: 25px; + border-top-left-radius: 25px; + 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: 25px; + border-bottom-left-radius: 25px; +} + +.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 input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[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-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: 16px; + font-weight: normal; + line-height: 1; + color: #000; + text-align: center; + background-color: #eeeeee; + border: 1px solid #ccc; + border-radius: 20px; +} + +.input-group-addon.input-sm, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .input-group-addon.btn { + padding: 5px 10px; + font-size: 14px; + border-radius: 0; +} + +.input-group-addon.input-lg, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .input-group-addon.btn { + padding: 10px 16px; + font-size: 20px; + border-radius: 0; +} + +.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:before, .nav:after { + content: " "; + display: table; +} + +.nav:after { + clear: both; +} + +.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: #000; +} + +.nav .nav-divider { + height: 1px; + margin: 10px 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.429; + border: 1px solid transparent; + border-radius: 25px 25px 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: #000; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} + +.nav-pills > li { + float: left; +} + +.nav-pills > li > a { + border-radius: 25px; +} + +.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, .nav-tabs.nav-justified { + width: 100%; +} + +.nav-justified > li, .nav-tabs.nav-justified > li { + float: none; +} + +.nav-justified > li > a, .nav-tabs.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, .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a, .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} + +.nav-tabs-justified, .nav-tabs.nav-justified { + border-bottom: 0; +} + +.nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 25px; +} + +.nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a, +.nav-tabs-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #ddd; +} + +@media (min-width: 768px) { + .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 25px 25px 0 0; + } + .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a, + .nav-tabs-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #000; + } +} + +.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: 50px; + margin-bottom: 22px; + border: 1px solid transparent; +} + +.navbar:before, .navbar:after { + content: " "; + display: table; +} + +.navbar:after { + clear: both; +} + +@media (min-width: 768px) { + .navbar { + border-radius: 25px; + } +} + +.navbar-header:before, .navbar-header:after { + content: " "; + display: table; +} + +.navbar-header:after { + clear: both; +} + +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} + +.navbar-collapse { + overflow-x: visible; + padding-right: 15px; + padding-left: 15px; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} + +.navbar-collapse:before, .navbar-collapse:after { + content: " "; + display: table; +} + +.navbar-collapse:after { + clear: both; +} + +.navbar-collapse.in { + overflow-y: auto; +} + +@media (min-width: 768px) { + .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: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} + +.container > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-header, +.container-fluid > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} + +@media (min-width: 768px) { + .container > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-header, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} + +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} + +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} + +@media (min-width: 768px) { + .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: 14px 15px; + font-size: 20px; + line-height: 22px; + height: 50px; +} + +.navbar-brand:hover, .navbar-brand:focus { + text-decoration: none; +} + +.navbar-brand > img { + display: block; +} + +@media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } +} + +.navbar-toggle { + position: relative; + float: right; + margin-right: 15px; + padding: 9px 10px; + margin-top: 8px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 25px; +} + +.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: 768px) { + .navbar-toggle { + display: none; + } +} + +.navbar-nav { + margin: 7px -15px; +} + +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 22px; +} + +@media (max-width: 767px) { + .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: 22px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} + +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 14px; + padding-bottom: 14px; + } +} + +.navbar-form { + margin-left: -15px; + margin-right: -15px; + padding: 10px 15px; + 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: 7px; + margin-bottom: 7px; +} + +@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: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } + .navbar-form .form-group:last-child { + margin-bottom: 0; + } +} + +@media (min-width: 768px) { + .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: 25px; + border-top-left-radius: 25px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.navbar-btn { + margin-top: 7px; + margin-bottom: 7px; +} + +.navbar-btn.btn-sm, .btn-group-sm > .navbar-btn.btn { + margin-top: 8.5px; + margin-bottom: 8.5px; +} + +.navbar-btn.btn-xs, .btn-group-xs > .navbar-btn.btn { + margin-top: 14px; + margin-bottom: 14px; +} + +.navbar-text { + margin-top: 14px; + margin-bottom: 14px; +} + +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-left: 15px; + margin-right: 15px; + } +} + +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + margin-right: -15px; + } + .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: 767px) { + .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, .navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:hover, +fieldset[disabled] .navbar-default .btn-link:focus { + color: #ccc; +} + +.navbar-inverse { + background-color: #222; + border-color: #090909; +} + +.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: #090909; +} + +.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: #090909; + color: #fff; +} + +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #090909; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #090909; + } + .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: #090909; + } + .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, .navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:hover, +fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #444; +} + +.breadcrumb { + padding: 8px 15px; + margin-bottom: 22px; + list-style: none; + background-color: #f5f5f5; + border-radius: 25px; +} + +.breadcrumb > li { + display: inline-block; +} + +.breadcrumb > li + li:before { + content: "/ "; + padding: 0 5px; + color: #ccc; +} + +.breadcrumb > .active { + color: #777777; +} + +.pagination { + display: inline-block; + padding-left: 0; + margin: 22px 0; + border-radius: 25px; +} + +.pagination > li { + display: inline; +} + +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + line-height: 1.429; + text-decoration: none; + color: #000; + 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: 25px; + border-top-left-radius: 25px; +} + +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-bottom-right-radius: 25px; + border-top-right-radius: 25px; +} + +.pagination > li > a:hover, .pagination > li > a:focus, +.pagination > li > span:hover, +.pagination > li > span:focus { + z-index: 2; + color: black; + background-color: #eeeeee; + border-color: #ddd; +} + +.pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > a:focus, +.pagination > .active > span, +.pagination > .active > span:hover, +.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: 20px; + line-height: 1.33333; +} + +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 14px; + line-height: 1.5; +} + +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-bottom-right-radius: 0; + border-top-right-radius: 0; +} + +.pager { + padding-left: 0; + margin: 22px 0; + list-style: none; + text-align: center; +} + +.pager:before, .pager:after { + content: " "; + display: table; +} + +.pager:after { + clear: both; +} + +.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; +} + +.label:empty { + display: none; +} + +.btn .label { + position: relative; + top: -1px; +} + +a.label:hover, a.label:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} + +.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: 14px; + 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, +.btn-group-xs > .btn .badge { + top: 0; + padding: 1px 5px; +} + +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #000; + 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; +} + +a.badge:hover, a.badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} + +.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: 24px; + font-weight: 200; +} + +.jumbotron > hr { + border-top-color: #d5d5d5; +} + +.container .jumbotron, +.container-fluid .jumbotron { + border-radius: 0; + padding-left: 15px; + padding-right: 15px; +} + +.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: 72px; + } +} + +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 22px; + line-height: 1.429; + background-color: #000; + border: 1px solid #ddd; + border-radius: 25px; + -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 { + display: block; + max-width: 100%; + height: auto; + margin-left: auto; + margin-right: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #000; +} + +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #000; +} + +.alert { + padding: 15px; + margin-bottom: 22px; + border: 1px solid transparent; + border-radius: 25px; +} + +.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: 22px; + margin-bottom: 22px; + background-color: #f5f5f5; + border-radius: 25px; + -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: 14px; + line-height: 22px; + 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: 25px; + border-top-left-radius: 25px; +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 25px; + border-bottom-left-radius: 25px; +} + +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, a.list-group-item:focus, +button.list-group-item:hover, +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 .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading, +.list-group-item.active:focus .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, a.list-group-item-success:focus, +button.list-group-item-success:hover, +button.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; +} + +a.list-group-item-success.active, a.list-group-item-success.active:hover, a.list-group-item-success.active:focus, +button.list-group-item-success.active, +button.list-group-item-success.active:hover, +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, a.list-group-item-info:focus, +button.list-group-item-info:hover, +button.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; +} + +a.list-group-item-info.active, a.list-group-item-info.active:hover, a.list-group-item-info.active:focus, +button.list-group-item-info.active, +button.list-group-item-info.active:hover, +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, a.list-group-item-warning:focus, +button.list-group-item-warning:hover, +button.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; +} + +a.list-group-item-warning.active, a.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus, +button.list-group-item-warning.active, +button.list-group-item-warning.active:hover, +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, a.list-group-item-danger:focus, +button.list-group-item-danger:hover, +button.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; +} + +a.list-group-item-danger.active, a.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus, +button.list-group-item-danger.active, +button.list-group-item-danger.active:hover, +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: 22px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 25px; + -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-body:before, .panel-body:after { + content: " "; + display: table; +} + +.panel-body:after { + clear: both; +} + +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: 24px; + border-top-left-radius: 24px; +} + +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} + +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 18px; + 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: 24px; + border-bottom-left-radius: 24px; +} + +.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: 24px; + border-top-left-radius: 24px; +} + +.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: 24px; + border-bottom-left-radius: 24px; +} + +.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: 24px; + border-top-left-radius: 24px; +} + +.panel > .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 > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: 24px; + border-top-right-radius: 24px; +} + +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .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 th:first-child, +.panel > .table-responsive:first-child > .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 th:first-child { + border-top-left-radius: 24px; +} + +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .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 th:last-child, +.panel > .table-responsive:first-child > .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 th:last-child { + border-top-right-radius: 24px; +} + +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: 24px; + border-bottom-left-radius: 24px; +} + +.panel > .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 > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-left-radius: 24px; + border-bottom-right-radius: 24px; +} + +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .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 th:first-child, +.panel > .table-responsive:last-child > .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 th:first-child { + border-bottom-left-radius: 24px; +} + +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .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 th:last-child, +.panel > .table-responsive:last-child > .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 th:last-child { + border-bottom-right-radius: 24px; +} + +.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-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th: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-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th: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-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; +} + +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.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: 22px; +} + +.panel-group .panel { + margin-bottom: 0; + border-radius: 25px; +} + +.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: 25px; + -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: 0; +} + +.well-sm { + padding: 9px; + border-radius: 0; +} + +.close { + float: right; + font-size: 24px; + 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: 0; + -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:before, .modal-header:after { + content: " "; + display: table; +} + +.modal-header:after { + clear: both; +} + +.modal-header .close { + margin-top: -2px; +} + +.modal-title { + margin: 0; + line-height: 1.429; +} + +.modal-body { + position: relative; + padding: 15px; +} + +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} + +.modal-footer:before, .modal-footer:after { + content: " "; + display: table; +} + +.modal-footer:after { + clear: both; +} + +.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: "Oxygen", Arial, sans-serif; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-break: auto; + line-height: 1.429; + 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: 14px; + 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: 25px; +} + +.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: "Oxygen", Arial, sans-serif; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-break: auto; + line-height: 1.429; + 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: 16px; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0; + -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: 16px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: -1 -1 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 { + display: block; + max-width: 100%; + height: auto; + 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: transparent; +} + +.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: transparent; +} + +.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 { + content: " "; + display: table; +} + +.clearfix: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 { + display: none !important; +} + +.visible-sm { + display: none !important; +} + +.visible-md { + display: none !important; +} + +.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; + } +} diff --git a/css/main.css b/css/main.css new file mode 100644 index 0000000..b3df871 --- /dev/null +++ b/css/main.css @@ -0,0 +1,377 @@ +/** + * Description: main styles + * Version: 1.0.0 + * Last update: 22.02.2017 + * Author: alex.maslennikova19@gmail.com + */ +/*$breakpoints: ( + 'screen-xs': 480px, + 'screen-sm': 768px, + 'screen-md': 992px, + 'screen-lg': 1200px +); +// keywords +$media-expressions: ( + 'screen': 'screen', + 'print': 'print', + 'handheld': 'handheld', + 'landscape': '(orientation: landscape)', + 'portrait': '(orientation: portrait)', + 'retina2x': '(-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi)', + 'retina3x': '(-webkit-min-device-pixel-ratio: 2.5), (min-resolution: 240dpi)' +);*/ +.clearfix:after { + content: ''; + display: table; + clear: both; +} + +.ellipsis { + white-space: nowrap; + /* 1 */ + text-overflow: ellipsis; + /* 2 */ + overflow: hidden; +} + +a:hover, a:focus, a:active, a.active { + color: #777; + text-decoration: none; +} + +button { + outline: none; +} + +h2 { + margin: 20px 0; +} + +h3 { + margin: 0; +} + +.edit-contact .container, .add-user .container, .app .container { + padding-bottom: 50px; +} + +.app .container { + min-height: 400px; +} + +.keypad .container { + padding-bottom: 20px; +} + +.container { + max-width: 400px; + min-width: 400px; + background: #ccc; + padding: 0 25px; +} + +.top-radius { + border-top-left-radius: 30px; + border-top-right-radius: 30px; + padding-top: 25px; +} + +.bottom-radius { + border-bottom-left-radius: 30px; + border-bottom-right-radius: 30px; + padding-bottom: 25px; +} + +.header { + text-align: center; + margin-top: 20px; +} + +.main-nav { + display: flex; + justify-content: space-between; +} + +.keypad-holder { + width: 250px; + margin: 0 auto; + display: flex; + flex-wrap: wrap; + justify-content: space-around; + margin-bottom: 20px; +} + +.number { + margin: 0 auto; + font-size: 20px; + width: 200px; + height: 50px; + margin-bottom: 20px; + border-bottom: 1px solid #eee; + display: flex; + justify-content: space-between; +} + +.number .numbers { + align-self: flex-end; + max-width: 200px; + overflow: hidden; +} + +.number .glyphicon:hover { + color: #333; + cursor: pointer; +} + +.key { + width: 60px; + min-height: 60px; + padding: 15px 0; + border-radius: 50%; + border: 1px solid #fff; + text-align: center; + margin-bottom: 10px; + margin-left: 5px; + margin-right: 5px; + display: flex; + align-items: center; + justify-content: center; +} + +.key:last-child { + background: #4cda64; + color: #fff; +} + +.key:last-child:hover { + background: #348f3c; + border: 1px solid #fff; +} + +.key:hover { + background: rgba(0, 0, 0, 0.1); + border: 1px solid #777; +} + +.tab { + display: flex; + flex-direction: column; + align-items: center; +} + +.tab:hover, .tab:focus, .tab:active, .tab.active { + color: #777; + text-decoration: none; +} + +.tab-text { + font-size: 12px; + margin-top: 5px; +} + +.contacts tbody { + display: block; + max-height: 300px; + overflow: hidden; + overflow-y: auto; +} + +.contacts tr { + display: table; + width: 100%; + table-layout: fixed; +} + +.table > thead > tr > th { + border: none; +} + +.table > thead > tr > th:hover { + cursor: pointer; +} + +.form-inline .form-control { + margin-bottom: 20px; + width: 100%; +} + +.form-inline .form-group { + display: block; +} + +.user-top-line { + display: flex; + justify-content: space-between; + margin-bottom: 20px; + font-size: 14px; +} + +.user-img { + width: 100px; + height: 100px; + margin-bottom: 10px; +} + +.user-name { + font-weight: bold; + text-align: center; + margin-bottom: 10px; +} + +.options-line { + display: flex; + justify-content: space-between; + text-align: center; + margin-bottom: 20px; +} + +.options-icon { + border-radius: 50%; + background: #000; + color: #fff; + width: 40px; + height: 40px; + margin: 0 auto 5px; + position: relative; +} + +.options-icon:hover { + background: #777; +} + +.options-text { + font-size: 12px; +} + +.message, .call, .video, .mail { + display: flex; + flex-direction: column; +} + +.icon { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} + +.user-data { + margin-bottom: 10px; + font-size: 16px; +} + +.options-table { + margin-bottom: 20px; + font-size: 16px; + max-height: 250px; + overflow: hidden; + overflow-y: auto; +} + +.options-item { + padding: 10px 0; + border-bottom: 1px solid #777; +} + +.options-item:first-child { + border-top: 1px solid #777; +} + +.scroll-holder { + max-height: 300px; + overflow: hidden; + overflow-y: auto; + margin-bottom: 20px; +} + +.add-foto-btn { + width: 100px; + height: 100px; + border-radius: 50%; + border: 1px solid #eee; + outline: none; +} + +.done-btn { + background: transparent; + border: none; + outline: none; +} + +.done-btn:hover { + color: #777; +} + +.main-info-holder { + flex-grow: 1; +} + +.edit-main-info { + display: flex; + justify-content: space-between; + margin-bottom: 20px; +} + +.edit-foto { + margin-right: 10px; +} + +.edit-field { + padding: 5px 0; + border-bottom: 1px solid #fff; + width: 100%; + display: flex; +} + +.edit-field .glyphicon { + top: 4px; +} + +.edit-field .glyphicon-minus-sign { + color: #e32910; +} + +.edit-field .glyphicon-minus-sign:hover, .edit-field .glyphicon-minus-sign:focus, .edit-field .glyphicon-minus-sign:active { + color: #a70b0f; +} + +.edit-field .glyphicon-plus-sign { + color: #4cda64; +} + +.edit-field .glyphicon-plus-sign:hover, .edit-field .glyphicon-plus-sign:focus, .edit-field .glyphicon-plus-sign:active { + color: #348f3c; +} + +.delete-btn { + padding: 0 5px; + margin-top: 3px; + margin-right: 10px; + border: none; + background: transparent; +} + +::-webkit-input-placeholder { + color: #555; +} + +:-moz-placeholder { + color: #555; +} + +.add-btn { + border: 0; + background: transparent; + width: 100%; + text-align: left; + outline-color: transparent; + padding: 0 5px; +} + +.delete-contact { + color: #e32910; + margin: 0 auto; + font-weight: bold; +} diff --git a/fonts/bootstrap/glyphicons-halflings-regular.eot b/fonts/bootstrap/glyphicons-halflings-regular.eot new file mode 100644 index 0000000000000000000000000000000000000000..b93a4953fff68df523aa7656497ee339d6026d64 GIT binary patch literal 20127 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/fonts/bootstrap/glyphicons-halflings-regular.ttf b/fonts/bootstrap/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1413fc609ab6f21774de0cb7e01360095584f65b GIT binary patch literal 45404 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 G`u_lkUM?>H literal 0 HcmV?d00001 diff --git a/fonts/bootstrap/glyphicons-halflings-regular.woff2 b/fonts/bootstrap/glyphicons-halflings-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..64539b54c3751a6d9adb44c8e3a45ba5a73b77f0 GIT binary patch literal 18028 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 literal 0 HcmV?d00001 diff --git a/images/user-face-mini.png b/images/user-face-mini.png new file mode 100644 index 0000000000000000000000000000000000000000..1996df7c375c6999fde71d03ab68a049bc840837 GIT binary patch literal 22600 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 literal 0 HcmV?d00001 diff --git a/images/user-face.png b/images/user-face.png new file mode 100644 index 0000000000000000000000000000000000000000..92f94dd5dce449d01ae67ba74e329448bf8d7b1e GIT binary patch literal 64550 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..0d9d93b --- /dev/null +++ b/index.html @@ -0,0 +1,40 @@ + + + + + + + Contacts + + + + + + +

+ + + + + + + + + \ No newline at end of file diff --git a/scss/_bootstrap-custom.scss b/scss/_bootstrap-custom.scss new file mode 100644 index 0000000..b64e085 --- /dev/null +++ b/scss/_bootstrap-custom.scss @@ -0,0 +1,24 @@ +// custom variables and override bootstrap variables + +$body-bg: #000; +$text-color: #000; +$link-color: $text-color; + +$font-size-base: 16px; +$line-height-base: 1.429; +$font-size-h1: ceil($font-size-base * 1.5); //~27px +$font-size-h2: ceil($font-size-base * 1.333); //~24px +$font-size-h3: $font-size-base; +// inputs +$input-bg: #eee; +$input-color: #000; +$input-color-placeholder: #999; + +$input-border-radius: 20px; +$border-radius-base: 25px; +$border-radius-large: 0; +$border-radius-small: 0; + +$font-family-sans-serif: 'Oxygen', Arial, sans-serif; +$font-family-serif: 'Times New Roman', Georgia, serif; +$headings-font-family: $font-family-sans-serif; \ No newline at end of file diff --git a/scss/base/_helpers.scss b/scss/base/_helpers.scss new file mode 100644 index 0000000..ca33d4c --- /dev/null +++ b/scss/base/_helpers.scss @@ -0,0 +1,59 @@ +// list reset +%listreset { + margin: 0; + padding: 0; + list-style: none; +} + +// clearfix +%clearfix { + &:after { + content: ''; + display: table; + clear: both; + } +} + +.clearfix { + @extend %clearfix; +} + + +// transition +%transition { + transition: all 0.3s ease-in-out; +} + +// justify nav +%justify { + text-align: justify; + font-size: 1px; + line-height: 0px; + > * { + display: inline-block; + vertical-align: top; + text-align: left; + font-size: $font-size-base; + line-height: $line-height-base; + } + &:after { + content: ''; + width: 100%; + display: inline-block; + vertical-align: top; + } +} + + + +/// * Helper class to truncate and add ellipsis to a string too long for it to fit +/// * on a single line. +/// * 1. Prevent content from wrapping, forcing it on a single line. +/// * 2. Add ellipsis at the end of the line. + +.ellipsis { + white-space: nowrap; /* 1 */ + text-overflow: ellipsis; /* 2 */ + overflow: hidden; +} + diff --git a/scss/base/_include-media.scss b/scss/base/_include-media.scss new file mode 100644 index 0000000..0815871 --- /dev/null +++ b/scss/base/_include-media.scss @@ -0,0 +1,560 @@ +@charset 'UTF-8'; + +// _ _ _ _ _ +// (_) | | | | | (_) +// _ _ __ ___| |_ _ __| | ___ _ __ ___ ___ __| |_ __ _ +// | | '_ \ / __| | | | |/ _` |/ _ \ | '_ ` _ \ / _ \/ _` | |/ _` | +// | | | | | (__| | |_| | (_| | __/ | | | | | | __/ (_| | | (_| | +// |_|_| |_|\___|_|\__,_|\__,_|\___| |_| |_| |_|\___|\__,_|_|\__,_| +// +// Simple, elegant and maintainable media queries in Sass +// v1.4.1 +// +// http://include-media.com +// +// Authors: Eduardo Boucas (@eduardoboucas) +// Hugo Giraudel (@hugogiraudel) +// +// This project is licensed under the terms of the MIT license + + +//// +/// include-media library public configuration +/// @author Eduardo Boucas +/// @access public +//// + + +/// +/// Creates a list of global breakpoints +/// +/// @example scss - Creates a single breakpoint with the label `phone` +/// $breakpoints: ('phone': 320px); +/// +$breakpoints: ( + 'screen-xs': 320px, + 'screen-md': 768px, + 'screen-lg': 1024px +) !default; + + +/// +/// Creates a list of static expressions or media types +/// +/// @example scss - Creates a single media type (screen) +/// $media-expressions: ('screen': 'screen'); +/// +/// @example scss - Creates a static expression with logical disjunction (OR operator) +/// $media-expressions: ( +/// 'retina2x': '(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi)' +/// ); +/// +$media-expressions: ( + 'screen': 'screen', + 'print': 'print', + 'handheld': 'handheld', + 'landscape': '(orientation: landscape)', + 'portrait': '(orientation: portrait)', + 'retina2x': '(-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi)', + 'retina3x': '(-webkit-min-device-pixel-ratio: 3), (min-resolution: 350dpi)' +) !default; + + +/// +/// Defines a number to be added or subtracted from each unit when declaring breakpoints with exclusive intervals +/// +/// @example scss - Interval for pixels is defined as `1` by default +/// @include media('>128px') {} +/// +/// /* Generates: */ +/// @media (min-width: 129px) {} +/// +/// @example scss - Interval for ems is defined as `0.01` by default +/// @include media('>20em') {} +/// +/// /* Generates: */ +/// @media (min-width: 20.01em) {} +/// +/// @example scss - Interval for rems is defined as `0.1` by default, to be used with `font-size: 62.5%;` +/// @include media('>2.0rem') {} +/// +/// /* Generates: */ +/// @media (min-width: 2.1rem) {} +/// +$unit-intervals: ( + 'px': 1, + 'em': 0.01, + 'rem': 0.1 +) !default; + +/// +/// Defines whether support for media queries is available, useful for creating separate stylesheets +/// for browsers that don't support media queries. +/// +/// @example scss - Disables support for media queries +/// $im-media-support: false; +/// @include media('>=tablet') { +/// .foo { +/// color: tomato; +/// } +/// } +/// +/// /* Generates: */ +/// .foo { +/// color: tomato; +/// } +/// +$im-media-support: true !default; + +/// +/// Selects which breakpoint to emulate when support for media queries is disabled. Media queries that start at or +/// intercept the breakpoint will be displayed, any others will be ignored. +/// +/// @example scss - This media query will show because it intercepts the static breakpoint +/// $im-media-support: false; +/// $im-no-media-breakpoint: 'desktop'; +/// @include media('>=tablet') { +/// .foo { +/// color: tomato; +/// } +/// } +/// +/// /* Generates: */ +/// .foo { +/// color: tomato; +/// } +/// +/// @example scss - This media query will NOT show because it does not intercept the desktop breakpoint +/// $im-media-support: false; +/// $im-no-media-breakpoint: 'tablet'; +/// @include media('>=desktop') { +/// .foo { +/// color: tomato; +/// } +/// } +/// +/// /* No output */ +/// +$im-no-media-breakpoint: 'desktop' !default; + +/// +/// Selects which media expressions are allowed in an expression for it to be used when media queries +/// are not supported. +/// +/// @example scss - This media query will show because it intercepts the static breakpoint and contains only accepted media expressions +/// $im-media-support: false; +/// $im-no-media-breakpoint: 'desktop'; +/// $im-no-media-expressions: ('screen'); +/// @include media('>=tablet', 'screen') { +/// .foo { +/// color: tomato; +/// } +/// } +/// +/// /* Generates: */ +/// .foo { +/// color: tomato; +/// } +/// +/// @example scss - This media query will NOT show because it intercepts the static breakpoint but contains a media expression that is not accepted +/// $im-media-support: false; +/// $im-no-media-breakpoint: 'desktop'; +/// $im-no-media-expressions: ('screen'); +/// @include media('>=tablet', 'retina2x') { +/// .foo { +/// color: tomato; +/// } +/// } +/// +/// /* No output */ +/// +$im-no-media-expressions: ('screen', 'portrait', 'landscape') !default; + +//// +/// Cross-engine logging engine +/// @author Hugo Giraudel +/// @access private +//// + + +/// +/// Log a message either with `@error` if supported +/// else with `@warn`, using `feature-exists('at-error')` +/// to detect support. +/// +/// @param {String} $message - Message to log +/// +@function log($message) { + @if feature-exists('at-error') { + @error $message; + } @else { + @warn $message; + $_: noop(); + } + + @return $message; +} + + +/// +/// Wrapper mixin for the log function so it can be used with a more friendly +/// API than `@if log('..') {}` or `$_: log('..')`. Basically, use the function +/// within functions because it is not possible to include a mixin in a function +/// and use the mixin everywhere else because it's much more elegant. +/// +/// @param {String} $message - Message to log +/// +@mixin log($message) { + @if log($message) {} +} + + +/// +/// Function with no `@return` called next to `@warn` in Sass 3.3 +/// to trigger a compiling error and stop the process. +/// +@function noop() {} + +/// +/// Determines whether a list of conditions is intercepted by the static breakpoint. +/// +/// @param {Arglist} $conditions - Media query conditions +/// +/// @return {Boolean} - Returns true if the conditions are intercepted by the static breakpoint +/// +@function im-intercepts-static-breakpoint($conditions...) { + $no-media-breakpoint-value: map-get($breakpoints, $im-no-media-breakpoint); + + @if not $no-media-breakpoint-value { + @if log('`#{$im-no-media-breakpoint}` is not a valid breakpoint.') {} + } + + @each $condition in $conditions { + @if not map-has-key($media-expressions, $condition) { + $operator: get-expression-operator($condition); + $prefix: get-expression-prefix($operator); + $value: get-expression-value($condition, $operator); + + @if ($prefix == 'max' and $value <= $no-media-breakpoint-value) or + ($prefix == 'min' and $value > $no-media-breakpoint-value) { + @return false; + } + } @else if not index($im-no-media-expressions, $condition) { + @return false; + } + } + + @return true; +} + +//// +/// Parsing engine +/// @author Hugo Giraudel +/// @access private +//// + + +/// +/// Get operator of an expression +/// +/// @param {String} $expression - Expression to extract operator from +/// +/// @return {String} - Any of `>=`, `>`, `<=`, `<`, `≥`, `≤` +/// +@function get-expression-operator($expression) { + @each $operator in ('>=', '>', '<=', '<', '≥', '≤') { + @if str-index($expression, $operator) { + @return $operator; + } + } + + // It is not possible to include a mixin inside a function, so we have to + // rely on the `log(..)` function rather than the `log(..)` mixin. Because + // functions cannot be called anywhere in Sass, we need to hack the call in + // a dummy variable, such as `$_`. If anybody ever raise a scoping issue with + // Sass 3.3, change this line in `@if log(..) {}` instead. + $_: log('No operator found in `#{$expression}`.'); +} + + +/// +/// Get dimension of an expression, based on a found operator +/// +/// @param {String} $expression - Expression to extract dimension from +/// @param {String} $operator - Operator from `$expression` +/// +/// @return {String} - `width` or `height` (or potentially anything else) +/// +@function get-expression-dimension($expression, $operator) { + $operator-index: str-index($expression, $operator); + $parsed-dimension: str-slice($expression, 0, $operator-index - 1); + $dimension: 'width'; + + @if str-length($parsed-dimension) > 0 { + $dimension: $parsed-dimension; + } + + @return $dimension; +} + + +/// +/// Get dimension prefix based on an operator +/// +/// @param {String} $operator - Operator +/// +/// @return {String} - `min` or `max` +/// +@function get-expression-prefix($operator) { + @return if(index(('<', '<=', '≤'), $operator), 'max', 'min'); +} + + +/// +/// Get value of an expression, based on a found operator +/// +/// @param {String} $expression - Expression to extract value from +/// @param {String} $operator - Operator from `$expression` +/// +/// @return {Number} - A numeric value +/// +@function get-expression-value($expression, $operator) { + $operator-index: str-index($expression, $operator); + $value: str-slice($expression, $operator-index + str-length($operator)); + + @if map-has-key($breakpoints, $value) { + $value: map-get($breakpoints, $value); + } @else { + $value: to-number($value); + } + + $interval: map-get($unit-intervals, unit($value)); + + @if not $interval { + // It is not possible to include a mixin inside a function, so we have to + // rely on the `log(..)` function rather than the `log(..)` mixin. Because + // functions cannot be called anywhere in Sass, we need to hack the call in + // a dummy variable, such as `$_`. If anybody ever raise a scoping issue with + // Sass 3.3, change this line in `@if log(..) {}` instead. + $_: log('Unknown unit `#{unit($value)}`.'); + } + + @if $operator == '>' { + $value: $value + $interval; + } @else if $operator == '<' { + $value: $value - $interval; + } + + @return $value; +} + + +/// +/// Parse an expression to return a valid media-query expression +/// +/// @param {String} $expression - Expression to parse +/// +/// @return {String} - Valid media query +/// +@function parse-expression($expression) { + // If it is part of $media-expressions, it has no operator + // then there is no need to go any further, just return the value + @if map-has-key($media-expressions, $expression) { + @return map-get($media-expressions, $expression); + } + + $operator: get-expression-operator($expression); + $dimension: get-expression-dimension($expression, $operator); + $prefix: get-expression-prefix($operator); + $value: get-expression-value($expression, $operator); + + @return '(#{$prefix}-#{$dimension}: #{$value})'; +} + +/// +/// Slice `$list` between `$start` and `$end` indexes +/// +/// @access private +/// +/// @param {List} $list - List to slice +/// @param {Number} $start [1] - Start index +/// @param {Number} $end [length($list)] - End index +/// +/// @return {List} Sliced list +/// +@function slice($list, $start: 1, $end: length($list)) { + @if length($list) < 1 or $start > $end { + @return (); + } + + $result: (); + + @for $i from $start through $end { + $result: append($result, nth($list, $i)); + } + + @return $result; +} + +//// +/// String to number converter +/// @author Hugo Giraudel +/// @access private +//// + + +/// +/// Casts a string into a number +/// +/// @param {String | Number} $value - Value to be parsed +/// +/// @return {Number} +/// +@function to-number($value) { + @if type-of($value) == 'number' { + @return $value; + } @else if type-of($value) != 'string' { + $_: log('Value for `to-number` should be a number or a string.'); + } + + $result: 0; + $digits: 0; + $minus: str-slice($value, 1, 1) == '-'; + $numbers: ('0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9); + + @for $i from if($minus, 2, 1) through str-length($value) { + $character: str-slice($value, $i, $i); + + @if not (index(map-keys($numbers), $character) or $character == '.') { + @return to-length(if($minus, -$result, $result), str-slice($value, $i)) + } + + @if $character == '.' { + $digits: 1; + } @else if $digits == 0 { + $result: $result * 10 + map-get($numbers, $character); + } @else { + $digits: $digits * 10; + $result: $result + map-get($numbers, $character) / $digits; + } + } + + @return if($minus, -$result, $result);; +} + + +/// +/// Add `$unit` to `$value` +/// +/// @param {Number} $value - Value to add unit to +/// @param {String} $unit - String representation of the unit +/// +/// @return {Number} - `$value` expressed in `$unit` +/// +@function to-length($value, $unit) { + $units: ('px': 1px, 'cm': 1cm, 'mm': 1mm, '%': 1%, 'ch': 1ch, 'pc': 1pc, 'in': 1in, 'em': 1em, 'rem': 1rem, 'pt': 1pt, 'ex': 1ex, 'vw': 1vw, 'vh': 1vh, 'vmin': 1vmin, 'vmax': 1vmax); + + @if not index(map-keys($units), $unit) { + $_: log('Invalid unit `#{$unit}`.'); + } + + @return $value * map-get($units, $unit); +} + +/// +/// This mixin aims at redefining the configuration just for the scope of +/// the call. It is helpful when having a component needing an extended +/// configuration such as custom breakpoints (referred to as tweakpoints) +/// for instance. +/// +/// @author Hugo Giraudel +/// +/// @param {Map} $tweakpoints [()] - Map of tweakpoints to be merged with `$breakpoints` +/// @param {Map} $tweak-media-expressions [()] - Map of tweaked media expressions to be merged with `$media-expression` +/// +/// @example scss - Extend the global breakpoints with a tweakpoint +/// @include media-context(('custom': 678px)) { +/// .foo { +/// @include media('>phone', '<=custom') { +/// // ... +/// } +/// } +/// } +/// +/// @example scss - Extend the global media expressions with a custom one +/// @include media-context($tweak-media-expressions: ('all': 'all')) { +/// .foo { +/// @include media('all', '>phone') { +/// // ... +/// } +/// } +/// } +/// +/// @example scss - Extend both configuration maps +/// @include media-context(('custom': 678px), ('all': 'all')) { +/// .foo { +/// @include media('all', '>phone', '<=custom') { +/// // ... +/// } +/// } +/// } +/// +@mixin media-context($tweakpoints: (), $tweak-media-expressions: ()) { + // Save global configuration + $global-breakpoints: $breakpoints; + $global-media-expressions: $media-expressions; + + // Update global configuration + $breakpoints: map-merge($breakpoints, $tweakpoints) !global; + $media-expressions: map-merge($media-expressions, $tweak-media-expressions) !global; + + @content; + + // Restore global configuration + $breakpoints: $global-breakpoints !global; + $media-expressions: $tweak-media-expressions !global; +} + +//// +/// include-media public exposed API +/// @author Eduardo Boucas +/// @access public +//// + + +/// +/// Generates a media query based on a list of conditions +/// +/// @param {Arglist} $conditions - Media query conditions +/// +/// @example scss - With a single set breakpoint +/// @include media('>phone') { } +/// +/// @example scss - With two set breakpoints +/// @include media('>phone', '<=tablet') { } +/// +/// @example scss - With custom values +/// @include media('>=358px', '<850px') { } +/// +/// @example scss - With set breakpoints with custom values +/// @include media('>desktop', '<=1350px') { } +/// +/// @example scss - With a static expression +/// @include media('retina2x') { } +/// +/// @example scss - Mixing everything +/// @include media('>=350px', ' 0) { + @media #{unquote(parse-expression(nth($conditions, 1)))} { + // Recursive call + @include media(slice($conditions, 2)...) { + @content; + } + } + } +} \ No newline at end of file diff --git a/scss/base/_mixins.scss b/scss/base/_mixins.scss new file mode 100644 index 0000000..ddaf74d --- /dev/null +++ b/scss/base/_mixins.scss @@ -0,0 +1,154 @@ +// vertical align el inside parent with fixed height/min-height +// usage +// html - .parent>.child +// scss - @include v-align; +// or @include v-align(250px); +// or @include v-align(250px, bottom, before); +// +@mixin v-align($va-height: 100%, $va-direction: middle, $va-pseudo: after) { + white-space: nowrap; + text-align: center; + + &:#{$va-pseudo} { + content: ''; + display: inline-block; + vertical-align: $va-direction; + width: 0; + min-height: $va-height; + } + + > * { + white-space: normal; + display: inline-block; + vertical-align: $va-direction; + max-width: 99%; + } +} + +@mixin v-align-pair($child-name1, $child-name2, $valign: middle, $width1: auto, $width2: auto ) { + display: table; + .#{$child-name1}{ + display: table-cell; + vertical-align: $valign; + width: $width1; + } + .#{$child-name2} { + display: table-cell; + vertical-align: $valign; + width: $width2; + } +} + + +// vertical/horizontal align el +// usage: @include vertical-align-el; +// +@mixin xycenter { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%,-50%); + -ms-transform: translate(-50%,-50%); + transform: translate(-50%,-50%); +} +@mixin xcenter { + position: absolute; + left: 50%; + -webkit-transform: translate(-50%,0); + -ms-transform: translate(-50%,0); + transform: translate(-50%,0); +} +@mixin ycenter { + position: absolute; + top: 50%; + -webkit-transform: translate(0,-50%); + -ms-transform: translate(0,-50%); + transform: translate(0,-50%); +} + +@mixin size($width, $height: $width) { + width: $width; + height: $height; +} + +/// font-smothing +/// @include font-smoothing(on); +/// @include font-smoothing(off); +@mixin font-smoothing($value:on){ + @if $value == on{ + -webkit-font-smoothing:antialiased; + -moz-osx-font-smoothing:grayscale; + } + @else{ + -webkit-font-smoothing:subpixel-antialiased; + -moz-osx-font-smoothing:auto; + } +} + +@mixin hide-text { + overflow: hidden; + text-indent: 101%; + white-space: nowrap; +} + +/// Animate css properties +// usage +// scss - @include animate(color); +// or @include animate(color width); +// or @include animate(color width, 1s, linear); +// +$animation-speed: .3s !default; + +@mixin animate($properties, $duration: $animation-speed, $easing: ease-in-out) { + $list:(); + @each $prop in $properties { + $str: #{$prop} #{$animation-speed} #{$easing}; + $list: join($list, $str, comma); + } + transition: $list; +} + +@mixin placeholder { + &::-webkit-input-placeholder {@content} + &::-moz-placeholder {opacity: 1; @content} + &:-moz-placeholder {@content} + &:-ms-input-placeholder {@content} + &.placeholder {@content} +} +@mixin anim($param: all, $dur: .2s, $type: ease-in-out, $delay: 0s) { + transition: $param $dur $type $delay; +} +@mixin anim-param($params...) { + transition-property: $params; +} + +// ============================================================================= +// Font Face +// ============================================================================= + +@mixin font-face($name, $path, $weight: null, $style: null, $exts: eot woff2 woff ttf svg) { + $src: null; + + $extmods: ( + eot: "?", + svg: "#" + str-replace($name, " ", "_") + ); + + $formats: ( + otf: "opentype", + ttf: "truetype" + ); + + @each $ext in $exts { + $extmod: if(map-has-key($extmods, $ext), $ext + map-get($extmods, $ext), $ext); + $format: if(map-has-key($formats, $ext), map-get($formats, $ext), $ext); + $src: append($src, url(quote($path + "." + $extmod)) format(quote($format)), comma); + } + + @font-face { + font-family: quote($name); + font-style: $style; + font-weight: $weight; + src: $src; + } +} diff --git a/scss/bootstrap.scss b/scss/bootstrap.scss new file mode 100644 index 0000000..f1272dd --- /dev/null +++ b/scss/bootstrap.scss @@ -0,0 +1,56 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +@import "bootstrap-custom"; +// Core variables and mixins +@import "bootstrap/variables"; +@import "bootstrap/mixins"; + +// Reset and dependencies +@import "bootstrap/normalize"; +@import "bootstrap/print"; +@import "bootstrap/glyphicons"; + +// Core CSS +@import "bootstrap/scaffolding"; +@import "bootstrap/type"; +@import "bootstrap/code"; +@import "bootstrap/grid"; +@import "bootstrap/tables"; +@import "bootstrap/forms"; +@import "bootstrap/buttons"; + +// Components +@import "bootstrap/component-animations"; +@import "bootstrap/dropdowns"; +@import "bootstrap/button-groups"; +@import "bootstrap/input-groups"; +@import "bootstrap/navs"; +@import "bootstrap/navbar"; +@import "bootstrap/breadcrumbs"; +@import "bootstrap/pagination"; +@import "bootstrap/pager"; +@import "bootstrap/labels"; +@import "bootstrap/badges"; +@import "bootstrap/jumbotron"; +@import "bootstrap/thumbnails"; +@import "bootstrap/alerts"; +@import "bootstrap/progress-bars"; +@import "bootstrap/media"; +@import "bootstrap/list-group"; +@import "bootstrap/panels"; +@import "bootstrap/responsive-embed"; +@import "bootstrap/wells"; +@import "bootstrap/close"; + +// Components w/ JavaScript +@import "bootstrap/modals"; +@import "bootstrap/tooltip"; +@import "bootstrap/popovers"; +@import "bootstrap/carousel"; + +// Utility classes +@import "bootstrap/utilities"; +@import "bootstrap/responsive-utilities"; diff --git a/scss/bootstrap/_alerts.scss b/scss/bootstrap/_alerts.scss new file mode 100644 index 0000000..7d1e1fd --- /dev/null +++ b/scss/bootstrap/_alerts.scss @@ -0,0 +1,73 @@ +// +// Alerts +// -------------------------------------------------- + + +// Base styles +// ------------------------- + +.alert { + padding: $alert-padding; + margin-bottom: $line-height-computed; + border: 1px solid transparent; + border-radius: $alert-border-radius; + + // Headings for larger alerts + h4 { + margin-top: 0; + // Specified for the h4 to prevent conflicts of changing $headings-color + color: inherit; + } + + // Provide class for links that match alerts + .alert-link { + font-weight: $alert-link-font-weight; + } + + // Improve alignment and spacing of inner content + > p, + > ul { + margin-bottom: 0; + } + + > p + p { + margin-top: 5px; + } +} + +// Dismissible alerts +// +// Expand the right padding and account for the close button's positioning. + +.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0. +.alert-dismissible { + padding-right: ($alert-padding + 20); + + // Adjust close link position + .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; + } +} + +// Alternate styles +// +// Generate contextual modifier classes for colorizing the alert. + +.alert-success { + @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text); +} + +.alert-info { + @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text); +} + +.alert-warning { + @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text); +} + +.alert-danger { + @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text); +} diff --git a/scss/bootstrap/_badges.scss b/scss/bootstrap/_badges.scss new file mode 100644 index 0000000..70002e0 --- /dev/null +++ b/scss/bootstrap/_badges.scss @@ -0,0 +1,68 @@ +// +// Badges +// -------------------------------------------------- + + +// Base class +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: $font-size-small; + font-weight: $badge-font-weight; + color: $badge-color; + line-height: $badge-line-height; + vertical-align: middle; + white-space: nowrap; + text-align: center; + background-color: $badge-bg; + border-radius: $badge-border-radius; + + // Empty badges collapse automatically (not available in IE8) + &:empty { + display: none; + } + + // Quick fix for badges in buttons + .btn & { + position: relative; + top: -1px; + } + + .btn-xs &, + .btn-group-xs > .btn & { + top: 0; + padding: 1px 5px; + } + + // [converter] extracted a& to a.badge + + // Account for badges in navs + .list-group-item.active > &, + .nav-pills > .active > a > & { + color: $badge-active-color; + background-color: $badge-active-bg; + } + + .list-group-item > & { + float: right; + } + + .list-group-item > & + & { + margin-right: 5px; + } + + .nav-pills > li > a > & { + margin-left: 3px; + } +} + +// Hover state, but only for links +a.badge { + &:hover, + &:focus { + color: $badge-link-hover-color; + text-decoration: none; + cursor: pointer; + } +} diff --git a/scss/bootstrap/_breadcrumbs.scss b/scss/bootstrap/_breadcrumbs.scss new file mode 100644 index 0000000..b61f0c7 --- /dev/null +++ b/scss/bootstrap/_breadcrumbs.scss @@ -0,0 +1,28 @@ +// +// Breadcrumbs +// -------------------------------------------------- + + +.breadcrumb { + padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal; + margin-bottom: $line-height-computed; + list-style: none; + background-color: $breadcrumb-bg; + border-radius: $border-radius-base; + + > li { + display: inline-block; + + + li:before { + // [converter] Workaround for https://github.com/sass/libsass/issues/1115 + $nbsp: "\00a0"; + content: "#{$breadcrumb-separator}#{$nbsp}"; // Unicode space added since inline-block means non-collapsing white-space + padding: 0 5px; + color: $breadcrumb-color; + } + } + + > .active { + color: $breadcrumb-active-color; + } +} diff --git a/scss/bootstrap/_button-groups.scss b/scss/bootstrap/_button-groups.scss new file mode 100644 index 0000000..4b385f5 --- /dev/null +++ b/scss/bootstrap/_button-groups.scss @@ -0,0 +1,244 @@ +// +// Button groups +// -------------------------------------------------- + +// Make the div behave like a button +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; // match .btn alignment given font-size hack above + > .btn { + position: relative; + float: left; + // Bring the "active" button to the front + &:hover, + &:focus, + &:active, + &.active { + z-index: 2; + } + } +} + +// Prevent double borders when buttons are next to each other +.btn-group { + .btn + .btn, + .btn + .btn-group, + .btn-group + .btn, + .btn-group + .btn-group { + margin-left: -1px; + } +} + +// Optional: Group multiple button groups together for a toolbar +.btn-toolbar { + margin-left: -5px; // Offset the first child's margin + @include clearfix; + + .btn, + .btn-group, + .input-group { + float: left; + } + > .btn, + > .btn-group, + > .input-group { + margin-left: 5px; + } +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match +.btn-group > .btn:first-child { + margin-left: 0; + &:not(:last-child):not(.dropdown-toggle) { + @include border-right-radius(0); + } +} +// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + @include border-left-radius(0); +} + +// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group) +.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, + > .dropdown-toggle { + @include border-right-radius(0); + } +} +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + @include border-left-radius(0); +} + +// On active and open, don't show outline +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + + +// Sizing +// +// Remix the default button sizing classes into new ones for easier manipulation. + +.btn-group-xs > .btn { @extend .btn-xs; } +.btn-group-sm > .btn { @extend .btn-sm; } +.btn-group-lg > .btn { @extend .btn-lg; } + + +// Split button dropdowns +// ---------------------- + +// Give the line between buttons some depth +.btn-group > .btn + .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} + +// The clickable button for toggling the menu +// Remove the gradient and set the same inset shadow as the :active state +.btn-group.open .dropdown-toggle { + @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + + // Show no shadow for `.btn-link` since it has no other button styles. + &.btn-link { + @include box-shadow(none); + } +} + + +// Reposition the caret +.btn .caret { + margin-left: 0; +} +// Carets in other button sizes +.btn-lg .caret { + border-width: $caret-width-large $caret-width-large 0; + border-bottom-width: 0; +} +// Upside down carets for .dropup +.dropup .btn-lg .caret { + border-width: 0 $caret-width-large $caret-width-large; +} + + +// Vertical button groups +// ---------------------- + +.btn-group-vertical { + > .btn, + > .btn-group, + > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; + } + + // Clear floats so dropdown menus can be properly placed + > .btn-group { + @include clearfix; + > .btn { + float: none; + } + } + + > .btn + .btn, + > .btn + .btn-group, + > .btn-group + .btn, + > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; + } +} + +.btn-group-vertical > .btn { + &:not(:first-child):not(:last-child) { + border-radius: 0; + } + &:first-child:not(:last-child) { + @include border-top-radius($btn-border-radius-base); + @include border-bottom-radius(0); + } + &:last-child:not(:first-child) { + @include border-top-radius(0); + @include border-bottom-radius($btn-border-radius-base); + } +} +.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, + > .dropdown-toggle { + @include border-bottom-radius(0); + } +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + @include border-top-radius(0); +} + + +// Justified button groups +// ---------------------- + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; + > .btn, + > .btn-group { + float: none; + display: table-cell; + width: 1%; + } + > .btn-group .btn { + width: 100%; + } + + > .btn-group .dropdown-menu { + left: auto; + } +} + + +// Checkbox and radio options +// +// In order to support the browser's form validation feedback, powered by the +// `required` attribute, we have to "hide" the inputs via `clip`. We cannot use +// `display: none;` or `visibility: hidden;` as that also hides the popover. +// Simply visually hiding the inputs via `opacity` would leave them clickable in +// certain cases which is prevented by using `clip` and `pointer-events`. +// This way, we ensure a DOM element is visible to position the popover from. +// +// See https://github.com/twbs/bootstrap/pull/12794 and +// https://github.com/twbs/bootstrap/pull/14559 for more information. + +[data-toggle="buttons"] { + > .btn, + > .btn-group > .btn { + input[type="radio"], + input[type="checkbox"] { + position: absolute; + clip: rect(0,0,0,0); + pointer-events: none; + } + } +} diff --git a/scss/bootstrap/_buttons.scss b/scss/bootstrap/_buttons.scss new file mode 100644 index 0000000..6452b70 --- /dev/null +++ b/scss/bootstrap/_buttons.scss @@ -0,0 +1,168 @@ +// +// Buttons +// -------------------------------------------------- + + +// Base styles +// -------------------------------------------------- + +.btn { + display: inline-block; + margin-bottom: 0; // For input.btn + font-weight: $btn-font-weight; + text-align: center; + vertical-align: middle; + touch-action: manipulation; + cursor: pointer; + background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 + border: 1px solid transparent; + white-space: nowrap; + @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $btn-border-radius-base); + @include user-select(none); + + &, + &:active, + &.active { + &:focus, + &.focus { + @include tab-focus; + } + } + + &:hover, + &:focus, + &.focus { + color: $btn-default-color; + text-decoration: none; + } + + &:active, + &.active { + outline: 0; + background-image: none; + @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + } + + &.disabled, + &[disabled], + fieldset[disabled] & { + cursor: $cursor-disabled; + @include opacity(.65); + @include box-shadow(none); + } + + // [converter] extracted a& to a.btn +} + +a.btn { + &.disabled, + fieldset[disabled] & { + pointer-events: none; // Future-proof disabling of clicks on `` elements + } +} + + +// Alternate buttons +// -------------------------------------------------- + +.btn-default { + @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border); +} +.btn-primary { + @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border); +} +// Success appears as green +.btn-success { + @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border); +} +// Info appears as blue-green +.btn-info { + @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border); +} +// Warning appears as orange +.btn-warning { + @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border); +} +// Danger and error appear as red +.btn-danger { + @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border); +} + + +// Link buttons +// ------------------------- + +// Make a button look and behave like a link +.btn-link { + color: $link-color; + font-weight: normal; + border-radius: 0; + + &, + &:active, + &.active, + &[disabled], + fieldset[disabled] & { + background-color: transparent; + @include box-shadow(none); + } + &, + &:hover, + &:focus, + &:active { + border-color: transparent; + } + &:hover, + &:focus { + color: $link-hover-color; + text-decoration: $link-hover-decoration; + background-color: transparent; + } + &[disabled], + fieldset[disabled] & { + &:hover, + &:focus { + color: $btn-link-disabled-color; + text-decoration: none; + } + } +} + + +// Button Sizes +// -------------------------------------------------- + +.btn-lg { + // line-height: ensure even-numbered height of button next to large input + @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $btn-border-radius-large); +} +.btn-sm { + // line-height: ensure proper height of button next to small input + @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small); +} +.btn-xs { + @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $btn-border-radius-small); +} + + +// Block button +// -------------------------------------------------- + +.btn-block { + display: block; + width: 100%; +} + +// Vertically space out multiple block buttons +.btn-block + .btn-block { + margin-top: 5px; +} + +// Specificity overrides +input[type="submit"], +input[type="reset"], +input[type="button"] { + &.btn-block { + width: 100%; + } +} diff --git a/scss/bootstrap/_carousel.scss b/scss/bootstrap/_carousel.scss new file mode 100644 index 0000000..753d881 --- /dev/null +++ b/scss/bootstrap/_carousel.scss @@ -0,0 +1,270 @@ +// +// Carousel +// -------------------------------------------------- + + +// Wrapper for the slide container and indicators +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + overflow: hidden; + width: 100%; + + > .item { + display: none; + position: relative; + @include transition(.6s ease-in-out left); + + // Account for jankitude on images + > img, + > a > img { + @include img-responsive; + line-height: 1; + } + + // WebKit CSS3 transforms for supported devices + @media all and (transform-3d), (-webkit-transform-3d) { + @include transition-transform(0.6s ease-in-out); + @include backface-visibility(hidden); + @include perspective(1000px); + + &.next, + &.active.right { + @include translate3d(100%, 0, 0); + left: 0; + } + &.prev, + &.active.left { + @include translate3d(-100%, 0, 0); + left: 0; + } + &.next.left, + &.prev.right, + &.active { + @include translate3d(0, 0, 0); + left: 0; + } + } + } + + > .active, + > .next, + > .prev { + display: block; + } + + > .active { + left: 0; + } + + > .next, + > .prev { + position: absolute; + top: 0; + width: 100%; + } + + > .next { + left: 100%; + } + > .prev { + left: -100%; + } + > .next.left, + > .prev.right { + left: 0; + } + + > .active.left { + left: -100%; + } + > .active.right { + left: 100%; + } + +} + +// Left/right controls for nav +// --------------------------- + +.carousel-control { + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: $carousel-control-width; + @include opacity($carousel-control-opacity); + font-size: $carousel-control-font-size; + color: $carousel-control-color; + text-align: center; + text-shadow: $carousel-text-shadow; + background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug + // We can't have this transition here because WebKit cancels the carousel + // animation if you trip this while in the middle of another animation. + + // Set gradients for backgrounds + &.left { + @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001)); + } + &.right { + left: auto; + right: 0; + @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5)); + } + + // Hover/focus state + &:hover, + &:focus { + outline: 0; + color: $carousel-control-color; + text-decoration: none; + @include opacity(.9); + } + + // Toggles + .icon-prev, + .icon-next, + .glyphicon-chevron-left, + .glyphicon-chevron-right { + position: absolute; + top: 50%; + margin-top: -10px; + z-index: 5; + display: inline-block; + } + .icon-prev, + .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; + } + .icon-next, + .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; + } + .icon-prev, + .icon-next { + width: 20px; + height: 20px; + line-height: 1; + font-family: serif; + } + + + .icon-prev { + &:before { + content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039) + } + } + .icon-next { + &:before { + content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A) + } + } +} + +// Optional indicator pips +// +// Add an unordered list with the following class and add a list item for each +// slide your carousel holds. + +.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; + + li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + border: 1px solid $carousel-indicator-border-color; + border-radius: 10px; + cursor: pointer; + + // IE8-9 hack for event handling + // + // Internet Explorer 8-9 does not support clicks on elements without a set + // `background-color`. We cannot use `filter` since that's not viewed as a + // background color by the browser. Thus, a hack is needed. + // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer + // + // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we + // set alpha transparency for the best results possible. + background-color: #000 \9; // IE8 + background-color: rgba(0,0,0,0); // IE9 + } + .active { + margin: 0; + width: 12px; + height: 12px; + background-color: $carousel-indicator-active-bg; + } +} + +// Optional captions +// ----------------------------- +// Hidden by default for smaller viewports +.carousel-caption { + position: absolute; + left: 15%; + right: 15%; + bottom: 20px; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: $carousel-caption-color; + text-align: center; + text-shadow: $carousel-text-shadow; + & .btn { + text-shadow: none; // No shadow for button elements in carousel-caption + } +} + + +// Scale up controls for tablets and up +@media screen and (min-width: $screen-sm-min) { + + // Scale up the controls a smidge + .carousel-control { + .glyphicon-chevron-left, + .glyphicon-chevron-right, + .icon-prev, + .icon-next { + width: ($carousel-control-font-size * 1.5); + height: ($carousel-control-font-size * 1.5); + margin-top: ($carousel-control-font-size / -2); + font-size: ($carousel-control-font-size * 1.5); + } + .glyphicon-chevron-left, + .icon-prev { + margin-left: ($carousel-control-font-size / -2); + } + .glyphicon-chevron-right, + .icon-next { + margin-right: ($carousel-control-font-size / -2); + } + } + + // Show and left align the captions + .carousel-caption { + left: 20%; + right: 20%; + padding-bottom: 30px; + } + + // Move up the indicators + .carousel-indicators { + bottom: 20px; + } +} diff --git a/scss/bootstrap/_close.scss b/scss/bootstrap/_close.scss new file mode 100644 index 0000000..3b74d8a --- /dev/null +++ b/scss/bootstrap/_close.scss @@ -0,0 +1,36 @@ +// +// Close icons +// -------------------------------------------------- + + +.close { + float: right; + font-size: ($font-size-base * 1.5); + font-weight: $close-font-weight; + line-height: 1; + color: $close-color; + text-shadow: $close-text-shadow; + @include opacity(.2); + + &:hover, + &:focus { + color: $close-color; + text-decoration: none; + cursor: pointer; + @include opacity(.5); + } + + // [converter] extracted button& to button.close +} + +// Additional properties for button version +// iOS requires the button element instead of an anchor tag. +// If you want the anchor version, it requires `href="#"`. +// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} diff --git a/scss/bootstrap/_code.scss b/scss/bootstrap/_code.scss new file mode 100644 index 0000000..caa5f06 --- /dev/null +++ b/scss/bootstrap/_code.scss @@ -0,0 +1,69 @@ +// +// Code (inline and block) +// -------------------------------------------------- + + +// Inline and block code styles +code, +kbd, +pre, +samp { + font-family: $font-family-monospace; +} + +// Inline code +code { + padding: 2px 4px; + font-size: 90%; + color: $code-color; + background-color: $code-bg; + border-radius: $border-radius-base; +} + +// User input typically entered via keyboard +kbd { + padding: 2px 4px; + font-size: 90%; + color: $kbd-color; + background-color: $kbd-bg; + border-radius: $border-radius-small; + box-shadow: inset 0 -1px 0 rgba(0,0,0,.25); + + kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + box-shadow: none; + } +} + +// Blocks of code +pre { + display: block; + padding: (($line-height-computed - 1) / 2); + margin: 0 0 ($line-height-computed / 2); + font-size: ($font-size-base - 1); // 14px to 13px + line-height: $line-height-base; + word-break: break-all; + word-wrap: break-word; + color: $pre-color; + background-color: $pre-bg; + border: 1px solid $pre-border-color; + border-radius: $border-radius-base; + + // Account for some code outputs that place code tags in pre tags + code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; + } +} + +// Enable scrollable blocks of code +.pre-scrollable { + max-height: $pre-scrollable-max-height; + overflow-y: scroll; +} diff --git a/scss/bootstrap/_component-animations.scss b/scss/bootstrap/_component-animations.scss new file mode 100644 index 0000000..ca3b43c --- /dev/null +++ b/scss/bootstrap/_component-animations.scss @@ -0,0 +1,37 @@ +// +// Component animations +// -------------------------------------------------- + +// Heads up! +// +// We don't use the `.opacity()` mixin here since it causes a bug with text +// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552. + +.fade { + opacity: 0; + @include transition(opacity .15s linear); + &.in { + opacity: 1; + } +} + +.collapse { + display: none; + + &.in { display: block; } + // [converter] extracted tr&.in to tr.collapse.in + // [converter] extracted tbody&.in to tbody.collapse.in +} + +tr.collapse.in { display: table-row; } + +tbody.collapse.in { display: table-row-group; } + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + @include transition-property(height, visibility); + @include transition-duration(.35s); + @include transition-timing-function(ease); +} diff --git a/scss/bootstrap/_dropdowns.scss b/scss/bootstrap/_dropdowns.scss new file mode 100644 index 0000000..aac8459 --- /dev/null +++ b/scss/bootstrap/_dropdowns.scss @@ -0,0 +1,216 @@ +// +// Dropdown menus +// -------------------------------------------------- + + +// Dropdown arrow/caret +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: $caret-width-base dashed; + border-top: $caret-width-base solid \9; // IE8 + border-right: $caret-width-base solid transparent; + border-left: $caret-width-base solid transparent; +} + +// The dropdown wrapper (div) +.dropup, +.dropdown { + position: relative; +} + +// Prevent the focus on the dropdown toggle when closing dropdowns +.dropdown-toggle:focus { + outline: 0; +} + +// The dropdown menu (ul) +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: $zindex-dropdown; + display: none; // none by default, but block on "open" of the menu + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; // override default ul + list-style: none; + font-size: $font-size-base; + text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) + background-color: $dropdown-bg; + border: 1px solid $dropdown-fallback-border; // IE8 fallback + border: 1px solid $dropdown-border; + border-radius: $border-radius-base; + @include box-shadow(0 6px 12px rgba(0,0,0,.175)); + background-clip: padding-box; + + // Aligns the dropdown menu to right + // + // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]` + &.pull-right { + right: 0; + left: auto; + } + + // Dividers (basically an hr) within the dropdown + .divider { + @include nav-divider($dropdown-divider-bg); + } + + // Links within the dropdown menu + > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: $line-height-base; + color: $dropdown-link-color; + white-space: nowrap; // prevent links from randomly breaking onto new lines + } +} + +// Hover/Focus state +.dropdown-menu > li > a { + &:hover, + &:focus { + text-decoration: none; + color: $dropdown-link-hover-color; + background-color: $dropdown-link-hover-bg; + } +} + +// Active state +.dropdown-menu > .active > a { + &, + &:hover, + &:focus { + color: $dropdown-link-active-color; + text-decoration: none; + outline: 0; + background-color: $dropdown-link-active-bg; + } +} + +// Disabled state +// +// Gray out text and ensure the hover/focus state remains gray + +.dropdown-menu > .disabled > a { + &, + &:hover, + &:focus { + color: $dropdown-link-disabled-color; + } + + // Nuke hover/focus effects + &:hover, + &:focus { + text-decoration: none; + background-color: transparent; + background-image: none; // Remove CSS gradient + @include reset-filter; + cursor: $cursor-disabled; + } +} + +// Open state for the dropdown +.open { + // Show the menu + > .dropdown-menu { + display: block; + } + + // Remove the outline when :focus is triggered + > a { + outline: 0; + } +} + +// Menu positioning +// +// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown +// menu with the parent. +.dropdown-menu-right { + left: auto; // Reset the default from `.dropdown-menu` + right: 0; +} +// With v3, we enabled auto-flipping if you have a dropdown within a right +// aligned nav component. To enable the undoing of that, we provide an override +// to restore the default dropdown menu alignment. +// +// This is only for left-aligning a dropdown menu within a `.navbar-right` or +// `.pull-right` nav component. +.dropdown-menu-left { + left: 0; + right: auto; +} + +// Dropdown section headers +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: $font-size-small; + line-height: $line-height-base; + color: $dropdown-header-color; + white-space: nowrap; // as with > li > a +} + +// Backdrop to catch body clicks on mobile, etc. +.dropdown-backdrop { + position: fixed; + left: 0; + right: 0; + bottom: 0; + top: 0; + z-index: ($zindex-dropdown - 10); +} + +// Right aligned dropdowns +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +// Allow for dropdowns to go bottom up (aka, dropup-menu) +// +// Just add .dropup after the standard .dropdown class and you're set, bro. +// TODO: abstract this so that the navbar fixed styles are not placed here? + +.dropup, +.navbar-fixed-bottom .dropdown { + // Reverse the caret + .caret { + border-top: 0; + border-bottom: $caret-width-base dashed; + border-bottom: $caret-width-base solid \9; // IE8 + content: ""; + } + // Different positioning for bottom up menu + .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; + } +} + + +// Component alignment +// +// Reiterate per navbar.less and the modified component alignment there. + +@media (min-width: $grid-float-breakpoint) { + .navbar-right { + .dropdown-menu { + right: 0; left: auto; + } + // Necessary for overrides of the default right aligned menu. + // Will remove come v4 in all likelihood. + .dropdown-menu-left { + left: 0; right: auto; + } + } +} diff --git a/scss/bootstrap/_forms.scss b/scss/bootstrap/_forms.scss new file mode 100644 index 0000000..ac26a6a --- /dev/null +++ b/scss/bootstrap/_forms.scss @@ -0,0 +1,617 @@ +// +// Forms +// -------------------------------------------------- + + +// Normalize non-controls +// +// Restyle and baseline non-control form elements. + +fieldset { + padding: 0; + margin: 0; + border: 0; + // Chrome and Firefox set a `min-width: min-content;` on fieldsets, + // so we reset that to ensure it behaves more like a standard block element. + // See https://github.com/twbs/bootstrap/issues/12359. + min-width: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: $line-height-computed; + font-size: ($font-size-base * 1.5); + line-height: inherit; + color: $legend-color; + border: 0; + border-bottom: 1px solid $legend-border-color; +} + +label { + display: inline-block; + max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141) + margin-bottom: 5px; + font-weight: bold; +} + + +// Normalize form controls +// +// While most of our form styles require extra classes, some basic normalization +// is required to ensure optimum display with or without those classes to better +// address browser inconsistencies. + +// Override content-box in Normalize (* isn't specific enough) +input[type="search"] { + @include box-sizing(border-box); +} + +// Position radios and checkboxes better +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; // IE8-9 + line-height: normal; +} + +input[type="file"] { + display: block; +} + +// Make range inputs behave like textual form controls +input[type="range"] { + display: block; + width: 100%; +} + +// Make multiple select elements height not fixed +select[multiple], +select[size] { + height: auto; +} + +// Focus for file, radio, and checkbox +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + @include tab-focus; +} + +// Adjust output element +output { + display: block; + padding-top: ($padding-base-vertical + 1); + font-size: $font-size-base; + line-height: $line-height-base; + color: $input-color; +} + + +// Common form controls +// +// Shared size and type resets for form controls. Apply `.form-control` to any +// of the following form controls: +// +// select +// textarea +// input[type="text"] +// input[type="password"] +// input[type="datetime"] +// input[type="datetime-local"] +// input[type="date"] +// input[type="month"] +// input[type="time"] +// input[type="week"] +// input[type="number"] +// input[type="email"] +// input[type="url"] +// input[type="search"] +// input[type="tel"] +// input[type="color"] + +.form-control { + display: block; + width: 100%; + height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border) + padding: $padding-base-vertical $padding-base-horizontal; + font-size: $font-size-base; + line-height: $line-height-base; + color: $input-color; + background-color: $input-bg; + background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 + border: 1px solid $input-border; + border-radius: $input-border-radius; // Note: This has no effect on s in CSS. + @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); + @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s); + + // Customize the `:focus` state to imitate native WebKit styles. + @include form-control-focus; + + // Placeholder + @include placeholder; + + // Unstyle the caret on `` background color +$input-bg: #fff !default; +//** `` background color +$input-bg-disabled: $gray-lighter !default; + +//** Text color for ``s +$input-color: $gray !default; +//** `` border color +$input-border: #ccc !default; + +// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4 +//** Default `.form-control` border radius +// This has no effect on ``s in CSS. +$input-border-radius: $border-radius-base !default; +//** Large `.form-control` border radius +$input-border-radius-large: $border-radius-large !default; +//** Small `.form-control` border radius +$input-border-radius-small: $border-radius-small !default; + +//** Border color for inputs on focus +$input-border-focus: #66afe9 !default; + +//** Placeholder text color +$input-color-placeholder: #999 !default; + +//** Default `.form-control` height +$input-height-base: ($line-height-computed + ($padding-base-vertical * 2) + 2) !default; +//** Large `.form-control` height +$input-height-large: (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default; +//** Small `.form-control` height +$input-height-small: (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default; + +//** `.form-group` margin +$form-group-margin-bottom: 15px !default; + +$legend-color: $gray-dark !default; +$legend-border-color: #e5e5e5 !default; + +//** Background color for textual input addons +$input-group-addon-bg: $gray-lighter !default; +//** Border color for textual input addons +$input-group-addon-border-color: $input-border !default; + +//** Disabled cursor for form controls and buttons. +$cursor-disabled: not-allowed !default; + + +//== Dropdowns +// +//## Dropdown menu container and contents. + +//** Background for the dropdown menu. +$dropdown-bg: #fff !default; +//** Dropdown menu `border-color`. +$dropdown-border: rgba(0,0,0,.15) !default; +//** Dropdown menu `border-color` **for IE8**. +$dropdown-fallback-border: #ccc !default; +//** Divider color for between dropdown items. +$dropdown-divider-bg: #e5e5e5 !default; + +//** Dropdown link text color. +$dropdown-link-color: $gray-dark !default; +//** Hover color for dropdown links. +$dropdown-link-hover-color: darken($gray-dark, 5%) !default; +//** Hover background for dropdown links. +$dropdown-link-hover-bg: #f5f5f5 !default; + +//** Active dropdown menu item text color. +$dropdown-link-active-color: $component-active-color !default; +//** Active dropdown menu item background color. +$dropdown-link-active-bg: $component-active-bg !default; + +//** Disabled dropdown menu item background color. +$dropdown-link-disabled-color: $gray-light !default; + +//** Text color for headers within dropdown menus. +$dropdown-header-color: $gray-light !default; + +//** Deprecated `$dropdown-caret-color` as of v3.1.0 +$dropdown-caret-color: #000 !default; + + +//-- Z-index master list +// +// Warning: Avoid customizing these values. They're used for a bird's eye view +// of components dependent on the z-axis and are designed to all work together. +// +// Note: These variables are not generated into the Customizer. + +$zindex-navbar: 1000 !default; +$zindex-dropdown: 1000 !default; +$zindex-popover: 1060 !default; +$zindex-tooltip: 1070 !default; +$zindex-navbar-fixed: 1030 !default; +$zindex-modal-background: 1040 !default; +$zindex-modal: 1050 !default; + + +//== Media queries breakpoints +// +//## Define the breakpoints at which your layout will change, adapting to different screen sizes. + +// Extra small screen / phone +//** Deprecated `$screen-xs` as of v3.0.1 +$screen-xs: 480px !default; +//** Deprecated `$screen-xs-min` as of v3.2.0 +$screen-xs-min: $screen-xs !default; +//** Deprecated `$screen-phone` as of v3.0.1 +$screen-phone: $screen-xs-min !default; + +// Small screen / tablet +//** Deprecated `$screen-sm` as of v3.0.1 +$screen-sm: 768px !default; +$screen-sm-min: $screen-sm !default; +//** Deprecated `$screen-tablet` as of v3.0.1 +$screen-tablet: $screen-sm-min !default; + +// Medium screen / desktop +//** Deprecated `$screen-md` as of v3.0.1 +$screen-md: 992px !default; +$screen-md-min: $screen-md !default; +//** Deprecated `$screen-desktop` as of v3.0.1 +$screen-desktop: $screen-md-min !default; + +// Large screen / wide desktop +//** Deprecated `$screen-lg` as of v3.0.1 +$screen-lg: 1200px !default; +$screen-lg-min: $screen-lg !default; +//** Deprecated `$screen-lg-desktop` as of v3.0.1 +$screen-lg-desktop: $screen-lg-min !default; + +// So media queries don't overlap when required, provide a maximum +$screen-xs-max: ($screen-sm-min - 1) !default; +$screen-sm-max: ($screen-md-min - 1) !default; +$screen-md-max: ($screen-lg-min - 1) !default; + + +//== Grid system +// +//## Define your custom responsive grid. + +//** Number of columns in the grid. +$grid-columns: 12 !default; +//** Padding between columns. Gets divided in half for the left and right. +$grid-gutter-width: 30px !default; +// Navbar collapse +//** Point at which the navbar becomes uncollapsed. +$grid-float-breakpoint: $screen-sm-min !default; +//** Point at which the navbar begins collapsing. +$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default; + + +//== Container sizes +// +//## Define the maximum width of `.container` for different screen sizes. + +// Small screen / tablet +$container-tablet: (720px + $grid-gutter-width) !default; +//** For `$screen-sm-min` and up. +$container-sm: $container-tablet !default; + +// Medium screen / desktop +$container-desktop: (940px + $grid-gutter-width) !default; +//** For `$screen-md-min` and up. +$container-md: $container-desktop !default; + +// Large screen / wide desktop +$container-large-desktop: (1140px + $grid-gutter-width) !default; +//** For `$screen-lg-min` and up. +$container-lg: $container-large-desktop !default; + + +//== Navbar +// +//## + +// Basics of a navbar +$navbar-height: 50px !default; +$navbar-margin-bottom: $line-height-computed !default; +$navbar-border-radius: $border-radius-base !default; +$navbar-padding-horizontal: floor(($grid-gutter-width / 2)) !default; +$navbar-padding-vertical: (($navbar-height - $line-height-computed) / 2) !default; +$navbar-collapse-max-height: 340px !default; + +$navbar-default-color: #777 !default; +$navbar-default-bg: #f8f8f8 !default; +$navbar-default-border: darken($navbar-default-bg, 6.5%) !default; + +// Navbar links +$navbar-default-link-color: #777 !default; +$navbar-default-link-hover-color: #333 !default; +$navbar-default-link-hover-bg: transparent !default; +$navbar-default-link-active-color: #555 !default; +$navbar-default-link-active-bg: darken($navbar-default-bg, 6.5%) !default; +$navbar-default-link-disabled-color: #ccc !default; +$navbar-default-link-disabled-bg: transparent !default; + +// Navbar brand label +$navbar-default-brand-color: $navbar-default-link-color !default; +$navbar-default-brand-hover-color: darken($navbar-default-brand-color, 10%) !default; +$navbar-default-brand-hover-bg: transparent !default; + +// Navbar toggle +$navbar-default-toggle-hover-bg: #ddd !default; +$navbar-default-toggle-icon-bar-bg: #888 !default; +$navbar-default-toggle-border-color: #ddd !default; + + +//=== Inverted navbar +// Reset inverted navbar basics +$navbar-inverse-color: lighten($gray-light, 15%) !default; +$navbar-inverse-bg: #222 !default; +$navbar-inverse-border: darken($navbar-inverse-bg, 10%) !default; + +// Inverted navbar links +$navbar-inverse-link-color: lighten($gray-light, 15%) !default; +$navbar-inverse-link-hover-color: #fff !default; +$navbar-inverse-link-hover-bg: transparent !default; +$navbar-inverse-link-active-color: $navbar-inverse-link-hover-color !default; +$navbar-inverse-link-active-bg: darken($navbar-inverse-bg, 10%) !default; +$navbar-inverse-link-disabled-color: #444 !default; +$navbar-inverse-link-disabled-bg: transparent !default; + +// Inverted navbar brand label +$navbar-inverse-brand-color: $navbar-inverse-link-color !default; +$navbar-inverse-brand-hover-color: #fff !default; +$navbar-inverse-brand-hover-bg: transparent !default; + +// Inverted navbar toggle +$navbar-inverse-toggle-hover-bg: #333 !default; +$navbar-inverse-toggle-icon-bar-bg: #fff !default; +$navbar-inverse-toggle-border-color: #333 !default; + + +//== Navs +// +//## + +//=== Shared nav styles +$nav-link-padding: 10px 15px !default; +$nav-link-hover-bg: $gray-lighter !default; + +$nav-disabled-link-color: $gray-light !default; +$nav-disabled-link-hover-color: $gray-light !default; + +//== Tabs +$nav-tabs-border-color: #ddd !default; + +$nav-tabs-link-hover-border-color: $gray-lighter !default; + +$nav-tabs-active-link-hover-bg: $body-bg !default; +$nav-tabs-active-link-hover-color: $gray !default; +$nav-tabs-active-link-hover-border-color: #ddd !default; + +$nav-tabs-justified-link-border-color: #ddd !default; +$nav-tabs-justified-active-link-border-color: $body-bg !default; + +//== Pills +$nav-pills-border-radius: $border-radius-base !default; +$nav-pills-active-link-hover-bg: $component-active-bg !default; +$nav-pills-active-link-hover-color: $component-active-color !default; + + +//== Pagination +// +//## + +$pagination-color: $link-color !default; +$pagination-bg: #fff !default; +$pagination-border: #ddd !default; + +$pagination-hover-color: $link-hover-color !default; +$pagination-hover-bg: $gray-lighter !default; +$pagination-hover-border: #ddd !default; + +$pagination-active-color: #fff !default; +$pagination-active-bg: $brand-primary !default; +$pagination-active-border: $brand-primary !default; + +$pagination-disabled-color: $gray-light !default; +$pagination-disabled-bg: #fff !default; +$pagination-disabled-border: #ddd !default; + + +//== Pager +// +//## + +$pager-bg: $pagination-bg !default; +$pager-border: $pagination-border !default; +$pager-border-radius: 15px !default; + +$pager-hover-bg: $pagination-hover-bg !default; + +$pager-active-bg: $pagination-active-bg !default; +$pager-active-color: $pagination-active-color !default; + +$pager-disabled-color: $pagination-disabled-color !default; + + +//== Jumbotron +// +//## + +$jumbotron-padding: 30px !default; +$jumbotron-color: inherit !default; +$jumbotron-bg: $gray-lighter !default; +$jumbotron-heading-color: inherit !default; +$jumbotron-font-size: ceil(($font-size-base * 1.5)) !default; +$jumbotron-heading-font-size: ceil(($font-size-base * 4.5)) !default; + + +//== Form states and alerts +// +//## Define colors for form feedback states and, by default, alerts. + +$state-success-text: #3c763d !default; +$state-success-bg: #dff0d8 !default; +$state-success-border: darken(adjust-hue($state-success-bg, -10), 5%) !default; + +$state-info-text: #31708f !default; +$state-info-bg: #d9edf7 !default; +$state-info-border: darken(adjust-hue($state-info-bg, -10), 7%) !default; + +$state-warning-text: #8a6d3b !default; +$state-warning-bg: #fcf8e3 !default; +$state-warning-border: darken(adjust-hue($state-warning-bg, -10), 5%) !default; + +$state-danger-text: #a94442 !default; +$state-danger-bg: #f2dede !default; +$state-danger-border: darken(adjust-hue($state-danger-bg, -10), 5%) !default; + + +//== Tooltips +// +//## + +//** Tooltip max width +$tooltip-max-width: 200px !default; +//** Tooltip text color +$tooltip-color: #fff !default; +//** Tooltip background color +$tooltip-bg: #000 !default; +$tooltip-opacity: .9 !default; + +//** Tooltip arrow width +$tooltip-arrow-width: 5px !default; +//** Tooltip arrow color +$tooltip-arrow-color: $tooltip-bg !default; + + +//== Popovers +// +//## + +//** Popover body background color +$popover-bg: #fff !default; +//** Popover maximum width +$popover-max-width: 276px !default; +//** Popover border color +$popover-border-color: rgba(0,0,0,.2) !default; +//** Popover fallback border color +$popover-fallback-border-color: #ccc !default; + +//** Popover title background color +$popover-title-bg: darken($popover-bg, 3%) !default; + +//** Popover arrow width +$popover-arrow-width: 10px !default; +//** Popover arrow color +$popover-arrow-color: $popover-bg !default; + +//** Popover outer arrow width +$popover-arrow-outer-width: ($popover-arrow-width + 1) !default; +//** Popover outer arrow color +$popover-arrow-outer-color: fade_in($popover-border-color, 0.05) !default; +//** Popover outer arrow fallback color +$popover-arrow-outer-fallback-color: darken($popover-fallback-border-color, 20%) !default; + + +//== Labels +// +//## + +//** Default label background color +$label-default-bg: $gray-light !default; +//** Primary label background color +$label-primary-bg: $brand-primary !default; +//** Success label background color +$label-success-bg: $brand-success !default; +//** Info label background color +$label-info-bg: $brand-info !default; +//** Warning label background color +$label-warning-bg: $brand-warning !default; +//** Danger label background color +$label-danger-bg: $brand-danger !default; + +//** Default label text color +$label-color: #fff !default; +//** Default text color of a linked label +$label-link-hover-color: #fff !default; + + +//== Modals +// +//## + +//** Padding applied to the modal body +$modal-inner-padding: 15px !default; + +//** Padding applied to the modal title +$modal-title-padding: 15px !default; +//** Modal title line-height +$modal-title-line-height: $line-height-base !default; + +//** Background color of modal content area +$modal-content-bg: #fff !default; +//** Modal content border color +$modal-content-border-color: rgba(0,0,0,.2) !default; +//** Modal content border color **for IE8** +$modal-content-fallback-border-color: #999 !default; + +//** Modal backdrop background color +$modal-backdrop-bg: #000 !default; +//** Modal backdrop opacity +$modal-backdrop-opacity: .5 !default; +//** Modal header border color +$modal-header-border-color: #e5e5e5 !default; +//** Modal footer border color +$modal-footer-border-color: $modal-header-border-color !default; + +$modal-lg: 900px !default; +$modal-md: 600px !default; +$modal-sm: 300px !default; + + +//== Alerts +// +//## Define alert colors, border radius, and padding. + +$alert-padding: 15px !default; +$alert-border-radius: $border-radius-base !default; +$alert-link-font-weight: bold !default; + +$alert-success-bg: $state-success-bg !default; +$alert-success-text: $state-success-text !default; +$alert-success-border: $state-success-border !default; + +$alert-info-bg: $state-info-bg !default; +$alert-info-text: $state-info-text !default; +$alert-info-border: $state-info-border !default; + +$alert-warning-bg: $state-warning-bg !default; +$alert-warning-text: $state-warning-text !default; +$alert-warning-border: $state-warning-border !default; + +$alert-danger-bg: $state-danger-bg !default; +$alert-danger-text: $state-danger-text !default; +$alert-danger-border: $state-danger-border !default; + + +//== Progress bars +// +//## + +//** Background color of the whole progress component +$progress-bg: #f5f5f5 !default; +//** Progress bar text color +$progress-bar-color: #fff !default; +//** Variable for setting rounded corners on progress bar. +$progress-border-radius: $border-radius-base !default; + +//** Default progress bar color +$progress-bar-bg: $brand-primary !default; +//** Success progress bar color +$progress-bar-success-bg: $brand-success !default; +//** Warning progress bar color +$progress-bar-warning-bg: $brand-warning !default; +//** Danger progress bar color +$progress-bar-danger-bg: $brand-danger !default; +//** Info progress bar color +$progress-bar-info-bg: $brand-info !default; + + +//== List group +// +//## + +//** Background color on `.list-group-item` +$list-group-bg: #fff !default; +//** `.list-group-item` border color +$list-group-border: #ddd !default; +//** List group border radius +$list-group-border-radius: $border-radius-base !default; + +//** Background color of single list items on hover +$list-group-hover-bg: #f5f5f5 !default; +//** Text color of active list items +$list-group-active-color: $component-active-color !default; +//** Background color of active list items +$list-group-active-bg: $component-active-bg !default; +//** Border color of active list elements +$list-group-active-border: $list-group-active-bg !default; +//** Text color for content within active list items +$list-group-active-text-color: lighten($list-group-active-bg, 40%) !default; + +//** Text color of disabled list items +$list-group-disabled-color: $gray-light !default; +//** Background color of disabled list items +$list-group-disabled-bg: $gray-lighter !default; +//** Text color for content within disabled list items +$list-group-disabled-text-color: $list-group-disabled-color !default; + +$list-group-link-color: #555 !default; +$list-group-link-hover-color: $list-group-link-color !default; +$list-group-link-heading-color: #333 !default; + + +//== Panels +// +//## + +$panel-bg: #fff !default; +$panel-body-padding: 15px !default; +$panel-heading-padding: 10px 15px !default; +$panel-footer-padding: $panel-heading-padding !default; +$panel-border-radius: $border-radius-base !default; + +//** Border color for elements within panels +$panel-inner-border: #ddd !default; +$panel-footer-bg: #f5f5f5 !default; + +$panel-default-text: $gray-dark !default; +$panel-default-border: #ddd !default; +$panel-default-heading-bg: #f5f5f5 !default; + +$panel-primary-text: #fff !default; +$panel-primary-border: $brand-primary !default; +$panel-primary-heading-bg: $brand-primary !default; + +$panel-success-text: $state-success-text !default; +$panel-success-border: $state-success-border !default; +$panel-success-heading-bg: $state-success-bg !default; + +$panel-info-text: $state-info-text !default; +$panel-info-border: $state-info-border !default; +$panel-info-heading-bg: $state-info-bg !default; + +$panel-warning-text: $state-warning-text !default; +$panel-warning-border: $state-warning-border !default; +$panel-warning-heading-bg: $state-warning-bg !default; + +$panel-danger-text: $state-danger-text !default; +$panel-danger-border: $state-danger-border !default; +$panel-danger-heading-bg: $state-danger-bg !default; + + +//== Thumbnails +// +//## + +//** Padding around the thumbnail image +$thumbnail-padding: 4px !default; +//** Thumbnail background color +$thumbnail-bg: $body-bg !default; +//** Thumbnail border color +$thumbnail-border: #ddd !default; +//** Thumbnail border radius +$thumbnail-border-radius: $border-radius-base !default; + +//** Custom text color for thumbnail captions +$thumbnail-caption-color: $text-color !default; +//** Padding around the thumbnail caption +$thumbnail-caption-padding: 9px !default; + + +//== Wells +// +//## + +$well-bg: #f5f5f5 !default; +$well-border: darken($well-bg, 7%) !default; + + +//== Badges +// +//## + +$badge-color: #fff !default; +//** Linked badge text color on hover +$badge-link-hover-color: #fff !default; +$badge-bg: $gray-light !default; + +//** Badge text color in active nav link +$badge-active-color: $link-color !default; +//** Badge background color in active nav link +$badge-active-bg: #fff !default; + +$badge-font-weight: bold !default; +$badge-line-height: 1 !default; +$badge-border-radius: 10px !default; + + +//== Breadcrumbs +// +//## + +$breadcrumb-padding-vertical: 8px !default; +$breadcrumb-padding-horizontal: 15px !default; +//** Breadcrumb background color +$breadcrumb-bg: #f5f5f5 !default; +//** Breadcrumb text color +$breadcrumb-color: #ccc !default; +//** Text color of current page in the breadcrumb +$breadcrumb-active-color: $gray-light !default; +//** Textual separator for between breadcrumb elements +$breadcrumb-separator: "/" !default; + + +//== Carousel +// +//## + +$carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6) !default; + +$carousel-control-color: #fff !default; +$carousel-control-width: 15% !default; +$carousel-control-opacity: .5 !default; +$carousel-control-font-size: 20px !default; + +$carousel-indicator-active-bg: #fff !default; +$carousel-indicator-border-color: #fff !default; + +$carousel-caption-color: #fff !default; + + +//== Close +// +//## + +$close-font-weight: bold !default; +$close-color: #000 !default; +$close-text-shadow: 0 1px 0 #fff !default; + + +//== Code +// +//## + +$code-color: #c7254e !default; +$code-bg: #f9f2f4 !default; + +$kbd-color: #fff !default; +$kbd-bg: #333 !default; + +$pre-bg: #f5f5f5 !default; +$pre-color: $gray-dark !default; +$pre-border-color: #ccc !default; +$pre-scrollable-max-height: 340px !default; + + +//== Type +// +//## + +//** Horizontal offset for forms and lists. +$component-offset-horizontal: 180px !default; +//** Text muted color +$text-muted: $gray-light !default; +//** Abbreviations and acronyms border color +$abbr-border-color: $gray-light !default; +//** Headings small color +$headings-small-color: $gray-light !default; +//** Blockquote small color +$blockquote-small-color: $gray-light !default; +//** Blockquote font size +$blockquote-font-size: ($font-size-base * 1.25) !default; +//** Blockquote border color +$blockquote-border-color: $gray-lighter !default; +//** Page header border color +$page-header-border-color: $gray-lighter !default; +//** Width of horizontal description list titles +$dl-horizontal-offset: $component-offset-horizontal !default; +//** Point at which .dl-horizontal becomes horizontal +$dl-horizontal-breakpoint: $grid-float-breakpoint !default; +//** Horizontal line color. +$hr-border: $gray-lighter !default; diff --git a/scss/bootstrap/_wells.scss b/scss/bootstrap/_wells.scss new file mode 100644 index 0000000..b865711 --- /dev/null +++ b/scss/bootstrap/_wells.scss @@ -0,0 +1,29 @@ +// +// Wells +// -------------------------------------------------- + + +// Base class +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: $well-bg; + border: 1px solid $well-border; + border-radius: $border-radius-base; + @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); + blockquote { + border-color: #ddd; + border-color: rgba(0,0,0,.15); + } +} + +// Sizes +.well-lg { + padding: 24px; + border-radius: $border-radius-large; +} +.well-sm { + padding: 9px; + border-radius: $border-radius-small; +} diff --git a/scss/bootstrap/mixins/_alerts.scss b/scss/bootstrap/mixins/_alerts.scss new file mode 100644 index 0000000..3faf0b5 --- /dev/null +++ b/scss/bootstrap/mixins/_alerts.scss @@ -0,0 +1,14 @@ +// Alerts + +@mixin alert-variant($background, $border, $text-color) { + background-color: $background; + border-color: $border; + color: $text-color; + + hr { + border-top-color: darken($border, 5%); + } + .alert-link { + color: darken($text-color, 10%); + } +} diff --git a/scss/bootstrap/mixins/_background-variant.scss b/scss/bootstrap/mixins/_background-variant.scss new file mode 100644 index 0000000..4c7769e --- /dev/null +++ b/scss/bootstrap/mixins/_background-variant.scss @@ -0,0 +1,12 @@ +// Contextual backgrounds + +// [converter] $parent hack +@mixin bg-variant($parent, $color) { + #{$parent} { + background-color: $color; + } + a#{$parent}:hover, + a#{$parent}:focus { + background-color: darken($color, 10%); + } +} diff --git a/scss/bootstrap/mixins/_border-radius.scss b/scss/bootstrap/mixins/_border-radius.scss new file mode 100644 index 0000000..ce19499 --- /dev/null +++ b/scss/bootstrap/mixins/_border-radius.scss @@ -0,0 +1,18 @@ +// Single side border-radius + +@mixin border-top-radius($radius) { + border-top-right-radius: $radius; + border-top-left-radius: $radius; +} +@mixin border-right-radius($radius) { + border-bottom-right-radius: $radius; + border-top-right-radius: $radius; +} +@mixin border-bottom-radius($radius) { + border-bottom-right-radius: $radius; + border-bottom-left-radius: $radius; +} +@mixin border-left-radius($radius) { + border-bottom-left-radius: $radius; + border-top-left-radius: $radius; +} diff --git a/scss/bootstrap/mixins/_buttons.scss b/scss/bootstrap/mixins/_buttons.scss new file mode 100644 index 0000000..b93f84b --- /dev/null +++ b/scss/bootstrap/mixins/_buttons.scss @@ -0,0 +1,65 @@ +// Button variants +// +// Easily pump out default styles, as well as :hover, :focus, :active, +// and disabled options for all buttons + +@mixin button-variant($color, $background, $border) { + color: $color; + background-color: $background; + border-color: $border; + + &:focus, + &.focus { + color: $color; + background-color: darken($background, 10%); + border-color: darken($border, 25%); + } + &:hover { + color: $color; + background-color: darken($background, 10%); + border-color: darken($border, 12%); + } + &:active, + &.active, + .open > &.dropdown-toggle { + color: $color; + background-color: darken($background, 10%); + border-color: darken($border, 12%); + + &:hover, + &:focus, + &.focus { + color: $color; + background-color: darken($background, 17%); + border-color: darken($border, 25%); + } + } + &:active, + &.active, + .open > &.dropdown-toggle { + background-image: none; + } + &.disabled, + &[disabled], + fieldset[disabled] & { + &:hover, + &:focus, + &.focus { + background-color: $background; + border-color: $border; + } + } + + .badge { + color: $background; + background-color: $color; + } +} + +// Button sizes +@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) { + padding: $padding-vertical $padding-horizontal; + font-size: $font-size; + line-height: $line-height; + border-radius: $border-radius; +} diff --git a/scss/bootstrap/mixins/_center-block.scss b/scss/bootstrap/mixins/_center-block.scss new file mode 100644 index 0000000..e06fb5e --- /dev/null +++ b/scss/bootstrap/mixins/_center-block.scss @@ -0,0 +1,7 @@ +// Center-align a block level element + +@mixin center-block() { + display: block; + margin-left: auto; + margin-right: auto; +} diff --git a/scss/bootstrap/mixins/_clearfix.scss b/scss/bootstrap/mixins/_clearfix.scss new file mode 100644 index 0000000..dc3e2ab --- /dev/null +++ b/scss/bootstrap/mixins/_clearfix.scss @@ -0,0 +1,22 @@ +// Clearfix +// +// For modern browsers +// 1. The space content is one way to avoid an Opera bug when the +// contenteditable attribute is included anywhere else in the document. +// Otherwise it causes space to appear at the top and bottom of elements +// that are clearfixed. +// 2. The use of `table` rather than `block` is only necessary if using +// `:before` to contain the top-margins of child elements. +// +// Source: http://nicolasgallagher.com/micro-clearfix-hack/ + +@mixin clearfix() { + &:before, + &:after { + content: " "; // 1 + display: table; // 2 + } + &:after { + clear: both; + } +} diff --git a/scss/bootstrap/mixins/_forms.scss b/scss/bootstrap/mixins/_forms.scss new file mode 100644 index 0000000..277aa5f --- /dev/null +++ b/scss/bootstrap/mixins/_forms.scss @@ -0,0 +1,88 @@ +// Form validation states +// +// Used in forms.less to generate the form validation CSS for warnings, errors, +// and successes. + +@mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) { + // Color the label and help text + .help-block, + .control-label, + .radio, + .checkbox, + .radio-inline, + .checkbox-inline, + &.radio label, + &.checkbox label, + &.radio-inline label, + &.checkbox-inline label { + color: $text-color; + } + // Set the border and box shadow on specific inputs to match + .form-control { + border-color: $border-color; + @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work + &:focus { + border-color: darken($border-color, 10%); + $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%); + @include box-shadow($shadow); + } + } + // Set validation states also for addons + .input-group-addon { + color: $text-color; + border-color: $border-color; + background-color: $background-color; + } + // Optional feedback icon + .form-control-feedback { + color: $text-color; + } +} + + +// Form control focus state +// +// Generate a customized focus state and for any input with the specified color, +// which defaults to the `$input-border-focus` variable. +// +// We highly encourage you to not customize the default value, but instead use +// this to tweak colors on an as-needed basis. This aesthetic change is based on +// WebKit's default styles, but applicable to a wider range of browsers. Its +// usability and accessibility should be taken into account with any change. +// +// Example usage: change the default blue border and shadow to white for better +// contrast against a dark gray background. +@mixin form-control-focus($color: $input-border-focus) { + $color-rgba: rgba(red($color), green($color), blue($color), .6); + &:focus { + border-color: $color; + outline: 0; + @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba); + } +} + +// Form control sizing +// +// Relative text size, padding, and border-radii changes for form controls. For +// horizontal sizing, wrap controls in the predefined grid classes. `s in some browsers, due to the limited stylability of `s in IE10+. + &::-ms-expand { + border: 0; + background-color: transparent; + } + + // Disabled and read-only inputs + // + // HTML5 says that controls under a fieldset > legend:first-child won't be + // disabled if the fieldset is disabled. Due to implementation difficulty, we + // don't honor that edge case; we style them as disabled anyway. + &[disabled], + &[readonly], + fieldset[disabled] & { + background-color: $input-bg-disabled; + opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655 + } + + &[disabled], + fieldset[disabled] & { + cursor: $cursor-disabled; + } + + // [converter] extracted textarea& to textarea.form-control +} + +// Reset height for `textarea`s +textarea.form-control { + height: auto; +} + + +// Search inputs in iOS +// +// This overrides the extra rounded corners on search inputs in iOS so that our +// `.form-control` class can properly style them. Note that this cannot simply +// be added to `.form-control` as it's not specific enough. For details, see +// https://github.com/twbs/bootstrap/issues/11586. + +input[type="search"] { + -webkit-appearance: none; +} + + +// Special styles for iOS temporal inputs +// +// In Mobile Safari, setting `display: block` on temporal inputs causes the +// text within the input to become vertically misaligned. As a workaround, we +// set a pixel line-height that matches the given height of the input, but only +// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848 +// +// Note that as of 9.3, iOS doesn't support `week`. + +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"], + input[type="time"], + input[type="datetime-local"], + input[type="month"] { + &.form-control { + line-height: $input-height-base; + } + + &.input-sm, + .input-group-sm & { + line-height: $input-height-small; + } + + &.input-lg, + .input-group-lg & { + line-height: $input-height-large; + } + } +} + + +// Form groups +// +// Designed to help with the organization and spacing of vertical forms. For +// horizontal forms, use the predefined grid classes. + +.form-group { + margin-bottom: $form-group-margin-bottom; +} + + +// Checkboxes and radios +// +// Indent the labels to position radios/checkboxes as hanging controls. + +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; + + label { + min-height: $line-height-computed; // Ensure the input doesn't jump when there is no text + 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; // Move up sibling radios or checkboxes for tighter spacing +} + +// Radios and checkboxes on same line +.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; // space out consecutive inline controls +} + +// Apply same disabled cursor tweak as for inputs +// Some special care is needed because Star + +@at-root { + // Import the fonts + @font-face { + font-family: 'Glyphicons Halflings'; + src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot'), '#{$icon-font-path}#{$icon-font-name}.eot')); + src: url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.eot?#iefix'), '#{$icon-font-path}#{$icon-font-name}.eot?#iefix')) format('embedded-opentype'), + url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff2'), '#{$icon-font-path}#{$icon-font-name}.woff2')) format('woff2'), + url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.woff'), '#{$icon-font-path}#{$icon-font-name}.woff')) format('woff'), + url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.ttf'), '#{$icon-font-path}#{$icon-font-name}.ttf')) format('truetype'), + url(if($bootstrap-sass-asset-helper, twbs-font-path('#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}'), '#{$icon-font-path}#{$icon-font-name}.svg##{$icon-font-svg-id}')) format('svg'); + } +} + +// Catchall baseclass +.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; +} + +// Individual icons +.glyphicon-asterisk { &:before { content: "\002a"; } } +.glyphicon-plus { &:before { content: "\002b"; } } +.glyphicon-euro, +.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"; } } +// The following 2 Glyphicons are omitted for the time being because +// they currently use Unicode codepoints that are outside the +// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle +// non-BMP codepoints in CSS string escapes, and thus can't display these two icons. +// Notably, the bug affects some older versions of the Android Browser. +// More info: https://github.com/twbs/bootstrap/issues/10106 +// .glyphicon-door { &:before { content: "\1f6aa"; } } +// .glyphicon-key { &:before { content: "\1f511"; } } +.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"; } } diff --git a/phone-book/scss/bootstrap/_grid.scss b/phone-book/scss/bootstrap/_grid.scss new file mode 100644 index 0000000..b15ca27 --- /dev/null +++ b/phone-book/scss/bootstrap/_grid.scss @@ -0,0 +1,84 @@ +// +// Grid system +// -------------------------------------------------- + + +// Container widths +// +// Set the container width, and override it for fixed navbars in media queries. + +.container { + @include container-fixed; + + @media (min-width: $screen-sm-min) { + width: $container-sm; + } + @media (min-width: $screen-md-min) { + width: $container-md; + } + @media (min-width: $screen-lg-min) { + width: $container-lg; + } +} + + +// Fluid container +// +// Utilizes the mixin meant for fixed width containers, but without any defined +// width for fluid, full width layouts. + +.container-fluid { + @include container-fixed; +} + + +// Row +// +// Rows contain and clear the floats of your columns. + +.row { + @include make-row; +} + + +// Columns +// +// Common styles for small and large grid columns + +@include make-grid-columns; + + +// Extra small grid +// +// Columns, offsets, pushes, and pulls for extra small devices like +// smartphones. + +@include make-grid(xs); + + +// Small grid +// +// Columns, offsets, pushes, and pulls for the small device range, from phones +// to tablets. + +@media (min-width: $screen-sm-min) { + @include make-grid(sm); +} + + +// Medium grid +// +// Columns, offsets, pushes, and pulls for the desktop device range. + +@media (min-width: $screen-md-min) { + @include make-grid(md); +} + + +// Large grid +// +// Columns, offsets, pushes, and pulls for the large desktop device range. + +@media (min-width: $screen-lg-min) { + @include make-grid(lg); +} diff --git a/phone-book/scss/bootstrap/_input-groups.scss b/phone-book/scss/bootstrap/_input-groups.scss new file mode 100644 index 0000000..81f46f3 --- /dev/null +++ b/phone-book/scss/bootstrap/_input-groups.scss @@ -0,0 +1,171 @@ +// +// Input groups +// -------------------------------------------------- + +// Base styles +// ------------------------- +.input-group { + position: relative; // For dropdowns + display: table; + border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table + + // Undo padding and float of grid classes + &[class*="col-"] { + float: none; + padding-left: 0; + padding-right: 0; + } + + .form-control { + // Ensure that the input is always above the *appended* addon button for + // proper border colors. + position: relative; + z-index: 2; + + // IE9 fubars the placeholder attribute in text inputs and the arrows on + // select elements in input groups. To fix it, we float the input. Details: + // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855 + float: left; + + width: 100%; + margin-bottom: 0; + + &:focus { + z-index: 3; + } + } +} + +// Sizing options +// +// Remix the default form control sizing classes into new ones for easier +// manipulation. + +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + @extend .input-lg; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + @extend .input-sm; +} + + +// Display as table-cell +// ------------------------- +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; + + &:not(:first-child):not(:last-child) { + border-radius: 0; + } +} +// Addon and addon wrapper for buttons +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; // Match the inputs +} + +// Text input groups +// ------------------------- +.input-group-addon { + padding: $padding-base-vertical $padding-base-horizontal; + font-size: $font-size-base; + font-weight: normal; + line-height: 1; + color: $input-color; + text-align: center; + background-color: $input-group-addon-bg; + border: 1px solid $input-group-addon-border-color; + border-radius: $input-border-radius; + + // Sizing + &.input-sm { + padding: $padding-small-vertical $padding-small-horizontal; + font-size: $font-size-small; + border-radius: $input-border-radius-small; + } + &.input-lg { + padding: $padding-large-vertical $padding-large-horizontal; + font-size: $font-size-large; + border-radius: $input-border-radius-large; + } + + // Nuke default margins from checkboxes and radios to vertically center within. + input[type="radio"], + input[type="checkbox"] { + margin-top: 0; + } +} + +// Reset rounded corners +.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 { + @include border-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 { + @include border-left-radius(0); +} +.input-group-addon:last-child { + border-left: 0; +} + +// Button input groups +// ------------------------- +.input-group-btn { + position: relative; + // Jankily prevent input button groups from wrapping with `white-space` and + // `font-size` in combination with `inline-block` on buttons. + font-size: 0; + white-space: nowrap; + + // Negative margin for spacing, position for bringing hovered/focused/actived + // element above the siblings. + > .btn { + position: relative; + + .btn { + margin-left: -1px; + } + // Bring the "active" button to the front + &:hover, + &:focus, + &:active { + z-index: 2; + } + } + + // Negative margin to only have a 1px border between the two + &:first-child { + > .btn, + > .btn-group { + margin-right: -1px; + } + } + &:last-child { + > .btn, + > .btn-group { + z-index: 2; + margin-left: -1px; + } + } +} diff --git a/phone-book/scss/bootstrap/_jumbotron.scss b/phone-book/scss/bootstrap/_jumbotron.scss new file mode 100644 index 0000000..a27da47 --- /dev/null +++ b/phone-book/scss/bootstrap/_jumbotron.scss @@ -0,0 +1,54 @@ +// +// Jumbotron +// -------------------------------------------------- + + +.jumbotron { + padding-top: $jumbotron-padding; + padding-bottom: $jumbotron-padding; + margin-bottom: $jumbotron-padding; + color: $jumbotron-color; + background-color: $jumbotron-bg; + + h1, + .h1 { + color: $jumbotron-heading-color; + } + + p { + margin-bottom: ($jumbotron-padding / 2); + font-size: $jumbotron-font-size; + font-weight: 200; + } + + > hr { + border-top-color: darken($jumbotron-bg, 10%); + } + + .container &, + .container-fluid & { + border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container + padding-left: ($grid-gutter-width / 2); + padding-right: ($grid-gutter-width / 2); + } + + .container { + max-width: 100%; + } + + @media screen and (min-width: $screen-sm-min) { + padding-top: ($jumbotron-padding * 1.6); + padding-bottom: ($jumbotron-padding * 1.6); + + .container &, + .container-fluid & { + padding-left: ($jumbotron-padding * 2); + padding-right: ($jumbotron-padding * 2); + } + + h1, + .h1 { + font-size: $jumbotron-heading-font-size; + } + } +} diff --git a/phone-book/scss/bootstrap/_labels.scss b/phone-book/scss/bootstrap/_labels.scss new file mode 100644 index 0000000..42ed6ea --- /dev/null +++ b/phone-book/scss/bootstrap/_labels.scss @@ -0,0 +1,66 @@ +// +// Labels +// -------------------------------------------------- + +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: $label-color; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; + + // [converter] extracted a& to a.label + + // Empty labels collapse automatically (not available in IE8) + &:empty { + display: none; + } + + // Quick fix for labels in buttons + .btn & { + position: relative; + top: -1px; + } +} + +// Add hover effects, but only for links +a.label { + &:hover, + &:focus { + color: $label-link-hover-color; + text-decoration: none; + cursor: pointer; + } +} + +// Colors +// Contextual variations (linked labels get darker on :hover) + +.label-default { + @include label-variant($label-default-bg); +} + +.label-primary { + @include label-variant($label-primary-bg); +} + +.label-success { + @include label-variant($label-success-bg); +} + +.label-info { + @include label-variant($label-info-bg); +} + +.label-warning { + @include label-variant($label-warning-bg); +} + +.label-danger { + @include label-variant($label-danger-bg); +} diff --git a/phone-book/scss/bootstrap/_list-group.scss b/phone-book/scss/bootstrap/_list-group.scss new file mode 100644 index 0000000..7cb83aa --- /dev/null +++ b/phone-book/scss/bootstrap/_list-group.scss @@ -0,0 +1,130 @@ +// +// List groups +// -------------------------------------------------- + + +// Base class +// +// Easily usable on
    ,
      , or
      . + +.list-group { + // No need to set list-style: none; since .list-group-item is block level + margin-bottom: 20px; + padding-left: 0; // reset padding because ul and ol +} + + +// Individual list items +// +// Use on `li`s or `div`s within the `.list-group` parent. + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + // Place the border on the list items and negative margin up for better styling + margin-bottom: -1px; + background-color: $list-group-bg; + border: 1px solid $list-group-border; + + // Round the first and last items + &:first-child { + @include border-top-radius($list-group-border-radius); + } + &:last-child { + margin-bottom: 0; + @include border-bottom-radius($list-group-border-radius); + } +} + + +// Interactive list items +// +// Use anchor or button elements instead of `li`s or `div`s to create interactive items. +// Includes an extra `.active` modifier class for showing selected items. + +a.list-group-item, +button.list-group-item { + color: $list-group-link-color; + + .list-group-item-heading { + color: $list-group-link-heading-color; + } + + // Hover state + &:hover, + &:focus { + text-decoration: none; + color: $list-group-link-hover-color; + background-color: $list-group-hover-bg; + } +} + +button.list-group-item { + width: 100%; + text-align: left; +} + +.list-group-item { + // Disabled state + &.disabled, + &.disabled:hover, + &.disabled:focus { + background-color: $list-group-disabled-bg; + color: $list-group-disabled-color; + cursor: $cursor-disabled; + + // Force color to inherit for custom content + .list-group-item-heading { + color: inherit; + } + .list-group-item-text { + color: $list-group-disabled-text-color; + } + } + + // Active class on item itself, not parent + &.active, + &.active:hover, + &.active:focus { + z-index: 2; // Place active items above their siblings for proper border styling + color: $list-group-active-color; + background-color: $list-group-active-bg; + border-color: $list-group-active-border; + + // Force color to inherit for custom content + .list-group-item-heading, + .list-group-item-heading > small, + .list-group-item-heading > .small { + color: inherit; + } + .list-group-item-text { + color: $list-group-active-text-color; + } + } +} + + +// Contextual variants +// +// Add modifier classes to change text and background color on individual items. +// Organizationally, this must come after the `:hover` states. + +@include list-group-item-variant(success, $state-success-bg, $state-success-text); +@include list-group-item-variant(info, $state-info-bg, $state-info-text); +@include list-group-item-variant(warning, $state-warning-bg, $state-warning-text); +@include list-group-item-variant(danger, $state-danger-bg, $state-danger-text); + + +// Custom content options +// +// Extra classes for creating well-formatted content within `.list-group-item`s. + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} diff --git a/phone-book/scss/bootstrap/_media.scss b/phone-book/scss/bootstrap/_media.scss new file mode 100644 index 0000000..8c835e8 --- /dev/null +++ b/phone-book/scss/bootstrap/_media.scss @@ -0,0 +1,66 @@ +.media { + // Proper spacing between instances of .media + margin-top: 15px; + + &:first-child { + margin-top: 0; + } +} + +.media, +.media-body { + zoom: 1; + overflow: hidden; +} + +.media-body { + width: 10000px; +} + +.media-object { + display: block; + + // Fix collapse in webkit from max-width: 100% and display: table-cell. + &.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; +} + +// Reset margins on headings for tighter default spacing +.media-heading { + margin-top: 0; + margin-bottom: 5px; +} + +// Media list variation +// +// Undo default ul/ol styles +.media-list { + padding-left: 0; + list-style: none; +} diff --git a/phone-book/scss/bootstrap/_mixins.scss b/phone-book/scss/bootstrap/_mixins.scss new file mode 100644 index 0000000..78cd5aa --- /dev/null +++ b/phone-book/scss/bootstrap/_mixins.scss @@ -0,0 +1,40 @@ +// Mixins +// -------------------------------------------------- + +// Utilities +@import "mixins/hide-text"; +@import "mixins/opacity"; +@import "mixins/image"; +@import "mixins/labels"; +@import "mixins/reset-filter"; +@import "mixins/resize"; +@import "mixins/responsive-visibility"; +@import "mixins/size"; +@import "mixins/tab-focus"; +@import "mixins/reset-text"; +@import "mixins/text-emphasis"; +@import "mixins/text-overflow"; +@import "mixins/vendor-prefixes"; + +// Components +@import "mixins/alerts"; +@import "mixins/buttons"; +@import "mixins/panels"; +@import "mixins/pagination"; +@import "mixins/list-group"; +@import "mixins/nav-divider"; +@import "mixins/forms"; +@import "mixins/progress-bar"; +@import "mixins/table-row"; + +// Skins +@import "mixins/background-variant"; +@import "mixins/border-radius"; +@import "mixins/gradients"; + +// Layout +@import "mixins/clearfix"; +@import "mixins/center-block"; +@import "mixins/nav-vertical-align"; +@import "mixins/grid-framework"; +@import "mixins/grid"; diff --git a/phone-book/scss/bootstrap/_modals.scss b/phone-book/scss/bootstrap/_modals.scss new file mode 100644 index 0000000..823870f --- /dev/null +++ b/phone-book/scss/bootstrap/_modals.scss @@ -0,0 +1,150 @@ +// +// Modals +// -------------------------------------------------- + +// .modal-open - body class for killing the scroll +// .modal - container to scroll within +// .modal-dialog - positioning shell for the actual modal +// .modal-content - actual modal w/ bg and corners and shit + +// Kill the scroll on the body +.modal-open { + overflow: hidden; +} + +// Container that the modal scrolls within +.modal { + display: none; + overflow: hidden; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: $zindex-modal; + -webkit-overflow-scrolling: touch; + + // Prevent Chrome on Windows from adding a focus outline. For details, see + // https://github.com/twbs/bootstrap/pull/10951. + outline: 0; + + // When fading in the modal, animate it to slide down + &.fade .modal-dialog { + @include translate(0, -25%); + @include transition-transform(0.3s ease-out); + } + &.in .modal-dialog { @include translate(0, 0) } +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +// Shell div to position the modal with bottom padding +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} + +// Actual modal +.modal-content { + position: relative; + background-color: $modal-content-bg; + border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc) + border: 1px solid $modal-content-border-color; + border-radius: $border-radius-large; + @include box-shadow(0 3px 9px rgba(0,0,0,.5)); + background-clip: padding-box; + // Remove focus outline from opened modal + outline: 0; +} + +// Modal background +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: $zindex-modal-background; + background-color: $modal-backdrop-bg; + // Fade for backdrop + &.fade { @include opacity(0); } + &.in { @include opacity($modal-backdrop-opacity); } +} + +// Modal header +// Top section of the modal w/ title and dismiss +.modal-header { + padding: $modal-title-padding; + border-bottom: 1px solid $modal-header-border-color; + @include clearfix; +} +// Close icon +.modal-header .close { + margin-top: -2px; +} + +// Title text within header +.modal-title { + margin: 0; + line-height: $modal-title-line-height; +} + +// Modal body +// Where all modal content resides (sibling of .modal-header and .modal-footer) +.modal-body { + position: relative; + padding: $modal-inner-padding; +} + +// Footer (for actions) +.modal-footer { + padding: $modal-inner-padding; + text-align: right; // right align buttons + border-top: 1px solid $modal-footer-border-color; + @include clearfix; // clear it in case folks use .pull-* classes on buttons + + // Properly space out buttons + .btn + .btn { + margin-left: 5px; + margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs + } + // but override that for button groups + .btn-group .btn + .btn { + margin-left: -1px; + } + // and override it for block buttons as well + .btn-block + .btn-block { + margin-left: 0; + } +} + +// Measure scrollbar width for padding body during modal show/hide +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +// Scale up the modal +@media (min-width: $screen-sm-min) { + // Automatically set modal's width for larger viewports + .modal-dialog { + width: $modal-md; + margin: 30px auto; + } + .modal-content { + @include box-shadow(0 5px 15px rgba(0,0,0,.5)); + } + + // Modal sizes + .modal-sm { width: $modal-sm; } +} + +@media (min-width: $screen-md-min) { + .modal-lg { width: $modal-lg; } +} diff --git a/phone-book/scss/bootstrap/_navbar.scss b/phone-book/scss/bootstrap/_navbar.scss new file mode 100644 index 0000000..11e5c01 --- /dev/null +++ b/phone-book/scss/bootstrap/_navbar.scss @@ -0,0 +1,662 @@ +// +// Navbars +// -------------------------------------------------- + + +// Wrapper and base class +// +// Provide a static navbar from which we expand to create full-width, fixed, and +// other navbar variations. + +.navbar { + position: relative; + min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode) + margin-bottom: $navbar-margin-bottom; + border: 1px solid transparent; + + // Prevent floats from breaking the navbar + @include clearfix; + + @media (min-width: $grid-float-breakpoint) { + border-radius: $navbar-border-radius; + } +} + + +// Navbar heading +// +// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy +// styling of responsive aspects. + +.navbar-header { + @include clearfix; + + @media (min-width: $grid-float-breakpoint) { + float: left; + } +} + + +// Navbar collapse (body) +// +// Group your navbar content into this for easy collapsing and expanding across +// various device sizes. By default, this content is collapsed when <768px, but +// will expand past that for a horizontal display. +// +// To start (on mobile devices) the navbar links, forms, and buttons are stacked +// vertically and include a `max-height` to overflow in case you have too much +// content for the user's viewport. + +.navbar-collapse { + overflow-x: visible; + padding-right: $navbar-padding-horizontal; + padding-left: $navbar-padding-horizontal; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255,255,255,.1); + @include clearfix; + -webkit-overflow-scrolling: touch; + + &.in { + overflow-y: auto; + } + + @media (min-width: $grid-float-breakpoint) { + width: auto; + border-top: 0; + box-shadow: none; + + &.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; // Override default setting + overflow: visible !important; + } + + &.in { + overflow-y: visible; + } + + // Undo the collapse side padding for navbars with containers to ensure + // alignment of right-aligned contents. + .navbar-fixed-top &, + .navbar-static-top &, + .navbar-fixed-bottom & { + padding-left: 0; + padding-right: 0; + } + } +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + .navbar-collapse { + max-height: $navbar-collapse-max-height; + + @media (max-device-width: $screen-xs-min) and (orientation: landscape) { + max-height: 200px; + } + } +} + + +// Both navbar header and collapse +// +// When a container is present, change the behavior of the header and collapse. + +.container, +.container-fluid { + > .navbar-header, + > .navbar-collapse { + margin-right: -$navbar-padding-horizontal; + margin-left: -$navbar-padding-horizontal; + + @media (min-width: $grid-float-breakpoint) { + margin-right: 0; + margin-left: 0; + } + } +} + + +// +// Navbar alignment options +// +// Display the navbar across the entirety of the page or fixed it to the top or +// bottom of the page. + +// Static top (unfixed, but 100% wide) navbar +.navbar-static-top { + z-index: $zindex-navbar; + border-width: 0 0 1px; + + @media (min-width: $grid-float-breakpoint) { + border-radius: 0; + } +} + +// Fix the top/bottom navbars when screen real estate supports it +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: $zindex-navbar-fixed; + + // Undo the rounded corners + @media (min-width: $grid-float-breakpoint) { + border-radius: 0; + } +} +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; // override .navbar defaults + border-width: 1px 0 0; +} + + +// Brand/project name + +.navbar-brand { + float: left; + padding: $navbar-padding-vertical $navbar-padding-horizontal; + font-size: $font-size-large; + line-height: $line-height-computed; + height: $navbar-height; + + &:hover, + &:focus { + text-decoration: none; + } + + > img { + display: block; + } + + @media (min-width: $grid-float-breakpoint) { + .navbar > .container &, + .navbar > .container-fluid & { + margin-left: -$navbar-padding-horizontal; + } + } +} + + +// Navbar toggle +// +// Custom button for toggling the `.navbar-collapse`, powered by the collapse +// JavaScript plugin. + +.navbar-toggle { + position: relative; + float: right; + margin-right: $navbar-padding-horizontal; + padding: 9px 10px; + @include navbar-vertical-align(34px); + background-color: transparent; + background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 + border: 1px solid transparent; + border-radius: $border-radius-base; + + // We remove the `outline` here, but later compensate by attaching `:hover` + // styles to `:focus`. + &:focus { + outline: 0; + } + + // Bars + .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; + } + .icon-bar + .icon-bar { + margin-top: 4px; + } + + @media (min-width: $grid-float-breakpoint) { + display: none; + } +} + + +// Navbar nav links +// +// Builds on top of the `.nav` components with its own modifier class to make +// the nav the full height of the horizontal nav (above 768px). + +.navbar-nav { + margin: ($navbar-padding-vertical / 2) (-$navbar-padding-horizontal); + + > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: $line-height-computed; + } + + @media (max-width: $grid-float-breakpoint-max) { + // Dropdowns get custom display when collapsed + .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + > li > a, + .dropdown-header { + padding: 5px 15px 5px 25px; + } + > li > a { + line-height: $line-height-computed; + &:hover, + &:focus { + background-image: none; + } + } + } + } + + // Uncollapse the nav + @media (min-width: $grid-float-breakpoint) { + float: left; + margin: 0; + + > li { + float: left; + > a { + padding-top: $navbar-padding-vertical; + padding-bottom: $navbar-padding-vertical; + } + } + } +} + + +// Navbar form +// +// Extension of the `.form-inline` with some extra flavor for optimum display in +// our navbars. + +.navbar-form { + margin-left: -$navbar-padding-horizontal; + margin-right: -$navbar-padding-horizontal; + padding: 10px $navbar-padding-horizontal; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + $shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1); + @include box-shadow($shadow); + + // Mixin behavior for optimum display + @include form-inline; + + .form-group { + @media (max-width: $grid-float-breakpoint-max) { + margin-bottom: 5px; + + &:last-child { + margin-bottom: 0; + } + } + } + + // Vertically center in expanded, horizontal navbar + @include navbar-vertical-align($input-height-base); + + // Undo 100% width for pull classes + @media (min-width: $grid-float-breakpoint) { + width: auto; + border: 0; + margin-left: 0; + margin-right: 0; + padding-top: 0; + padding-bottom: 0; + @include box-shadow(none); + } +} + + +// Dropdown menus + +// Menu position and menu carets +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + @include border-top-radius(0); +} +// Menu position and menu caret support for dropups via extra dropup class +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + @include border-top-radius($navbar-border-radius); + @include border-bottom-radius(0); +} + + +// Buttons in navbars +// +// Vertically center a button within a navbar (when *not* in a form). + +.navbar-btn { + @include navbar-vertical-align($input-height-base); + + &.btn-sm { + @include navbar-vertical-align($input-height-small); + } + &.btn-xs { + @include navbar-vertical-align(22); + } +} + + +// Text in navbars +// +// Add a class to make any element properly align itself vertically within the navbars. + +.navbar-text { + @include navbar-vertical-align($line-height-computed); + + @media (min-width: $grid-float-breakpoint) { + float: left; + margin-left: $navbar-padding-horizontal; + margin-right: $navbar-padding-horizontal; + } +} + + +// Component alignment +// +// Repurpose the pull utilities as their own navbar utilities to avoid specificity +// issues with parents and chaining. Only do this when the navbar is uncollapsed +// though so that navbar contents properly stack and align in mobile. +// +// Declared after the navbar components to ensure more specificity on the margins. + +@media (min-width: $grid-float-breakpoint) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + margin-right: -$navbar-padding-horizontal; + + ~ .navbar-right { + margin-right: 0; + } + } +} + + +// Alternate navbars +// -------------------------------------------------- + +// Default navbar +.navbar-default { + background-color: $navbar-default-bg; + border-color: $navbar-default-border; + + .navbar-brand { + color: $navbar-default-brand-color; + &:hover, + &:focus { + color: $navbar-default-brand-hover-color; + background-color: $navbar-default-brand-hover-bg; + } + } + + .navbar-text { + color: $navbar-default-color; + } + + .navbar-nav { + > li > a { + color: $navbar-default-link-color; + + &:hover, + &:focus { + color: $navbar-default-link-hover-color; + background-color: $navbar-default-link-hover-bg; + } + } + > .active > a { + &, + &:hover, + &:focus { + color: $navbar-default-link-active-color; + background-color: $navbar-default-link-active-bg; + } + } + > .disabled > a { + &, + &:hover, + &:focus { + color: $navbar-default-link-disabled-color; + background-color: $navbar-default-link-disabled-bg; + } + } + } + + .navbar-toggle { + border-color: $navbar-default-toggle-border-color; + &:hover, + &:focus { + background-color: $navbar-default-toggle-hover-bg; + } + .icon-bar { + background-color: $navbar-default-toggle-icon-bar-bg; + } + } + + .navbar-collapse, + .navbar-form { + border-color: $navbar-default-border; + } + + // Dropdown menu items + .navbar-nav { + // Remove background color from open dropdown + > .open > a { + &, + &:hover, + &:focus { + background-color: $navbar-default-link-active-bg; + color: $navbar-default-link-active-color; + } + } + + @media (max-width: $grid-float-breakpoint-max) { + // Dropdowns get custom display when collapsed + .open .dropdown-menu { + > li > a { + color: $navbar-default-link-color; + &:hover, + &:focus { + color: $navbar-default-link-hover-color; + background-color: $navbar-default-link-hover-bg; + } + } + > .active > a { + &, + &:hover, + &:focus { + color: $navbar-default-link-active-color; + background-color: $navbar-default-link-active-bg; + } + } + > .disabled > a { + &, + &:hover, + &:focus { + color: $navbar-default-link-disabled-color; + background-color: $navbar-default-link-disabled-bg; + } + } + } + } + } + + + // Links in navbars + // + // Add a class to ensure links outside the navbar nav are colored correctly. + + .navbar-link { + color: $navbar-default-link-color; + &:hover { + color: $navbar-default-link-hover-color; + } + } + + .btn-link { + color: $navbar-default-link-color; + &:hover, + &:focus { + color: $navbar-default-link-hover-color; + } + &[disabled], + fieldset[disabled] & { + &:hover, + &:focus { + color: $navbar-default-link-disabled-color; + } + } + } +} + +// Inverse navbar + +.navbar-inverse { + background-color: $navbar-inverse-bg; + border-color: $navbar-inverse-border; + + .navbar-brand { + color: $navbar-inverse-brand-color; + &:hover, + &:focus { + color: $navbar-inverse-brand-hover-color; + background-color: $navbar-inverse-brand-hover-bg; + } + } + + .navbar-text { + color: $navbar-inverse-color; + } + + .navbar-nav { + > li > a { + color: $navbar-inverse-link-color; + + &:hover, + &:focus { + color: $navbar-inverse-link-hover-color; + background-color: $navbar-inverse-link-hover-bg; + } + } + > .active > a { + &, + &:hover, + &:focus { + color: $navbar-inverse-link-active-color; + background-color: $navbar-inverse-link-active-bg; + } + } + > .disabled > a { + &, + &:hover, + &:focus { + color: $navbar-inverse-link-disabled-color; + background-color: $navbar-inverse-link-disabled-bg; + } + } + } + + // Darken the responsive nav toggle + .navbar-toggle { + border-color: $navbar-inverse-toggle-border-color; + &:hover, + &:focus { + background-color: $navbar-inverse-toggle-hover-bg; + } + .icon-bar { + background-color: $navbar-inverse-toggle-icon-bar-bg; + } + } + + .navbar-collapse, + .navbar-form { + border-color: darken($navbar-inverse-bg, 7%); + } + + // Dropdowns + .navbar-nav { + > .open > a { + &, + &:hover, + &:focus { + background-color: $navbar-inverse-link-active-bg; + color: $navbar-inverse-link-active-color; + } + } + + @media (max-width: $grid-float-breakpoint-max) { + // Dropdowns get custom display + .open .dropdown-menu { + > .dropdown-header { + border-color: $navbar-inverse-border; + } + .divider { + background-color: $navbar-inverse-border; + } + > li > a { + color: $navbar-inverse-link-color; + &:hover, + &:focus { + color: $navbar-inverse-link-hover-color; + background-color: $navbar-inverse-link-hover-bg; + } + } + > .active > a { + &, + &:hover, + &:focus { + color: $navbar-inverse-link-active-color; + background-color: $navbar-inverse-link-active-bg; + } + } + > .disabled > a { + &, + &:hover, + &:focus { + color: $navbar-inverse-link-disabled-color; + background-color: $navbar-inverse-link-disabled-bg; + } + } + } + } + } + + .navbar-link { + color: $navbar-inverse-link-color; + &:hover { + color: $navbar-inverse-link-hover-color; + } + } + + .btn-link { + color: $navbar-inverse-link-color; + &:hover, + &:focus { + color: $navbar-inverse-link-hover-color; + } + &[disabled], + fieldset[disabled] & { + &:hover, + &:focus { + color: $navbar-inverse-link-disabled-color; + } + } + } +} diff --git a/phone-book/scss/bootstrap/_navs.scss b/phone-book/scss/bootstrap/_navs.scss new file mode 100644 index 0000000..9d369f3 --- /dev/null +++ b/phone-book/scss/bootstrap/_navs.scss @@ -0,0 +1,242 @@ +// +// Navs +// -------------------------------------------------- + + +// Base class +// -------------------------------------------------- + +.nav { + margin-bottom: 0; + padding-left: 0; // Override default ul/ol + list-style: none; + @include clearfix; + + > li { + position: relative; + display: block; + + > a { + position: relative; + display: block; + padding: $nav-link-padding; + &:hover, + &:focus { + text-decoration: none; + background-color: $nav-link-hover-bg; + } + } + + // Disabled state sets text to gray and nukes hover/tab effects + &.disabled > a { + color: $nav-disabled-link-color; + + &:hover, + &:focus { + color: $nav-disabled-link-hover-color; + text-decoration: none; + background-color: transparent; + cursor: $cursor-disabled; + } + } + } + + // Open dropdowns + .open > a { + &, + &:hover, + &:focus { + background-color: $nav-link-hover-bg; + border-color: $link-color; + } + } + + // Nav dividers (deprecated with v3.0.1) + // + // This should have been removed in v3 with the dropping of `.nav-list`, but + // we missed it. We don't currently support this anywhere, but in the interest + // of maintaining backward compatibility in case you use it, it's deprecated. + .nav-divider { + @include nav-divider; + } + + // Prevent IE8 from misplacing imgs + // + // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989 + > li > a > img { + max-width: none; + } +} + + +// Tabs +// ------------------------- + +// Give the tabs something to sit on +.nav-tabs { + border-bottom: 1px solid $nav-tabs-border-color; + > li { + float: left; + // Make the list-items overlay the bottom border + margin-bottom: -1px; + + // Actual tabs (as links) + > a { + margin-right: 2px; + line-height: $line-height-base; + border: 1px solid transparent; + border-radius: $border-radius-base $border-radius-base 0 0; + &:hover { + border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color; + } + } + + // Active state, and its :hover to override normal :hover + &.active > a { + &, + &:hover, + &:focus { + color: $nav-tabs-active-link-hover-color; + background-color: $nav-tabs-active-link-hover-bg; + border: 1px solid $nav-tabs-active-link-hover-border-color; + border-bottom-color: transparent; + cursor: default; + } + } + } + // pulling this in mainly for less shorthand + &.nav-justified { + @extend .nav-justified; + @extend .nav-tabs-justified; + } +} + + +// Pills +// ------------------------- +.nav-pills { + > li { + float: left; + + // Links rendered as pills + > a { + border-radius: $nav-pills-border-radius; + } + + li { + margin-left: 2px; + } + + // Active state + &.active > a { + &, + &:hover, + &:focus { + color: $nav-pills-active-link-hover-color; + background-color: $nav-pills-active-link-hover-bg; + } + } + } +} + + +// Stacked pills +.nav-stacked { + > li { + float: none; + + li { + margin-top: 2px; + margin-left: 0; // no need for this gap between nav items + } + } +} + + +// Nav variations +// -------------------------------------------------- + +// Justified nav links +// ------------------------- + +.nav-justified { + width: 100%; + + > li { + float: none; + > a { + text-align: center; + margin-bottom: 5px; + } + } + + > .dropdown .dropdown-menu { + top: auto; + left: auto; + } + + @media (min-width: $screen-sm-min) { + > li { + display: table-cell; + width: 1%; + > a { + margin-bottom: 0; + } + } + } +} + +// Move borders to anchors instead of bottom of list +// +// Mixin for adding on top the shared `.nav-justified` styles for our tabs +.nav-tabs-justified { + border-bottom: 0; + + > li > a { + // Override margin from .nav-tabs + margin-right: 0; + border-radius: $border-radius-base; + } + + > .active > a, + > .active > a:hover, + > .active > a:focus { + border: 1px solid $nav-tabs-justified-link-border-color; + } + + @media (min-width: $screen-sm-min) { + > li > a { + border-bottom: 1px solid $nav-tabs-justified-link-border-color; + border-radius: $border-radius-base $border-radius-base 0 0; + } + > .active > a, + > .active > a:hover, + > .active > a:focus { + border-bottom-color: $nav-tabs-justified-active-link-border-color; + } + } +} + + +// Tabbable tabs +// ------------------------- + +// Hide tabbable panes to start, show them when `.active` +.tab-content { + > .tab-pane { + display: none; + } + > .active { + display: block; + } +} + + +// Dropdowns +// ------------------------- + +// Specific dropdowns +.nav-tabs .dropdown-menu { + // make dropdown border overlap tab border + margin-top: -1px; + // Remove the top rounded corners here since there is a hard edge above the menu + @include border-top-radius(0); +} diff --git a/phone-book/scss/bootstrap/_normalize.scss b/phone-book/scss/bootstrap/_normalize.scss new file mode 100644 index 0000000..9dddf73 --- /dev/null +++ b/phone-book/scss/bootstrap/_normalize.scss @@ -0,0 +1,424 @@ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ + +// +// 1. Set default font family to sans-serif. +// 2. Prevent iOS and IE text size adjust after device orientation change, +// without disabling user zoom. +// + +html { + font-family: sans-serif; // 1 + -ms-text-size-adjust: 100%; // 2 + -webkit-text-size-adjust: 100%; // 2 +} + +// +// Remove default margin. +// + +body { + margin: 0; +} + +// HTML5 display definitions +// ========================================================================== + +// +// Correct `block` display not defined for any HTML5 element in IE 8/9. +// Correct `block` display not defined for `details` or `summary` in IE 10/11 +// and Firefox. +// Correct `block` display not defined for `main` in IE 11. +// + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +// +// 1. Correct `inline-block` display not defined in IE 8/9. +// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. +// + +audio, +canvas, +progress, +video { + display: inline-block; // 1 + vertical-align: baseline; // 2 +} + +// +// Prevent modern browsers from displaying `audio` without controls. +// Remove excess height in iOS 5 devices. +// + +audio:not([controls]) { + display: none; + height: 0; +} + +// +// Address `[hidden]` styling not present in IE 8/9/10. +// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. +// + +[hidden], +template { + display: none; +} + +// Links +// ========================================================================== + +// +// Remove the gray background color from active links in IE 10. +// + +a { + background-color: transparent; +} + +// +// Improve readability of focused elements when they are also in an +// active/hover state. +// + +a:active, +a:hover { + outline: 0; +} + +// Text-level semantics +// ========================================================================== + +// +// Address styling not present in IE 8/9/10/11, Safari, and Chrome. +// + +abbr[title] { + border-bottom: 1px dotted; +} + +// +// Address style set to `bolder` in Firefox 4+, Safari, and Chrome. +// + +b, +strong { + font-weight: bold; +} + +// +// Address styling not present in Safari and Chrome. +// + +dfn { + font-style: italic; +} + +// +// Address variable `h1` font-size and margin within `section` and `article` +// contexts in Firefox 4+, Safari, and Chrome. +// + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +// +// Address styling not present in IE 8/9. +// + +mark { + background: #ff0; + color: #000; +} + +// +// Address inconsistent and variable font size in all browsers. +// + +small { + font-size: 80%; +} + +// +// Prevent `sub` and `sup` affecting `line-height` in all browsers. +// + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +// Embedded content +// ========================================================================== + +// +// Remove border when inside `a` element in IE 8/9/10. +// + +img { + border: 0; +} + +// +// Correct overflow not hidden in IE 9/10/11. +// + +svg:not(:root) { + overflow: hidden; +} + +// Grouping content +// ========================================================================== + +// +// Address margin not present in IE 8/9 and Safari. +// + +figure { + margin: 1em 40px; +} + +// +// Address differences between Firefox and other browsers. +// + +hr { + box-sizing: content-box; + height: 0; +} + +// +// Contain overflow in all browsers. +// + +pre { + overflow: auto; +} + +// +// Address odd `em`-unit font size rendering in all browsers. +// + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +// Forms +// ========================================================================== + +// +// Known limitation: by default, Chrome and Safari on OS X allow very limited +// styling of `select`, unless a `border` property is set. +// + +// +// 1. Correct color not being inherited. +// Known issue: affects color of disabled elements. +// 2. Correct font properties not being inherited. +// 3. Address margins set differently in Firefox 4+, Safari, and Chrome. +// + +button, +input, +optgroup, +select, +textarea { + color: inherit; // 1 + font: inherit; // 2 + margin: 0; // 3 +} + +// +// Address `overflow` set to `hidden` in IE 8/9/10/11. +// + +button { + overflow: visible; +} + +// +// Address inconsistent `text-transform` inheritance for `button` and `select`. +// All other form control elements do not inherit `text-transform` values. +// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. +// Correct `select` style inheritance in Firefox. +// + +button, +select { + text-transform: none; +} + +// +// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` +// and `video` controls. +// 2. Correct inability to style clickable `input` types in iOS. +// 3. Improve usability and consistency of cursor style between image-type +// `input` and others. +// + +button, +html input[type="button"], // 1 +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; // 2 + cursor: pointer; // 3 +} + +// +// Re-set default cursor for disabled elements. +// + +button[disabled], +html input[disabled] { + cursor: default; +} + +// +// Remove inner padding and border in Firefox 4+. +// + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +// +// Address Firefox 4+ setting `line-height` on `input` using `!important` in +// the UA stylesheet. +// + +input { + line-height: normal; +} + +// +// It's recommended that you don't attempt to style these elements. +// Firefox's implementation doesn't respect box-sizing, padding, or width. +// +// 1. Address box sizing set to `content-box` in IE 8/9/10. +// 2. Remove excess padding in IE 8/9/10. +// + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; // 1 + padding: 0; // 2 +} + +// +// Fix the cursor style for Chrome's increment/decrement buttons. For certain +// `font-size` values of the `input`, it causes the cursor style of the +// decrement button to change from `default` to `text`. +// + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +// +// 1. Address `appearance` set to `searchfield` in Safari and Chrome. +// 2. Address `box-sizing` set to `border-box` in Safari and Chrome. +// + +input[type="search"] { + -webkit-appearance: textfield; // 1 + box-sizing: content-box; //2 +} + +// +// Remove inner padding and search cancel button in Safari and Chrome on OS X. +// Safari (but not Chrome) clips the cancel button when the search input has +// padding (and `textfield` appearance). +// + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +// +// Define consistent border, margin, and padding. +// + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +// +// 1. Correct `color` not being inherited in IE 8/9/10/11. +// 2. Remove padding so people aren't caught out if they zero out fieldsets. +// + +legend { + border: 0; // 1 + padding: 0; // 2 +} + +// +// Remove default vertical scrollbar in IE 8/9/10/11. +// + +textarea { + overflow: auto; +} + +// +// Don't inherit the `font-weight` (applied by a rule above). +// NOTE: the default cannot safely be changed in Chrome and Safari on OS X. +// + +optgroup { + font-weight: bold; +} + +// Tables +// ========================================================================== + +// +// Remove most spacing between table cells. +// + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/phone-book/scss/bootstrap/_pager.scss b/phone-book/scss/bootstrap/_pager.scss new file mode 100644 index 0000000..c234217 --- /dev/null +++ b/phone-book/scss/bootstrap/_pager.scss @@ -0,0 +1,54 @@ +// +// Pager pagination +// -------------------------------------------------- + + +.pager { + padding-left: 0; + margin: $line-height-computed 0; + list-style: none; + text-align: center; + @include clearfix; + li { + display: inline; + > a, + > span { + display: inline-block; + padding: 5px 14px; + background-color: $pager-bg; + border: 1px solid $pager-border; + border-radius: $pager-border-radius; + } + + > a:hover, + > a:focus { + text-decoration: none; + background-color: $pager-hover-bg; + } + } + + .next { + > a, + > span { + float: right; + } + } + + .previous { + > a, + > span { + float: left; + } + } + + .disabled { + > a, + > a:hover, + > a:focus, + > span { + color: $pager-disabled-color; + background-color: $pager-bg; + cursor: $cursor-disabled; + } + } +} diff --git a/phone-book/scss/bootstrap/_pagination.scss b/phone-book/scss/bootstrap/_pagination.scss new file mode 100644 index 0000000..fecfa9c --- /dev/null +++ b/phone-book/scss/bootstrap/_pagination.scss @@ -0,0 +1,89 @@ +// +// Pagination (multiple pages) +// -------------------------------------------------- +.pagination { + display: inline-block; + padding-left: 0; + margin: $line-height-computed 0; + border-radius: $border-radius-base; + + > li { + display: inline; // Remove list-style and block-level defaults + > a, + > span { + position: relative; + float: left; // Collapse white-space + padding: $padding-base-vertical $padding-base-horizontal; + line-height: $line-height-base; + text-decoration: none; + color: $pagination-color; + background-color: $pagination-bg; + border: 1px solid $pagination-border; + margin-left: -1px; + } + &:first-child { + > a, + > span { + margin-left: 0; + @include border-left-radius($border-radius-base); + } + } + &:last-child { + > a, + > span { + @include border-right-radius($border-radius-base); + } + } + } + + > li > a, + > li > span { + &:hover, + &:focus { + z-index: 2; + color: $pagination-hover-color; + background-color: $pagination-hover-bg; + border-color: $pagination-hover-border; + } + } + + > .active > a, + > .active > span { + &, + &:hover, + &:focus { + z-index: 3; + color: $pagination-active-color; + background-color: $pagination-active-bg; + border-color: $pagination-active-border; + cursor: default; + } + } + + > .disabled { + > span, + > span:hover, + > span:focus, + > a, + > a:hover, + > a:focus { + color: $pagination-disabled-color; + background-color: $pagination-disabled-bg; + border-color: $pagination-disabled-border; + cursor: $cursor-disabled; + } + } +} + +// Sizing +// -------------------------------------------------- + +// Large +.pagination-lg { + @include pagination-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large); +} + +// Small +.pagination-sm { + @include pagination-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small); +} diff --git a/phone-book/scss/bootstrap/_panels.scss b/phone-book/scss/bootstrap/_panels.scss new file mode 100644 index 0000000..6c568de --- /dev/null +++ b/phone-book/scss/bootstrap/_panels.scss @@ -0,0 +1,271 @@ +// +// Panels +// -------------------------------------------------- + + +// Base class +.panel { + margin-bottom: $line-height-computed; + background-color: $panel-bg; + border: 1px solid transparent; + border-radius: $panel-border-radius; + @include box-shadow(0 1px 1px rgba(0,0,0,.05)); +} + +// Panel contents +.panel-body { + padding: $panel-body-padding; + @include clearfix; +} + +// Optional heading +.panel-heading { + padding: $panel-heading-padding; + border-bottom: 1px solid transparent; + @include border-top-radius(($panel-border-radius - 1)); + + > .dropdown .dropdown-toggle { + color: inherit; + } +} + +// Within heading, strip any `h*` tag of its default margins for spacing. +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: ceil(($font-size-base * 1.125)); + color: inherit; + + > a, + > small, + > .small, + > small > a, + > .small > a { + color: inherit; + } +} + +// Optional footer (stays gray in every modifier class) +.panel-footer { + padding: $panel-footer-padding; + background-color: $panel-footer-bg; + border-top: 1px solid $panel-inner-border; + @include border-bottom-radius(($panel-border-radius - 1)); +} + + +// List groups in panels +// +// By default, space out list group content from panel headings to account for +// any kind of custom content between the two. + +.panel { + > .list-group, + > .panel-collapse > .list-group { + margin-bottom: 0; + + .list-group-item { + border-width: 1px 0; + border-radius: 0; + } + + // Add border top radius for first one + &:first-child { + .list-group-item:first-child { + border-top: 0; + @include border-top-radius(($panel-border-radius - 1)); + } + } + + // Add border bottom radius for last one + &:last-child { + .list-group-item:last-child { + border-bottom: 0; + @include border-bottom-radius(($panel-border-radius - 1)); + } + } + } + > .panel-heading + .panel-collapse > .list-group { + .list-group-item:first-child { + @include border-top-radius(0); + } + } +} +// Collapse space between when there's no additional content. +.panel-heading + .list-group { + .list-group-item:first-child { + border-top-width: 0; + } +} +.list-group + .panel-footer { + border-top-width: 0; +} + +// Tables in panels +// +// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and +// watch it go full width. + +.panel { + > .table, + > .table-responsive > .table, + > .panel-collapse > .table { + margin-bottom: 0; + + caption { + padding-left: $panel-body-padding; + padding-right: $panel-body-padding; + } + } + // Add border top radius for first one + > .table:first-child, + > .table-responsive:first-child > .table:first-child { + @include border-top-radius(($panel-border-radius - 1)); + + > thead:first-child, + > tbody:first-child { + > tr:first-child { + border-top-left-radius: ($panel-border-radius - 1); + border-top-right-radius: ($panel-border-radius - 1); + + td:first-child, + th:first-child { + border-top-left-radius: ($panel-border-radius - 1); + } + td:last-child, + th:last-child { + border-top-right-radius: ($panel-border-radius - 1); + } + } + } + } + // Add border bottom radius for last one + > .table:last-child, + > .table-responsive:last-child > .table:last-child { + @include border-bottom-radius(($panel-border-radius - 1)); + + > tbody:last-child, + > tfoot:last-child { + > tr:last-child { + border-bottom-left-radius: ($panel-border-radius - 1); + border-bottom-right-radius: ($panel-border-radius - 1); + + td:first-child, + th:first-child { + border-bottom-left-radius: ($panel-border-radius - 1); + } + td:last-child, + th:last-child { + border-bottom-right-radius: ($panel-border-radius - 1); + } + } + } + } + > .panel-body + .table, + > .panel-body + .table-responsive, + > .table + .panel-body, + > .table-responsive + .panel-body { + border-top: 1px solid $table-border-color; + } + > .table > tbody:first-child > tr:first-child th, + > .table > tbody:first-child > tr:first-child td { + border-top: 0; + } + > .table-bordered, + > .table-responsive > .table-bordered { + border: 0; + > thead, + > tbody, + > tfoot { + > tr { + > th:first-child, + > td:first-child { + border-left: 0; + } + > th:last-child, + > td:last-child { + border-right: 0; + } + } + } + > thead, + > tbody { + > tr:first-child { + > td, + > th { + border-bottom: 0; + } + } + } + > tbody, + > tfoot { + > tr:last-child { + > td, + > th { + border-bottom: 0; + } + } + } + } + > .table-responsive { + border: 0; + margin-bottom: 0; + } +} + + +// Collapsible panels (aka, accordion) +// +// Wrap a series of panels in `.panel-group` to turn them into an accordion with +// the help of our collapse JavaScript plugin. + +.panel-group { + margin-bottom: $line-height-computed; + + // Tighten up margin so it's only between panels + .panel { + margin-bottom: 0; + border-radius: $panel-border-radius; + + + .panel { + margin-top: 5px; + } + } + + .panel-heading { + border-bottom: 0; + + + .panel-collapse > .panel-body, + + .panel-collapse > .list-group { + border-top: 1px solid $panel-inner-border; + } + } + + .panel-footer { + border-top: 0; + + .panel-collapse .panel-body { + border-bottom: 1px solid $panel-inner-border; + } + } +} + + +// Contextual variations +.panel-default { + @include panel-variant($panel-default-border, $panel-default-text, $panel-default-heading-bg, $panel-default-border); +} +.panel-primary { + @include panel-variant($panel-primary-border, $panel-primary-text, $panel-primary-heading-bg, $panel-primary-border); +} +.panel-success { + @include panel-variant($panel-success-border, $panel-success-text, $panel-success-heading-bg, $panel-success-border); +} +.panel-info { + @include panel-variant($panel-info-border, $panel-info-text, $panel-info-heading-bg, $panel-info-border); +} +.panel-warning { + @include panel-variant($panel-warning-border, $panel-warning-text, $panel-warning-heading-bg, $panel-warning-border); +} +.panel-danger { + @include panel-variant($panel-danger-border, $panel-danger-text, $panel-danger-heading-bg, $panel-danger-border); +} diff --git a/phone-book/scss/bootstrap/_popovers.scss b/phone-book/scss/bootstrap/_popovers.scss new file mode 100644 index 0000000..9b90a2e --- /dev/null +++ b/phone-book/scss/bootstrap/_popovers.scss @@ -0,0 +1,131 @@ +// +// Popovers +// -------------------------------------------------- + + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: $zindex-popover; + display: none; + max-width: $popover-max-width; + padding: 1px; + // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element. + // So reset our font and text properties to avoid inheriting weird values. + @include reset-text; + font-size: $font-size-base; + + background-color: $popover-bg; + background-clip: padding-box; + border: 1px solid $popover-fallback-border-color; + border: 1px solid $popover-border-color; + border-radius: $border-radius-large; + @include box-shadow(0 5px 10px rgba(0,0,0,.2)); + + // Offset the popover to account for the popover arrow + &.top { margin-top: -$popover-arrow-width; } + &.right { margin-left: $popover-arrow-width; } + &.bottom { margin-top: $popover-arrow-width; } + &.left { margin-left: -$popover-arrow-width; } +} + +.popover-title { + margin: 0; // reset heading margin + padding: 8px 14px; + font-size: $font-size-base; + background-color: $popover-title-bg; + border-bottom: 1px solid darken($popover-title-bg, 5%); + border-radius: ($border-radius-large - 1) ($border-radius-large - 1) 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +// Arrows +// +// .arrow is outer, .arrow:after is inner + +.popover > .arrow { + &, + &:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + } +} +.popover > .arrow { + border-width: $popover-arrow-outer-width; +} +.popover > .arrow:after { + border-width: $popover-arrow-width; + content: ""; +} + +.popover { + &.top > .arrow { + left: 50%; + margin-left: -$popover-arrow-outer-width; + border-bottom-width: 0; + border-top-color: $popover-arrow-outer-fallback-color; // IE8 fallback + border-top-color: $popover-arrow-outer-color; + bottom: -$popover-arrow-outer-width; + &:after { + content: " "; + bottom: 1px; + margin-left: -$popover-arrow-width; + border-bottom-width: 0; + border-top-color: $popover-arrow-color; + } + } + &.right > .arrow { + top: 50%; + left: -$popover-arrow-outer-width; + margin-top: -$popover-arrow-outer-width; + border-left-width: 0; + border-right-color: $popover-arrow-outer-fallback-color; // IE8 fallback + border-right-color: $popover-arrow-outer-color; + &:after { + content: " "; + left: 1px; + bottom: -$popover-arrow-width; + border-left-width: 0; + border-right-color: $popover-arrow-color; + } + } + &.bottom > .arrow { + left: 50%; + margin-left: -$popover-arrow-outer-width; + border-top-width: 0; + border-bottom-color: $popover-arrow-outer-fallback-color; // IE8 fallback + border-bottom-color: $popover-arrow-outer-color; + top: -$popover-arrow-outer-width; + &:after { + content: " "; + top: 1px; + margin-left: -$popover-arrow-width; + border-top-width: 0; + border-bottom-color: $popover-arrow-color; + } + } + + &.left > .arrow { + top: 50%; + right: -$popover-arrow-outer-width; + margin-top: -$popover-arrow-outer-width; + border-right-width: 0; + border-left-color: $popover-arrow-outer-fallback-color; // IE8 fallback + border-left-color: $popover-arrow-outer-color; + &:after { + content: " "; + right: 1px; + border-right-width: 0; + border-left-color: $popover-arrow-color; + bottom: -$popover-arrow-width; + } + } +} diff --git a/phone-book/scss/bootstrap/_print.scss b/phone-book/scss/bootstrap/_print.scss new file mode 100644 index 0000000..66e54ab --- /dev/null +++ b/phone-book/scss/bootstrap/_print.scss @@ -0,0 +1,101 @@ +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ + +// ========================================================================== +// Print styles. +// Inlined to avoid the additional HTTP request: h5bp.com/r +// ========================================================================== + +@media print { + *, + *:before, + *:after { + background: transparent !important; + color: #000 !important; // Black prints faster: h5bp.com/s + box-shadow: none !important; + text-shadow: none !important; + } + + a, + a:visited { + text-decoration: underline; + } + + a[href]:after { + content: " (" attr(href) ")"; + } + + abbr[title]:after { + content: " (" attr(title) ")"; + } + + // Don't show links that are fragment identifiers, + // or use the `javascript:` pseudo protocol + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } + + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + + thead { + display: table-header-group; // h5bp.com/t + } + + tr, + img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + + h2, + h3 { + page-break-after: avoid; + } + + // Bootstrap specific changes start + + // Bootstrap components + .navbar { + display: none; + } + .btn, + .dropup > .btn { + > .caret { + border-top-color: #000 !important; + } + } + .label { + border: 1px solid #000; + } + + .table { + border-collapse: collapse !important; + + td, + th { + background-color: #fff !important; + } + } + .table-bordered { + th, + td { + border: 1px solid #ddd !important; + } + } + + // Bootstrap specific changes end +} diff --git a/phone-book/scss/bootstrap/_progress-bars.scss b/phone-book/scss/bootstrap/_progress-bars.scss new file mode 100644 index 0000000..343df63 --- /dev/null +++ b/phone-book/scss/bootstrap/_progress-bars.scss @@ -0,0 +1,87 @@ +// +// Progress bars +// -------------------------------------------------- + + +// Bar animations +// ------------------------- + +// WebKit +@-webkit-keyframes progress-bar-stripes { + from { background-position: 40px 0; } + to { background-position: 0 0; } +} + +// Spec and IE10+ +@keyframes progress-bar-stripes { + from { background-position: 40px 0; } + to { background-position: 0 0; } +} + + +// Bar itself +// ------------------------- + +// Outer container +.progress { + overflow: hidden; + height: $line-height-computed; + margin-bottom: $line-height-computed; + background-color: $progress-bg; + border-radius: $progress-border-radius; + @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1)); +} + +// Bar of progress +.progress-bar { + float: left; + width: 0%; + height: 100%; + font-size: $font-size-small; + line-height: $line-height-computed; + color: $progress-bar-color; + text-align: center; + background-color: $progress-bar-bg; + @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15)); + @include transition(width .6s ease); +} + +// Striped bars +// +// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the +// `.progress-bar-striped` class, which you just add to an existing +// `.progress-bar`. +.progress-striped .progress-bar, +.progress-bar-striped { + @include gradient-striped; + background-size: 40px 40px; +} + +// Call animation for the active one +// +// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the +// `.progress-bar.active` approach. +.progress.active .progress-bar, +.progress-bar.active { + @include animation(progress-bar-stripes 2s linear infinite); +} + + +// Variations +// ------------------------- + +.progress-bar-success { + @include progress-bar-variant($progress-bar-success-bg); +} + +.progress-bar-info { + @include progress-bar-variant($progress-bar-info-bg); +} + +.progress-bar-warning { + @include progress-bar-variant($progress-bar-warning-bg); +} + +.progress-bar-danger { + @include progress-bar-variant($progress-bar-danger-bg); +} diff --git a/phone-book/scss/bootstrap/_responsive-embed.scss b/phone-book/scss/bootstrap/_responsive-embed.scss new file mode 100644 index 0000000..080a511 --- /dev/null +++ b/phone-book/scss/bootstrap/_responsive-embed.scss @@ -0,0 +1,35 @@ +// Embeds responsive +// +// Credit: Nicolas Gallagher and SUIT CSS. + +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; + + .embed-responsive-item, + iframe, + embed, + object, + video { + position: absolute; + top: 0; + left: 0; + bottom: 0; + height: 100%; + width: 100%; + border: 0; + } +} + +// Modifier class for 16:9 aspect ratio +.embed-responsive-16by9 { + padding-bottom: 56.25%; +} + +// Modifier class for 4:3 aspect ratio +.embed-responsive-4by3 { + padding-bottom: 75%; +} diff --git a/phone-book/scss/bootstrap/_responsive-utilities.scss b/phone-book/scss/bootstrap/_responsive-utilities.scss new file mode 100644 index 0000000..f3f0c83 --- /dev/null +++ b/phone-book/scss/bootstrap/_responsive-utilities.scss @@ -0,0 +1,179 @@ +// +// Responsive: Utility classes +// -------------------------------------------------- + + +// IE10 in Windows (Phone) 8 +// +// Support for responsive views via media queries is kind of borked in IE10, for +// Surface/desktop in split view and for Windows Phone 8. This particular fix +// must be accompanied by a snippet of JavaScript to sniff the user agent and +// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at +// our Getting Started page for more information on this bug. +// +// For more information, see the following: +// +// Issue: https://github.com/twbs/bootstrap/issues/10497 +// Docs: http://getbootstrap.com/getting-started/#support-ie10-width +// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/ +// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/ + +@at-root { + @-ms-viewport { + width: device-width; + } +} + + +// Visibility utilities +// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0 + +@include responsive-invisibility('.visible-xs'); +@include responsive-invisibility('.visible-sm'); +@include responsive-invisibility('.visible-md'); +@include responsive-invisibility('.visible-lg'); + +.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: $screen-xs-max) { + @include responsive-visibility('.visible-xs'); +} +.visible-xs-block { + @media (max-width: $screen-xs-max) { + display: block !important; + } +} +.visible-xs-inline { + @media (max-width: $screen-xs-max) { + display: inline !important; + } +} +.visible-xs-inline-block { + @media (max-width: $screen-xs-max) { + display: inline-block !important; + } +} + +@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { + @include responsive-visibility('.visible-sm'); +} +.visible-sm-block { + @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { + display: block !important; + } +} +.visible-sm-inline { + @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { + display: inline !important; + } +} +.visible-sm-inline-block { + @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { + display: inline-block !important; + } +} + +@media (min-width: $screen-md-min) and (max-width: $screen-md-max) { + @include responsive-visibility('.visible-md'); +} +.visible-md-block { + @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { + display: block !important; + } +} +.visible-md-inline { + @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { + display: inline !important; + } +} +.visible-md-inline-block { + @media (min-width: $screen-md-min) and (max-width: $screen-md-max) { + display: inline-block !important; + } +} + +@media (min-width: $screen-lg-min) { + @include responsive-visibility('.visible-lg'); +} +.visible-lg-block { + @media (min-width: $screen-lg-min) { + display: block !important; + } +} +.visible-lg-inline { + @media (min-width: $screen-lg-min) { + display: inline !important; + } +} +.visible-lg-inline-block { + @media (min-width: $screen-lg-min) { + display: inline-block !important; + } +} + +@media (max-width: $screen-xs-max) { + @include responsive-invisibility('.hidden-xs'); +} + +@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { + @include responsive-invisibility('.hidden-sm'); +} + +@media (min-width: $screen-md-min) and (max-width: $screen-md-max) { + @include responsive-invisibility('.hidden-md'); +} + +@media (min-width: $screen-lg-min) { + @include responsive-invisibility('.hidden-lg'); +} + + +// Print utilities +// +// Media queries are placed on the inside to be mixin-friendly. + +// Note: Deprecated .visible-print as of v3.2.0 + +@include responsive-invisibility('.visible-print'); + +@media print { + @include responsive-visibility('.visible-print'); +} +.visible-print-block { + display: none !important; + + @media print { + display: block !important; + } +} +.visible-print-inline { + display: none !important; + + @media print { + display: inline !important; + } +} +.visible-print-inline-block { + display: none !important; + + @media print { + display: inline-block !important; + } +} + +@media print { + @include responsive-invisibility('.hidden-print'); +} diff --git a/phone-book/scss/bootstrap/_scaffolding.scss b/phone-book/scss/bootstrap/_scaffolding.scss new file mode 100644 index 0000000..362c7e2 --- /dev/null +++ b/phone-book/scss/bootstrap/_scaffolding.scss @@ -0,0 +1,161 @@ +// +// Scaffolding +// -------------------------------------------------- + + +// Reset the box-sizing +// +// Heads up! This reset may cause conflicts with some third-party widgets. +// For recommendations on resolving such conflicts, see +// http://getbootstrap.com/getting-started/#third-box-sizing +* { + @include box-sizing(border-box); +} +*:before, +*:after { + @include box-sizing(border-box); +} + + +// Body reset + +html { + font-size: 10px; + -webkit-tap-highlight-color: rgba(0,0,0,0); +} + +body { + font-family: $font-family-base; + font-size: $font-size-base; + line-height: $line-height-base; + color: $text-color; + background-color: $body-bg; +} + +// Reset fonts for relevant elements +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + + +// Links + +a { + color: $link-color; + text-decoration: none; + + &:hover, + &:focus { + color: $link-hover-color; + text-decoration: $link-hover-decoration; + } + + &:focus { + @include tab-focus; + } +} + + +// Figures +// +// We reset this here because previously Normalize had no `figure` margins. This +// ensures we don't break anyone's use of the element. + +figure { + margin: 0; +} + + +// Images + +img { + vertical-align: middle; +} + +// Responsive images (ensure images don't scale beyond their parents) +.img-responsive { + @include img-responsive; +} + +// Rounded corners +.img-rounded { + border-radius: $border-radius-large; +} + +// Image thumbnails +// +// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`. +.img-thumbnail { + padding: $thumbnail-padding; + line-height: $line-height-base; + background-color: $thumbnail-bg; + border: 1px solid $thumbnail-border; + border-radius: $thumbnail-border-radius; + @include transition(all .2s ease-in-out); + + // Keep them at most 100% wide + @include img-responsive(inline-block); +} + +// Perfect circle +.img-circle { + border-radius: 50%; // set radius in percents +} + + +// Horizontal rules + +hr { + margin-top: $line-height-computed; + margin-bottom: $line-height-computed; + border: 0; + border-top: 1px solid $hr-border; +} + + +// Only display content to screen readers +// +// See: http://a11yproject.com/posts/how-to-hide-content + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// Credit: HTML5 Boilerplate + +.sr-only-focusable { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} + + +// iOS "clickable elements" fix for role="button" +// +// Fixes "clickability" issue (and more generally, the firing of events such as focus as well) +// for traditionally non-focusable elements with role="button" +// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile + +[role="button"] { + cursor: pointer; +} diff --git a/phone-book/scss/bootstrap/_tables.scss b/phone-book/scss/bootstrap/_tables.scss new file mode 100644 index 0000000..affcc58 --- /dev/null +++ b/phone-book/scss/bootstrap/_tables.scss @@ -0,0 +1,234 @@ +// +// Tables +// -------------------------------------------------- + + +table { + background-color: $table-bg; +} +caption { + padding-top: $table-cell-padding; + padding-bottom: $table-cell-padding; + color: $text-muted; + text-align: left; +} +th { + text-align: left; +} + + +// Baseline styles + +.table { + width: 100%; + max-width: 100%; + margin-bottom: $line-height-computed; + // Cells + > thead, + > tbody, + > tfoot { + > tr { + > th, + > td { + padding: $table-cell-padding; + line-height: $line-height-base; + vertical-align: top; + border-top: 1px solid $table-border-color; + } + } + } + // Bottom align for column headings + > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid $table-border-color; + } + // Remove top border from thead by default + > caption + thead, + > colgroup + thead, + > thead:first-child { + > tr:first-child { + > th, + > td { + border-top: 0; + } + } + } + // Account for multiple tbody instances + > tbody + tbody { + border-top: 2px solid $table-border-color; + } + + // Nesting + .table { + background-color: $body-bg; + } +} + + +// Condensed table w/ half padding + +.table-condensed { + > thead, + > tbody, + > tfoot { + > tr { + > th, + > td { + padding: $table-condensed-cell-padding; + } + } + } +} + + +// Bordered version +// +// Add borders all around the table and between all the columns. + +.table-bordered { + border: 1px solid $table-border-color; + > thead, + > tbody, + > tfoot { + > tr { + > th, + > td { + border: 1px solid $table-border-color; + } + } + } + > thead > tr { + > th, + > td { + border-bottom-width: 2px; + } + } +} + + +// Zebra-striping +// +// Default zebra-stripe styles (alternating gray and transparent backgrounds) + +.table-striped { + > tbody > tr:nth-of-type(odd) { + background-color: $table-bg-accent; + } +} + + +// Hover effect +// +// Placed here since it has to come after the potential zebra striping + +.table-hover { + > tbody > tr:hover { + background-color: $table-bg-hover; + } +} + + +// Table cell sizing +// +// Reset default table behavior + +table col[class*="col-"] { + position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623) + float: none; + display: table-column; +} +table { + td, + th { + &[class*="col-"] { + position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623) + float: none; + display: table-cell; + } + } +} + + +// Table backgrounds +// +// Exact selectors below required to override `.table-striped` and prevent +// inheritance to nested tables. + +// Generate the contextual variants +@include table-row-variant('active', $table-bg-active); +@include table-row-variant('success', $state-success-bg); +@include table-row-variant('info', $state-info-bg); +@include table-row-variant('warning', $state-warning-bg); +@include table-row-variant('danger', $state-danger-bg); + + +// Responsive tables +// +// Wrap your tables in `.table-responsive` and we'll make them mobile friendly +// by enabling horizontal scrolling. Only applies <768px. Everything above that +// will display normally. + +.table-responsive { + overflow-x: auto; + min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837) + + @media screen and (max-width: $screen-xs-max) { + width: 100%; + margin-bottom: ($line-height-computed * 0.75); + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid $table-border-color; + + // Tighten up spacing + > .table { + margin-bottom: 0; + + // Ensure the content doesn't wrap + > thead, + > tbody, + > tfoot { + > tr { + > th, + > td { + white-space: nowrap; + } + } + } + } + + // Special overrides for the bordered tables + > .table-bordered { + border: 0; + + // Nuke the appropriate borders so that the parent can handle them + > thead, + > tbody, + > tfoot { + > tr { + > th:first-child, + > td:first-child { + border-left: 0; + } + > th:last-child, + > td:last-child { + border-right: 0; + } + } + } + + // Only nuke the last row's bottom-border in `tbody` and `tfoot` since + // chances are there will be only one `tr` in a `thead` and that would + // remove the border altogether. + > tbody, + > tfoot { + > tr:last-child { + > th, + > td { + border-bottom: 0; + } + } + } + + } + } +} diff --git a/phone-book/scss/bootstrap/_theme.scss b/phone-book/scss/bootstrap/_theme.scss new file mode 100644 index 0000000..c1b0e9c --- /dev/null +++ b/phone-book/scss/bootstrap/_theme.scss @@ -0,0 +1,291 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +// +// Load core variables and mixins +// -------------------------------------------------- + +@import "variables"; +@import "mixins"; + + +// +// Buttons +// -------------------------------------------------- + +// Common styles +.btn-default, +.btn-primary, +.btn-success, +.btn-info, +.btn-warning, +.btn-danger { + text-shadow: 0 -1px 0 rgba(0,0,0,.2); + $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075); + @include box-shadow($shadow); + + // Reset the shadow + &:active, + &.active { + @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125)); + } + + &.disabled, + &[disabled], + fieldset[disabled] & { + @include box-shadow(none); + } + + .badge { + text-shadow: none; + } +} + +// Mixin for generating new styles +@mixin btn-styles($btn-color: #555) { + @include gradient-vertical($start-color: $btn-color, $end-color: darken($btn-color, 12%)); + @include reset-filter; // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620 + background-repeat: repeat-x; + border-color: darken($btn-color, 14%); + + &:hover, + &:focus { + background-color: darken($btn-color, 12%); + background-position: 0 -15px; + } + + &:active, + &.active { + background-color: darken($btn-color, 12%); + border-color: darken($btn-color, 14%); + } + + &.disabled, + &[disabled], + fieldset[disabled] & { + &, + &:hover, + &:focus, + &.focus, + &:active, + &.active { + background-color: darken($btn-color, 12%); + background-image: none; + } + } +} + +// Common styles +.btn { + // Remove the gradient for the pressed/active state + &:active, + &.active { + background-image: none; + } +} + +// Apply the mixin to the buttons +.btn-default { @include btn-styles($btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; } +.btn-primary { @include btn-styles($btn-primary-bg); } +.btn-success { @include btn-styles($btn-success-bg); } +.btn-info { @include btn-styles($btn-info-bg); } +.btn-warning { @include btn-styles($btn-warning-bg); } +.btn-danger { @include btn-styles($btn-danger-bg); } + + +// +// Images +// -------------------------------------------------- + +.thumbnail, +.img-thumbnail { + @include box-shadow(0 1px 2px rgba(0,0,0,.075)); +} + + +// +// Dropdowns +// -------------------------------------------------- + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + @include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%)); + background-color: darken($dropdown-link-hover-bg, 5%); +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%)); + background-color: darken($dropdown-link-active-bg, 5%); +} + + +// +// Navbar +// -------------------------------------------------- + +// Default navbar +.navbar-default { + @include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg); + @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered + border-radius: $navbar-border-radius; + $shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075); + @include box-shadow($shadow); + + .navbar-nav > .open > a, + .navbar-nav > .active > a { + @include gradient-vertical($start-color: darken($navbar-default-link-active-bg, 5%), $end-color: darken($navbar-default-link-active-bg, 2%)); + @include box-shadow(inset 0 3px 9px rgba(0,0,0,.075)); + } +} +.navbar-brand, +.navbar-nav > li > a { + text-shadow: 0 1px 0 rgba(255,255,255,.25); +} + +// Inverted navbar +.navbar-inverse { + @include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg); + @include reset-filter; // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257 + border-radius: $navbar-border-radius; + .navbar-nav > .open > a, + .navbar-nav > .active > a { + @include gradient-vertical($start-color: $navbar-inverse-link-active-bg, $end-color: lighten($navbar-inverse-link-active-bg, 2.5%)); + @include box-shadow(inset 0 3px 9px rgba(0,0,0,.25)); + } + + .navbar-brand, + .navbar-nav > li > a { + text-shadow: 0 -1px 0 rgba(0,0,0,.25); + } +} + +// Undo rounded corners in static and fixed navbars +.navbar-static-top, +.navbar-fixed-top, +.navbar-fixed-bottom { + border-radius: 0; +} + +// Fix active state of dropdown items in collapsed mode +@media (max-width: $grid-float-breakpoint-max) { + .navbar .navbar-nav .open .dropdown-menu > .active > a { + &, + &:hover, + &:focus { + color: #fff; + @include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%)); + } + } +} + + +// +// Alerts +// -------------------------------------------------- + +// Common styles +.alert { + text-shadow: 0 1px 0 rgba(255,255,255,.2); + $shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05); + @include box-shadow($shadow); +} + +// Mixin for generating new styles +@mixin alert-styles($color) { + @include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%)); + border-color: darken($color, 15%); +} + +// Apply the mixin to the alerts +.alert-success { @include alert-styles($alert-success-bg); } +.alert-info { @include alert-styles($alert-info-bg); } +.alert-warning { @include alert-styles($alert-warning-bg); } +.alert-danger { @include alert-styles($alert-danger-bg); } + + +// +// Progress bars +// -------------------------------------------------- + +// Give the progress background some depth +.progress { + @include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg) +} + +// Mixin for generating new styles +@mixin progress-bar-styles($color) { + @include gradient-vertical($start-color: $color, $end-color: darken($color, 10%)); +} + +// Apply the mixin to the progress bars +.progress-bar { @include progress-bar-styles($progress-bar-bg); } +.progress-bar-success { @include progress-bar-styles($progress-bar-success-bg); } +.progress-bar-info { @include progress-bar-styles($progress-bar-info-bg); } +.progress-bar-warning { @include progress-bar-styles($progress-bar-warning-bg); } +.progress-bar-danger { @include progress-bar-styles($progress-bar-danger-bg); } + +// Reset the striped class because our mixins don't do multiple gradients and +// the above custom styles override the new `.progress-bar-striped` in v3.2.0. +.progress-bar-striped { + @include gradient-striped; +} + + +// +// List groups +// -------------------------------------------------- + +.list-group { + border-radius: $border-radius-base; + @include box-shadow(0 1px 2px rgba(0,0,0,.075)); +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%); + @include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%)); + border-color: darken($list-group-active-border, 7.5%); + + .badge { + text-shadow: none; + } +} + + +// +// Panels +// -------------------------------------------------- + +// Common styles +.panel { + @include box-shadow(0 1px 2px rgba(0,0,0,.05)); +} + +// Mixin for generating new styles +@mixin panel-heading-styles($color) { + @include gradient-vertical($start-color: $color, $end-color: darken($color, 5%)); +} + +// Apply the mixin to the panel headings only +.panel-default > .panel-heading { @include panel-heading-styles($panel-default-heading-bg); } +.panel-primary > .panel-heading { @include panel-heading-styles($panel-primary-heading-bg); } +.panel-success > .panel-heading { @include panel-heading-styles($panel-success-heading-bg); } +.panel-info > .panel-heading { @include panel-heading-styles($panel-info-heading-bg); } +.panel-warning > .panel-heading { @include panel-heading-styles($panel-warning-heading-bg); } +.panel-danger > .panel-heading { @include panel-heading-styles($panel-danger-heading-bg); } + + +// +// Wells +// -------------------------------------------------- + +.well { + @include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg); + border-color: darken($well-bg, 10%); + $shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1); + @include box-shadow($shadow); +} diff --git a/phone-book/scss/bootstrap/_thumbnails.scss b/phone-book/scss/bootstrap/_thumbnails.scss new file mode 100644 index 0000000..da0e1e7 --- /dev/null +++ b/phone-book/scss/bootstrap/_thumbnails.scss @@ -0,0 +1,38 @@ +// +// Thumbnails +// -------------------------------------------------- + + +// Mixin and adjust the regular image class +.thumbnail { + display: block; + padding: $thumbnail-padding; + margin-bottom: $line-height-computed; + line-height: $line-height-base; + background-color: $thumbnail-bg; + border: 1px solid $thumbnail-border; + border-radius: $thumbnail-border-radius; + @include transition(border .2s ease-in-out); + + > img, + a > img { + @include img-responsive; + margin-left: auto; + margin-right: auto; + } + + // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active + + // Image captions + .caption { + padding: $thumbnail-caption-padding; + color: $thumbnail-caption-color; + } +} + +// Add a hover state for linked versions only +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: $link-color; +} diff --git a/phone-book/scss/bootstrap/_tooltip.scss b/phone-book/scss/bootstrap/_tooltip.scss new file mode 100644 index 0000000..f0c1658 --- /dev/null +++ b/phone-book/scss/bootstrap/_tooltip.scss @@ -0,0 +1,101 @@ +// +// Tooltips +// -------------------------------------------------- + + +// Base class +.tooltip { + position: absolute; + z-index: $zindex-tooltip; + display: block; + // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element. + // So reset our font and text properties to avoid inheriting weird values. + @include reset-text; + font-size: $font-size-small; + + @include opacity(0); + + &.in { @include opacity($tooltip-opacity); } + &.top { margin-top: -3px; padding: $tooltip-arrow-width 0; } + &.right { margin-left: 3px; padding: 0 $tooltip-arrow-width; } + &.bottom { margin-top: 3px; padding: $tooltip-arrow-width 0; } + &.left { margin-left: -3px; padding: 0 $tooltip-arrow-width; } +} + +// Wrapper for the tooltip content +.tooltip-inner { + max-width: $tooltip-max-width; + padding: 3px 8px; + color: $tooltip-color; + text-align: center; + background-color: $tooltip-bg; + border-radius: $border-radius-base; +} + +// Arrows +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1 +.tooltip { + &.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -$tooltip-arrow-width; + border-width: $tooltip-arrow-width $tooltip-arrow-width 0; + border-top-color: $tooltip-arrow-color; + } + &.top-left .tooltip-arrow { + bottom: 0; + right: $tooltip-arrow-width; + margin-bottom: -$tooltip-arrow-width; + border-width: $tooltip-arrow-width $tooltip-arrow-width 0; + border-top-color: $tooltip-arrow-color; + } + &.top-right .tooltip-arrow { + bottom: 0; + left: $tooltip-arrow-width; + margin-bottom: -$tooltip-arrow-width; + border-width: $tooltip-arrow-width $tooltip-arrow-width 0; + border-top-color: $tooltip-arrow-color; + } + &.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -$tooltip-arrow-width; + border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0; + border-right-color: $tooltip-arrow-color; + } + &.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -$tooltip-arrow-width; + border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width; + border-left-color: $tooltip-arrow-color; + } + &.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -$tooltip-arrow-width; + border-width: 0 $tooltip-arrow-width $tooltip-arrow-width; + border-bottom-color: $tooltip-arrow-color; + } + &.bottom-left .tooltip-arrow { + top: 0; + right: $tooltip-arrow-width; + margin-top: -$tooltip-arrow-width; + border-width: 0 $tooltip-arrow-width $tooltip-arrow-width; + border-bottom-color: $tooltip-arrow-color; + } + &.bottom-right .tooltip-arrow { + top: 0; + left: $tooltip-arrow-width; + margin-top: -$tooltip-arrow-width; + border-width: 0 $tooltip-arrow-width $tooltip-arrow-width; + border-bottom-color: $tooltip-arrow-color; + } +} diff --git a/phone-book/scss/bootstrap/_type.scss b/phone-book/scss/bootstrap/_type.scss new file mode 100644 index 0000000..620796a --- /dev/null +++ b/phone-book/scss/bootstrap/_type.scss @@ -0,0 +1,298 @@ +// +// Typography +// -------------------------------------------------- + + +// Headings +// ------------------------- + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + font-family: $headings-font-family; + font-weight: $headings-font-weight; + line-height: $headings-line-height; + color: $headings-color; + + small, + .small { + font-weight: normal; + line-height: 1; + color: $headings-small-color; + } +} + +h1, .h1, +h2, .h2, +h3, .h3 { + margin-top: $line-height-computed; + margin-bottom: ($line-height-computed / 2); + + small, + .small { + font-size: 65%; + } +} +h4, .h4, +h5, .h5, +h6, .h6 { + margin-top: ($line-height-computed / 2); + margin-bottom: ($line-height-computed / 2); + + small, + .small { + font-size: 75%; + } +} + +h1, .h1 { font-size: $font-size-h1; } +h2, .h2 { font-size: $font-size-h2; } +h3, .h3 { font-size: $font-size-h3; } +h4, .h4 { font-size: $font-size-h4; } +h5, .h5 { font-size: $font-size-h5; } +h6, .h6 { font-size: $font-size-h6; } + + +// Body text +// ------------------------- + +p { + margin: 0 0 ($line-height-computed / 2); +} + +.lead { + margin-bottom: $line-height-computed; + font-size: floor(($font-size-base * 1.15)); + font-weight: 300; + line-height: 1.4; + + @media (min-width: $screen-sm-min) { + font-size: ($font-size-base * 1.5); + } +} + + +// Emphasis & misc +// ------------------------- + +// Ex: (12px small font / 14px base font) * 100% = about 85% +small, +.small { + font-size: floor((100% * $font-size-small / $font-size-base)); +} + +mark, +.mark { + background-color: $state-warning-bg; + padding: .2em; +} + +// Alignment +.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; } + +// Transformation +.text-lowercase { text-transform: lowercase; } +.text-uppercase { text-transform: uppercase; } +.text-capitalize { text-transform: capitalize; } + +// Contextual colors +.text-muted { + color: $text-muted; +} + +@include text-emphasis-variant('.text-primary', $brand-primary); + +@include text-emphasis-variant('.text-success', $state-success-text); + +@include text-emphasis-variant('.text-info', $state-info-text); + +@include text-emphasis-variant('.text-warning', $state-warning-text); + +@include text-emphasis-variant('.text-danger', $state-danger-text); + +// Contextual backgrounds +// For now we'll leave these alongside the text classes until v4 when we can +// safely shift things around (per SemVer rules). +.bg-primary { + // Given the contrast here, this is the only class to have its color inverted + // automatically. + color: #fff; +} +@include bg-variant('.bg-primary', $brand-primary); + +@include bg-variant('.bg-success', $state-success-bg); + +@include bg-variant('.bg-info', $state-info-bg); + +@include bg-variant('.bg-warning', $state-warning-bg); + +@include bg-variant('.bg-danger', $state-danger-bg); + + +// Page header +// ------------------------- + +.page-header { + padding-bottom: (($line-height-computed / 2) - 1); + margin: ($line-height-computed * 2) 0 $line-height-computed; + border-bottom: 1px solid $page-header-border-color; +} + + +// Lists +// ------------------------- + +// Unordered and Ordered lists +ul, +ol { + margin-top: 0; + margin-bottom: ($line-height-computed / 2); + ul, + ol { + margin-bottom: 0; + } +} + +// List options + +// [converter] extracted from `.list-unstyled` for libsass compatibility +@mixin list-unstyled { + padding-left: 0; + list-style: none; +} +// [converter] extracted as `@mixin list-unstyled` for libsass compatibility +.list-unstyled { + @include list-unstyled; +} + + +// Inline turns list items into inline-block +.list-inline { + @include list-unstyled; + margin-left: -5px; + + > li { + display: inline-block; + padding-left: 5px; + padding-right: 5px; + } +} + +// Description Lists +dl { + margin-top: 0; // Remove browser default + margin-bottom: $line-height-computed; +} +dt, +dd { + line-height: $line-height-base; +} +dt { + font-weight: bold; +} +dd { + margin-left: 0; // Undo browser default +} + +// Horizontal description lists +// +// Defaults to being stacked without any of the below styles applied, until the +// grid breakpoint is reached (default of ~768px). + +.dl-horizontal { + dd { + @include clearfix; // Clear the floated `dt` if an empty `dd` is present + } + + @media (min-width: $dl-horizontal-breakpoint) { + dt { + float: left; + width: ($dl-horizontal-offset - 20); + clear: left; + text-align: right; + @include text-overflow; + } + dd { + margin-left: $dl-horizontal-offset; + } + } +} + + +// Misc +// ------------------------- + +// Abbreviations and acronyms +abbr[title], +// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257 +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted $abbr-border-color; +} +.initialism { + font-size: 90%; + @extend .text-uppercase; +} + +// Blockquotes +blockquote { + padding: ($line-height-computed / 2) $line-height-computed; + margin: 0 0 $line-height-computed; + font-size: $blockquote-font-size; + border-left: 5px solid $blockquote-border-color; + + p, + ul, + ol { + &:last-child { + margin-bottom: 0; + } + } + + // Note: Deprecated small and .small as of v3.1.0 + // Context: https://github.com/twbs/bootstrap/issues/11660 + footer, + small, + .small { + display: block; + font-size: 80%; // back to default font-size + line-height: $line-height-base; + color: $blockquote-small-color; + + &:before { + content: '\2014 \00A0'; // em dash, nbsp + } + } +} + +// Opposite alignment of blockquote +// +// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0. +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid $blockquote-border-color; + border-left: 0; + text-align: right; + + // Account for citation + footer, + small, + .small { + &:before { content: ''; } + &:after { + content: '\00A0 \2014'; // nbsp, em dash + } + } +} + +// Addresses +address { + margin-bottom: $line-height-computed; + font-style: normal; + line-height: $line-height-base; +} diff --git a/phone-book/scss/bootstrap/_utilities.scss b/phone-book/scss/bootstrap/_utilities.scss new file mode 100644 index 0000000..8c99c71 --- /dev/null +++ b/phone-book/scss/bootstrap/_utilities.scss @@ -0,0 +1,55 @@ +// +// Utility classes +// -------------------------------------------------- + + +// Floats +// ------------------------- + +.clearfix { + @include clearfix; +} +.center-block { + @include center-block; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} + + +// Toggling content +// ------------------------- + +// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1 +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + @include text-hide; +} + + +// Hide from screenreaders and browsers +// +// Credit: HTML5 Boilerplate + +.hidden { + display: none !important; +} + + +// For Affix plugin +// ------------------------- + +.affix { + position: fixed; +} diff --git a/phone-book/scss/bootstrap/_variables.scss b/phone-book/scss/bootstrap/_variables.scss new file mode 100644 index 0000000..e049685 --- /dev/null +++ b/phone-book/scss/bootstrap/_variables.scss @@ -0,0 +1,874 @@ +$bootstrap-sass-asset-helper: false !default; +// +// Variables +// -------------------------------------------------- + + +//== Colors +// +//## Gray and brand colors for use across Bootstrap. + +$gray-base: #000 !default; +$gray-darker: lighten($gray-base, 13.5%) !default; // #222 +$gray-dark: lighten($gray-base, 20%) !default; // #333 +$gray: lighten($gray-base, 33.5%) !default; // #555 +$gray-light: lighten($gray-base, 46.7%) !default; // #777 +$gray-lighter: lighten($gray-base, 93.5%) !default; // #eee + +$brand-primary: darken(#428bca, 6.5%) !default; // #337ab7 +$brand-success: #5cb85c !default; +$brand-info: #5bc0de !default; +$brand-warning: #f0ad4e !default; +$brand-danger: #d9534f !default; + + +//== Scaffolding +// +//## Settings for some of the most global styles. + +//** Background color for ``. +$body-bg: #fff !default; +//** Global text color on ``. +$text-color: $gray-dark !default; + +//** Global textual link color. +$link-color: $brand-primary !default; +//** Link hover color set via `darken()` function. +$link-hover-color: darken($link-color, 15%) !default; +//** Link hover decoration. +$link-hover-decoration: underline !default; + + +//== Typography +// +//## Font, line-height, and color for body text, headings, and more. + +$font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif !default; +$font-family-serif: Georgia, "Times New Roman", Times, serif !default; +//** Default monospace fonts for ``, ``, and `
      `.
      +$font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace !default;
      +$font-family-base:        $font-family-sans-serif !default;
      +
      +$font-size-base:          14px !default;
      +$font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px
      +$font-size-small:         ceil(($font-size-base * 0.85)) !default; // ~12px
      +
      +$font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px
      +$font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px
      +$font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px
      +$font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px
      +$font-size-h5:            $font-size-base !default;
      +$font-size-h6:            ceil(($font-size-base * 0.85)) !default; // ~12px
      +
      +//** Unit-less `line-height` for use in components like buttons.
      +$line-height-base:        1.428571429 !default; // 20/14
      +//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
      +$line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px
      +
      +//** By default, this inherits from the ``.
      +$headings-font-family:    inherit !default;
      +$headings-font-weight:    500 !default;
      +$headings-line-height:    1.1 !default;
      +$headings-color:          inherit !default;
      +
      +
      +//== Iconography
      +//
      +//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
      +
      +//** Load fonts from this directory.
      +
      +// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path.
      +// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths.
      +$icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/") !default;
      +
      +//** File name for all font files.
      +$icon-font-name:          "glyphicons-halflings-regular" !default;
      +//** Element ID within SVG icon file.
      +$icon-font-svg-id:        "glyphicons_halflingsregular" !default;
      +
      +
      +//== Components
      +//
      +//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
      +
      +$padding-base-vertical:     6px !default;
      +$padding-base-horizontal:   12px !default;
      +
      +$padding-large-vertical:    10px !default;
      +$padding-large-horizontal:  16px !default;
      +
      +$padding-small-vertical:    5px !default;
      +$padding-small-horizontal:  10px !default;
      +
      +$padding-xs-vertical:       1px !default;
      +$padding-xs-horizontal:     5px !default;
      +
      +$line-height-large:         1.3333333 !default; // extra decimals for Win 8.1 Chrome
      +$line-height-small:         1.5 !default;
      +
      +$border-radius-base:        4px !default;
      +$border-radius-large:       6px !default;
      +$border-radius-small:       3px !default;
      +
      +//** Global color for active items (e.g., navs or dropdowns).
      +$component-active-color:    #fff !default;
      +//** Global background color for active items (e.g., navs or dropdowns).
      +$component-active-bg:       $brand-primary !default;
      +
      +//** Width of the `border` for generating carets that indicate dropdowns.
      +$caret-width-base:          4px !default;
      +//** Carets increase slightly in size for larger components.
      +$caret-width-large:         5px !default;
      +
      +
      +//== Tables
      +//
      +//## Customizes the `.table` component with basic values, each used across all table variations.
      +
      +//** Padding for ``s and ``s.
      +$table-cell-padding:            8px !default;
      +//** Padding for cells in `.table-condensed`.
      +$table-condensed-cell-padding:  5px !default;
      +
      +//** Default background color used for all tables.
      +$table-bg:                      transparent !default;
      +//** Background color used for `.table-striped`.
      +$table-bg-accent:               #f9f9f9 !default;
      +//** Background color used for `.table-hover`.
      +$table-bg-hover:                #f5f5f5 !default;
      +$table-bg-active:               $table-bg-hover !default;
      +
      +//** Border color for table and cell borders.
      +$table-border-color:            #ddd !default;
      +
      +
      +//== Buttons
      +//
      +//## For each of Bootstrap's buttons, define text, background and border color.
      +
      +$btn-font-weight:                normal !default;
      +
      +$btn-default-color:              #333 !default;
      +$btn-default-bg:                 #fff !default;
      +$btn-default-border:             #ccc !default;
      +
      +$btn-primary-color:              #fff !default;
      +$btn-primary-bg:                 $brand-primary !default;
      +$btn-primary-border:             darken($btn-primary-bg, 5%) !default;
      +
      +$btn-success-color:              #fff !default;
      +$btn-success-bg:                 $brand-success !default;
      +$btn-success-border:             darken($btn-success-bg, 5%) !default;
      +
      +$btn-info-color:                 #fff !default;
      +$btn-info-bg:                    $brand-info !default;
      +$btn-info-border:                darken($btn-info-bg, 5%) !default;
      +
      +$btn-warning-color:              #fff !default;
      +$btn-warning-bg:                 $brand-warning !default;
      +$btn-warning-border:             darken($btn-warning-bg, 5%) !default;
      +
      +$btn-danger-color:               #fff !default;
      +$btn-danger-bg:                  $brand-danger !default;
      +$btn-danger-border:              darken($btn-danger-bg, 5%) !default;
      +
      +$btn-link-disabled-color:        $gray-light !default;
      +
      +// Allows for customizing button radius independently from global border radius
      +$btn-border-radius-base:         $border-radius-base !default;
      +$btn-border-radius-large:        $border-radius-large !default;
      +$btn-border-radius-small:        $border-radius-small !default;
      +
      +
      +//== Forms
      +//
      +//##
      +
      +//** `` background color
      +$input-bg:                       #fff !default;
      +//** `` background color
      +$input-bg-disabled:              $gray-lighter !default;
      +
      +//** Text color for ``s
      +$input-color:                    $gray !default;
      +//** `` border color
      +$input-border:                   #ccc !default;
      +
      +// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
      +//** Default `.form-control` border radius
      +// This has no effect on ``s in CSS.
      +$input-border-radius:            $border-radius-base !default;
      +//** Large `.form-control` border radius
      +$input-border-radius-large:      $border-radius-large !default;
      +//** Small `.form-control` border radius
      +$input-border-radius-small:      $border-radius-small !default;
      +
      +//** Border color for inputs on focus
      +$input-border-focus:             #66afe9 !default;
      +
      +//** Placeholder text color
      +$input-color-placeholder:        #999 !default;
      +
      +//** Default `.form-control` height
      +$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
      +//** Large `.form-control` height
      +$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
      +//** Small `.form-control` height
      +$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
      +
      +//** `.form-group` margin
      +$form-group-margin-bottom:       15px !default;
      +
      +$legend-color:                   $gray-dark !default;
      +$legend-border-color:            #e5e5e5 !default;
      +
      +//** Background color for textual input addons
      +$input-group-addon-bg:           $gray-lighter !default;
      +//** Border color for textual input addons
      +$input-group-addon-border-color: $input-border !default;
      +
      +//** Disabled cursor for form controls and buttons.
      +$cursor-disabled:                not-allowed !default;
      +
      +
      +//== Dropdowns
      +//
      +//## Dropdown menu container and contents.
      +
      +//** Background for the dropdown menu.
      +$dropdown-bg:                    #fff !default;
      +//** Dropdown menu `border-color`.
      +$dropdown-border:                rgba(0,0,0,.15) !default;
      +//** Dropdown menu `border-color` **for IE8**.
      +$dropdown-fallback-border:       #ccc !default;
      +//** Divider color for between dropdown items.
      +$dropdown-divider-bg:            #e5e5e5 !default;
      +
      +//** Dropdown link text color.
      +$dropdown-link-color:            $gray-dark !default;
      +//** Hover color for dropdown links.
      +$dropdown-link-hover-color:      darken($gray-dark, 5%) !default;
      +//** Hover background for dropdown links.
      +$dropdown-link-hover-bg:         #f5f5f5 !default;
      +
      +//** Active dropdown menu item text color.
      +$dropdown-link-active-color:     $component-active-color !default;
      +//** Active dropdown menu item background color.
      +$dropdown-link-active-bg:        $component-active-bg !default;
      +
      +//** Disabled dropdown menu item background color.
      +$dropdown-link-disabled-color:   $gray-light !default;
      +
      +//** Text color for headers within dropdown menus.
      +$dropdown-header-color:          $gray-light !default;
      +
      +//** Deprecated `$dropdown-caret-color` as of v3.1.0
      +$dropdown-caret-color:           #000 !default;
      +
      +
      +//-- Z-index master list
      +//
      +// Warning: Avoid customizing these values. They're used for a bird's eye view
      +// of components dependent on the z-axis and are designed to all work together.
      +//
      +// Note: These variables are not generated into the Customizer.
      +
      +$zindex-navbar:            1000 !default;
      +$zindex-dropdown:          1000 !default;
      +$zindex-popover:           1060 !default;
      +$zindex-tooltip:           1070 !default;
      +$zindex-navbar-fixed:      1030 !default;
      +$zindex-modal-background:  1040 !default;
      +$zindex-modal:             1050 !default;
      +
      +
      +//== Media queries breakpoints
      +//
      +//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
      +
      +// Extra small screen / phone
      +//** Deprecated `$screen-xs` as of v3.0.1
      +$screen-xs:                  480px !default;
      +//** Deprecated `$screen-xs-min` as of v3.2.0
      +$screen-xs-min:              $screen-xs !default;
      +//** Deprecated `$screen-phone` as of v3.0.1
      +$screen-phone:               $screen-xs-min !default;
      +
      +// Small screen / tablet
      +//** Deprecated `$screen-sm` as of v3.0.1
      +$screen-sm:                  768px !default;
      +$screen-sm-min:              $screen-sm !default;
      +//** Deprecated `$screen-tablet` as of v3.0.1
      +$screen-tablet:              $screen-sm-min !default;
      +
      +// Medium screen / desktop
      +//** Deprecated `$screen-md` as of v3.0.1
      +$screen-md:                  992px !default;
      +$screen-md-min:              $screen-md !default;
      +//** Deprecated `$screen-desktop` as of v3.0.1
      +$screen-desktop:             $screen-md-min !default;
      +
      +// Large screen / wide desktop
      +//** Deprecated `$screen-lg` as of v3.0.1
      +$screen-lg:                  1200px !default;
      +$screen-lg-min:              $screen-lg !default;
      +//** Deprecated `$screen-lg-desktop` as of v3.0.1
      +$screen-lg-desktop:          $screen-lg-min !default;
      +
      +// So media queries don't overlap when required, provide a maximum
      +$screen-xs-max:              ($screen-sm-min - 1) !default;
      +$screen-sm-max:              ($screen-md-min - 1) !default;
      +$screen-md-max:              ($screen-lg-min - 1) !default;
      +
      +
      +//== Grid system
      +//
      +//## Define your custom responsive grid.
      +
      +//** Number of columns in the grid.
      +$grid-columns:              12 !default;
      +//** Padding between columns. Gets divided in half for the left and right.
      +$grid-gutter-width:         30px !default;
      +// Navbar collapse
      +//** Point at which the navbar becomes uncollapsed.
      +$grid-float-breakpoint:     $screen-sm-min !default;
      +//** Point at which the navbar begins collapsing.
      +$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
      +
      +
      +//== Container sizes
      +//
      +//## Define the maximum width of `.container` for different screen sizes.
      +
      +// Small screen / tablet
      +$container-tablet:             (720px + $grid-gutter-width) !default;
      +//** For `$screen-sm-min` and up.
      +$container-sm:                 $container-tablet !default;
      +
      +// Medium screen / desktop
      +$container-desktop:            (940px + $grid-gutter-width) !default;
      +//** For `$screen-md-min` and up.
      +$container-md:                 $container-desktop !default;
      +
      +// Large screen / wide desktop
      +$container-large-desktop:      (1140px + $grid-gutter-width) !default;
      +//** For `$screen-lg-min` and up.
      +$container-lg:                 $container-large-desktop !default;
      +
      +
      +//== Navbar
      +//
      +//##
      +
      +// Basics of a navbar
      +$navbar-height:                    50px !default;
      +$navbar-margin-bottom:             $line-height-computed !default;
      +$navbar-border-radius:             $border-radius-base !default;
      +$navbar-padding-horizontal:        floor(($grid-gutter-width / 2)) !default;
      +$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2) !default;
      +$navbar-collapse-max-height:       340px !default;
      +
      +$navbar-default-color:             #777 !default;
      +$navbar-default-bg:                #f8f8f8 !default;
      +$navbar-default-border:            darken($navbar-default-bg, 6.5%) !default;
      +
      +// Navbar links
      +$navbar-default-link-color:                #777 !default;
      +$navbar-default-link-hover-color:          #333 !default;
      +$navbar-default-link-hover-bg:             transparent !default;
      +$navbar-default-link-active-color:         #555 !default;
      +$navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%) !default;
      +$navbar-default-link-disabled-color:       #ccc !default;
      +$navbar-default-link-disabled-bg:          transparent !default;
      +
      +// Navbar brand label
      +$navbar-default-brand-color:               $navbar-default-link-color !default;
      +$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;
      +$navbar-default-brand-hover-bg:            transparent !default;
      +
      +// Navbar toggle
      +$navbar-default-toggle-hover-bg:           #ddd !default;
      +$navbar-default-toggle-icon-bar-bg:        #888 !default;
      +$navbar-default-toggle-border-color:       #ddd !default;
      +
      +
      +//=== Inverted navbar
      +// Reset inverted navbar basics
      +$navbar-inverse-color:                      lighten($gray-light, 15%) !default;
      +$navbar-inverse-bg:                         #222 !default;
      +$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;
      +
      +// Inverted navbar links
      +$navbar-inverse-link-color:                 lighten($gray-light, 15%) !default;
      +$navbar-inverse-link-hover-color:           #fff !default;
      +$navbar-inverse-link-hover-bg:              transparent !default;
      +$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;
      +$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;
      +$navbar-inverse-link-disabled-color:        #444 !default;
      +$navbar-inverse-link-disabled-bg:           transparent !default;
      +
      +// Inverted navbar brand label
      +$navbar-inverse-brand-color:                $navbar-inverse-link-color !default;
      +$navbar-inverse-brand-hover-color:          #fff !default;
      +$navbar-inverse-brand-hover-bg:             transparent !default;
      +
      +// Inverted navbar toggle
      +$navbar-inverse-toggle-hover-bg:            #333 !default;
      +$navbar-inverse-toggle-icon-bar-bg:         #fff !default;
      +$navbar-inverse-toggle-border-color:        #333 !default;
      +
      +
      +//== Navs
      +//
      +//##
      +
      +//=== Shared nav styles
      +$nav-link-padding:                          10px 15px !default;
      +$nav-link-hover-bg:                         $gray-lighter !default;
      +
      +$nav-disabled-link-color:                   $gray-light !default;
      +$nav-disabled-link-hover-color:             $gray-light !default;
      +
      +//== Tabs
      +$nav-tabs-border-color:                     #ddd !default;
      +
      +$nav-tabs-link-hover-border-color:          $gray-lighter !default;
      +
      +$nav-tabs-active-link-hover-bg:             $body-bg !default;
      +$nav-tabs-active-link-hover-color:          $gray !default;
      +$nav-tabs-active-link-hover-border-color:   #ddd !default;
      +
      +$nav-tabs-justified-link-border-color:            #ddd !default;
      +$nav-tabs-justified-active-link-border-color:     $body-bg !default;
      +
      +//== Pills
      +$nav-pills-border-radius:                   $border-radius-base !default;
      +$nav-pills-active-link-hover-bg:            $component-active-bg !default;
      +$nav-pills-active-link-hover-color:         $component-active-color !default;
      +
      +
      +//== Pagination
      +//
      +//##
      +
      +$pagination-color:                     $link-color !default;
      +$pagination-bg:                        #fff !default;
      +$pagination-border:                    #ddd !default;
      +
      +$pagination-hover-color:               $link-hover-color !default;
      +$pagination-hover-bg:                  $gray-lighter !default;
      +$pagination-hover-border:              #ddd !default;
      +
      +$pagination-active-color:              #fff !default;
      +$pagination-active-bg:                 $brand-primary !default;
      +$pagination-active-border:             $brand-primary !default;
      +
      +$pagination-disabled-color:            $gray-light !default;
      +$pagination-disabled-bg:               #fff !default;
      +$pagination-disabled-border:           #ddd !default;
      +
      +
      +//== Pager
      +//
      +//##
      +
      +$pager-bg:                             $pagination-bg !default;
      +$pager-border:                         $pagination-border !default;
      +$pager-border-radius:                  15px !default;
      +
      +$pager-hover-bg:                       $pagination-hover-bg !default;
      +
      +$pager-active-bg:                      $pagination-active-bg !default;
      +$pager-active-color:                   $pagination-active-color !default;
      +
      +$pager-disabled-color:                 $pagination-disabled-color !default;
      +
      +
      +//== Jumbotron
      +//
      +//##
      +
      +$jumbotron-padding:              30px !default;
      +$jumbotron-color:                inherit !default;
      +$jumbotron-bg:                   $gray-lighter !default;
      +$jumbotron-heading-color:        inherit !default;
      +$jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;
      +$jumbotron-heading-font-size:    ceil(($font-size-base * 4.5)) !default;
      +
      +
      +//== Form states and alerts
      +//
      +//## Define colors for form feedback states and, by default, alerts.
      +
      +$state-success-text:             #3c763d !default;
      +$state-success-bg:               #dff0d8 !default;
      +$state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;
      +
      +$state-info-text:                #31708f !default;
      +$state-info-bg:                  #d9edf7 !default;
      +$state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;
      +
      +$state-warning-text:             #8a6d3b !default;
      +$state-warning-bg:               #fcf8e3 !default;
      +$state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;
      +
      +$state-danger-text:              #a94442 !default;
      +$state-danger-bg:                #f2dede !default;
      +$state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;
      +
      +
      +//== Tooltips
      +//
      +//##
      +
      +//** Tooltip max width
      +$tooltip-max-width:           200px !default;
      +//** Tooltip text color
      +$tooltip-color:               #fff !default;
      +//** Tooltip background color
      +$tooltip-bg:                  #000 !default;
      +$tooltip-opacity:             .9 !default;
      +
      +//** Tooltip arrow width
      +$tooltip-arrow-width:         5px !default;
      +//** Tooltip arrow color
      +$tooltip-arrow-color:         $tooltip-bg !default;
      +
      +
      +//== Popovers
      +//
      +//##
      +
      +//** Popover body background color
      +$popover-bg:                          #fff !default;
      +//** Popover maximum width
      +$popover-max-width:                   276px !default;
      +//** Popover border color
      +$popover-border-color:                rgba(0,0,0,.2) !default;
      +//** Popover fallback border color
      +$popover-fallback-border-color:       #ccc !default;
      +
      +//** Popover title background color
      +$popover-title-bg:                    darken($popover-bg, 3%) !default;
      +
      +//** Popover arrow width
      +$popover-arrow-width:                 10px !default;
      +//** Popover arrow color
      +$popover-arrow-color:                 $popover-bg !default;
      +
      +//** Popover outer arrow width
      +$popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;
      +//** Popover outer arrow color
      +$popover-arrow-outer-color:           fade_in($popover-border-color, 0.05) !default;
      +//** Popover outer arrow fallback color
      +$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;
      +
      +
      +//== Labels
      +//
      +//##
      +
      +//** Default label background color
      +$label-default-bg:            $gray-light !default;
      +//** Primary label background color
      +$label-primary-bg:            $brand-primary !default;
      +//** Success label background color
      +$label-success-bg:            $brand-success !default;
      +//** Info label background color
      +$label-info-bg:               $brand-info !default;
      +//** Warning label background color
      +$label-warning-bg:            $brand-warning !default;
      +//** Danger label background color
      +$label-danger-bg:             $brand-danger !default;
      +
      +//** Default label text color
      +$label-color:                 #fff !default;
      +//** Default text color of a linked label
      +$label-link-hover-color:      #fff !default;
      +
      +
      +//== Modals
      +//
      +//##
      +
      +//** Padding applied to the modal body
      +$modal-inner-padding:         15px !default;
      +
      +//** Padding applied to the modal title
      +$modal-title-padding:         15px !default;
      +//** Modal title line-height
      +$modal-title-line-height:     $line-height-base !default;
      +
      +//** Background color of modal content area
      +$modal-content-bg:                             #fff !default;
      +//** Modal content border color
      +$modal-content-border-color:                   rgba(0,0,0,.2) !default;
      +//** Modal content border color **for IE8**
      +$modal-content-fallback-border-color:          #999 !default;
      +
      +//** Modal backdrop background color
      +$modal-backdrop-bg:           #000 !default;
      +//** Modal backdrop opacity
      +$modal-backdrop-opacity:      .5 !default;
      +//** Modal header border color
      +$modal-header-border-color:   #e5e5e5 !default;
      +//** Modal footer border color
      +$modal-footer-border-color:   $modal-header-border-color !default;
      +
      +$modal-lg:                    900px !default;
      +$modal-md:                    600px !default;
      +$modal-sm:                    300px !default;
      +
      +
      +//== Alerts
      +//
      +//## Define alert colors, border radius, and padding.
      +
      +$alert-padding:               15px !default;
      +$alert-border-radius:         $border-radius-base !default;
      +$alert-link-font-weight:      bold !default;
      +
      +$alert-success-bg:            $state-success-bg !default;
      +$alert-success-text:          $state-success-text !default;
      +$alert-success-border:        $state-success-border !default;
      +
      +$alert-info-bg:               $state-info-bg !default;
      +$alert-info-text:             $state-info-text !default;
      +$alert-info-border:           $state-info-border !default;
      +
      +$alert-warning-bg:            $state-warning-bg !default;
      +$alert-warning-text:          $state-warning-text !default;
      +$alert-warning-border:        $state-warning-border !default;
      +
      +$alert-danger-bg:             $state-danger-bg !default;
      +$alert-danger-text:           $state-danger-text !default;
      +$alert-danger-border:         $state-danger-border !default;
      +
      +
      +//== Progress bars
      +//
      +//##
      +
      +//** Background color of the whole progress component
      +$progress-bg:                 #f5f5f5 !default;
      +//** Progress bar text color
      +$progress-bar-color:          #fff !default;
      +//** Variable for setting rounded corners on progress bar.
      +$progress-border-radius:      $border-radius-base !default;
      +
      +//** Default progress bar color
      +$progress-bar-bg:             $brand-primary !default;
      +//** Success progress bar color
      +$progress-bar-success-bg:     $brand-success !default;
      +//** Warning progress bar color
      +$progress-bar-warning-bg:     $brand-warning !default;
      +//** Danger progress bar color
      +$progress-bar-danger-bg:      $brand-danger !default;
      +//** Info progress bar color
      +$progress-bar-info-bg:        $brand-info !default;
      +
      +
      +//== List group
      +//
      +//##
      +
      +//** Background color on `.list-group-item`
      +$list-group-bg:                 #fff !default;
      +//** `.list-group-item` border color
      +$list-group-border:             #ddd !default;
      +//** List group border radius
      +$list-group-border-radius:      $border-radius-base !default;
      +
      +//** Background color of single list items on hover
      +$list-group-hover-bg:           #f5f5f5 !default;
      +//** Text color of active list items
      +$list-group-active-color:       $component-active-color !default;
      +//** Background color of active list items
      +$list-group-active-bg:          $component-active-bg !default;
      +//** Border color of active list elements
      +$list-group-active-border:      $list-group-active-bg !default;
      +//** Text color for content within active list items
      +$list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;
      +
      +//** Text color of disabled list items
      +$list-group-disabled-color:      $gray-light !default;
      +//** Background color of disabled list items
      +$list-group-disabled-bg:         $gray-lighter !default;
      +//** Text color for content within disabled list items
      +$list-group-disabled-text-color: $list-group-disabled-color !default;
      +
      +$list-group-link-color:         #555 !default;
      +$list-group-link-hover-color:   $list-group-link-color !default;
      +$list-group-link-heading-color: #333 !default;
      +
      +
      +//== Panels
      +//
      +//##
      +
      +$panel-bg:                    #fff !default;
      +$panel-body-padding:          15px !default;
      +$panel-heading-padding:       10px 15px !default;
      +$panel-footer-padding:        $panel-heading-padding !default;
      +$panel-border-radius:         $border-radius-base !default;
      +
      +//** Border color for elements within panels
      +$panel-inner-border:          #ddd !default;
      +$panel-footer-bg:             #f5f5f5 !default;
      +
      +$panel-default-text:          $gray-dark !default;
      +$panel-default-border:        #ddd !default;
      +$panel-default-heading-bg:    #f5f5f5 !default;
      +
      +$panel-primary-text:          #fff !default;
      +$panel-primary-border:        $brand-primary !default;
      +$panel-primary-heading-bg:    $brand-primary !default;
      +
      +$panel-success-text:          $state-success-text !default;
      +$panel-success-border:        $state-success-border !default;
      +$panel-success-heading-bg:    $state-success-bg !default;
      +
      +$panel-info-text:             $state-info-text !default;
      +$panel-info-border:           $state-info-border !default;
      +$panel-info-heading-bg:       $state-info-bg !default;
      +
      +$panel-warning-text:          $state-warning-text !default;
      +$panel-warning-border:        $state-warning-border !default;
      +$panel-warning-heading-bg:    $state-warning-bg !default;
      +
      +$panel-danger-text:           $state-danger-text !default;
      +$panel-danger-border:         $state-danger-border !default;
      +$panel-danger-heading-bg:     $state-danger-bg !default;
      +
      +
      +//== Thumbnails
      +//
      +//##
      +
      +//** Padding around the thumbnail image
      +$thumbnail-padding:           4px !default;
      +//** Thumbnail background color
      +$thumbnail-bg:                $body-bg !default;
      +//** Thumbnail border color
      +$thumbnail-border:            #ddd !default;
      +//** Thumbnail border radius
      +$thumbnail-border-radius:     $border-radius-base !default;
      +
      +//** Custom text color for thumbnail captions
      +$thumbnail-caption-color:     $text-color !default;
      +//** Padding around the thumbnail caption
      +$thumbnail-caption-padding:   9px !default;
      +
      +
      +//== Wells
      +//
      +//##
      +
      +$well-bg:                     #f5f5f5 !default;
      +$well-border:                 darken($well-bg, 7%) !default;
      +
      +
      +//== Badges
      +//
      +//##
      +
      +$badge-color:                 #fff !default;
      +//** Linked badge text color on hover
      +$badge-link-hover-color:      #fff !default;
      +$badge-bg:                    $gray-light !default;
      +
      +//** Badge text color in active nav link
      +$badge-active-color:          $link-color !default;
      +//** Badge background color in active nav link
      +$badge-active-bg:             #fff !default;
      +
      +$badge-font-weight:           bold !default;
      +$badge-line-height:           1 !default;
      +$badge-border-radius:         10px !default;
      +
      +
      +//== Breadcrumbs
      +//
      +//##
      +
      +$breadcrumb-padding-vertical:   8px !default;
      +$breadcrumb-padding-horizontal: 15px !default;
      +//** Breadcrumb background color
      +$breadcrumb-bg:                 #f5f5f5 !default;
      +//** Breadcrumb text color
      +$breadcrumb-color:              #ccc !default;
      +//** Text color of current page in the breadcrumb
      +$breadcrumb-active-color:       $gray-light !default;
      +//** Textual separator for between breadcrumb elements
      +$breadcrumb-separator:          "/" !default;
      +
      +
      +//== Carousel
      +//
      +//##
      +
      +$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;
      +
      +$carousel-control-color:                      #fff !default;
      +$carousel-control-width:                      15% !default;
      +$carousel-control-opacity:                    .5 !default;
      +$carousel-control-font-size:                  20px !default;
      +
      +$carousel-indicator-active-bg:                #fff !default;
      +$carousel-indicator-border-color:             #fff !default;
      +
      +$carousel-caption-color:                      #fff !default;
      +
      +
      +//== Close
      +//
      +//##
      +
      +$close-font-weight:           bold !default;
      +$close-color:                 #000 !default;
      +$close-text-shadow:           0 1px 0 #fff !default;
      +
      +
      +//== Code
      +//
      +//##
      +
      +$code-color:                  #c7254e !default;
      +$code-bg:                     #f9f2f4 !default;
      +
      +$kbd-color:                   #fff !default;
      +$kbd-bg:                      #333 !default;
      +
      +$pre-bg:                      #f5f5f5 !default;
      +$pre-color:                   $gray-dark !default;
      +$pre-border-color:            #ccc !default;
      +$pre-scrollable-max-height:   340px !default;
      +
      +
      +//== Type
      +//
      +//##
      +
      +//** Horizontal offset for forms and lists.
      +$component-offset-horizontal: 180px !default;
      +//** Text muted color
      +$text-muted:                  $gray-light !default;
      +//** Abbreviations and acronyms border color
      +$abbr-border-color:           $gray-light !default;
      +//** Headings small color
      +$headings-small-color:        $gray-light !default;
      +//** Blockquote small color
      +$blockquote-small-color:      $gray-light !default;
      +//** Blockquote font size
      +$blockquote-font-size:        ($font-size-base * 1.25) !default;
      +//** Blockquote border color
      +$blockquote-border-color:     $gray-lighter !default;
      +//** Page header border color
      +$page-header-border-color:    $gray-lighter !default;
      +//** Width of horizontal description list titles
      +$dl-horizontal-offset:        $component-offset-horizontal !default;
      +//** Point at which .dl-horizontal becomes horizontal
      +$dl-horizontal-breakpoint:    $grid-float-breakpoint !default;
      +//** Horizontal line color.
      +$hr-border:                   $gray-lighter !default;
      diff --git a/phone-book/scss/bootstrap/_wells.scss b/phone-book/scss/bootstrap/_wells.scss
      new file mode 100644
      index 0000000..b865711
      --- /dev/null
      +++ b/phone-book/scss/bootstrap/_wells.scss
      @@ -0,0 +1,29 @@
      +//
      +// Wells
      +// --------------------------------------------------
      +
      +
      +// Base class
      +.well {
      +  min-height: 20px;
      +  padding: 19px;
      +  margin-bottom: 20px;
      +  background-color: $well-bg;
      +  border: 1px solid $well-border;
      +  border-radius: $border-radius-base;
      +  @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
      +  blockquote {
      +    border-color: #ddd;
      +    border-color: rgba(0,0,0,.15);
      +  }
      +}
      +
      +// Sizes
      +.well-lg {
      +  padding: 24px;
      +  border-radius: $border-radius-large;
      +}
      +.well-sm {
      +  padding: 9px;
      +  border-radius: $border-radius-small;
      +}
      diff --git a/phone-book/scss/bootstrap/mixins/_alerts.scss b/phone-book/scss/bootstrap/mixins/_alerts.scss
      new file mode 100644
      index 0000000..3faf0b5
      --- /dev/null
      +++ b/phone-book/scss/bootstrap/mixins/_alerts.scss
      @@ -0,0 +1,14 @@
      +// Alerts
      +
      +@mixin alert-variant($background, $border, $text-color) {
      +  background-color: $background;
      +  border-color: $border;
      +  color: $text-color;
      +
      +  hr {
      +    border-top-color: darken($border, 5%);
      +  }
      +  .alert-link {
      +    color: darken($text-color, 10%);
      +  }
      +}
      diff --git a/phone-book/scss/bootstrap/mixins/_background-variant.scss b/phone-book/scss/bootstrap/mixins/_background-variant.scss
      new file mode 100644
      index 0000000..4c7769e
      --- /dev/null
      +++ b/phone-book/scss/bootstrap/mixins/_background-variant.scss
      @@ -0,0 +1,12 @@
      +// Contextual backgrounds
      +
      +// [converter] $parent hack
      +@mixin bg-variant($parent, $color) {
      +  #{$parent} {
      +    background-color: $color;
      +  }
      +  a#{$parent}:hover,
      +  a#{$parent}:focus {
      +    background-color: darken($color, 10%);
      +  }
      +}
      diff --git a/phone-book/scss/bootstrap/mixins/_border-radius.scss b/phone-book/scss/bootstrap/mixins/_border-radius.scss
      new file mode 100644
      index 0000000..ce19499
      --- /dev/null
      +++ b/phone-book/scss/bootstrap/mixins/_border-radius.scss
      @@ -0,0 +1,18 @@
      +// Single side border-radius
      +
      +@mixin border-top-radius($radius) {
      +  border-top-right-radius: $radius;
      +   border-top-left-radius: $radius;
      +}
      +@mixin border-right-radius($radius) {
      +  border-bottom-right-radius: $radius;
      +     border-top-right-radius: $radius;
      +}
      +@mixin border-bottom-radius($radius) {
      +  border-bottom-right-radius: $radius;
      +   border-bottom-left-radius: $radius;
      +}
      +@mixin border-left-radius($radius) {
      +  border-bottom-left-radius: $radius;
      +     border-top-left-radius: $radius;
      +}
      diff --git a/phone-book/scss/bootstrap/mixins/_buttons.scss b/phone-book/scss/bootstrap/mixins/_buttons.scss
      new file mode 100644
      index 0000000..b93f84b
      --- /dev/null
      +++ b/phone-book/scss/bootstrap/mixins/_buttons.scss
      @@ -0,0 +1,65 @@
      +// Button variants
      +//
      +// Easily pump out default styles, as well as :hover, :focus, :active,
      +// and disabled options for all buttons
      +
      +@mixin button-variant($color, $background, $border) {
      +  color: $color;
      +  background-color: $background;
      +  border-color: $border;
      +
      +  &:focus,
      +  &.focus {
      +    color: $color;
      +    background-color: darken($background, 10%);
      +        border-color: darken($border, 25%);
      +  }
      +  &:hover {
      +    color: $color;
      +    background-color: darken($background, 10%);
      +        border-color: darken($border, 12%);
      +  }
      +  &:active,
      +  &.active,
      +  .open > &.dropdown-toggle {
      +    color: $color;
      +    background-color: darken($background, 10%);
      +        border-color: darken($border, 12%);
      +
      +    &:hover,
      +    &:focus,
      +    &.focus {
      +      color: $color;
      +      background-color: darken($background, 17%);
      +          border-color: darken($border, 25%);
      +    }
      +  }
      +  &:active,
      +  &.active,
      +  .open > &.dropdown-toggle {
      +    background-image: none;
      +  }
      +  &.disabled,
      +  &[disabled],
      +  fieldset[disabled] & {
      +    &:hover,
      +    &:focus,
      +    &.focus {
      +      background-color: $background;
      +          border-color: $border;
      +    }
      +  }
      +
      +  .badge {
      +    color: $background;
      +    background-color: $color;
      +  }
      +}
      +
      +// Button sizes
      +@mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
      +  padding: $padding-vertical $padding-horizontal;
      +  font-size: $font-size;
      +  line-height: $line-height;
      +  border-radius: $border-radius;
      +}
      diff --git a/phone-book/scss/bootstrap/mixins/_center-block.scss b/phone-book/scss/bootstrap/mixins/_center-block.scss
      new file mode 100644
      index 0000000..e06fb5e
      --- /dev/null
      +++ b/phone-book/scss/bootstrap/mixins/_center-block.scss
      @@ -0,0 +1,7 @@
      +// Center-align a block level element
      +
      +@mixin center-block() {
      +  display: block;
      +  margin-left: auto;
      +  margin-right: auto;
      +}
      diff --git a/phone-book/scss/bootstrap/mixins/_clearfix.scss b/phone-book/scss/bootstrap/mixins/_clearfix.scss
      new file mode 100644
      index 0000000..dc3e2ab
      --- /dev/null
      +++ b/phone-book/scss/bootstrap/mixins/_clearfix.scss
      @@ -0,0 +1,22 @@
      +// Clearfix
      +//
      +// For modern browsers
      +// 1. The space content is one way to avoid an Opera bug when the
      +//    contenteditable attribute is included anywhere else in the document.
      +//    Otherwise it causes space to appear at the top and bottom of elements
      +//    that are clearfixed.
      +// 2. The use of `table` rather than `block` is only necessary if using
      +//    `:before` to contain the top-margins of child elements.
      +//
      +// Source: http://nicolasgallagher.com/micro-clearfix-hack/
      +
      +@mixin clearfix() {
      +  &:before,
      +  &:after {
      +    content: " "; // 1
      +    display: table; // 2
      +  }
      +  &:after {
      +    clear: both;
      +  }
      +}
      diff --git a/phone-book/scss/bootstrap/mixins/_forms.scss b/phone-book/scss/bootstrap/mixins/_forms.scss
      new file mode 100644
      index 0000000..277aa5f
      --- /dev/null
      +++ b/phone-book/scss/bootstrap/mixins/_forms.scss
      @@ -0,0 +1,88 @@
      +// Form validation states
      +//
      +// Used in forms.less to generate the form validation CSS for warnings, errors,
      +// and successes.
      +
      +@mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {
      +  // Color the label and help text
      +  .help-block,
      +  .control-label,
      +  .radio,
      +  .checkbox,
      +  .radio-inline,
      +  .checkbox-inline,
      +  &.radio label,
      +  &.checkbox label,
      +  &.radio-inline label,
      +  &.checkbox-inline label  {
      +    color: $text-color;
      +  }
      +  // Set the border and box shadow on specific inputs to match
      +  .form-control {
      +    border-color: $border-color;
      +    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
      +    &:focus {
      +      border-color: darken($border-color, 10%);
      +      $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
      +      @include box-shadow($shadow);
      +    }
      +  }
      +  // Set validation states also for addons
      +  .input-group-addon {
      +    color: $text-color;
      +    border-color: $border-color;
      +    background-color: $background-color;
      +  }
      +  // Optional feedback icon
      +  .form-control-feedback {
      +    color: $text-color;
      +  }
      +}
      +
      +
      +// Form control focus state
      +//
      +// Generate a customized focus state and for any input with the specified color,
      +// which defaults to the `$input-border-focus` variable.
      +//
      +// We highly encourage you to not customize the default value, but instead use
      +// this to tweak colors on an as-needed basis. This aesthetic change is based on
      +// WebKit's default styles, but applicable to a wider range of browsers. Its
      +// usability and accessibility should be taken into account with any change.
      +//
      +// Example usage: change the default blue border and shadow to white for better
      +// contrast against a dark gray background.
      +@mixin form-control-focus($color: $input-border-focus) {
      +  $color-rgba: rgba(red($color), green($color), blue($color), .6);
      +  &:focus {
      +    border-color: $color;
      +    outline: 0;
      +    @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba);
      +  }
      +}
      +
      +// Form control sizing
      +//
      +// Relative text size, padding, and border-radii changes for form controls. For
      +// horizontal sizing, wrap controls in the predefined grid classes. `
      +          
      + `; + main += this.createTable(); + return main += `` + } + + findUserByEmail(param) { + let finedUser; + this.users.forEach(elem => { + if (elem.email === param) { + finedUser = elem; + } + }) + return finedUser + } + + events() { + this.nameHeader = document.querySelector('.header0'); + this.lastNameHeader = document.querySelector('.header1'); + this.emailHeader = document.querySelector('.header2'); + this.tbody = document.querySelector('tbody'); + this.search = document.getElementById('search'); + + this.emailHeader.addEventListener('click', e => { + this.users = this.sortUsers('email'); + this.tbody.innerHTML = this.createTableBody(); + }); + + this.tbody.addEventListener('click', e => { + if (e.target.tagName == "TD") { + this.row = e.target.parentElement; + } else { + this.row = e.target; + } + this.email = this.row.querySelector('.email').textContent; + this.user = this.findUserByEmail(this.email); + let myUser = new User(this.user); + myUser.render(); + }) + } + + request() { + const url = 'https://easycode-js.herokuapp.com/nastya/users'; + fetch(url) + .then(data => data.json()) + .then(data => { + this.users = data; + this.render(); + }) + } + + render() { + this.app = document.getElementById('app'); + if (this.app) { + this.app.innerHTML = this.createHeader() + this.createMain(); + this.events(); + } else { + this.app = document.createElement('div'); + document.body.prepend(this.app); + this.app.id = 'app'; + this.app.innerHTML = this.createHeader() + this.createMain(); + this.events(); + } + } +} + +let myTelephoneBook = new App(); +myTelephoneBook.request();