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