├── .gitignore ├── .jshintrc ├── README.md ├── client └── src │ ├── app │ ├── app.js │ ├── appCtrl.js │ └── home.html │ ├── bower.json │ ├── index.html │ └── less │ ├── css │ ├── bootstrap.css │ ├── custom.css │ └── growl.css │ └── js │ └── growl.js └── server ├── .gitignore ├── config └── config.js ├── controller └── uploadDownload.js ├── package.json ├── routes.js ├── server.js └── static.js /.gitignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | 10 | pids 11 | logs 12 | results 13 | client/src/bower_components 14 | node_modules 15 | npm-debug.log 16 | /.idea 17 | server/public 18 | .jshintrc 19 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "node": true, 3 | "strict": true, 4 | "indent": 2, 5 | "latedef": true, 6 | "undef": true, 7 | "unused": true, 8 | "camelcase": true, 9 | "curly": true, 10 | "eqeqeq": true, 11 | "newcap": true, 12 | "quotmark": "single" 13 | } 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Hapi-file-upload-download 2 | ======================== 3 | 4 | The purpose of this app is to upload and download the file of any extension. You don't need to worry about file extension, is going to work for all types of file. 5 | 6 | ### Install an app 7 | 8 | Run the following command in root directory of an app in command prompt. 9 | 10 | ###### *Install node packages* 11 | 12 | server/ npm install 13 | 14 | ### Run an app 15 | 16 | ###### *Run Server* 17 | 18 | Run the following command in root directory of an app in command prompt. 19 | 20 | server/ node server.js 21 | 22 | You can see the port number in command prompt after sucessfull run 23 | 24 | [Express-file-upload-download] (https://github.com/pandeysoni/Express-file-upload-download) 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /client/src/app/app.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* defining the app */ 4 | var app = angular 5 | .module("fileupload", ['ngRoute','ngResource', 'angular-growl']) 6 | .config(function($routeProvider, growlProvider) { 7 | growlProvider.globalTimeToLive(5000); 8 | $routeProvider 9 | .when('/', 10 | {templateUrl: 'app/home.html'}, 11 | {controller: 'appCtrl.js'} 12 | ) 13 | .otherwise({redirectTo: '/'}); 14 | }); -------------------------------------------------------------------------------- /client/src/app/appCtrl.js: -------------------------------------------------------------------------------- 1 | app.controller('appCtrl', [ '$scope', '$http','$location', 'growl', 2 | function($scope, $http, $location, growl){ 3 | 4 | $scope.uploadfile = function(){ 5 | $http.post('/upload',$scope.file).then(function(data){ 6 | console.log('success'); 7 | // $scope.sectionList = data; 8 | }).catch(function(error){ 9 | growl.addErrorMessage('oops! Something went wrong'); 10 | }) 11 | } 12 | 13 | $scope.onFileSelect = function($files){ 14 | $scope.file = $files[0].name; 15 | console.log($scope.file); 16 | } 17 | }] 18 | ) -------------------------------------------------------------------------------- /client/src/app/home.html: -------------------------------------------------------------------------------- 1 |
2 |

Upload Files

