├── .gitignore ├── LICENCE ├── README.md ├── bin └── ffmpeg ├── deploy.js ├── img ├── demo.png ├── logo.png ├── switch.png └── transciber.png ├── index.html ├── index.js ├── index_test.js ├── nw.icns ├── package.json ├── public └── css │ └── bootstrap.css ├── stt ├── index.js ├── watson.js └── watson_test.js ├── tmp ├── .keep ├── audio │ ├── .keep │ └── keep.md ├── keep.md └── text │ ├── .keep │ └── keep.md ├── transcriber.js └── video_to_audio_processing ├── video_to_audio.js └── video_to_audio_test.js /.gitignore: -------------------------------------------------------------------------------- 1 | #ignore config file 2 | config.json 3 | 4 | #heroku enviroment variabels 5 | .env 6 | 7 | #ignore markdown,so can make notes 8 | *.markdown 9 | 10 | #ignore all video files 11 | *.wmv 12 | *.mpg 13 | *.mpeg 14 | *.mp4 15 | *.mov 16 | *.flv 17 | *.avi 18 | *.ogv 19 | *.ogg 20 | *.webm 21 | 22 | #ignore audio file 23 | *.wav 24 | 25 | #ingore subtitles files 26 | *.srt 27 | *.sbv 28 | 29 | 30 | # Logs 31 | logs 32 | *.log 33 | 34 | # Runtime data 35 | pids 36 | *.pid 37 | *.seed 38 | 39 | # Directory for instrumented libs generated by jscoverage/JSCover 40 | lib-cov 41 | 42 | # Coverage directory used by tools like istanbul 43 | coverage 44 | 45 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 46 | .grunt 47 | 48 | # node-waf configuration 49 | .lock-wscript 50 | 51 | # Compiled binary addons (http://nodejs.org/api/addons.html) 52 | build/Release 53 | 54 | # Dependency directory 55 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git 56 | node_modules 57 | 58 | # ignoring watson api keys 59 | wttskeys.json 60 | 61 | #exclude demo media 62 | demo_media 63 | 64 | # transcription files 65 | *.txt 66 | 67 | # ignore build folder 68 | build 69 | 70 | cache 71 | -------------------------------------------------------------------------------- /LICENCE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016, Vox Media, Inc. & Pietro Passarelli. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | * Neither the name of the {organization} nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Lightweight Speech to text desktop app for OSX Using IBM Watson API 2 | 3 | This app was an initial prototype to test the quality of IBM STT, and is no longer activly supported I am now working on a more full fledge version at https://github.com/OpenNewsLabs/autoEdit_2 ( http://www.autoedit.io ). 4 | 5 | ## IBM Speech to text API 6 | 7 | To use this app you need to get IBM Watson API keys for their speech to text service, by making an account with [Bluemix](https://console.ng.bluemix.net/) 8 | 9 | ## Usage - Development 10 | If you clone the repo you can start the app with `npm start`. 11 | 12 | ## Usage - User 13 | Or you can get the latest release packaged and ready for use [here](https://github.com/voxmedia/Transcriber/releases) 14 | 15 | This is a Tray Menu app. 16 | 17 | ![Transcriber menu ](./img/transciber.png) 18 | 19 | First you `Select Media`, audio or video you'd like to transcribe. 20 | 21 | Notifications show when a transcription as started and when it's finished. 22 | 23 | On completion a editable text area shows you the transcription. 24 | 25 | ![demo](./img/demo.png) 26 | 27 | By default the transcription is also saved to clipboard. 28 | 29 | You can disable `Autosave to clipboard` if working on text editing or making use of the system clipboard for some other program to avoid it overwriting something else you might be doing with it. 30 | 31 | ## Setting IBM Watson API keys 32 | 33 | First time you start the application you'd be prompt to set the API keys. 34 | 35 | Should you need to change those you can use shortcut `cmd + shift + a`. 36 | 37 | These are saved inside the app as a json file `wttskeys.json` at the root of the application. 38 | 39 | Which is in the `.gitignore` so that it doesn't accidentally gets added to git by mistake, when in development mode. 40 | 41 | 42 | ## Overview of project 43 | 44 | - Once you select a video, the app converts it into audio and sends it to the IBM Speech to text API. 45 | - When the transcription comes back it's copied to clipboard, unless you un-tick the option in the menu. 46 | - Paste the transcription wherever you want and take it from there. 47 | 48 | ## Technical overview 49 | 50 | ### Convert video to audio 51 | The `video_to_audio` module converts video or audio into IBM audio specs. Initially modified from [Sam Lavine](https://github.com/antiboredom)'s [gist](https://gist.github.com/pietrop/5008653567df73d813e525c6b89b23b6). 52 | 53 | Audio files are saved in `./tmp/audio` folder. 54 | 55 | 56 | 57 | ### IBM Speech to text API 58 | The `stt` folder contains the module to interact with the IBM Speech to text API. 59 | If you want to dive more into this [their documentation](https://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/speech-to-text/api/v1/#api_explorer) on how to interact with the API is pretty good. 60 | 61 | ### Transcribing video 62 | `transcribe.js` requires both modules described above and brings it all together. 63 | 64 | Converts audio into video, and then sends it to Watson for transcriptions. Transcriptions are saved onto a text file in `./tmp/text` folder. 65 | 66 | module returns the path to the text file. 67 | 68 | `index.js` abstracts `transcribe.js` in case the interface needs to change at a later stage. 69 | 70 | ### NWJS 71 | `indext.html` contains the Implementation of the NWJS app. 72 | Adding Menu Tray to the application. 73 | 74 | See comments in the code [``./index.html`](./index.html) and [nwjs wiki](https://github.com/nwjs/nw.js/wiki) as well as [nwjs documentation](http://docs.nwjs.io/en/latest/) for more on this. 75 | 76 | ## User flow 77 | When a user selects a video it's transcribed, appropriate system notifications for start and end are triggered. 78 | 79 | When done unless option is un-ticked transcription is saved to clipboard. 80 | 81 | in which case user can click on `Copy transcriptions to cliboard` to get the transcriptions. 82 | 83 | ## Build NWJS app 84 | 85 | ### Option 1 86 | 87 | Use deploy script 88 | 89 | ``` 90 | node deploy.js 91 | ``` 92 | 93 | This creates a build folder inside the repo. The build folder is also in `.gitignore` to avoid accidentally pushing it to remote. 94 | 95 | ### Option 2 96 | To rebuild the app in NWJS refer to the [documentation](http://docs.nwjs.io/en/latest/For%20Users/Package%20and%20Distribute/) 97 | 98 | Install `nw-builder` 99 | 100 | ``` 101 | npm install -g nw-builder 102 | ``` 103 | 104 | From one level above the application folder (`cd ..` from root of repo) 105 | 106 | ``` 107 | nwbuild -p osx64 ./transcriber 108 | ``` 109 | 110 | creates a `build` folder that contains the app 111 | 112 | ## Todo 113 | 114 | - [ ] Write proper test using testing framework. 115 | - [ ] Ad some proper form of error handling 116 | - [ ] IBM has a size limit of 100mb per audio post request. Double check if there's a use case when converting video to audio it exceeds that size. Rough test with 54gb video to audio with that module ended up 50 to 70 mb. So it would seem ok for now? 117 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /bin/ffmpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxmedia/Transcriber/75940e6be8df8aa84909a32246861b209383b449/bin/ffmpeg -------------------------------------------------------------------------------- /deploy.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Simple script to automate the deployment of the app. 3 | */ 4 | var NwBuilder = require('nw-builder'); 5 | var nw = new NwBuilder({ 6 | files: ['./**'], // simple-glob format 7 | // platforms: ['osx32', 'osx64', 'win32', 'win64', 'linux32', 'linux64'] 8 | platforms: ['osx64'] 9 | }); 10 | 11 | nw.build().then(function () { 12 | console.log('all done!'); 13 | }).catch(function (error) { 14 | console.error(error); 15 | }); 16 | -------------------------------------------------------------------------------- /img/demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxmedia/Transcriber/75940e6be8df8aa84909a32246861b209383b449/img/demo.png -------------------------------------------------------------------------------- /img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxmedia/Transcriber/75940e6be8df8aa84909a32246861b209383b449/img/logo.png -------------------------------------------------------------------------------- /img/switch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxmedia/Transcriber/75940e6be8df8aa84909a32246861b209383b449/img/switch.png -------------------------------------------------------------------------------- /img/transciber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxmedia/Transcriber/75940e6be8df8aa84909a32246861b209383b449/img/transciber.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Transcriber 6 | 7 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 281 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | var transcribe = require('./transcriber.js'); 2 | 3 | module.exports = transcribe; 4 | -------------------------------------------------------------------------------- /index_test.js: -------------------------------------------------------------------------------- 1 | var transcribe = require('./index.js'); 2 | 3 | var demo_video = './demo_media/norman_door.mp4'; 4 | 5 | transcribe(demo_video, function(res){ 6 | console.log("FINAL") 7 | console.log(res) 8 | }) 9 | -------------------------------------------------------------------------------- /nw.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxmedia/Transcriber/75940e6be8df8aa84909a32246861b209383b449/nw.icns -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "transcriber", 3 | "version": "1.0.0", 4 | "description": "Speech to text Transcriber using IBM watson speech to text API. NWJS os x desktop app.", 5 | "main": "index.html", 6 | "window": { 7 | "show": false, 8 | "width": 600, 9 | "height": 600, 10 | "toolbar": false, 11 | "icon": "app.icns" 12 | }, 13 | "scripts": { 14 | "test": "echo \"Error: no test specified\" && exit 1", 15 | "start": "nw" 16 | }, 17 | "author": "Pietro Passarelli (http://pietropassarelli.com)", 18 | "license": "ISC", 19 | "dependencies": { 20 | "fluent-ffmpeg": "^2.1.0", 21 | "growl": "^1.9.2", 22 | "node-notifier": "^4.5.0", 23 | "nw-builder": "^2.2.0", 24 | "nwjs-osx-menu": "0.0.4", 25 | "watson-developer-cloud": "^1.8.0" 26 | }, 27 | "devDependencies": {}, 28 | "repository": { 29 | "type": "git", 30 | "url": "git+https://github.com/voxmedia/Transcriber.git" 31 | }, 32 | "keywords": [ 33 | "nwjs", 34 | "IBM", 35 | "Watson", 36 | "Speech", 37 | "to", 38 | "text", 39 | "stt" 40 | ], 41 | "bugs": { 42 | "url": "https://github.com/voxmedia/Transcriber/issues" 43 | }, 44 | "homepage": "https://github.com/voxmedia/Transcriber#readme", 45 | "webkit": { 46 | "plugin": true 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /public/css/bootstrap.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.6 (http://getbootstrap.com) 3 | * Copyright 2011-2015 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ 7 | html { 8 | font-family: sans-serif; 9 | -webkit-text-size-adjust: 100%; 10 | -ms-text-size-adjust: 100%; 11 | } 12 | body { 13 | margin: 0; 14 | } 15 | article, 16 | aside, 17 | details, 18 | figcaption, 19 | figure, 20 | footer, 21 | header, 22 | hgroup, 23 | main, 24 | menu, 25 | nav, 26 | section, 27 | summary { 28 | display: block; 29 | } 30 | audio, 31 | canvas, 32 | progress, 33 | video { 34 | display: inline-block; 35 | vertical-align: baseline; 36 | } 37 | audio:not([controls]) { 38 | display: none; 39 | height: 0; 40 | } 41 | [hidden], 42 | template { 43 | display: none; 44 | } 45 | a { 46 | background-color: transparent; 47 | } 48 | a:active, 49 | a:hover { 50 | outline: 0; 51 | } 52 | abbr[title] { 53 | border-bottom: 1px dotted; 54 | } 55 | b, 56 | strong { 57 | font-weight: bold; 58 | } 59 | dfn { 60 | font-style: italic; 61 | } 62 | h1 { 63 | margin: .67em 0; 64 | font-size: 2em; 65 | } 66 | mark { 67 | color: #000; 68 | background: #ff0; 69 | } 70 | small { 71 | font-size: 80%; 72 | } 73 | sub, 74 | sup { 75 | position: relative; 76 | font-size: 75%; 77 | line-height: 0; 78 | vertical-align: baseline; 79 | } 80 | sup { 81 | top: -.5em; 82 | } 83 | sub { 84 | bottom: -.25em; 85 | } 86 | img { 87 | border: 0; 88 | } 89 | svg:not(:root) { 90 | overflow: hidden; 91 | } 92 | figure { 93 | margin: 1em 40px; 94 | } 95 | hr { 96 | height: 0; 97 | -webkit-box-sizing: content-box; 98 | -moz-box-sizing: content-box; 99 | box-sizing: content-box; 100 | } 101 | pre { 102 | overflow: auto; 103 | } 104 | code, 105 | kbd, 106 | pre, 107 | samp { 108 | font-family: monospace, monospace; 109 | font-size: 1em; 110 | } 111 | button, 112 | input, 113 | optgroup, 114 | select, 115 | textarea { 116 | margin: 0; 117 | font: inherit; 118 | color: inherit; 119 | } 120 | button { 121 | overflow: visible; 122 | } 123 | button, 124 | select { 125 | text-transform: none; 126 | } 127 | button, 128 | html input[type="button"], 129 | input[type="reset"], 130 | input[type="submit"] { 131 | -webkit-appearance: button; 132 | cursor: pointer; 133 | } 134 | button[disabled], 135 | html input[disabled] { 136 | cursor: default; 137 | } 138 | button::-moz-focus-inner, 139 | input::-moz-focus-inner { 140 | padding: 0; 141 | border: 0; 142 | } 143 | input { 144 | line-height: normal; 145 | } 146 | input[type="checkbox"], 147 | input[type="radio"] { 148 | -webkit-box-sizing: border-box; 149 | -moz-box-sizing: border-box; 150 | box-sizing: border-box; 151 | padding: 0; 152 | } 153 | input[type="number"]::-webkit-inner-spin-button, 154 | input[type="number"]::-webkit-outer-spin-button { 155 | height: auto; 156 | } 157 | input[type="search"] { 158 | -webkit-box-sizing: content-box; 159 | -moz-box-sizing: content-box; 160 | box-sizing: content-box; 161 | -webkit-appearance: textfield; 162 | } 163 | input[type="search"]::-webkit-search-cancel-button, 164 | input[type="search"]::-webkit-search-decoration { 165 | -webkit-appearance: none; 166 | } 167 | fieldset { 168 | padding: .35em .625em .75em; 169 | margin: 0 2px; 170 | border: 1px solid #c0c0c0; 171 | } 172 | legend { 173 | padding: 0; 174 | border: 0; 175 | } 176 | textarea { 177 | overflow: auto; 178 | } 179 | optgroup { 180 | font-weight: bold; 181 | } 182 | table { 183 | border-spacing: 0; 184 | border-collapse: collapse; 185 | } 186 | td, 187 | th { 188 | padding: 0; 189 | } 190 | /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ 191 | @media print { 192 | *, 193 | *:before, 194 | *:after { 195 | color: #000 !important; 196 | text-shadow: none !important; 197 | background: transparent !important; 198 | -webkit-box-shadow: none !important; 199 | box-shadow: none !important; 200 | } 201 | a, 202 | a:visited { 203 | text-decoration: underline; 204 | } 205 | a[href]:after { 206 | content: " (" attr(href) ")"; 207 | } 208 | abbr[title]:after { 209 | content: " (" attr(title) ")"; 210 | } 211 | a[href^="#"]:after, 212 | a[href^="javascript:"]:after { 213 | content: ""; 214 | } 215 | pre, 216 | blockquote { 217 | border: 1px solid #999; 218 | 219 | page-break-inside: avoid; 220 | } 221 | thead { 222 | display: table-header-group; 223 | } 224 | tr, 225 | img { 226 | page-break-inside: avoid; 227 | } 228 | img { 229 | max-width: 100% !important; 230 | } 231 | p, 232 | h2, 233 | h3 { 234 | orphans: 3; 235 | widows: 3; 236 | } 237 | h2, 238 | h3 { 239 | page-break-after: avoid; 240 | } 241 | .navbar { 242 | display: none; 243 | } 244 | .btn > .caret, 245 | .dropup > .btn > .caret { 246 | border-top-color: #000 !important; 247 | } 248 | .label { 249 | border: 1px solid #000; 250 | } 251 | .table { 252 | border-collapse: collapse !important; 253 | } 254 | .table td, 255 | .table th { 256 | background-color: #fff !important; 257 | } 258 | .table-bordered th, 259 | .table-bordered td { 260 | border: 1px solid #ddd !important; 261 | } 262 | } 263 | @font-face { 264 | font-family: 'Glyphicons Halflings'; 265 | 266 | src: url('../fonts/glyphicons-halflings-regular.eot'); 267 | src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); 268 | } 269 | .glyphicon { 270 | position: relative; 271 | top: 1px; 272 | display: inline-block; 273 | font-family: 'Glyphicons Halflings'; 274 | font-style: normal; 275 | font-weight: normal; 276 | line-height: 1; 277 | 278 | -webkit-font-smoothing: antialiased; 279 | -moz-osx-font-smoothing: grayscale; 280 | } 281 | .glyphicon-asterisk:before { 282 | content: "\002a"; 283 | } 284 | .glyphicon-plus:before { 285 | content: "\002b"; 286 | } 287 | .glyphicon-euro:before, 288 | .glyphicon-eur:before { 289 | content: "\20ac"; 290 | } 291 | .glyphicon-minus:before { 292 | content: "\2212"; 293 | } 294 | .glyphicon-cloud:before { 295 | content: "\2601"; 296 | } 297 | .glyphicon-envelope:before { 298 | content: "\2709"; 299 | } 300 | .glyphicon-pencil:before { 301 | content: "\270f"; 302 | } 303 | .glyphicon-glass:before { 304 | content: "\e001"; 305 | } 306 | .glyphicon-music:before { 307 | content: "\e002"; 308 | } 309 | .glyphicon-search:before { 310 | content: "\e003"; 311 | } 312 | .glyphicon-heart:before { 313 | content: "\e005"; 314 | } 315 | .glyphicon-star:before { 316 | content: "\e006"; 317 | } 318 | .glyphicon-star-empty:before { 319 | content: "\e007"; 320 | } 321 | .glyphicon-user:before { 322 | content: "\e008"; 323 | } 324 | .glyphicon-film:before { 325 | content: "\e009"; 326 | } 327 | .glyphicon-th-large:before { 328 | content: "\e010"; 329 | } 330 | .glyphicon-th:before { 331 | content: "\e011"; 332 | } 333 | .glyphicon-th-list:before { 334 | content: "\e012"; 335 | } 336 | .glyphicon-ok:before { 337 | content: "\e013"; 338 | } 339 | .glyphicon-remove:before { 340 | content: "\e014"; 341 | } 342 | .glyphicon-zoom-in:before { 343 | content: "\e015"; 344 | } 345 | .glyphicon-zoom-out:before { 346 | content: "\e016"; 347 | } 348 | .glyphicon-off:before { 349 | content: "\e017"; 350 | } 351 | .glyphicon-signal:before { 352 | content: "\e018"; 353 | } 354 | .glyphicon-cog:before { 355 | content: "\e019"; 356 | } 357 | .glyphicon-trash:before { 358 | content: "\e020"; 359 | } 360 | .glyphicon-home:before { 361 | content: "\e021"; 362 | } 363 | .glyphicon-file:before { 364 | content: "\e022"; 365 | } 366 | .glyphicon-time:before { 367 | content: "\e023"; 368 | } 369 | .glyphicon-road:before { 370 | content: "\e024"; 371 | } 372 | .glyphicon-download-alt:before { 373 | content: "\e025"; 374 | } 375 | .glyphicon-download:before { 376 | content: "\e026"; 377 | } 378 | .glyphicon-upload:before { 379 | content: "\e027"; 380 | } 381 | .glyphicon-inbox:before { 382 | content: "\e028"; 383 | } 384 | .glyphicon-play-circle:before { 385 | content: "\e029"; 386 | } 387 | .glyphicon-repeat:before { 388 | content: "\e030"; 389 | } 390 | .glyphicon-refresh:before { 391 | content: "\e031"; 392 | } 393 | .glyphicon-list-alt:before { 394 | content: "\e032"; 395 | } 396 | .glyphicon-lock:before { 397 | content: "\e033"; 398 | } 399 | .glyphicon-flag:before { 400 | content: "\e034"; 401 | } 402 | .glyphicon-headphones:before { 403 | content: "\e035"; 404 | } 405 | .glyphicon-volume-off:before { 406 | content: "\e036"; 407 | } 408 | .glyphicon-volume-down:before { 409 | content: "\e037"; 410 | } 411 | .glyphicon-volume-up:before { 412 | content: "\e038"; 413 | } 414 | .glyphicon-qrcode:before { 415 | content: "\e039"; 416 | } 417 | .glyphicon-barcode:before { 418 | content: "\e040"; 419 | } 420 | .glyphicon-tag:before { 421 | content: "\e041"; 422 | } 423 | .glyphicon-tags:before { 424 | content: "\e042"; 425 | } 426 | .glyphicon-book:before { 427 | content: "\e043"; 428 | } 429 | .glyphicon-bookmark:before { 430 | content: "\e044"; 431 | } 432 | .glyphicon-print:before { 433 | content: "\e045"; 434 | } 435 | .glyphicon-camera:before { 436 | content: "\e046"; 437 | } 438 | .glyphicon-font:before { 439 | content: "\e047"; 440 | } 441 | .glyphicon-bold:before { 442 | content: "\e048"; 443 | } 444 | .glyphicon-italic:before { 445 | content: "\e049"; 446 | } 447 | .glyphicon-text-height:before { 448 | content: "\e050"; 449 | } 450 | .glyphicon-text-width:before { 451 | content: "\e051"; 452 | } 453 | .glyphicon-align-left:before { 454 | content: "\e052"; 455 | } 456 | .glyphicon-align-center:before { 457 | content: "\e053"; 458 | } 459 | .glyphicon-align-right:before { 460 | content: "\e054"; 461 | } 462 | .glyphicon-align-justify:before { 463 | content: "\e055"; 464 | } 465 | .glyphicon-list:before { 466 | content: "\e056"; 467 | } 468 | .glyphicon-indent-left:before { 469 | content: "\e057"; 470 | } 471 | .glyphicon-indent-right:before { 472 | content: "\e058"; 473 | } 474 | .glyphicon-facetime-video:before { 475 | content: "\e059"; 476 | } 477 | .glyphicon-picture:before { 478 | content: "\e060"; 479 | } 480 | .glyphicon-map-marker:before { 481 | content: "\e062"; 482 | } 483 | .glyphicon-adjust:before { 484 | content: "\e063"; 485 | } 486 | .glyphicon-tint:before { 487 | content: "\e064"; 488 | } 489 | .glyphicon-edit:before { 490 | content: "\e065"; 491 | } 492 | .glyphicon-share:before { 493 | content: "\e066"; 494 | } 495 | .glyphicon-check:before { 496 | content: "\e067"; 497 | } 498 | .glyphicon-move:before { 499 | content: "\e068"; 500 | } 501 | .glyphicon-step-backward:before { 502 | content: "\e069"; 503 | } 504 | .glyphicon-fast-backward:before { 505 | content: "\e070"; 506 | } 507 | .glyphicon-backward:before { 508 | content: "\e071"; 509 | } 510 | .glyphicon-play:before { 511 | content: "\e072"; 512 | } 513 | .glyphicon-pause:before { 514 | content: "\e073"; 515 | } 516 | .glyphicon-stop:before { 517 | content: "\e074"; 518 | } 519 | .glyphicon-forward:before { 520 | content: "\e075"; 521 | } 522 | .glyphicon-fast-forward:before { 523 | content: "\e076"; 524 | } 525 | .glyphicon-step-forward:before { 526 | content: "\e077"; 527 | } 528 | .glyphicon-eject:before { 529 | content: "\e078"; 530 | } 531 | .glyphicon-chevron-left:before { 532 | content: "\e079"; 533 | } 534 | .glyphicon-chevron-right:before { 535 | content: "\e080"; 536 | } 537 | .glyphicon-plus-sign:before { 538 | content: "\e081"; 539 | } 540 | .glyphicon-minus-sign:before { 541 | content: "\e082"; 542 | } 543 | .glyphicon-remove-sign:before { 544 | content: "\e083"; 545 | } 546 | .glyphicon-ok-sign:before { 547 | content: "\e084"; 548 | } 549 | .glyphicon-question-sign:before { 550 | content: "\e085"; 551 | } 552 | .glyphicon-info-sign:before { 553 | content: "\e086"; 554 | } 555 | .glyphicon-screenshot:before { 556 | content: "\e087"; 557 | } 558 | .glyphicon-remove-circle:before { 559 | content: "\e088"; 560 | } 561 | .glyphicon-ok-circle:before { 562 | content: "\e089"; 563 | } 564 | .glyphicon-ban-circle:before { 565 | content: "\e090"; 566 | } 567 | .glyphicon-arrow-left:before { 568 | content: "\e091"; 569 | } 570 | .glyphicon-arrow-right:before { 571 | content: "\e092"; 572 | } 573 | .glyphicon-arrow-up:before { 574 | content: "\e093"; 575 | } 576 | .glyphicon-arrow-down:before { 577 | content: "\e094"; 578 | } 579 | .glyphicon-share-alt:before { 580 | content: "\e095"; 581 | } 582 | .glyphicon-resize-full:before { 583 | content: "\e096"; 584 | } 585 | .glyphicon-resize-small:before { 586 | content: "\e097"; 587 | } 588 | .glyphicon-exclamation-sign:before { 589 | content: "\e101"; 590 | } 591 | .glyphicon-gift:before { 592 | content: "\e102"; 593 | } 594 | .glyphicon-leaf:before { 595 | content: "\e103"; 596 | } 597 | .glyphicon-fire:before { 598 | content: "\e104"; 599 | } 600 | .glyphicon-eye-open:before { 601 | content: "\e105"; 602 | } 603 | .glyphicon-eye-close:before { 604 | content: "\e106"; 605 | } 606 | .glyphicon-warning-sign:before { 607 | content: "\e107"; 608 | } 609 | .glyphicon-plane:before { 610 | content: "\e108"; 611 | } 612 | .glyphicon-calendar:before { 613 | content: "\e109"; 614 | } 615 | .glyphicon-random:before { 616 | content: "\e110"; 617 | } 618 | .glyphicon-comment:before { 619 | content: "\e111"; 620 | } 621 | .glyphicon-magnet:before { 622 | content: "\e112"; 623 | } 624 | .glyphicon-chevron-up:before { 625 | content: "\e113"; 626 | } 627 | .glyphicon-chevron-down:before { 628 | content: "\e114"; 629 | } 630 | .glyphicon-retweet:before { 631 | content: "\e115"; 632 | } 633 | .glyphicon-shopping-cart:before { 634 | content: "\e116"; 635 | } 636 | .glyphicon-folder-close:before { 637 | content: "\e117"; 638 | } 639 | .glyphicon-folder-open:before { 640 | content: "\e118"; 641 | } 642 | .glyphicon-resize-vertical:before { 643 | content: "\e119"; 644 | } 645 | .glyphicon-resize-horizontal:before { 646 | content: "\e120"; 647 | } 648 | .glyphicon-hdd:before { 649 | content: "\e121"; 650 | } 651 | .glyphicon-bullhorn:before { 652 | content: "\e122"; 653 | } 654 | .glyphicon-bell:before { 655 | content: "\e123"; 656 | } 657 | .glyphicon-certificate:before { 658 | content: "\e124"; 659 | } 660 | .glyphicon-thumbs-up:before { 661 | content: "\e125"; 662 | } 663 | .glyphicon-thumbs-down:before { 664 | content: "\e126"; 665 | } 666 | .glyphicon-hand-right:before { 667 | content: "\e127"; 668 | } 669 | .glyphicon-hand-left:before { 670 | content: "\e128"; 671 | } 672 | .glyphicon-hand-up:before { 673 | content: "\e129"; 674 | } 675 | .glyphicon-hand-down:before { 676 | content: "\e130"; 677 | } 678 | .glyphicon-circle-arrow-right:before { 679 | content: "\e131"; 680 | } 681 | .glyphicon-circle-arrow-left:before { 682 | content: "\e132"; 683 | } 684 | .glyphicon-circle-arrow-up:before { 685 | content: "\e133"; 686 | } 687 | .glyphicon-circle-arrow-down:before { 688 | content: "\e134"; 689 | } 690 | .glyphicon-globe:before { 691 | content: "\e135"; 692 | } 693 | .glyphicon-wrench:before { 694 | content: "\e136"; 695 | } 696 | .glyphicon-tasks:before { 697 | content: "\e137"; 698 | } 699 | .glyphicon-filter:before { 700 | content: "\e138"; 701 | } 702 | .glyphicon-briefcase:before { 703 | content: "\e139"; 704 | } 705 | .glyphicon-fullscreen:before { 706 | content: "\e140"; 707 | } 708 | .glyphicon-dashboard:before { 709 | content: "\e141"; 710 | } 711 | .glyphicon-paperclip:before { 712 | content: "\e142"; 713 | } 714 | .glyphicon-heart-empty:before { 715 | content: "\e143"; 716 | } 717 | .glyphicon-link:before { 718 | content: "\e144"; 719 | } 720 | .glyphicon-phone:before { 721 | content: "\e145"; 722 | } 723 | .glyphicon-pushpin:before { 724 | content: "\e146"; 725 | } 726 | .glyphicon-usd:before { 727 | content: "\e148"; 728 | } 729 | .glyphicon-gbp:before { 730 | content: "\e149"; 731 | } 732 | .glyphicon-sort:before { 733 | content: "\e150"; 734 | } 735 | .glyphicon-sort-by-alphabet:before { 736 | content: "\e151"; 737 | } 738 | .glyphicon-sort-by-alphabet-alt:before { 739 | content: "\e152"; 740 | } 741 | .glyphicon-sort-by-order:before { 742 | content: "\e153"; 743 | } 744 | .glyphicon-sort-by-order-alt:before { 745 | content: "\e154"; 746 | } 747 | .glyphicon-sort-by-attributes:before { 748 | content: "\e155"; 749 | } 750 | .glyphicon-sort-by-attributes-alt:before { 751 | content: "\e156"; 752 | } 753 | .glyphicon-unchecked:before { 754 | content: "\e157"; 755 | } 756 | .glyphicon-expand:before { 757 | content: "\e158"; 758 | } 759 | .glyphicon-collapse-down:before { 760 | content: "\e159"; 761 | } 762 | .glyphicon-collapse-up:before { 763 | content: "\e160"; 764 | } 765 | .glyphicon-log-in:before { 766 | content: "\e161"; 767 | } 768 | .glyphicon-flash:before { 769 | content: "\e162"; 770 | } 771 | .glyphicon-log-out:before { 772 | content: "\e163"; 773 | } 774 | .glyphicon-new-window:before { 775 | content: "\e164"; 776 | } 777 | .glyphicon-record:before { 778 | content: "\e165"; 779 | } 780 | .glyphicon-save:before { 781 | content: "\e166"; 782 | } 783 | .glyphicon-open:before { 784 | content: "\e167"; 785 | } 786 | .glyphicon-saved:before { 787 | content: "\e168"; 788 | } 789 | .glyphicon-import:before { 790 | content: "\e169"; 791 | } 792 | .glyphicon-export:before { 793 | content: "\e170"; 794 | } 795 | .glyphicon-send:before { 796 | content: "\e171"; 797 | } 798 | .glyphicon-floppy-disk:before { 799 | content: "\e172"; 800 | } 801 | .glyphicon-floppy-saved:before { 802 | content: "\e173"; 803 | } 804 | .glyphicon-floppy-remove:before { 805 | content: "\e174"; 806 | } 807 | .glyphicon-floppy-save:before { 808 | content: "\e175"; 809 | } 810 | .glyphicon-floppy-open:before { 811 | content: "\e176"; 812 | } 813 | .glyphicon-credit-card:before { 814 | content: "\e177"; 815 | } 816 | .glyphicon-transfer:before { 817 | content: "\e178"; 818 | } 819 | .glyphicon-cutlery:before { 820 | content: "\e179"; 821 | } 822 | .glyphicon-header:before { 823 | content: "\e180"; 824 | } 825 | .glyphicon-compressed:before { 826 | content: "\e181"; 827 | } 828 | .glyphicon-earphone:before { 829 | content: "\e182"; 830 | } 831 | .glyphicon-phone-alt:before { 832 | content: "\e183"; 833 | } 834 | .glyphicon-tower:before { 835 | content: "\e184"; 836 | } 837 | .glyphicon-stats:before { 838 | content: "\e185"; 839 | } 840 | .glyphicon-sd-video:before { 841 | content: "\e186"; 842 | } 843 | .glyphicon-hd-video:before { 844 | content: "\e187"; 845 | } 846 | .glyphicon-subtitles:before { 847 | content: "\e188"; 848 | } 849 | .glyphicon-sound-stereo:before { 850 | content: "\e189"; 851 | } 852 | .glyphicon-sound-dolby:before { 853 | content: "\e190"; 854 | } 855 | .glyphicon-sound-5-1:before { 856 | content: "\e191"; 857 | } 858 | .glyphicon-sound-6-1:before { 859 | content: "\e192"; 860 | } 861 | .glyphicon-sound-7-1:before { 862 | content: "\e193"; 863 | } 864 | .glyphicon-copyright-mark:before { 865 | content: "\e194"; 866 | } 867 | .glyphicon-registration-mark:before { 868 | content: "\e195"; 869 | } 870 | .glyphicon-cloud-download:before { 871 | content: "\e197"; 872 | } 873 | .glyphicon-cloud-upload:before { 874 | content: "\e198"; 875 | } 876 | .glyphicon-tree-conifer:before { 877 | content: "\e199"; 878 | } 879 | .glyphicon-tree-deciduous:before { 880 | content: "\e200"; 881 | } 882 | .glyphicon-cd:before { 883 | content: "\e201"; 884 | } 885 | .glyphicon-save-file:before { 886 | content: "\e202"; 887 | } 888 | .glyphicon-open-file:before { 889 | content: "\e203"; 890 | } 891 | .glyphicon-level-up:before { 892 | content: "\e204"; 893 | } 894 | .glyphicon-copy:before { 895 | content: "\e205"; 896 | } 897 | .glyphicon-paste:before { 898 | content: "\e206"; 899 | } 900 | .glyphicon-alert:before { 901 | content: "\e209"; 902 | } 903 | .glyphicon-equalizer:before { 904 | content: "\e210"; 905 | } 906 | .glyphicon-king:before { 907 | content: "\e211"; 908 | } 909 | .glyphicon-queen:before { 910 | content: "\e212"; 911 | } 912 | .glyphicon-pawn:before { 913 | content: "\e213"; 914 | } 915 | .glyphicon-bishop:before { 916 | content: "\e214"; 917 | } 918 | .glyphicon-knight:before { 919 | content: "\e215"; 920 | } 921 | .glyphicon-baby-formula:before { 922 | content: "\e216"; 923 | } 924 | .glyphicon-tent:before { 925 | content: "\26fa"; 926 | } 927 | .glyphicon-blackboard:before { 928 | content: "\e218"; 929 | } 930 | .glyphicon-bed:before { 931 | content: "\e219"; 932 | } 933 | .glyphicon-apple:before { 934 | content: "\f8ff"; 935 | } 936 | .glyphicon-erase:before { 937 | content: "\e221"; 938 | } 939 | .glyphicon-hourglass:before { 940 | content: "\231b"; 941 | } 942 | .glyphicon-lamp:before { 943 | content: "\e223"; 944 | } 945 | .glyphicon-duplicate:before { 946 | content: "\e224"; 947 | } 948 | .glyphicon-piggy-bank:before { 949 | content: "\e225"; 950 | } 951 | .glyphicon-scissors:before { 952 | content: "\e226"; 953 | } 954 | .glyphicon-bitcoin:before { 955 | content: "\e227"; 956 | } 957 | .glyphicon-btc:before { 958 | content: "\e227"; 959 | } 960 | .glyphicon-xbt:before { 961 | content: "\e227"; 962 | } 963 | .glyphicon-yen:before { 964 | content: "\00a5"; 965 | } 966 | .glyphicon-jpy:before { 967 | content: "\00a5"; 968 | } 969 | .glyphicon-ruble:before { 970 | content: "\20bd"; 971 | } 972 | .glyphicon-rub:before { 973 | content: "\20bd"; 974 | } 975 | .glyphicon-scale:before { 976 | content: "\e230"; 977 | } 978 | .glyphicon-ice-lolly:before { 979 | content: "\e231"; 980 | } 981 | .glyphicon-ice-lolly-tasted:before { 982 | content: "\e232"; 983 | } 984 | .glyphicon-education:before { 985 | content: "\e233"; 986 | } 987 | .glyphicon-option-horizontal:before { 988 | content: "\e234"; 989 | } 990 | .glyphicon-option-vertical:before { 991 | content: "\e235"; 992 | } 993 | .glyphicon-menu-hamburger:before { 994 | content: "\e236"; 995 | } 996 | .glyphicon-modal-window:before { 997 | content: "\e237"; 998 | } 999 | .glyphicon-oil:before { 1000 | content: "\e238"; 1001 | } 1002 | .glyphicon-grain:before { 1003 | content: "\e239"; 1004 | } 1005 | .glyphicon-sunglasses:before { 1006 | content: "\e240"; 1007 | } 1008 | .glyphicon-text-size:before { 1009 | content: "\e241"; 1010 | } 1011 | .glyphicon-text-color:before { 1012 | content: "\e242"; 1013 | } 1014 | .glyphicon-text-background:before { 1015 | content: "\e243"; 1016 | } 1017 | .glyphicon-object-align-top:before { 1018 | content: "\e244"; 1019 | } 1020 | .glyphicon-object-align-bottom:before { 1021 | content: "\e245"; 1022 | } 1023 | .glyphicon-object-align-horizontal:before { 1024 | content: "\e246"; 1025 | } 1026 | .glyphicon-object-align-left:before { 1027 | content: "\e247"; 1028 | } 1029 | .glyphicon-object-align-vertical:before { 1030 | content: "\e248"; 1031 | } 1032 | .glyphicon-object-align-right:before { 1033 | content: "\e249"; 1034 | } 1035 | .glyphicon-triangle-right:before { 1036 | content: "\e250"; 1037 | } 1038 | .glyphicon-triangle-left:before { 1039 | content: "\e251"; 1040 | } 1041 | .glyphicon-triangle-bottom:before { 1042 | content: "\e252"; 1043 | } 1044 | .glyphicon-triangle-top:before { 1045 | content: "\e253"; 1046 | } 1047 | .glyphicon-console:before { 1048 | content: "\e254"; 1049 | } 1050 | .glyphicon-superscript:before { 1051 | content: "\e255"; 1052 | } 1053 | .glyphicon-subscript:before { 1054 | content: "\e256"; 1055 | } 1056 | .glyphicon-menu-left:before { 1057 | content: "\e257"; 1058 | } 1059 | .glyphicon-menu-right:before { 1060 | content: "\e258"; 1061 | } 1062 | .glyphicon-menu-down:before { 1063 | content: "\e259"; 1064 | } 1065 | .glyphicon-menu-up:before { 1066 | content: "\e260"; 1067 | } 1068 | * { 1069 | -webkit-box-sizing: border-box; 1070 | -moz-box-sizing: border-box; 1071 | box-sizing: border-box; 1072 | } 1073 | *:before, 1074 | *:after { 1075 | -webkit-box-sizing: border-box; 1076 | -moz-box-sizing: border-box; 1077 | box-sizing: border-box; 1078 | } 1079 | html { 1080 | font-size: 10px; 1081 | 1082 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 1083 | } 1084 | body { 1085 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 1086 | font-size: 14px; 1087 | line-height: 1.42857143; 1088 | color: #333; 1089 | background-color: #fff; 1090 | } 1091 | input, 1092 | button, 1093 | select, 1094 | textarea { 1095 | font-family: inherit; 1096 | font-size: inherit; 1097 | line-height: inherit; 1098 | } 1099 | a { 1100 | color: #337ab7; 1101 | text-decoration: none; 1102 | } 1103 | a:hover, 1104 | a:focus { 1105 | color: #23527c; 1106 | text-decoration: underline; 1107 | } 1108 | a:focus { 1109 | outline: thin dotted; 1110 | outline: 5px auto -webkit-focus-ring-color; 1111 | outline-offset: -2px; 1112 | } 1113 | figure { 1114 | margin: 0; 1115 | } 1116 | img { 1117 | vertical-align: middle; 1118 | } 1119 | .img-responsive, 1120 | .thumbnail > img, 1121 | .thumbnail a > img, 1122 | .carousel-inner > .item > img, 1123 | .carousel-inner > .item > a > img { 1124 | display: block; 1125 | max-width: 100%; 1126 | height: auto; 1127 | } 1128 | .img-rounded { 1129 | border-radius: 6px; 1130 | } 1131 | .img-thumbnail { 1132 | display: inline-block; 1133 | max-width: 100%; 1134 | height: auto; 1135 | padding: 4px; 1136 | line-height: 1.42857143; 1137 | background-color: #fff; 1138 | border: 1px solid #ddd; 1139 | border-radius: 4px; 1140 | -webkit-transition: all .2s ease-in-out; 1141 | -o-transition: all .2s ease-in-out; 1142 | transition: all .2s ease-in-out; 1143 | } 1144 | .img-circle { 1145 | border-radius: 50%; 1146 | } 1147 | hr { 1148 | margin-top: 20px; 1149 | margin-bottom: 20px; 1150 | border: 0; 1151 | border-top: 1px solid #eee; 1152 | } 1153 | .sr-only { 1154 | position: absolute; 1155 | width: 1px; 1156 | height: 1px; 1157 | padding: 0; 1158 | margin: -1px; 1159 | overflow: hidden; 1160 | clip: rect(0, 0, 0, 0); 1161 | border: 0; 1162 | } 1163 | .sr-only-focusable:active, 1164 | .sr-only-focusable:focus { 1165 | position: static; 1166 | width: auto; 1167 | height: auto; 1168 | margin: 0; 1169 | overflow: visible; 1170 | clip: auto; 1171 | } 1172 | [role="button"] { 1173 | cursor: pointer; 1174 | } 1175 | h1, 1176 | h2, 1177 | h3, 1178 | h4, 1179 | h5, 1180 | h6, 1181 | .h1, 1182 | .h2, 1183 | .h3, 1184 | .h4, 1185 | .h5, 1186 | .h6 { 1187 | font-family: inherit; 1188 | font-weight: 500; 1189 | line-height: 1.1; 1190 | color: inherit; 1191 | } 1192 | h1 small, 1193 | h2 small, 1194 | h3 small, 1195 | h4 small, 1196 | h5 small, 1197 | h6 small, 1198 | .h1 small, 1199 | .h2 small, 1200 | .h3 small, 1201 | .h4 small, 1202 | .h5 small, 1203 | .h6 small, 1204 | h1 .small, 1205 | h2 .small, 1206 | h3 .small, 1207 | h4 .small, 1208 | h5 .small, 1209 | h6 .small, 1210 | .h1 .small, 1211 | .h2 .small, 1212 | .h3 .small, 1213 | .h4 .small, 1214 | .h5 .small, 1215 | .h6 .small { 1216 | font-weight: normal; 1217 | line-height: 1; 1218 | color: #777; 1219 | } 1220 | h1, 1221 | .h1, 1222 | h2, 1223 | .h2, 1224 | h3, 1225 | .h3 { 1226 | margin-top: 20px; 1227 | margin-bottom: 10px; 1228 | } 1229 | h1 small, 1230 | .h1 small, 1231 | h2 small, 1232 | .h2 small, 1233 | h3 small, 1234 | .h3 small, 1235 | h1 .small, 1236 | .h1 .small, 1237 | h2 .small, 1238 | .h2 .small, 1239 | h3 .small, 1240 | .h3 .small { 1241 | font-size: 65%; 1242 | } 1243 | h4, 1244 | .h4, 1245 | h5, 1246 | .h5, 1247 | h6, 1248 | .h6 { 1249 | margin-top: 10px; 1250 | margin-bottom: 10px; 1251 | } 1252 | h4 small, 1253 | .h4 small, 1254 | h5 small, 1255 | .h5 small, 1256 | h6 small, 1257 | .h6 small, 1258 | h4 .small, 1259 | .h4 .small, 1260 | h5 .small, 1261 | .h5 .small, 1262 | h6 .small, 1263 | .h6 .small { 1264 | font-size: 75%; 1265 | } 1266 | h1, 1267 | .h1 { 1268 | font-size: 36px; 1269 | } 1270 | h2, 1271 | .h2 { 1272 | font-size: 30px; 1273 | } 1274 | h3, 1275 | .h3 { 1276 | font-size: 24px; 1277 | } 1278 | h4, 1279 | .h4 { 1280 | font-size: 18px; 1281 | } 1282 | h5, 1283 | .h5 { 1284 | font-size: 14px; 1285 | } 1286 | h6, 1287 | .h6 { 1288 | font-size: 12px; 1289 | } 1290 | p { 1291 | margin: 0 0 10px; 1292 | } 1293 | .lead { 1294 | margin-bottom: 20px; 1295 | font-size: 16px; 1296 | font-weight: 300; 1297 | line-height: 1.4; 1298 | } 1299 | @media (min-width: 768px) { 1300 | .lead { 1301 | font-size: 21px; 1302 | } 1303 | } 1304 | small, 1305 | .small { 1306 | font-size: 85%; 1307 | } 1308 | mark, 1309 | .mark { 1310 | padding: .2em; 1311 | background-color: #fcf8e3; 1312 | } 1313 | .text-left { 1314 | text-align: left; 1315 | } 1316 | .text-right { 1317 | text-align: right; 1318 | } 1319 | .text-center { 1320 | text-align: center; 1321 | } 1322 | .text-justify { 1323 | text-align: justify; 1324 | } 1325 | .text-nowrap { 1326 | white-space: nowrap; 1327 | } 1328 | .text-lowercase { 1329 | text-transform: lowercase; 1330 | } 1331 | .text-uppercase { 1332 | text-transform: uppercase; 1333 | } 1334 | .text-capitalize { 1335 | text-transform: capitalize; 1336 | } 1337 | .text-muted { 1338 | color: #777; 1339 | } 1340 | .text-primary { 1341 | color: #337ab7; 1342 | } 1343 | a.text-primary:hover, 1344 | a.text-primary:focus { 1345 | color: #286090; 1346 | } 1347 | .text-success { 1348 | color: #3c763d; 1349 | } 1350 | a.text-success:hover, 1351 | a.text-success:focus { 1352 | color: #2b542c; 1353 | } 1354 | .text-info { 1355 | color: #31708f; 1356 | } 1357 | a.text-info:hover, 1358 | a.text-info:focus { 1359 | color: #245269; 1360 | } 1361 | .text-warning { 1362 | color: #8a6d3b; 1363 | } 1364 | a.text-warning:hover, 1365 | a.text-warning:focus { 1366 | color: #66512c; 1367 | } 1368 | .text-danger { 1369 | color: #a94442; 1370 | } 1371 | a.text-danger:hover, 1372 | a.text-danger:focus { 1373 | color: #843534; 1374 | } 1375 | .bg-primary { 1376 | color: #fff; 1377 | background-color: #337ab7; 1378 | } 1379 | a.bg-primary:hover, 1380 | a.bg-primary:focus { 1381 | background-color: #286090; 1382 | } 1383 | .bg-success { 1384 | background-color: #dff0d8; 1385 | } 1386 | a.bg-success:hover, 1387 | a.bg-success:focus { 1388 | background-color: #c1e2b3; 1389 | } 1390 | .bg-info { 1391 | background-color: #d9edf7; 1392 | } 1393 | a.bg-info:hover, 1394 | a.bg-info:focus { 1395 | background-color: #afd9ee; 1396 | } 1397 | .bg-warning { 1398 | background-color: #fcf8e3; 1399 | } 1400 | a.bg-warning:hover, 1401 | a.bg-warning:focus { 1402 | background-color: #f7ecb5; 1403 | } 1404 | .bg-danger { 1405 | background-color: #f2dede; 1406 | } 1407 | a.bg-danger:hover, 1408 | a.bg-danger:focus { 1409 | background-color: #e4b9b9; 1410 | } 1411 | .page-header { 1412 | padding-bottom: 9px; 1413 | margin: 40px 0 20px; 1414 | border-bottom: 1px solid #eee; 1415 | } 1416 | ul, 1417 | ol { 1418 | margin-top: 0; 1419 | margin-bottom: 10px; 1420 | } 1421 | ul ul, 1422 | ol ul, 1423 | ul ol, 1424 | ol ol { 1425 | margin-bottom: 0; 1426 | } 1427 | .list-unstyled { 1428 | padding-left: 0; 1429 | list-style: none; 1430 | } 1431 | .list-inline { 1432 | padding-left: 0; 1433 | margin-left: -5px; 1434 | list-style: none; 1435 | } 1436 | .list-inline > li { 1437 | display: inline-block; 1438 | padding-right: 5px; 1439 | padding-left: 5px; 1440 | } 1441 | dl { 1442 | margin-top: 0; 1443 | margin-bottom: 20px; 1444 | } 1445 | dt, 1446 | dd { 1447 | line-height: 1.42857143; 1448 | } 1449 | dt { 1450 | font-weight: bold; 1451 | } 1452 | dd { 1453 | margin-left: 0; 1454 | } 1455 | @media (min-width: 768px) { 1456 | .dl-horizontal dt { 1457 | float: left; 1458 | width: 160px; 1459 | overflow: hidden; 1460 | clear: left; 1461 | text-align: right; 1462 | text-overflow: ellipsis; 1463 | white-space: nowrap; 1464 | } 1465 | .dl-horizontal dd { 1466 | margin-left: 180px; 1467 | } 1468 | } 1469 | abbr[title], 1470 | abbr[data-original-title] { 1471 | cursor: help; 1472 | border-bottom: 1px dotted #777; 1473 | } 1474 | .initialism { 1475 | font-size: 90%; 1476 | text-transform: uppercase; 1477 | } 1478 | blockquote { 1479 | padding: 10px 20px; 1480 | margin: 0 0 20px; 1481 | font-size: 17.5px; 1482 | border-left: 5px solid #eee; 1483 | } 1484 | blockquote p:last-child, 1485 | blockquote ul:last-child, 1486 | blockquote ol:last-child { 1487 | margin-bottom: 0; 1488 | } 1489 | blockquote footer, 1490 | blockquote small, 1491 | blockquote .small { 1492 | display: block; 1493 | font-size: 80%; 1494 | line-height: 1.42857143; 1495 | color: #777; 1496 | } 1497 | blockquote footer:before, 1498 | blockquote small:before, 1499 | blockquote .small:before { 1500 | content: '\2014 \00A0'; 1501 | } 1502 | .blockquote-reverse, 1503 | blockquote.pull-right { 1504 | padding-right: 15px; 1505 | padding-left: 0; 1506 | text-align: right; 1507 | border-right: 5px solid #eee; 1508 | border-left: 0; 1509 | } 1510 | .blockquote-reverse footer:before, 1511 | blockquote.pull-right footer:before, 1512 | .blockquote-reverse small:before, 1513 | blockquote.pull-right small:before, 1514 | .blockquote-reverse .small:before, 1515 | blockquote.pull-right .small:before { 1516 | content: ''; 1517 | } 1518 | .blockquote-reverse footer:after, 1519 | blockquote.pull-right footer:after, 1520 | .blockquote-reverse small:after, 1521 | blockquote.pull-right small:after, 1522 | .blockquote-reverse .small:after, 1523 | blockquote.pull-right .small:after { 1524 | content: '\00A0 \2014'; 1525 | } 1526 | address { 1527 | margin-bottom: 20px; 1528 | font-style: normal; 1529 | line-height: 1.42857143; 1530 | } 1531 | code, 1532 | kbd, 1533 | pre, 1534 | samp { 1535 | font-family: Menlo, Monaco, Consolas, "Courier New", monospace; 1536 | } 1537 | code { 1538 | padding: 2px 4px; 1539 | font-size: 90%; 1540 | color: #c7254e; 1541 | background-color: #f9f2f4; 1542 | border-radius: 4px; 1543 | } 1544 | kbd { 1545 | padding: 2px 4px; 1546 | font-size: 90%; 1547 | color: #fff; 1548 | background-color: #333; 1549 | border-radius: 3px; 1550 | -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); 1551 | box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); 1552 | } 1553 | kbd kbd { 1554 | padding: 0; 1555 | font-size: 100%; 1556 | font-weight: bold; 1557 | -webkit-box-shadow: none; 1558 | box-shadow: none; 1559 | } 1560 | pre { 1561 | display: block; 1562 | padding: 9.5px; 1563 | margin: 0 0 10px; 1564 | font-size: 13px; 1565 | line-height: 1.42857143; 1566 | color: #333; 1567 | word-break: break-all; 1568 | word-wrap: break-word; 1569 | background-color: #f5f5f5; 1570 | border: 1px solid #ccc; 1571 | border-radius: 4px; 1572 | } 1573 | pre code { 1574 | padding: 0; 1575 | font-size: inherit; 1576 | color: inherit; 1577 | white-space: pre-wrap; 1578 | background-color: transparent; 1579 | border-radius: 0; 1580 | } 1581 | .pre-scrollable { 1582 | max-height: 340px; 1583 | overflow-y: scroll; 1584 | } 1585 | .container { 1586 | padding-right: 15px; 1587 | padding-left: 15px; 1588 | margin-right: auto; 1589 | margin-left: auto; 1590 | } 1591 | @media (min-width: 768px) { 1592 | .container { 1593 | width: 750px; 1594 | } 1595 | } 1596 | @media (min-width: 992px) { 1597 | .container { 1598 | width: 970px; 1599 | } 1600 | } 1601 | @media (min-width: 1200px) { 1602 | .container { 1603 | width: 1170px; 1604 | } 1605 | } 1606 | .container-fluid { 1607 | padding-right: 15px; 1608 | padding-left: 15px; 1609 | margin-right: auto; 1610 | margin-left: auto; 1611 | } 1612 | .row { 1613 | margin-right: -15px; 1614 | margin-left: -15px; 1615 | } 1616 | .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 { 1617 | position: relative; 1618 | min-height: 1px; 1619 | padding-right: 15px; 1620 | padding-left: 15px; 1621 | } 1622 | .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 { 1623 | float: left; 1624 | } 1625 | .col-xs-12 { 1626 | width: 100%; 1627 | } 1628 | .col-xs-11 { 1629 | width: 91.66666667%; 1630 | } 1631 | .col-xs-10 { 1632 | width: 83.33333333%; 1633 | } 1634 | .col-xs-9 { 1635 | width: 75%; 1636 | } 1637 | .col-xs-8 { 1638 | width: 66.66666667%; 1639 | } 1640 | .col-xs-7 { 1641 | width: 58.33333333%; 1642 | } 1643 | .col-xs-6 { 1644 | width: 50%; 1645 | } 1646 | .col-xs-5 { 1647 | width: 41.66666667%; 1648 | } 1649 | .col-xs-4 { 1650 | width: 33.33333333%; 1651 | } 1652 | .col-xs-3 { 1653 | width: 25%; 1654 | } 1655 | .col-xs-2 { 1656 | width: 16.66666667%; 1657 | } 1658 | .col-xs-1 { 1659 | width: 8.33333333%; 1660 | } 1661 | .col-xs-pull-12 { 1662 | right: 100%; 1663 | } 1664 | .col-xs-pull-11 { 1665 | right: 91.66666667%; 1666 | } 1667 | .col-xs-pull-10 { 1668 | right: 83.33333333%; 1669 | } 1670 | .col-xs-pull-9 { 1671 | right: 75%; 1672 | } 1673 | .col-xs-pull-8 { 1674 | right: 66.66666667%; 1675 | } 1676 | .col-xs-pull-7 { 1677 | right: 58.33333333%; 1678 | } 1679 | .col-xs-pull-6 { 1680 | right: 50%; 1681 | } 1682 | .col-xs-pull-5 { 1683 | right: 41.66666667%; 1684 | } 1685 | .col-xs-pull-4 { 1686 | right: 33.33333333%; 1687 | } 1688 | .col-xs-pull-3 { 1689 | right: 25%; 1690 | } 1691 | .col-xs-pull-2 { 1692 | right: 16.66666667%; 1693 | } 1694 | .col-xs-pull-1 { 1695 | right: 8.33333333%; 1696 | } 1697 | .col-xs-pull-0 { 1698 | right: auto; 1699 | } 1700 | .col-xs-push-12 { 1701 | left: 100%; 1702 | } 1703 | .col-xs-push-11 { 1704 | left: 91.66666667%; 1705 | } 1706 | .col-xs-push-10 { 1707 | left: 83.33333333%; 1708 | } 1709 | .col-xs-push-9 { 1710 | left: 75%; 1711 | } 1712 | .col-xs-push-8 { 1713 | left: 66.66666667%; 1714 | } 1715 | .col-xs-push-7 { 1716 | left: 58.33333333%; 1717 | } 1718 | .col-xs-push-6 { 1719 | left: 50%; 1720 | } 1721 | .col-xs-push-5 { 1722 | left: 41.66666667%; 1723 | } 1724 | .col-xs-push-4 { 1725 | left: 33.33333333%; 1726 | } 1727 | .col-xs-push-3 { 1728 | left: 25%; 1729 | } 1730 | .col-xs-push-2 { 1731 | left: 16.66666667%; 1732 | } 1733 | .col-xs-push-1 { 1734 | left: 8.33333333%; 1735 | } 1736 | .col-xs-push-0 { 1737 | left: auto; 1738 | } 1739 | .col-xs-offset-12 { 1740 | margin-left: 100%; 1741 | } 1742 | .col-xs-offset-11 { 1743 | margin-left: 91.66666667%; 1744 | } 1745 | .col-xs-offset-10 { 1746 | margin-left: 83.33333333%; 1747 | } 1748 | .col-xs-offset-9 { 1749 | margin-left: 75%; 1750 | } 1751 | .col-xs-offset-8 { 1752 | margin-left: 66.66666667%; 1753 | } 1754 | .col-xs-offset-7 { 1755 | margin-left: 58.33333333%; 1756 | } 1757 | .col-xs-offset-6 { 1758 | margin-left: 50%; 1759 | } 1760 | .col-xs-offset-5 { 1761 | margin-left: 41.66666667%; 1762 | } 1763 | .col-xs-offset-4 { 1764 | margin-left: 33.33333333%; 1765 | } 1766 | .col-xs-offset-3 { 1767 | margin-left: 25%; 1768 | } 1769 | .col-xs-offset-2 { 1770 | margin-left: 16.66666667%; 1771 | } 1772 | .col-xs-offset-1 { 1773 | margin-left: 8.33333333%; 1774 | } 1775 | .col-xs-offset-0 { 1776 | margin-left: 0; 1777 | } 1778 | @media (min-width: 768px) { 1779 | .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 { 1780 | float: left; 1781 | } 1782 | .col-sm-12 { 1783 | width: 100%; 1784 | } 1785 | .col-sm-11 { 1786 | width: 91.66666667%; 1787 | } 1788 | .col-sm-10 { 1789 | width: 83.33333333%; 1790 | } 1791 | .col-sm-9 { 1792 | width: 75%; 1793 | } 1794 | .col-sm-8 { 1795 | width: 66.66666667%; 1796 | } 1797 | .col-sm-7 { 1798 | width: 58.33333333%; 1799 | } 1800 | .col-sm-6 { 1801 | width: 50%; 1802 | } 1803 | .col-sm-5 { 1804 | width: 41.66666667%; 1805 | } 1806 | .col-sm-4 { 1807 | width: 33.33333333%; 1808 | } 1809 | .col-sm-3 { 1810 | width: 25%; 1811 | } 1812 | .col-sm-2 { 1813 | width: 16.66666667%; 1814 | } 1815 | .col-sm-1 { 1816 | width: 8.33333333%; 1817 | } 1818 | .col-sm-pull-12 { 1819 | right: 100%; 1820 | } 1821 | .col-sm-pull-11 { 1822 | right: 91.66666667%; 1823 | } 1824 | .col-sm-pull-10 { 1825 | right: 83.33333333%; 1826 | } 1827 | .col-sm-pull-9 { 1828 | right: 75%; 1829 | } 1830 | .col-sm-pull-8 { 1831 | right: 66.66666667%; 1832 | } 1833 | .col-sm-pull-7 { 1834 | right: 58.33333333%; 1835 | } 1836 | .col-sm-pull-6 { 1837 | right: 50%; 1838 | } 1839 | .col-sm-pull-5 { 1840 | right: 41.66666667%; 1841 | } 1842 | .col-sm-pull-4 { 1843 | right: 33.33333333%; 1844 | } 1845 | .col-sm-pull-3 { 1846 | right: 25%; 1847 | } 1848 | .col-sm-pull-2 { 1849 | right: 16.66666667%; 1850 | } 1851 | .col-sm-pull-1 { 1852 | right: 8.33333333%; 1853 | } 1854 | .col-sm-pull-0 { 1855 | right: auto; 1856 | } 1857 | .col-sm-push-12 { 1858 | left: 100%; 1859 | } 1860 | .col-sm-push-11 { 1861 | left: 91.66666667%; 1862 | } 1863 | .col-sm-push-10 { 1864 | left: 83.33333333%; 1865 | } 1866 | .col-sm-push-9 { 1867 | left: 75%; 1868 | } 1869 | .col-sm-push-8 { 1870 | left: 66.66666667%; 1871 | } 1872 | .col-sm-push-7 { 1873 | left: 58.33333333%; 1874 | } 1875 | .col-sm-push-6 { 1876 | left: 50%; 1877 | } 1878 | .col-sm-push-5 { 1879 | left: 41.66666667%; 1880 | } 1881 | .col-sm-push-4 { 1882 | left: 33.33333333%; 1883 | } 1884 | .col-sm-push-3 { 1885 | left: 25%; 1886 | } 1887 | .col-sm-push-2 { 1888 | left: 16.66666667%; 1889 | } 1890 | .col-sm-push-1 { 1891 | left: 8.33333333%; 1892 | } 1893 | .col-sm-push-0 { 1894 | left: auto; 1895 | } 1896 | .col-sm-offset-12 { 1897 | margin-left: 100%; 1898 | } 1899 | .col-sm-offset-11 { 1900 | margin-left: 91.66666667%; 1901 | } 1902 | .col-sm-offset-10 { 1903 | margin-left: 83.33333333%; 1904 | } 1905 | .col-sm-offset-9 { 1906 | margin-left: 75%; 1907 | } 1908 | .col-sm-offset-8 { 1909 | margin-left: 66.66666667%; 1910 | } 1911 | .col-sm-offset-7 { 1912 | margin-left: 58.33333333%; 1913 | } 1914 | .col-sm-offset-6 { 1915 | margin-left: 50%; 1916 | } 1917 | .col-sm-offset-5 { 1918 | margin-left: 41.66666667%; 1919 | } 1920 | .col-sm-offset-4 { 1921 | margin-left: 33.33333333%; 1922 | } 1923 | .col-sm-offset-3 { 1924 | margin-left: 25%; 1925 | } 1926 | .col-sm-offset-2 { 1927 | margin-left: 16.66666667%; 1928 | } 1929 | .col-sm-offset-1 { 1930 | margin-left: 8.33333333%; 1931 | } 1932 | .col-sm-offset-0 { 1933 | margin-left: 0; 1934 | } 1935 | } 1936 | @media (min-width: 992px) { 1937 | .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 { 1938 | float: left; 1939 | } 1940 | .col-md-12 { 1941 | width: 100%; 1942 | } 1943 | .col-md-11 { 1944 | width: 91.66666667%; 1945 | } 1946 | .col-md-10 { 1947 | width: 83.33333333%; 1948 | } 1949 | .col-md-9 { 1950 | width: 75%; 1951 | } 1952 | .col-md-8 { 1953 | width: 66.66666667%; 1954 | } 1955 | .col-md-7 { 1956 | width: 58.33333333%; 1957 | } 1958 | .col-md-6 { 1959 | width: 50%; 1960 | } 1961 | .col-md-5 { 1962 | width: 41.66666667%; 1963 | } 1964 | .col-md-4 { 1965 | width: 33.33333333%; 1966 | } 1967 | .col-md-3 { 1968 | width: 25%; 1969 | } 1970 | .col-md-2 { 1971 | width: 16.66666667%; 1972 | } 1973 | .col-md-1 { 1974 | width: 8.33333333%; 1975 | } 1976 | .col-md-pull-12 { 1977 | right: 100%; 1978 | } 1979 | .col-md-pull-11 { 1980 | right: 91.66666667%; 1981 | } 1982 | .col-md-pull-10 { 1983 | right: 83.33333333%; 1984 | } 1985 | .col-md-pull-9 { 1986 | right: 75%; 1987 | } 1988 | .col-md-pull-8 { 1989 | right: 66.66666667%; 1990 | } 1991 | .col-md-pull-7 { 1992 | right: 58.33333333%; 1993 | } 1994 | .col-md-pull-6 { 1995 | right: 50%; 1996 | } 1997 | .col-md-pull-5 { 1998 | right: 41.66666667%; 1999 | } 2000 | .col-md-pull-4 { 2001 | right: 33.33333333%; 2002 | } 2003 | .col-md-pull-3 { 2004 | right: 25%; 2005 | } 2006 | .col-md-pull-2 { 2007 | right: 16.66666667%; 2008 | } 2009 | .col-md-pull-1 { 2010 | right: 8.33333333%; 2011 | } 2012 | .col-md-pull-0 { 2013 | right: auto; 2014 | } 2015 | .col-md-push-12 { 2016 | left: 100%; 2017 | } 2018 | .col-md-push-11 { 2019 | left: 91.66666667%; 2020 | } 2021 | .col-md-push-10 { 2022 | left: 83.33333333%; 2023 | } 2024 | .col-md-push-9 { 2025 | left: 75%; 2026 | } 2027 | .col-md-push-8 { 2028 | left: 66.66666667%; 2029 | } 2030 | .col-md-push-7 { 2031 | left: 58.33333333%; 2032 | } 2033 | .col-md-push-6 { 2034 | left: 50%; 2035 | } 2036 | .col-md-push-5 { 2037 | left: 41.66666667%; 2038 | } 2039 | .col-md-push-4 { 2040 | left: 33.33333333%; 2041 | } 2042 | .col-md-push-3 { 2043 | left: 25%; 2044 | } 2045 | .col-md-push-2 { 2046 | left: 16.66666667%; 2047 | } 2048 | .col-md-push-1 { 2049 | left: 8.33333333%; 2050 | } 2051 | .col-md-push-0 { 2052 | left: auto; 2053 | } 2054 | .col-md-offset-12 { 2055 | margin-left: 100%; 2056 | } 2057 | .col-md-offset-11 { 2058 | margin-left: 91.66666667%; 2059 | } 2060 | .col-md-offset-10 { 2061 | margin-left: 83.33333333%; 2062 | } 2063 | .col-md-offset-9 { 2064 | margin-left: 75%; 2065 | } 2066 | .col-md-offset-8 { 2067 | margin-left: 66.66666667%; 2068 | } 2069 | .col-md-offset-7 { 2070 | margin-left: 58.33333333%; 2071 | } 2072 | .col-md-offset-6 { 2073 | margin-left: 50%; 2074 | } 2075 | .col-md-offset-5 { 2076 | margin-left: 41.66666667%; 2077 | } 2078 | .col-md-offset-4 { 2079 | margin-left: 33.33333333%; 2080 | } 2081 | .col-md-offset-3 { 2082 | margin-left: 25%; 2083 | } 2084 | .col-md-offset-2 { 2085 | margin-left: 16.66666667%; 2086 | } 2087 | .col-md-offset-1 { 2088 | margin-left: 8.33333333%; 2089 | } 2090 | .col-md-offset-0 { 2091 | margin-left: 0; 2092 | } 2093 | } 2094 | @media (min-width: 1200px) { 2095 | .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 { 2096 | float: left; 2097 | } 2098 | .col-lg-12 { 2099 | width: 100%; 2100 | } 2101 | .col-lg-11 { 2102 | width: 91.66666667%; 2103 | } 2104 | .col-lg-10 { 2105 | width: 83.33333333%; 2106 | } 2107 | .col-lg-9 { 2108 | width: 75%; 2109 | } 2110 | .col-lg-8 { 2111 | width: 66.66666667%; 2112 | } 2113 | .col-lg-7 { 2114 | width: 58.33333333%; 2115 | } 2116 | .col-lg-6 { 2117 | width: 50%; 2118 | } 2119 | .col-lg-5 { 2120 | width: 41.66666667%; 2121 | } 2122 | .col-lg-4 { 2123 | width: 33.33333333%; 2124 | } 2125 | .col-lg-3 { 2126 | width: 25%; 2127 | } 2128 | .col-lg-2 { 2129 | width: 16.66666667%; 2130 | } 2131 | .col-lg-1 { 2132 | width: 8.33333333%; 2133 | } 2134 | .col-lg-pull-12 { 2135 | right: 100%; 2136 | } 2137 | .col-lg-pull-11 { 2138 | right: 91.66666667%; 2139 | } 2140 | .col-lg-pull-10 { 2141 | right: 83.33333333%; 2142 | } 2143 | .col-lg-pull-9 { 2144 | right: 75%; 2145 | } 2146 | .col-lg-pull-8 { 2147 | right: 66.66666667%; 2148 | } 2149 | .col-lg-pull-7 { 2150 | right: 58.33333333%; 2151 | } 2152 | .col-lg-pull-6 { 2153 | right: 50%; 2154 | } 2155 | .col-lg-pull-5 { 2156 | right: 41.66666667%; 2157 | } 2158 | .col-lg-pull-4 { 2159 | right: 33.33333333%; 2160 | } 2161 | .col-lg-pull-3 { 2162 | right: 25%; 2163 | } 2164 | .col-lg-pull-2 { 2165 | right: 16.66666667%; 2166 | } 2167 | .col-lg-pull-1 { 2168 | right: 8.33333333%; 2169 | } 2170 | .col-lg-pull-0 { 2171 | right: auto; 2172 | } 2173 | .col-lg-push-12 { 2174 | left: 100%; 2175 | } 2176 | .col-lg-push-11 { 2177 | left: 91.66666667%; 2178 | } 2179 | .col-lg-push-10 { 2180 | left: 83.33333333%; 2181 | } 2182 | .col-lg-push-9 { 2183 | left: 75%; 2184 | } 2185 | .col-lg-push-8 { 2186 | left: 66.66666667%; 2187 | } 2188 | .col-lg-push-7 { 2189 | left: 58.33333333%; 2190 | } 2191 | .col-lg-push-6 { 2192 | left: 50%; 2193 | } 2194 | .col-lg-push-5 { 2195 | left: 41.66666667%; 2196 | } 2197 | .col-lg-push-4 { 2198 | left: 33.33333333%; 2199 | } 2200 | .col-lg-push-3 { 2201 | left: 25%; 2202 | } 2203 | .col-lg-push-2 { 2204 | left: 16.66666667%; 2205 | } 2206 | .col-lg-push-1 { 2207 | left: 8.33333333%; 2208 | } 2209 | .col-lg-push-0 { 2210 | left: auto; 2211 | } 2212 | .col-lg-offset-12 { 2213 | margin-left: 100%; 2214 | } 2215 | .col-lg-offset-11 { 2216 | margin-left: 91.66666667%; 2217 | } 2218 | .col-lg-offset-10 { 2219 | margin-left: 83.33333333%; 2220 | } 2221 | .col-lg-offset-9 { 2222 | margin-left: 75%; 2223 | } 2224 | .col-lg-offset-8 { 2225 | margin-left: 66.66666667%; 2226 | } 2227 | .col-lg-offset-7 { 2228 | margin-left: 58.33333333%; 2229 | } 2230 | .col-lg-offset-6 { 2231 | margin-left: 50%; 2232 | } 2233 | .col-lg-offset-5 { 2234 | margin-left: 41.66666667%; 2235 | } 2236 | .col-lg-offset-4 { 2237 | margin-left: 33.33333333%; 2238 | } 2239 | .col-lg-offset-3 { 2240 | margin-left: 25%; 2241 | } 2242 | .col-lg-offset-2 { 2243 | margin-left: 16.66666667%; 2244 | } 2245 | .col-lg-offset-1 { 2246 | margin-left: 8.33333333%; 2247 | } 2248 | .col-lg-offset-0 { 2249 | margin-left: 0; 2250 | } 2251 | } 2252 | table { 2253 | background-color: transparent; 2254 | } 2255 | caption { 2256 | padding-top: 8px; 2257 | padding-bottom: 8px; 2258 | color: #777; 2259 | text-align: left; 2260 | } 2261 | th { 2262 | text-align: left; 2263 | } 2264 | .table { 2265 | width: 100%; 2266 | max-width: 100%; 2267 | margin-bottom: 20px; 2268 | } 2269 | .table > thead > tr > th, 2270 | .table > tbody > tr > th, 2271 | .table > tfoot > tr > th, 2272 | .table > thead > tr > td, 2273 | .table > tbody > tr > td, 2274 | .table > tfoot > tr > td { 2275 | padding: 8px; 2276 | line-height: 1.42857143; 2277 | vertical-align: top; 2278 | border-top: 1px solid #ddd; 2279 | } 2280 | .table > thead > tr > th { 2281 | vertical-align: bottom; 2282 | border-bottom: 2px solid #ddd; 2283 | } 2284 | .table > caption + thead > tr:first-child > th, 2285 | .table > colgroup + thead > tr:first-child > th, 2286 | .table > thead:first-child > tr:first-child > th, 2287 | .table > caption + thead > tr:first-child > td, 2288 | .table > colgroup + thead > tr:first-child > td, 2289 | .table > thead:first-child > tr:first-child > td { 2290 | border-top: 0; 2291 | } 2292 | .table > tbody + tbody { 2293 | border-top: 2px solid #ddd; 2294 | } 2295 | .table .table { 2296 | background-color: #fff; 2297 | } 2298 | .table-condensed > thead > tr > th, 2299 | .table-condensed > tbody > tr > th, 2300 | .table-condensed > tfoot > tr > th, 2301 | .table-condensed > thead > tr > td, 2302 | .table-condensed > tbody > tr > td, 2303 | .table-condensed > tfoot > tr > td { 2304 | padding: 5px; 2305 | } 2306 | .table-bordered { 2307 | border: 1px solid #ddd; 2308 | } 2309 | .table-bordered > thead > tr > th, 2310 | .table-bordered > tbody > tr > th, 2311 | .table-bordered > tfoot > tr > th, 2312 | .table-bordered > thead > tr > td, 2313 | .table-bordered > tbody > tr > td, 2314 | .table-bordered > tfoot > tr > td { 2315 | border: 1px solid #ddd; 2316 | } 2317 | .table-bordered > thead > tr > th, 2318 | .table-bordered > thead > tr > td { 2319 | border-bottom-width: 2px; 2320 | } 2321 | .table-striped > tbody > tr:nth-of-type(odd) { 2322 | background-color: #f9f9f9; 2323 | } 2324 | .table-hover > tbody > tr:hover { 2325 | background-color: #f5f5f5; 2326 | } 2327 | table col[class*="col-"] { 2328 | position: static; 2329 | display: table-column; 2330 | float: none; 2331 | } 2332 | table td[class*="col-"], 2333 | table th[class*="col-"] { 2334 | position: static; 2335 | display: table-cell; 2336 | float: none; 2337 | } 2338 | .table > thead > tr > td.active, 2339 | .table > tbody > tr > td.active, 2340 | .table > tfoot > tr > td.active, 2341 | .table > thead > tr > th.active, 2342 | .table > tbody > tr > th.active, 2343 | .table > tfoot > tr > th.active, 2344 | .table > thead > tr.active > td, 2345 | .table > tbody > tr.active > td, 2346 | .table > tfoot > tr.active > td, 2347 | .table > thead > tr.active > th, 2348 | .table > tbody > tr.active > th, 2349 | .table > tfoot > tr.active > th { 2350 | background-color: #f5f5f5; 2351 | } 2352 | .table-hover > tbody > tr > td.active:hover, 2353 | .table-hover > tbody > tr > th.active:hover, 2354 | .table-hover > tbody > tr.active:hover > td, 2355 | .table-hover > tbody > tr:hover > .active, 2356 | .table-hover > tbody > tr.active:hover > th { 2357 | background-color: #e8e8e8; 2358 | } 2359 | .table > thead > tr > td.success, 2360 | .table > tbody > tr > td.success, 2361 | .table > tfoot > tr > td.success, 2362 | .table > thead > tr > th.success, 2363 | .table > tbody > tr > th.success, 2364 | .table > tfoot > tr > th.success, 2365 | .table > thead > tr.success > td, 2366 | .table > tbody > tr.success > td, 2367 | .table > tfoot > tr.success > td, 2368 | .table > thead > tr.success > th, 2369 | .table > tbody > tr.success > th, 2370 | .table > tfoot > tr.success > th { 2371 | background-color: #dff0d8; 2372 | } 2373 | .table-hover > tbody > tr > td.success:hover, 2374 | .table-hover > tbody > tr > th.success:hover, 2375 | .table-hover > tbody > tr.success:hover > td, 2376 | .table-hover > tbody > tr:hover > .success, 2377 | .table-hover > tbody > tr.success:hover > th { 2378 | background-color: #d0e9c6; 2379 | } 2380 | .table > thead > tr > td.info, 2381 | .table > tbody > tr > td.info, 2382 | .table > tfoot > tr > td.info, 2383 | .table > thead > tr > th.info, 2384 | .table > tbody > tr > th.info, 2385 | .table > tfoot > tr > th.info, 2386 | .table > thead > tr.info > td, 2387 | .table > tbody > tr.info > td, 2388 | .table > tfoot > tr.info > td, 2389 | .table > thead > tr.info > th, 2390 | .table > tbody > tr.info > th, 2391 | .table > tfoot > tr.info > th { 2392 | background-color: #d9edf7; 2393 | } 2394 | .table-hover > tbody > tr > td.info:hover, 2395 | .table-hover > tbody > tr > th.info:hover, 2396 | .table-hover > tbody > tr.info:hover > td, 2397 | .table-hover > tbody > tr:hover > .info, 2398 | .table-hover > tbody > tr.info:hover > th { 2399 | background-color: #c4e3f3; 2400 | } 2401 | .table > thead > tr > td.warning, 2402 | .table > tbody > tr > td.warning, 2403 | .table > tfoot > tr > td.warning, 2404 | .table > thead > tr > th.warning, 2405 | .table > tbody > tr > th.warning, 2406 | .table > tfoot > tr > th.warning, 2407 | .table > thead > tr.warning > td, 2408 | .table > tbody > tr.warning > td, 2409 | .table > tfoot > tr.warning > td, 2410 | .table > thead > tr.warning > th, 2411 | .table > tbody > tr.warning > th, 2412 | .table > tfoot > tr.warning > th { 2413 | background-color: #fcf8e3; 2414 | } 2415 | .table-hover > tbody > tr > td.warning:hover, 2416 | .table-hover > tbody > tr > th.warning:hover, 2417 | .table-hover > tbody > tr.warning:hover > td, 2418 | .table-hover > tbody > tr:hover > .warning, 2419 | .table-hover > tbody > tr.warning:hover > th { 2420 | background-color: #faf2cc; 2421 | } 2422 | .table > thead > tr > td.danger, 2423 | .table > tbody > tr > td.danger, 2424 | .table > tfoot > tr > td.danger, 2425 | .table > thead > tr > th.danger, 2426 | .table > tbody > tr > th.danger, 2427 | .table > tfoot > tr > th.danger, 2428 | .table > thead > tr.danger > td, 2429 | .table > tbody > tr.danger > td, 2430 | .table > tfoot > tr.danger > td, 2431 | .table > thead > tr.danger > th, 2432 | .table > tbody > tr.danger > th, 2433 | .table > tfoot > tr.danger > th { 2434 | background-color: #f2dede; 2435 | } 2436 | .table-hover > tbody > tr > td.danger:hover, 2437 | .table-hover > tbody > tr > th.danger:hover, 2438 | .table-hover > tbody > tr.danger:hover > td, 2439 | .table-hover > tbody > tr:hover > .danger, 2440 | .table-hover > tbody > tr.danger:hover > th { 2441 | background-color: #ebcccc; 2442 | } 2443 | .table-responsive { 2444 | min-height: .01%; 2445 | overflow-x: auto; 2446 | } 2447 | @media screen and (max-width: 767px) { 2448 | .table-responsive { 2449 | width: 100%; 2450 | margin-bottom: 15px; 2451 | overflow-y: hidden; 2452 | -ms-overflow-style: -ms-autohiding-scrollbar; 2453 | border: 1px solid #ddd; 2454 | } 2455 | .table-responsive > .table { 2456 | margin-bottom: 0; 2457 | } 2458 | .table-responsive > .table > thead > tr > th, 2459 | .table-responsive > .table > tbody > tr > th, 2460 | .table-responsive > .table > tfoot > tr > th, 2461 | .table-responsive > .table > thead > tr > td, 2462 | .table-responsive > .table > tbody > tr > td, 2463 | .table-responsive > .table > tfoot > tr > td { 2464 | white-space: nowrap; 2465 | } 2466 | .table-responsive > .table-bordered { 2467 | border: 0; 2468 | } 2469 | .table-responsive > .table-bordered > thead > tr > th:first-child, 2470 | .table-responsive > .table-bordered > tbody > tr > th:first-child, 2471 | .table-responsive > .table-bordered > tfoot > tr > th:first-child, 2472 | .table-responsive > .table-bordered > thead > tr > td:first-child, 2473 | .table-responsive > .table-bordered > tbody > tr > td:first-child, 2474 | .table-responsive > .table-bordered > tfoot > tr > td:first-child { 2475 | border-left: 0; 2476 | } 2477 | .table-responsive > .table-bordered > thead > tr > th:last-child, 2478 | .table-responsive > .table-bordered > tbody > tr > th:last-child, 2479 | .table-responsive > .table-bordered > tfoot > tr > th:last-child, 2480 | .table-responsive > .table-bordered > thead > tr > td:last-child, 2481 | .table-responsive > .table-bordered > tbody > tr > td:last-child, 2482 | .table-responsive > .table-bordered > tfoot > tr > td:last-child { 2483 | border-right: 0; 2484 | } 2485 | .table-responsive > .table-bordered > tbody > tr:last-child > th, 2486 | .table-responsive > .table-bordered > tfoot > tr:last-child > th, 2487 | .table-responsive > .table-bordered > tbody > tr:last-child > td, 2488 | .table-responsive > .table-bordered > tfoot > tr:last-child > td { 2489 | border-bottom: 0; 2490 | } 2491 | } 2492 | fieldset { 2493 | min-width: 0; 2494 | padding: 0; 2495 | margin: 0; 2496 | border: 0; 2497 | } 2498 | legend { 2499 | display: block; 2500 | width: 100%; 2501 | padding: 0; 2502 | margin-bottom: 20px; 2503 | font-size: 21px; 2504 | line-height: inherit; 2505 | color: #333; 2506 | border: 0; 2507 | border-bottom: 1px solid #e5e5e5; 2508 | } 2509 | label { 2510 | display: inline-block; 2511 | max-width: 100%; 2512 | margin-bottom: 5px; 2513 | font-weight: bold; 2514 | } 2515 | input[type="search"] { 2516 | -webkit-box-sizing: border-box; 2517 | -moz-box-sizing: border-box; 2518 | box-sizing: border-box; 2519 | } 2520 | input[type="radio"], 2521 | input[type="checkbox"] { 2522 | margin: 4px 0 0; 2523 | margin-top: 1px \9; 2524 | line-height: normal; 2525 | } 2526 | input[type="file"] { 2527 | display: block; 2528 | } 2529 | input[type="range"] { 2530 | display: block; 2531 | width: 100%; 2532 | } 2533 | select[multiple], 2534 | select[size] { 2535 | height: auto; 2536 | } 2537 | input[type="file"]:focus, 2538 | input[type="radio"]:focus, 2539 | input[type="checkbox"]:focus { 2540 | outline: thin dotted; 2541 | outline: 5px auto -webkit-focus-ring-color; 2542 | outline-offset: -2px; 2543 | } 2544 | output { 2545 | display: block; 2546 | padding-top: 7px; 2547 | font-size: 14px; 2548 | line-height: 1.42857143; 2549 | color: #555; 2550 | } 2551 | .form-control { 2552 | display: block; 2553 | width: 100%; 2554 | height: 34px; 2555 | padding: 6px 12px; 2556 | font-size: 14px; 2557 | line-height: 1.42857143; 2558 | color: #555; 2559 | background-color: #fff; 2560 | background-image: none; 2561 | border: 1px solid #ccc; 2562 | border-radius: 4px; 2563 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 2564 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 2565 | -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; 2566 | -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; 2567 | transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; 2568 | } 2569 | .form-control:focus { 2570 | border-color: #66afe9; 2571 | outline: 0; 2572 | -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); 2573 | box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); 2574 | } 2575 | .form-control::-moz-placeholder { 2576 | color: #999; 2577 | opacity: 1; 2578 | } 2579 | .form-control:-ms-input-placeholder { 2580 | color: #999; 2581 | } 2582 | .form-control::-webkit-input-placeholder { 2583 | color: #999; 2584 | } 2585 | .form-control::-ms-expand { 2586 | background-color: transparent; 2587 | border: 0; 2588 | } 2589 | .form-control[disabled], 2590 | .form-control[readonly], 2591 | fieldset[disabled] .form-control { 2592 | background-color: #eee; 2593 | opacity: 1; 2594 | } 2595 | .form-control[disabled], 2596 | fieldset[disabled] .form-control { 2597 | cursor: not-allowed; 2598 | } 2599 | textarea.form-control { 2600 | height: auto; 2601 | } 2602 | input[type="search"] { 2603 | -webkit-appearance: none; 2604 | } 2605 | @media screen and (-webkit-min-device-pixel-ratio: 0) { 2606 | input[type="date"].form-control, 2607 | input[type="time"].form-control, 2608 | input[type="datetime-local"].form-control, 2609 | input[type="month"].form-control { 2610 | line-height: 34px; 2611 | } 2612 | input[type="date"].input-sm, 2613 | input[type="time"].input-sm, 2614 | input[type="datetime-local"].input-sm, 2615 | input[type="month"].input-sm, 2616 | .input-group-sm input[type="date"], 2617 | .input-group-sm input[type="time"], 2618 | .input-group-sm input[type="datetime-local"], 2619 | .input-group-sm input[type="month"] { 2620 | line-height: 30px; 2621 | } 2622 | input[type="date"].input-lg, 2623 | input[type="time"].input-lg, 2624 | input[type="datetime-local"].input-lg, 2625 | input[type="month"].input-lg, 2626 | .input-group-lg input[type="date"], 2627 | .input-group-lg input[type="time"], 2628 | .input-group-lg input[type="datetime-local"], 2629 | .input-group-lg input[type="month"] { 2630 | line-height: 46px; 2631 | } 2632 | } 2633 | .form-group { 2634 | margin-bottom: 15px; 2635 | } 2636 | .radio, 2637 | .checkbox { 2638 | position: relative; 2639 | display: block; 2640 | margin-top: 10px; 2641 | margin-bottom: 10px; 2642 | } 2643 | .radio label, 2644 | .checkbox label { 2645 | min-height: 20px; 2646 | padding-left: 20px; 2647 | margin-bottom: 0; 2648 | font-weight: normal; 2649 | cursor: pointer; 2650 | } 2651 | .radio input[type="radio"], 2652 | .radio-inline input[type="radio"], 2653 | .checkbox input[type="checkbox"], 2654 | .checkbox-inline input[type="checkbox"] { 2655 | position: absolute; 2656 | margin-top: 4px \9; 2657 | margin-left: -20px; 2658 | } 2659 | .radio + .radio, 2660 | .checkbox + .checkbox { 2661 | margin-top: -5px; 2662 | } 2663 | .radio-inline, 2664 | .checkbox-inline { 2665 | position: relative; 2666 | display: inline-block; 2667 | padding-left: 20px; 2668 | margin-bottom: 0; 2669 | font-weight: normal; 2670 | vertical-align: middle; 2671 | cursor: pointer; 2672 | } 2673 | .radio-inline + .radio-inline, 2674 | .checkbox-inline + .checkbox-inline { 2675 | margin-top: 0; 2676 | margin-left: 10px; 2677 | } 2678 | input[type="radio"][disabled], 2679 | input[type="checkbox"][disabled], 2680 | input[type="radio"].disabled, 2681 | input[type="checkbox"].disabled, 2682 | fieldset[disabled] input[type="radio"], 2683 | fieldset[disabled] input[type="checkbox"] { 2684 | cursor: not-allowed; 2685 | } 2686 | .radio-inline.disabled, 2687 | .checkbox-inline.disabled, 2688 | fieldset[disabled] .radio-inline, 2689 | fieldset[disabled] .checkbox-inline { 2690 | cursor: not-allowed; 2691 | } 2692 | .radio.disabled label, 2693 | .checkbox.disabled label, 2694 | fieldset[disabled] .radio label, 2695 | fieldset[disabled] .checkbox label { 2696 | cursor: not-allowed; 2697 | } 2698 | .form-control-static { 2699 | min-height: 34px; 2700 | padding-top: 7px; 2701 | padding-bottom: 7px; 2702 | margin-bottom: 0; 2703 | } 2704 | .form-control-static.input-lg, 2705 | .form-control-static.input-sm { 2706 | padding-right: 0; 2707 | padding-left: 0; 2708 | } 2709 | .input-sm { 2710 | height: 30px; 2711 | padding: 5px 10px; 2712 | font-size: 12px; 2713 | line-height: 1.5; 2714 | border-radius: 3px; 2715 | } 2716 | select.input-sm { 2717 | height: 30px; 2718 | line-height: 30px; 2719 | } 2720 | textarea.input-sm, 2721 | select[multiple].input-sm { 2722 | height: auto; 2723 | } 2724 | .form-group-sm .form-control { 2725 | height: 30px; 2726 | padding: 5px 10px; 2727 | font-size: 12px; 2728 | line-height: 1.5; 2729 | border-radius: 3px; 2730 | } 2731 | .form-group-sm select.form-control { 2732 | height: 30px; 2733 | line-height: 30px; 2734 | } 2735 | .form-group-sm textarea.form-control, 2736 | .form-group-sm select[multiple].form-control { 2737 | height: auto; 2738 | } 2739 | .form-group-sm .form-control-static { 2740 | height: 30px; 2741 | min-height: 32px; 2742 | padding: 6px 10px; 2743 | font-size: 12px; 2744 | line-height: 1.5; 2745 | } 2746 | .input-lg { 2747 | height: 46px; 2748 | padding: 10px 16px; 2749 | font-size: 18px; 2750 | line-height: 1.3333333; 2751 | border-radius: 6px; 2752 | } 2753 | select.input-lg { 2754 | height: 46px; 2755 | line-height: 46px; 2756 | } 2757 | textarea.input-lg, 2758 | select[multiple].input-lg { 2759 | height: auto; 2760 | } 2761 | .form-group-lg .form-control { 2762 | height: 46px; 2763 | padding: 10px 16px; 2764 | font-size: 18px; 2765 | line-height: 1.3333333; 2766 | border-radius: 6px; 2767 | } 2768 | .form-group-lg select.form-control { 2769 | height: 46px; 2770 | line-height: 46px; 2771 | } 2772 | .form-group-lg textarea.form-control, 2773 | .form-group-lg select[multiple].form-control { 2774 | height: auto; 2775 | } 2776 | .form-group-lg .form-control-static { 2777 | height: 46px; 2778 | min-height: 38px; 2779 | padding: 11px 16px; 2780 | font-size: 18px; 2781 | line-height: 1.3333333; 2782 | } 2783 | .has-feedback { 2784 | position: relative; 2785 | } 2786 | .has-feedback .form-control { 2787 | padding-right: 42.5px; 2788 | } 2789 | .form-control-feedback { 2790 | position: absolute; 2791 | top: 0; 2792 | right: 0; 2793 | z-index: 2; 2794 | display: block; 2795 | width: 34px; 2796 | height: 34px; 2797 | line-height: 34px; 2798 | text-align: center; 2799 | pointer-events: none; 2800 | } 2801 | .input-lg + .form-control-feedback, 2802 | .input-group-lg + .form-control-feedback, 2803 | .form-group-lg .form-control + .form-control-feedback { 2804 | width: 46px; 2805 | height: 46px; 2806 | line-height: 46px; 2807 | } 2808 | .input-sm + .form-control-feedback, 2809 | .input-group-sm + .form-control-feedback, 2810 | .form-group-sm .form-control + .form-control-feedback { 2811 | width: 30px; 2812 | height: 30px; 2813 | line-height: 30px; 2814 | } 2815 | .has-success .help-block, 2816 | .has-success .control-label, 2817 | .has-success .radio, 2818 | .has-success .checkbox, 2819 | .has-success .radio-inline, 2820 | .has-success .checkbox-inline, 2821 | .has-success.radio label, 2822 | .has-success.checkbox label, 2823 | .has-success.radio-inline label, 2824 | .has-success.checkbox-inline label { 2825 | color: #3c763d; 2826 | } 2827 | .has-success .form-control { 2828 | border-color: #3c763d; 2829 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 2830 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 2831 | } 2832 | .has-success .form-control:focus { 2833 | border-color: #2b542c; 2834 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; 2835 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; 2836 | } 2837 | .has-success .input-group-addon { 2838 | color: #3c763d; 2839 | background-color: #dff0d8; 2840 | border-color: #3c763d; 2841 | } 2842 | .has-success .form-control-feedback { 2843 | color: #3c763d; 2844 | } 2845 | .has-warning .help-block, 2846 | .has-warning .control-label, 2847 | .has-warning .radio, 2848 | .has-warning .checkbox, 2849 | .has-warning .radio-inline, 2850 | .has-warning .checkbox-inline, 2851 | .has-warning.radio label, 2852 | .has-warning.checkbox label, 2853 | .has-warning.radio-inline label, 2854 | .has-warning.checkbox-inline label { 2855 | color: #8a6d3b; 2856 | } 2857 | .has-warning .form-control { 2858 | border-color: #8a6d3b; 2859 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 2860 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 2861 | } 2862 | .has-warning .form-control:focus { 2863 | border-color: #66512c; 2864 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; 2865 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; 2866 | } 2867 | .has-warning .input-group-addon { 2868 | color: #8a6d3b; 2869 | background-color: #fcf8e3; 2870 | border-color: #8a6d3b; 2871 | } 2872 | .has-warning .form-control-feedback { 2873 | color: #8a6d3b; 2874 | } 2875 | .has-error .help-block, 2876 | .has-error .control-label, 2877 | .has-error .radio, 2878 | .has-error .checkbox, 2879 | .has-error .radio-inline, 2880 | .has-error .checkbox-inline, 2881 | .has-error.radio label, 2882 | .has-error.checkbox label, 2883 | .has-error.radio-inline label, 2884 | .has-error.checkbox-inline label { 2885 | color: #a94442; 2886 | } 2887 | .has-error .form-control { 2888 | border-color: #a94442; 2889 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 2890 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); 2891 | } 2892 | .has-error .form-control:focus { 2893 | border-color: #843534; 2894 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; 2895 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; 2896 | } 2897 | .has-error .input-group-addon { 2898 | color: #a94442; 2899 | background-color: #f2dede; 2900 | border-color: #a94442; 2901 | } 2902 | .has-error .form-control-feedback { 2903 | color: #a94442; 2904 | } 2905 | .has-feedback label ~ .form-control-feedback { 2906 | top: 25px; 2907 | } 2908 | .has-feedback label.sr-only ~ .form-control-feedback { 2909 | top: 0; 2910 | } 2911 | .help-block { 2912 | display: block; 2913 | margin-top: 5px; 2914 | margin-bottom: 10px; 2915 | color: #737373; 2916 | } 2917 | @media (min-width: 768px) { 2918 | .form-inline .form-group { 2919 | display: inline-block; 2920 | margin-bottom: 0; 2921 | vertical-align: middle; 2922 | } 2923 | .form-inline .form-control { 2924 | display: inline-block; 2925 | width: auto; 2926 | vertical-align: middle; 2927 | } 2928 | .form-inline .form-control-static { 2929 | display: inline-block; 2930 | } 2931 | .form-inline .input-group { 2932 | display: inline-table; 2933 | vertical-align: middle; 2934 | } 2935 | .form-inline .input-group .input-group-addon, 2936 | .form-inline .input-group .input-group-btn, 2937 | .form-inline .input-group .form-control { 2938 | width: auto; 2939 | } 2940 | .form-inline .input-group > .form-control { 2941 | width: 100%; 2942 | } 2943 | .form-inline .control-label { 2944 | margin-bottom: 0; 2945 | vertical-align: middle; 2946 | } 2947 | .form-inline .radio, 2948 | .form-inline .checkbox { 2949 | display: inline-block; 2950 | margin-top: 0; 2951 | margin-bottom: 0; 2952 | vertical-align: middle; 2953 | } 2954 | .form-inline .radio label, 2955 | .form-inline .checkbox label { 2956 | padding-left: 0; 2957 | } 2958 | .form-inline .radio input[type="radio"], 2959 | .form-inline .checkbox input[type="checkbox"] { 2960 | position: relative; 2961 | margin-left: 0; 2962 | } 2963 | .form-inline .has-feedback .form-control-feedback { 2964 | top: 0; 2965 | } 2966 | } 2967 | .form-horizontal .radio, 2968 | .form-horizontal .checkbox, 2969 | .form-horizontal .radio-inline, 2970 | .form-horizontal .checkbox-inline { 2971 | padding-top: 7px; 2972 | margin-top: 0; 2973 | margin-bottom: 0; 2974 | } 2975 | .form-horizontal .radio, 2976 | .form-horizontal .checkbox { 2977 | min-height: 27px; 2978 | } 2979 | .form-horizontal .form-group { 2980 | margin-right: -15px; 2981 | margin-left: -15px; 2982 | } 2983 | @media (min-width: 768px) { 2984 | .form-horizontal .control-label { 2985 | padding-top: 7px; 2986 | margin-bottom: 0; 2987 | text-align: right; 2988 | } 2989 | } 2990 | .form-horizontal .has-feedback .form-control-feedback { 2991 | right: 15px; 2992 | } 2993 | @media (min-width: 768px) { 2994 | .form-horizontal .form-group-lg .control-label { 2995 | padding-top: 11px; 2996 | font-size: 18px; 2997 | } 2998 | } 2999 | @media (min-width: 768px) { 3000 | .form-horizontal .form-group-sm .control-label { 3001 | padding-top: 6px; 3002 | font-size: 12px; 3003 | } 3004 | } 3005 | .btn { 3006 | display: inline-block; 3007 | padding: 6px 12px; 3008 | margin-bottom: 0; 3009 | font-size: 14px; 3010 | font-weight: normal; 3011 | line-height: 1.42857143; 3012 | text-align: center; 3013 | white-space: nowrap; 3014 | vertical-align: middle; 3015 | -ms-touch-action: manipulation; 3016 | touch-action: manipulation; 3017 | cursor: pointer; 3018 | -webkit-user-select: none; 3019 | -moz-user-select: none; 3020 | -ms-user-select: none; 3021 | user-select: none; 3022 | background-image: none; 3023 | border: 1px solid transparent; 3024 | border-radius: 4px; 3025 | } 3026 | .btn:focus, 3027 | .btn:active:focus, 3028 | .btn.active:focus, 3029 | .btn.focus, 3030 | .btn:active.focus, 3031 | .btn.active.focus { 3032 | outline: thin dotted; 3033 | outline: 5px auto -webkit-focus-ring-color; 3034 | outline-offset: -2px; 3035 | } 3036 | .btn:hover, 3037 | .btn:focus, 3038 | .btn.focus { 3039 | color: #333; 3040 | text-decoration: none; 3041 | } 3042 | .btn:active, 3043 | .btn.active { 3044 | background-image: none; 3045 | outline: 0; 3046 | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 3047 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 3048 | } 3049 | .btn.disabled, 3050 | .btn[disabled], 3051 | fieldset[disabled] .btn { 3052 | cursor: not-allowed; 3053 | filter: alpha(opacity=65); 3054 | -webkit-box-shadow: none; 3055 | box-shadow: none; 3056 | opacity: .65; 3057 | } 3058 | a.btn.disabled, 3059 | fieldset[disabled] a.btn { 3060 | pointer-events: none; 3061 | } 3062 | .btn-default { 3063 | color: #333; 3064 | background-color: #fff; 3065 | border-color: #ccc; 3066 | } 3067 | .btn-default:focus, 3068 | .btn-default.focus { 3069 | color: #333; 3070 | background-color: #e6e6e6; 3071 | border-color: #8c8c8c; 3072 | } 3073 | .btn-default:hover { 3074 | color: #333; 3075 | background-color: #e6e6e6; 3076 | border-color: #adadad; 3077 | } 3078 | .btn-default:active, 3079 | .btn-default.active, 3080 | .open > .dropdown-toggle.btn-default { 3081 | color: #333; 3082 | background-color: #e6e6e6; 3083 | border-color: #adadad; 3084 | } 3085 | .btn-default:active:hover, 3086 | .btn-default.active:hover, 3087 | .open > .dropdown-toggle.btn-default:hover, 3088 | .btn-default:active:focus, 3089 | .btn-default.active:focus, 3090 | .open > .dropdown-toggle.btn-default:focus, 3091 | .btn-default:active.focus, 3092 | .btn-default.active.focus, 3093 | .open > .dropdown-toggle.btn-default.focus { 3094 | color: #333; 3095 | background-color: #d4d4d4; 3096 | border-color: #8c8c8c; 3097 | } 3098 | .btn-default:active, 3099 | .btn-default.active, 3100 | .open > .dropdown-toggle.btn-default { 3101 | background-image: none; 3102 | } 3103 | .btn-default.disabled:hover, 3104 | .btn-default[disabled]:hover, 3105 | fieldset[disabled] .btn-default:hover, 3106 | .btn-default.disabled:focus, 3107 | .btn-default[disabled]:focus, 3108 | fieldset[disabled] .btn-default:focus, 3109 | .btn-default.disabled.focus, 3110 | .btn-default[disabled].focus, 3111 | fieldset[disabled] .btn-default.focus { 3112 | background-color: #fff; 3113 | border-color: #ccc; 3114 | } 3115 | .btn-default .badge { 3116 | color: #fff; 3117 | background-color: #333; 3118 | } 3119 | .btn-primary { 3120 | color: #fff; 3121 | background-color: #337ab7; 3122 | border-color: #2e6da4; 3123 | } 3124 | .btn-primary:focus, 3125 | .btn-primary.focus { 3126 | color: #fff; 3127 | background-color: #286090; 3128 | border-color: #122b40; 3129 | } 3130 | .btn-primary:hover { 3131 | color: #fff; 3132 | background-color: #286090; 3133 | border-color: #204d74; 3134 | } 3135 | .btn-primary:active, 3136 | .btn-primary.active, 3137 | .open > .dropdown-toggle.btn-primary { 3138 | color: #fff; 3139 | background-color: #286090; 3140 | border-color: #204d74; 3141 | } 3142 | .btn-primary:active:hover, 3143 | .btn-primary.active:hover, 3144 | .open > .dropdown-toggle.btn-primary:hover, 3145 | .btn-primary:active:focus, 3146 | .btn-primary.active:focus, 3147 | .open > .dropdown-toggle.btn-primary:focus, 3148 | .btn-primary:active.focus, 3149 | .btn-primary.active.focus, 3150 | .open > .dropdown-toggle.btn-primary.focus { 3151 | color: #fff; 3152 | background-color: #204d74; 3153 | border-color: #122b40; 3154 | } 3155 | .btn-primary:active, 3156 | .btn-primary.active, 3157 | .open > .dropdown-toggle.btn-primary { 3158 | background-image: none; 3159 | } 3160 | .btn-primary.disabled:hover, 3161 | .btn-primary[disabled]:hover, 3162 | fieldset[disabled] .btn-primary:hover, 3163 | .btn-primary.disabled:focus, 3164 | .btn-primary[disabled]:focus, 3165 | fieldset[disabled] .btn-primary:focus, 3166 | .btn-primary.disabled.focus, 3167 | .btn-primary[disabled].focus, 3168 | fieldset[disabled] .btn-primary.focus { 3169 | background-color: #337ab7; 3170 | border-color: #2e6da4; 3171 | } 3172 | .btn-primary .badge { 3173 | color: #337ab7; 3174 | background-color: #fff; 3175 | } 3176 | .btn-success { 3177 | color: #fff; 3178 | background-color: #5cb85c; 3179 | border-color: #4cae4c; 3180 | } 3181 | .btn-success:focus, 3182 | .btn-success.focus { 3183 | color: #fff; 3184 | background-color: #449d44; 3185 | border-color: #255625; 3186 | } 3187 | .btn-success:hover { 3188 | color: #fff; 3189 | background-color: #449d44; 3190 | border-color: #398439; 3191 | } 3192 | .btn-success:active, 3193 | .btn-success.active, 3194 | .open > .dropdown-toggle.btn-success { 3195 | color: #fff; 3196 | background-color: #449d44; 3197 | border-color: #398439; 3198 | } 3199 | .btn-success:active:hover, 3200 | .btn-success.active:hover, 3201 | .open > .dropdown-toggle.btn-success:hover, 3202 | .btn-success:active:focus, 3203 | .btn-success.active:focus, 3204 | .open > .dropdown-toggle.btn-success:focus, 3205 | .btn-success:active.focus, 3206 | .btn-success.active.focus, 3207 | .open > .dropdown-toggle.btn-success.focus { 3208 | color: #fff; 3209 | background-color: #398439; 3210 | border-color: #255625; 3211 | } 3212 | .btn-success:active, 3213 | .btn-success.active, 3214 | .open > .dropdown-toggle.btn-success { 3215 | background-image: none; 3216 | } 3217 | .btn-success.disabled:hover, 3218 | .btn-success[disabled]:hover, 3219 | fieldset[disabled] .btn-success:hover, 3220 | .btn-success.disabled:focus, 3221 | .btn-success[disabled]:focus, 3222 | fieldset[disabled] .btn-success:focus, 3223 | .btn-success.disabled.focus, 3224 | .btn-success[disabled].focus, 3225 | fieldset[disabled] .btn-success.focus { 3226 | background-color: #5cb85c; 3227 | border-color: #4cae4c; 3228 | } 3229 | .btn-success .badge { 3230 | color: #5cb85c; 3231 | background-color: #fff; 3232 | } 3233 | .btn-info { 3234 | color: #fff; 3235 | background-color: #5bc0de; 3236 | border-color: #46b8da; 3237 | } 3238 | .btn-info:focus, 3239 | .btn-info.focus { 3240 | color: #fff; 3241 | background-color: #31b0d5; 3242 | border-color: #1b6d85; 3243 | } 3244 | .btn-info:hover { 3245 | color: #fff; 3246 | background-color: #31b0d5; 3247 | border-color: #269abc; 3248 | } 3249 | .btn-info:active, 3250 | .btn-info.active, 3251 | .open > .dropdown-toggle.btn-info { 3252 | color: #fff; 3253 | background-color: #31b0d5; 3254 | border-color: #269abc; 3255 | } 3256 | .btn-info:active:hover, 3257 | .btn-info.active:hover, 3258 | .open > .dropdown-toggle.btn-info:hover, 3259 | .btn-info:active:focus, 3260 | .btn-info.active:focus, 3261 | .open > .dropdown-toggle.btn-info:focus, 3262 | .btn-info:active.focus, 3263 | .btn-info.active.focus, 3264 | .open > .dropdown-toggle.btn-info.focus { 3265 | color: #fff; 3266 | background-color: #269abc; 3267 | border-color: #1b6d85; 3268 | } 3269 | .btn-info:active, 3270 | .btn-info.active, 3271 | .open > .dropdown-toggle.btn-info { 3272 | background-image: none; 3273 | } 3274 | .btn-info.disabled:hover, 3275 | .btn-info[disabled]:hover, 3276 | fieldset[disabled] .btn-info:hover, 3277 | .btn-info.disabled:focus, 3278 | .btn-info[disabled]:focus, 3279 | fieldset[disabled] .btn-info:focus, 3280 | .btn-info.disabled.focus, 3281 | .btn-info[disabled].focus, 3282 | fieldset[disabled] .btn-info.focus { 3283 | background-color: #5bc0de; 3284 | border-color: #46b8da; 3285 | } 3286 | .btn-info .badge { 3287 | color: #5bc0de; 3288 | background-color: #fff; 3289 | } 3290 | .btn-warning { 3291 | color: #fff; 3292 | background-color: #f0ad4e; 3293 | border-color: #eea236; 3294 | } 3295 | .btn-warning:focus, 3296 | .btn-warning.focus { 3297 | color: #fff; 3298 | background-color: #ec971f; 3299 | border-color: #985f0d; 3300 | } 3301 | .btn-warning:hover { 3302 | color: #fff; 3303 | background-color: #ec971f; 3304 | border-color: #d58512; 3305 | } 3306 | .btn-warning:active, 3307 | .btn-warning.active, 3308 | .open > .dropdown-toggle.btn-warning { 3309 | color: #fff; 3310 | background-color: #ec971f; 3311 | border-color: #d58512; 3312 | } 3313 | .btn-warning:active:hover, 3314 | .btn-warning.active:hover, 3315 | .open > .dropdown-toggle.btn-warning:hover, 3316 | .btn-warning:active:focus, 3317 | .btn-warning.active:focus, 3318 | .open > .dropdown-toggle.btn-warning:focus, 3319 | .btn-warning:active.focus, 3320 | .btn-warning.active.focus, 3321 | .open > .dropdown-toggle.btn-warning.focus { 3322 | color: #fff; 3323 | background-color: #d58512; 3324 | border-color: #985f0d; 3325 | } 3326 | .btn-warning:active, 3327 | .btn-warning.active, 3328 | .open > .dropdown-toggle.btn-warning { 3329 | background-image: none; 3330 | } 3331 | .btn-warning.disabled:hover, 3332 | .btn-warning[disabled]:hover, 3333 | fieldset[disabled] .btn-warning:hover, 3334 | .btn-warning.disabled:focus, 3335 | .btn-warning[disabled]:focus, 3336 | fieldset[disabled] .btn-warning:focus, 3337 | .btn-warning.disabled.focus, 3338 | .btn-warning[disabled].focus, 3339 | fieldset[disabled] .btn-warning.focus { 3340 | background-color: #f0ad4e; 3341 | border-color: #eea236; 3342 | } 3343 | .btn-warning .badge { 3344 | color: #f0ad4e; 3345 | background-color: #fff; 3346 | } 3347 | .btn-danger { 3348 | color: #fff; 3349 | background-color: #d9534f; 3350 | border-color: #d43f3a; 3351 | } 3352 | .btn-danger:focus, 3353 | .btn-danger.focus { 3354 | color: #fff; 3355 | background-color: #c9302c; 3356 | border-color: #761c19; 3357 | } 3358 | .btn-danger:hover { 3359 | color: #fff; 3360 | background-color: #c9302c; 3361 | border-color: #ac2925; 3362 | } 3363 | .btn-danger:active, 3364 | .btn-danger.active, 3365 | .open > .dropdown-toggle.btn-danger { 3366 | color: #fff; 3367 | background-color: #c9302c; 3368 | border-color: #ac2925; 3369 | } 3370 | .btn-danger:active:hover, 3371 | .btn-danger.active:hover, 3372 | .open > .dropdown-toggle.btn-danger:hover, 3373 | .btn-danger:active:focus, 3374 | .btn-danger.active:focus, 3375 | .open > .dropdown-toggle.btn-danger:focus, 3376 | .btn-danger:active.focus, 3377 | .btn-danger.active.focus, 3378 | .open > .dropdown-toggle.btn-danger.focus { 3379 | color: #fff; 3380 | background-color: #ac2925; 3381 | border-color: #761c19; 3382 | } 3383 | .btn-danger:active, 3384 | .btn-danger.active, 3385 | .open > .dropdown-toggle.btn-danger { 3386 | background-image: none; 3387 | } 3388 | .btn-danger.disabled:hover, 3389 | .btn-danger[disabled]:hover, 3390 | fieldset[disabled] .btn-danger:hover, 3391 | .btn-danger.disabled:focus, 3392 | .btn-danger[disabled]:focus, 3393 | fieldset[disabled] .btn-danger:focus, 3394 | .btn-danger.disabled.focus, 3395 | .btn-danger[disabled].focus, 3396 | fieldset[disabled] .btn-danger.focus { 3397 | background-color: #d9534f; 3398 | border-color: #d43f3a; 3399 | } 3400 | .btn-danger .badge { 3401 | color: #d9534f; 3402 | background-color: #fff; 3403 | } 3404 | .btn-link { 3405 | font-weight: normal; 3406 | color: #337ab7; 3407 | border-radius: 0; 3408 | } 3409 | .btn-link, 3410 | .btn-link:active, 3411 | .btn-link.active, 3412 | .btn-link[disabled], 3413 | fieldset[disabled] .btn-link { 3414 | background-color: transparent; 3415 | -webkit-box-shadow: none; 3416 | box-shadow: none; 3417 | } 3418 | .btn-link, 3419 | .btn-link:hover, 3420 | .btn-link:focus, 3421 | .btn-link:active { 3422 | border-color: transparent; 3423 | } 3424 | .btn-link:hover, 3425 | .btn-link:focus { 3426 | color: #23527c; 3427 | text-decoration: underline; 3428 | background-color: transparent; 3429 | } 3430 | .btn-link[disabled]:hover, 3431 | fieldset[disabled] .btn-link:hover, 3432 | .btn-link[disabled]:focus, 3433 | fieldset[disabled] .btn-link:focus { 3434 | color: #777; 3435 | text-decoration: none; 3436 | } 3437 | .btn-lg, 3438 | .btn-group-lg > .btn { 3439 | padding: 10px 16px; 3440 | font-size: 18px; 3441 | line-height: 1.3333333; 3442 | border-radius: 6px; 3443 | } 3444 | .btn-sm, 3445 | .btn-group-sm > .btn { 3446 | padding: 5px 10px; 3447 | font-size: 12px; 3448 | line-height: 1.5; 3449 | border-radius: 3px; 3450 | } 3451 | .btn-xs, 3452 | .btn-group-xs > .btn { 3453 | padding: 1px 5px; 3454 | font-size: 12px; 3455 | line-height: 1.5; 3456 | border-radius: 3px; 3457 | } 3458 | .btn-block { 3459 | display: block; 3460 | width: 100%; 3461 | } 3462 | .btn-block + .btn-block { 3463 | margin-top: 5px; 3464 | } 3465 | input[type="submit"].btn-block, 3466 | input[type="reset"].btn-block, 3467 | input[type="button"].btn-block { 3468 | width: 100%; 3469 | } 3470 | .fade { 3471 | opacity: 0; 3472 | -webkit-transition: opacity .15s linear; 3473 | -o-transition: opacity .15s linear; 3474 | transition: opacity .15s linear; 3475 | } 3476 | .fade.in { 3477 | opacity: 1; 3478 | } 3479 | .collapse { 3480 | display: none; 3481 | } 3482 | .collapse.in { 3483 | display: block; 3484 | } 3485 | tr.collapse.in { 3486 | display: table-row; 3487 | } 3488 | tbody.collapse.in { 3489 | display: table-row-group; 3490 | } 3491 | .collapsing { 3492 | position: relative; 3493 | height: 0; 3494 | overflow: hidden; 3495 | -webkit-transition-timing-function: ease; 3496 | -o-transition-timing-function: ease; 3497 | transition-timing-function: ease; 3498 | -webkit-transition-duration: .35s; 3499 | -o-transition-duration: .35s; 3500 | transition-duration: .35s; 3501 | -webkit-transition-property: height, visibility; 3502 | -o-transition-property: height, visibility; 3503 | transition-property: height, visibility; 3504 | } 3505 | .caret { 3506 | display: inline-block; 3507 | width: 0; 3508 | height: 0; 3509 | margin-left: 2px; 3510 | vertical-align: middle; 3511 | border-top: 4px dashed; 3512 | border-top: 4px solid \9; 3513 | border-right: 4px solid transparent; 3514 | border-left: 4px solid transparent; 3515 | } 3516 | .dropup, 3517 | .dropdown { 3518 | position: relative; 3519 | } 3520 | .dropdown-toggle:focus { 3521 | outline: 0; 3522 | } 3523 | .dropdown-menu { 3524 | position: absolute; 3525 | top: 100%; 3526 | left: 0; 3527 | z-index: 1000; 3528 | display: none; 3529 | float: left; 3530 | min-width: 160px; 3531 | padding: 5px 0; 3532 | margin: 2px 0 0; 3533 | font-size: 14px; 3534 | text-align: left; 3535 | list-style: none; 3536 | background-color: #fff; 3537 | -webkit-background-clip: padding-box; 3538 | background-clip: padding-box; 3539 | border: 1px solid #ccc; 3540 | border: 1px solid rgba(0, 0, 0, .15); 3541 | border-radius: 4px; 3542 | -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); 3543 | box-shadow: 0 6px 12px rgba(0, 0, 0, .175); 3544 | } 3545 | .dropdown-menu.pull-right { 3546 | right: 0; 3547 | left: auto; 3548 | } 3549 | .dropdown-menu .divider { 3550 | height: 1px; 3551 | margin: 9px 0; 3552 | overflow: hidden; 3553 | background-color: #e5e5e5; 3554 | } 3555 | .dropdown-menu > li > a { 3556 | display: block; 3557 | padding: 3px 20px; 3558 | clear: both; 3559 | font-weight: normal; 3560 | line-height: 1.42857143; 3561 | color: #333; 3562 | white-space: nowrap; 3563 | } 3564 | .dropdown-menu > li > a:hover, 3565 | .dropdown-menu > li > a:focus { 3566 | color: #262626; 3567 | text-decoration: none; 3568 | background-color: #f5f5f5; 3569 | } 3570 | .dropdown-menu > .active > a, 3571 | .dropdown-menu > .active > a:hover, 3572 | .dropdown-menu > .active > a:focus { 3573 | color: #fff; 3574 | text-decoration: none; 3575 | background-color: #337ab7; 3576 | outline: 0; 3577 | } 3578 | .dropdown-menu > .disabled > a, 3579 | .dropdown-menu > .disabled > a:hover, 3580 | .dropdown-menu > .disabled > a:focus { 3581 | color: #777; 3582 | } 3583 | .dropdown-menu > .disabled > a:hover, 3584 | .dropdown-menu > .disabled > a:focus { 3585 | text-decoration: none; 3586 | cursor: not-allowed; 3587 | background-color: transparent; 3588 | background-image: none; 3589 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 3590 | } 3591 | .open > .dropdown-menu { 3592 | display: block; 3593 | } 3594 | .open > a { 3595 | outline: 0; 3596 | } 3597 | .dropdown-menu-right { 3598 | right: 0; 3599 | left: auto; 3600 | } 3601 | .dropdown-menu-left { 3602 | right: auto; 3603 | left: 0; 3604 | } 3605 | .dropdown-header { 3606 | display: block; 3607 | padding: 3px 20px; 3608 | font-size: 12px; 3609 | line-height: 1.42857143; 3610 | color: #777; 3611 | white-space: nowrap; 3612 | } 3613 | .dropdown-backdrop { 3614 | position: fixed; 3615 | top: 0; 3616 | right: 0; 3617 | bottom: 0; 3618 | left: 0; 3619 | z-index: 990; 3620 | } 3621 | .pull-right > .dropdown-menu { 3622 | right: 0; 3623 | left: auto; 3624 | } 3625 | .dropup .caret, 3626 | .navbar-fixed-bottom .dropdown .caret { 3627 | content: ""; 3628 | border-top: 0; 3629 | border-bottom: 4px dashed; 3630 | border-bottom: 4px solid \9; 3631 | } 3632 | .dropup .dropdown-menu, 3633 | .navbar-fixed-bottom .dropdown .dropdown-menu { 3634 | top: auto; 3635 | bottom: 100%; 3636 | margin-bottom: 2px; 3637 | } 3638 | @media (min-width: 768px) { 3639 | .navbar-right .dropdown-menu { 3640 | right: 0; 3641 | left: auto; 3642 | } 3643 | .navbar-right .dropdown-menu-left { 3644 | right: auto; 3645 | left: 0; 3646 | } 3647 | } 3648 | .btn-group, 3649 | .btn-group-vertical { 3650 | position: relative; 3651 | display: inline-block; 3652 | vertical-align: middle; 3653 | } 3654 | .btn-group > .btn, 3655 | .btn-group-vertical > .btn { 3656 | position: relative; 3657 | float: left; 3658 | } 3659 | .btn-group > .btn:hover, 3660 | .btn-group-vertical > .btn:hover, 3661 | .btn-group > .btn:focus, 3662 | .btn-group-vertical > .btn:focus, 3663 | .btn-group > .btn:active, 3664 | .btn-group-vertical > .btn:active, 3665 | .btn-group > .btn.active, 3666 | .btn-group-vertical > .btn.active { 3667 | z-index: 2; 3668 | } 3669 | .btn-group .btn + .btn, 3670 | .btn-group .btn + .btn-group, 3671 | .btn-group .btn-group + .btn, 3672 | .btn-group .btn-group + .btn-group { 3673 | margin-left: -1px; 3674 | } 3675 | .btn-toolbar { 3676 | margin-left: -5px; 3677 | } 3678 | .btn-toolbar .btn, 3679 | .btn-toolbar .btn-group, 3680 | .btn-toolbar .input-group { 3681 | float: left; 3682 | } 3683 | .btn-toolbar > .btn, 3684 | .btn-toolbar > .btn-group, 3685 | .btn-toolbar > .input-group { 3686 | margin-left: 5px; 3687 | } 3688 | .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { 3689 | border-radius: 0; 3690 | } 3691 | .btn-group > .btn:first-child { 3692 | margin-left: 0; 3693 | } 3694 | .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { 3695 | border-top-right-radius: 0; 3696 | border-bottom-right-radius: 0; 3697 | } 3698 | .btn-group > .btn:last-child:not(:first-child), 3699 | .btn-group > .dropdown-toggle:not(:first-child) { 3700 | border-top-left-radius: 0; 3701 | border-bottom-left-radius: 0; 3702 | } 3703 | .btn-group > .btn-group { 3704 | float: left; 3705 | } 3706 | .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { 3707 | border-radius: 0; 3708 | } 3709 | .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, 3710 | .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { 3711 | border-top-right-radius: 0; 3712 | border-bottom-right-radius: 0; 3713 | } 3714 | .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { 3715 | border-top-left-radius: 0; 3716 | border-bottom-left-radius: 0; 3717 | } 3718 | .btn-group .dropdown-toggle:active, 3719 | .btn-group.open .dropdown-toggle { 3720 | outline: 0; 3721 | } 3722 | .btn-group > .btn + .dropdown-toggle { 3723 | padding-right: 8px; 3724 | padding-left: 8px; 3725 | } 3726 | .btn-group > .btn-lg + .dropdown-toggle { 3727 | padding-right: 12px; 3728 | padding-left: 12px; 3729 | } 3730 | .btn-group.open .dropdown-toggle { 3731 | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 3732 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); 3733 | } 3734 | .btn-group.open .dropdown-toggle.btn-link { 3735 | -webkit-box-shadow: none; 3736 | box-shadow: none; 3737 | } 3738 | .btn .caret { 3739 | margin-left: 0; 3740 | } 3741 | .btn-lg .caret { 3742 | border-width: 5px 5px 0; 3743 | border-bottom-width: 0; 3744 | } 3745 | .dropup .btn-lg .caret { 3746 | border-width: 0 5px 5px; 3747 | } 3748 | .btn-group-vertical > .btn, 3749 | .btn-group-vertical > .btn-group, 3750 | .btn-group-vertical > .btn-group > .btn { 3751 | display: block; 3752 | float: none; 3753 | width: 100%; 3754 | max-width: 100%; 3755 | } 3756 | .btn-group-vertical > .btn-group > .btn { 3757 | float: none; 3758 | } 3759 | .btn-group-vertical > .btn + .btn, 3760 | .btn-group-vertical > .btn + .btn-group, 3761 | .btn-group-vertical > .btn-group + .btn, 3762 | .btn-group-vertical > .btn-group + .btn-group { 3763 | margin-top: -1px; 3764 | margin-left: 0; 3765 | } 3766 | .btn-group-vertical > .btn:not(:first-child):not(:last-child) { 3767 | border-radius: 0; 3768 | } 3769 | .btn-group-vertical > .btn:first-child:not(:last-child) { 3770 | border-top-left-radius: 4px; 3771 | border-top-right-radius: 4px; 3772 | border-bottom-right-radius: 0; 3773 | border-bottom-left-radius: 0; 3774 | } 3775 | .btn-group-vertical > .btn:last-child:not(:first-child) { 3776 | border-top-left-radius: 0; 3777 | border-top-right-radius: 0; 3778 | border-bottom-right-radius: 4px; 3779 | border-bottom-left-radius: 4px; 3780 | } 3781 | .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { 3782 | border-radius: 0; 3783 | } 3784 | .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, 3785 | .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { 3786 | border-bottom-right-radius: 0; 3787 | border-bottom-left-radius: 0; 3788 | } 3789 | .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { 3790 | border-top-left-radius: 0; 3791 | border-top-right-radius: 0; 3792 | } 3793 | .btn-group-justified { 3794 | display: table; 3795 | width: 100%; 3796 | table-layout: fixed; 3797 | border-collapse: separate; 3798 | } 3799 | .btn-group-justified > .btn, 3800 | .btn-group-justified > .btn-group { 3801 | display: table-cell; 3802 | float: none; 3803 | width: 1%; 3804 | } 3805 | .btn-group-justified > .btn-group .btn { 3806 | width: 100%; 3807 | } 3808 | .btn-group-justified > .btn-group .dropdown-menu { 3809 | left: auto; 3810 | } 3811 | [data-toggle="buttons"] > .btn input[type="radio"], 3812 | [data-toggle="buttons"] > .btn-group > .btn input[type="radio"], 3813 | [data-toggle="buttons"] > .btn input[type="checkbox"], 3814 | [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { 3815 | position: absolute; 3816 | clip: rect(0, 0, 0, 0); 3817 | pointer-events: none; 3818 | } 3819 | .input-group { 3820 | position: relative; 3821 | display: table; 3822 | border-collapse: separate; 3823 | } 3824 | .input-group[class*="col-"] { 3825 | float: none; 3826 | padding-right: 0; 3827 | padding-left: 0; 3828 | } 3829 | .input-group .form-control { 3830 | position: relative; 3831 | z-index: 2; 3832 | float: left; 3833 | width: 100%; 3834 | margin-bottom: 0; 3835 | } 3836 | .input-group .form-control:focus { 3837 | z-index: 3; 3838 | } 3839 | .input-group-lg > .form-control, 3840 | .input-group-lg > .input-group-addon, 3841 | .input-group-lg > .input-group-btn > .btn { 3842 | height: 46px; 3843 | padding: 10px 16px; 3844 | font-size: 18px; 3845 | line-height: 1.3333333; 3846 | border-radius: 6px; 3847 | } 3848 | select.input-group-lg > .form-control, 3849 | select.input-group-lg > .input-group-addon, 3850 | select.input-group-lg > .input-group-btn > .btn { 3851 | height: 46px; 3852 | line-height: 46px; 3853 | } 3854 | textarea.input-group-lg > .form-control, 3855 | textarea.input-group-lg > .input-group-addon, 3856 | textarea.input-group-lg > .input-group-btn > .btn, 3857 | select[multiple].input-group-lg > .form-control, 3858 | select[multiple].input-group-lg > .input-group-addon, 3859 | select[multiple].input-group-lg > .input-group-btn > .btn { 3860 | height: auto; 3861 | } 3862 | .input-group-sm > .form-control, 3863 | .input-group-sm > .input-group-addon, 3864 | .input-group-sm > .input-group-btn > .btn { 3865 | height: 30px; 3866 | padding: 5px 10px; 3867 | font-size: 12px; 3868 | line-height: 1.5; 3869 | border-radius: 3px; 3870 | } 3871 | select.input-group-sm > .form-control, 3872 | select.input-group-sm > .input-group-addon, 3873 | select.input-group-sm > .input-group-btn > .btn { 3874 | height: 30px; 3875 | line-height: 30px; 3876 | } 3877 | textarea.input-group-sm > .form-control, 3878 | textarea.input-group-sm > .input-group-addon, 3879 | textarea.input-group-sm > .input-group-btn > .btn, 3880 | select[multiple].input-group-sm > .form-control, 3881 | select[multiple].input-group-sm > .input-group-addon, 3882 | select[multiple].input-group-sm > .input-group-btn > .btn { 3883 | height: auto; 3884 | } 3885 | .input-group-addon, 3886 | .input-group-btn, 3887 | .input-group .form-control { 3888 | display: table-cell; 3889 | } 3890 | .input-group-addon:not(:first-child):not(:last-child), 3891 | .input-group-btn:not(:first-child):not(:last-child), 3892 | .input-group .form-control:not(:first-child):not(:last-child) { 3893 | border-radius: 0; 3894 | } 3895 | .input-group-addon, 3896 | .input-group-btn { 3897 | width: 1%; 3898 | white-space: nowrap; 3899 | vertical-align: middle; 3900 | } 3901 | .input-group-addon { 3902 | padding: 6px 12px; 3903 | font-size: 14px; 3904 | font-weight: normal; 3905 | line-height: 1; 3906 | color: #555; 3907 | text-align: center; 3908 | background-color: #eee; 3909 | border: 1px solid #ccc; 3910 | border-radius: 4px; 3911 | } 3912 | .input-group-addon.input-sm { 3913 | padding: 5px 10px; 3914 | font-size: 12px; 3915 | border-radius: 3px; 3916 | } 3917 | .input-group-addon.input-lg { 3918 | padding: 10px 16px; 3919 | font-size: 18px; 3920 | border-radius: 6px; 3921 | } 3922 | .input-group-addon input[type="radio"], 3923 | .input-group-addon input[type="checkbox"] { 3924 | margin-top: 0; 3925 | } 3926 | .input-group .form-control:first-child, 3927 | .input-group-addon:first-child, 3928 | .input-group-btn:first-child > .btn, 3929 | .input-group-btn:first-child > .btn-group > .btn, 3930 | .input-group-btn:first-child > .dropdown-toggle, 3931 | .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), 3932 | .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { 3933 | border-top-right-radius: 0; 3934 | border-bottom-right-radius: 0; 3935 | } 3936 | .input-group-addon:first-child { 3937 | border-right: 0; 3938 | } 3939 | .input-group .form-control:last-child, 3940 | .input-group-addon:last-child, 3941 | .input-group-btn:last-child > .btn, 3942 | .input-group-btn:last-child > .btn-group > .btn, 3943 | .input-group-btn:last-child > .dropdown-toggle, 3944 | .input-group-btn:first-child > .btn:not(:first-child), 3945 | .input-group-btn:first-child > .btn-group:not(:first-child) > .btn { 3946 | border-top-left-radius: 0; 3947 | border-bottom-left-radius: 0; 3948 | } 3949 | .input-group-addon:last-child { 3950 | border-left: 0; 3951 | } 3952 | .input-group-btn { 3953 | position: relative; 3954 | font-size: 0; 3955 | white-space: nowrap; 3956 | } 3957 | .input-group-btn > .btn { 3958 | position: relative; 3959 | } 3960 | .input-group-btn > .btn + .btn { 3961 | margin-left: -1px; 3962 | } 3963 | .input-group-btn > .btn:hover, 3964 | .input-group-btn > .btn:focus, 3965 | .input-group-btn > .btn:active { 3966 | z-index: 2; 3967 | } 3968 | .input-group-btn:first-child > .btn, 3969 | .input-group-btn:first-child > .btn-group { 3970 | margin-right: -1px; 3971 | } 3972 | .input-group-btn:last-child > .btn, 3973 | .input-group-btn:last-child > .btn-group { 3974 | z-index: 2; 3975 | margin-left: -1px; 3976 | } 3977 | .nav { 3978 | padding-left: 0; 3979 | margin-bottom: 0; 3980 | list-style: none; 3981 | } 3982 | .nav > li { 3983 | position: relative; 3984 | display: block; 3985 | } 3986 | .nav > li > a { 3987 | position: relative; 3988 | display: block; 3989 | padding: 10px 15px; 3990 | } 3991 | .nav > li > a:hover, 3992 | .nav > li > a:focus { 3993 | text-decoration: none; 3994 | background-color: #eee; 3995 | } 3996 | .nav > li.disabled > a { 3997 | color: #777; 3998 | } 3999 | .nav > li.disabled > a:hover, 4000 | .nav > li.disabled > a:focus { 4001 | color: #777; 4002 | text-decoration: none; 4003 | cursor: not-allowed; 4004 | background-color: transparent; 4005 | } 4006 | .nav .open > a, 4007 | .nav .open > a:hover, 4008 | .nav .open > a:focus { 4009 | background-color: #eee; 4010 | border-color: #337ab7; 4011 | } 4012 | .nav .nav-divider { 4013 | height: 1px; 4014 | margin: 9px 0; 4015 | overflow: hidden; 4016 | background-color: #e5e5e5; 4017 | } 4018 | .nav > li > a > img { 4019 | max-width: none; 4020 | } 4021 | .nav-tabs { 4022 | border-bottom: 1px solid #ddd; 4023 | } 4024 | .nav-tabs > li { 4025 | float: left; 4026 | margin-bottom: -1px; 4027 | } 4028 | .nav-tabs > li > a { 4029 | margin-right: 2px; 4030 | line-height: 1.42857143; 4031 | border: 1px solid transparent; 4032 | border-radius: 4px 4px 0 0; 4033 | } 4034 | .nav-tabs > li > a:hover { 4035 | border-color: #eee #eee #ddd; 4036 | } 4037 | .nav-tabs > li.active > a, 4038 | .nav-tabs > li.active > a:hover, 4039 | .nav-tabs > li.active > a:focus { 4040 | color: #555; 4041 | cursor: default; 4042 | background-color: #fff; 4043 | border: 1px solid #ddd; 4044 | border-bottom-color: transparent; 4045 | } 4046 | .nav-tabs.nav-justified { 4047 | width: 100%; 4048 | border-bottom: 0; 4049 | } 4050 | .nav-tabs.nav-justified > li { 4051 | float: none; 4052 | } 4053 | .nav-tabs.nav-justified > li > a { 4054 | margin-bottom: 5px; 4055 | text-align: center; 4056 | } 4057 | .nav-tabs.nav-justified > .dropdown .dropdown-menu { 4058 | top: auto; 4059 | left: auto; 4060 | } 4061 | @media (min-width: 768px) { 4062 | .nav-tabs.nav-justified > li { 4063 | display: table-cell; 4064 | width: 1%; 4065 | } 4066 | .nav-tabs.nav-justified > li > a { 4067 | margin-bottom: 0; 4068 | } 4069 | } 4070 | .nav-tabs.nav-justified > li > a { 4071 | margin-right: 0; 4072 | border-radius: 4px; 4073 | } 4074 | .nav-tabs.nav-justified > .active > a, 4075 | .nav-tabs.nav-justified > .active > a:hover, 4076 | .nav-tabs.nav-justified > .active > a:focus { 4077 | border: 1px solid #ddd; 4078 | } 4079 | @media (min-width: 768px) { 4080 | .nav-tabs.nav-justified > li > a { 4081 | border-bottom: 1px solid #ddd; 4082 | border-radius: 4px 4px 0 0; 4083 | } 4084 | .nav-tabs.nav-justified > .active > a, 4085 | .nav-tabs.nav-justified > .active > a:hover, 4086 | .nav-tabs.nav-justified > .active > a:focus { 4087 | border-bottom-color: #fff; 4088 | } 4089 | } 4090 | .nav-pills > li { 4091 | float: left; 4092 | } 4093 | .nav-pills > li > a { 4094 | border-radius: 4px; 4095 | } 4096 | .nav-pills > li + li { 4097 | margin-left: 2px; 4098 | } 4099 | .nav-pills > li.active > a, 4100 | .nav-pills > li.active > a:hover, 4101 | .nav-pills > li.active > a:focus { 4102 | color: #fff; 4103 | background-color: #337ab7; 4104 | } 4105 | .nav-stacked > li { 4106 | float: none; 4107 | } 4108 | .nav-stacked > li + li { 4109 | margin-top: 2px; 4110 | margin-left: 0; 4111 | } 4112 | .nav-justified { 4113 | width: 100%; 4114 | } 4115 | .nav-justified > li { 4116 | float: none; 4117 | } 4118 | .nav-justified > li > a { 4119 | margin-bottom: 5px; 4120 | text-align: center; 4121 | } 4122 | .nav-justified > .dropdown .dropdown-menu { 4123 | top: auto; 4124 | left: auto; 4125 | } 4126 | @media (min-width: 768px) { 4127 | .nav-justified > li { 4128 | display: table-cell; 4129 | width: 1%; 4130 | } 4131 | .nav-justified > li > a { 4132 | margin-bottom: 0; 4133 | } 4134 | } 4135 | .nav-tabs-justified { 4136 | border-bottom: 0; 4137 | } 4138 | .nav-tabs-justified > li > a { 4139 | margin-right: 0; 4140 | border-radius: 4px; 4141 | } 4142 | .nav-tabs-justified > .active > a, 4143 | .nav-tabs-justified > .active > a:hover, 4144 | .nav-tabs-justified > .active > a:focus { 4145 | border: 1px solid #ddd; 4146 | } 4147 | @media (min-width: 768px) { 4148 | .nav-tabs-justified > li > a { 4149 | border-bottom: 1px solid #ddd; 4150 | border-radius: 4px 4px 0 0; 4151 | } 4152 | .nav-tabs-justified > .active > a, 4153 | .nav-tabs-justified > .active > a:hover, 4154 | .nav-tabs-justified > .active > a:focus { 4155 | border-bottom-color: #fff; 4156 | } 4157 | } 4158 | .tab-content > .tab-pane { 4159 | display: none; 4160 | } 4161 | .tab-content > .active { 4162 | display: block; 4163 | } 4164 | .nav-tabs .dropdown-menu { 4165 | margin-top: -1px; 4166 | border-top-left-radius: 0; 4167 | border-top-right-radius: 0; 4168 | } 4169 | .navbar { 4170 | position: relative; 4171 | min-height: 50px; 4172 | margin-bottom: 20px; 4173 | border: 1px solid transparent; 4174 | } 4175 | @media (min-width: 768px) { 4176 | .navbar { 4177 | border-radius: 4px; 4178 | } 4179 | } 4180 | @media (min-width: 768px) { 4181 | .navbar-header { 4182 | float: left; 4183 | } 4184 | } 4185 | .navbar-collapse { 4186 | padding-right: 15px; 4187 | padding-left: 15px; 4188 | overflow-x: visible; 4189 | -webkit-overflow-scrolling: touch; 4190 | border-top: 1px solid transparent; 4191 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); 4192 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); 4193 | } 4194 | .navbar-collapse.in { 4195 | overflow-y: auto; 4196 | } 4197 | @media (min-width: 768px) { 4198 | .navbar-collapse { 4199 | width: auto; 4200 | border-top: 0; 4201 | -webkit-box-shadow: none; 4202 | box-shadow: none; 4203 | } 4204 | .navbar-collapse.collapse { 4205 | display: block !important; 4206 | height: auto !important; 4207 | padding-bottom: 0; 4208 | overflow: visible !important; 4209 | } 4210 | .navbar-collapse.in { 4211 | overflow-y: visible; 4212 | } 4213 | .navbar-fixed-top .navbar-collapse, 4214 | .navbar-static-top .navbar-collapse, 4215 | .navbar-fixed-bottom .navbar-collapse { 4216 | padding-right: 0; 4217 | padding-left: 0; 4218 | } 4219 | } 4220 | .navbar-fixed-top .navbar-collapse, 4221 | .navbar-fixed-bottom .navbar-collapse { 4222 | max-height: 340px; 4223 | } 4224 | @media (max-device-width: 480px) and (orientation: landscape) { 4225 | .navbar-fixed-top .navbar-collapse, 4226 | .navbar-fixed-bottom .navbar-collapse { 4227 | max-height: 200px; 4228 | } 4229 | } 4230 | .container > .navbar-header, 4231 | .container-fluid > .navbar-header, 4232 | .container > .navbar-collapse, 4233 | .container-fluid > .navbar-collapse { 4234 | margin-right: -15px; 4235 | margin-left: -15px; 4236 | } 4237 | @media (min-width: 768px) { 4238 | .container > .navbar-header, 4239 | .container-fluid > .navbar-header, 4240 | .container > .navbar-collapse, 4241 | .container-fluid > .navbar-collapse { 4242 | margin-right: 0; 4243 | margin-left: 0; 4244 | } 4245 | } 4246 | .navbar-static-top { 4247 | z-index: 1000; 4248 | border-width: 0 0 1px; 4249 | } 4250 | @media (min-width: 768px) { 4251 | .navbar-static-top { 4252 | border-radius: 0; 4253 | } 4254 | } 4255 | .navbar-fixed-top, 4256 | .navbar-fixed-bottom { 4257 | position: fixed; 4258 | right: 0; 4259 | left: 0; 4260 | z-index: 1030; 4261 | } 4262 | @media (min-width: 768px) { 4263 | .navbar-fixed-top, 4264 | .navbar-fixed-bottom { 4265 | border-radius: 0; 4266 | } 4267 | } 4268 | .navbar-fixed-top { 4269 | top: 0; 4270 | border-width: 0 0 1px; 4271 | } 4272 | .navbar-fixed-bottom { 4273 | bottom: 0; 4274 | margin-bottom: 0; 4275 | border-width: 1px 0 0; 4276 | } 4277 | .navbar-brand { 4278 | float: left; 4279 | height: 50px; 4280 | padding: 15px 15px; 4281 | font-size: 18px; 4282 | line-height: 20px; 4283 | } 4284 | .navbar-brand:hover, 4285 | .navbar-brand:focus { 4286 | text-decoration: none; 4287 | } 4288 | .navbar-brand > img { 4289 | display: block; 4290 | } 4291 | @media (min-width: 768px) { 4292 | .navbar > .container .navbar-brand, 4293 | .navbar > .container-fluid .navbar-brand { 4294 | margin-left: -15px; 4295 | } 4296 | } 4297 | .navbar-toggle { 4298 | position: relative; 4299 | float: right; 4300 | padding: 9px 10px; 4301 | margin-top: 8px; 4302 | margin-right: 15px; 4303 | margin-bottom: 8px; 4304 | background-color: transparent; 4305 | background-image: none; 4306 | border: 1px solid transparent; 4307 | border-radius: 4px; 4308 | } 4309 | .navbar-toggle:focus { 4310 | outline: 0; 4311 | } 4312 | .navbar-toggle .icon-bar { 4313 | display: block; 4314 | width: 22px; 4315 | height: 2px; 4316 | border-radius: 1px; 4317 | } 4318 | .navbar-toggle .icon-bar + .icon-bar { 4319 | margin-top: 4px; 4320 | } 4321 | @media (min-width: 768px) { 4322 | .navbar-toggle { 4323 | display: none; 4324 | } 4325 | } 4326 | .navbar-nav { 4327 | margin: 7.5px -15px; 4328 | } 4329 | .navbar-nav > li > a { 4330 | padding-top: 10px; 4331 | padding-bottom: 10px; 4332 | line-height: 20px; 4333 | } 4334 | @media (max-width: 767px) { 4335 | .navbar-nav .open .dropdown-menu { 4336 | position: static; 4337 | float: none; 4338 | width: auto; 4339 | margin-top: 0; 4340 | background-color: transparent; 4341 | border: 0; 4342 | -webkit-box-shadow: none; 4343 | box-shadow: none; 4344 | } 4345 | .navbar-nav .open .dropdown-menu > li > a, 4346 | .navbar-nav .open .dropdown-menu .dropdown-header { 4347 | padding: 5px 15px 5px 25px; 4348 | } 4349 | .navbar-nav .open .dropdown-menu > li > a { 4350 | line-height: 20px; 4351 | } 4352 | .navbar-nav .open .dropdown-menu > li > a:hover, 4353 | .navbar-nav .open .dropdown-menu > li > a:focus { 4354 | background-image: none; 4355 | } 4356 | } 4357 | @media (min-width: 768px) { 4358 | .navbar-nav { 4359 | float: left; 4360 | margin: 0; 4361 | } 4362 | .navbar-nav > li { 4363 | float: left; 4364 | } 4365 | .navbar-nav > li > a { 4366 | padding-top: 15px; 4367 | padding-bottom: 15px; 4368 | } 4369 | } 4370 | .navbar-form { 4371 | padding: 10px 15px; 4372 | margin-top: 8px; 4373 | margin-right: -15px; 4374 | margin-bottom: 8px; 4375 | margin-left: -15px; 4376 | border-top: 1px solid transparent; 4377 | border-bottom: 1px solid transparent; 4378 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); 4379 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); 4380 | } 4381 | @media (min-width: 768px) { 4382 | .navbar-form .form-group { 4383 | display: inline-block; 4384 | margin-bottom: 0; 4385 | vertical-align: middle; 4386 | } 4387 | .navbar-form .form-control { 4388 | display: inline-block; 4389 | width: auto; 4390 | vertical-align: middle; 4391 | } 4392 | .navbar-form .form-control-static { 4393 | display: inline-block; 4394 | } 4395 | .navbar-form .input-group { 4396 | display: inline-table; 4397 | vertical-align: middle; 4398 | } 4399 | .navbar-form .input-group .input-group-addon, 4400 | .navbar-form .input-group .input-group-btn, 4401 | .navbar-form .input-group .form-control { 4402 | width: auto; 4403 | } 4404 | .navbar-form .input-group > .form-control { 4405 | width: 100%; 4406 | } 4407 | .navbar-form .control-label { 4408 | margin-bottom: 0; 4409 | vertical-align: middle; 4410 | } 4411 | .navbar-form .radio, 4412 | .navbar-form .checkbox { 4413 | display: inline-block; 4414 | margin-top: 0; 4415 | margin-bottom: 0; 4416 | vertical-align: middle; 4417 | } 4418 | .navbar-form .radio label, 4419 | .navbar-form .checkbox label { 4420 | padding-left: 0; 4421 | } 4422 | .navbar-form .radio input[type="radio"], 4423 | .navbar-form .checkbox input[type="checkbox"] { 4424 | position: relative; 4425 | margin-left: 0; 4426 | } 4427 | .navbar-form .has-feedback .form-control-feedback { 4428 | top: 0; 4429 | } 4430 | } 4431 | @media (max-width: 767px) { 4432 | .navbar-form .form-group { 4433 | margin-bottom: 5px; 4434 | } 4435 | .navbar-form .form-group:last-child { 4436 | margin-bottom: 0; 4437 | } 4438 | } 4439 | @media (min-width: 768px) { 4440 | .navbar-form { 4441 | width: auto; 4442 | padding-top: 0; 4443 | padding-bottom: 0; 4444 | margin-right: 0; 4445 | margin-left: 0; 4446 | border: 0; 4447 | -webkit-box-shadow: none; 4448 | box-shadow: none; 4449 | } 4450 | } 4451 | .navbar-nav > li > .dropdown-menu { 4452 | margin-top: 0; 4453 | border-top-left-radius: 0; 4454 | border-top-right-radius: 0; 4455 | } 4456 | .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { 4457 | margin-bottom: 0; 4458 | border-top-left-radius: 4px; 4459 | border-top-right-radius: 4px; 4460 | border-bottom-right-radius: 0; 4461 | border-bottom-left-radius: 0; 4462 | } 4463 | .navbar-btn { 4464 | margin-top: 8px; 4465 | margin-bottom: 8px; 4466 | } 4467 | .navbar-btn.btn-sm { 4468 | margin-top: 10px; 4469 | margin-bottom: 10px; 4470 | } 4471 | .navbar-btn.btn-xs { 4472 | margin-top: 14px; 4473 | margin-bottom: 14px; 4474 | } 4475 | .navbar-text { 4476 | margin-top: 15px; 4477 | margin-bottom: 15px; 4478 | } 4479 | @media (min-width: 768px) { 4480 | .navbar-text { 4481 | float: left; 4482 | margin-right: 15px; 4483 | margin-left: 15px; 4484 | } 4485 | } 4486 | @media (min-width: 768px) { 4487 | .navbar-left { 4488 | float: left !important; 4489 | } 4490 | .navbar-right { 4491 | float: right !important; 4492 | margin-right: -15px; 4493 | } 4494 | .navbar-right ~ .navbar-right { 4495 | margin-right: 0; 4496 | } 4497 | } 4498 | .navbar-default { 4499 | background-color: #f8f8f8; 4500 | border-color: #e7e7e7; 4501 | } 4502 | .navbar-default .navbar-brand { 4503 | color: #777; 4504 | } 4505 | .navbar-default .navbar-brand:hover, 4506 | .navbar-default .navbar-brand:focus { 4507 | color: #5e5e5e; 4508 | background-color: transparent; 4509 | } 4510 | .navbar-default .navbar-text { 4511 | color: #777; 4512 | } 4513 | .navbar-default .navbar-nav > li > a { 4514 | color: #777; 4515 | } 4516 | .navbar-default .navbar-nav > li > a:hover, 4517 | .navbar-default .navbar-nav > li > a:focus { 4518 | color: #333; 4519 | background-color: transparent; 4520 | } 4521 | .navbar-default .navbar-nav > .active > a, 4522 | .navbar-default .navbar-nav > .active > a:hover, 4523 | .navbar-default .navbar-nav > .active > a:focus { 4524 | color: #555; 4525 | background-color: #e7e7e7; 4526 | } 4527 | .navbar-default .navbar-nav > .disabled > a, 4528 | .navbar-default .navbar-nav > .disabled > a:hover, 4529 | .navbar-default .navbar-nav > .disabled > a:focus { 4530 | color: #ccc; 4531 | background-color: transparent; 4532 | } 4533 | .navbar-default .navbar-toggle { 4534 | border-color: #ddd; 4535 | } 4536 | .navbar-default .navbar-toggle:hover, 4537 | .navbar-default .navbar-toggle:focus { 4538 | background-color: #ddd; 4539 | } 4540 | .navbar-default .navbar-toggle .icon-bar { 4541 | background-color: #888; 4542 | } 4543 | .navbar-default .navbar-collapse, 4544 | .navbar-default .navbar-form { 4545 | border-color: #e7e7e7; 4546 | } 4547 | .navbar-default .navbar-nav > .open > a, 4548 | .navbar-default .navbar-nav > .open > a:hover, 4549 | .navbar-default .navbar-nav > .open > a:focus { 4550 | color: #555; 4551 | background-color: #e7e7e7; 4552 | } 4553 | @media (max-width: 767px) { 4554 | .navbar-default .navbar-nav .open .dropdown-menu > li > a { 4555 | color: #777; 4556 | } 4557 | .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, 4558 | .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { 4559 | color: #333; 4560 | background-color: transparent; 4561 | } 4562 | .navbar-default .navbar-nav .open .dropdown-menu > .active > a, 4563 | .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, 4564 | .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { 4565 | color: #555; 4566 | background-color: #e7e7e7; 4567 | } 4568 | .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, 4569 | .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, 4570 | .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { 4571 | color: #ccc; 4572 | background-color: transparent; 4573 | } 4574 | } 4575 | .navbar-default .navbar-link { 4576 | color: #777; 4577 | } 4578 | .navbar-default .navbar-link:hover { 4579 | color: #333; 4580 | } 4581 | .navbar-default .btn-link { 4582 | color: #777; 4583 | } 4584 | .navbar-default .btn-link:hover, 4585 | .navbar-default .btn-link:focus { 4586 | color: #333; 4587 | } 4588 | .navbar-default .btn-link[disabled]:hover, 4589 | fieldset[disabled] .navbar-default .btn-link:hover, 4590 | .navbar-default .btn-link[disabled]:focus, 4591 | fieldset[disabled] .navbar-default .btn-link:focus { 4592 | color: #ccc; 4593 | } 4594 | .navbar-inverse { 4595 | background-color: #222; 4596 | border-color: #080808; 4597 | } 4598 | .navbar-inverse .navbar-brand { 4599 | color: #9d9d9d; 4600 | } 4601 | .navbar-inverse .navbar-brand:hover, 4602 | .navbar-inverse .navbar-brand:focus { 4603 | color: #fff; 4604 | background-color: transparent; 4605 | } 4606 | .navbar-inverse .navbar-text { 4607 | color: #9d9d9d; 4608 | } 4609 | .navbar-inverse .navbar-nav > li > a { 4610 | color: #9d9d9d; 4611 | } 4612 | .navbar-inverse .navbar-nav > li > a:hover, 4613 | .navbar-inverse .navbar-nav > li > a:focus { 4614 | color: #fff; 4615 | background-color: transparent; 4616 | } 4617 | .navbar-inverse .navbar-nav > .active > a, 4618 | .navbar-inverse .navbar-nav > .active > a:hover, 4619 | .navbar-inverse .navbar-nav > .active > a:focus { 4620 | color: #fff; 4621 | background-color: #080808; 4622 | } 4623 | .navbar-inverse .navbar-nav > .disabled > a, 4624 | .navbar-inverse .navbar-nav > .disabled > a:hover, 4625 | .navbar-inverse .navbar-nav > .disabled > a:focus { 4626 | color: #444; 4627 | background-color: transparent; 4628 | } 4629 | .navbar-inverse .navbar-toggle { 4630 | border-color: #333; 4631 | } 4632 | .navbar-inverse .navbar-toggle:hover, 4633 | .navbar-inverse .navbar-toggle:focus { 4634 | background-color: #333; 4635 | } 4636 | .navbar-inverse .navbar-toggle .icon-bar { 4637 | background-color: #fff; 4638 | } 4639 | .navbar-inverse .navbar-collapse, 4640 | .navbar-inverse .navbar-form { 4641 | border-color: #101010; 4642 | } 4643 | .navbar-inverse .navbar-nav > .open > a, 4644 | .navbar-inverse .navbar-nav > .open > a:hover, 4645 | .navbar-inverse .navbar-nav > .open > a:focus { 4646 | color: #fff; 4647 | background-color: #080808; 4648 | } 4649 | @media (max-width: 767px) { 4650 | .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { 4651 | border-color: #080808; 4652 | } 4653 | .navbar-inverse .navbar-nav .open .dropdown-menu .divider { 4654 | background-color: #080808; 4655 | } 4656 | .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { 4657 | color: #9d9d9d; 4658 | } 4659 | .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, 4660 | .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { 4661 | color: #fff; 4662 | background-color: transparent; 4663 | } 4664 | .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, 4665 | .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, 4666 | .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { 4667 | color: #fff; 4668 | background-color: #080808; 4669 | } 4670 | .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, 4671 | .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, 4672 | .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { 4673 | color: #444; 4674 | background-color: transparent; 4675 | } 4676 | } 4677 | .navbar-inverse .navbar-link { 4678 | color: #9d9d9d; 4679 | } 4680 | .navbar-inverse .navbar-link:hover { 4681 | color: #fff; 4682 | } 4683 | .navbar-inverse .btn-link { 4684 | color: #9d9d9d; 4685 | } 4686 | .navbar-inverse .btn-link:hover, 4687 | .navbar-inverse .btn-link:focus { 4688 | color: #fff; 4689 | } 4690 | .navbar-inverse .btn-link[disabled]:hover, 4691 | fieldset[disabled] .navbar-inverse .btn-link:hover, 4692 | .navbar-inverse .btn-link[disabled]:focus, 4693 | fieldset[disabled] .navbar-inverse .btn-link:focus { 4694 | color: #444; 4695 | } 4696 | .breadcrumb { 4697 | padding: 8px 15px; 4698 | margin-bottom: 20px; 4699 | list-style: none; 4700 | background-color: #f5f5f5; 4701 | border-radius: 4px; 4702 | } 4703 | .breadcrumb > li { 4704 | display: inline-block; 4705 | } 4706 | .breadcrumb > li + li:before { 4707 | padding: 0 5px; 4708 | color: #ccc; 4709 | content: "/\00a0"; 4710 | } 4711 | .breadcrumb > .active { 4712 | color: #777; 4713 | } 4714 | .pagination { 4715 | display: inline-block; 4716 | padding-left: 0; 4717 | margin: 20px 0; 4718 | border-radius: 4px; 4719 | } 4720 | .pagination > li { 4721 | display: inline; 4722 | } 4723 | .pagination > li > a, 4724 | .pagination > li > span { 4725 | position: relative; 4726 | float: left; 4727 | padding: 6px 12px; 4728 | margin-left: -1px; 4729 | line-height: 1.42857143; 4730 | color: #337ab7; 4731 | text-decoration: none; 4732 | background-color: #fff; 4733 | border: 1px solid #ddd; 4734 | } 4735 | .pagination > li:first-child > a, 4736 | .pagination > li:first-child > span { 4737 | margin-left: 0; 4738 | border-top-left-radius: 4px; 4739 | border-bottom-left-radius: 4px; 4740 | } 4741 | .pagination > li:last-child > a, 4742 | .pagination > li:last-child > span { 4743 | border-top-right-radius: 4px; 4744 | border-bottom-right-radius: 4px; 4745 | } 4746 | .pagination > li > a:hover, 4747 | .pagination > li > span:hover, 4748 | .pagination > li > a:focus, 4749 | .pagination > li > span:focus { 4750 | z-index: 2; 4751 | color: #23527c; 4752 | background-color: #eee; 4753 | border-color: #ddd; 4754 | } 4755 | .pagination > .active > a, 4756 | .pagination > .active > span, 4757 | .pagination > .active > a:hover, 4758 | .pagination > .active > span:hover, 4759 | .pagination > .active > a:focus, 4760 | .pagination > .active > span:focus { 4761 | z-index: 3; 4762 | color: #fff; 4763 | cursor: default; 4764 | background-color: #337ab7; 4765 | border-color: #337ab7; 4766 | } 4767 | .pagination > .disabled > span, 4768 | .pagination > .disabled > span:hover, 4769 | .pagination > .disabled > span:focus, 4770 | .pagination > .disabled > a, 4771 | .pagination > .disabled > a:hover, 4772 | .pagination > .disabled > a:focus { 4773 | color: #777; 4774 | cursor: not-allowed; 4775 | background-color: #fff; 4776 | border-color: #ddd; 4777 | } 4778 | .pagination-lg > li > a, 4779 | .pagination-lg > li > span { 4780 | padding: 10px 16px; 4781 | font-size: 18px; 4782 | line-height: 1.3333333; 4783 | } 4784 | .pagination-lg > li:first-child > a, 4785 | .pagination-lg > li:first-child > span { 4786 | border-top-left-radius: 6px; 4787 | border-bottom-left-radius: 6px; 4788 | } 4789 | .pagination-lg > li:last-child > a, 4790 | .pagination-lg > li:last-child > span { 4791 | border-top-right-radius: 6px; 4792 | border-bottom-right-radius: 6px; 4793 | } 4794 | .pagination-sm > li > a, 4795 | .pagination-sm > li > span { 4796 | padding: 5px 10px; 4797 | font-size: 12px; 4798 | line-height: 1.5; 4799 | } 4800 | .pagination-sm > li:first-child > a, 4801 | .pagination-sm > li:first-child > span { 4802 | border-top-left-radius: 3px; 4803 | border-bottom-left-radius: 3px; 4804 | } 4805 | .pagination-sm > li:last-child > a, 4806 | .pagination-sm > li:last-child > span { 4807 | border-top-right-radius: 3px; 4808 | border-bottom-right-radius: 3px; 4809 | } 4810 | .pager { 4811 | padding-left: 0; 4812 | margin: 20px 0; 4813 | text-align: center; 4814 | list-style: none; 4815 | } 4816 | .pager li { 4817 | display: inline; 4818 | } 4819 | .pager li > a, 4820 | .pager li > span { 4821 | display: inline-block; 4822 | padding: 5px 14px; 4823 | background-color: #fff; 4824 | border: 1px solid #ddd; 4825 | border-radius: 15px; 4826 | } 4827 | .pager li > a:hover, 4828 | .pager li > a:focus { 4829 | text-decoration: none; 4830 | background-color: #eee; 4831 | } 4832 | .pager .next > a, 4833 | .pager .next > span { 4834 | float: right; 4835 | } 4836 | .pager .previous > a, 4837 | .pager .previous > span { 4838 | float: left; 4839 | } 4840 | .pager .disabled > a, 4841 | .pager .disabled > a:hover, 4842 | .pager .disabled > a:focus, 4843 | .pager .disabled > span { 4844 | color: #777; 4845 | cursor: not-allowed; 4846 | background-color: #fff; 4847 | } 4848 | .label { 4849 | display: inline; 4850 | padding: .2em .6em .3em; 4851 | font-size: 75%; 4852 | font-weight: bold; 4853 | line-height: 1; 4854 | color: #fff; 4855 | text-align: center; 4856 | white-space: nowrap; 4857 | vertical-align: baseline; 4858 | border-radius: .25em; 4859 | } 4860 | a.label:hover, 4861 | a.label:focus { 4862 | color: #fff; 4863 | text-decoration: none; 4864 | cursor: pointer; 4865 | } 4866 | .label:empty { 4867 | display: none; 4868 | } 4869 | .btn .label { 4870 | position: relative; 4871 | top: -1px; 4872 | } 4873 | .label-default { 4874 | background-color: #777; 4875 | } 4876 | .label-default[href]:hover, 4877 | .label-default[href]:focus { 4878 | background-color: #5e5e5e; 4879 | } 4880 | .label-primary { 4881 | background-color: #337ab7; 4882 | } 4883 | .label-primary[href]:hover, 4884 | .label-primary[href]:focus { 4885 | background-color: #286090; 4886 | } 4887 | .label-success { 4888 | background-color: #5cb85c; 4889 | } 4890 | .label-success[href]:hover, 4891 | .label-success[href]:focus { 4892 | background-color: #449d44; 4893 | } 4894 | .label-info { 4895 | background-color: #5bc0de; 4896 | } 4897 | .label-info[href]:hover, 4898 | .label-info[href]:focus { 4899 | background-color: #31b0d5; 4900 | } 4901 | .label-warning { 4902 | background-color: #f0ad4e; 4903 | } 4904 | .label-warning[href]:hover, 4905 | .label-warning[href]:focus { 4906 | background-color: #ec971f; 4907 | } 4908 | .label-danger { 4909 | background-color: #d9534f; 4910 | } 4911 | .label-danger[href]:hover, 4912 | .label-danger[href]:focus { 4913 | background-color: #c9302c; 4914 | } 4915 | .badge { 4916 | display: inline-block; 4917 | min-width: 10px; 4918 | padding: 3px 7px; 4919 | font-size: 12px; 4920 | font-weight: bold; 4921 | line-height: 1; 4922 | color: #fff; 4923 | text-align: center; 4924 | white-space: nowrap; 4925 | vertical-align: middle; 4926 | background-color: #777; 4927 | border-radius: 10px; 4928 | } 4929 | .badge:empty { 4930 | display: none; 4931 | } 4932 | .btn .badge { 4933 | position: relative; 4934 | top: -1px; 4935 | } 4936 | .btn-xs .badge, 4937 | .btn-group-xs > .btn .badge { 4938 | top: 0; 4939 | padding: 1px 5px; 4940 | } 4941 | a.badge:hover, 4942 | a.badge:focus { 4943 | color: #fff; 4944 | text-decoration: none; 4945 | cursor: pointer; 4946 | } 4947 | .list-group-item.active > .badge, 4948 | .nav-pills > .active > a > .badge { 4949 | color: #337ab7; 4950 | background-color: #fff; 4951 | } 4952 | .list-group-item > .badge { 4953 | float: right; 4954 | } 4955 | .list-group-item > .badge + .badge { 4956 | margin-right: 5px; 4957 | } 4958 | .nav-pills > li > a > .badge { 4959 | margin-left: 3px; 4960 | } 4961 | .jumbotron { 4962 | padding-top: 30px; 4963 | padding-bottom: 30px; 4964 | margin-bottom: 30px; 4965 | color: inherit; 4966 | background-color: #eee; 4967 | } 4968 | .jumbotron h1, 4969 | .jumbotron .h1 { 4970 | color: inherit; 4971 | } 4972 | .jumbotron p { 4973 | margin-bottom: 15px; 4974 | font-size: 21px; 4975 | font-weight: 200; 4976 | } 4977 | .jumbotron > hr { 4978 | border-top-color: #d5d5d5; 4979 | } 4980 | .container .jumbotron, 4981 | .container-fluid .jumbotron { 4982 | padding-right: 15px; 4983 | padding-left: 15px; 4984 | border-radius: 6px; 4985 | } 4986 | .jumbotron .container { 4987 | max-width: 100%; 4988 | } 4989 | @media screen and (min-width: 768px) { 4990 | .jumbotron { 4991 | padding-top: 48px; 4992 | padding-bottom: 48px; 4993 | } 4994 | .container .jumbotron, 4995 | .container-fluid .jumbotron { 4996 | padding-right: 60px; 4997 | padding-left: 60px; 4998 | } 4999 | .jumbotron h1, 5000 | .jumbotron .h1 { 5001 | font-size: 63px; 5002 | } 5003 | } 5004 | .thumbnail { 5005 | display: block; 5006 | padding: 4px; 5007 | margin-bottom: 20px; 5008 | line-height: 1.42857143; 5009 | background-color: #fff; 5010 | border: 1px solid #ddd; 5011 | border-radius: 4px; 5012 | -webkit-transition: border .2s ease-in-out; 5013 | -o-transition: border .2s ease-in-out; 5014 | transition: border .2s ease-in-out; 5015 | } 5016 | .thumbnail > img, 5017 | .thumbnail a > img { 5018 | margin-right: auto; 5019 | margin-left: auto; 5020 | } 5021 | a.thumbnail:hover, 5022 | a.thumbnail:focus, 5023 | a.thumbnail.active { 5024 | border-color: #337ab7; 5025 | } 5026 | .thumbnail .caption { 5027 | padding: 9px; 5028 | color: #333; 5029 | } 5030 | .alert { 5031 | padding: 15px; 5032 | margin-bottom: 20px; 5033 | border: 1px solid transparent; 5034 | border-radius: 4px; 5035 | } 5036 | .alert h4 { 5037 | margin-top: 0; 5038 | color: inherit; 5039 | } 5040 | .alert .alert-link { 5041 | font-weight: bold; 5042 | } 5043 | .alert > p, 5044 | .alert > ul { 5045 | margin-bottom: 0; 5046 | } 5047 | .alert > p + p { 5048 | margin-top: 5px; 5049 | } 5050 | .alert-dismissable, 5051 | .alert-dismissible { 5052 | padding-right: 35px; 5053 | } 5054 | .alert-dismissable .close, 5055 | .alert-dismissible .close { 5056 | position: relative; 5057 | top: -2px; 5058 | right: -21px; 5059 | color: inherit; 5060 | } 5061 | .alert-success { 5062 | color: #3c763d; 5063 | background-color: #dff0d8; 5064 | border-color: #d6e9c6; 5065 | } 5066 | .alert-success hr { 5067 | border-top-color: #c9e2b3; 5068 | } 5069 | .alert-success .alert-link { 5070 | color: #2b542c; 5071 | } 5072 | .alert-info { 5073 | color: #31708f; 5074 | background-color: #d9edf7; 5075 | border-color: #bce8f1; 5076 | } 5077 | .alert-info hr { 5078 | border-top-color: #a6e1ec; 5079 | } 5080 | .alert-info .alert-link { 5081 | color: #245269; 5082 | } 5083 | .alert-warning { 5084 | color: #8a6d3b; 5085 | background-color: #fcf8e3; 5086 | border-color: #faebcc; 5087 | } 5088 | .alert-warning hr { 5089 | border-top-color: #f7e1b5; 5090 | } 5091 | .alert-warning .alert-link { 5092 | color: #66512c; 5093 | } 5094 | .alert-danger { 5095 | color: #a94442; 5096 | background-color: #f2dede; 5097 | border-color: #ebccd1; 5098 | } 5099 | .alert-danger hr { 5100 | border-top-color: #e4b9c0; 5101 | } 5102 | .alert-danger .alert-link { 5103 | color: #843534; 5104 | } 5105 | @-webkit-keyframes progress-bar-stripes { 5106 | from { 5107 | background-position: 40px 0; 5108 | } 5109 | to { 5110 | background-position: 0 0; 5111 | } 5112 | } 5113 | @-o-keyframes progress-bar-stripes { 5114 | from { 5115 | background-position: 40px 0; 5116 | } 5117 | to { 5118 | background-position: 0 0; 5119 | } 5120 | } 5121 | @keyframes progress-bar-stripes { 5122 | from { 5123 | background-position: 40px 0; 5124 | } 5125 | to { 5126 | background-position: 0 0; 5127 | } 5128 | } 5129 | .progress { 5130 | height: 20px; 5131 | margin-bottom: 20px; 5132 | overflow: hidden; 5133 | background-color: #f5f5f5; 5134 | border-radius: 4px; 5135 | -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); 5136 | box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); 5137 | } 5138 | .progress-bar { 5139 | float: left; 5140 | width: 0; 5141 | height: 100%; 5142 | font-size: 12px; 5143 | line-height: 20px; 5144 | color: #fff; 5145 | text-align: center; 5146 | background-color: #337ab7; 5147 | -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); 5148 | box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); 5149 | -webkit-transition: width .6s ease; 5150 | -o-transition: width .6s ease; 5151 | transition: width .6s ease; 5152 | } 5153 | .progress-striped .progress-bar, 5154 | .progress-bar-striped { 5155 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5156 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5157 | background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5158 | -webkit-background-size: 40px 40px; 5159 | background-size: 40px 40px; 5160 | } 5161 | .progress.active .progress-bar, 5162 | .progress-bar.active { 5163 | -webkit-animation: progress-bar-stripes 2s linear infinite; 5164 | -o-animation: progress-bar-stripes 2s linear infinite; 5165 | animation: progress-bar-stripes 2s linear infinite; 5166 | } 5167 | .progress-bar-success { 5168 | background-color: #5cb85c; 5169 | } 5170 | .progress-striped .progress-bar-success { 5171 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5172 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5173 | background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5174 | } 5175 | .progress-bar-info { 5176 | background-color: #5bc0de; 5177 | } 5178 | .progress-striped .progress-bar-info { 5179 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5180 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5181 | background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5182 | } 5183 | .progress-bar-warning { 5184 | background-color: #f0ad4e; 5185 | } 5186 | .progress-striped .progress-bar-warning { 5187 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5188 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5189 | background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5190 | } 5191 | .progress-bar-danger { 5192 | background-color: #d9534f; 5193 | } 5194 | .progress-striped .progress-bar-danger { 5195 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5196 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5197 | background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); 5198 | } 5199 | .media { 5200 | margin-top: 15px; 5201 | } 5202 | .media:first-child { 5203 | margin-top: 0; 5204 | } 5205 | .media, 5206 | .media-body { 5207 | overflow: hidden; 5208 | zoom: 1; 5209 | } 5210 | .media-body { 5211 | width: 10000px; 5212 | } 5213 | .media-object { 5214 | display: block; 5215 | } 5216 | .media-object.img-thumbnail { 5217 | max-width: none; 5218 | } 5219 | .media-right, 5220 | .media > .pull-right { 5221 | padding-left: 10px; 5222 | } 5223 | .media-left, 5224 | .media > .pull-left { 5225 | padding-right: 10px; 5226 | } 5227 | .media-left, 5228 | .media-right, 5229 | .media-body { 5230 | display: table-cell; 5231 | vertical-align: top; 5232 | } 5233 | .media-middle { 5234 | vertical-align: middle; 5235 | } 5236 | .media-bottom { 5237 | vertical-align: bottom; 5238 | } 5239 | .media-heading { 5240 | margin-top: 0; 5241 | margin-bottom: 5px; 5242 | } 5243 | .media-list { 5244 | padding-left: 0; 5245 | list-style: none; 5246 | } 5247 | .list-group { 5248 | padding-left: 0; 5249 | margin-bottom: 20px; 5250 | } 5251 | .list-group-item { 5252 | position: relative; 5253 | display: block; 5254 | padding: 10px 15px; 5255 | margin-bottom: -1px; 5256 | background-color: #fff; 5257 | border: 1px solid #ddd; 5258 | } 5259 | .list-group-item:first-child { 5260 | border-top-left-radius: 4px; 5261 | border-top-right-radius: 4px; 5262 | } 5263 | .list-group-item:last-child { 5264 | margin-bottom: 0; 5265 | border-bottom-right-radius: 4px; 5266 | border-bottom-left-radius: 4px; 5267 | } 5268 | a.list-group-item, 5269 | button.list-group-item { 5270 | color: #555; 5271 | } 5272 | a.list-group-item .list-group-item-heading, 5273 | button.list-group-item .list-group-item-heading { 5274 | color: #333; 5275 | } 5276 | a.list-group-item:hover, 5277 | button.list-group-item:hover, 5278 | a.list-group-item:focus, 5279 | button.list-group-item:focus { 5280 | color: #555; 5281 | text-decoration: none; 5282 | background-color: #f5f5f5; 5283 | } 5284 | button.list-group-item { 5285 | width: 100%; 5286 | text-align: left; 5287 | } 5288 | .list-group-item.disabled, 5289 | .list-group-item.disabled:hover, 5290 | .list-group-item.disabled:focus { 5291 | color: #777; 5292 | cursor: not-allowed; 5293 | background-color: #eee; 5294 | } 5295 | .list-group-item.disabled .list-group-item-heading, 5296 | .list-group-item.disabled:hover .list-group-item-heading, 5297 | .list-group-item.disabled:focus .list-group-item-heading { 5298 | color: inherit; 5299 | } 5300 | .list-group-item.disabled .list-group-item-text, 5301 | .list-group-item.disabled:hover .list-group-item-text, 5302 | .list-group-item.disabled:focus .list-group-item-text { 5303 | color: #777; 5304 | } 5305 | .list-group-item.active, 5306 | .list-group-item.active:hover, 5307 | .list-group-item.active:focus { 5308 | z-index: 2; 5309 | color: #fff; 5310 | background-color: #337ab7; 5311 | border-color: #337ab7; 5312 | } 5313 | .list-group-item.active .list-group-item-heading, 5314 | .list-group-item.active:hover .list-group-item-heading, 5315 | .list-group-item.active:focus .list-group-item-heading, 5316 | .list-group-item.active .list-group-item-heading > small, 5317 | .list-group-item.active:hover .list-group-item-heading > small, 5318 | .list-group-item.active:focus .list-group-item-heading > small, 5319 | .list-group-item.active .list-group-item-heading > .small, 5320 | .list-group-item.active:hover .list-group-item-heading > .small, 5321 | .list-group-item.active:focus .list-group-item-heading > .small { 5322 | color: inherit; 5323 | } 5324 | .list-group-item.active .list-group-item-text, 5325 | .list-group-item.active:hover .list-group-item-text, 5326 | .list-group-item.active:focus .list-group-item-text { 5327 | color: #c7ddef; 5328 | } 5329 | .list-group-item-success { 5330 | color: #3c763d; 5331 | background-color: #dff0d8; 5332 | } 5333 | a.list-group-item-success, 5334 | button.list-group-item-success { 5335 | color: #3c763d; 5336 | } 5337 | a.list-group-item-success .list-group-item-heading, 5338 | button.list-group-item-success .list-group-item-heading { 5339 | color: inherit; 5340 | } 5341 | a.list-group-item-success:hover, 5342 | button.list-group-item-success:hover, 5343 | a.list-group-item-success:focus, 5344 | button.list-group-item-success:focus { 5345 | color: #3c763d; 5346 | background-color: #d0e9c6; 5347 | } 5348 | a.list-group-item-success.active, 5349 | button.list-group-item-success.active, 5350 | a.list-group-item-success.active:hover, 5351 | button.list-group-item-success.active:hover, 5352 | a.list-group-item-success.active:focus, 5353 | button.list-group-item-success.active:focus { 5354 | color: #fff; 5355 | background-color: #3c763d; 5356 | border-color: #3c763d; 5357 | } 5358 | .list-group-item-info { 5359 | color: #31708f; 5360 | background-color: #d9edf7; 5361 | } 5362 | a.list-group-item-info, 5363 | button.list-group-item-info { 5364 | color: #31708f; 5365 | } 5366 | a.list-group-item-info .list-group-item-heading, 5367 | button.list-group-item-info .list-group-item-heading { 5368 | color: inherit; 5369 | } 5370 | a.list-group-item-info:hover, 5371 | button.list-group-item-info:hover, 5372 | a.list-group-item-info:focus, 5373 | button.list-group-item-info:focus { 5374 | color: #31708f; 5375 | background-color: #c4e3f3; 5376 | } 5377 | a.list-group-item-info.active, 5378 | button.list-group-item-info.active, 5379 | a.list-group-item-info.active:hover, 5380 | button.list-group-item-info.active:hover, 5381 | a.list-group-item-info.active:focus, 5382 | button.list-group-item-info.active:focus { 5383 | color: #fff; 5384 | background-color: #31708f; 5385 | border-color: #31708f; 5386 | } 5387 | .list-group-item-warning { 5388 | color: #8a6d3b; 5389 | background-color: #fcf8e3; 5390 | } 5391 | a.list-group-item-warning, 5392 | button.list-group-item-warning { 5393 | color: #8a6d3b; 5394 | } 5395 | a.list-group-item-warning .list-group-item-heading, 5396 | button.list-group-item-warning .list-group-item-heading { 5397 | color: inherit; 5398 | } 5399 | a.list-group-item-warning:hover, 5400 | button.list-group-item-warning:hover, 5401 | a.list-group-item-warning:focus, 5402 | button.list-group-item-warning:focus { 5403 | color: #8a6d3b; 5404 | background-color: #faf2cc; 5405 | } 5406 | a.list-group-item-warning.active, 5407 | button.list-group-item-warning.active, 5408 | a.list-group-item-warning.active:hover, 5409 | button.list-group-item-warning.active:hover, 5410 | a.list-group-item-warning.active:focus, 5411 | button.list-group-item-warning.active:focus { 5412 | color: #fff; 5413 | background-color: #8a6d3b; 5414 | border-color: #8a6d3b; 5415 | } 5416 | .list-group-item-danger { 5417 | color: #a94442; 5418 | background-color: #f2dede; 5419 | } 5420 | a.list-group-item-danger, 5421 | button.list-group-item-danger { 5422 | color: #a94442; 5423 | } 5424 | a.list-group-item-danger .list-group-item-heading, 5425 | button.list-group-item-danger .list-group-item-heading { 5426 | color: inherit; 5427 | } 5428 | a.list-group-item-danger:hover, 5429 | button.list-group-item-danger:hover, 5430 | a.list-group-item-danger:focus, 5431 | button.list-group-item-danger:focus { 5432 | color: #a94442; 5433 | background-color: #ebcccc; 5434 | } 5435 | a.list-group-item-danger.active, 5436 | button.list-group-item-danger.active, 5437 | a.list-group-item-danger.active:hover, 5438 | button.list-group-item-danger.active:hover, 5439 | a.list-group-item-danger.active:focus, 5440 | button.list-group-item-danger.active:focus { 5441 | color: #fff; 5442 | background-color: #a94442; 5443 | border-color: #a94442; 5444 | } 5445 | .list-group-item-heading { 5446 | margin-top: 0; 5447 | margin-bottom: 5px; 5448 | } 5449 | .list-group-item-text { 5450 | margin-bottom: 0; 5451 | line-height: 1.3; 5452 | } 5453 | .panel { 5454 | margin-bottom: 20px; 5455 | background-color: #fff; 5456 | border: 1px solid transparent; 5457 | border-radius: 4px; 5458 | -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); 5459 | box-shadow: 0 1px 1px rgba(0, 0, 0, .05); 5460 | } 5461 | .panel-body { 5462 | padding: 15px; 5463 | } 5464 | .panel-heading { 5465 | padding: 10px 15px; 5466 | border-bottom: 1px solid transparent; 5467 | border-top-left-radius: 3px; 5468 | border-top-right-radius: 3px; 5469 | } 5470 | .panel-heading > .dropdown .dropdown-toggle { 5471 | color: inherit; 5472 | } 5473 | .panel-title { 5474 | margin-top: 0; 5475 | margin-bottom: 0; 5476 | font-size: 16px; 5477 | color: inherit; 5478 | } 5479 | .panel-title > a, 5480 | .panel-title > small, 5481 | .panel-title > .small, 5482 | .panel-title > small > a, 5483 | .panel-title > .small > a { 5484 | color: inherit; 5485 | } 5486 | .panel-footer { 5487 | padding: 10px 15px; 5488 | background-color: #f5f5f5; 5489 | border-top: 1px solid #ddd; 5490 | border-bottom-right-radius: 3px; 5491 | border-bottom-left-radius: 3px; 5492 | } 5493 | .panel > .list-group, 5494 | .panel > .panel-collapse > .list-group { 5495 | margin-bottom: 0; 5496 | } 5497 | .panel > .list-group .list-group-item, 5498 | .panel > .panel-collapse > .list-group .list-group-item { 5499 | border-width: 1px 0; 5500 | border-radius: 0; 5501 | } 5502 | .panel > .list-group:first-child .list-group-item:first-child, 5503 | .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { 5504 | border-top: 0; 5505 | border-top-left-radius: 3px; 5506 | border-top-right-radius: 3px; 5507 | } 5508 | .panel > .list-group:last-child .list-group-item:last-child, 5509 | .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { 5510 | border-bottom: 0; 5511 | border-bottom-right-radius: 3px; 5512 | border-bottom-left-radius: 3px; 5513 | } 5514 | .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { 5515 | border-top-left-radius: 0; 5516 | border-top-right-radius: 0; 5517 | } 5518 | .panel-heading + .list-group .list-group-item:first-child { 5519 | border-top-width: 0; 5520 | } 5521 | .list-group + .panel-footer { 5522 | border-top-width: 0; 5523 | } 5524 | .panel > .table, 5525 | .panel > .table-responsive > .table, 5526 | .panel > .panel-collapse > .table { 5527 | margin-bottom: 0; 5528 | } 5529 | .panel > .table caption, 5530 | .panel > .table-responsive > .table caption, 5531 | .panel > .panel-collapse > .table caption { 5532 | padding-right: 15px; 5533 | padding-left: 15px; 5534 | } 5535 | .panel > .table:first-child, 5536 | .panel > .table-responsive:first-child > .table:first-child { 5537 | border-top-left-radius: 3px; 5538 | border-top-right-radius: 3px; 5539 | } 5540 | .panel > .table:first-child > thead:first-child > tr:first-child, 5541 | .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, 5542 | .panel > .table:first-child > tbody:first-child > tr:first-child, 5543 | .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { 5544 | border-top-left-radius: 3px; 5545 | border-top-right-radius: 3px; 5546 | } 5547 | .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, 5548 | .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, 5549 | .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, 5550 | .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, 5551 | .panel > .table:first-child > thead:first-child > tr:first-child th:first-child, 5552 | .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, 5553 | .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, 5554 | .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { 5555 | border-top-left-radius: 3px; 5556 | } 5557 | .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, 5558 | .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, 5559 | .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, 5560 | .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, 5561 | .panel > .table:first-child > thead:first-child > tr:first-child th:last-child, 5562 | .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, 5563 | .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, 5564 | .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { 5565 | border-top-right-radius: 3px; 5566 | } 5567 | .panel > .table:last-child, 5568 | .panel > .table-responsive:last-child > .table:last-child { 5569 | border-bottom-right-radius: 3px; 5570 | border-bottom-left-radius: 3px; 5571 | } 5572 | .panel > .table:last-child > tbody:last-child > tr:last-child, 5573 | .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, 5574 | .panel > .table:last-child > tfoot:last-child > tr:last-child, 5575 | .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { 5576 | border-bottom-right-radius: 3px; 5577 | border-bottom-left-radius: 3px; 5578 | } 5579 | .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, 5580 | .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, 5581 | .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, 5582 | .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, 5583 | .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, 5584 | .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, 5585 | .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, 5586 | .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { 5587 | border-bottom-left-radius: 3px; 5588 | } 5589 | .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, 5590 | .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, 5591 | .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, 5592 | .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, 5593 | .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, 5594 | .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, 5595 | .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, 5596 | .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { 5597 | border-bottom-right-radius: 3px; 5598 | } 5599 | .panel > .panel-body + .table, 5600 | .panel > .panel-body + .table-responsive, 5601 | .panel > .table + .panel-body, 5602 | .panel > .table-responsive + .panel-body { 5603 | border-top: 1px solid #ddd; 5604 | } 5605 | .panel > .table > tbody:first-child > tr:first-child th, 5606 | .panel > .table > tbody:first-child > tr:first-child td { 5607 | border-top: 0; 5608 | } 5609 | .panel > .table-bordered, 5610 | .panel > .table-responsive > .table-bordered { 5611 | border: 0; 5612 | } 5613 | .panel > .table-bordered > thead > tr > th:first-child, 5614 | .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, 5615 | .panel > .table-bordered > tbody > tr > th:first-child, 5616 | .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, 5617 | .panel > .table-bordered > tfoot > tr > th:first-child, 5618 | .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, 5619 | .panel > .table-bordered > thead > tr > td:first-child, 5620 | .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, 5621 | .panel > .table-bordered > tbody > tr > td:first-child, 5622 | .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, 5623 | .panel > .table-bordered > tfoot > tr > td:first-child, 5624 | .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { 5625 | border-left: 0; 5626 | } 5627 | .panel > .table-bordered > thead > tr > th:last-child, 5628 | .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, 5629 | .panel > .table-bordered > tbody > tr > th:last-child, 5630 | .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, 5631 | .panel > .table-bordered > tfoot > tr > th:last-child, 5632 | .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, 5633 | .panel > .table-bordered > thead > tr > td:last-child, 5634 | .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, 5635 | .panel > .table-bordered > tbody > tr > td:last-child, 5636 | .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, 5637 | .panel > .table-bordered > tfoot > tr > td:last-child, 5638 | .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { 5639 | border-right: 0; 5640 | } 5641 | .panel > .table-bordered > thead > tr:first-child > td, 5642 | .panel > .table-responsive > .table-bordered > thead > tr:first-child > td, 5643 | .panel > .table-bordered > tbody > tr:first-child > td, 5644 | .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, 5645 | .panel > .table-bordered > thead > tr:first-child > th, 5646 | .panel > .table-responsive > .table-bordered > thead > tr:first-child > th, 5647 | .panel > .table-bordered > tbody > tr:first-child > th, 5648 | .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { 5649 | border-bottom: 0; 5650 | } 5651 | .panel > .table-bordered > tbody > tr:last-child > td, 5652 | .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, 5653 | .panel > .table-bordered > tfoot > tr:last-child > td, 5654 | .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, 5655 | .panel > .table-bordered > tbody > tr:last-child > th, 5656 | .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, 5657 | .panel > .table-bordered > tfoot > tr:last-child > th, 5658 | .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { 5659 | border-bottom: 0; 5660 | } 5661 | .panel > .table-responsive { 5662 | margin-bottom: 0; 5663 | border: 0; 5664 | } 5665 | .panel-group { 5666 | margin-bottom: 20px; 5667 | } 5668 | .panel-group .panel { 5669 | margin-bottom: 0; 5670 | border-radius: 4px; 5671 | } 5672 | .panel-group .panel + .panel { 5673 | margin-top: 5px; 5674 | } 5675 | .panel-group .panel-heading { 5676 | border-bottom: 0; 5677 | } 5678 | .panel-group .panel-heading + .panel-collapse > .panel-body, 5679 | .panel-group .panel-heading + .panel-collapse > .list-group { 5680 | border-top: 1px solid #ddd; 5681 | } 5682 | .panel-group .panel-footer { 5683 | border-top: 0; 5684 | } 5685 | .panel-group .panel-footer + .panel-collapse .panel-body { 5686 | border-bottom: 1px solid #ddd; 5687 | } 5688 | .panel-default { 5689 | border-color: #ddd; 5690 | } 5691 | .panel-default > .panel-heading { 5692 | color: #333; 5693 | background-color: #f5f5f5; 5694 | border-color: #ddd; 5695 | } 5696 | .panel-default > .panel-heading + .panel-collapse > .panel-body { 5697 | border-top-color: #ddd; 5698 | } 5699 | .panel-default > .panel-heading .badge { 5700 | color: #f5f5f5; 5701 | background-color: #333; 5702 | } 5703 | .panel-default > .panel-footer + .panel-collapse > .panel-body { 5704 | border-bottom-color: #ddd; 5705 | } 5706 | .panel-primary { 5707 | border-color: #337ab7; 5708 | } 5709 | .panel-primary > .panel-heading { 5710 | color: #fff; 5711 | background-color: #337ab7; 5712 | border-color: #337ab7; 5713 | } 5714 | .panel-primary > .panel-heading + .panel-collapse > .panel-body { 5715 | border-top-color: #337ab7; 5716 | } 5717 | .panel-primary > .panel-heading .badge { 5718 | color: #337ab7; 5719 | background-color: #fff; 5720 | } 5721 | .panel-primary > .panel-footer + .panel-collapse > .panel-body { 5722 | border-bottom-color: #337ab7; 5723 | } 5724 | .panel-success { 5725 | border-color: #d6e9c6; 5726 | } 5727 | .panel-success > .panel-heading { 5728 | color: #3c763d; 5729 | background-color: #dff0d8; 5730 | border-color: #d6e9c6; 5731 | } 5732 | .panel-success > .panel-heading + .panel-collapse > .panel-body { 5733 | border-top-color: #d6e9c6; 5734 | } 5735 | .panel-success > .panel-heading .badge { 5736 | color: #dff0d8; 5737 | background-color: #3c763d; 5738 | } 5739 | .panel-success > .panel-footer + .panel-collapse > .panel-body { 5740 | border-bottom-color: #d6e9c6; 5741 | } 5742 | .panel-info { 5743 | border-color: #bce8f1; 5744 | } 5745 | .panel-info > .panel-heading { 5746 | color: #31708f; 5747 | background-color: #d9edf7; 5748 | border-color: #bce8f1; 5749 | } 5750 | .panel-info > .panel-heading + .panel-collapse > .panel-body { 5751 | border-top-color: #bce8f1; 5752 | } 5753 | .panel-info > .panel-heading .badge { 5754 | color: #d9edf7; 5755 | background-color: #31708f; 5756 | } 5757 | .panel-info > .panel-footer + .panel-collapse > .panel-body { 5758 | border-bottom-color: #bce8f1; 5759 | } 5760 | .panel-warning { 5761 | border-color: #faebcc; 5762 | } 5763 | .panel-warning > .panel-heading { 5764 | color: #8a6d3b; 5765 | background-color: #fcf8e3; 5766 | border-color: #faebcc; 5767 | } 5768 | .panel-warning > .panel-heading + .panel-collapse > .panel-body { 5769 | border-top-color: #faebcc; 5770 | } 5771 | .panel-warning > .panel-heading .badge { 5772 | color: #fcf8e3; 5773 | background-color: #8a6d3b; 5774 | } 5775 | .panel-warning > .panel-footer + .panel-collapse > .panel-body { 5776 | border-bottom-color: #faebcc; 5777 | } 5778 | .panel-danger { 5779 | border-color: #ebccd1; 5780 | } 5781 | .panel-danger > .panel-heading { 5782 | color: #a94442; 5783 | background-color: #f2dede; 5784 | border-color: #ebccd1; 5785 | } 5786 | .panel-danger > .panel-heading + .panel-collapse > .panel-body { 5787 | border-top-color: #ebccd1; 5788 | } 5789 | .panel-danger > .panel-heading .badge { 5790 | color: #f2dede; 5791 | background-color: #a94442; 5792 | } 5793 | .panel-danger > .panel-footer + .panel-collapse > .panel-body { 5794 | border-bottom-color: #ebccd1; 5795 | } 5796 | .embed-responsive { 5797 | position: relative; 5798 | display: block; 5799 | height: 0; 5800 | padding: 0; 5801 | overflow: hidden; 5802 | } 5803 | .embed-responsive .embed-responsive-item, 5804 | .embed-responsive iframe, 5805 | .embed-responsive embed, 5806 | .embed-responsive object, 5807 | .embed-responsive video { 5808 | position: absolute; 5809 | top: 0; 5810 | bottom: 0; 5811 | left: 0; 5812 | width: 100%; 5813 | height: 100%; 5814 | border: 0; 5815 | } 5816 | .embed-responsive-16by9 { 5817 | padding-bottom: 56.25%; 5818 | } 5819 | .embed-responsive-4by3 { 5820 | padding-bottom: 75%; 5821 | } 5822 | .well { 5823 | min-height: 20px; 5824 | padding: 19px; 5825 | margin-bottom: 20px; 5826 | background-color: #f5f5f5; 5827 | border: 1px solid #e3e3e3; 5828 | border-radius: 4px; 5829 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); 5830 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); 5831 | } 5832 | .well blockquote { 5833 | border-color: #ddd; 5834 | border-color: rgba(0, 0, 0, .15); 5835 | } 5836 | .well-lg { 5837 | padding: 24px; 5838 | border-radius: 6px; 5839 | } 5840 | .well-sm { 5841 | padding: 9px; 5842 | border-radius: 3px; 5843 | } 5844 | .close { 5845 | float: right; 5846 | font-size: 21px; 5847 | font-weight: bold; 5848 | line-height: 1; 5849 | color: #000; 5850 | text-shadow: 0 1px 0 #fff; 5851 | filter: alpha(opacity=20); 5852 | opacity: .2; 5853 | } 5854 | .close:hover, 5855 | .close:focus { 5856 | color: #000; 5857 | text-decoration: none; 5858 | cursor: pointer; 5859 | filter: alpha(opacity=50); 5860 | opacity: .5; 5861 | } 5862 | button.close { 5863 | -webkit-appearance: none; 5864 | padding: 0; 5865 | cursor: pointer; 5866 | background: transparent; 5867 | border: 0; 5868 | } 5869 | .modal-open { 5870 | overflow: hidden; 5871 | } 5872 | .modal { 5873 | position: fixed; 5874 | top: 0; 5875 | right: 0; 5876 | bottom: 0; 5877 | left: 0; 5878 | z-index: 1050; 5879 | display: none; 5880 | overflow: hidden; 5881 | -webkit-overflow-scrolling: touch; 5882 | outline: 0; 5883 | } 5884 | .modal.fade .modal-dialog { 5885 | -webkit-transition: -webkit-transform .3s ease-out; 5886 | -o-transition: -o-transform .3s ease-out; 5887 | transition: transform .3s ease-out; 5888 | -webkit-transform: translate(0, -25%); 5889 | -ms-transform: translate(0, -25%); 5890 | -o-transform: translate(0, -25%); 5891 | transform: translate(0, -25%); 5892 | } 5893 | .modal.in .modal-dialog { 5894 | -webkit-transform: translate(0, 0); 5895 | -ms-transform: translate(0, 0); 5896 | -o-transform: translate(0, 0); 5897 | transform: translate(0, 0); 5898 | } 5899 | .modal-open .modal { 5900 | overflow-x: hidden; 5901 | overflow-y: auto; 5902 | } 5903 | .modal-dialog { 5904 | position: relative; 5905 | width: auto; 5906 | margin: 10px; 5907 | } 5908 | .modal-content { 5909 | position: relative; 5910 | background-color: #fff; 5911 | -webkit-background-clip: padding-box; 5912 | background-clip: padding-box; 5913 | border: 1px solid #999; 5914 | border: 1px solid rgba(0, 0, 0, .2); 5915 | border-radius: 6px; 5916 | outline: 0; 5917 | -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); 5918 | box-shadow: 0 3px 9px rgba(0, 0, 0, .5); 5919 | } 5920 | .modal-backdrop { 5921 | position: fixed; 5922 | top: 0; 5923 | right: 0; 5924 | bottom: 0; 5925 | left: 0; 5926 | z-index: 1040; 5927 | background-color: #000; 5928 | } 5929 | .modal-backdrop.fade { 5930 | filter: alpha(opacity=0); 5931 | opacity: 0; 5932 | } 5933 | .modal-backdrop.in { 5934 | filter: alpha(opacity=50); 5935 | opacity: .5; 5936 | } 5937 | .modal-header { 5938 | padding: 15px; 5939 | border-bottom: 1px solid #e5e5e5; 5940 | } 5941 | .modal-header .close { 5942 | margin-top: -2px; 5943 | } 5944 | .modal-title { 5945 | margin: 0; 5946 | line-height: 1.42857143; 5947 | } 5948 | .modal-body { 5949 | position: relative; 5950 | padding: 15px; 5951 | } 5952 | .modal-footer { 5953 | padding: 15px; 5954 | text-align: right; 5955 | border-top: 1px solid #e5e5e5; 5956 | } 5957 | .modal-footer .btn + .btn { 5958 | margin-bottom: 0; 5959 | margin-left: 5px; 5960 | } 5961 | .modal-footer .btn-group .btn + .btn { 5962 | margin-left: -1px; 5963 | } 5964 | .modal-footer .btn-block + .btn-block { 5965 | margin-left: 0; 5966 | } 5967 | .modal-scrollbar-measure { 5968 | position: absolute; 5969 | top: -9999px; 5970 | width: 50px; 5971 | height: 50px; 5972 | overflow: scroll; 5973 | } 5974 | @media (min-width: 768px) { 5975 | .modal-dialog { 5976 | width: 600px; 5977 | margin: 30px auto; 5978 | } 5979 | .modal-content { 5980 | -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); 5981 | box-shadow: 0 5px 15px rgba(0, 0, 0, .5); 5982 | } 5983 | .modal-sm { 5984 | width: 300px; 5985 | } 5986 | } 5987 | @media (min-width: 992px) { 5988 | .modal-lg { 5989 | width: 900px; 5990 | } 5991 | } 5992 | .tooltip { 5993 | position: absolute; 5994 | z-index: 1070; 5995 | display: block; 5996 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 5997 | font-size: 12px; 5998 | font-style: normal; 5999 | font-weight: normal; 6000 | line-height: 1.42857143; 6001 | text-align: left; 6002 | text-align: start; 6003 | text-decoration: none; 6004 | text-shadow: none; 6005 | text-transform: none; 6006 | letter-spacing: normal; 6007 | word-break: normal; 6008 | word-spacing: normal; 6009 | word-wrap: normal; 6010 | white-space: normal; 6011 | filter: alpha(opacity=0); 6012 | opacity: 0; 6013 | 6014 | line-break: auto; 6015 | } 6016 | .tooltip.in { 6017 | filter: alpha(opacity=90); 6018 | opacity: .9; 6019 | } 6020 | .tooltip.top { 6021 | padding: 5px 0; 6022 | margin-top: -3px; 6023 | } 6024 | .tooltip.right { 6025 | padding: 0 5px; 6026 | margin-left: 3px; 6027 | } 6028 | .tooltip.bottom { 6029 | padding: 5px 0; 6030 | margin-top: 3px; 6031 | } 6032 | .tooltip.left { 6033 | padding: 0 5px; 6034 | margin-left: -3px; 6035 | } 6036 | .tooltip-inner { 6037 | max-width: 200px; 6038 | padding: 3px 8px; 6039 | color: #fff; 6040 | text-align: center; 6041 | background-color: #000; 6042 | border-radius: 4px; 6043 | } 6044 | .tooltip-arrow { 6045 | position: absolute; 6046 | width: 0; 6047 | height: 0; 6048 | border-color: transparent; 6049 | border-style: solid; 6050 | } 6051 | .tooltip.top .tooltip-arrow { 6052 | bottom: 0; 6053 | left: 50%; 6054 | margin-left: -5px; 6055 | border-width: 5px 5px 0; 6056 | border-top-color: #000; 6057 | } 6058 | .tooltip.top-left .tooltip-arrow { 6059 | right: 5px; 6060 | bottom: 0; 6061 | margin-bottom: -5px; 6062 | border-width: 5px 5px 0; 6063 | border-top-color: #000; 6064 | } 6065 | .tooltip.top-right .tooltip-arrow { 6066 | bottom: 0; 6067 | left: 5px; 6068 | margin-bottom: -5px; 6069 | border-width: 5px 5px 0; 6070 | border-top-color: #000; 6071 | } 6072 | .tooltip.right .tooltip-arrow { 6073 | top: 50%; 6074 | left: 0; 6075 | margin-top: -5px; 6076 | border-width: 5px 5px 5px 0; 6077 | border-right-color: #000; 6078 | } 6079 | .tooltip.left .tooltip-arrow { 6080 | top: 50%; 6081 | right: 0; 6082 | margin-top: -5px; 6083 | border-width: 5px 0 5px 5px; 6084 | border-left-color: #000; 6085 | } 6086 | .tooltip.bottom .tooltip-arrow { 6087 | top: 0; 6088 | left: 50%; 6089 | margin-left: -5px; 6090 | border-width: 0 5px 5px; 6091 | border-bottom-color: #000; 6092 | } 6093 | .tooltip.bottom-left .tooltip-arrow { 6094 | top: 0; 6095 | right: 5px; 6096 | margin-top: -5px; 6097 | border-width: 0 5px 5px; 6098 | border-bottom-color: #000; 6099 | } 6100 | .tooltip.bottom-right .tooltip-arrow { 6101 | top: 0; 6102 | left: 5px; 6103 | margin-top: -5px; 6104 | border-width: 0 5px 5px; 6105 | border-bottom-color: #000; 6106 | } 6107 | .popover { 6108 | position: absolute; 6109 | top: 0; 6110 | left: 0; 6111 | z-index: 1060; 6112 | display: none; 6113 | max-width: 276px; 6114 | padding: 1px; 6115 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 6116 | font-size: 14px; 6117 | font-style: normal; 6118 | font-weight: normal; 6119 | line-height: 1.42857143; 6120 | text-align: left; 6121 | text-align: start; 6122 | text-decoration: none; 6123 | text-shadow: none; 6124 | text-transform: none; 6125 | letter-spacing: normal; 6126 | word-break: normal; 6127 | word-spacing: normal; 6128 | word-wrap: normal; 6129 | white-space: normal; 6130 | background-color: #fff; 6131 | -webkit-background-clip: padding-box; 6132 | background-clip: padding-box; 6133 | border: 1px solid #ccc; 6134 | border: 1px solid rgba(0, 0, 0, .2); 6135 | border-radius: 6px; 6136 | -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); 6137 | box-shadow: 0 5px 10px rgba(0, 0, 0, .2); 6138 | 6139 | line-break: auto; 6140 | } 6141 | .popover.top { 6142 | margin-top: -10px; 6143 | } 6144 | .popover.right { 6145 | margin-left: 10px; 6146 | } 6147 | .popover.bottom { 6148 | margin-top: 10px; 6149 | } 6150 | .popover.left { 6151 | margin-left: -10px; 6152 | } 6153 | .popover-title { 6154 | padding: 8px 14px; 6155 | margin: 0; 6156 | font-size: 14px; 6157 | background-color: #f7f7f7; 6158 | border-bottom: 1px solid #ebebeb; 6159 | border-radius: 5px 5px 0 0; 6160 | } 6161 | .popover-content { 6162 | padding: 9px 14px; 6163 | } 6164 | .popover > .arrow, 6165 | .popover > .arrow:after { 6166 | position: absolute; 6167 | display: block; 6168 | width: 0; 6169 | height: 0; 6170 | border-color: transparent; 6171 | border-style: solid; 6172 | } 6173 | .popover > .arrow { 6174 | border-width: 11px; 6175 | } 6176 | .popover > .arrow:after { 6177 | content: ""; 6178 | border-width: 10px; 6179 | } 6180 | .popover.top > .arrow { 6181 | bottom: -11px; 6182 | left: 50%; 6183 | margin-left: -11px; 6184 | border-top-color: #999; 6185 | border-top-color: rgba(0, 0, 0, .25); 6186 | border-bottom-width: 0; 6187 | } 6188 | .popover.top > .arrow:after { 6189 | bottom: 1px; 6190 | margin-left: -10px; 6191 | content: " "; 6192 | border-top-color: #fff; 6193 | border-bottom-width: 0; 6194 | } 6195 | .popover.right > .arrow { 6196 | top: 50%; 6197 | left: -11px; 6198 | margin-top: -11px; 6199 | border-right-color: #999; 6200 | border-right-color: rgba(0, 0, 0, .25); 6201 | border-left-width: 0; 6202 | } 6203 | .popover.right > .arrow:after { 6204 | bottom: -10px; 6205 | left: 1px; 6206 | content: " "; 6207 | border-right-color: #fff; 6208 | border-left-width: 0; 6209 | } 6210 | .popover.bottom > .arrow { 6211 | top: -11px; 6212 | left: 50%; 6213 | margin-left: -11px; 6214 | border-top-width: 0; 6215 | border-bottom-color: #999; 6216 | border-bottom-color: rgba(0, 0, 0, .25); 6217 | } 6218 | .popover.bottom > .arrow:after { 6219 | top: 1px; 6220 | margin-left: -10px; 6221 | content: " "; 6222 | border-top-width: 0; 6223 | border-bottom-color: #fff; 6224 | } 6225 | .popover.left > .arrow { 6226 | top: 50%; 6227 | right: -11px; 6228 | margin-top: -11px; 6229 | border-right-width: 0; 6230 | border-left-color: #999; 6231 | border-left-color: rgba(0, 0, 0, .25); 6232 | } 6233 | .popover.left > .arrow:after { 6234 | right: 1px; 6235 | bottom: -10px; 6236 | content: " "; 6237 | border-right-width: 0; 6238 | border-left-color: #fff; 6239 | } 6240 | .carousel { 6241 | position: relative; 6242 | } 6243 | .carousel-inner { 6244 | position: relative; 6245 | width: 100%; 6246 | overflow: hidden; 6247 | } 6248 | .carousel-inner > .item { 6249 | position: relative; 6250 | display: none; 6251 | -webkit-transition: .6s ease-in-out left; 6252 | -o-transition: .6s ease-in-out left; 6253 | transition: .6s ease-in-out left; 6254 | } 6255 | .carousel-inner > .item > img, 6256 | .carousel-inner > .item > a > img { 6257 | line-height: 1; 6258 | } 6259 | @media all and (transform-3d), (-webkit-transform-3d) { 6260 | .carousel-inner > .item { 6261 | -webkit-transition: -webkit-transform .6s ease-in-out; 6262 | -o-transition: -o-transform .6s ease-in-out; 6263 | transition: transform .6s ease-in-out; 6264 | 6265 | -webkit-backface-visibility: hidden; 6266 | backface-visibility: hidden; 6267 | -webkit-perspective: 1000px; 6268 | perspective: 1000px; 6269 | } 6270 | .carousel-inner > .item.next, 6271 | .carousel-inner > .item.active.right { 6272 | left: 0; 6273 | -webkit-transform: translate3d(100%, 0, 0); 6274 | transform: translate3d(100%, 0, 0); 6275 | } 6276 | .carousel-inner > .item.prev, 6277 | .carousel-inner > .item.active.left { 6278 | left: 0; 6279 | -webkit-transform: translate3d(-100%, 0, 0); 6280 | transform: translate3d(-100%, 0, 0); 6281 | } 6282 | .carousel-inner > .item.next.left, 6283 | .carousel-inner > .item.prev.right, 6284 | .carousel-inner > .item.active { 6285 | left: 0; 6286 | -webkit-transform: translate3d(0, 0, 0); 6287 | transform: translate3d(0, 0, 0); 6288 | } 6289 | } 6290 | .carousel-inner > .active, 6291 | .carousel-inner > .next, 6292 | .carousel-inner > .prev { 6293 | display: block; 6294 | } 6295 | .carousel-inner > .active { 6296 | left: 0; 6297 | } 6298 | .carousel-inner > .next, 6299 | .carousel-inner > .prev { 6300 | position: absolute; 6301 | top: 0; 6302 | width: 100%; 6303 | } 6304 | .carousel-inner > .next { 6305 | left: 100%; 6306 | } 6307 | .carousel-inner > .prev { 6308 | left: -100%; 6309 | } 6310 | .carousel-inner > .next.left, 6311 | .carousel-inner > .prev.right { 6312 | left: 0; 6313 | } 6314 | .carousel-inner > .active.left { 6315 | left: -100%; 6316 | } 6317 | .carousel-inner > .active.right { 6318 | left: 100%; 6319 | } 6320 | .carousel-control { 6321 | position: absolute; 6322 | top: 0; 6323 | bottom: 0; 6324 | left: 0; 6325 | width: 15%; 6326 | font-size: 20px; 6327 | color: #fff; 6328 | text-align: center; 6329 | text-shadow: 0 1px 2px rgba(0, 0, 0, .6); 6330 | background-color: rgba(0, 0, 0, 0); 6331 | filter: alpha(opacity=50); 6332 | opacity: .5; 6333 | } 6334 | .carousel-control.left { 6335 | background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); 6336 | background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); 6337 | background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); 6338 | background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); 6339 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); 6340 | background-repeat: repeat-x; 6341 | } 6342 | .carousel-control.right { 6343 | right: 0; 6344 | left: auto; 6345 | background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); 6346 | background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); 6347 | background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); 6348 | background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); 6349 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); 6350 | background-repeat: repeat-x; 6351 | } 6352 | .carousel-control:hover, 6353 | .carousel-control:focus { 6354 | color: #fff; 6355 | text-decoration: none; 6356 | filter: alpha(opacity=90); 6357 | outline: 0; 6358 | opacity: .9; 6359 | } 6360 | .carousel-control .icon-prev, 6361 | .carousel-control .icon-next, 6362 | .carousel-control .glyphicon-chevron-left, 6363 | .carousel-control .glyphicon-chevron-right { 6364 | position: absolute; 6365 | top: 50%; 6366 | z-index: 5; 6367 | display: inline-block; 6368 | margin-top: -10px; 6369 | } 6370 | .carousel-control .icon-prev, 6371 | .carousel-control .glyphicon-chevron-left { 6372 | left: 50%; 6373 | margin-left: -10px; 6374 | } 6375 | .carousel-control .icon-next, 6376 | .carousel-control .glyphicon-chevron-right { 6377 | right: 50%; 6378 | margin-right: -10px; 6379 | } 6380 | .carousel-control .icon-prev, 6381 | .carousel-control .icon-next { 6382 | width: 20px; 6383 | height: 20px; 6384 | font-family: serif; 6385 | line-height: 1; 6386 | } 6387 | .carousel-control .icon-prev:before { 6388 | content: '\2039'; 6389 | } 6390 | .carousel-control .icon-next:before { 6391 | content: '\203a'; 6392 | } 6393 | .carousel-indicators { 6394 | position: absolute; 6395 | bottom: 10px; 6396 | left: 50%; 6397 | z-index: 15; 6398 | width: 60%; 6399 | padding-left: 0; 6400 | margin-left: -30%; 6401 | text-align: center; 6402 | list-style: none; 6403 | } 6404 | .carousel-indicators li { 6405 | display: inline-block; 6406 | width: 10px; 6407 | height: 10px; 6408 | margin: 1px; 6409 | text-indent: -999px; 6410 | cursor: pointer; 6411 | background-color: #000 \9; 6412 | background-color: rgba(0, 0, 0, 0); 6413 | border: 1px solid #fff; 6414 | border-radius: 10px; 6415 | } 6416 | .carousel-indicators .active { 6417 | width: 12px; 6418 | height: 12px; 6419 | margin: 0; 6420 | background-color: #fff; 6421 | } 6422 | .carousel-caption { 6423 | position: absolute; 6424 | right: 15%; 6425 | bottom: 20px; 6426 | left: 15%; 6427 | z-index: 10; 6428 | padding-top: 20px; 6429 | padding-bottom: 20px; 6430 | color: #fff; 6431 | text-align: center; 6432 | text-shadow: 0 1px 2px rgba(0, 0, 0, .6); 6433 | } 6434 | .carousel-caption .btn { 6435 | text-shadow: none; 6436 | } 6437 | @media screen and (min-width: 768px) { 6438 | .carousel-control .glyphicon-chevron-left, 6439 | .carousel-control .glyphicon-chevron-right, 6440 | .carousel-control .icon-prev, 6441 | .carousel-control .icon-next { 6442 | width: 30px; 6443 | height: 30px; 6444 | margin-top: -10px; 6445 | font-size: 30px; 6446 | } 6447 | .carousel-control .glyphicon-chevron-left, 6448 | .carousel-control .icon-prev { 6449 | margin-left: -10px; 6450 | } 6451 | .carousel-control .glyphicon-chevron-right, 6452 | .carousel-control .icon-next { 6453 | margin-right: -10px; 6454 | } 6455 | .carousel-caption { 6456 | right: 20%; 6457 | left: 20%; 6458 | padding-bottom: 30px; 6459 | } 6460 | .carousel-indicators { 6461 | bottom: 20px; 6462 | } 6463 | } 6464 | .clearfix:before, 6465 | .clearfix:after, 6466 | .dl-horizontal dd:before, 6467 | .dl-horizontal dd:after, 6468 | .container:before, 6469 | .container:after, 6470 | .container-fluid:before, 6471 | .container-fluid:after, 6472 | .row:before, 6473 | .row:after, 6474 | .form-horizontal .form-group:before, 6475 | .form-horizontal .form-group:after, 6476 | .btn-toolbar:before, 6477 | .btn-toolbar:after, 6478 | .btn-group-vertical > .btn-group:before, 6479 | .btn-group-vertical > .btn-group:after, 6480 | .nav:before, 6481 | .nav:after, 6482 | .navbar:before, 6483 | .navbar:after, 6484 | .navbar-header:before, 6485 | .navbar-header:after, 6486 | .navbar-collapse:before, 6487 | .navbar-collapse:after, 6488 | .pager:before, 6489 | .pager:after, 6490 | .panel-body:before, 6491 | .panel-body:after, 6492 | .modal-header:before, 6493 | .modal-header:after, 6494 | .modal-footer:before, 6495 | .modal-footer:after { 6496 | display: table; 6497 | content: " "; 6498 | } 6499 | .clearfix:after, 6500 | .dl-horizontal dd:after, 6501 | .container:after, 6502 | .container-fluid:after, 6503 | .row:after, 6504 | .form-horizontal .form-group:after, 6505 | .btn-toolbar:after, 6506 | .btn-group-vertical > .btn-group:after, 6507 | .nav:after, 6508 | .navbar:after, 6509 | .navbar-header:after, 6510 | .navbar-collapse:after, 6511 | .pager:after, 6512 | .panel-body:after, 6513 | .modal-header:after, 6514 | .modal-footer:after { 6515 | clear: both; 6516 | } 6517 | .center-block { 6518 | display: block; 6519 | margin-right: auto; 6520 | margin-left: auto; 6521 | } 6522 | .pull-right { 6523 | float: right !important; 6524 | } 6525 | .pull-left { 6526 | float: left !important; 6527 | } 6528 | .hide { 6529 | display: none !important; 6530 | } 6531 | .show { 6532 | display: block !important; 6533 | } 6534 | .invisible { 6535 | visibility: hidden; 6536 | } 6537 | .text-hide { 6538 | font: 0/0 a; 6539 | color: transparent; 6540 | text-shadow: none; 6541 | background-color: transparent; 6542 | border: 0; 6543 | } 6544 | .hidden { 6545 | display: none !important; 6546 | } 6547 | .affix { 6548 | position: fixed; 6549 | } 6550 | @-ms-viewport { 6551 | width: device-width; 6552 | } 6553 | .visible-xs, 6554 | .visible-sm, 6555 | .visible-md, 6556 | .visible-lg { 6557 | display: none !important; 6558 | } 6559 | .visible-xs-block, 6560 | .visible-xs-inline, 6561 | .visible-xs-inline-block, 6562 | .visible-sm-block, 6563 | .visible-sm-inline, 6564 | .visible-sm-inline-block, 6565 | .visible-md-block, 6566 | .visible-md-inline, 6567 | .visible-md-inline-block, 6568 | .visible-lg-block, 6569 | .visible-lg-inline, 6570 | .visible-lg-inline-block { 6571 | display: none !important; 6572 | } 6573 | @media (max-width: 767px) { 6574 | .visible-xs { 6575 | display: block !important; 6576 | } 6577 | table.visible-xs { 6578 | display: table !important; 6579 | } 6580 | tr.visible-xs { 6581 | display: table-row !important; 6582 | } 6583 | th.visible-xs, 6584 | td.visible-xs { 6585 | display: table-cell !important; 6586 | } 6587 | } 6588 | @media (max-width: 767px) { 6589 | .visible-xs-block { 6590 | display: block !important; 6591 | } 6592 | } 6593 | @media (max-width: 767px) { 6594 | .visible-xs-inline { 6595 | display: inline !important; 6596 | } 6597 | } 6598 | @media (max-width: 767px) { 6599 | .visible-xs-inline-block { 6600 | display: inline-block !important; 6601 | } 6602 | } 6603 | @media (min-width: 768px) and (max-width: 991px) { 6604 | .visible-sm { 6605 | display: block !important; 6606 | } 6607 | table.visible-sm { 6608 | display: table !important; 6609 | } 6610 | tr.visible-sm { 6611 | display: table-row !important; 6612 | } 6613 | th.visible-sm, 6614 | td.visible-sm { 6615 | display: table-cell !important; 6616 | } 6617 | } 6618 | @media (min-width: 768px) and (max-width: 991px) { 6619 | .visible-sm-block { 6620 | display: block !important; 6621 | } 6622 | } 6623 | @media (min-width: 768px) and (max-width: 991px) { 6624 | .visible-sm-inline { 6625 | display: inline !important; 6626 | } 6627 | } 6628 | @media (min-width: 768px) and (max-width: 991px) { 6629 | .visible-sm-inline-block { 6630 | display: inline-block !important; 6631 | } 6632 | } 6633 | @media (min-width: 992px) and (max-width: 1199px) { 6634 | .visible-md { 6635 | display: block !important; 6636 | } 6637 | table.visible-md { 6638 | display: table !important; 6639 | } 6640 | tr.visible-md { 6641 | display: table-row !important; 6642 | } 6643 | th.visible-md, 6644 | td.visible-md { 6645 | display: table-cell !important; 6646 | } 6647 | } 6648 | @media (min-width: 992px) and (max-width: 1199px) { 6649 | .visible-md-block { 6650 | display: block !important; 6651 | } 6652 | } 6653 | @media (min-width: 992px) and (max-width: 1199px) { 6654 | .visible-md-inline { 6655 | display: inline !important; 6656 | } 6657 | } 6658 | @media (min-width: 992px) and (max-width: 1199px) { 6659 | .visible-md-inline-block { 6660 | display: inline-block !important; 6661 | } 6662 | } 6663 | @media (min-width: 1200px) { 6664 | .visible-lg { 6665 | display: block !important; 6666 | } 6667 | table.visible-lg { 6668 | display: table !important; 6669 | } 6670 | tr.visible-lg { 6671 | display: table-row !important; 6672 | } 6673 | th.visible-lg, 6674 | td.visible-lg { 6675 | display: table-cell !important; 6676 | } 6677 | } 6678 | @media (min-width: 1200px) { 6679 | .visible-lg-block { 6680 | display: block !important; 6681 | } 6682 | } 6683 | @media (min-width: 1200px) { 6684 | .visible-lg-inline { 6685 | display: inline !important; 6686 | } 6687 | } 6688 | @media (min-width: 1200px) { 6689 | .visible-lg-inline-block { 6690 | display: inline-block !important; 6691 | } 6692 | } 6693 | @media (max-width: 767px) { 6694 | .hidden-xs { 6695 | display: none !important; 6696 | } 6697 | } 6698 | @media (min-width: 768px) and (max-width: 991px) { 6699 | .hidden-sm { 6700 | display: none !important; 6701 | } 6702 | } 6703 | @media (min-width: 992px) and (max-width: 1199px) { 6704 | .hidden-md { 6705 | display: none !important; 6706 | } 6707 | } 6708 | @media (min-width: 1200px) { 6709 | .hidden-lg { 6710 | display: none !important; 6711 | } 6712 | } 6713 | .visible-print { 6714 | display: none !important; 6715 | } 6716 | @media print { 6717 | .visible-print { 6718 | display: block !important; 6719 | } 6720 | table.visible-print { 6721 | display: table !important; 6722 | } 6723 | tr.visible-print { 6724 | display: table-row !important; 6725 | } 6726 | th.visible-print, 6727 | td.visible-print { 6728 | display: table-cell !important; 6729 | } 6730 | } 6731 | .visible-print-block { 6732 | display: none !important; 6733 | } 6734 | @media print { 6735 | .visible-print-block { 6736 | display: block !important; 6737 | } 6738 | } 6739 | .visible-print-inline { 6740 | display: none !important; 6741 | } 6742 | @media print { 6743 | .visible-print-inline { 6744 | display: inline !important; 6745 | } 6746 | } 6747 | .visible-print-inline-block { 6748 | display: none !important; 6749 | } 6750 | @media print { 6751 | .visible-print-inline-block { 6752 | display: inline-block !important; 6753 | } 6754 | } 6755 | @media print { 6756 | .hidden-print { 6757 | display: none !important; 6758 | } 6759 | } 6760 | /*# sourceMappingURL=bootstrap.css.map */ 6761 | -------------------------------------------------------------------------------- /stt/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxmedia/Transcriber/75940e6be8df8aa84909a32246861b209383b449/stt/index.js -------------------------------------------------------------------------------- /stt/watson.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Takes audio file less then 100mb and sends it to IBM watson to be transcribed. 3 | * Transcription is then saved as a file. and path of that file is returned. 4 | */ 5 | 6 | //https://github.com/watson-developer-cloud/node-sdk#speech-to-text 7 | var watson = require('watson-developer-cloud'); 8 | var fs = require("fs"); 9 | 10 | //setting a path to a transcription folder where to save text stream recieved from IBM API 11 | //TODO: Destination folder of transcriptions could be moved as a param of `watsonTranscribe()`. to make the module more system indipendent. 12 | // var tmpTranscriptionFolder = "./tmp/text" 13 | 14 | // Initialise var so that scope allows to set api keys 15 | // and use it inside `watsonTranscibe()` function 16 | var speech_to_text; 17 | 18 | /** 19 | * takes in json of api keys 20 | * `var keys = {username: "",password: ""}`` 21 | */ 22 | function setAPIkeys(keys){ 23 | speech_to_text = watson.speech_to_text({ 24 | username: keys.username, 25 | password: keys.password, 26 | version: 'v1' 27 | }); 28 | } 29 | 30 | /** 31 | * takes in autio file path 32 | * returns callback with file path to text file containing transcriptions. 33 | */ 34 | function watsonTranscribe(audioFile,tmpTranscriptionFolder, cb){ 35 | 36 | var processingAudio = false; 37 | 38 | var tmpTranscriptionText = tmpTranscriptionFolder+"/"+getFileName(audioFile)+".transcription.txt" 39 | 40 | //initialise writing stream to capture IBM API response 41 | var writableStream = fs.createWriteStream(tmpTranscriptionText); 42 | 43 | // stream audio to IBM API 44 | fs.createReadStream(audioFile) 45 | .pipe(speech_to_text.createRecognizeStream( 46 | { content_type: 'audio/l16; rate=44100' }) 47 | ) 48 | // gets back transcription through data stream 49 | .on('data', function(chunk) { 50 | //writes response(text transcription) to file locally uising stream 51 | writableStream.write(chunk); 52 | console.log("processing audio") 53 | processingAudio = true; 54 | }) 55 | // when streaming from IBM API finishes return callback 56 | .on('close', function(){ 57 | console.log('request finished downloading file'); 58 | processingAudio = false; 59 | //callback returns file path/name of the text transcription 60 | cb(tmpTranscriptionText) 61 | }); 62 | }//transcribe 63 | 64 | 65 | /** 66 | * Helper function to extracts file name from file path string 67 | */ 68 | function getFileName(fileNameWithPath){ 69 | return fileNameWithPath.split("/").pop() 70 | } 71 | 72 | 73 | module.exports = watsonTranscribe; 74 | 75 | module.exports.setKeys = setAPIkeys; 76 | -------------------------------------------------------------------------------- /stt/watson_test.js: -------------------------------------------------------------------------------- 1 | var watsonTranscribe = require("./watson.js"); 2 | var demo_audio = "../tmp/audio/norman_door.mp4.temp.wav" 3 | 4 | var keys = {username: "",password: ""} 5 | watsonTranscribe.setKeys(keys) 6 | 7 | watsonTranscribe(demo_audio, function(res){ 8 | // console.log("finished!!!!") 9 | console.log(res) 10 | }) 11 | -------------------------------------------------------------------------------- /tmp/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxmedia/Transcriber/75940e6be8df8aa84909a32246861b209383b449/tmp/.keep -------------------------------------------------------------------------------- /tmp/audio/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxmedia/Transcriber/75940e6be8df8aa84909a32246861b209383b449/tmp/audio/.keep -------------------------------------------------------------------------------- /tmp/audio/keep.md: -------------------------------------------------------------------------------- 1 | keep.md added to that when packaging in nwjs folder structure is kept. 2 | it seems to ignore .keep 3 | -------------------------------------------------------------------------------- /tmp/keep.md: -------------------------------------------------------------------------------- 1 | keep.md added to that when packaging in nwjs folder structure is kept. 2 | it seems to ignore .keep 3 | -------------------------------------------------------------------------------- /tmp/text/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxmedia/Transcriber/75940e6be8df8aa84909a32246861b209383b449/tmp/text/.keep -------------------------------------------------------------------------------- /tmp/text/keep.md: -------------------------------------------------------------------------------- 1 | keep.md added to that when packaging in nwjs folder structure is kept. 2 | it seems to ignore .keep 3 | -------------------------------------------------------------------------------- /transcriber.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Using watson stt module, and video to audio conversion as dependencies 3 | * transcribe module takes in a video file path, the IBM watson Speech to Text API Keys and a destination folder to save the transcriptions in. 4 | * As well as a callback to return the path/name of transcription once reciving transcription from the API and saving it to file is complete. 5 | * 6 | * 7 | * There is a restriction on the IBM API that the audio file needs to be less then 100mb, but for now I've removed any validation on the size of the audio file. Because when testing converting 54gb video file with the `video_to_audio` dependency the resulting audio was between 50 and 70mb. 8 | * 9 | * ffprobe could be use to implement such validation should there was a need for it in the future. 10 | */ 11 | var convertToWav = require("./video_to_audio_processing/video_to_audio.js"); 12 | var watsonTranscribe = require("./stt/watson.js"); 13 | 14 | /* 15 | * Params: video file path/name, IBM API Keys as object with username password attributes, audio file folder destination path, transcription text folder destination path. 16 | callback to return path to text transcription file. 17 | */ 18 | function transcribe(videoFile,keys,tmpAudioFolder,destTextFolder, cb){ 19 | //set IBM API keys 20 | watsonTranscribe.setKeys(keys) 21 | //defines audio file new name with full path. 22 | var tempAudioDestination = tmpAudioFolder+getFileName(videoFile)+".temp.wav"; 23 | //convert video to audio, returns path to audio file 24 | convertToWav(videoFile, tempAudioDestination, function(resAudioFile){ 25 | //transcribed audio file by sending to IBM API 26 | watsonTranscribe(resAudioFile, destTextFolder ,function(resTranscriptionTextFilePath){ 27 | //res, returns the filename of transcription text file 28 | cb(resTranscriptionTextFilePath) 29 | })//watsonTranscribe 30 | });//convertToWav 31 | /** 32 | * helper function extracts file name from file path 33 | */ 34 | function getFileName(fileNameWithPath){ 35 | return fileNameWithPath.split("/").pop() 36 | } 37 | 38 | } 39 | 40 | module.exports = transcribe; 41 | -------------------------------------------------------------------------------- /video_to_audio_processing/video_to_audio.js: -------------------------------------------------------------------------------- 1 | /* 2 | * convert video file to audio 3 | * use node fluent ffmpeg (to be able to specify path to ffmpeg binary) 4 | * and to avoid security issues associated with calling child process making system call to ffmpeg. 5 | * IBM API Audio settings from sam's github gist https://gist.github.com/antiboredom/9bed969c8b2f89ea4b6c#file-transcribe-js-L18 6 | * 7 | */ 8 | 9 | var fs = require('fs'); 10 | var ffmpeg = require('fluent-ffmpeg'); 11 | // Setting ffmpeg path to ffmpeg binary for os x so that ffmpeg can be packaged with the app. 12 | ffmpeg.setFfmpegPath("./bin/ffmpeg") 13 | //because of the nature of ffmpeg, this can take both audio or video files as input 14 | function convertToWav(file,output, cb) { 15 | var audioBitRateFor100mbSize='2'; 16 | var aud_file = output; 17 | var comand = ffmpeg(file) 18 | .noVideo() 19 | .audioCodec('pcm_s16le') 20 | .audioChannels(1) 21 | .audioFrequency(16000) 22 | .audioBitrate(audioBitRateFor100mbSize, true) 23 | // .videoBitrate(audioBitRateFor100mbSize, true) 24 | .output(aud_file) 25 | .on('progress', function(progress) { 26 | // progress // {"frames":null,"currentFps":null,"currentKbps":256,"targetSize":204871,"timemark":"01:49:15.90"} 27 | console.log('Processing: ' + progress.timemark + ' done ' + progress.targetSize+' kilobytes'); 28 | }) 29 | .on('end', 30 | //listener must be a function, so to return the callback wrapping it inside a function 31 | function(){ 32 | cb(aud_file) 33 | } 34 | || function() { 35 | console.log('Finished processing'); 36 | } 37 | ).run(); 38 | } 39 | 40 | module.exports = convertToWav; 41 | -------------------------------------------------------------------------------- /video_to_audio_processing/video_to_audio_test.js: -------------------------------------------------------------------------------- 1 | var convertToWav = require("./video_to_audio.js"); 2 | 3 | var demo_video_file="../demo_media/norman_door.mp4"; 4 | var demo_temp_audio_destination = "../tmp/audio/norman_door.mp4"+".temp.wav"; 5 | 6 | convertToWav(demo_video_file, demo_temp_audio_destination, function(res){ 7 | console.log(demo_video_file) 8 | //returns audio file path 9 | console.log(res) 10 | }); 11 | --------------------------------------------------------------------------------