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

You can create an instance of this gateway using:

7 |
$gateway = GatewayFactory::create('{{ gateway.shortName }}');
 8 | $response = $gateway->initialize($params);
9 | 10 |

Gateway Settings

11 |

Note These settings will be stored in your session and used to create test purchases.

12 | 13 |
14 | 15 | {% for key, default in gateway.getDefaultParameters %} 16 | 17 |
18 | 19 |
20 | 21 |
22 |
23 | 24 | {% endfor %} 25 | 26 |
27 |
28 | 29 |

Gateway Methods

30 |

Click on a method to generate a test request.

31 | 55 | 56 | {% endblock %} 57 | -------------------------------------------------------------------------------- /views/index.twig: -------------------------------------------------------------------------------- 1 | {% extends "layout.twig" %} 2 | 3 | {% set title = "Omnipay Example Application" %} 4 | {% block content %} 5 |

The following gateways are available:

6 | 7 | 12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /views/layout.twig: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {{ title }} 6 | 7 | 8 | 9 |
10 |

{{ title }}

11 | 12 | {% for message in app.session.flashbag.get('success') %} 13 |
{{ message }}
14 | {% endfor %} 15 | 16 | {% block content %}{% endblock %} 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /views/request.twig: -------------------------------------------------------------------------------- 1 | {% extends "layout.twig" %} 2 | 3 | {% set title = gateway.name~": "~method~"()" %} 4 | {% block content %} 5 | 6 |

The charge will be created like so:

7 |
$gateway = GatewayFactory::create('{{ gateway.shortName }}');
 8 | $response = $gateway->{{ method }}($params);
9 | 10 |
11 | 12 |

Request Parameters

13 | 14 |

The following parameters are available. Not all options are required by all gateways.

15 |

Note Normally these parameters would be generated by your application and not set via form input.

16 | 17 | {% for key in ["amount", "currency", "description", "transactionId", "transactionReference", "cardReference", "returnUrl", "cancelUrl", "notifyUrl", "issuer"] %} 18 | 19 |
20 | 21 |
22 | 23 |
24 |
25 | 26 | {% endfor %} 27 | 28 | {% if card is defined %} 29 | 30 |

Credit Card Parameters

31 | 32 |

The following credit card parameters are available. Normally you will assign these 33 | directly from POST data.

34 | {% if gateway.shortName == 'Dummy' %} 35 |

Dummy CreditCard numbers: 36 |

40 |

41 | {% endif %} 42 |

Important Never store raw credit card details in your application! Instead, you should pass them straight to the gateway.

43 | 44 | {% for key in ["firstName", "lastName", "number", "expiryMonth", "expiryYear", "startMonth", "startYear", "cvv", 45 | "issueNumber", "address1", "address2", "city", "postcode", "state", "country", "phone", "email"] %} 46 | 47 |
48 | 49 |
50 | 51 |
52 |
53 | 54 | {% endfor %} 55 | 56 | {% endif %} 57 | 58 |
59 | 60 |
61 | 62 | {% endblock %} 63 | -------------------------------------------------------------------------------- /views/response.twig: -------------------------------------------------------------------------------- 1 | {% extends "layout.twig" %} 2 | 3 | {% set title = gateway.name~": Response" %} 4 | {% block content %} 5 | 6 | {% if response.isSuccessful() %} 7 |
Congratulations, your request was successful!
8 | {% elseif response.isRedirect() %} 9 |
Your request requires {{ response.redirectMethod }} 10 | redirect to an off-site payment page.
11 | 12 | {% if response.redirectMethod == "GET" %} 13 |

Redirect Now

14 | {% elseif response.redirectMethod == "POST" %} 15 |
16 |

17 | {% for key, value in response.redirectData %} 18 | 19 | {% endfor %} 20 | 21 | 22 |

23 |
24 | {% endif %} 25 | {% else %} 26 |
Sorry, your request failed.
27 | {% endif %} 28 | 29 |

The response object had the following to say:

30 | 31 |

$response->isSuccessful()

32 |
{{ response.isSuccessful() ? "true" : "false" }}
33 | 34 |

$response->isRedirect()

35 |
{{ response.isRedirect() ? "true" : "false" }}
36 | 37 | {% if response.redirectUrl is defined %} 38 |

$response->getRedirectUrl()

39 |
{{ response.redirectUrl }}
40 | {% endif %} 41 | 42 | {% if response.redirectMethod is defined %} 43 |

$response->getRedirectMethod()

44 |
{{ response.redirectMethod }}
45 | {% endif %} 46 | 47 | {% if response.redirectData is defined %} 48 |

$response->getRedirectData()

49 |
{{ dump(response.redirectData) }}
50 | {% endif %} 51 | 52 |

$response->getMessage()

53 |
{{ response.message }}
54 | 55 |

$response->getCode()

56 |
{{ response.code }}
57 | 58 |

$response->getTransactionReference()

59 |
{{ response.transactionReference }}
60 | 61 | {% if response.cardReference is defined %} 62 |

$response->getCardReference()

63 |
{{ dump(response.cardReference) }}
64 | {% endif %} 65 | 66 |

$response->getData()

67 |
{{ dump(response.data) }}
68 | 69 | {% endblock %} 70 | --------------------------------------------------------------------------------