3 |
4 |
5 |
6 | 7 | Submit 8 |
9 | 10 |
11 |
12 | -------------------------------------------------------------------------------- /client/src/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Hapi-Mongoose-Angular", 3 | "description": "", 4 | "version": "0.0.0", 5 | "homepage": "", 6 | "license": "", 7 | "private": true, 8 | "dependencies": { 9 | "angular": "~1.3.3", 10 | "angular-route": "~1.2.x", 11 | "angular-resource": "~1.2.x" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /client/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Hapi file upload download 8 | 9 | 10 | 11 | 16 | 17 | 18 | 19 |
20 | 27 | 28 |
29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /client/src/less/css/bootstrap.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v2.2.2 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */ 10 | 11 | article, 12 | aside, 13 | details, 14 | figcaption, 15 | figure, 16 | footer, 17 | header, 18 | hgroup, 19 | nav, 20 | section { 21 | display: block; 22 | } 23 | 24 | audio, 25 | canvas, 26 | video { 27 | display: inline-block; 28 | *display: inline; 29 | *zoom: 1; 30 | } 31 | 32 | audio:not([controls]) { 33 | display: none; 34 | } 35 | 36 | html { 37 | font-size: 100%; 38 | -webkit-text-size-adjust: 100%; 39 | -ms-text-size-adjust: 100%; 40 | } 41 | 42 | a:focus { 43 | outline: thin dotted #333; 44 | outline: 5px auto -webkit-focus-ring-color; 45 | outline-offset: -2px; 46 | } 47 | 48 | a:hover, 49 | a:active { 50 | outline: 0; 51 | } 52 | 53 | sub, 54 | sup { 55 | position: relative; 56 | font-size: 75%; 57 | line-height: 0; 58 | vertical-align: baseline; 59 | } 60 | 61 | sup { 62 | top: -0.5em; 63 | } 64 | 65 | sub { 66 | bottom: -0.25em; 67 | } 68 | 69 | img { 70 | width: auto\9; 71 | height: auto; 72 | max-width: 100%; 73 | vertical-align: middle; 74 | border: 0; 75 | -ms-interpolation-mode: bicubic; 76 | } 77 | 78 | #map_canvas img, 79 | .google-maps img { 80 | max-width: none; 81 | } 82 | 83 | button, 84 | input, 85 | select, 86 | textarea { 87 | margin: 0; 88 | font-size: 100%; 89 | vertical-align: middle; 90 | } 91 | 92 | button, 93 | input { 94 | *overflow: visible; 95 | line-height: normal; 96 | } 97 | 98 | button::-moz-focus-inner, 99 | input::-moz-focus-inner { 100 | padding: 0; 101 | border: 0; 102 | } 103 | 104 | button, 105 | html input[type="button"], 106 | input[type="reset"], 107 | input[type="submit"] { 108 | cursor: pointer; 109 | -webkit-appearance: button; 110 | } 111 | 112 | label, 113 | select, 114 | button, 115 | input[type="button"], 116 | input[type="reset"], 117 | input[type="submit"], 118 | input[type="radio"], 119 | input[type="checkbox"] { 120 | cursor: pointer; 121 | } 122 | 123 | input[type="search"] { 124 | -webkit-box-sizing: content-box; 125 | -moz-box-sizing: content-box; 126 | box-sizing: content-box; 127 | -webkit-appearance: textfield; 128 | } 129 | 130 | input[type="search"]::-webkit-search-decoration, 131 | input[type="search"]::-webkit-search-cancel-button { 132 | -webkit-appearance: none; 133 | } 134 | 135 | textarea { 136 | overflow: auto; 137 | vertical-align: top; 138 | } 139 | 140 | @media print { 141 | * { 142 | color: #000 !important; 143 | text-shadow: none !important; 144 | background: transparent !important; 145 | box-shadow: none !important; 146 | } 147 | a, 148 | a:visited { 149 | text-decoration: underline; 150 | } 151 | a[href]:after { 152 | content: " (" attr(href) ")"; 153 | } 154 | abbr[title]:after { 155 | content: " (" attr(title) ")"; 156 | } 157 | .ir a:after, 158 | a[href^="javascript:"]:after, 159 | a[href^="#"]:after { 160 | content: ""; 161 | } 162 | pre, 163 | blockquote { 164 | border: 1px solid #999; 165 | page-break-inside: avoid; 166 | } 167 | thead { 168 | display: table-header-group; 169 | } 170 | tr, 171 | img { 172 | page-break-inside: avoid; 173 | } 174 | img { 175 | max-width: 100% !important; 176 | } 177 | @page { 178 | margin: 0.5cm; 179 | } 180 | p, 181 | h2, 182 | h3 { 183 | orphans: 3; 184 | widows: 3; 185 | } 186 | h2, 187 | h3 { 188 | page-break-after: avoid; 189 | } 190 | } 191 | 192 | .clearfix { 193 | *zoom: 1; 194 | } 195 | 196 | .clearfix:before, 197 | .clearfix:after { 198 | display: table; 199 | line-height: 0; 200 | content: ""; 201 | } 202 | 203 | .clearfix:after { 204 | clear: both; 205 | } 206 | 207 | .hide-text { 208 | font: 0/0 a; 209 | color: transparent; 210 | text-shadow: none; 211 | background-color: transparent; 212 | border: 0; 213 | } 214 | 215 | .input-block-level { 216 | display: block; 217 | width: 100%; 218 | min-height: 30px; 219 | -webkit-box-sizing: border-box; 220 | -moz-box-sizing: border-box; 221 | box-sizing: border-box; 222 | } 223 | 224 | body { 225 | margin: 0; 226 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 227 | font-size: 14px; 228 | line-height: 20px; 229 | color: #333333; 230 | background-color: #ffffff; 231 | } 232 | 233 | a { 234 | color: #0088cc; 235 | text-decoration: none; 236 | } 237 | 238 | a:hover { 239 | color: #005580; 240 | text-decoration: underline; 241 | } 242 | 243 | .img-rounded { 244 | -webkit-border-radius: 6px; 245 | -moz-border-radius: 6px; 246 | border-radius: 6px; 247 | } 248 | 249 | .img-polaroid { 250 | padding: 4px; 251 | background-color: #fff; 252 | border: 1px solid #ccc; 253 | border: 1px solid rgba(0, 0, 0, 0.2); 254 | -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); 255 | -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); 256 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); 257 | } 258 | 259 | .img-circle { 260 | -webkit-border-radius: 500px; 261 | -moz-border-radius: 500px; 262 | border-radius: 500px; 263 | } 264 | 265 | .row { 266 | margin-left: -20px; 267 | *zoom: 1; 268 | } 269 | 270 | .row:before, 271 | .row:after { 272 | display: table; 273 | line-height: 0; 274 | content: ""; 275 | } 276 | 277 | .row:after { 278 | clear: both; 279 | } 280 | 281 | [class*="span"] { 282 | float: left; 283 | min-height: 1px; 284 | margin-left: 20px; 285 | } 286 | 287 | .container, 288 | .navbar-static-top .container, 289 | .navbar-fixed-top .container, 290 | .navbar-fixed-bottom .container { 291 | width: 940px; 292 | } 293 | 294 | .span12 { 295 | width: 940px; 296 | } 297 | 298 | .span11 { 299 | width: 860px; 300 | } 301 | 302 | .span10 { 303 | width: 780px; 304 | } 305 | 306 | .span9 { 307 | width: 700px; 308 | } 309 | 310 | .span8 { 311 | width: 620px; 312 | } 313 | 314 | .span7 { 315 | width: 540px; 316 | } 317 | 318 | .span6 { 319 | width: 460px; 320 | } 321 | 322 | .span5 { 323 | width: 380px; 324 | } 325 | 326 | .span4 { 327 | width: 300px; 328 | } 329 | 330 | .span3 { 331 | width: 220px; 332 | } 333 | 334 | .span2 { 335 | width: 140px; 336 | } 337 | 338 | .span1 { 339 | width: 60px; 340 | } 341 | 342 | .offset12 { 343 | margin-left: 980px; 344 | } 345 | 346 | .offset11 { 347 | margin-left: 900px; 348 | } 349 | 350 | .offset10 { 351 | margin-left: 820px; 352 | } 353 | 354 | .offset9 { 355 | margin-left: 740px; 356 | } 357 | 358 | .offset8 { 359 | margin-left: 660px; 360 | } 361 | 362 | .offset7 { 363 | margin-left: 580px; 364 | } 365 | 366 | .offset6 { 367 | margin-left: 500px; 368 | } 369 | 370 | .offset5 { 371 | margin-left: 420px; 372 | } 373 | 374 | .offset4 { 375 | margin-left: 340px; 376 | } 377 | 378 | .offset3 { 379 | margin-left: 260px; 380 | } 381 | 382 | .offset2 { 383 | margin-left: 180px; 384 | } 385 | 386 | .offset1 { 387 | margin-left: 100px; 388 | } 389 | 390 | .row-fluid { 391 | width: 100%; 392 | *zoom: 1; 393 | } 394 | 395 | .row-fluid:before, 396 | .row-fluid:after { 397 | display: table; 398 | line-height: 0; 399 | content: ""; 400 | } 401 | 402 | .row-fluid:after { 403 | clear: both; 404 | } 405 | 406 | .row-fluid [class*="span"] { 407 | display: block; 408 | float: left; 409 | width: 100%; 410 | min-height: 30px; 411 | margin-left: 2.127659574468085%; 412 | *margin-left: 2.074468085106383%; 413 | -webkit-box-sizing: border-box; 414 | -moz-box-sizing: border-box; 415 | box-sizing: border-box; 416 | } 417 | 418 | .row-fluid [class*="span"]:first-child { 419 | margin-left: 0; 420 | } 421 | 422 | .row-fluid .controls-row [class*="span"] + [class*="span"] { 423 | margin-left: 2.127659574468085%; 424 | } 425 | 426 | .row-fluid .span12 { 427 | width: 100%; 428 | *width: 99.94680851063829%; 429 | } 430 | 431 | .row-fluid .span11 { 432 | width: 91.48936170212765%; 433 | *width: 91.43617021276594%; 434 | } 435 | 436 | .row-fluid .span10 { 437 | width: 82.97872340425532%; 438 | *width: 82.92553191489361%; 439 | } 440 | 441 | .row-fluid .span9 { 442 | width: 74.46808510638297%; 443 | *width: 74.41489361702126%; 444 | } 445 | 446 | .row-fluid .span8 { 447 | width: 65.95744680851064%; 448 | *width: 65.90425531914893%; 449 | } 450 | 451 | .row-fluid .span7 { 452 | width: 57.44680851063829%; 453 | *width: 57.39361702127659%; 454 | } 455 | 456 | .row-fluid .span6 { 457 | width: 48.93617021276595%; 458 | *width: 48.88297872340425%; 459 | } 460 | 461 | .row-fluid .span5 { 462 | width: 40.42553191489362%; 463 | *width: 40.37234042553192%; 464 | } 465 | 466 | .row-fluid .span4 { 467 | width: 31.914893617021278%; 468 | *width: 31.861702127659576%; 469 | } 470 | 471 | .row-fluid .span3 { 472 | width: 23.404255319148934%; 473 | *width: 23.351063829787233%; 474 | } 475 | 476 | .row-fluid .span2 { 477 | width: 14.893617021276595%; 478 | *width: 14.840425531914894%; 479 | } 480 | 481 | .row-fluid .span1 { 482 | width: 6.382978723404255%; 483 | *width: 6.329787234042553%; 484 | } 485 | 486 | .row-fluid .offset12 { 487 | margin-left: 104.25531914893617%; 488 | *margin-left: 104.14893617021275%; 489 | } 490 | 491 | .row-fluid .offset12:first-child { 492 | margin-left: 102.12765957446808%; 493 | *margin-left: 102.02127659574467%; 494 | } 495 | 496 | .row-fluid .offset11 { 497 | margin-left: 95.74468085106382%; 498 | *margin-left: 95.6382978723404%; 499 | } 500 | 501 | .row-fluid .offset11:first-child { 502 | margin-left: 93.61702127659574%; 503 | *margin-left: 93.51063829787232%; 504 | } 505 | 506 | .row-fluid .offset10 { 507 | margin-left: 87.23404255319149%; 508 | *margin-left: 87.12765957446807%; 509 | } 510 | 511 | .row-fluid .offset10:first-child { 512 | margin-left: 85.1063829787234%; 513 | *margin-left: 84.99999999999999%; 514 | } 515 | 516 | .row-fluid .offset9 { 517 | margin-left: 78.72340425531914%; 518 | *margin-left: 78.61702127659572%; 519 | } 520 | 521 | .row-fluid .offset9:first-child { 522 | margin-left: 76.59574468085106%; 523 | *margin-left: 76.48936170212764%; 524 | } 525 | 526 | .row-fluid .offset8 { 527 | margin-left: 70.2127659574468%; 528 | *margin-left: 70.10638297872339%; 529 | } 530 | 531 | .row-fluid .offset8:first-child { 532 | margin-left: 68.08510638297872%; 533 | *margin-left: 67.9787234042553%; 534 | } 535 | 536 | .row-fluid .offset7 { 537 | margin-left: 61.70212765957446%; 538 | *margin-left: 61.59574468085106%; 539 | } 540 | 541 | .row-fluid .offset7:first-child { 542 | margin-left: 59.574468085106375%; 543 | *margin-left: 59.46808510638297%; 544 | } 545 | 546 | .row-fluid .offset6 { 547 | margin-left: 53.191489361702125%; 548 | *margin-left: 53.085106382978715%; 549 | } 550 | 551 | .row-fluid .offset6:first-child { 552 | margin-left: 51.063829787234035%; 553 | *margin-left: 50.95744680851063%; 554 | } 555 | 556 | .row-fluid .offset5 { 557 | margin-left: 44.68085106382979%; 558 | *margin-left: 44.57446808510638%; 559 | } 560 | 561 | .row-fluid .offset5:first-child { 562 | margin-left: 42.5531914893617%; 563 | *margin-left: 42.4468085106383%; 564 | } 565 | 566 | .row-fluid .offset4 { 567 | margin-left: 36.170212765957444%; 568 | *margin-left: 36.06382978723405%; 569 | } 570 | 571 | .row-fluid .offset4:first-child { 572 | margin-left: 34.04255319148936%; 573 | *margin-left: 33.93617021276596%; 574 | } 575 | 576 | .row-fluid .offset3 { 577 | margin-left: 27.659574468085104%; 578 | *margin-left: 27.5531914893617%; 579 | } 580 | 581 | .row-fluid .offset3:first-child { 582 | margin-left: 25.53191489361702%; 583 | *margin-left: 25.425531914893618%; 584 | } 585 | 586 | .row-fluid .offset2 { 587 | margin-left: 19.148936170212764%; 588 | *margin-left: 19.04255319148936%; 589 | } 590 | 591 | .row-fluid .offset2:first-child { 592 | margin-left: 17.02127659574468%; 593 | *margin-left: 16.914893617021278%; 594 | } 595 | 596 | .row-fluid .offset1 { 597 | margin-left: 10.638297872340425%; 598 | *margin-left: 10.53191489361702%; 599 | } 600 | 601 | .row-fluid .offset1:first-child { 602 | margin-left: 8.51063829787234%; 603 | *margin-left: 8.404255319148938%; 604 | } 605 | 606 | [class*="span"].hide, 607 | .row-fluid [class*="span"].hide { 608 | display: none; 609 | } 610 | 611 | [class*="span"].pull-right, 612 | .row-fluid [class*="span"].pull-right { 613 | float: right; 614 | } 615 | 616 | .container { 617 | margin-right: auto; 618 | margin-left: auto; 619 | *zoom: 1; 620 | } 621 | 622 | .container:before, 623 | .container:after { 624 | display: table; 625 | line-height: 0; 626 | content: ""; 627 | } 628 | 629 | .container:after { 630 | clear: both; 631 | } 632 | 633 | .container-fluid { 634 | padding-right: 20px; 635 | padding-left: 20px; 636 | *zoom: 1; 637 | } 638 | 639 | .container-fluid:before, 640 | .container-fluid:after { 641 | display: table; 642 | line-height: 0; 643 | content: ""; 644 | } 645 | 646 | .container-fluid:after { 647 | clear: both; 648 | } 649 | 650 | p { 651 | margin: 0 0 10px; 652 | } 653 | 654 | .lead { 655 | margin-bottom: 20px; 656 | font-size: 21px; 657 | font-weight: 200; 658 | line-height: 30px; 659 | } 660 | 661 | small { 662 | font-size: 85%; 663 | } 664 | 665 | strong { 666 | font-weight: bold; 667 | } 668 | 669 | em { 670 | font-style: italic; 671 | } 672 | 673 | cite { 674 | font-style: normal; 675 | } 676 | 677 | .muted { 678 | color: #999999; 679 | } 680 | 681 | a.muted:hover { 682 | color: #808080; 683 | } 684 | 685 | .text-warning { 686 | color: #c09853; 687 | } 688 | 689 | a.text-warning:hover { 690 | color: #a47e3c; 691 | } 692 | 693 | .text-error { 694 | color: #b94a48; 695 | } 696 | 697 | a.text-error:hover { 698 | color: #953b39; 699 | } 700 | 701 | .text-info { 702 | color: #3a87ad; 703 | } 704 | 705 | a.text-info:hover { 706 | color: #2d6987; 707 | } 708 | 709 | .text-success { 710 | color: #468847; 711 | } 712 | 713 | a.text-success:hover { 714 | color: #356635; 715 | } 716 | 717 | h1, 718 | h2, 719 | h3, 720 | h4, 721 | h5, 722 | h6 { 723 | margin: 10px 0; 724 | font-family: inherit; 725 | font-weight: bold; 726 | line-height: 20px; 727 | color: inherit; 728 | text-rendering: optimizelegibility; 729 | } 730 | 731 | h1 small, 732 | h2 small, 733 | h3 small, 734 | h4 small, 735 | h5 small, 736 | h6 small { 737 | font-weight: normal; 738 | line-height: 1; 739 | color: #999999; 740 | } 741 | 742 | h1, 743 | h2, 744 | h3 { 745 | line-height: 40px; 746 | } 747 | 748 | h1 { 749 | font-size: 38.5px; 750 | } 751 | 752 | h2 { 753 | font-size: 31.5px; 754 | } 755 | 756 | h3 { 757 | font-size: 24.5px; 758 | } 759 | 760 | h4 { 761 | font-size: 17.5px; 762 | } 763 | 764 | h5 { 765 | font-size: 14px; 766 | } 767 | 768 | h6 { 769 | font-size: 11.9px; 770 | } 771 | 772 | h1 small { 773 | font-size: 24.5px; 774 | } 775 | 776 | h2 small { 777 | font-size: 17.5px; 778 | } 779 | 780 | h3 small { 781 | font-size: 14px; 782 | } 783 | 784 | h4 small { 785 | font-size: 14px; 786 | } 787 | 788 | .page-header { 789 | padding-bottom: 9px; 790 | margin: 20px 0 30px; 791 | border-bottom: 1px solid #eeeeee; 792 | } 793 | 794 | ul, 795 | ol { 796 | padding: 0; 797 | margin: 0 0 10px 25px; 798 | } 799 | 800 | ul ul, 801 | ul ol, 802 | ol ol, 803 | ol ul { 804 | margin-bottom: 0; 805 | } 806 | 807 | li { 808 | line-height: 20px; 809 | } 810 | 811 | ul.unstyled, 812 | ol.unstyled { 813 | margin-left: 0; 814 | list-style: none; 815 | } 816 | 817 | ul.inline, 818 | ol.inline { 819 | margin-left: 0; 820 | list-style: none; 821 | } 822 | 823 | ul.inline > li, 824 | ol.inline > li { 825 | display: inline-block; 826 | padding-right: 5px; 827 | padding-left: 5px; 828 | } 829 | 830 | dl { 831 | margin-bottom: 20px; 832 | } 833 | 834 | dt, 835 | dd { 836 | line-height: 20px; 837 | } 838 | 839 | dt { 840 | font-weight: bold; 841 | } 842 | 843 | dd { 844 | margin-left: 10px; 845 | } 846 | 847 | .dl-horizontal { 848 | *zoom: 1; 849 | } 850 | 851 | .dl-horizontal:before, 852 | .dl-horizontal:after { 853 | display: table; 854 | line-height: 0; 855 | content: ""; 856 | } 857 | 858 | .dl-horizontal:after { 859 | clear: both; 860 | } 861 | 862 | .dl-horizontal dt { 863 | float: left; 864 | width: 160px; 865 | overflow: hidden; 866 | clear: left; 867 | text-align: right; 868 | text-overflow: ellipsis; 869 | white-space: nowrap; 870 | } 871 | 872 | .dl-horizontal dd { 873 | margin-left: 180px; 874 | } 875 | 876 | hr { 877 | margin: 20px 0; 878 | border: 0; 879 | border-top: 1px solid #eeeeee; 880 | border-bottom: 1px solid #ffffff; 881 | } 882 | 883 | abbr[title], 884 | abbr[data-original-title] { 885 | cursor: help; 886 | border-bottom: 1px dotted #999999; 887 | } 888 | 889 | abbr.initialism { 890 | font-size: 90%; 891 | text-transform: uppercase; 892 | } 893 | 894 | blockquote { 895 | padding: 0 0 0 15px; 896 | margin: 0 0 20px; 897 | border-left: 5px solid #eeeeee; 898 | } 899 | 900 | blockquote p { 901 | margin-bottom: 0; 902 | font-size: 16px; 903 | font-weight: 300; 904 | line-height: 25px; 905 | } 906 | 907 | blockquote small { 908 | display: block; 909 | line-height: 20px; 910 | color: #999999; 911 | } 912 | 913 | blockquote small:before { 914 | content: '\2014 \00A0'; 915 | } 916 | 917 | blockquote.pull-right { 918 | float: right; 919 | padding-right: 15px; 920 | padding-left: 0; 921 | border-right: 5px solid #eeeeee; 922 | border-left: 0; 923 | } 924 | 925 | blockquote.pull-right p, 926 | blockquote.pull-right small { 927 | text-align: right; 928 | } 929 | 930 | blockquote.pull-right small:before { 931 | content: ''; 932 | } 933 | 934 | blockquote.pull-right small:after { 935 | content: '\00A0 \2014'; 936 | } 937 | 938 | q:before, 939 | q:after, 940 | blockquote:before, 941 | blockquote:after { 942 | content: ""; 943 | } 944 | 945 | address { 946 | display: block; 947 | margin-bottom: 20px; 948 | font-style: normal; 949 | line-height: 20px; 950 | } 951 | 952 | code, 953 | pre { 954 | padding: 0 3px 2px; 955 | font-family: Monaco, Menlo, Consolas, "Courier New", monospace; 956 | font-size: 12px; 957 | color: #333333; 958 | -webkit-border-radius: 3px; 959 | -moz-border-radius: 3px; 960 | border-radius: 3px; 961 | } 962 | 963 | code { 964 | padding: 2px 4px; 965 | color: #d14; 966 | white-space: nowrap; 967 | background-color: #f7f7f9; 968 | border: 1px solid #e1e1e8; 969 | } 970 | 971 | pre { 972 | display: block; 973 | padding: 9.5px; 974 | margin: 0 0 10px; 975 | font-size: 13px; 976 | line-height: 20px; 977 | word-break: break-all; 978 | word-wrap: break-word; 979 | white-space: pre; 980 | white-space: pre-wrap; 981 | background-color: #f5f5f5; 982 | border: 1px solid #ccc; 983 | border: 1px solid rgba(0, 0, 0, 0.15); 984 | -webkit-border-radius: 4px; 985 | -moz-border-radius: 4px; 986 | border-radius: 4px; 987 | } 988 | 989 | pre.prettyprint { 990 | margin-bottom: 20px; 991 | } 992 | 993 | pre code { 994 | padding: 0; 995 | color: inherit; 996 | white-space: pre; 997 | white-space: pre-wrap; 998 | background-color: transparent; 999 | border: 0; 1000 | } 1001 | 1002 | .pre-scrollable { 1003 | max-height: 340px; 1004 | overflow-y: scroll; 1005 | } 1006 | 1007 | form { 1008 | margin: 0 0 20px; 1009 | } 1010 | 1011 | fieldset { 1012 | padding: 0; 1013 | margin: 0; 1014 | border: 0; 1015 | } 1016 | 1017 | legend { 1018 | display: block; 1019 | width: 100%; 1020 | padding: 0; 1021 | margin-bottom: 20px; 1022 | font-size: 21px; 1023 | line-height: 40px; 1024 | color: #333333; 1025 | border: 0; 1026 | border-bottom: 1px solid #e5e5e5; 1027 | } 1028 | 1029 | legend small { 1030 | font-size: 15px; 1031 | color: #999999; 1032 | } 1033 | 1034 | label, 1035 | input, 1036 | button, 1037 | select, 1038 | textarea { 1039 | font-size: 14px; 1040 | font-weight: normal; 1041 | line-height: 20px; 1042 | } 1043 | 1044 | input, 1045 | button, 1046 | select, 1047 | textarea { 1048 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 1049 | } 1050 | 1051 | label { 1052 | display: block; 1053 | margin-bottom: 5px; 1054 | } 1055 | 1056 | select, 1057 | textarea, 1058 | input[type="text"], 1059 | input[type="password"], 1060 | input[type="datetime"], 1061 | input[type="datetime-local"], 1062 | input[type="date"], 1063 | input[type="month"], 1064 | input[type="time"], 1065 | input[type="week"], 1066 | input[type="number"], 1067 | input[type="email"], 1068 | input[type="url"], 1069 | input[type="search"], 1070 | input[type="tel"], 1071 | input[type="color"], 1072 | .uneditable-input { 1073 | display: inline-block; 1074 | height: 20px; 1075 | padding: 4px 6px; 1076 | margin-bottom: 10px; 1077 | font-size: 14px; 1078 | line-height: 20px; 1079 | color: #555555; 1080 | vertical-align: middle; 1081 | -webkit-border-radius: 4px; 1082 | -moz-border-radius: 4px; 1083 | border-radius: 4px; 1084 | } 1085 | 1086 | input, 1087 | textarea, 1088 | .uneditable-input { 1089 | width: 206px; 1090 | } 1091 | 1092 | textarea { 1093 | height: auto; 1094 | } 1095 | 1096 | textarea, 1097 | input[type="text"], 1098 | input[type="password"], 1099 | input[type="datetime"], 1100 | input[type="datetime-local"], 1101 | input[type="date"], 1102 | input[type="month"], 1103 | input[type="time"], 1104 | input[type="week"], 1105 | input[type="number"], 1106 | input[type="email"], 1107 | input[type="url"], 1108 | input[type="search"], 1109 | input[type="tel"], 1110 | input[type="color"], 1111 | .uneditable-input { 1112 | background-color: #ffffff; 1113 | border: 1px solid #cccccc; 1114 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1115 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1116 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1117 | -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; 1118 | -moz-transition: border linear 0.2s, box-shadow linear 0.2s; 1119 | -o-transition: border linear 0.2s, box-shadow linear 0.2s; 1120 | transition: border linear 0.2s, box-shadow linear 0.2s; 1121 | } 1122 | 1123 | textarea:focus, 1124 | input[type="text"]:focus, 1125 | input[type="password"]:focus, 1126 | input[type="datetime"]:focus, 1127 | input[type="datetime-local"]:focus, 1128 | input[type="date"]:focus, 1129 | input[type="month"]:focus, 1130 | input[type="time"]:focus, 1131 | input[type="week"]:focus, 1132 | input[type="number"]:focus, 1133 | input[type="email"]:focus, 1134 | input[type="url"]:focus, 1135 | input[type="search"]:focus, 1136 | input[type="tel"]:focus, 1137 | input[type="color"]:focus, 1138 | .uneditable-input:focus { 1139 | border-color: rgba(82, 168, 236, 0.8); 1140 | outline: 0; 1141 | outline: thin dotted \9; 1142 | /* IE6-9 */ 1143 | 1144 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); 1145 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); 1146 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); 1147 | } 1148 | 1149 | input[type="radio"], 1150 | input[type="checkbox"] { 1151 | margin: 4px 0 0; 1152 | margin-top: 1px \9; 1153 | *margin-top: 0; 1154 | line-height: normal; 1155 | } 1156 | 1157 | input[type="file"], 1158 | input[type="image"], 1159 | input[type="submit"], 1160 | input[type="reset"], 1161 | input[type="button"], 1162 | input[type="radio"], 1163 | input[type="checkbox"] { 1164 | width: auto; 1165 | } 1166 | 1167 | select, 1168 | input[type="file"] { 1169 | height: 30px; 1170 | /* In IE7, the height of the select element cannot be changed by height, only font-size */ 1171 | 1172 | *margin-top: 4px; 1173 | /* For IE7, add top margin to align select with labels */ 1174 | 1175 | line-height: 30px; 1176 | } 1177 | 1178 | select { 1179 | width: 220px; 1180 | background-color: #ffffff; 1181 | border: 1px solid #cccccc; 1182 | } 1183 | 1184 | select[multiple], 1185 | select[size] { 1186 | height: auto; 1187 | } 1188 | 1189 | select:focus, 1190 | input[type="file"]:focus, 1191 | input[type="radio"]:focus, 1192 | input[type="checkbox"]:focus { 1193 | outline: thin dotted #333; 1194 | outline: 5px auto -webkit-focus-ring-color; 1195 | outline-offset: -2px; 1196 | } 1197 | 1198 | .uneditable-input, 1199 | .uneditable-textarea { 1200 | color: #999999; 1201 | cursor: not-allowed; 1202 | background-color: #fcfcfc; 1203 | border-color: #cccccc; 1204 | -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); 1205 | -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); 1206 | box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); 1207 | } 1208 | 1209 | .uneditable-input { 1210 | overflow: hidden; 1211 | white-space: nowrap; 1212 | } 1213 | 1214 | .uneditable-textarea { 1215 | width: auto; 1216 | height: auto; 1217 | } 1218 | 1219 | input:-moz-placeholder, 1220 | textarea:-moz-placeholder { 1221 | color: #999999; 1222 | } 1223 | 1224 | input:-ms-input-placeholder, 1225 | textarea:-ms-input-placeholder { 1226 | color: #999999; 1227 | } 1228 | 1229 | input::-webkit-input-placeholder, 1230 | textarea::-webkit-input-placeholder { 1231 | color: #999999; 1232 | } 1233 | 1234 | .radio, 1235 | .checkbox { 1236 | min-height: 20px; 1237 | padding-left: 20px; 1238 | } 1239 | 1240 | .radio input[type="radio"], 1241 | .checkbox input[type="checkbox"] { 1242 | float: left; 1243 | margin-left: -20px; 1244 | } 1245 | 1246 | .controls > .radio:first-child, 1247 | .controls > .checkbox:first-child { 1248 | padding-top: 5px; 1249 | } 1250 | 1251 | .radio.inline, 1252 | .checkbox.inline { 1253 | display: inline-block; 1254 | padding-top: 5px; 1255 | margin-bottom: 0; 1256 | vertical-align: middle; 1257 | } 1258 | 1259 | .radio.inline + .radio.inline, 1260 | .checkbox.inline + .checkbox.inline { 1261 | margin-left: 10px; 1262 | } 1263 | 1264 | .input-mini { 1265 | width: 60px; 1266 | } 1267 | 1268 | .input-small { 1269 | width: 90px; 1270 | } 1271 | 1272 | .input-medium { 1273 | width: 150px; 1274 | } 1275 | 1276 | .input-large { 1277 | width: 210px; 1278 | } 1279 | 1280 | .input-xlarge { 1281 | width: 270px; 1282 | } 1283 | 1284 | .input-xxlarge { 1285 | width: 530px; 1286 | } 1287 | 1288 | input[class*="span"], 1289 | select[class*="span"], 1290 | textarea[class*="span"], 1291 | .uneditable-input[class*="span"], 1292 | .row-fluid input[class*="span"], 1293 | .row-fluid select[class*="span"], 1294 | .row-fluid textarea[class*="span"], 1295 | .row-fluid .uneditable-input[class*="span"] { 1296 | float: none; 1297 | margin-left: 0; 1298 | } 1299 | 1300 | .input-append input[class*="span"], 1301 | .input-append .uneditable-input[class*="span"], 1302 | .input-prepend input[class*="span"], 1303 | .input-prepend .uneditable-input[class*="span"], 1304 | .row-fluid input[class*="span"], 1305 | .row-fluid select[class*="span"], 1306 | .row-fluid textarea[class*="span"], 1307 | .row-fluid .uneditable-input[class*="span"], 1308 | .row-fluid .input-prepend [class*="span"], 1309 | .row-fluid .input-append [class*="span"] { 1310 | display: inline-block; 1311 | } 1312 | 1313 | input, 1314 | textarea, 1315 | .uneditable-input { 1316 | margin-left: 0; 1317 | } 1318 | 1319 | .controls-row [class*="span"] + [class*="span"] { 1320 | margin-left: 20px; 1321 | } 1322 | 1323 | input.span12, 1324 | textarea.span12, 1325 | .uneditable-input.span12 { 1326 | width: 926px; 1327 | } 1328 | 1329 | input.span11, 1330 | textarea.span11, 1331 | .uneditable-input.span11 { 1332 | width: 846px; 1333 | } 1334 | 1335 | input.span10, 1336 | textarea.span10, 1337 | .uneditable-input.span10 { 1338 | width: 766px; 1339 | } 1340 | 1341 | input.span9, 1342 | textarea.span9, 1343 | .uneditable-input.span9 { 1344 | width: 686px; 1345 | } 1346 | 1347 | input.span8, 1348 | textarea.span8, 1349 | .uneditable-input.span8 { 1350 | width: 606px; 1351 | } 1352 | 1353 | input.span7, 1354 | textarea.span7, 1355 | .uneditable-input.span7 { 1356 | width: 526px; 1357 | } 1358 | 1359 | input.span6, 1360 | textarea.span6, 1361 | .uneditable-input.span6 { 1362 | width: 446px; 1363 | } 1364 | 1365 | input.span5, 1366 | textarea.span5, 1367 | .uneditable-input.span5 { 1368 | width: 366px; 1369 | } 1370 | 1371 | input.span4, 1372 | textarea.span4, 1373 | .uneditable-input.span4 { 1374 | width: 286px; 1375 | } 1376 | 1377 | input.span3, 1378 | textarea.span3, 1379 | .uneditable-input.span3 { 1380 | width: 206px; 1381 | } 1382 | 1383 | input.span2, 1384 | textarea.span2, 1385 | .uneditable-input.span2 { 1386 | width: 126px; 1387 | } 1388 | 1389 | input.span1, 1390 | textarea.span1, 1391 | .uneditable-input.span1 { 1392 | width: 46px; 1393 | } 1394 | 1395 | .controls-row { 1396 | *zoom: 1; 1397 | } 1398 | 1399 | .controls-row:before, 1400 | .controls-row:after { 1401 | display: table; 1402 | line-height: 0; 1403 | content: ""; 1404 | } 1405 | 1406 | .controls-row:after { 1407 | clear: both; 1408 | } 1409 | 1410 | .controls-row [class*="span"], 1411 | .row-fluid .controls-row [class*="span"] { 1412 | float: left; 1413 | } 1414 | 1415 | .controls-row .checkbox[class*="span"], 1416 | .controls-row .radio[class*="span"] { 1417 | padding-top: 5px; 1418 | } 1419 | 1420 | input[disabled], 1421 | select[disabled], 1422 | textarea[disabled], 1423 | input[readonly], 1424 | select[readonly], 1425 | textarea[readonly] { 1426 | cursor: not-allowed; 1427 | background-color: #eeeeee; 1428 | } 1429 | 1430 | input[type="radio"][disabled], 1431 | input[type="checkbox"][disabled], 1432 | input[type="radio"][readonly], 1433 | input[type="checkbox"][readonly] { 1434 | background-color: transparent; 1435 | } 1436 | 1437 | .control-group.warning .control-label, 1438 | .control-group.warning .help-block, 1439 | .control-group.warning .help-inline { 1440 | color: #c09853; 1441 | } 1442 | 1443 | .control-group.warning .checkbox, 1444 | .control-group.warning .radio, 1445 | .control-group.warning input, 1446 | .control-group.warning select, 1447 | .control-group.warning textarea { 1448 | color: #c09853; 1449 | } 1450 | 1451 | .control-group.warning input, 1452 | .control-group.warning select, 1453 | .control-group.warning textarea { 1454 | border-color: #c09853; 1455 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1456 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1457 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1458 | } 1459 | 1460 | .control-group.warning input:focus, 1461 | .control-group.warning select:focus, 1462 | .control-group.warning textarea:focus { 1463 | border-color: #a47e3c; 1464 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; 1465 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; 1466 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; 1467 | } 1468 | 1469 | .control-group.warning .input-prepend .add-on, 1470 | .control-group.warning .input-append .add-on { 1471 | color: #c09853; 1472 | background-color: #fcf8e3; 1473 | border-color: #c09853; 1474 | } 1475 | 1476 | .control-group.error .control-label, 1477 | .control-group.error .help-block, 1478 | .control-group.error .help-inline { 1479 | color: #b94a48; 1480 | } 1481 | 1482 | .control-group.error .checkbox, 1483 | .control-group.error .radio, 1484 | .control-group.error input, 1485 | .control-group.error select, 1486 | .control-group.error textarea { 1487 | color: #b94a48; 1488 | } 1489 | 1490 | .control-group.error input, 1491 | .control-group.error select, 1492 | .control-group.error textarea { 1493 | border-color: #b94a48; 1494 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1495 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1496 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1497 | } 1498 | 1499 | .control-group.error input:focus, 1500 | .control-group.error select:focus, 1501 | .control-group.error textarea:focus { 1502 | border-color: #953b39; 1503 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; 1504 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; 1505 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; 1506 | } 1507 | 1508 | .control-group.error .input-prepend .add-on, 1509 | .control-group.error .input-append .add-on { 1510 | color: #b94a48; 1511 | background-color: #f2dede; 1512 | border-color: #b94a48; 1513 | } 1514 | 1515 | .control-group.success .control-label, 1516 | .control-group.success .help-block, 1517 | .control-group.success .help-inline { 1518 | color: #468847; 1519 | } 1520 | 1521 | .control-group.success .checkbox, 1522 | .control-group.success .radio, 1523 | .control-group.success input, 1524 | .control-group.success select, 1525 | .control-group.success textarea { 1526 | color: #468847; 1527 | } 1528 | 1529 | .control-group.success input, 1530 | .control-group.success select, 1531 | .control-group.success textarea { 1532 | border-color: #468847; 1533 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1534 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1535 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1536 | } 1537 | 1538 | .control-group.success input:focus, 1539 | .control-group.success select:focus, 1540 | .control-group.success textarea:focus { 1541 | border-color: #356635; 1542 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; 1543 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; 1544 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; 1545 | } 1546 | 1547 | .control-group.success .input-prepend .add-on, 1548 | .control-group.success .input-append .add-on { 1549 | color: #468847; 1550 | background-color: #dff0d8; 1551 | border-color: #468847; 1552 | } 1553 | 1554 | .control-group.info .control-label, 1555 | .control-group.info .help-block, 1556 | .control-group.info .help-inline { 1557 | color: #3a87ad; 1558 | } 1559 | 1560 | .control-group.info .checkbox, 1561 | .control-group.info .radio, 1562 | .control-group.info input, 1563 | .control-group.info select, 1564 | .control-group.info textarea { 1565 | color: #3a87ad; 1566 | } 1567 | 1568 | .control-group.info input, 1569 | .control-group.info select, 1570 | .control-group.info textarea { 1571 | border-color: #3a87ad; 1572 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1573 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1574 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 1575 | } 1576 | 1577 | .control-group.info input:focus, 1578 | .control-group.info select:focus, 1579 | .control-group.info textarea:focus { 1580 | border-color: #2d6987; 1581 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; 1582 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; 1583 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; 1584 | } 1585 | 1586 | .control-group.info .input-prepend .add-on, 1587 | .control-group.info .input-append .add-on { 1588 | color: #3a87ad; 1589 | background-color: #d9edf7; 1590 | border-color: #3a87ad; 1591 | } 1592 | 1593 | input:focus:invalid, 1594 | textarea:focus:invalid, 1595 | select:focus:invalid { 1596 | color: #b94a48; 1597 | border-color: #ee5f5b; 1598 | } 1599 | 1600 | input:focus:invalid:focus, 1601 | textarea:focus:invalid:focus, 1602 | select:focus:invalid:focus { 1603 | border-color: #e9322d; 1604 | -webkit-box-shadow: 0 0 6px #f8b9b7; 1605 | -moz-box-shadow: 0 0 6px #f8b9b7; 1606 | box-shadow: 0 0 6px #f8b9b7; 1607 | } 1608 | 1609 | .form-actions { 1610 | padding: 19px 20px 20px; 1611 | margin-top: 20px; 1612 | margin-bottom: 20px; 1613 | background-color: #f5f5f5; 1614 | border-top: 1px solid #e5e5e5; 1615 | *zoom: 1; 1616 | } 1617 | 1618 | .form-actions:before, 1619 | .form-actions:after { 1620 | display: table; 1621 | line-height: 0; 1622 | content: ""; 1623 | } 1624 | 1625 | .form-actions:after { 1626 | clear: both; 1627 | } 1628 | 1629 | .help-block, 1630 | .help-inline { 1631 | color: #595959; 1632 | } 1633 | 1634 | .help-block { 1635 | display: block; 1636 | margin-bottom: 10px; 1637 | } 1638 | 1639 | .help-inline { 1640 | display: inline-block; 1641 | *display: inline; 1642 | padding-left: 5px; 1643 | vertical-align: middle; 1644 | *zoom: 1; 1645 | } 1646 | 1647 | .input-append, 1648 | .input-prepend { 1649 | margin-bottom: 5px; 1650 | font-size: 0; 1651 | white-space: nowrap; 1652 | } 1653 | 1654 | .input-append input, 1655 | .input-prepend input, 1656 | .input-append select, 1657 | .input-prepend select, 1658 | .input-append .uneditable-input, 1659 | .input-prepend .uneditable-input, 1660 | .input-append .dropdown-menu, 1661 | .input-prepend .dropdown-menu { 1662 | font-size: 14px; 1663 | } 1664 | 1665 | .input-append input, 1666 | .input-prepend input, 1667 | .input-append select, 1668 | .input-prepend select, 1669 | .input-append .uneditable-input, 1670 | .input-prepend .uneditable-input { 1671 | position: relative; 1672 | margin-bottom: 0; 1673 | *margin-left: 0; 1674 | vertical-align: top; 1675 | -webkit-border-radius: 0 4px 4px 0; 1676 | -moz-border-radius: 0 4px 4px 0; 1677 | border-radius: 0 4px 4px 0; 1678 | } 1679 | 1680 | .input-append input:focus, 1681 | .input-prepend input:focus, 1682 | .input-append select:focus, 1683 | .input-prepend select:focus, 1684 | .input-append .uneditable-input:focus, 1685 | .input-prepend .uneditable-input:focus { 1686 | z-index: 2; 1687 | } 1688 | 1689 | .input-append .add-on, 1690 | .input-prepend .add-on { 1691 | display: inline-block; 1692 | width: auto; 1693 | height: 20px; 1694 | min-width: 16px; 1695 | padding: 4px 5px; 1696 | font-size: 14px; 1697 | font-weight: normal; 1698 | line-height: 20px; 1699 | text-align: center; 1700 | text-shadow: 0 1px 0 #ffffff; 1701 | background-color: #eeeeee; 1702 | border: 1px solid #ccc; 1703 | } 1704 | 1705 | .input-append .add-on, 1706 | .input-prepend .add-on, 1707 | .input-append .btn, 1708 | .input-prepend .btn, 1709 | .input-append .btn-group > .dropdown-toggle, 1710 | .input-prepend .btn-group > .dropdown-toggle { 1711 | vertical-align: top; 1712 | -webkit-border-radius: 0; 1713 | -moz-border-radius: 0; 1714 | border-radius: 0; 1715 | } 1716 | 1717 | .input-append .active, 1718 | .input-prepend .active { 1719 | background-color: #a9dba9; 1720 | border-color: #46a546; 1721 | } 1722 | 1723 | .input-prepend .add-on, 1724 | .input-prepend .btn { 1725 | margin-right: -1px; 1726 | } 1727 | 1728 | .input-prepend .add-on:first-child, 1729 | .input-prepend .btn:first-child { 1730 | -webkit-border-radius: 4px 0 0 4px; 1731 | -moz-border-radius: 4px 0 0 4px; 1732 | border-radius: 4px 0 0 4px; 1733 | } 1734 | 1735 | .input-append input, 1736 | .input-append select, 1737 | .input-append .uneditable-input { 1738 | -webkit-border-radius: 4px 0 0 4px; 1739 | -moz-border-radius: 4px 0 0 4px; 1740 | border-radius: 4px 0 0 4px; 1741 | } 1742 | 1743 | .input-append input + .btn-group .btn:last-child, 1744 | .input-append select + .btn-group .btn:last-child, 1745 | .input-append .uneditable-input + .btn-group .btn:last-child { 1746 | -webkit-border-radius: 0 4px 4px 0; 1747 | -moz-border-radius: 0 4px 4px 0; 1748 | border-radius: 0 4px 4px 0; 1749 | } 1750 | 1751 | .input-append .add-on, 1752 | .input-append .btn, 1753 | .input-append .btn-group { 1754 | margin-left: -1px; 1755 | } 1756 | 1757 | .input-append .add-on:last-child, 1758 | .input-append .btn:last-child, 1759 | .input-append .btn-group:last-child > .dropdown-toggle { 1760 | -webkit-border-radius: 0 4px 4px 0; 1761 | -moz-border-radius: 0 4px 4px 0; 1762 | border-radius: 0 4px 4px 0; 1763 | } 1764 | 1765 | .input-prepend.input-append input, 1766 | .input-prepend.input-append select, 1767 | .input-prepend.input-append .uneditable-input { 1768 | -webkit-border-radius: 0; 1769 | -moz-border-radius: 0; 1770 | border-radius: 0; 1771 | } 1772 | 1773 | .input-prepend.input-append input + .btn-group .btn, 1774 | .input-prepend.input-append select + .btn-group .btn, 1775 | .input-prepend.input-append .uneditable-input + .btn-group .btn { 1776 | -webkit-border-radius: 0 4px 4px 0; 1777 | -moz-border-radius: 0 4px 4px 0; 1778 | border-radius: 0 4px 4px 0; 1779 | } 1780 | 1781 | .input-prepend.input-append .add-on:first-child, 1782 | .input-prepend.input-append .btn:first-child { 1783 | margin-right: -1px; 1784 | -webkit-border-radius: 4px 0 0 4px; 1785 | -moz-border-radius: 4px 0 0 4px; 1786 | border-radius: 4px 0 0 4px; 1787 | } 1788 | 1789 | .input-prepend.input-append .add-on:last-child, 1790 | .input-prepend.input-append .btn:last-child { 1791 | margin-left: -1px; 1792 | -webkit-border-radius: 0 4px 4px 0; 1793 | -moz-border-radius: 0 4px 4px 0; 1794 | border-radius: 0 4px 4px 0; 1795 | } 1796 | 1797 | .input-prepend.input-append .btn-group:first-child { 1798 | margin-left: 0; 1799 | } 1800 | 1801 | input.search-query { 1802 | padding-right: 14px; 1803 | padding-right: 4px \9; 1804 | padding-left: 14px; 1805 | padding-left: 4px \9; 1806 | /* IE7-8 doesn't have border-radius, so don't indent the padding */ 1807 | 1808 | margin-bottom: 0; 1809 | -webkit-border-radius: 15px; 1810 | -moz-border-radius: 15px; 1811 | border-radius: 15px; 1812 | } 1813 | 1814 | /* Allow for input prepend/append in search forms */ 1815 | 1816 | .form-search .input-append .search-query, 1817 | .form-search .input-prepend .search-query { 1818 | -webkit-border-radius: 0; 1819 | -moz-border-radius: 0; 1820 | border-radius: 0; 1821 | } 1822 | 1823 | .form-search .input-append .search-query { 1824 | -webkit-border-radius: 14px 0 0 14px; 1825 | -moz-border-radius: 14px 0 0 14px; 1826 | border-radius: 14px 0 0 14px; 1827 | } 1828 | 1829 | .form-search .input-append .btn { 1830 | -webkit-border-radius: 0 14px 14px 0; 1831 | -moz-border-radius: 0 14px 14px 0; 1832 | border-radius: 0 14px 14px 0; 1833 | } 1834 | 1835 | .form-search .input-prepend .search-query { 1836 | -webkit-border-radius: 0 14px 14px 0; 1837 | -moz-border-radius: 0 14px 14px 0; 1838 | border-radius: 0 14px 14px 0; 1839 | } 1840 | 1841 | .form-search .input-prepend .btn { 1842 | -webkit-border-radius: 14px 0 0 14px; 1843 | -moz-border-radius: 14px 0 0 14px; 1844 | border-radius: 14px 0 0 14px; 1845 | } 1846 | 1847 | .form-search input, 1848 | .form-inline input, 1849 | .form-horizontal input, 1850 | .form-search textarea, 1851 | .form-inline textarea, 1852 | .form-horizontal textarea, 1853 | .form-search select, 1854 | .form-inline select, 1855 | .form-horizontal select, 1856 | .form-search .help-inline, 1857 | .form-inline .help-inline, 1858 | .form-horizontal .help-inline, 1859 | .form-search .uneditable-input, 1860 | .form-inline .uneditable-input, 1861 | .form-horizontal .uneditable-input, 1862 | .form-search .input-prepend, 1863 | .form-inline .input-prepend, 1864 | .form-horizontal .input-prepend, 1865 | .form-search .input-append, 1866 | .form-inline .input-append, 1867 | .form-horizontal .input-append { 1868 | display: inline-block; 1869 | *display: inline; 1870 | margin-bottom: 0; 1871 | vertical-align: middle; 1872 | *zoom: 1; 1873 | } 1874 | 1875 | .form-search .hide, 1876 | .form-inline .hide, 1877 | .form-horizontal .hide { 1878 | display: none; 1879 | } 1880 | 1881 | .form-search label, 1882 | .form-inline label, 1883 | .form-search .btn-group, 1884 | .form-inline .btn-group { 1885 | display: inline-block; 1886 | } 1887 | 1888 | .form-search .input-append, 1889 | .form-inline .input-append, 1890 | .form-search .input-prepend, 1891 | .form-inline .input-prepend { 1892 | margin-bottom: 0; 1893 | } 1894 | 1895 | .form-search .radio, 1896 | .form-search .checkbox, 1897 | .form-inline .radio, 1898 | .form-inline .checkbox { 1899 | padding-left: 0; 1900 | margin-bottom: 0; 1901 | vertical-align: middle; 1902 | } 1903 | 1904 | .form-search .radio input[type="radio"], 1905 | .form-search .checkbox input[type="checkbox"], 1906 | .form-inline .radio input[type="radio"], 1907 | .form-inline .checkbox input[type="checkbox"] { 1908 | float: left; 1909 | margin-right: 3px; 1910 | margin-left: 0; 1911 | } 1912 | 1913 | .control-group { 1914 | margin-bottom: 10px; 1915 | } 1916 | 1917 | legend + .control-group { 1918 | margin-top: 20px; 1919 | -webkit-margin-top-collapse: separate; 1920 | } 1921 | 1922 | .form-horizontal .control-group { 1923 | margin-bottom: 20px; 1924 | *zoom: 1; 1925 | } 1926 | 1927 | .form-horizontal .control-group:before, 1928 | .form-horizontal .control-group:after { 1929 | display: table; 1930 | line-height: 0; 1931 | content: ""; 1932 | } 1933 | 1934 | .form-horizontal .control-group:after { 1935 | clear: both; 1936 | } 1937 | 1938 | .form-horizontal .control-label { 1939 | float: left; 1940 | width: 160px; 1941 | padding-top: 5px; 1942 | text-align: right; 1943 | } 1944 | 1945 | .form-horizontal .controls { 1946 | *display: inline-block; 1947 | *padding-left: 20px; 1948 | margin-left: 180px; 1949 | *margin-left: 0; 1950 | } 1951 | 1952 | .form-horizontal .controls:first-child { 1953 | *padding-left: 180px; 1954 | } 1955 | 1956 | .form-horizontal .help-block { 1957 | margin-bottom: 0; 1958 | } 1959 | 1960 | .form-horizontal input + .help-block, 1961 | .form-horizontal select + .help-block, 1962 | .form-horizontal textarea + .help-block, 1963 | .form-horizontal .uneditable-input + .help-block, 1964 | .form-horizontal .input-prepend + .help-block, 1965 | .form-horizontal .input-append + .help-block { 1966 | margin-top: 10px; 1967 | } 1968 | 1969 | .form-horizontal .form-actions { 1970 | padding-left: 180px; 1971 | } 1972 | 1973 | table { 1974 | max-width: 100%; 1975 | background-color: transparent; 1976 | border-collapse: collapse; 1977 | border-spacing: 0; 1978 | } 1979 | 1980 | .table { 1981 | width: 100%; 1982 | margin-bottom: 20px; 1983 | } 1984 | 1985 | .table th, 1986 | .table td { 1987 | padding: 8px; 1988 | line-height: 20px; 1989 | text-align: left; 1990 | vertical-align: top; 1991 | border-top: 1px solid #dddddd; 1992 | } 1993 | 1994 | .table th { 1995 | font-weight: bold; 1996 | } 1997 | 1998 | .table thead th { 1999 | vertical-align: bottom; 2000 | } 2001 | 2002 | .table caption + thead tr:first-child th, 2003 | .table caption + thead tr:first-child td, 2004 | .table colgroup + thead tr:first-child th, 2005 | .table colgroup + thead tr:first-child td, 2006 | .table thead:first-child tr:first-child th, 2007 | .table thead:first-child tr:first-child td { 2008 | border-top: 0; 2009 | } 2010 | 2011 | .table tbody + tbody { 2012 | border-top: 2px solid #dddddd; 2013 | } 2014 | 2015 | .table .table { 2016 | background-color: #ffffff; 2017 | } 2018 | 2019 | .table-condensed th, 2020 | .table-condensed td { 2021 | padding: 4px 5px; 2022 | } 2023 | 2024 | .table-bordered { 2025 | border: 1px solid #dddddd; 2026 | border-collapse: separate; 2027 | *border-collapse: collapse; 2028 | border-left: 0; 2029 | -webkit-border-radius: 4px; 2030 | -moz-border-radius: 4px; 2031 | border-radius: 4px; 2032 | } 2033 | 2034 | .table-bordered th, 2035 | .table-bordered td { 2036 | border-left: 1px solid #dddddd; 2037 | } 2038 | 2039 | .table-bordered caption + thead tr:first-child th, 2040 | .table-bordered caption + tbody tr:first-child th, 2041 | .table-bordered caption + tbody tr:first-child td, 2042 | .table-bordered colgroup + thead tr:first-child th, 2043 | .table-bordered colgroup + tbody tr:first-child th, 2044 | .table-bordered colgroup + tbody tr:first-child td, 2045 | .table-bordered thead:first-child tr:first-child th, 2046 | .table-bordered tbody:first-child tr:first-child th, 2047 | .table-bordered tbody:first-child tr:first-child td { 2048 | border-top: 0; 2049 | } 2050 | 2051 | .table-bordered thead:first-child tr:first-child > th:first-child, 2052 | .table-bordered tbody:first-child tr:first-child > td:first-child { 2053 | -webkit-border-top-left-radius: 4px; 2054 | border-top-left-radius: 4px; 2055 | -moz-border-radius-topleft: 4px; 2056 | } 2057 | 2058 | .table-bordered thead:first-child tr:first-child > th:last-child, 2059 | .table-bordered tbody:first-child tr:first-child > td:last-child { 2060 | -webkit-border-top-right-radius: 4px; 2061 | border-top-right-radius: 4px; 2062 | -moz-border-radius-topright: 4px; 2063 | } 2064 | 2065 | .table-bordered thead:last-child tr:last-child > th:first-child, 2066 | .table-bordered tbody:last-child tr:last-child > td:first-child, 2067 | .table-bordered tfoot:last-child tr:last-child > td:first-child { 2068 | -webkit-border-bottom-left-radius: 4px; 2069 | border-bottom-left-radius: 4px; 2070 | -moz-border-radius-bottomleft: 4px; 2071 | } 2072 | 2073 | .table-bordered thead:last-child tr:last-child > th:last-child, 2074 | .table-bordered tbody:last-child tr:last-child > td:last-child, 2075 | .table-bordered tfoot:last-child tr:last-child > td:last-child { 2076 | -webkit-border-bottom-right-radius: 4px; 2077 | border-bottom-right-radius: 4px; 2078 | -moz-border-radius-bottomright: 4px; 2079 | } 2080 | 2081 | .table-bordered tfoot + tbody:last-child tr:last-child td:first-child { 2082 | -webkit-border-bottom-left-radius: 0; 2083 | border-bottom-left-radius: 0; 2084 | -moz-border-radius-bottomleft: 0; 2085 | } 2086 | 2087 | .table-bordered tfoot + tbody:last-child tr:last-child td:last-child { 2088 | -webkit-border-bottom-right-radius: 0; 2089 | border-bottom-right-radius: 0; 2090 | -moz-border-radius-bottomright: 0; 2091 | } 2092 | 2093 | .table-bordered caption + thead tr:first-child th:first-child, 2094 | .table-bordered caption + tbody tr:first-child td:first-child, 2095 | .table-bordered colgroup + thead tr:first-child th:first-child, 2096 | .table-bordered colgroup + tbody tr:first-child td:first-child { 2097 | -webkit-border-top-left-radius: 4px; 2098 | border-top-left-radius: 4px; 2099 | -moz-border-radius-topleft: 4px; 2100 | } 2101 | 2102 | .table-bordered caption + thead tr:first-child th:last-child, 2103 | .table-bordered caption + tbody tr:first-child td:last-child, 2104 | .table-bordered colgroup + thead tr:first-child th:last-child, 2105 | .table-bordered colgroup + tbody tr:first-child td:last-child { 2106 | -webkit-border-top-right-radius: 4px; 2107 | border-top-right-radius: 4px; 2108 | -moz-border-radius-topright: 4px; 2109 | } 2110 | 2111 | .table-striped tbody > tr:nth-child(odd) > td, 2112 | .table-striped tbody > tr:nth-child(odd) > th { 2113 | background-color: #f9f9f9; 2114 | } 2115 | 2116 | .table-hover tbody tr:hover td, 2117 | .table-hover tbody tr:hover th { 2118 | background-color: #f5f5f5; 2119 | } 2120 | 2121 | table td[class*="span"], 2122 | table th[class*="span"], 2123 | .row-fluid table td[class*="span"], 2124 | .row-fluid table th[class*="span"] { 2125 | display: table-cell; 2126 | float: none; 2127 | margin-left: 0; 2128 | } 2129 | 2130 | .table td.span1, 2131 | .table th.span1 { 2132 | float: none; 2133 | width: 44px; 2134 | margin-left: 0; 2135 | } 2136 | 2137 | .table td.span2, 2138 | .table th.span2 { 2139 | float: none; 2140 | width: 124px; 2141 | margin-left: 0; 2142 | } 2143 | 2144 | .table td.span3, 2145 | .table th.span3 { 2146 | float: none; 2147 | width: 204px; 2148 | margin-left: 0; 2149 | } 2150 | 2151 | .table td.span4, 2152 | .table th.span4 { 2153 | float: none; 2154 | width: 284px; 2155 | margin-left: 0; 2156 | } 2157 | 2158 | .table td.span5, 2159 | .table th.span5 { 2160 | float: none; 2161 | width: 364px; 2162 | margin-left: 0; 2163 | } 2164 | 2165 | .table td.span6, 2166 | .table th.span6 { 2167 | float: none; 2168 | width: 444px; 2169 | margin-left: 0; 2170 | } 2171 | 2172 | .table td.span7, 2173 | .table th.span7 { 2174 | float: none; 2175 | width: 524px; 2176 | margin-left: 0; 2177 | } 2178 | 2179 | .table td.span8, 2180 | .table th.span8 { 2181 | float: none; 2182 | width: 604px; 2183 | margin-left: 0; 2184 | } 2185 | 2186 | .table td.span9, 2187 | .table th.span9 { 2188 | float: none; 2189 | width: 684px; 2190 | margin-left: 0; 2191 | } 2192 | 2193 | .table td.span10, 2194 | .table th.span10 { 2195 | float: none; 2196 | width: 764px; 2197 | margin-left: 0; 2198 | } 2199 | 2200 | .table td.span11, 2201 | .table th.span11 { 2202 | float: none; 2203 | width: 844px; 2204 | margin-left: 0; 2205 | } 2206 | 2207 | .table td.span12, 2208 | .table th.span12 { 2209 | float: none; 2210 | width: 924px; 2211 | margin-left: 0; 2212 | } 2213 | 2214 | .table tbody tr.success td { 2215 | background-color: #dff0d8; 2216 | } 2217 | 2218 | .table tbody tr.error td { 2219 | background-color: #f2dede; 2220 | } 2221 | 2222 | .table tbody tr.warning td { 2223 | background-color: #fcf8e3; 2224 | } 2225 | 2226 | .table tbody tr.info td { 2227 | background-color: #d9edf7; 2228 | } 2229 | 2230 | .table-hover tbody tr.success:hover td { 2231 | background-color: #d0e9c6; 2232 | } 2233 | 2234 | .table-hover tbody tr.error:hover td { 2235 | background-color: #ebcccc; 2236 | } 2237 | 2238 | .table-hover tbody tr.warning:hover td { 2239 | background-color: #faf2cc; 2240 | } 2241 | 2242 | .table-hover tbody tr.info:hover td { 2243 | background-color: #c4e3f3; 2244 | } 2245 | 2246 | [class^="icon-"], 2247 | [class*=" icon-"] { 2248 | display: inline-block; 2249 | width: 14px; 2250 | height: 14px; 2251 | margin-top: 1px; 2252 | *margin-right: .3em; 2253 | line-height: 14px; 2254 | vertical-align: text-top; 2255 | background-image: url("../img/glyphicons-halflings.png"); 2256 | background-position: 14px 14px; 2257 | background-repeat: no-repeat; 2258 | } 2259 | 2260 | /* White icons with optional class, or on hover/active states of certain elements */ 2261 | 2262 | .icon-white, 2263 | .nav-pills > .active > a > [class^="icon-"], 2264 | .nav-pills > .active > a > [class*=" icon-"], 2265 | .nav-list > .active > a > [class^="icon-"], 2266 | .nav-list > .active > a > [class*=" icon-"], 2267 | .navbar-inverse .nav > .active > a > [class^="icon-"], 2268 | .navbar-inverse .nav > .active > a > [class*=" icon-"], 2269 | .dropdown-menu > li > a:hover > [class^="icon-"], 2270 | .dropdown-menu > li > a:hover > [class*=" icon-"], 2271 | .dropdown-menu > .active > a > [class^="icon-"], 2272 | .dropdown-menu > .active > a > [class*=" icon-"], 2273 | .dropdown-submenu:hover > a > [class^="icon-"], 2274 | .dropdown-submenu:hover > a > [class*=" icon-"] { 2275 | background-image: url("../img/glyphicons-halflings-white.png"); 2276 | } 2277 | 2278 | .icon-glass { 2279 | background-position: 0 0; 2280 | } 2281 | 2282 | .icon-music { 2283 | background-position: -24px 0; 2284 | } 2285 | 2286 | .icon-search { 2287 | background-position: -48px 0; 2288 | } 2289 | 2290 | .icon-envelope { 2291 | background-position: -72px 0; 2292 | } 2293 | 2294 | .icon-heart { 2295 | background-position: -96px 0; 2296 | } 2297 | 2298 | .icon-star { 2299 | background-position: -120px 0; 2300 | } 2301 | 2302 | .icon-star-empty { 2303 | background-position: -144px 0; 2304 | } 2305 | 2306 | .icon-user { 2307 | background-position: -168px 0; 2308 | } 2309 | 2310 | .icon-film { 2311 | background-position: -192px 0; 2312 | } 2313 | 2314 | .icon-th-large { 2315 | background-position: -216px 0; 2316 | } 2317 | 2318 | .icon-th { 2319 | background-position: -240px 0; 2320 | } 2321 | 2322 | .icon-th-list { 2323 | background-position: -264px 0; 2324 | } 2325 | 2326 | .icon-ok { 2327 | background-position: -288px 0; 2328 | } 2329 | 2330 | .icon-remove { 2331 | background-position: -312px 0; 2332 | } 2333 | 2334 | .icon-zoom-in { 2335 | background-position: -336px 0; 2336 | } 2337 | 2338 | .icon-zoom-out { 2339 | background-position: -360px 0; 2340 | } 2341 | 2342 | .icon-off { 2343 | background-position: -384px 0; 2344 | } 2345 | 2346 | .icon-signal { 2347 | background-position: -408px 0; 2348 | } 2349 | 2350 | .icon-cog { 2351 | background-position: -432px 0; 2352 | } 2353 | 2354 | .icon-trash { 2355 | background-position: -456px 0; 2356 | } 2357 | 2358 | .icon-home { 2359 | background-position: 0 -24px; 2360 | } 2361 | 2362 | .icon-file { 2363 | background-position: -24px -24px; 2364 | } 2365 | 2366 | .icon-time { 2367 | background-position: -48px -24px; 2368 | } 2369 | 2370 | .icon-road { 2371 | background-position: -72px -24px; 2372 | } 2373 | 2374 | .icon-download-alt { 2375 | background-position: -96px -24px; 2376 | } 2377 | 2378 | .icon-download { 2379 | background-position: -120px -24px; 2380 | } 2381 | 2382 | .icon-upload { 2383 | background-position: -144px -24px; 2384 | } 2385 | 2386 | .icon-inbox { 2387 | background-position: -168px -24px; 2388 | } 2389 | 2390 | .icon-play-circle { 2391 | background-position: -192px -24px; 2392 | } 2393 | 2394 | .icon-repeat { 2395 | background-position: -216px -24px; 2396 | } 2397 | 2398 | .icon-refresh { 2399 | background-position: -240px -24px; 2400 | } 2401 | 2402 | .icon-list-alt { 2403 | background-position: -264px -24px; 2404 | } 2405 | 2406 | .icon-lock { 2407 | background-position: -287px -24px; 2408 | } 2409 | 2410 | .icon-flag { 2411 | background-position: -312px -24px; 2412 | } 2413 | 2414 | .icon-headphones { 2415 | background-position: -336px -24px; 2416 | } 2417 | 2418 | .icon-volume-off { 2419 | background-position: -360px -24px; 2420 | } 2421 | 2422 | .icon-volume-down { 2423 | background-position: -384px -24px; 2424 | } 2425 | 2426 | .icon-volume-up { 2427 | background-position: -408px -24px; 2428 | } 2429 | 2430 | .icon-qrcode { 2431 | background-position: -432px -24px; 2432 | } 2433 | 2434 | .icon-barcode { 2435 | background-position: -456px -24px; 2436 | } 2437 | 2438 | .icon-tag { 2439 | background-position: 0 -48px; 2440 | } 2441 | 2442 | .icon-tags { 2443 | background-position: -25px -48px; 2444 | } 2445 | 2446 | .icon-book { 2447 | background-position: -48px -48px; 2448 | } 2449 | 2450 | .icon-bookmark { 2451 | background-position: -72px -48px; 2452 | } 2453 | 2454 | .icon-print { 2455 | background-position: -96px -48px; 2456 | } 2457 | 2458 | .icon-camera { 2459 | background-position: -120px -48px; 2460 | } 2461 | 2462 | .icon-font { 2463 | background-position: -144px -48px; 2464 | } 2465 | 2466 | .icon-bold { 2467 | background-position: -167px -48px; 2468 | } 2469 | 2470 | .icon-italic { 2471 | background-position: -192px -48px; 2472 | } 2473 | 2474 | .icon-text-height { 2475 | background-position: -216px -48px; 2476 | } 2477 | 2478 | .icon-text-width { 2479 | background-position: -240px -48px; 2480 | } 2481 | 2482 | .icon-align-left { 2483 | background-position: -264px -48px; 2484 | } 2485 | 2486 | .icon-align-center { 2487 | background-position: -288px -48px; 2488 | } 2489 | 2490 | .icon-align-right { 2491 | background-position: -312px -48px; 2492 | } 2493 | 2494 | .icon-align-justify { 2495 | background-position: -336px -48px; 2496 | } 2497 | 2498 | .icon-list { 2499 | background-position: -360px -48px; 2500 | } 2501 | 2502 | .icon-indent-left { 2503 | background-position: -384px -48px; 2504 | } 2505 | 2506 | .icon-indent-right { 2507 | background-position: -408px -48px; 2508 | } 2509 | 2510 | .icon-facetime-video { 2511 | background-position: -432px -48px; 2512 | } 2513 | 2514 | .icon-picture { 2515 | background-position: -456px -48px; 2516 | } 2517 | 2518 | .icon-pencil { 2519 | background-position: 0 -72px; 2520 | } 2521 | 2522 | .icon-map-marker { 2523 | background-position: -24px -72px; 2524 | } 2525 | 2526 | .icon-adjust { 2527 | background-position: -48px -72px; 2528 | } 2529 | 2530 | .icon-tint { 2531 | background-position: -72px -72px; 2532 | } 2533 | 2534 | .icon-edit { 2535 | background-position: -96px -72px; 2536 | } 2537 | 2538 | .icon-share { 2539 | background-position: -120px -72px; 2540 | } 2541 | 2542 | .icon-check { 2543 | background-position: -144px -72px; 2544 | } 2545 | 2546 | .icon-move { 2547 | background-position: -168px -72px; 2548 | } 2549 | 2550 | .icon-step-backward { 2551 | background-position: -192px -72px; 2552 | } 2553 | 2554 | .icon-fast-backward { 2555 | background-position: -216px -72px; 2556 | } 2557 | 2558 | .icon-backward { 2559 | background-position: -240px -72px; 2560 | } 2561 | 2562 | .icon-play { 2563 | background-position: -264px -72px; 2564 | } 2565 | 2566 | .icon-pause { 2567 | background-position: -288px -72px; 2568 | } 2569 | 2570 | .icon-stop { 2571 | background-position: -312px -72px; 2572 | } 2573 | 2574 | .icon-forward { 2575 | background-position: -336px -72px; 2576 | } 2577 | 2578 | .icon-fast-forward { 2579 | background-position: -360px -72px; 2580 | } 2581 | 2582 | .icon-step-forward { 2583 | background-position: -384px -72px; 2584 | } 2585 | 2586 | .icon-eject { 2587 | background-position: -408px -72px; 2588 | } 2589 | 2590 | .icon-chevron-left { 2591 | background-position: -432px -72px; 2592 | } 2593 | 2594 | .icon-chevron-right { 2595 | background-position: -456px -72px; 2596 | } 2597 | 2598 | .icon-plus-sign { 2599 | background-position: 0 -96px; 2600 | } 2601 | 2602 | .icon-minus-sign { 2603 | background-position: -24px -96px; 2604 | } 2605 | 2606 | .icon-remove-sign { 2607 | background-position: -48px -96px; 2608 | } 2609 | 2610 | .icon-ok-sign { 2611 | background-position: -72px -96px; 2612 | } 2613 | 2614 | .icon-question-sign { 2615 | background-position: -96px -96px; 2616 | } 2617 | 2618 | .icon-info-sign { 2619 | background-position: -120px -96px; 2620 | } 2621 | 2622 | .icon-screenshot { 2623 | background-position: -144px -96px; 2624 | } 2625 | 2626 | .icon-remove-circle { 2627 | background-position: -168px -96px; 2628 | } 2629 | 2630 | .icon-ok-circle { 2631 | background-position: -192px -96px; 2632 | } 2633 | 2634 | .icon-ban-circle { 2635 | background-position: -216px -96px; 2636 | } 2637 | 2638 | .icon-arrow-left { 2639 | background-position: -240px -96px; 2640 | } 2641 | 2642 | .icon-arrow-right { 2643 | background-position: -264px -96px; 2644 | } 2645 | 2646 | .icon-arrow-up { 2647 | background-position: -289px -96px; 2648 | } 2649 | 2650 | .icon-arrow-down { 2651 | background-position: -312px -96px; 2652 | } 2653 | 2654 | .icon-share-alt { 2655 | background-position: -336px -96px; 2656 | } 2657 | 2658 | .icon-resize-full { 2659 | background-position: -360px -96px; 2660 | } 2661 | 2662 | .icon-resize-small { 2663 | background-position: -384px -96px; 2664 | } 2665 | 2666 | .icon-plus { 2667 | background-position: -408px -96px; 2668 | } 2669 | 2670 | .icon-minus { 2671 | background-position: -433px -96px; 2672 | } 2673 | 2674 | .icon-asterisk { 2675 | background-position: -456px -96px; 2676 | } 2677 | 2678 | .icon-exclamation-sign { 2679 | background-position: 0 -120px; 2680 | } 2681 | 2682 | .icon-gift { 2683 | background-position: -24px -120px; 2684 | } 2685 | 2686 | .icon-leaf { 2687 | background-position: -48px -120px; 2688 | } 2689 | 2690 | .icon-fire { 2691 | background-position: -72px -120px; 2692 | } 2693 | 2694 | .icon-eye-open { 2695 | background-position: -96px -120px; 2696 | } 2697 | 2698 | .icon-eye-close { 2699 | background-position: -120px -120px; 2700 | } 2701 | 2702 | .icon-warning-sign { 2703 | background-position: -144px -120px; 2704 | } 2705 | 2706 | .icon-plane { 2707 | background-position: -168px -120px; 2708 | } 2709 | 2710 | .icon-calendar { 2711 | background-position: -192px -120px; 2712 | } 2713 | 2714 | .icon-random { 2715 | width: 16px; 2716 | background-position: -216px -120px; 2717 | } 2718 | 2719 | .icon-comment { 2720 | background-position: -240px -120px; 2721 | } 2722 | 2723 | .icon-magnet { 2724 | background-position: -264px -120px; 2725 | } 2726 | 2727 | .icon-chevron-up { 2728 | background-position: -288px -120px; 2729 | } 2730 | 2731 | .icon-chevron-down { 2732 | background-position: -313px -119px; 2733 | } 2734 | 2735 | .icon-retweet { 2736 | background-position: -336px -120px; 2737 | } 2738 | 2739 | .icon-shopping-cart { 2740 | background-position: -360px -120px; 2741 | } 2742 | 2743 | .icon-folder-close { 2744 | background-position: -384px -120px; 2745 | } 2746 | 2747 | .icon-folder-open { 2748 | width: 16px; 2749 | background-position: -408px -120px; 2750 | } 2751 | 2752 | .icon-resize-vertical { 2753 | background-position: -432px -119px; 2754 | } 2755 | 2756 | .icon-resize-horizontal { 2757 | background-position: -456px -118px; 2758 | } 2759 | 2760 | .icon-hdd { 2761 | background-position: 0 -144px; 2762 | } 2763 | 2764 | .icon-bullhorn { 2765 | background-position: -24px -144px; 2766 | } 2767 | 2768 | .icon-bell { 2769 | background-position: -48px -144px; 2770 | } 2771 | 2772 | .icon-certificate { 2773 | background-position: -72px -144px; 2774 | } 2775 | 2776 | .icon-thumbs-up { 2777 | background-position: -96px -144px; 2778 | } 2779 | 2780 | .icon-thumbs-down { 2781 | background-position: -120px -144px; 2782 | } 2783 | 2784 | .icon-hand-right { 2785 | background-position: -144px -144px; 2786 | } 2787 | 2788 | .icon-hand-left { 2789 | background-position: -168px -144px; 2790 | } 2791 | 2792 | .icon-hand-up { 2793 | background-position: -192px -144px; 2794 | } 2795 | 2796 | .icon-hand-down { 2797 | background-position: -216px -144px; 2798 | } 2799 | 2800 | .icon-circle-arrow-right { 2801 | background-position: -240px -144px; 2802 | } 2803 | 2804 | .icon-circle-arrow-left { 2805 | background-position: -264px -144px; 2806 | } 2807 | 2808 | .icon-circle-arrow-up { 2809 | background-position: -288px -144px; 2810 | } 2811 | 2812 | .icon-circle-arrow-down { 2813 | background-position: -312px -144px; 2814 | } 2815 | 2816 | .icon-globe { 2817 | background-position: -336px -144px; 2818 | } 2819 | 2820 | .icon-wrench { 2821 | background-position: -360px -144px; 2822 | } 2823 | 2824 | .icon-tasks { 2825 | background-position: -384px -144px; 2826 | } 2827 | 2828 | .icon-filter { 2829 | background-position: -408px -144px; 2830 | } 2831 | 2832 | .icon-briefcase { 2833 | background-position: -432px -144px; 2834 | } 2835 | 2836 | .icon-fullscreen { 2837 | background-position: -456px -144px; 2838 | } 2839 | 2840 | .dropup, 2841 | .dropdown { 2842 | position: relative; 2843 | } 2844 | 2845 | .dropdown-toggle { 2846 | *margin-bottom: -3px; 2847 | } 2848 | 2849 | .dropdown-toggle:active, 2850 | .open .dropdown-toggle { 2851 | outline: 0; 2852 | } 2853 | 2854 | .caret { 2855 | display: inline-block; 2856 | width: 0; 2857 | height: 0; 2858 | vertical-align: top; 2859 | border-top: 4px solid #000000; 2860 | border-right: 4px solid transparent; 2861 | border-left: 4px solid transparent; 2862 | content: ""; 2863 | } 2864 | 2865 | .dropdown .caret { 2866 | margin-top: 8px; 2867 | margin-left: 2px; 2868 | } 2869 | 2870 | .dropdown-menu { 2871 | position: absolute; 2872 | top: 100%; 2873 | left: 0; 2874 | z-index: 1000; 2875 | display: none; 2876 | float: left; 2877 | min-width: 160px; 2878 | padding: 5px 0; 2879 | margin: 2px 0 0; 2880 | list-style: none; 2881 | background-color: #ffffff; 2882 | border: 1px solid #ccc; 2883 | border: 1px solid rgba(0, 0, 0, 0.2); 2884 | *border-right-width: 2px; 2885 | *border-bottom-width: 2px; 2886 | -webkit-border-radius: 6px; 2887 | -moz-border-radius: 6px; 2888 | border-radius: 6px; 2889 | -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 2890 | -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 2891 | box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 2892 | -webkit-background-clip: padding-box; 2893 | -moz-background-clip: padding; 2894 | background-clip: padding-box; 2895 | } 2896 | 2897 | .dropdown-menu.pull-right { 2898 | right: 0; 2899 | left: auto; 2900 | } 2901 | 2902 | .dropdown-menu .divider { 2903 | *width: 100%; 2904 | height: 1px; 2905 | margin: 9px 1px; 2906 | *margin: -5px 0 5px; 2907 | overflow: hidden; 2908 | background-color: #e5e5e5; 2909 | border-bottom: 1px solid #ffffff; 2910 | } 2911 | 2912 | .dropdown-menu li > a { 2913 | display: block; 2914 | padding: 3px 20px; 2915 | clear: both; 2916 | font-weight: normal; 2917 | line-height: 20px; 2918 | color: #333333; 2919 | white-space: nowrap; 2920 | } 2921 | 2922 | .dropdown-menu li > a:hover, 2923 | .dropdown-menu li > a:focus, 2924 | .dropdown-submenu:hover > a { 2925 | color: #ffffff; 2926 | text-decoration: none; 2927 | background-color: #0081c2; 2928 | background-image: -moz-linear-gradient(top, #0088cc, #0077b3); 2929 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); 2930 | background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); 2931 | background-image: -o-linear-gradient(top, #0088cc, #0077b3); 2932 | background-image: linear-gradient(to bottom, #0088cc, #0077b3); 2933 | background-repeat: repeat-x; 2934 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); 2935 | } 2936 | 2937 | .dropdown-menu .active > a, 2938 | .dropdown-menu .active > a:hover { 2939 | color: #ffffff; 2940 | text-decoration: none; 2941 | background-color: #0081c2; 2942 | background-image: -moz-linear-gradient(top, #0088cc, #0077b3); 2943 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); 2944 | background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); 2945 | background-image: -o-linear-gradient(top, #0088cc, #0077b3); 2946 | background-image: linear-gradient(to bottom, #0088cc, #0077b3); 2947 | background-repeat: repeat-x; 2948 | outline: 0; 2949 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); 2950 | } 2951 | 2952 | .dropdown-menu .disabled > a, 2953 | .dropdown-menu .disabled > a:hover { 2954 | color: #999999; 2955 | } 2956 | 2957 | .dropdown-menu .disabled > a:hover { 2958 | text-decoration: none; 2959 | cursor: default; 2960 | background-color: transparent; 2961 | background-image: none; 2962 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 2963 | } 2964 | 2965 | .open { 2966 | *z-index: 1000; 2967 | } 2968 | 2969 | .open > .dropdown-menu { 2970 | display: block; 2971 | } 2972 | 2973 | .pull-right > .dropdown-menu { 2974 | right: 0; 2975 | left: auto; 2976 | } 2977 | 2978 | .dropup .caret, 2979 | .navbar-fixed-bottom .dropdown .caret { 2980 | border-top: 0; 2981 | border-bottom: 4px solid #000000; 2982 | content: ""; 2983 | } 2984 | 2985 | .dropup .dropdown-menu, 2986 | .navbar-fixed-bottom .dropdown .dropdown-menu { 2987 | top: auto; 2988 | bottom: 100%; 2989 | margin-bottom: 1px; 2990 | } 2991 | 2992 | .dropdown-submenu { 2993 | position: relative; 2994 | } 2995 | 2996 | .dropdown-submenu > .dropdown-menu { 2997 | top: 0; 2998 | left: 100%; 2999 | margin-top: -6px; 3000 | margin-left: -1px; 3001 | -webkit-border-radius: 0 6px 6px 6px; 3002 | -moz-border-radius: 0 6px 6px 6px; 3003 | border-radius: 0 6px 6px 6px; 3004 | } 3005 | 3006 | .dropdown-submenu:hover > .dropdown-menu { 3007 | display: block; 3008 | } 3009 | 3010 | .dropup .dropdown-submenu > .dropdown-menu { 3011 | top: auto; 3012 | bottom: 0; 3013 | margin-top: 0; 3014 | margin-bottom: -2px; 3015 | -webkit-border-radius: 5px 5px 5px 0; 3016 | -moz-border-radius: 5px 5px 5px 0; 3017 | border-radius: 5px 5px 5px 0; 3018 | } 3019 | 3020 | .dropdown-submenu > a:after { 3021 | display: block; 3022 | float: right; 3023 | width: 0; 3024 | height: 0; 3025 | margin-top: 5px; 3026 | margin-right: -10px; 3027 | border-color: transparent; 3028 | border-left-color: #cccccc; 3029 | border-style: solid; 3030 | border-width: 5px 0 5px 5px; 3031 | content: " "; 3032 | } 3033 | 3034 | .dropdown-submenu:hover > a:after { 3035 | border-left-color: #ffffff; 3036 | } 3037 | 3038 | .dropdown-submenu.pull-left { 3039 | float: none; 3040 | } 3041 | 3042 | .dropdown-submenu.pull-left > .dropdown-menu { 3043 | left: -100%; 3044 | margin-left: 10px; 3045 | -webkit-border-radius: 6px 0 6px 6px; 3046 | -moz-border-radius: 6px 0 6px 6px; 3047 | border-radius: 6px 0 6px 6px; 3048 | } 3049 | 3050 | .dropdown .dropdown-menu .nav-header { 3051 | padding-right: 20px; 3052 | padding-left: 20px; 3053 | } 3054 | 3055 | .typeahead { 3056 | z-index: 1051; 3057 | margin-top: 2px; 3058 | -webkit-border-radius: 4px; 3059 | -moz-border-radius: 4px; 3060 | border-radius: 4px; 3061 | } 3062 | 3063 | .well { 3064 | min-height: 20px; 3065 | padding: 19px; 3066 | margin-bottom: 20px; 3067 | background-color: #f5f5f5; 3068 | border: 1px solid #e3e3e3; 3069 | -webkit-border-radius: 4px; 3070 | -moz-border-radius: 4px; 3071 | border-radius: 4px; 3072 | -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); 3073 | -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); 3074 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); 3075 | } 3076 | 3077 | .well blockquote { 3078 | border-color: #ddd; 3079 | border-color: rgba(0, 0, 0, 0.15); 3080 | } 3081 | 3082 | .well-large { 3083 | padding: 24px; 3084 | -webkit-border-radius: 6px; 3085 | -moz-border-radius: 6px; 3086 | border-radius: 6px; 3087 | } 3088 | 3089 | .well-small { 3090 | padding: 9px; 3091 | -webkit-border-radius: 3px; 3092 | -moz-border-radius: 3px; 3093 | border-radius: 3px; 3094 | } 3095 | 3096 | .fade { 3097 | opacity: 0; 3098 | -webkit-transition: opacity 0.15s linear; 3099 | -moz-transition: opacity 0.15s linear; 3100 | -o-transition: opacity 0.15s linear; 3101 | transition: opacity 0.15s linear; 3102 | } 3103 | 3104 | .fade.in { 3105 | opacity: 1; 3106 | } 3107 | 3108 | .collapse { 3109 | position: relative; 3110 | height: 0; 3111 | overflow: hidden; 3112 | -webkit-transition: height 0.35s ease; 3113 | -moz-transition: height 0.35s ease; 3114 | -o-transition: height 0.35s ease; 3115 | transition: height 0.35s ease; 3116 | } 3117 | 3118 | .collapse.in { 3119 | height: auto; 3120 | } 3121 | 3122 | .close { 3123 | float: right; 3124 | font-size: 20px; 3125 | font-weight: bold; 3126 | line-height: 20px; 3127 | color: #000000; 3128 | text-shadow: 0 1px 0 #ffffff; 3129 | opacity: 0.2; 3130 | filter: alpha(opacity=20); 3131 | } 3132 | 3133 | .close:hover { 3134 | color: #000000; 3135 | text-decoration: none; 3136 | cursor: pointer; 3137 | opacity: 0.4; 3138 | filter: alpha(opacity=40); 3139 | } 3140 | 3141 | button.close { 3142 | padding: 0; 3143 | cursor: pointer; 3144 | background: transparent; 3145 | border: 0; 3146 | -webkit-appearance: none; 3147 | } 3148 | 3149 | .btn { 3150 | display: inline-block; 3151 | *display: inline; 3152 | padding: 4px 12px; 3153 | margin-bottom: 0; 3154 | *margin-left: .3em; 3155 | font-size: 14px; 3156 | line-height: 20px; 3157 | color: #333333; 3158 | text-align: center; 3159 | text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); 3160 | vertical-align: middle; 3161 | cursor: pointer; 3162 | background-color: #f5f5f5; 3163 | *background-color: #e6e6e6; 3164 | background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); 3165 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); 3166 | background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); 3167 | background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); 3168 | background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); 3169 | background-repeat: repeat-x; 3170 | border: 1px solid #bbbbbb; 3171 | *border: 0; 3172 | border-color: #e6e6e6 #e6e6e6 #bfbfbf; 3173 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 3174 | border-bottom-color: #a2a2a2; 3175 | -webkit-border-radius: 4px; 3176 | -moz-border-radius: 4px; 3177 | border-radius: 4px; 3178 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); 3179 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 3180 | *zoom: 1; 3181 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); 3182 | -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); 3183 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); 3184 | } 3185 | 3186 | .btn:hover, 3187 | .btn:active, 3188 | .btn.active, 3189 | .btn.disabled, 3190 | .btn[disabled] { 3191 | color: #333333; 3192 | background-color: #e6e6e6; 3193 | *background-color: #d9d9d9; 3194 | } 3195 | 3196 | .btn:active, 3197 | .btn.active { 3198 | background-color: #cccccc \9; 3199 | } 3200 | 3201 | .btn:first-child { 3202 | *margin-left: 0; 3203 | } 3204 | 3205 | .btn:hover { 3206 | color: #333333; 3207 | text-decoration: none; 3208 | background-position: 0 -15px; 3209 | -webkit-transition: background-position 0.1s linear; 3210 | -moz-transition: background-position 0.1s linear; 3211 | -o-transition: background-position 0.1s linear; 3212 | transition: background-position 0.1s linear; 3213 | } 3214 | 3215 | .btn:focus { 3216 | outline: thin dotted #333; 3217 | outline: 5px auto -webkit-focus-ring-color; 3218 | outline-offset: -2px; 3219 | } 3220 | 3221 | .btn.active, 3222 | .btn:active { 3223 | background-image: none; 3224 | outline: 0; 3225 | -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); 3226 | -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); 3227 | box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); 3228 | } 3229 | 3230 | .btn.disabled, 3231 | .btn[disabled] { 3232 | cursor: default; 3233 | background-image: none; 3234 | opacity: 0.65; 3235 | filter: alpha(opacity=65); 3236 | -webkit-box-shadow: none; 3237 | -moz-box-shadow: none; 3238 | box-shadow: none; 3239 | } 3240 | 3241 | .btn-large { 3242 | padding: 11px 19px; 3243 | font-size: 17.5px; 3244 | -webkit-border-radius: 6px; 3245 | -moz-border-radius: 6px; 3246 | border-radius: 6px; 3247 | } 3248 | 3249 | .btn-large [class^="icon-"], 3250 | .btn-large [class*=" icon-"] { 3251 | margin-top: 4px; 3252 | } 3253 | 3254 | .btn-small { 3255 | padding: 2px 10px; 3256 | font-size: 11.9px; 3257 | -webkit-border-radius: 3px; 3258 | -moz-border-radius: 3px; 3259 | border-radius: 3px; 3260 | } 3261 | 3262 | .btn-small [class^="icon-"], 3263 | .btn-small [class*=" icon-"] { 3264 | margin-top: 0; 3265 | } 3266 | 3267 | .btn-mini [class^="icon-"], 3268 | .btn-mini [class*=" icon-"] { 3269 | margin-top: -1px; 3270 | } 3271 | 3272 | .btn-mini { 3273 | padding: 0 6px; 3274 | font-size: 10.5px; 3275 | -webkit-border-radius: 3px; 3276 | -moz-border-radius: 3px; 3277 | border-radius: 3px; 3278 | } 3279 | 3280 | .btn-block { 3281 | display: block; 3282 | width: 100%; 3283 | padding-right: 0; 3284 | padding-left: 0; 3285 | -webkit-box-sizing: border-box; 3286 | -moz-box-sizing: border-box; 3287 | box-sizing: border-box; 3288 | } 3289 | 3290 | .btn-block + .btn-block { 3291 | margin-top: 5px; 3292 | } 3293 | 3294 | input[type="submit"].btn-block, 3295 | input[type="reset"].btn-block, 3296 | input[type="button"].btn-block { 3297 | width: 100%; 3298 | } 3299 | 3300 | .btn-primary.active, 3301 | .btn-warning.active, 3302 | .btn-danger.active, 3303 | .btn-success.active, 3304 | .btn-info.active, 3305 | .btn-inverse.active { 3306 | color: rgba(255, 255, 255, 0.75); 3307 | } 3308 | 3309 | .btn { 3310 | border-color: #c5c5c5; 3311 | border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); 3312 | } 3313 | 3314 | .btn-primary { 3315 | color: #ffffff; 3316 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 3317 | background-color: #006dcc; 3318 | *background-color: #0044cc; 3319 | background-image: -moz-linear-gradient(top, #0088cc, #0044cc); 3320 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); 3321 | background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); 3322 | background-image: -o-linear-gradient(top, #0088cc, #0044cc); 3323 | background-image: linear-gradient(to bottom, #0088cc, #0044cc); 3324 | background-repeat: repeat-x; 3325 | border-color: #0044cc #0044cc #002a80; 3326 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 3327 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); 3328 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 3329 | } 3330 | 3331 | .btn-primary:hover, 3332 | .btn-primary:active, 3333 | .btn-primary.active, 3334 | .btn-primary.disabled, 3335 | .btn-primary[disabled] { 3336 | color: #ffffff; 3337 | background-color: #0044cc; 3338 | *background-color: #003bb3; 3339 | } 3340 | 3341 | .btn-primary:active, 3342 | .btn-primary.active { 3343 | background-color: #003399 \9; 3344 | } 3345 | 3346 | .btn-warning { 3347 | color: #ffffff; 3348 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 3349 | background-color: #faa732; 3350 | *background-color: #f89406; 3351 | background-image: -moz-linear-gradient(top, #fbb450, #f89406); 3352 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); 3353 | background-image: -webkit-linear-gradient(top, #fbb450, #f89406); 3354 | background-image: -o-linear-gradient(top, #fbb450, #f89406); 3355 | background-image: linear-gradient(to bottom, #fbb450, #f89406); 3356 | background-repeat: repeat-x; 3357 | border-color: #f89406 #f89406 #ad6704; 3358 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 3359 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); 3360 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 3361 | } 3362 | 3363 | .btn-warning:hover, 3364 | .btn-warning:active, 3365 | .btn-warning.active, 3366 | .btn-warning.disabled, 3367 | .btn-warning[disabled] { 3368 | color: #ffffff; 3369 | background-color: #f89406; 3370 | *background-color: #df8505; 3371 | } 3372 | 3373 | .btn-warning:active, 3374 | .btn-warning.active { 3375 | background-color: #c67605 \9; 3376 | } 3377 | 3378 | .btn-danger { 3379 | color: #ffffff; 3380 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 3381 | background-color: #da4f49; 3382 | *background-color: #bd362f; 3383 | background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); 3384 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); 3385 | background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); 3386 | background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); 3387 | background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); 3388 | background-repeat: repeat-x; 3389 | border-color: #bd362f #bd362f #802420; 3390 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 3391 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); 3392 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 3393 | } 3394 | 3395 | .btn-danger:hover, 3396 | .btn-danger:active, 3397 | .btn-danger.active, 3398 | .btn-danger.disabled, 3399 | .btn-danger[disabled] { 3400 | color: #ffffff; 3401 | background-color: #bd362f; 3402 | *background-color: #a9302a; 3403 | } 3404 | 3405 | .btn-danger:active, 3406 | .btn-danger.active { 3407 | background-color: #942a25 \9; 3408 | } 3409 | 3410 | .btn-success { 3411 | color: #ffffff; 3412 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 3413 | background-color: #5bb75b; 3414 | *background-color: #51a351; 3415 | background-image: -moz-linear-gradient(top, #62c462, #51a351); 3416 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); 3417 | background-image: -webkit-linear-gradient(top, #62c462, #51a351); 3418 | background-image: -o-linear-gradient(top, #62c462, #51a351); 3419 | background-image: linear-gradient(to bottom, #62c462, #51a351); 3420 | background-repeat: repeat-x; 3421 | border-color: #51a351 #51a351 #387038; 3422 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 3423 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); 3424 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 3425 | } 3426 | 3427 | .btn-success:hover, 3428 | .btn-success:active, 3429 | .btn-success.active, 3430 | .btn-success.disabled, 3431 | .btn-success[disabled] { 3432 | color: #ffffff; 3433 | background-color: #51a351; 3434 | *background-color: #499249; 3435 | } 3436 | 3437 | .btn-success:active, 3438 | .btn-success.active { 3439 | background-color: #408140 \9; 3440 | } 3441 | 3442 | .btn-info { 3443 | color: #ffffff; 3444 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 3445 | background-color: #49afcd; 3446 | *background-color: #2f96b4; 3447 | background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); 3448 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); 3449 | background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); 3450 | background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); 3451 | background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); 3452 | background-repeat: repeat-x; 3453 | border-color: #2f96b4 #2f96b4 #1f6377; 3454 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 3455 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); 3456 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 3457 | } 3458 | 3459 | .btn-info:hover, 3460 | .btn-info:active, 3461 | .btn-info.active, 3462 | .btn-info.disabled, 3463 | .btn-info[disabled] { 3464 | color: #ffffff; 3465 | background-color: #2f96b4; 3466 | *background-color: #2a85a0; 3467 | } 3468 | 3469 | .btn-info:active, 3470 | .btn-info.active { 3471 | background-color: #24748c \9; 3472 | } 3473 | 3474 | .btn-inverse { 3475 | color: #ffffff; 3476 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 3477 | background-color: #363636; 3478 | *background-color: #222222; 3479 | background-image: -moz-linear-gradient(top, #444444, #222222); 3480 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); 3481 | background-image: -webkit-linear-gradient(top, #444444, #222222); 3482 | background-image: -o-linear-gradient(top, #444444, #222222); 3483 | background-image: linear-gradient(to bottom, #444444, #222222); 3484 | background-repeat: repeat-x; 3485 | border-color: #222222 #222222 #000000; 3486 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 3487 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); 3488 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 3489 | } 3490 | 3491 | .btn-inverse:hover, 3492 | .btn-inverse:active, 3493 | .btn-inverse.active, 3494 | .btn-inverse.disabled, 3495 | .btn-inverse[disabled] { 3496 | color: #ffffff; 3497 | background-color: #222222; 3498 | *background-color: #151515; 3499 | } 3500 | 3501 | .btn-inverse:active, 3502 | .btn-inverse.active { 3503 | background-color: #080808 \9; 3504 | } 3505 | 3506 | button.btn, 3507 | input[type="submit"].btn { 3508 | *padding-top: 3px; 3509 | *padding-bottom: 3px; 3510 | } 3511 | 3512 | button.btn::-moz-focus-inner, 3513 | input[type="submit"].btn::-moz-focus-inner { 3514 | padding: 0; 3515 | border: 0; 3516 | } 3517 | 3518 | button.btn.btn-large, 3519 | input[type="submit"].btn.btn-large { 3520 | *padding-top: 7px; 3521 | *padding-bottom: 7px; 3522 | } 3523 | 3524 | button.btn.btn-small, 3525 | input[type="submit"].btn.btn-small { 3526 | *padding-top: 3px; 3527 | *padding-bottom: 3px; 3528 | } 3529 | 3530 | button.btn.btn-mini, 3531 | input[type="submit"].btn.btn-mini { 3532 | *padding-top: 1px; 3533 | *padding-bottom: 1px; 3534 | } 3535 | 3536 | .btn-link, 3537 | .btn-link:active, 3538 | .btn-link[disabled] { 3539 | background-color: transparent; 3540 | background-image: none; 3541 | -webkit-box-shadow: none; 3542 | -moz-box-shadow: none; 3543 | box-shadow: none; 3544 | } 3545 | 3546 | .btn-link { 3547 | color: #0088cc; 3548 | cursor: pointer; 3549 | border-color: transparent; 3550 | -webkit-border-radius: 0; 3551 | -moz-border-radius: 0; 3552 | border-radius: 0; 3553 | } 3554 | 3555 | .btn-link:hover { 3556 | color: #005580; 3557 | text-decoration: underline; 3558 | background-color: transparent; 3559 | } 3560 | 3561 | .btn-link[disabled]:hover { 3562 | color: #333333; 3563 | text-decoration: none; 3564 | } 3565 | 3566 | .btn-group { 3567 | position: relative; 3568 | display: inline-block; 3569 | *display: inline; 3570 | *margin-left: .3em; 3571 | font-size: 0; 3572 | white-space: nowrap; 3573 | vertical-align: middle; 3574 | *zoom: 1; 3575 | } 3576 | 3577 | .btn-group:first-child { 3578 | *margin-left: 0; 3579 | } 3580 | 3581 | .btn-group + .btn-group { 3582 | margin-left: 5px; 3583 | } 3584 | 3585 | .btn-toolbar { 3586 | margin-top: 10px; 3587 | margin-bottom: 10px; 3588 | font-size: 0; 3589 | } 3590 | 3591 | .btn-toolbar > .btn + .btn, 3592 | .btn-toolbar > .btn-group + .btn, 3593 | .btn-toolbar > .btn + .btn-group { 3594 | margin-left: 5px; 3595 | } 3596 | 3597 | .btn-group > .btn { 3598 | position: relative; 3599 | -webkit-border-radius: 0; 3600 | -moz-border-radius: 0; 3601 | border-radius: 0; 3602 | } 3603 | 3604 | .btn-group > .btn + .btn { 3605 | margin-left: -1px; 3606 | } 3607 | 3608 | .btn-group > .btn, 3609 | .btn-group > .dropdown-menu, 3610 | .btn-group > .popover { 3611 | font-size: 14px; 3612 | } 3613 | 3614 | .btn-group > .btn-mini { 3615 | font-size: 10.5px; 3616 | } 3617 | 3618 | .btn-group > .btn-small { 3619 | font-size: 11.9px; 3620 | } 3621 | 3622 | .btn-group > .btn-large { 3623 | font-size: 17.5px; 3624 | } 3625 | 3626 | .btn-group > .btn:first-child { 3627 | margin-left: 0; 3628 | -webkit-border-bottom-left-radius: 4px; 3629 | border-bottom-left-radius: 4px; 3630 | -webkit-border-top-left-radius: 4px; 3631 | border-top-left-radius: 4px; 3632 | -moz-border-radius-bottomleft: 4px; 3633 | -moz-border-radius-topleft: 4px; 3634 | } 3635 | 3636 | .btn-group > .btn:last-child, 3637 | .btn-group > .dropdown-toggle { 3638 | -webkit-border-top-right-radius: 4px; 3639 | border-top-right-radius: 4px; 3640 | -webkit-border-bottom-right-radius: 4px; 3641 | border-bottom-right-radius: 4px; 3642 | -moz-border-radius-topright: 4px; 3643 | -moz-border-radius-bottomright: 4px; 3644 | } 3645 | 3646 | .btn-group > .btn.large:first-child { 3647 | margin-left: 0; 3648 | -webkit-border-bottom-left-radius: 6px; 3649 | border-bottom-left-radius: 6px; 3650 | -webkit-border-top-left-radius: 6px; 3651 | border-top-left-radius: 6px; 3652 | -moz-border-radius-bottomleft: 6px; 3653 | -moz-border-radius-topleft: 6px; 3654 | } 3655 | 3656 | .btn-group > .btn.large:last-child, 3657 | .btn-group > .large.dropdown-toggle { 3658 | -webkit-border-top-right-radius: 6px; 3659 | border-top-right-radius: 6px; 3660 | -webkit-border-bottom-right-radius: 6px; 3661 | border-bottom-right-radius: 6px; 3662 | -moz-border-radius-topright: 6px; 3663 | -moz-border-radius-bottomright: 6px; 3664 | } 3665 | 3666 | .btn-group > .btn:hover, 3667 | .btn-group > .btn:focus, 3668 | .btn-group > .btn:active, 3669 | .btn-group > .btn.active { 3670 | z-index: 2; 3671 | } 3672 | 3673 | .btn-group .dropdown-toggle:active, 3674 | .btn-group.open .dropdown-toggle { 3675 | outline: 0; 3676 | } 3677 | 3678 | .btn-group > .btn + .dropdown-toggle { 3679 | *padding-top: 5px; 3680 | padding-right: 8px; 3681 | *padding-bottom: 5px; 3682 | padding-left: 8px; 3683 | -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); 3684 | -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); 3685 | box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); 3686 | } 3687 | 3688 | .btn-group > .btn-mini + .dropdown-toggle { 3689 | *padding-top: 2px; 3690 | padding-right: 5px; 3691 | *padding-bottom: 2px; 3692 | padding-left: 5px; 3693 | } 3694 | 3695 | .btn-group > .btn-small + .dropdown-toggle { 3696 | *padding-top: 5px; 3697 | *padding-bottom: 4px; 3698 | } 3699 | 3700 | .btn-group > .btn-large + .dropdown-toggle { 3701 | *padding-top: 7px; 3702 | padding-right: 12px; 3703 | *padding-bottom: 7px; 3704 | padding-left: 12px; 3705 | } 3706 | 3707 | .btn-group.open .dropdown-toggle { 3708 | background-image: none; 3709 | -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); 3710 | -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); 3711 | box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); 3712 | } 3713 | 3714 | .btn-group.open .btn.dropdown-toggle { 3715 | background-color: #e6e6e6; 3716 | } 3717 | 3718 | .btn-group.open .btn-primary.dropdown-toggle { 3719 | background-color: #0044cc; 3720 | } 3721 | 3722 | .btn-group.open .btn-warning.dropdown-toggle { 3723 | background-color: #f89406; 3724 | } 3725 | 3726 | .btn-group.open .btn-danger.dropdown-toggle { 3727 | background-color: #bd362f; 3728 | } 3729 | 3730 | .btn-group.open .btn-success.dropdown-toggle { 3731 | background-color: #51a351; 3732 | } 3733 | 3734 | .btn-group.open .btn-info.dropdown-toggle { 3735 | background-color: #2f96b4; 3736 | } 3737 | 3738 | .btn-group.open .btn-inverse.dropdown-toggle { 3739 | background-color: #222222; 3740 | } 3741 | 3742 | .btn .caret { 3743 | margin-top: 8px; 3744 | margin-left: 0; 3745 | } 3746 | 3747 | .btn-mini .caret, 3748 | .btn-small .caret, 3749 | .btn-large .caret { 3750 | margin-top: 6px; 3751 | } 3752 | 3753 | .btn-large .caret { 3754 | border-top-width: 5px; 3755 | border-right-width: 5px; 3756 | border-left-width: 5px; 3757 | } 3758 | 3759 | .dropup .btn-large .caret { 3760 | border-bottom-width: 5px; 3761 | } 3762 | 3763 | .btn-primary .caret, 3764 | .btn-warning .caret, 3765 | .btn-danger .caret, 3766 | .btn-info .caret, 3767 | .btn-success .caret, 3768 | .btn-inverse .caret { 3769 | border-top-color: #ffffff; 3770 | border-bottom-color: #ffffff; 3771 | } 3772 | 3773 | .btn-group-vertical { 3774 | display: inline-block; 3775 | *display: inline; 3776 | /* IE7 inline-block hack */ 3777 | 3778 | *zoom: 1; 3779 | } 3780 | 3781 | .btn-group-vertical > .btn { 3782 | display: block; 3783 | float: none; 3784 | max-width: 100%; 3785 | -webkit-border-radius: 0; 3786 | -moz-border-radius: 0; 3787 | border-radius: 0; 3788 | } 3789 | 3790 | .btn-group-vertical > .btn + .btn { 3791 | margin-top: -1px; 3792 | margin-left: 0; 3793 | } 3794 | 3795 | .btn-group-vertical > .btn:first-child { 3796 | -webkit-border-radius: 4px 4px 0 0; 3797 | -moz-border-radius: 4px 4px 0 0; 3798 | border-radius: 4px 4px 0 0; 3799 | } 3800 | 3801 | .btn-group-vertical > .btn:last-child { 3802 | -webkit-border-radius: 0 0 4px 4px; 3803 | -moz-border-radius: 0 0 4px 4px; 3804 | border-radius: 0 0 4px 4px; 3805 | } 3806 | 3807 | .btn-group-vertical > .btn-large:first-child { 3808 | -webkit-border-radius: 6px 6px 0 0; 3809 | -moz-border-radius: 6px 6px 0 0; 3810 | border-radius: 6px 6px 0 0; 3811 | } 3812 | 3813 | .btn-group-vertical > .btn-large:last-child { 3814 | -webkit-border-radius: 0 0 6px 6px; 3815 | -moz-border-radius: 0 0 6px 6px; 3816 | border-radius: 0 0 6px 6px; 3817 | } 3818 | 3819 | .alert { 3820 | padding: 8px 35px 8px 14px; 3821 | margin-bottom: 20px; 3822 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); 3823 | background-color: #fcf8e3; 3824 | border: 1px solid #fbeed5; 3825 | -webkit-border-radius: 4px; 3826 | -moz-border-radius: 4px; 3827 | border-radius: 4px; 3828 | } 3829 | 3830 | .alert, 3831 | .alert h4 { 3832 | color: #c09853; 3833 | } 3834 | 3835 | .alert h4 { 3836 | margin: 0; 3837 | } 3838 | 3839 | .alert .close { 3840 | position: relative; 3841 | top: -2px; 3842 | right: -21px; 3843 | line-height: 20px; 3844 | } 3845 | 3846 | .alert-success { 3847 | color: #468847; 3848 | background-color: #dff0d8; 3849 | border-color: #d6e9c6; 3850 | } 3851 | 3852 | .alert-success h4 { 3853 | color: #468847; 3854 | } 3855 | 3856 | .alert-danger, 3857 | .alert-error { 3858 | color: #b94a48; 3859 | background-color: #f2dede; 3860 | border-color: #eed3d7; 3861 | } 3862 | 3863 | .alert-danger h4, 3864 | .alert-error h4 { 3865 | color: #b94a48; 3866 | } 3867 | 3868 | .alert-info { 3869 | color: #3a87ad; 3870 | background-color: #d9edf7; 3871 | border-color: #bce8f1; 3872 | } 3873 | 3874 | .alert-info h4 { 3875 | color: #3a87ad; 3876 | } 3877 | 3878 | .alert-block { 3879 | padding-top: 14px; 3880 | padding-bottom: 14px; 3881 | } 3882 | 3883 | .alert-block > p, 3884 | .alert-block > ul { 3885 | margin-bottom: 0; 3886 | } 3887 | 3888 | .alert-block p + p { 3889 | margin-top: 5px; 3890 | } 3891 | 3892 | .nav { 3893 | margin-bottom: 20px; 3894 | margin-left: 0; 3895 | list-style: none; 3896 | } 3897 | 3898 | .nav > li > a { 3899 | display: block; 3900 | } 3901 | 3902 | .nav > li > a:hover { 3903 | text-decoration: none; 3904 | background-color: #eeeeee; 3905 | } 3906 | 3907 | .nav > li > a > img { 3908 | max-width: none; 3909 | } 3910 | 3911 | .nav > .pull-right { 3912 | float: right; 3913 | } 3914 | 3915 | .nav-header { 3916 | display: block; 3917 | padding: 3px 15px; 3918 | font-size: 11px; 3919 | font-weight: bold; 3920 | line-height: 20px; 3921 | color: #999999; 3922 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); 3923 | text-transform: uppercase; 3924 | } 3925 | 3926 | .nav li + .nav-header { 3927 | margin-top: 9px; 3928 | } 3929 | 3930 | .nav-list { 3931 | padding-right: 15px; 3932 | padding-left: 15px; 3933 | margin-bottom: 0; 3934 | } 3935 | 3936 | .nav-list > li > a, 3937 | .nav-list .nav-header { 3938 | margin-right: -15px; 3939 | margin-left: -15px; 3940 | text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); 3941 | } 3942 | 3943 | .nav-list > li > a { 3944 | padding: 3px 15px; 3945 | } 3946 | 3947 | .nav-list > .active > a, 3948 | .nav-list > .active > a:hover { 3949 | color: #ffffff; 3950 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); 3951 | background-color: #0088cc; 3952 | } 3953 | 3954 | .nav-list [class^="icon-"], 3955 | .nav-list [class*=" icon-"] { 3956 | margin-right: 2px; 3957 | } 3958 | 3959 | .nav-list .divider { 3960 | *width: 100%; 3961 | height: 1px; 3962 | margin: 9px 1px; 3963 | *margin: -5px 0 5px; 3964 | overflow: hidden; 3965 | background-color: #e5e5e5; 3966 | border-bottom: 1px solid #ffffff; 3967 | } 3968 | 3969 | .nav-tabs, 3970 | .nav-pills { 3971 | *zoom: 1; 3972 | } 3973 | 3974 | .nav-tabs:before, 3975 | .nav-pills:before, 3976 | .nav-tabs:after, 3977 | .nav-pills:after { 3978 | display: table; 3979 | line-height: 0; 3980 | content: ""; 3981 | } 3982 | 3983 | .nav-tabs:after, 3984 | .nav-pills:after { 3985 | clear: both; 3986 | } 3987 | 3988 | .nav-tabs > li, 3989 | .nav-pills > li { 3990 | float: left; 3991 | } 3992 | 3993 | .nav-tabs > li > a, 3994 | .nav-pills > li > a { 3995 | padding-right: 12px; 3996 | padding-left: 12px; 3997 | margin-right: 2px; 3998 | line-height: 14px; 3999 | } 4000 | 4001 | .nav-tabs { 4002 | border-bottom: 1px solid #ddd; 4003 | } 4004 | 4005 | .nav-tabs > li { 4006 | margin-bottom: -1px; 4007 | } 4008 | 4009 | .nav-tabs > li > a { 4010 | padding-top: 8px; 4011 | padding-bottom: 8px; 4012 | line-height: 20px; 4013 | border: 1px solid transparent; 4014 | -webkit-border-radius: 4px 4px 0 0; 4015 | -moz-border-radius: 4px 4px 0 0; 4016 | border-radius: 4px 4px 0 0; 4017 | } 4018 | 4019 | .nav-tabs > li > a:hover { 4020 | border-color: #eeeeee #eeeeee #dddddd; 4021 | } 4022 | 4023 | .nav-tabs > .active > a, 4024 | .nav-tabs > .active > a:hover { 4025 | color: #555555; 4026 | cursor: default; 4027 | background-color: #ffffff; 4028 | border: 1px solid #ddd; 4029 | border-bottom-color: transparent; 4030 | } 4031 | 4032 | .nav-pills > li > a { 4033 | padding-top: 8px; 4034 | padding-bottom: 8px; 4035 | margin-top: 2px; 4036 | margin-bottom: 2px; 4037 | -webkit-border-radius: 5px; 4038 | -moz-border-radius: 5px; 4039 | border-radius: 5px; 4040 | } 4041 | 4042 | .nav-pills > .active > a, 4043 | .nav-pills > .active > a:hover { 4044 | color: #ffffff; 4045 | background-color: #0088cc; 4046 | } 4047 | 4048 | .nav-stacked > li { 4049 | float: none; 4050 | } 4051 | 4052 | .nav-stacked > li > a { 4053 | margin-right: 0; 4054 | } 4055 | 4056 | .nav-tabs.nav-stacked { 4057 | border-bottom: 0; 4058 | } 4059 | 4060 | .nav-tabs.nav-stacked > li > a { 4061 | border: 1px solid #ddd; 4062 | -webkit-border-radius: 0; 4063 | -moz-border-radius: 0; 4064 | border-radius: 0; 4065 | } 4066 | 4067 | .nav-tabs.nav-stacked > li:first-child > a { 4068 | -webkit-border-top-right-radius: 4px; 4069 | border-top-right-radius: 4px; 4070 | -webkit-border-top-left-radius: 4px; 4071 | border-top-left-radius: 4px; 4072 | -moz-border-radius-topright: 4px; 4073 | -moz-border-radius-topleft: 4px; 4074 | } 4075 | 4076 | .nav-tabs.nav-stacked > li:last-child > a { 4077 | -webkit-border-bottom-right-radius: 4px; 4078 | border-bottom-right-radius: 4px; 4079 | -webkit-border-bottom-left-radius: 4px; 4080 | border-bottom-left-radius: 4px; 4081 | -moz-border-radius-bottomright: 4px; 4082 | -moz-border-radius-bottomleft: 4px; 4083 | } 4084 | 4085 | .nav-tabs.nav-stacked > li > a:hover { 4086 | z-index: 2; 4087 | border-color: #ddd; 4088 | } 4089 | 4090 | .nav-pills.nav-stacked > li > a { 4091 | margin-bottom: 3px; 4092 | } 4093 | 4094 | .nav-pills.nav-stacked > li:last-child > a { 4095 | margin-bottom: 1px; 4096 | } 4097 | 4098 | .nav-tabs .dropdown-menu { 4099 | -webkit-border-radius: 0 0 6px 6px; 4100 | -moz-border-radius: 0 0 6px 6px; 4101 | border-radius: 0 0 6px 6px; 4102 | } 4103 | 4104 | .nav-pills .dropdown-menu { 4105 | -webkit-border-radius: 6px; 4106 | -moz-border-radius: 6px; 4107 | border-radius: 6px; 4108 | } 4109 | 4110 | .nav .dropdown-toggle .caret { 4111 | margin-top: 6px; 4112 | border-top-color: #0088cc; 4113 | border-bottom-color: #0088cc; 4114 | } 4115 | 4116 | .nav .dropdown-toggle:hover .caret { 4117 | border-top-color: #005580; 4118 | border-bottom-color: #005580; 4119 | } 4120 | 4121 | /* move down carets for tabs */ 4122 | 4123 | .nav-tabs .dropdown-toggle .caret { 4124 | margin-top: 8px; 4125 | } 4126 | 4127 | .nav .active .dropdown-toggle .caret { 4128 | border-top-color: #fff; 4129 | border-bottom-color: #fff; 4130 | } 4131 | 4132 | .nav-tabs .active .dropdown-toggle .caret { 4133 | border-top-color: #555555; 4134 | border-bottom-color: #555555; 4135 | } 4136 | 4137 | .nav > .dropdown.active > a:hover { 4138 | cursor: pointer; 4139 | } 4140 | 4141 | .nav-tabs .open .dropdown-toggle, 4142 | .nav-pills .open .dropdown-toggle, 4143 | .nav > li.dropdown.open.active > a:hover { 4144 | color: #ffffff; 4145 | background-color: #999999; 4146 | border-color: #999999; 4147 | } 4148 | 4149 | .nav li.dropdown.open .caret, 4150 | .nav li.dropdown.open.active .caret, 4151 | .nav li.dropdown.open a:hover .caret { 4152 | border-top-color: #ffffff; 4153 | border-bottom-color: #ffffff; 4154 | opacity: 1; 4155 | filter: alpha(opacity=100); 4156 | } 4157 | 4158 | .tabs-stacked .open > a:hover { 4159 | border-color: #999999; 4160 | } 4161 | 4162 | .tabbable { 4163 | *zoom: 1; 4164 | } 4165 | 4166 | .tabbable:before, 4167 | .tabbable:after { 4168 | display: table; 4169 | line-height: 0; 4170 | content: ""; 4171 | } 4172 | 4173 | .tabbable:after { 4174 | clear: both; 4175 | } 4176 | 4177 | .tab-content { 4178 | overflow: auto; 4179 | } 4180 | 4181 | .tabs-below > .nav-tabs, 4182 | .tabs-right > .nav-tabs, 4183 | .tabs-left > .nav-tabs { 4184 | border-bottom: 0; 4185 | } 4186 | 4187 | .tab-content > .tab-pane, 4188 | .pill-content > .pill-pane { 4189 | display: none; 4190 | } 4191 | 4192 | .tab-content > .active, 4193 | .pill-content > .active { 4194 | display: block; 4195 | } 4196 | 4197 | .tabs-below > .nav-tabs { 4198 | border-top: 1px solid #ddd; 4199 | } 4200 | 4201 | .tabs-below > .nav-tabs > li { 4202 | margin-top: -1px; 4203 | margin-bottom: 0; 4204 | } 4205 | 4206 | .tabs-below > .nav-tabs > li > a { 4207 | -webkit-border-radius: 0 0 4px 4px; 4208 | -moz-border-radius: 0 0 4px 4px; 4209 | border-radius: 0 0 4px 4px; 4210 | } 4211 | 4212 | .tabs-below > .nav-tabs > li > a:hover { 4213 | border-top-color: #ddd; 4214 | border-bottom-color: transparent; 4215 | } 4216 | 4217 | .tabs-below > .nav-tabs > .active > a, 4218 | .tabs-below > .nav-tabs > .active > a:hover { 4219 | border-color: transparent #ddd #ddd #ddd; 4220 | } 4221 | 4222 | .tabs-left > .nav-tabs > li, 4223 | .tabs-right > .nav-tabs > li { 4224 | float: none; 4225 | } 4226 | 4227 | .tabs-left > .nav-tabs > li > a, 4228 | .tabs-right > .nav-tabs > li > a { 4229 | min-width: 74px; 4230 | margin-right: 0; 4231 | margin-bottom: 3px; 4232 | } 4233 | 4234 | .tabs-left > .nav-tabs { 4235 | float: left; 4236 | margin-right: 19px; 4237 | border-right: 1px solid #ddd; 4238 | } 4239 | 4240 | .tabs-left > .nav-tabs > li > a { 4241 | margin-right: -1px; 4242 | -webkit-border-radius: 4px 0 0 4px; 4243 | -moz-border-radius: 4px 0 0 4px; 4244 | border-radius: 4px 0 0 4px; 4245 | } 4246 | 4247 | .tabs-left > .nav-tabs > li > a:hover { 4248 | border-color: #eeeeee #dddddd #eeeeee #eeeeee; 4249 | } 4250 | 4251 | .tabs-left > .nav-tabs .active > a, 4252 | .tabs-left > .nav-tabs .active > a:hover { 4253 | border-color: #ddd transparent #ddd #ddd; 4254 | *border-right-color: #ffffff; 4255 | } 4256 | 4257 | .tabs-right > .nav-tabs { 4258 | float: right; 4259 | margin-left: 19px; 4260 | border-left: 1px solid #ddd; 4261 | } 4262 | 4263 | .tabs-right > .nav-tabs > li > a { 4264 | margin-left: -1px; 4265 | -webkit-border-radius: 0 4px 4px 0; 4266 | -moz-border-radius: 0 4px 4px 0; 4267 | border-radius: 0 4px 4px 0; 4268 | } 4269 | 4270 | .tabs-right > .nav-tabs > li > a:hover { 4271 | border-color: #eeeeee #eeeeee #eeeeee #dddddd; 4272 | } 4273 | 4274 | .tabs-right > .nav-tabs .active > a, 4275 | .tabs-right > .nav-tabs .active > a:hover { 4276 | border-color: #ddd #ddd #ddd transparent; 4277 | *border-left-color: #ffffff; 4278 | } 4279 | 4280 | .nav > .disabled > a { 4281 | color: #999999; 4282 | } 4283 | 4284 | .nav > .disabled > a:hover { 4285 | text-decoration: none; 4286 | cursor: default; 4287 | background-color: transparent; 4288 | } 4289 | 4290 | .navbar { 4291 | *position: relative; 4292 | *z-index: 2; 4293 | margin-bottom: 20px; 4294 | overflow: visible; 4295 | } 4296 | 4297 | .navbar-inner { 4298 | min-height: 40px; 4299 | padding-right: 20px; 4300 | padding-left: 20px; 4301 | background-color: #fafafa; 4302 | background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); 4303 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); 4304 | background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); 4305 | background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); 4306 | background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); 4307 | background-repeat: repeat-x; 4308 | border: 1px solid #d4d4d4; 4309 | -webkit-border-radius: 4px; 4310 | -moz-border-radius: 4px; 4311 | border-radius: 4px; 4312 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); 4313 | *zoom: 1; 4314 | -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); 4315 | -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); 4316 | box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); 4317 | } 4318 | 4319 | .navbar-inner:before, 4320 | .navbar-inner:after { 4321 | display: table; 4322 | line-height: 0; 4323 | content: ""; 4324 | } 4325 | 4326 | .navbar-inner:after { 4327 | clear: both; 4328 | } 4329 | 4330 | .navbar .container { 4331 | width: auto; 4332 | } 4333 | 4334 | .nav-collapse.collapse { 4335 | height: auto; 4336 | overflow: visible; 4337 | } 4338 | 4339 | .navbar .brand { 4340 | display: block; 4341 | float: left; 4342 | padding: 10px 20px 10px; 4343 | margin-left: -20px; 4344 | font-size: 20px; 4345 | font-weight: 200; 4346 | color: #777777; 4347 | text-shadow: 0 1px 0 #ffffff; 4348 | } 4349 | 4350 | .navbar .brand:hover { 4351 | text-decoration: none; 4352 | } 4353 | 4354 | .navbar-text { 4355 | margin-bottom: 0; 4356 | line-height: 40px; 4357 | color: #777777; 4358 | } 4359 | 4360 | .navbar-link { 4361 | color: #777777; 4362 | } 4363 | 4364 | .navbar-link:hover { 4365 | color: #333333; 4366 | } 4367 | 4368 | .navbar .divider-vertical { 4369 | height: 40px; 4370 | margin: 0 9px; 4371 | border-right: 1px solid #ffffff; 4372 | border-left: 1px solid #f2f2f2; 4373 | } 4374 | 4375 | .navbar .btn, 4376 | .navbar .btn-group { 4377 | margin-top: 5px; 4378 | } 4379 | 4380 | .navbar .btn-group .btn, 4381 | .navbar .input-prepend .btn, 4382 | .navbar .input-append .btn { 4383 | margin-top: 0; 4384 | } 4385 | 4386 | .navbar-form { 4387 | margin-bottom: 0; 4388 | *zoom: 1; 4389 | } 4390 | 4391 | .navbar-form:before, 4392 | .navbar-form:after { 4393 | display: table; 4394 | line-height: 0; 4395 | content: ""; 4396 | } 4397 | 4398 | .navbar-form:after { 4399 | clear: both; 4400 | } 4401 | 4402 | .navbar-form input, 4403 | .navbar-form select, 4404 | .navbar-form .radio, 4405 | .navbar-form .checkbox { 4406 | margin-top: 5px; 4407 | } 4408 | 4409 | .navbar-form input, 4410 | .navbar-form select, 4411 | .navbar-form .btn { 4412 | display: inline-block; 4413 | margin-bottom: 0; 4414 | } 4415 | 4416 | .navbar-form input[type="image"], 4417 | .navbar-form input[type="checkbox"], 4418 | .navbar-form input[type="radio"] { 4419 | margin-top: 3px; 4420 | } 4421 | 4422 | .navbar-form .input-append, 4423 | .navbar-form .input-prepend { 4424 | margin-top: 5px; 4425 | white-space: nowrap; 4426 | } 4427 | 4428 | .navbar-form .input-append input, 4429 | .navbar-form .input-prepend input { 4430 | margin-top: 0; 4431 | } 4432 | 4433 | .navbar-search { 4434 | position: relative; 4435 | float: left; 4436 | margin-top: 5px; 4437 | margin-bottom: 0; 4438 | } 4439 | 4440 | .navbar-search .search-query { 4441 | padding: 4px 14px; 4442 | margin-bottom: 0; 4443 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 4444 | font-size: 13px; 4445 | font-weight: normal; 4446 | line-height: 1; 4447 | -webkit-border-radius: 15px; 4448 | -moz-border-radius: 15px; 4449 | border-radius: 15px; 4450 | } 4451 | 4452 | .navbar-static-top { 4453 | position: static; 4454 | margin-bottom: 0; 4455 | } 4456 | 4457 | .navbar-static-top .navbar-inner { 4458 | -webkit-border-radius: 0; 4459 | -moz-border-radius: 0; 4460 | border-radius: 0; 4461 | } 4462 | 4463 | .navbar-fixed-top, 4464 | .navbar-fixed-bottom { 4465 | position: fixed; 4466 | right: 0; 4467 | left: 0; 4468 | z-index: 1030; 4469 | margin-bottom: 0; 4470 | } 4471 | 4472 | .navbar-fixed-top .navbar-inner, 4473 | .navbar-static-top .navbar-inner { 4474 | border-width: 0 0 1px; 4475 | } 4476 | 4477 | .navbar-fixed-bottom .navbar-inner { 4478 | border-width: 1px 0 0; 4479 | } 4480 | 4481 | .navbar-fixed-top .navbar-inner, 4482 | .navbar-fixed-bottom .navbar-inner { 4483 | padding-right: 0; 4484 | padding-left: 0; 4485 | -webkit-border-radius: 0; 4486 | -moz-border-radius: 0; 4487 | border-radius: 0; 4488 | } 4489 | 4490 | .navbar-static-top .container, 4491 | .navbar-fixed-top .container, 4492 | .navbar-fixed-bottom .container { 4493 | width: 940px; 4494 | } 4495 | 4496 | .navbar-fixed-top { 4497 | top: 0; 4498 | } 4499 | 4500 | .navbar-fixed-top .navbar-inner, 4501 | .navbar-static-top .navbar-inner { 4502 | -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); 4503 | -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); 4504 | box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); 4505 | } 4506 | 4507 | .navbar-fixed-bottom { 4508 | bottom: 0; 4509 | } 4510 | 4511 | .navbar-fixed-bottom .navbar-inner { 4512 | -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); 4513 | -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); 4514 | box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); 4515 | } 4516 | 4517 | .navbar .nav { 4518 | position: relative; 4519 | left: 0; 4520 | display: block; 4521 | float: left; 4522 | margin: 0 10px 0 0; 4523 | } 4524 | 4525 | .navbar .nav.pull-right { 4526 | float: right; 4527 | margin-right: 0; 4528 | } 4529 | 4530 | .navbar .nav > li { 4531 | float: left; 4532 | } 4533 | 4534 | .navbar .nav > li > a { 4535 | float: none; 4536 | padding: 10px 15px 10px; 4537 | color: #777777; 4538 | text-decoration: none; 4539 | text-shadow: 0 1px 0 #ffffff; 4540 | } 4541 | 4542 | .navbar .nav .dropdown-toggle .caret { 4543 | margin-top: 8px; 4544 | } 4545 | 4546 | .navbar .nav > li > a:focus, 4547 | .navbar .nav > li > a:hover { 4548 | color: #333333; 4549 | text-decoration: none; 4550 | background-color: transparent; 4551 | } 4552 | 4553 | .navbar .nav > .active > a, 4554 | .navbar .nav > .active > a:hover, 4555 | .navbar .nav > .active > a:focus { 4556 | color: #555555; 4557 | text-decoration: none; 4558 | background-color: #e5e5e5; 4559 | -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); 4560 | -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); 4561 | box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); 4562 | } 4563 | 4564 | .navbar .btn-navbar { 4565 | display: none; 4566 | float: right; 4567 | padding: 7px 10px; 4568 | margin-right: 5px; 4569 | margin-left: 5px; 4570 | color: #ffffff; 4571 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 4572 | background-color: #ededed; 4573 | *background-color: #e5e5e5; 4574 | background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); 4575 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); 4576 | background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); 4577 | background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); 4578 | background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); 4579 | background-repeat: repeat-x; 4580 | border-color: #e5e5e5 #e5e5e5 #bfbfbf; 4581 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 4582 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); 4583 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 4584 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); 4585 | -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); 4586 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); 4587 | } 4588 | 4589 | .navbar .btn-navbar:hover, 4590 | .navbar .btn-navbar:active, 4591 | .navbar .btn-navbar.active, 4592 | .navbar .btn-navbar.disabled, 4593 | .navbar .btn-navbar[disabled] { 4594 | color: #ffffff; 4595 | background-color: #e5e5e5; 4596 | *background-color: #d9d9d9; 4597 | } 4598 | 4599 | .navbar .btn-navbar:active, 4600 | .navbar .btn-navbar.active { 4601 | background-color: #cccccc \9; 4602 | } 4603 | 4604 | .navbar .btn-navbar .icon-bar { 4605 | display: block; 4606 | width: 18px; 4607 | height: 2px; 4608 | background-color: #f5f5f5; 4609 | -webkit-border-radius: 1px; 4610 | -moz-border-radius: 1px; 4611 | border-radius: 1px; 4612 | -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); 4613 | -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); 4614 | box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); 4615 | } 4616 | 4617 | .btn-navbar .icon-bar + .icon-bar { 4618 | margin-top: 3px; 4619 | } 4620 | 4621 | .navbar .nav > li > .dropdown-menu:before { 4622 | position: absolute; 4623 | top: -7px; 4624 | left: 9px; 4625 | display: inline-block; 4626 | border-right: 7px solid transparent; 4627 | border-bottom: 7px solid #ccc; 4628 | border-left: 7px solid transparent; 4629 | border-bottom-color: rgba(0, 0, 0, 0.2); 4630 | content: ''; 4631 | } 4632 | 4633 | .navbar .nav > li > .dropdown-menu:after { 4634 | position: absolute; 4635 | top: -6px; 4636 | left: 10px; 4637 | display: inline-block; 4638 | border-right: 6px solid transparent; 4639 | border-bottom: 6px solid #ffffff; 4640 | border-left: 6px solid transparent; 4641 | content: ''; 4642 | } 4643 | 4644 | .navbar-fixed-bottom .nav > li > .dropdown-menu:before { 4645 | top: auto; 4646 | bottom: -7px; 4647 | border-top: 7px solid #ccc; 4648 | border-bottom: 0; 4649 | border-top-color: rgba(0, 0, 0, 0.2); 4650 | } 4651 | 4652 | .navbar-fixed-bottom .nav > li > .dropdown-menu:after { 4653 | top: auto; 4654 | bottom: -6px; 4655 | border-top: 6px solid #ffffff; 4656 | border-bottom: 0; 4657 | } 4658 | 4659 | .navbar .nav li.dropdown > a:hover .caret { 4660 | border-top-color: #555555; 4661 | border-bottom-color: #555555; 4662 | } 4663 | 4664 | .navbar .nav li.dropdown.open > .dropdown-toggle, 4665 | .navbar .nav li.dropdown.active > .dropdown-toggle, 4666 | .navbar .nav li.dropdown.open.active > .dropdown-toggle { 4667 | color: #555555; 4668 | background-color: #e5e5e5; 4669 | } 4670 | 4671 | .navbar .nav li.dropdown > .dropdown-toggle .caret { 4672 | border-top-color: #777777; 4673 | border-bottom-color: #777777; 4674 | } 4675 | 4676 | .navbar .nav li.dropdown.open > .dropdown-toggle .caret, 4677 | .navbar .nav li.dropdown.active > .dropdown-toggle .caret, 4678 | .navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { 4679 | border-top-color: #555555; 4680 | border-bottom-color: #555555; 4681 | } 4682 | 4683 | .navbar .pull-right > li > .dropdown-menu, 4684 | .navbar .nav > li > .dropdown-menu.pull-right { 4685 | right: 0; 4686 | left: auto; 4687 | } 4688 | 4689 | .navbar .pull-right > li > .dropdown-menu:before, 4690 | .navbar .nav > li > .dropdown-menu.pull-right:before { 4691 | right: 12px; 4692 | left: auto; 4693 | } 4694 | 4695 | .navbar .pull-right > li > .dropdown-menu:after, 4696 | .navbar .nav > li > .dropdown-menu.pull-right:after { 4697 | right: 13px; 4698 | left: auto; 4699 | } 4700 | 4701 | .navbar .pull-right > li > .dropdown-menu .dropdown-menu, 4702 | .navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { 4703 | right: 100%; 4704 | left: auto; 4705 | margin-right: -1px; 4706 | margin-left: 0; 4707 | -webkit-border-radius: 6px 0 6px 6px; 4708 | -moz-border-radius: 6px 0 6px 6px; 4709 | border-radius: 6px 0 6px 6px; 4710 | } 4711 | 4712 | .navbar-inverse .navbar-inner { 4713 | background-color: #1b1b1b; 4714 | background-image: -moz-linear-gradient(top, #222222, #111111); 4715 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); 4716 | background-image: -webkit-linear-gradient(top, #222222, #111111); 4717 | background-image: -o-linear-gradient(top, #222222, #111111); 4718 | background-image: linear-gradient(to bottom, #222222, #111111); 4719 | background-repeat: repeat-x; 4720 | border-color: #252525; 4721 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); 4722 | } 4723 | 4724 | .navbar-inverse .brand, 4725 | .navbar-inverse .nav > li > a { 4726 | color: #999999; 4727 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 4728 | } 4729 | 4730 | .navbar-inverse .brand:hover, 4731 | .navbar-inverse .nav > li > a:hover { 4732 | color: #ffffff; 4733 | } 4734 | 4735 | .navbar-inverse .brand { 4736 | color: #999999; 4737 | } 4738 | 4739 | .navbar-inverse .navbar-text { 4740 | color: #999999; 4741 | } 4742 | 4743 | .navbar-inverse .nav > li > a:focus, 4744 | .navbar-inverse .nav > li > a:hover { 4745 | color: #ffffff; 4746 | background-color: transparent; 4747 | } 4748 | 4749 | .navbar-inverse .nav .active > a, 4750 | .navbar-inverse .nav .active > a:hover, 4751 | .navbar-inverse .nav .active > a:focus { 4752 | color: #ffffff; 4753 | background-color: #111111; 4754 | } 4755 | 4756 | .navbar-inverse .navbar-link { 4757 | color: #999999; 4758 | } 4759 | 4760 | .navbar-inverse .navbar-link:hover { 4761 | color: #ffffff; 4762 | } 4763 | 4764 | .navbar-inverse .divider-vertical { 4765 | border-right-color: #222222; 4766 | border-left-color: #111111; 4767 | } 4768 | 4769 | .navbar-inverse .nav li.dropdown.open > .dropdown-toggle, 4770 | .navbar-inverse .nav li.dropdown.active > .dropdown-toggle, 4771 | .navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { 4772 | color: #ffffff; 4773 | background-color: #111111; 4774 | } 4775 | 4776 | .navbar-inverse .nav li.dropdown > a:hover .caret { 4777 | border-top-color: #ffffff; 4778 | border-bottom-color: #ffffff; 4779 | } 4780 | 4781 | .navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { 4782 | border-top-color: #999999; 4783 | border-bottom-color: #999999; 4784 | } 4785 | 4786 | .navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, 4787 | .navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, 4788 | .navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { 4789 | border-top-color: #ffffff; 4790 | border-bottom-color: #ffffff; 4791 | } 4792 | 4793 | .navbar-inverse .navbar-search .search-query { 4794 | color: #ffffff; 4795 | background-color: #515151; 4796 | border-color: #111111; 4797 | -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); 4798 | -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); 4799 | box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); 4800 | -webkit-transition: none; 4801 | -moz-transition: none; 4802 | -o-transition: none; 4803 | transition: none; 4804 | } 4805 | 4806 | .navbar-inverse .navbar-search .search-query:-moz-placeholder { 4807 | color: #cccccc; 4808 | } 4809 | 4810 | .navbar-inverse .navbar-search .search-query:-ms-input-placeholder { 4811 | color: #cccccc; 4812 | } 4813 | 4814 | .navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { 4815 | color: #cccccc; 4816 | } 4817 | 4818 | .navbar-inverse .navbar-search .search-query:focus, 4819 | .navbar-inverse .navbar-search .search-query.focused { 4820 | padding: 5px 15px; 4821 | color: #333333; 4822 | text-shadow: 0 1px 0 #ffffff; 4823 | background-color: #ffffff; 4824 | border: 0; 4825 | outline: 0; 4826 | -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); 4827 | -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); 4828 | box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); 4829 | } 4830 | 4831 | .navbar-inverse .btn-navbar { 4832 | color: #ffffff; 4833 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 4834 | background-color: #0e0e0e; 4835 | *background-color: #040404; 4836 | background-image: -moz-linear-gradient(top, #151515, #040404); 4837 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); 4838 | background-image: -webkit-linear-gradient(top, #151515, #040404); 4839 | background-image: -o-linear-gradient(top, #151515, #040404); 4840 | background-image: linear-gradient(to bottom, #151515, #040404); 4841 | background-repeat: repeat-x; 4842 | border-color: #040404 #040404 #000000; 4843 | border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); 4844 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); 4845 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 4846 | } 4847 | 4848 | .navbar-inverse .btn-navbar:hover, 4849 | .navbar-inverse .btn-navbar:active, 4850 | .navbar-inverse .btn-navbar.active, 4851 | .navbar-inverse .btn-navbar.disabled, 4852 | .navbar-inverse .btn-navbar[disabled] { 4853 | color: #ffffff; 4854 | background-color: #040404; 4855 | *background-color: #000000; 4856 | } 4857 | 4858 | .navbar-inverse .btn-navbar:active, 4859 | .navbar-inverse .btn-navbar.active { 4860 | background-color: #000000 \9; 4861 | } 4862 | 4863 | .breadcrumb { 4864 | padding: 8px 15px; 4865 | margin: 0 0 20px; 4866 | list-style: none; 4867 | background-color: #f5f5f5; 4868 | -webkit-border-radius: 4px; 4869 | -moz-border-radius: 4px; 4870 | border-radius: 4px; 4871 | } 4872 | 4873 | .breadcrumb > li { 4874 | display: inline-block; 4875 | *display: inline; 4876 | text-shadow: 0 1px 0 #ffffff; 4877 | *zoom: 1; 4878 | } 4879 | 4880 | .breadcrumb > li > .divider { 4881 | padding: 0 5px; 4882 | color: #ccc; 4883 | } 4884 | 4885 | .breadcrumb > .active { 4886 | color: #999999; 4887 | } 4888 | 4889 | .pagination { 4890 | margin: 20px 0; 4891 | } 4892 | 4893 | .pagination ul { 4894 | display: inline-block; 4895 | *display: inline; 4896 | margin-bottom: 0; 4897 | margin-left: 0; 4898 | -webkit-border-radius: 4px; 4899 | -moz-border-radius: 4px; 4900 | border-radius: 4px; 4901 | *zoom: 1; 4902 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); 4903 | -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); 4904 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); 4905 | } 4906 | 4907 | .pagination ul > li { 4908 | display: inline; 4909 | } 4910 | 4911 | .pagination ul > li > a, 4912 | .pagination ul > li > span { 4913 | float: left; 4914 | padding: 4px 12px; 4915 | line-height: 20px; 4916 | text-decoration: none; 4917 | background-color: #ffffff; 4918 | border: 1px solid #dddddd; 4919 | border-left-width: 0; 4920 | } 4921 | 4922 | .pagination ul > li > a:hover, 4923 | .pagination ul > .active > a, 4924 | .pagination ul > .active > span { 4925 | background-color: #f5f5f5; 4926 | } 4927 | 4928 | .pagination ul > .active > a, 4929 | .pagination ul > .active > span { 4930 | color: #999999; 4931 | cursor: default; 4932 | } 4933 | 4934 | .pagination ul > .disabled > span, 4935 | .pagination ul > .disabled > a, 4936 | .pagination ul > .disabled > a:hover { 4937 | color: #999999; 4938 | cursor: default; 4939 | background-color: transparent; 4940 | } 4941 | 4942 | .pagination ul > li:first-child > a, 4943 | .pagination ul > li:first-child > span { 4944 | border-left-width: 1px; 4945 | -webkit-border-bottom-left-radius: 4px; 4946 | border-bottom-left-radius: 4px; 4947 | -webkit-border-top-left-radius: 4px; 4948 | border-top-left-radius: 4px; 4949 | -moz-border-radius-bottomleft: 4px; 4950 | -moz-border-radius-topleft: 4px; 4951 | } 4952 | 4953 | .pagination ul > li:last-child > a, 4954 | .pagination ul > li:last-child > span { 4955 | -webkit-border-top-right-radius: 4px; 4956 | border-top-right-radius: 4px; 4957 | -webkit-border-bottom-right-radius: 4px; 4958 | border-bottom-right-radius: 4px; 4959 | -moz-border-radius-topright: 4px; 4960 | -moz-border-radius-bottomright: 4px; 4961 | } 4962 | 4963 | .pagination-centered { 4964 | text-align: center; 4965 | } 4966 | 4967 | .pagination-right { 4968 | text-align: right; 4969 | } 4970 | 4971 | .pagination-large ul > li > a, 4972 | .pagination-large ul > li > span { 4973 | padding: 11px 19px; 4974 | font-size: 17.5px; 4975 | } 4976 | 4977 | .pagination-large ul > li:first-child > a, 4978 | .pagination-large ul > li:first-child > span { 4979 | -webkit-border-bottom-left-radius: 6px; 4980 | border-bottom-left-radius: 6px; 4981 | -webkit-border-top-left-radius: 6px; 4982 | border-top-left-radius: 6px; 4983 | -moz-border-radius-bottomleft: 6px; 4984 | -moz-border-radius-topleft: 6px; 4985 | } 4986 | 4987 | .pagination-large ul > li:last-child > a, 4988 | .pagination-large ul > li:last-child > span { 4989 | -webkit-border-top-right-radius: 6px; 4990 | border-top-right-radius: 6px; 4991 | -webkit-border-bottom-right-radius: 6px; 4992 | border-bottom-right-radius: 6px; 4993 | -moz-border-radius-topright: 6px; 4994 | -moz-border-radius-bottomright: 6px; 4995 | } 4996 | 4997 | .pagination-mini ul > li:first-child > a, 4998 | .pagination-small ul > li:first-child > a, 4999 | .pagination-mini ul > li:first-child > span, 5000 | .pagination-small ul > li:first-child > span { 5001 | -webkit-border-bottom-left-radius: 3px; 5002 | border-bottom-left-radius: 3px; 5003 | -webkit-border-top-left-radius: 3px; 5004 | border-top-left-radius: 3px; 5005 | -moz-border-radius-bottomleft: 3px; 5006 | -moz-border-radius-topleft: 3px; 5007 | } 5008 | 5009 | .pagination-mini ul > li:last-child > a, 5010 | .pagination-small ul > li:last-child > a, 5011 | .pagination-mini ul > li:last-child > span, 5012 | .pagination-small ul > li:last-child > span { 5013 | -webkit-border-top-right-radius: 3px; 5014 | border-top-right-radius: 3px; 5015 | -webkit-border-bottom-right-radius: 3px; 5016 | border-bottom-right-radius: 3px; 5017 | -moz-border-radius-topright: 3px; 5018 | -moz-border-radius-bottomright: 3px; 5019 | } 5020 | 5021 | .pagination-small ul > li > a, 5022 | .pagination-small ul > li > span { 5023 | padding: 2px 10px; 5024 | font-size: 11.9px; 5025 | } 5026 | 5027 | .pagination-mini ul > li > a, 5028 | .pagination-mini ul > li > span { 5029 | padding: 0 6px; 5030 | font-size: 10.5px; 5031 | } 5032 | 5033 | .pager { 5034 | margin: 20px 0; 5035 | text-align: center; 5036 | list-style: none; 5037 | *zoom: 1; 5038 | } 5039 | 5040 | .pager:before, 5041 | .pager:after { 5042 | display: table; 5043 | line-height: 0; 5044 | content: ""; 5045 | } 5046 | 5047 | .pager:after { 5048 | clear: both; 5049 | } 5050 | 5051 | .pager li { 5052 | display: inline; 5053 | } 5054 | 5055 | .pager li > a, 5056 | .pager li > span { 5057 | display: inline-block; 5058 | padding: 5px 14px; 5059 | background-color: #fff; 5060 | border: 1px solid #ddd; 5061 | -webkit-border-radius: 15px; 5062 | -moz-border-radius: 15px; 5063 | border-radius: 15px; 5064 | } 5065 | 5066 | .pager li > a:hover { 5067 | text-decoration: none; 5068 | background-color: #f5f5f5; 5069 | } 5070 | 5071 | .pager .next > a, 5072 | .pager .next > span { 5073 | float: right; 5074 | } 5075 | 5076 | .pager .previous > a, 5077 | .pager .previous > span { 5078 | float: left; 5079 | } 5080 | 5081 | .pager .disabled > a, 5082 | .pager .disabled > a:hover, 5083 | .pager .disabled > span { 5084 | color: #999999; 5085 | cursor: default; 5086 | background-color: #fff; 5087 | } 5088 | 5089 | .modal-backdrop { 5090 | position: fixed; 5091 | top: 0; 5092 | right: 0; 5093 | bottom: 0; 5094 | left: 0; 5095 | z-index: 1040; 5096 | background-color: #000000; 5097 | } 5098 | 5099 | .modal-backdrop.fade { 5100 | opacity: 0; 5101 | } 5102 | 5103 | .modal-backdrop, 5104 | .modal-backdrop.fade.in { 5105 | opacity: 0.8; 5106 | filter: alpha(opacity=80); 5107 | } 5108 | 5109 | .modal { 5110 | position: fixed; 5111 | top: 10%; 5112 | left: 50%; 5113 | z-index: 1050; 5114 | width: 560px; 5115 | margin-left: -280px; 5116 | background-color: #ffffff; 5117 | border: 1px solid #999; 5118 | border: 1px solid rgba(0, 0, 0, 0.3); 5119 | *border: 1px solid #999; 5120 | -webkit-border-radius: 6px; 5121 | -moz-border-radius: 6px; 5122 | border-radius: 6px; 5123 | outline: none; 5124 | -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); 5125 | -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); 5126 | box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); 5127 | -webkit-background-clip: padding-box; 5128 | -moz-background-clip: padding-box; 5129 | background-clip: padding-box; 5130 | } 5131 | 5132 | .modal.fade { 5133 | top: -25%; 5134 | -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; 5135 | -moz-transition: opacity 0.3s linear, top 0.3s ease-out; 5136 | -o-transition: opacity 0.3s linear, top 0.3s ease-out; 5137 | transition: opacity 0.3s linear, top 0.3s ease-out; 5138 | } 5139 | 5140 | .modal.fade.in { 5141 | top: 10%; 5142 | } 5143 | 5144 | .modal-header { 5145 | padding: 9px 15px; 5146 | border-bottom: 1px solid #eee; 5147 | } 5148 | 5149 | .modal-header .close { 5150 | margin-top: 2px; 5151 | } 5152 | 5153 | .modal-header h3 { 5154 | margin: 0; 5155 | line-height: 30px; 5156 | } 5157 | 5158 | .modal-body { 5159 | position: relative; 5160 | max-height: 400px; 5161 | padding: 15px; 5162 | overflow-y: auto; 5163 | } 5164 | 5165 | .modal-form { 5166 | margin-bottom: 0; 5167 | } 5168 | 5169 | .modal-footer { 5170 | padding: 14px 15px 15px; 5171 | margin-bottom: 0; 5172 | text-align: right; 5173 | background-color: #f5f5f5; 5174 | border-top: 1px solid #ddd; 5175 | -webkit-border-radius: 0 0 6px 6px; 5176 | -moz-border-radius: 0 0 6px 6px; 5177 | border-radius: 0 0 6px 6px; 5178 | *zoom: 1; 5179 | -webkit-box-shadow: inset 0 1px 0 #ffffff; 5180 | -moz-box-shadow: inset 0 1px 0 #ffffff; 5181 | box-shadow: inset 0 1px 0 #ffffff; 5182 | } 5183 | 5184 | .modal-footer:before, 5185 | .modal-footer:after { 5186 | display: table; 5187 | line-height: 0; 5188 | content: ""; 5189 | } 5190 | 5191 | .modal-footer:after { 5192 | clear: both; 5193 | } 5194 | 5195 | .modal-footer .btn + .btn { 5196 | margin-bottom: 0; 5197 | margin-left: 5px; 5198 | } 5199 | 5200 | .modal-footer .btn-group .btn + .btn { 5201 | margin-left: -1px; 5202 | } 5203 | 5204 | .modal-footer .btn-block + .btn-block { 5205 | margin-left: 0; 5206 | } 5207 | 5208 | .tooltip { 5209 | position: absolute; 5210 | z-index: 1030; 5211 | display: block; 5212 | padding: 5px; 5213 | font-size: 11px; 5214 | opacity: 0; 5215 | filter: alpha(opacity=0); 5216 | visibility: visible; 5217 | } 5218 | 5219 | .tooltip.in { 5220 | opacity: 0.8; 5221 | filter: alpha(opacity=80); 5222 | } 5223 | 5224 | .tooltip.top { 5225 | margin-top: -3px; 5226 | } 5227 | 5228 | .tooltip.right { 5229 | margin-left: 3px; 5230 | } 5231 | 5232 | .tooltip.bottom { 5233 | margin-top: 3px; 5234 | } 5235 | 5236 | .tooltip.left { 5237 | margin-left: -3px; 5238 | } 5239 | 5240 | .tooltip-inner { 5241 | max-width: 200px; 5242 | padding: 3px 8px; 5243 | color: #ffffff; 5244 | text-align: center; 5245 | text-decoration: none; 5246 | background-color: #000000; 5247 | -webkit-border-radius: 4px; 5248 | -moz-border-radius: 4px; 5249 | border-radius: 4px; 5250 | } 5251 | 5252 | .tooltip-arrow { 5253 | position: absolute; 5254 | width: 0; 5255 | height: 0; 5256 | border-color: transparent; 5257 | border-style: solid; 5258 | } 5259 | 5260 | .tooltip.top .tooltip-arrow { 5261 | bottom: 0; 5262 | left: 50%; 5263 | margin-left: -5px; 5264 | border-top-color: #000000; 5265 | border-width: 5px 5px 0; 5266 | } 5267 | 5268 | .tooltip.right .tooltip-arrow { 5269 | top: 50%; 5270 | left: 0; 5271 | margin-top: -5px; 5272 | border-right-color: #000000; 5273 | border-width: 5px 5px 5px 0; 5274 | } 5275 | 5276 | .tooltip.left .tooltip-arrow { 5277 | top: 50%; 5278 | right: 0; 5279 | margin-top: -5px; 5280 | border-left-color: #000000; 5281 | border-width: 5px 0 5px 5px; 5282 | } 5283 | 5284 | .tooltip.bottom .tooltip-arrow { 5285 | top: 0; 5286 | left: 50%; 5287 | margin-left: -5px; 5288 | border-bottom-color: #000000; 5289 | border-width: 0 5px 5px; 5290 | } 5291 | 5292 | .popover { 5293 | position: absolute; 5294 | top: 0; 5295 | left: 0; 5296 | z-index: 1010; 5297 | display: none; 5298 | width: 236px; 5299 | padding: 1px; 5300 | text-align: left; 5301 | white-space: normal; 5302 | background-color: #ffffff; 5303 | border: 1px solid #ccc; 5304 | border: 1px solid rgba(0, 0, 0, 0.2); 5305 | -webkit-border-radius: 6px; 5306 | -moz-border-radius: 6px; 5307 | border-radius: 6px; 5308 | -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 5309 | -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 5310 | box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 5311 | -webkit-background-clip: padding-box; 5312 | -moz-background-clip: padding; 5313 | background-clip: padding-box; 5314 | } 5315 | 5316 | .popover.top { 5317 | margin-top: -10px; 5318 | } 5319 | 5320 | .popover.right { 5321 | margin-left: 10px; 5322 | } 5323 | 5324 | .popover.bottom { 5325 | margin-top: 10px; 5326 | } 5327 | 5328 | .popover.left { 5329 | margin-left: -10px; 5330 | } 5331 | 5332 | .popover-title { 5333 | padding: 8px 14px; 5334 | margin: 0; 5335 | font-size: 14px; 5336 | font-weight: normal; 5337 | line-height: 18px; 5338 | background-color: #f7f7f7; 5339 | border-bottom: 1px solid #ebebeb; 5340 | -webkit-border-radius: 5px 5px 0 0; 5341 | -moz-border-radius: 5px 5px 0 0; 5342 | border-radius: 5px 5px 0 0; 5343 | } 5344 | 5345 | .popover-content { 5346 | padding: 9px 14px; 5347 | } 5348 | 5349 | .popover .arrow, 5350 | .popover .arrow:after { 5351 | position: absolute; 5352 | display: block; 5353 | width: 0; 5354 | height: 0; 5355 | border-color: transparent; 5356 | border-style: solid; 5357 | } 5358 | 5359 | .popover .arrow { 5360 | border-width: 11px; 5361 | } 5362 | 5363 | .popover .arrow:after { 5364 | border-width: 10px; 5365 | content: ""; 5366 | } 5367 | 5368 | .popover.top .arrow { 5369 | bottom: -11px; 5370 | left: 50%; 5371 | margin-left: -11px; 5372 | border-top-color: #999; 5373 | border-top-color: rgba(0, 0, 0, 0.25); 5374 | border-bottom-width: 0; 5375 | } 5376 | 5377 | .popover.top .arrow:after { 5378 | bottom: 1px; 5379 | margin-left: -10px; 5380 | border-top-color: #ffffff; 5381 | border-bottom-width: 0; 5382 | } 5383 | 5384 | .popover.right .arrow { 5385 | top: 50%; 5386 | left: -11px; 5387 | margin-top: -11px; 5388 | border-right-color: #999; 5389 | border-right-color: rgba(0, 0, 0, 0.25); 5390 | border-left-width: 0; 5391 | } 5392 | 5393 | .popover.right .arrow:after { 5394 | bottom: -10px; 5395 | left: 1px; 5396 | border-right-color: #ffffff; 5397 | border-left-width: 0; 5398 | } 5399 | 5400 | .popover.bottom .arrow { 5401 | top: -11px; 5402 | left: 50%; 5403 | margin-left: -11px; 5404 | border-bottom-color: #999; 5405 | border-bottom-color: rgba(0, 0, 0, 0.25); 5406 | border-top-width: 0; 5407 | } 5408 | 5409 | .popover.bottom .arrow:after { 5410 | top: 1px; 5411 | margin-left: -10px; 5412 | border-bottom-color: #ffffff; 5413 | border-top-width: 0; 5414 | } 5415 | 5416 | .popover.left .arrow { 5417 | top: 50%; 5418 | right: -11px; 5419 | margin-top: -11px; 5420 | border-left-color: #999; 5421 | border-left-color: rgba(0, 0, 0, 0.25); 5422 | border-right-width: 0; 5423 | } 5424 | 5425 | .popover.left .arrow:after { 5426 | right: 1px; 5427 | bottom: -10px; 5428 | border-left-color: #ffffff; 5429 | border-right-width: 0; 5430 | } 5431 | 5432 | .thumbnails { 5433 | margin-left: -20px; 5434 | list-style: none; 5435 | *zoom: 1; 5436 | } 5437 | 5438 | .thumbnails:before, 5439 | .thumbnails:after { 5440 | display: table; 5441 | line-height: 0; 5442 | content: ""; 5443 | } 5444 | 5445 | .thumbnails:after { 5446 | clear: both; 5447 | } 5448 | 5449 | .row-fluid .thumbnails { 5450 | margin-left: 0; 5451 | } 5452 | 5453 | .thumbnails > li { 5454 | float: left; 5455 | margin-bottom: 20px; 5456 | margin-left: 20px; 5457 | } 5458 | 5459 | .thumbnail { 5460 | display: block; 5461 | padding: 4px; 5462 | line-height: 20px; 5463 | border: 1px solid #ddd; 5464 | -webkit-border-radius: 4px; 5465 | -moz-border-radius: 4px; 5466 | border-radius: 4px; 5467 | -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); 5468 | -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); 5469 | box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); 5470 | -webkit-transition: all 0.2s ease-in-out; 5471 | -moz-transition: all 0.2s ease-in-out; 5472 | -o-transition: all 0.2s ease-in-out; 5473 | transition: all 0.2s ease-in-out; 5474 | } 5475 | 5476 | a.thumbnail:hover { 5477 | border-color: #0088cc; 5478 | -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); 5479 | -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); 5480 | box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); 5481 | } 5482 | 5483 | .thumbnail > img { 5484 | display: block; 5485 | max-width: 100%; 5486 | margin-right: auto; 5487 | margin-left: auto; 5488 | } 5489 | 5490 | .thumbnail .caption { 5491 | padding: 9px; 5492 | color: #555555; 5493 | } 5494 | 5495 | .media, 5496 | .media-body { 5497 | overflow: hidden; 5498 | *overflow: visible; 5499 | zoom: 1; 5500 | } 5501 | 5502 | .media, 5503 | .media .media { 5504 | margin-top: 15px; 5505 | } 5506 | 5507 | .media:first-child { 5508 | margin-top: 0; 5509 | } 5510 | 5511 | .media-object { 5512 | display: block; 5513 | } 5514 | 5515 | .media-heading { 5516 | margin: 0 0 5px; 5517 | } 5518 | 5519 | .media .pull-left { 5520 | margin-right: 10px; 5521 | } 5522 | 5523 | .media .pull-right { 5524 | margin-left: 10px; 5525 | } 5526 | 5527 | .media-list { 5528 | margin-left: 0; 5529 | list-style: none; 5530 | } 5531 | 5532 | .label, 5533 | .badge { 5534 | display: inline-block; 5535 | padding: 2px 4px; 5536 | font-size: 11.844px; 5537 | font-weight: bold; 5538 | line-height: 14px; 5539 | color: #ffffff; 5540 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 5541 | white-space: nowrap; 5542 | vertical-align: baseline; 5543 | background-color: #999999; 5544 | } 5545 | 5546 | .label { 5547 | -webkit-border-radius: 3px; 5548 | -moz-border-radius: 3px; 5549 | border-radius: 3px; 5550 | } 5551 | 5552 | .badge { 5553 | padding-right: 9px; 5554 | padding-left: 9px; 5555 | -webkit-border-radius: 9px; 5556 | -moz-border-radius: 9px; 5557 | border-radius: 9px; 5558 | } 5559 | 5560 | .label:empty, 5561 | .badge:empty { 5562 | display: none; 5563 | } 5564 | 5565 | a.label:hover, 5566 | a.badge:hover { 5567 | color: #ffffff; 5568 | text-decoration: none; 5569 | cursor: pointer; 5570 | } 5571 | 5572 | .label-important, 5573 | .badge-important { 5574 | background-color: #b94a48; 5575 | } 5576 | 5577 | .label-important[href], 5578 | .badge-important[href] { 5579 | background-color: #953b39; 5580 | } 5581 | 5582 | .label-warning, 5583 | .badge-warning { 5584 | background-color: #f89406; 5585 | } 5586 | 5587 | .label-warning[href], 5588 | .badge-warning[href] { 5589 | background-color: #c67605; 5590 | } 5591 | 5592 | .label-success, 5593 | .badge-success { 5594 | background-color: #468847; 5595 | } 5596 | 5597 | .label-success[href], 5598 | .badge-success[href] { 5599 | background-color: #356635; 5600 | } 5601 | 5602 | .label-info, 5603 | .badge-info { 5604 | background-color: #3a87ad; 5605 | } 5606 | 5607 | .label-info[href], 5608 | .badge-info[href] { 5609 | background-color: #2d6987; 5610 | } 5611 | 5612 | .label-inverse, 5613 | .badge-inverse { 5614 | background-color: #333333; 5615 | } 5616 | 5617 | .label-inverse[href], 5618 | .badge-inverse[href] { 5619 | background-color: #1a1a1a; 5620 | } 5621 | 5622 | .btn .label, 5623 | .btn .badge { 5624 | position: relative; 5625 | top: -1px; 5626 | } 5627 | 5628 | .btn-mini .label, 5629 | .btn-mini .badge { 5630 | top: 0; 5631 | } 5632 | 5633 | @-webkit-keyframes progress-bar-stripes { 5634 | from { 5635 | background-position: 40px 0; 5636 | } 5637 | to { 5638 | background-position: 0 0; 5639 | } 5640 | } 5641 | 5642 | @-moz-keyframes progress-bar-stripes { 5643 | from { 5644 | background-position: 40px 0; 5645 | } 5646 | to { 5647 | background-position: 0 0; 5648 | } 5649 | } 5650 | 5651 | @-ms-keyframes progress-bar-stripes { 5652 | from { 5653 | background-position: 40px 0; 5654 | } 5655 | to { 5656 | background-position: 0 0; 5657 | } 5658 | } 5659 | 5660 | @-o-keyframes progress-bar-stripes { 5661 | from { 5662 | background-position: 0 0; 5663 | } 5664 | to { 5665 | background-position: 40px 0; 5666 | } 5667 | } 5668 | 5669 | @keyframes progress-bar-stripes { 5670 | from { 5671 | background-position: 40px 0; 5672 | } 5673 | to { 5674 | background-position: 0 0; 5675 | } 5676 | } 5677 | 5678 | .progress { 5679 | height: 20px; 5680 | margin-bottom: 20px; 5681 | overflow: hidden; 5682 | background-color: #f7f7f7; 5683 | background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); 5684 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); 5685 | background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); 5686 | background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); 5687 | background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); 5688 | background-repeat: repeat-x; 5689 | -webkit-border-radius: 4px; 5690 | -moz-border-radius: 4px; 5691 | border-radius: 4px; 5692 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); 5693 | -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); 5694 | -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); 5695 | box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); 5696 | } 5697 | 5698 | .progress .bar { 5699 | float: left; 5700 | width: 0; 5701 | height: 100%; 5702 | font-size: 12px; 5703 | color: #ffffff; 5704 | text-align: center; 5705 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 5706 | background-color: #0e90d2; 5707 | background-image: -moz-linear-gradient(top, #149bdf, #0480be); 5708 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); 5709 | background-image: -webkit-linear-gradient(top, #149bdf, #0480be); 5710 | background-image: -o-linear-gradient(top, #149bdf, #0480be); 5711 | background-image: linear-gradient(to bottom, #149bdf, #0480be); 5712 | background-repeat: repeat-x; 5713 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); 5714 | -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); 5715 | -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); 5716 | box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); 5717 | -webkit-box-sizing: border-box; 5718 | -moz-box-sizing: border-box; 5719 | box-sizing: border-box; 5720 | -webkit-transition: width 0.6s ease; 5721 | -moz-transition: width 0.6s ease; 5722 | -o-transition: width 0.6s ease; 5723 | transition: width 0.6s ease; 5724 | } 5725 | 5726 | .progress .bar + .bar { 5727 | -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); 5728 | -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); 5729 | box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); 5730 | } 5731 | 5732 | .progress-striped .bar { 5733 | background-color: #149bdf; 5734 | background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); 5735 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5736 | background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5737 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5738 | background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5739 | -webkit-background-size: 40px 40px; 5740 | -moz-background-size: 40px 40px; 5741 | -o-background-size: 40px 40px; 5742 | background-size: 40px 40px; 5743 | } 5744 | 5745 | .progress.active .bar { 5746 | -webkit-animation: progress-bar-stripes 2s linear infinite; 5747 | -moz-animation: progress-bar-stripes 2s linear infinite; 5748 | -ms-animation: progress-bar-stripes 2s linear infinite; 5749 | -o-animation: progress-bar-stripes 2s linear infinite; 5750 | animation: progress-bar-stripes 2s linear infinite; 5751 | } 5752 | 5753 | .progress-danger .bar, 5754 | .progress .bar-danger { 5755 | background-color: #dd514c; 5756 | background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); 5757 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); 5758 | background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); 5759 | background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); 5760 | background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); 5761 | background-repeat: repeat-x; 5762 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); 5763 | } 5764 | 5765 | .progress-danger.progress-striped .bar, 5766 | .progress-striped .bar-danger { 5767 | background-color: #ee5f5b; 5768 | background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); 5769 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5770 | background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5771 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5772 | background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5773 | } 5774 | 5775 | .progress-success .bar, 5776 | .progress .bar-success { 5777 | background-color: #5eb95e; 5778 | background-image: -moz-linear-gradient(top, #62c462, #57a957); 5779 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); 5780 | background-image: -webkit-linear-gradient(top, #62c462, #57a957); 5781 | background-image: -o-linear-gradient(top, #62c462, #57a957); 5782 | background-image: linear-gradient(to bottom, #62c462, #57a957); 5783 | background-repeat: repeat-x; 5784 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); 5785 | } 5786 | 5787 | .progress-success.progress-striped .bar, 5788 | .progress-striped .bar-success { 5789 | background-color: #62c462; 5790 | background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); 5791 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5792 | background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5793 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5794 | background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5795 | } 5796 | 5797 | .progress-info .bar, 5798 | .progress .bar-info { 5799 | background-color: #4bb1cf; 5800 | background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); 5801 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); 5802 | background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); 5803 | background-image: -o-linear-gradient(top, #5bc0de, #339bb9); 5804 | background-image: linear-gradient(to bottom, #5bc0de, #339bb9); 5805 | background-repeat: repeat-x; 5806 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); 5807 | } 5808 | 5809 | .progress-info.progress-striped .bar, 5810 | .progress-striped .bar-info { 5811 | background-color: #5bc0de; 5812 | background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); 5813 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5814 | background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5815 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5816 | background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5817 | } 5818 | 5819 | .progress-warning .bar, 5820 | .progress .bar-warning { 5821 | background-color: #faa732; 5822 | background-image: -moz-linear-gradient(top, #fbb450, #f89406); 5823 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); 5824 | background-image: -webkit-linear-gradient(top, #fbb450, #f89406); 5825 | background-image: -o-linear-gradient(top, #fbb450, #f89406); 5826 | background-image: linear-gradient(to bottom, #fbb450, #f89406); 5827 | background-repeat: repeat-x; 5828 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); 5829 | } 5830 | 5831 | .progress-warning.progress-striped .bar, 5832 | .progress-striped .bar-warning { 5833 | background-color: #fbb450; 5834 | background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); 5835 | background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5836 | background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5837 | background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5838 | background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); 5839 | } 5840 | 5841 | .accordion { 5842 | margin-bottom: 20px; 5843 | } 5844 | 5845 | .accordion-group { 5846 | margin-bottom: 2px; 5847 | border: 1px solid #e5e5e5; 5848 | -webkit-border-radius: 4px; 5849 | -moz-border-radius: 4px; 5850 | border-radius: 4px; 5851 | } 5852 | 5853 | .accordion-heading { 5854 | border-bottom: 0; 5855 | } 5856 | 5857 | .accordion-heading .accordion-toggle { 5858 | display: block; 5859 | padding: 8px 15px; 5860 | } 5861 | 5862 | .accordion-toggle { 5863 | cursor: pointer; 5864 | } 5865 | 5866 | .accordion-inner { 5867 | padding: 9px 15px; 5868 | border-top: 1px solid #e5e5e5; 5869 | } 5870 | 5871 | .carousel { 5872 | position: relative; 5873 | margin-bottom: 20px; 5874 | line-height: 1; 5875 | } 5876 | 5877 | .carousel-inner { 5878 | position: relative; 5879 | width: 100%; 5880 | overflow: hidden; 5881 | } 5882 | 5883 | .carousel-inner > .item { 5884 | position: relative; 5885 | display: none; 5886 | -webkit-transition: 0.6s ease-in-out left; 5887 | -moz-transition: 0.6s ease-in-out left; 5888 | -o-transition: 0.6s ease-in-out left; 5889 | transition: 0.6s ease-in-out left; 5890 | } 5891 | 5892 | .carousel-inner > .item > img { 5893 | display: block; 5894 | line-height: 1; 5895 | } 5896 | 5897 | .carousel-inner > .active, 5898 | .carousel-inner > .next, 5899 | .carousel-inner > .prev { 5900 | display: block; 5901 | } 5902 | 5903 | .carousel-inner > .active { 5904 | left: 0; 5905 | } 5906 | 5907 | .carousel-inner > .next, 5908 | .carousel-inner > .prev { 5909 | position: absolute; 5910 | top: 0; 5911 | width: 100%; 5912 | } 5913 | 5914 | .carousel-inner > .next { 5915 | left: 100%; 5916 | } 5917 | 5918 | .carousel-inner > .prev { 5919 | left: -100%; 5920 | } 5921 | 5922 | .carousel-inner > .next.left, 5923 | .carousel-inner > .prev.right { 5924 | left: 0; 5925 | } 5926 | 5927 | .carousel-inner > .active.left { 5928 | left: -100%; 5929 | } 5930 | 5931 | .carousel-inner > .active.right { 5932 | left: 100%; 5933 | } 5934 | 5935 | .carousel-control { 5936 | position: absolute; 5937 | top: 40%; 5938 | left: 15px; 5939 | width: 40px; 5940 | height: 40px; 5941 | margin-top: -20px; 5942 | font-size: 60px; 5943 | font-weight: 100; 5944 | line-height: 30px; 5945 | color: #ffffff; 5946 | text-align: center; 5947 | background: #222222; 5948 | border: 3px solid #ffffff; 5949 | -webkit-border-radius: 23px; 5950 | -moz-border-radius: 23px; 5951 | border-radius: 23px; 5952 | opacity: 0.5; 5953 | filter: alpha(opacity=50); 5954 | } 5955 | 5956 | .carousel-control.right { 5957 | right: 15px; 5958 | left: auto; 5959 | } 5960 | 5961 | .carousel-control:hover { 5962 | color: #ffffff; 5963 | text-decoration: none; 5964 | opacity: 0.9; 5965 | filter: alpha(opacity=90); 5966 | } 5967 | 5968 | .carousel-caption { 5969 | position: absolute; 5970 | right: 0; 5971 | bottom: 0; 5972 | left: 0; 5973 | padding: 15px; 5974 | background: #333333; 5975 | background: rgba(0, 0, 0, 0.75); 5976 | } 5977 | 5978 | .carousel-caption h4, 5979 | .carousel-caption p { 5980 | line-height: 20px; 5981 | color: #ffffff; 5982 | } 5983 | 5984 | .carousel-caption h4 { 5985 | margin: 0 0 5px; 5986 | } 5987 | 5988 | .carousel-caption p { 5989 | margin-bottom: 0; 5990 | } 5991 | 5992 | .hero-unit { 5993 | padding: 60px; 5994 | margin-bottom: 30px; 5995 | font-size: 18px; 5996 | font-weight: 200; 5997 | line-height: 30px; 5998 | color: inherit; 5999 | background-color: #eeeeee; 6000 | -webkit-border-radius: 6px; 6001 | -moz-border-radius: 6px; 6002 | border-radius: 6px; 6003 | } 6004 | 6005 | .hero-unit h1 { 6006 | margin-bottom: 0; 6007 | font-size: 60px; 6008 | line-height: 1; 6009 | letter-spacing: -1px; 6010 | color: inherit; 6011 | } 6012 | 6013 | .hero-unit li { 6014 | line-height: 30px; 6015 | } 6016 | 6017 | .pull-right { 6018 | float: right; 6019 | } 6020 | 6021 | .pull-left { 6022 | float: left; 6023 | } 6024 | 6025 | .hide { 6026 | display: none; 6027 | } 6028 | 6029 | .show { 6030 | display: block; 6031 | } 6032 | 6033 | .invisible { 6034 | visibility: hidden; 6035 | } 6036 | 6037 | .affix { 6038 | position: fixed; 6039 | } 6040 | -------------------------------------------------------------------------------- /client/src/less/css/custom.css: -------------------------------------------------------------------------------- 1 | /****** Custom Classes ******/ 2 | .class1 { 3 | color: rgb(33, 96, 177); 4 | } 5 | .class2 { 6 | color: rgb(23, 66, 122); 7 | } 8 | .error{ 9 | color: red; 10 | margin-top: 10px; 11 | } 12 | #list { 13 | margin-top: 15px; 14 | } -------------------------------------------------------------------------------- /client/src/less/css/growl.css: -------------------------------------------------------------------------------- 1 | /* 2 | * growl-container styles 3 | */ 4 | .growl-container.growl-fixed { 5 | position: fixed; 6 | float: right; 7 | width: 90%; 8 | max-width: 400px; 9 | z-index: 9999; 10 | } 11 | .growl-container.growl-fixed.top-right { 12 | top: 10px; 13 | right: 15px; 14 | } 15 | .growl-container.growl-fixed.bottom-right { 16 | bottom: 10px; 17 | right: 15px; 18 | } 19 | .growl-container.growl-fixed.top-left { 20 | top: 10px; 21 | left: 15px; 22 | } 23 | .growl-container.growl-fixed.bottom-left { 24 | bottom: 10px; 25 | left: 15px; 26 | } 27 | .growl-container.growl-fixed.top-center { 28 | top: 10px; 29 | left: 50%; 30 | margin-left: -200px; 31 | } 32 | .growl-container.growl-fixed.bottom-center { 33 | bottom: 10px; 34 | left: 50%; 35 | margin-left: -200px; 36 | } 37 | 38 | /* 39 | * growl-item styles 40 | */ 41 | .growl-container > .growl-item { 42 | padding: 10px; 43 | padding-right: 35px; 44 | margin-bottom: 10px; 45 | cursor: pointer; 46 | } 47 | 48 | .growl-container > button { 49 | border: none; 50 | outline:none; 51 | } 52 | .growl-container > .growl-item.ng-enter, 53 | .growl-container > .growl-item.ng-leave { 54 | -webkit-transition:0.5s linear all; 55 | -moz-transition:0.5s linear all; 56 | -o-transition:0.5s linear all; 57 | transition:0.5s linear all; 58 | } 59 | 60 | .growl-container > .growl-item.ng-enter, 61 | .growl-container > .growl-item.ng-leave.ng-leave-active { 62 | opacity:0; 63 | } 64 | .growl-container > .growl-item.ng-leave, 65 | .growl-container > .growl-item.ng-enter.ng-enter-active { 66 | opacity:1; 67 | } 68 | 69 | .growl-container > div.growl-item { 70 | background-position: 12px center; 71 | background-repeat: no-repeat; 72 | } 73 | 74 | /* 75 | * growl-title styles 76 | */ 77 | .growl-title { 78 | font-size: 16px; 79 | } 80 | .growl-item.icon > .growl-title { 81 | margin: 0 0 0 40px; 82 | } 83 | 84 | /* 85 | * growl-message styles 86 | */ 87 | .growl-item.icon > .growl-message { 88 | margin: 0 0 0 40px; 89 | } 90 | 91 | /* 92 | * growl background images 93 | */ 94 | .growl-container > .alert-info.icon { 95 | /* for the white images 96 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII="); 97 | */ 98 | background-image: url("data:image/png;base64,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"); 99 | } 100 | .growl-container > .alert-error.icon { 101 | /* for the white images 102 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII="); 103 | */ 104 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAwBJREFUeNqsll1IU2EYx5+zj7Ozdo477sOPuZiJ+Nlm2CRZ6yJKJcGICDRvEjY2+rg0EIkuxLzRC+lGEUZGRJd1EQahoikUiBVZF64hzAYqhlvbztzZOdvpavNsunOm9b96X97nfX7P877ned6DcBwHCIKAkNY8HlMkEHge9vutusbGSUyrfXS2ry8OIuI4DpB8gDWPx8RQVHd8b69rZ3X1IkNRGSOUIFKaurqfp0pK3spx/F2T2z0nCFgaHPzBJZNokqZVSZpWJsJhFbW9LYcCJVepOFV5eUSmVFJShYJi9/eJFMMork5MFMsAAP5sbNTs7+7KxBzJMIxj4/FD6TIUhYR8viIAKMpdkwAAKNTqmJBjRCqFM52dkzdnZiR1PT2XNPX1vwvNTgIAIJHJWCGjIpMp2tLffxcAwOJyLWtqa0fFHEtR9AAgx/E9wShyA0CQhBgAVatZfgYx+M9CCSKeAcgwbFfIOB4M4scG4HgoA0DV6gUh4xTDSPjzJE1XiQGUOt3XAwCOvxAypkOhLECKZXUF1MbnDMDscPjxioq4WLvgZWAQBRDEywwAAAA3GjcEj4llG9NjNhYrE7Ilq6vDFqfTmwVQarVzQpsSkUhXZhyNakUAbzLVz7uUxwqSvJ973mkFvd7eldFReZKmjZvz8zqhqsc0mieZOb+bfhwamv21sHDlX75/vcUSuDw+fjrdTbOiVRkM99IlfhJJURS0DQ23D/WitCxOp7fUav1y1ObimpqQqb39lcFm+yLDMO4om/LW1mWLy7WcFwAAoK6svKbU69ncyMpaWs5dGBjotQ8PNxtstve5+zCNJkkYjbeO7KZ8mZ3OnQq7/WFW5SYSwFBUNwDA9+lpMrq1dZ6/riDJlKmt7brZ6dw5dOn5nsxPIyOvN2dnb2SVv17PMpGIlP/oKEgyVdnR0dXkds8c603OB8mNPJ/zggAAACtjY08Di4sP+I++XKXiSq3WD4TReMfscPhP9FfB17epKXvQ53sWXF+vKmluXhJzzAf8HQAC8i1VVpW6ogAAAABJRU5ErkJggg=="); 105 | } 106 | .growl-container > .alert-success.icon { 107 | /* for the white images 108 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg=="); 109 | */ 110 | background-image: url("data:image/png;base64,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"); 111 | } 112 | .growl-container > .alert-warning.icon { 113 | /* for the white images 114 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII="); 115 | */ 116 | background-image: url("data:image/png;base64,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"); 117 | } -------------------------------------------------------------------------------- /client/src/less/js/growl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * angular-growl-v2 - v0.7.3 - 2015-01-05 3 | * http://janstevens.github.io/angular-growl-2 4 | * Copyright (c) 2015 Marco Rinck,Jan Stevens; Licensed MIT 5 | */ 6 | angular.module('angular-growl', []); 7 | angular.module('angular-growl').directive('growl', [function () { 8 | 'use strict'; 9 | return { 10 | restrict: 'A', 11 | templateUrl: 'templates/growl/growl.html', 12 | replace: false, 13 | scope: { 14 | reference: '@', 15 | inline: '=', 16 | limitMessages: '=' 17 | }, 18 | controller: [ 19 | '$scope', 20 | '$timeout', 21 | 'growl', 22 | 'growlMessages', 23 | function ($scope, $timeout, growl, growlMessages) { 24 | $scope.referenceId = $scope.reference || 0; 25 | growlMessages.initDirective($scope.referenceId, $scope.limitMessages); 26 | $scope.growlMessages = growlMessages; 27 | $scope.inlineMessage = angular.isDefined($scope.inline) ? $scope.inline : growl.inlineMessages(); 28 | $scope.$watch('limitMessages', function (limitMessages) { 29 | var directive = growlMessages.directives[$scope.referenceId]; 30 | if (!angular.isUndefined(limitMessages) && !angular.isUndefined(directive)) { 31 | directive.limitMessages = limitMessages; 32 | } 33 | }); 34 | $scope.stopTimeoutClose = function (message) { 35 | if (!message.clickToClose) { 36 | angular.forEach(message.promises, function (promise) { 37 | $timeout.cancel(promise); 38 | }); 39 | if (message.close) { 40 | growlMessages.deleteMessage(message); 41 | } else { 42 | message.close = true; 43 | } 44 | } 45 | }; 46 | $scope.alertClasses = function (message) { 47 | return { 48 | 'alert-success': message.severity === 'success', 49 | 'alert-error': message.severity === 'error', 50 | 'alert-danger': message.severity === 'error', 51 | 'alert-info': message.severity === 'info', 52 | 'alert-warning': message.severity === 'warning', 53 | 'icon': message.disableIcons === false, 54 | 'alert-dismissable': !message.disableCloseButton 55 | }; 56 | }; 57 | $scope.showCountDown = function (message) { 58 | return !message.disableCountDown && message.ttl > 0; 59 | }; 60 | $scope.wrapperClasses = function () { 61 | var classes = {}; 62 | classes['growl-fixed'] = !$scope.inlineMessage; 63 | classes[growl.position()] = true; 64 | return classes; 65 | }; 66 | $scope.computeTitle = function (message) { 67 | var ret = { 68 | 'success': 'Success', 69 | 'error': 'Error', 70 | 'info': 'Information', 71 | 'warn': 'Warning' 72 | }; 73 | return ret[message.severity]; 74 | }; 75 | } 76 | ] 77 | }; 78 | }]); 79 | angular.module('angular-growl').run([ 80 | '$templateCache', 81 | function ($templateCache) { 82 | 'use strict'; 83 | if ($templateCache.get('templates/growl/growl.html') === undefined) { 84 | $templateCache.put('templates/growl/growl.html', '
' + '
' + '' + '' + '

' + '
' + '
' + '
'); 85 | } 86 | } 87 | ]); 88 | angular.module('angular-growl').provider('growl', function () { 89 | 'use strict'; 90 | var _ttl = { 91 | success: null, 92 | error: null, 93 | warning: null, 94 | info: null 95 | }, _messagesKey = 'messages', _messageTextKey = 'text', _messageTitleKey = 'title', _messageSeverityKey = 'severity', _onlyUniqueMessages = true, _messageVariableKey = 'variables', _referenceId = 0, _inline = false, _position = 'top-right', _disableCloseButton = false, _disableIcons = false, _reverseOrder = false, _disableCountDown = false, _translateMessages = true; 96 | this.globalTimeToLive = function (ttl) { 97 | if (typeof ttl === 'object') { 98 | for (var k in ttl) { 99 | if (ttl.hasOwnProperty(k)) { 100 | _ttl[k] = ttl[k]; 101 | } 102 | } 103 | } else { 104 | for (var severity in _ttl) { 105 | if (_ttl.hasOwnProperty(severity)) { 106 | _ttl[severity] = ttl; 107 | } 108 | } 109 | } 110 | }; 111 | this.globalTranslateMessages = function (translateMessages) { 112 | _translateMessages = translateMessages; 113 | }; 114 | this.globalDisableCloseButton = function (disableCloseButton) { 115 | _disableCloseButton = disableCloseButton; 116 | }; 117 | this.globalDisableIcons = function (disableIcons) { 118 | _disableIcons = disableIcons; 119 | }; 120 | this.globalReversedOrder = function (reverseOrder) { 121 | _reverseOrder = reverseOrder; 122 | }; 123 | this.globalDisableCountDown = function (countDown) { 124 | _disableCountDown = countDown; 125 | }; 126 | this.messageVariableKey = function (messageVariableKey) { 127 | _messageVariableKey = messageVariableKey; 128 | }; 129 | this.globalInlineMessages = function (inline) { 130 | _inline = inline; 131 | }; 132 | this.globalPosition = function (position) { 133 | _position = position; 134 | }; 135 | this.messagesKey = function (messagesKey) { 136 | _messagesKey = messagesKey; 137 | }; 138 | this.messageTextKey = function (messageTextKey) { 139 | _messageTextKey = messageTextKey; 140 | }; 141 | this.messageTitleKey = function (messageTitleKey) { 142 | _messageTitleKey = messageTitleKey; 143 | }; 144 | this.messageSeverityKey = function (messageSeverityKey) { 145 | _messageSeverityKey = messageSeverityKey; 146 | }; 147 | this.onlyUniqueMessages = function (onlyUniqueMessages) { 148 | _onlyUniqueMessages = onlyUniqueMessages; 149 | }; 150 | this.serverMessagesInterceptor = [ 151 | '$q', 152 | 'growl', 153 | function ($q, growl) { 154 | function checkResponse(response) { 155 | if (response !== undefined && response.data[_messagesKey] && response.data[_messagesKey].length > 0) { 156 | growl.addServerMessages(response.data[_messagesKey]); 157 | } 158 | } 159 | return { 160 | 'response': function (response) { 161 | checkResponse(response); 162 | return response; 163 | }, 164 | 'responseError': function (rejection) { 165 | checkResponse(rejection); 166 | return $q.reject(rejection); 167 | } 168 | }; 169 | } 170 | ]; 171 | this.$get = [ 172 | '$rootScope', 173 | '$interpolate', 174 | '$sce', 175 | '$filter', 176 | '$timeout', 177 | 'growlMessages', 178 | function ($rootScope, $interpolate, $sce, $filter, $timeout, growlMessages) { 179 | var translate; 180 | growlMessages.onlyUnique = _onlyUniqueMessages; 181 | growlMessages.reverseOrder = _reverseOrder; 182 | try { 183 | translate = $filter('translate'); 184 | } catch (e) { 185 | } 186 | function broadcastMessage(message) { 187 | if (translate && message.translateMessage) { 188 | message.text = translate(message.text, message.variables); 189 | } else { 190 | var polation = $interpolate(message.text); 191 | message.text = polation(message.variables); 192 | } 193 | var addedMessage = growlMessages.addMessage(message); 194 | $rootScope.$broadcast('growlMessage', message); 195 | $timeout(function () { 196 | }, 0); 197 | return addedMessage; 198 | } 199 | function sendMessage(text, config, severity) { 200 | var _config = config || {}, message; 201 | message = { 202 | text: text, 203 | title: _config.title, 204 | severity: severity, 205 | ttl: _config.ttl || _ttl[severity], 206 | variables: _config.variables || {}, 207 | disableCloseButton: _config.disableCloseButton === undefined ? _disableCloseButton : _config.disableCloseButton, 208 | disableIcons: _config.disableIcons === undefined ? _disableIcons : _config.disableIcons, 209 | disableCountDown: _config.disableCountDown === undefined ? _disableCountDown : _config.disableCountDown, 210 | position: _config.position || _position, 211 | referenceId: _config.referenceId || _referenceId, 212 | translateMessage: _config.translateMessage === undefined ? _translateMessages : _config.translateMessage, 213 | destroy: function () { 214 | growlMessages.deleteMessage(message); 215 | }, 216 | setText: function (newText) { 217 | message.text = $sce.trustAsHtml(String(newText)); 218 | }, 219 | onclose: _config.onclose, 220 | onopen: _config.onopen 221 | }; 222 | return broadcastMessage(message); 223 | } 224 | function warning(text, config) { 225 | return sendMessage(text, config, 'warning'); 226 | } 227 | function error(text, config) { 228 | return sendMessage(text, config, 'error'); 229 | } 230 | function info(text, config) { 231 | return sendMessage(text, config, 'info'); 232 | } 233 | function success(text, config) { 234 | return sendMessage(text, config, 'success'); 235 | } 236 | function general(text, config, severity) { 237 | severity = (severity || 'error').toLowerCase(); 238 | sendMessage(text, config, severity); 239 | } 240 | function addServerMessages(messages) { 241 | if (!messages || !messages.length) { 242 | return; 243 | } 244 | var i, message, severity, length; 245 | length = messages.length; 246 | for (i = 0; i < length; i++) { 247 | message = messages[i]; 248 | if (message[_messageTextKey]) { 249 | severity = (message[_messageSeverityKey] || 'error').toLowerCase(); 250 | var config = {}; 251 | config.variables = message[_messageVariableKey] || {}; 252 | config.title = message[_messageTitleKey]; 253 | sendMessage(message[_messageTextKey], config, severity); 254 | } 255 | } 256 | } 257 | function onlyUnique() { 258 | return _onlyUniqueMessages; 259 | } 260 | function reverseOrder() { 261 | return _reverseOrder; 262 | } 263 | function inlineMessages() { 264 | return _inline; 265 | } 266 | function position() { 267 | return _position; 268 | } 269 | return { 270 | warning: warning, 271 | error: error, 272 | info: info, 273 | success: success, 274 | general: general, 275 | addServerMessages: addServerMessages, 276 | onlyUnique: onlyUnique, 277 | reverseOrder: reverseOrder, 278 | inlineMessages: inlineMessages, 279 | position: position 280 | }; 281 | } 282 | ]; 283 | }); 284 | angular.module('angular-growl').service('growlMessages', [ 285 | '$sce', 286 | '$timeout', 287 | function ($sce, $timeout) { 288 | 'use strict'; 289 | this.directives = {}; 290 | var preloadDirectives = {}; 291 | function preLoad(referenceId) { 292 | var directive; 293 | if (preloadDirectives[referenceId]) { 294 | directive = preloadDirectives[referenceId]; 295 | } else { 296 | directive = preloadDirectives[referenceId] = { messages: [] }; 297 | } 298 | return directive; 299 | } 300 | this.initDirective = function (referenceId, limitMessages) { 301 | if (preloadDirectives[referenceId]) { 302 | this.directives[referenceId] = preloadDirectives[referenceId]; 303 | this.directives[referenceId].limitMessages = limitMessages; 304 | } else { 305 | this.directives[referenceId] = { 306 | messages: [], 307 | limitMessages: limitMessages 308 | }; 309 | } 310 | return this.directives[referenceId]; 311 | }; 312 | this.getAllMessages = function (referenceId) { 313 | referenceId = referenceId || 0; 314 | var messages; 315 | if (this.directives[referenceId]) { 316 | messages = this.directives[referenceId].messages; 317 | } else { 318 | messages = []; 319 | } 320 | return messages; 321 | }; 322 | this.destroyAllMessages = function (referenceId) { 323 | var messages = this.getAllMessages(referenceId), i = messages.length; 324 | for (i - 1; i >= 0; i--) { 325 | messages[i].destroy(); 326 | } 327 | if (this.directives[referenceId]) { 328 | this.directives[referenceId].messages = []; 329 | } 330 | }; 331 | this.addMessage = function (message) { 332 | var directive, messages, found, msgText; 333 | if (this.directives[message.referenceId]) { 334 | directive = this.directives[message.referenceId]; 335 | } else { 336 | directive = preLoad(message.referenceId); 337 | } 338 | messages = directive.messages; 339 | if (this.onlyUnique) { 340 | angular.forEach(messages, function (msg) { 341 | msgText = $sce.getTrustedHtml(msg.text); 342 | if (message.text === msgText && message.severity === msg.severity && message.title === msg.title) { 343 | found = true; 344 | } 345 | }); 346 | if (found) { 347 | return; 348 | } 349 | } 350 | message.text = $sce.trustAsHtml(String(message.text)); 351 | if (message.ttl && message.ttl !== -1) { 352 | message.countdown = message.ttl / 1000; 353 | message.promises = []; 354 | message.close = false; 355 | message.countdownFunction = function () { 356 | if (message.countdown > 1) { 357 | message.countdown--; 358 | message.promises.push($timeout(message.countdownFunction, 1000)); 359 | } else { 360 | message.countdown--; 361 | } 362 | }; 363 | } 364 | if (angular.isDefined(directive.limitMessages)) { 365 | var diff = messages.length - (directive.limitMessages - 1); 366 | if (diff > 0) { 367 | messages.splice(directive.limitMessages - 1, diff); 368 | } 369 | } 370 | if (this.reverseOrder) { 371 | messages.unshift(message); 372 | } else { 373 | messages.push(message); 374 | } 375 | if (typeof message.onopen === 'function') { 376 | message.onopen(); 377 | } 378 | if (message.ttl && message.ttl !== -1) { 379 | message.promises.push($timeout(angular.bind(this, function () { 380 | this.deleteMessage(message); 381 | }), message.ttl)); 382 | message.promises.push($timeout(message.countdownFunction, 1000)); 383 | } 384 | return message; 385 | }; 386 | this.deleteMessage = function (message) { 387 | var messages = this.directives[message.referenceId].messages, index = messages.indexOf(message); 388 | if (index > -1) { 389 | messages[index].close = true; 390 | messages.splice(index, 1); 391 | } 392 | if (typeof message.onclose === 'function') { 393 | message.onclose(); 394 | } 395 | }; 396 | } 397 | ]); -------------------------------------------------------------------------------- /server/.gitignore: -------------------------------------------------------------------------------- 1 | lib-cov 2 | *.seed 3 | *.log 4 | *.csv 5 | *.dat 6 | *.out 7 | *.pid 8 | *.gz 9 | 10 | pids 11 | logs 12 | results 13 | 14 | npm-debug.log 15 | -------------------------------------------------------------------------------- /server/config/config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | server: { 3 | 4 | host: '0.0.0.0', 5 | port: 8000 6 | }, 7 | publicFolder: './public', 8 | uploadFolder: '/uploads', 9 | MixFolder: './public/uploads', 10 | MixInsideFolder: './public/uploads/' 11 | }; 12 | -------------------------------------------------------------------------------- /server/controller/uploadDownload.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'), 2 | multiparty = require('multiparty'), 3 | walk = require('walk'), 4 | Config = require('../config/config'); 5 | /* 6 | * Display upload form 7 | */ 8 | 9 | exports.display_form = { 10 | handler: function(requestuest, reply) { 11 | reply( 12 | '
' + 13 | '' + 14 | '' + 15 | '
' 16 | ); 17 | } 18 | }; 19 | 20 | /* 21 | * upload file 22 | */ 23 | 24 | exports.uploadFile = { 25 | payload: { 26 | maxBytes: 209715200, 27 | output: 'stream', 28 | parse: false 29 | }, 30 | handler: function(requset, reply) { 31 | var form = new multiparty.Form(); 32 | form.parse(requset.payload, function(err, fields, files) { 33 | if (err) return reply(err); 34 | else upload(files, reply); 35 | }); 36 | } 37 | }; 38 | 39 | /* 40 | * upload file function 41 | */ 42 | 43 | var upload = function(files, reply) { 44 | fs.readFile(files.file[0].path, function(err, data) { 45 | checkFileExist(); 46 | fs.writeFile(Config.MixInsideFolder + files.file[0].originalFilename, data, function(err) { 47 | if (err) return reply(err); 48 | else return reply('File uploaded to: ' + Config.MixInsideFolder + files.file[0].originalFilename); 49 | 50 | }); 51 | }); 52 | }; 53 | 54 | /* 55 | * Check File existence and create if not exist 56 | */ 57 | 58 | var checkFileExist = function() { 59 | fs.exists(Config.publicFolder, function(exists) { 60 | if (exists === false) fs.mkdirSync(Config.publicFolder); 61 | 62 | fs.exists(Config.MixFolder, function(exists) { 63 | if (exists === false) fs.mkdirSync(Config.MixFolder); 64 | }); 65 | }); 66 | }; 67 | 68 | /** 69 | * get file 70 | */ 71 | 72 | exports.getFile = { 73 | handler: function(request, reply) { 74 | var file = request.params.file, 75 | path = Config.publicFolder + Config.uploadFolder + "/" + file, 76 | ext = file.substr(file.lastIndexOf('.') + 1); 77 | fs.readFile(path, function(error, content) { 78 | if (error) return reply("file not found"); 79 | var contentType; 80 | switch (ext) { 81 | case "pdf": 82 | contentType = 'application/pdf'; 83 | break; 84 | case "ppt": 85 | contentType = 'application/vnd.ms-powerpoint'; 86 | break; 87 | case "pptx": 88 | contentType = 'application/vnd.openxmlformats-officedocument.preplyentationml.preplyentation'; 89 | break; 90 | case "xls": 91 | contentType = 'application/vnd.ms-excel'; 92 | break; 93 | case "xlsx": 94 | contentType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'; 95 | break; 96 | case "doc": 97 | contentType = 'application/msword'; 98 | break; 99 | case "docx": 100 | contentType = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'; 101 | break; 102 | case "csv": 103 | contentType = 'application/octet-stream'; 104 | break; 105 | default: 106 | return reply.file(path); 107 | } 108 | return reply(content).header('Content-Type', contentType).header("Content-Disposition", "attachment; filename=" + file); 109 | }); 110 | } 111 | }; 112 | 113 | /** 114 | *get fileList 115 | */ 116 | 117 | exports.fileList = { 118 | handler: function(request, reply) { 119 | var files = []; 120 | // Walker options 121 | var walker = walk.walk(Config.publicFolder + Config.uploadFolder, { 122 | followLinks: false 123 | }); 124 | 125 | walker.on('file', function(root, stat, next) { 126 | // Add this file to the list of files 127 | files.push(stat.name); 128 | next(); 129 | }); 130 | 131 | walker.on('end', function() { 132 | return reply(files); 133 | }); 134 | } 135 | }; 136 | -------------------------------------------------------------------------------- /server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hapi-file-upload-download", 3 | "description": "hapi-file-upload-download", 4 | "version": "0.1.0", 5 | "main": "server", 6 | "engines": { 7 | "node": ">=0.10.22" 8 | }, 9 | "dependencies": { 10 | "hapi": "7.0.0", 11 | "multiparty": "^4.1.1", 12 | "walk": "^2.3.9" 13 | }, 14 | "keywords": [ 15 | "hapi", 16 | "file upload", 17 | "file download", 18 | "file list" 19 | ], 20 | "author": { 21 | "name": "sonipandey", 22 | "email": "sonipandey.71@gmail.com" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /server/routes.js: -------------------------------------------------------------------------------- 1 | // Load modules 2 | 3 | var UD = require('./controller/uploadDownload'), 4 | Static = require('./static'); 5 | 6 | // API Server Endpoints 7 | exports.endpoints = [ 8 | 9 | { method: 'GET', path: '/{somethingss*}', config: Static.get }, 10 | // { method: 'GET', path: '/', config: UD.display_form}, 11 | { method: 'POST', path: '/upload', config: UD.uploadFile}, 12 | { method: 'GET', path: '/get/{file}', config: UD.getFile}, 13 | { method: 'GET', path: '/fileList', config: UD.fileList} 14 | ]; -------------------------------------------------------------------------------- /server/server.js: -------------------------------------------------------------------------------- 1 | var Hapi = require('hapi'), 2 | Routes = require('./routes'), 3 | Config = require('./config/config'); 4 | 5 | 6 | var app = {}; 7 | app.config = Config; 8 | 9 | var server = Hapi.createServer(app.config.server.host, app.config.server.port, {cors: true}); 10 | 11 | server.route(Routes.endpoints); 12 | 13 | server.start(function () { 14 | console.log('Server started ', server.info.uri); 15 | }); -------------------------------------------------------------------------------- /server/static.js: -------------------------------------------------------------------------------- 1 | // Declare internals 2 | 3 | var internals = {}; 4 | 5 | // Get session information endpoint 6 | 7 | exports.get = { 8 | handler: { 9 | directory: { 10 | path: '../client/src', 11 | index: true 12 | } 13 | } 14 | } --------------------------------------------------------------------------------