Conversation
📝 WalkthroughWalkthroughThis pull request introduces a complete website template by adding a comprehensive HTML page, CSS styling frameworks (Bootstrap, custom theme, component styles), Font Awesome icon assets in multiple formats, and JavaScript plugins for interactivity including sliders, lightbox galleries, one-page navigation, and feature detection. Changes
Sequence Diagram(s)sequenceDiagram
participant Browser as Browser/<br/>Document
participant Init as custom.js<br/>(init)
participant Nav as onePageNav
participant Grid as Isotope
participant Gallery as Fancybox
participant Slider as jquery.cslider
Browser->>Init: Document ready
activate Init
Init->>Nav: Initialize `#mainNav`<br/>(smooth scroll, active highlight)
activate Nav
Nav->>Nav: Bind scroll/click handlers
deactivate Nav
Init->>Grid: Initialize .isotopeWrapper<br/>(masonry + filter)
activate Grid
Grid->>Grid: Setup layout & filter buttons
deactivate Grid
Init->>Gallery: Initialize .fancybox<br/>(lightbox on click)
activate Gallery
Gallery->>Gallery: Bind click handlers
deactivate Gallery
Init->>Slider: Initialize `#da-slider`<br/>(autoplay)
activate Slider
Slider->>Slider: Setup slides & autoplay interval
deactivate Slider
deactivate Init
Note over Browser,Slider: User interactions
Browser->>Nav: Scroll page
Nav->>Nav: Update active nav link
Browser->>Grid: Click filter button
Grid->>Grid: Animate portfolio items
Browser->>Gallery: Click portfolio image
Gallery->>Browser: Show lightbox overlay
Browser->>Slider: Auto-advance slide
Slider->>Browser: Update slide visibility
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
Tip Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs). Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 91c946cb81
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| <div class="row"> | ||
| <div class="portfolio-items isotopeWrapper clearfix" id="3"> | ||
|
|
||
| <article class="col-md-4isotopeItem webdesign"> |
There was a problem hiding this comment.
Add missing space before isotopeItem class
The portfolio entries use class="col-md-4isotopeItem ...", which merges two classes into one token. In js/custom.js, Isotope is initialized with itemSelector: '.isotopeItem', so none of these <article> elements are recognized as grid items; this breaks masonry layout and makes the filter buttons ineffective on the portfolio section. Update each portfolio card to separate the classes (e.g., col-md-4 isotopeItem ...).
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Actionable comments posted: 7
Note
Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.
🟡 Minor comments (14)
css/da-slider.css-71-74 (1)
71-74:⚠️ Potential issue | 🟡 MinorDuplicate
font-styledeclaration.
font-style: italicis declared twice (lines 71 and 73).font-style: italic; font-weight: 400; - font-style: italic; }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@css/da-slider.css` around lines 71 - 74, The CSS rule block contains a duplicated property declaration for font-style (two occurrences of "font-style: italic"); remove the redundant declaration so the block only includes one font-style: italic alongside font-weight: 400 (i.e., keep a single font-style line and delete the extra one to avoid duplication and potential lint warnings).css/da-slider.css-155-159 (1)
155-159:⚠️ Potential issue | 🟡 MinorInvalid CSS timing function
ease-in-out-out.This is a typo;
ease-in-out-outis not a valid CSS easing function and will be ignored. Should beease-in-out.- -webkit-transition: opacity 0.4s ease-in-out-out 0.2s; - -moz-transition: opacity 0.4s ease-in-out-out 0.2s; - -o-transition: opacity 0.4s ease-in-out-out 0.2s; - -ms-transition: opacity 0.4s ease-in-out-out 0.2s; - transition: opacity 0.4s ease-in-out-out 0.2s; + -webkit-transition: opacity 0.4s ease-in-out 0.2s; + -moz-transition: opacity 0.4s ease-in-out 0.2s; + -o-transition: opacity 0.4s ease-in-out 0.2s; + -ms-transition: opacity 0.4s ease-in-out 0.2s; + transition: opacity 0.4s ease-in-out 0.2s;🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@css/da-slider.css` around lines 155 - 159, The transition declarations for opacity (the vendor-prefixed -webkit-transition, -moz-transition, -o-transition, -ms-transition and the unprefixed transition) use an invalid timing function `ease-in-out-out`; update each of those transition lines in css/da-slider.css (the opacity transition rules) to use the correct `ease-in-out` timing function while keeping the 0.4s duration and 0.2s delay intact.js/jquery.cslider.js-55-56 (1)
55-56:⚠️ Potential issue | 🟡 MinorMissing null check for Modernizr global.
The code accesses
Modernizr.cssanimationsandModernizr.csstransitionswithout verifying thatModernizris defined. This will throw a ReferenceError if Modernizr isn't loaded.🛡️ Proposed defensive check
- this.cssAnimations = Modernizr.cssanimations; - this.cssTransitions = Modernizr.csstransitions; + this.cssAnimations = typeof Modernizr !== 'undefined' && Modernizr.cssanimations; + this.cssTransitions = typeof Modernizr !== 'undefined' && Modernizr.csstransitions;🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@js/jquery.cslider.js` around lines 55 - 56, The code assigns this.cssAnimations = Modernizr.cssanimations and this.cssTransitions = Modernizr.csstransitions without checking that the global Modernizr exists; update the initialization (where cssAnimations and cssTransitions are set) to first detect whether typeof Modernizr !== 'undefined' (or window.Modernizr) and only read Modernizr.cssanimations and Modernizr.csstransitions when present, otherwise set this.cssAnimations and this.cssTransitions to sensible defaults (false) so no ReferenceError occurs when Modernizr is not loaded.js/jquery.cslider.js-272-276 (1)
272-276:⚠️ Potential issue | 🟡 MinorIncorrect
thisreference in standalone function.
this.consolewill not referencewindow.consolein a standalone function. Should usewindow.consoledirectly.var logError = function( message ) { - if ( this.console ) { + if ( window.console ) { console.error( message ); } };🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@js/jquery.cslider.js` around lines 272 - 276, The standalone function logError uses this.console which can be undefined; update logError to reference the global console safely (e.g., use window.console or check typeof console !== 'undefined') and call console.error only when that global exists; modify the logError function body (the function named logError) to use the global console check instead of this.console so it works in non-method contexts.css/da-slider.css-135-136 (1)
135-136:⚠️ Potential issue | 🟡 MinorInvalid linear-gradient direction syntax.
linear-gradient(top, ...)uses non-standard syntax. Modern browsers requireto bottomfor a top-to-bottom gradient.- background: linear-gradient(top, rgba(255,255,255,1) 0%,rgba(246,246,246,1) 47%,rgba(237,237,237,1) 100%); + background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(246,246,246,1) 47%,rgba(237,237,237,1) 100%);🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@css/da-slider.css` around lines 135 - 136, Replace the non-standard linear-gradient direction syntax used in the background property (currently using "linear-gradient(top, ...)" in css/da-slider.css) with the modern standard "linear-gradient(to bottom, ...)" so the gradient renders consistently in modern browsers; update the background declaration for the selector where that property appears and consider adding vendor-prefixed variants (e.g., -webkit-linear-gradient) if broader legacy support is desired.js/fancybox/jquery.fancybox.css-261-263 (1)
261-263:⚠️ Potential issue | 🟡 MinorReplace non-standard media features with standard
resolutionqueries.Lines 261–263 use non-standard media features (
min--moz-device-pixel-ratioand unprefixedmin-device-pixel-ratio) that modern linters flag and are not part of the CSS specification. Replace with the standardresolutionmedia feature usingdppxunits, retaining the-webkit-prefix for backward compatibility.🎯 Suggested patch
-@media only screen and (-webkit-min-device-pixel-ratio: 1.5), - only screen and (min--moz-device-pixel-ratio: 1.5), - only screen and (min-device-pixel-ratio: 1.5){ +@media (min-resolution: 1.5dppx), (-webkit-min-device-pixel-ratio: 1.5) {🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@js/fancybox/jquery.fancybox.css` around lines 261 - 263, The media query block starting with "@media only screen and (-webkit-min-device-pixel-ratio: 1.5)" uses non-standard features; replace the non-standard "min--moz-device-pixel-ratio" and "min-device-pixel-ratio" checks with the standard "min-resolution" using dppx while keeping the WebKit-prefixed check for legacy browsers. Update the media query to combine (-webkit-min-device-pixel-ratio: 1.5) and (min-resolution: 1.5dppx) (and you may include the comma-separated equivalent for older engines if desired) so the selector is standard-compliant and linter-friendly.index.html-435-435 (1)
435-435:⚠️ Potential issue | 🟡 MinorTypo in inline style:
maring-bottomshould bemargin-bottom.This CSS property name typo means the margin won't be applied.
🐛 Proposed fix
-<div id="mapWrapper" class="mb30" style="position: relative; maring-bottom:20px; background-color: rgb(229, 227, 223); overflow: hidden; -webkit-transform: translateZ(0px);"> +<div id="mapWrapper" class="mb30" style="position: relative; margin-bottom:20px; background-color: rgb(229, 227, 223); overflow: hidden; -webkit-transform: translateZ(0px);">🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@index.html` at line 435, The inline style on the element with id "mapWrapper" contains a typo: "maring-bottom" should be corrected to "margin-bottom" so the bottom margin is applied; locate the div with id="mapWrapper" and replace the misspelled property name in its style attribute.css/styles.css-9-13 (1)
9-13:⚠️ Potential issue | 🟡 MinorRemove quotes around generic font family.
The generic font family
sans-serifshould not be quoted. Quoting it treats it as a named font rather than a fallback keyword.✏️ Proposed fix
* { margin: 0; padding: 0; - font-family: 'Roboto', 'sans-serif'; + font-family: 'Roboto', sans-serif; }Apply the same fix on line 17.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@css/styles.css` around lines 9 - 13, The font-family declaration in the universal selector (*) incorrectly wraps the generic family sans-serif in quotes; update the font-family on the rule using '*' (and the other rule referenced at line 17) to remove the quotes around sans-serif so it reads Roboto, sans-serif (keep quotes only around 'Roboto' if you prefer). Ensure both occurrences (the universal selector's font-family and the second font-family instance pointed out in the comment) are updated consistently.css/styles.css-7-7 (1)
7-7:⚠️ Potential issue | 🟡 MinorUse HTTPS for external resource imports.
The Google Fonts import uses HTTP instead of HTTPS, which can cause mixed content warnings/blocks on HTTPS sites and is a security concern.
🔒 Proposed fix
-@import url(http://fonts.googleapis.com/css?family=Roboto:400,900,500); +@import url(https://fonts.googleapis.com/css?family=Roboto:400,900,500);🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@css/styles.css` at line 7, The `@import` rule currently uses an insecure HTTP URL for the Google Fonts resource; update the `@import` line (the rule starting with "@import url(http://fonts.googleapis.com/css?family=Roboto:400,900,500);") to use HTTPS (e.g., https://fonts.googleapis.com/...) or a protocol-relative URL to prevent mixed-content issues and ensure the font is loaded securely.index.html-63-65 (1)
63-65:⚠️ Potential issue | 🟡 MinorMalformed HTML comment.
The commented-out code has broken syntax
<<!--h1>which creates invalid HTML. The<before the comment start is malformed.✏️ Proposed fix
- <<!--h1>Responsive Page Scrolling<br/><span>with Bootstrap</span></h1> - <p class="lead">Use the navigation above to scroll to different page sections.</p> - <p><a href="#about" class="button-outline"> More.. </a></p>--> + <!--<h1>Responsive Page Scrolling<br/><span>with Bootstrap</span></h1> + <p class="lead">Use the navigation above to scroll to different page sections.</p> + <p><a href="#about" class="button-outline"> More.. </a></p>-->🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@index.html` around lines 63 - 65, Remove the stray extra "<" before the HTML comment opener so the block becomes a valid comment; locate the malformed commented block containing "<<!--h1>" (the h1 heading, the <p class="lead"> line and the <a href="#about" class="button-outline"> line) and change the opening comment to <!-- and ensure the closing --> is present (or fully uncomment the block if intended to be visible).index.html-496-499 (1)
496-499:⚠️ Potential issue | 🟡 MinorExtra quote characters in
classattributes.The Font Awesome icon elements have double closing quotes (
fa-lg""), which is invalid HTML and may cause parsing issues.🐛 Proposed fix
-<li><a href="#" class="fbIcon" target="_blank"><i class="fa fa-facebook-square fa-lg""></i></a></li> -<li><a href="#" class="twitterIcon" target="_blank"><i class="fa fa-twitter-square fa-lg""></i></a></li> -<li><a href="#" class="googleIcon" target="_blank"><i class="fa fa-google-plus-square fa-lg""></i></a></li> -<li><a href="#" class="pinterest" target="_blank"><i class="fa fa-pinterest-square fa-lg""></i></a></li> +<li><a href="#" class="fbIcon" target="_blank"><i class="fa fa-facebook-square fa-lg"></i></a></li> +<li><a href="#" class="twitterIcon" target="_blank"><i class="fa fa-twitter-square fa-lg"></i></a></li> +<li><a href="#" class="googleIcon" target="_blank"><i class="fa fa-google-plus-square fa-lg"></i></a></li> +<li><a href="#" class="pinterest" target="_blank"><i class="fa fa-pinterest-square fa-lg"></i></a></li>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@index.html` around lines 496 - 499, Fix the malformed class attributes on the Font Awesome <i> elements inside the social links (anchors with classes fbIcon, twitterIcon, googleIcon, pinterest) by removing the stray extra double-quote so each class attribute ends with a single quote (e.g., change class="fa fa-facebook-square fa-lg"" to class="fa fa-facebook-square fa-lg"). Ensure all four <i> tags use correctly-quoted class attributes.index.html-58-58 (1)
58-58:⚠️ Potential issue | 🟡 MinorInvalid
idattribute contains#character.The
idattribute should not include the#symbol—that's only used in selectors/hrefs. This will break the back-to-top link on line 533.🐛 Proposed fix
-<div id="#top"></div> +<div id="top"></div>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@index.html` at line 58, The div uses an invalid id value "#top" — change the id on the div element (currently id="#top") to "top" (remove the leading '#') and verify the back-to-top anchor (the link referencing "#top") continues to use href="#top" so the jump works; update any other references if they incorrectly include or omit the '#' accordingly.index.html-527-528 (1)
527-528:⚠️ Potential issue | 🟡 MinorUse HTTPS for external links.
The link to webThemez.com uses HTTP. As flagged by static analysis (CWE-319), prefer HTTPS URLs.
🔒 Proposed fix
-<div class="pull-right">Template by <a href="http://webThemez.com"> WebThemez.com</a></div> +<div class="pull-right">Template by <a href="https://webThemez.com"> WebThemez.com</a></div>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@index.html` around lines 527 - 528, Update the external anchor that currently points to "http://webThemez.com" to use HTTPS instead; locate the anchor element containing the text "Template by" or the href "http://webThemez.com" and change its href to "https://webThemez.com" (or a verified HTTPS URL) so the external link loads over TLS.css/styles.css-240-243 (1)
240-243:⚠️ Potential issue | 🟡 MinorShorthand property overrides
background-size.The
backgroundshorthand on line 242 resets thebackground-sizeproperty set on line 241. The static analysis correctly flagged this—shorthand properties reset all sub-properties not explicitly set.🐛 Proposed fix: Use individual properties instead
`#overlay` { position: fixed; width: 100%; height: 100%; z-index: 0; - background-size: 2px 100%; - background: url("../images/overlay.png") rgba(0,0,0,.6) !IMPORTANT; + background-image: url("../images/overlay.png"); + background-color: rgba(0,0,0,.6); + background-size: 2px 100%; }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@css/styles.css` around lines 240 - 243, The rule currently sets background-size and then immediately resets it by using the background shorthand; replace the shorthand with explicit properties so background-size: 2px 100% is preserved. Specifically, remove the background: ... shorthand and instead set background-image: url("../images/overlay.png"); background-color: rgba(0,0,0,.6); (and optionally background-repeat, background-position, background-attachment if needed), keep background-size: 2px 100% and z-index: 0, and use the correct !important spelling if required.
🧹 Nitpick comments (10)
css/da-slider.css (1)
691-699: Empty media query blocks.These media queries have no content and appear to be placeholders. Either implement responsive styles or remove them.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@css/da-slider.css` around lines 691 - 699, Remove or populate the empty responsive blocks: locate the three empty media query rules `@media` (min-width: 768px), `@media` (max-width: 768px), and `@media` (max-width: 480px) and either delete them if they are unused placeholders or add the intended responsive CSS rules (e.g., overrides for slider layout, sizing, or visibility) so they are not empty; ensure any added rules target the da-slider selectors used elsewhere in this file to maintain expected responsive behavior.font/css/font-awesome.css (2)
14-22: Missing generic font family fallback.The
.faclass specifies onlyfont-family: FontAwesomewithout a generic fallback. While this is standard FA 4.x code, adding a fallback improves robustness if the icon font fails to load..fa { display: inline-block; - font-family: FontAwesome; + font-family: FontAwesome, sans-serif;🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@font/css/font-awesome.css` around lines 14 - 22, The .fa rule currently sets font-family: FontAwesome with no generic fallback; update the .fa selector (font-family declaration) to include a generic fallback (e.g. font-family: "FontAwesome", sans-serif;) so icons degrade safely if the custom font fails to load and ensure the font name is quoted if it contains spaces.
1-4: Font Awesome 4.0.3 is significantly outdated.This version was released in November 2013. Font Awesome 7.2.0 is the current version (as of February 2026) with improved accessibility, better icon coverage, and security updates. Consider upgrading to a more recent version when updating dependencies.
The static analysis warnings (vendor prefixes, DXImageTransform filters) are expected for this legacy CSS targeting older browsers.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@font/css/font-awesome.css` around lines 1 - 4, The repository currently includes the very old Font Awesome 4.0.3 referenced in font/css/font-awesome.css; replace it with a modern release (e.g., Font Awesome 7.2.0) by updating the CSS/SCSS and font/icon assets and adjusting any usage paths and class names (older "fa-" classes may need mapping to new equivalents), update any build/config (webpack/asset pipeline) that references the old files, run the app UI tests to verify icons render and accessibility attributes (aria-hidden, role) are correct, and remove or note legacy vendor-prefixed rules left only for old-browser fallback while resolving any static-analysis flags after upgrade.js/jquery.nav.js (2)
135-143: Consider addinghasOwnPropertycheck in for-in loop.The
for-inloop iterates over all enumerable properties including inherited ones. Whilethis.sectionsis an internally-created plain object, adding a guard is defensive practice.for (var section in this.sections) { + if (!this.sections.hasOwnProperty(section)) continue; if ((this.sections[section] - windowHeight) < windowPos) { returnValue = section; } }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@js/jquery.nav.js` around lines 135 - 143, The for-in loop over this.sections may iterate inherited properties; update the loop in the method containing "for (var section in this.sections)" to skip non-own keys by adding a guard such as if (Object.prototype.hasOwnProperty.call(this.sections, section)) { ... } around the existing logic that compares this.sections[section] and sets returnValue, ensuring only own properties are considered.
214-215: Deprecated jQuery method.unbind().
.unbind()is deprecated since jQuery 3.0. Consider using.off()for consistency with modern jQuery patterns.- this.$win.unbind('scroll.onePageNav'); + this.$win.off('scroll.onePageNav');🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@js/jquery.nav.js` around lines 214 - 215, The call to the deprecated jQuery method unbind on this.$win should be replaced with the modern equivalent: call the .off method on the same this.$win jQuery object using the same event namespace 'scroll.onePageNav' so the event handler is removed in a jQuery-3+ compatible way; update the occurrence in js/jquery.nav.js where this.$win.unbind('scroll.onePageNav') appears to use this.$win.off(...) instead, preserving the event namespace.font/less/spinning.less (1)
4-9: Add reduced-motion fallback for infinite spin animation.Line 4-Line 9 forces perpetual motion; add a
prefers-reduced-motionoverride for accessibility.♿ Suggested patch
.@{fa-css-prefix}-spin { -webkit-animation: spin 2s infinite linear; -moz-animation: spin 2s infinite linear; -o-animation: spin 2s infinite linear; animation: spin 2s infinite linear; } + +@media (prefers-reduced-motion: reduce) { + .@{fa-css-prefix}-spin { + -webkit-animation: none; + -moz-animation: none; + -o-animation: none; + animation: none; + } +}🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@font/less/spinning.less` around lines 4 - 9, The infinite-spin rule for .@{fa-css-prefix}-spin forces motion; add a prefers-reduced-motion override so users who request reduced motion don't get the animation. Update the stylesheet to include a media query `@media` (prefers-reduced-motion: reduce) that targets .@{fa-css-prefix}-spin and sets animation, -webkit-animation, -moz-animation and -o-animation to none (or overrides the animation property) to disable the spin while preserving the original rule for other users.js/custom.js (1)
8-8: Potential issue: Usingidattribute as numeric divisor.The element's
idattribute (string"3"based onindex.htmlline 220) is used for division. While JavaScript coerces it to a number, this is fragile—if the id isn't numeric,$resizebecomesNaN, causing layout issues.💡 Suggested improvement
-var $resize = $('.isotopeWrapper').attr('id'); +var $resize = parseInt($('.isotopeWrapper').attr('id'), 10) || 3;Or better, use a
data-attribute:<div class="isotopeWrapper" data-columns="3">var $resize = parseInt($container.data('columns'), 10) || 3;🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@js/custom.js` at line 8, The code reads the id string from $('.isotopeWrapper') into var $resize and uses it as a numeric divisor, which is fragile; update the selector usage to read a numeric data attribute (e.g., data-columns) from the element instead of id, parse it as an integer with parseInt(..., 10), and provide a safe numeric fallback (e.g., 3) so $resize is always a valid number; change references to the variable $resize and the selector '.isotopeWrapper' accordingly.css/styles.css (1)
145-146: Empty CSS blocks flagged by linter.Lines 145-146 and 322-323 contain empty rule blocks. These appear to be placeholders—consider removing them or adding the intended styles.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@css/styles.css` around lines 145 - 146, The CSS file contains empty rule blocks (notably the .navbar-toggle selector and another empty selector later) which trigger the linter; either remove these empty blocks or populate them with the intended styles—update the .navbar-toggle rule (and the other empty selector block) by adding the actual CSS declarations you intended or delete the empty block entirely so the linter no longer flags it.index.html (1)
16-16: Use HTTPS for html5shim.The html5shim script uses HTTP. Additionally, googlecode.com has been deprecated—consider using a CDN like cdnjs or removing this polyfill if IE8 support isn't required.
🔒 Proposed fix
- <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> + <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@index.html` at line 16, The script tag referencing the html5shim uses an insecure HTTP URL and a deprecated host; update the <script> element that loads "html5.js" (the html5shim) to use a secure HTTPS CDN (for example replace the googlecode URL with a modern HTTPS CDN like cdnjs or jsDelivr), or remove the script tag entirely if IE8 support is not required; ensure the new src uses https:// and points to a maintained package hosting the html5shiv/html5shim.js/modernizr-latest.js (1)
1-7: Third-party library: Modernizr v2.7.2 is outdated.Consider upgrading to Modernizr 3.x (latest is v3.13.1, August 2024) for improved feature detection and smaller custom builds. However, this is not blocking—the current version remains functional.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@js/modernizr-latest.js` around lines 1 - 7, The Modernizr v2.7.2 file (js/modernizr-latest.js / global Modernizr) is outdated; replace it with a Modernizr 3.x custom build (e.g., v3.13.1) and update any usage of removed/renamed APIs (look for calls to Modernizr.load, Modernizr.addTest, and feature boolean checks) to the 3.x equivalents or polyfills; download a production-ready custom build from modernizr.com with only the required tests, swap the file, run the app, and adjust any code that relies on v2-specific APIs to use the Modernizr 3 API or alternative loaders.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@css/bootstrap.min.css`:
- Around line 1-7: The project is using Bootstrap v3.1.1 (outdated and
unsupported); replace this entire bootstrap.min.css with Bootstrap 5.x
(recommended v5.3.8) and migrate affected code: swap the v3 CSS file for the
official Bootstrap 5 distribution, remove references to deprecated components
(glyphicons, .col-xs-*, float-based .row/.col-* patterns) and update markup
using new Bootstrap 5 utilities and grid classes (e.g., replace .col-*-* with
.col, .row remains but rely on flexbox behavior), convert form classes to the
new form layout patterns, replace any jQuery-dependent plugins with Bootstrap 5
vanilla JS or native alternatives, and update any icon usage (Glyphicons ->
Bootstrap Icons or Font Awesome); run a full UI regression to fix breaking
changes in .navbar, .form-control, .btn, .input-group, .panel/.thumbnail/.well
(now cards), .table-responsive and any custom overrides.
In `@font/css/font-awesome.min.css`:
- Around line 1-4: The repo is using Font Awesome 4.0.3 (old `@font-face` rules
and FontAwesome font files); replace it with a maintained v6+/v7+ distribution
by removing the legacy font-awesome.min.css and font files and integrating the
modern package (either via the official CDN link or by installing
`@fortawesome/fontawesome-free` or the SVG JS packages), update references to the
old font-family and file names (the existing `@font-face` and src URLs, and
classes like .fa, .fa-lg, etc.) to the new distribution, and audit any markup
using old icon class names to map them to the corresponding new icon names/sets
per Font Awesome migration docs.
In `@font/less/font-awesome.less`:
- Around line 2-3: The comment header indicates Font Awesome 4.0.3 is used;
update the project to a maintained Font Awesome release (prefer v6 LTS or v7) by
replacing the old font files and the font/less/font-awesome.less contents with
the corresponding newer Font Awesome distribution files, update the top-of-file
license/version comment to the chosen version and license text, run a migration
pass to adjust any legacy icon class names (e.g., fa- prefix changes or shim
classes) used across the codebase, and ensure the build (asset bundling and
`@font-face` paths) and tests pass after the swap.
In `@font/less/stacked.less`:
- Line 4: The stylelint config is missing LESS parsing so valid LESS
interpolation like .@{fa-css-prefix}-stack fails; update .stylelintrc.json to
enable postcss-less for .less files by either setting "customSyntax":
"postcss-less" globally or adding an "overrides" entry that maps "*.less" to
"postcss-less" so LESS files are parsed correctly (refer to the LESS snippet
.@{fa-css-prefix}-stack and the .less files when applying the change).
In `@js/custom.js`:
- Around line 85-87: The ready-handler is using $('document') which looks for a
non-existent <document> element so customScripts.init() never runs; replace
$('document').ready(function () { customScripts.init(); }); with the correct
jQuery document selector $(document).ready(...) (or the shorthand $(function() {
customScripts.init(); })) so the ready handler fires and customScripts.init() is
invoked.
In `@js/fancybox/jquery.fancybox.css`:
- Line 1: Upgrade the unmaintained fancyBox v2.1.5 dependency
(jquery.fancybox.css and any usage of $.fancybox / $.fn.fancybox /
data-fancybox) to a maintained lightbox library to mitigate CVE-2024-5020;
remove the old CSS and JS, add a current library (e.g., Fancybox 4, PhotoSwipe,
or GLightbox), update all initialization calls and selectors that call
$.fancybox or use data-fancybox to the new library's API and data attributes,
adjust markup/CSS classes as required by the new API, run the app to fix any
breaking UI behavior, and re-scan dependencies to confirm the vulnerability is
resolved.
In `@js/jquery.cslider.js`:
- Around line 55-62: The condition checks mistakenly reference the same property
twice (cssAnimations) causing incorrect feature detection; update the
conditional expressions to test both properties: use (!this.cssAnimations ||
!this.cssTransitions) where it currently uses (!this.cssAnimations ||
!this.cssAnimations) so the fallback class is added when either animations or
transitions are unsupported, and replace occurrences of (this.cssAnimations &&
this.cssAnimations) with (this.cssAnimations && this.cssTransitions) where
combined support is required (references: this.cssAnimations,
this.cssTransitions, this.$el.addClass('da-slider-fb')).
---
Minor comments:
In `@css/da-slider.css`:
- Around line 71-74: The CSS rule block contains a duplicated property
declaration for font-style (two occurrences of "font-style: italic"); remove the
redundant declaration so the block only includes one font-style: italic
alongside font-weight: 400 (i.e., keep a single font-style line and delete the
extra one to avoid duplication and potential lint warnings).
- Around line 155-159: The transition declarations for opacity (the
vendor-prefixed -webkit-transition, -moz-transition, -o-transition,
-ms-transition and the unprefixed transition) use an invalid timing function
`ease-in-out-out`; update each of those transition lines in css/da-slider.css
(the opacity transition rules) to use the correct `ease-in-out` timing function
while keeping the 0.4s duration and 0.2s delay intact.
- Around line 135-136: Replace the non-standard linear-gradient direction syntax
used in the background property (currently using "linear-gradient(top, ...)" in
css/da-slider.css) with the modern standard "linear-gradient(to bottom, ...)" so
the gradient renders consistently in modern browsers; update the background
declaration for the selector where that property appears and consider adding
vendor-prefixed variants (e.g., -webkit-linear-gradient) if broader legacy
support is desired.
In `@css/styles.css`:
- Around line 9-13: The font-family declaration in the universal selector (*)
incorrectly wraps the generic family sans-serif in quotes; update the
font-family on the rule using '*' (and the other rule referenced at line 17) to
remove the quotes around sans-serif so it reads Roboto, sans-serif (keep quotes
only around 'Roboto' if you prefer). Ensure both occurrences (the universal
selector's font-family and the second font-family instance pointed out in the
comment) are updated consistently.
- Line 7: The `@import` rule currently uses an insecure HTTP URL for the Google
Fonts resource; update the `@import` line (the rule starting with "@import
url(http://fonts.googleapis.com/css?family=Roboto:400,900,500);") to use HTTPS
(e.g., https://fonts.googleapis.com/...) or a protocol-relative URL to prevent
mixed-content issues and ensure the font is loaded securely.
- Around line 240-243: The rule currently sets background-size and then
immediately resets it by using the background shorthand; replace the shorthand
with explicit properties so background-size: 2px 100% is preserved.
Specifically, remove the background: ... shorthand and instead set
background-image: url("../images/overlay.png"); background-color:
rgba(0,0,0,.6); (and optionally background-repeat, background-position,
background-attachment if needed), keep background-size: 2px 100% and z-index: 0,
and use the correct !important spelling if required.
In `@index.html`:
- Line 435: The inline style on the element with id "mapWrapper" contains a
typo: "maring-bottom" should be corrected to "margin-bottom" so the bottom
margin is applied; locate the div with id="mapWrapper" and replace the
misspelled property name in its style attribute.
- Around line 63-65: Remove the stray extra "<" before the HTML comment opener
so the block becomes a valid comment; locate the malformed commented block
containing "<<!--h1>" (the h1 heading, the <p class="lead"> line and the <a
href="#about" class="button-outline"> line) and change the opening comment to
<!-- and ensure the closing --> is present (or fully uncomment the block if
intended to be visible).
- Around line 496-499: Fix the malformed class attributes on the Font Awesome
<i> elements inside the social links (anchors with classes fbIcon, twitterIcon,
googleIcon, pinterest) by removing the stray extra double-quote so each class
attribute ends with a single quote (e.g., change class="fa fa-facebook-square
fa-lg"" to class="fa fa-facebook-square fa-lg"). Ensure all four <i> tags use
correctly-quoted class attributes.
- Line 58: The div uses an invalid id value "#top" — change the id on the div
element (currently id="#top") to "top" (remove the leading '#') and verify the
back-to-top anchor (the link referencing "#top") continues to use href="#top" so
the jump works; update any other references if they incorrectly include or omit
the '#' accordingly.
- Around line 527-528: Update the external anchor that currently points to
"http://webThemez.com" to use HTTPS instead; locate the anchor element
containing the text "Template by" or the href "http://webThemez.com" and change
its href to "https://webThemez.com" (or a verified HTTPS URL) so the external
link loads over TLS.
In `@js/fancybox/jquery.fancybox.css`:
- Around line 261-263: The media query block starting with "@media only screen
and (-webkit-min-device-pixel-ratio: 1.5)" uses non-standard features; replace
the non-standard "min--moz-device-pixel-ratio" and "min-device-pixel-ratio"
checks with the standard "min-resolution" using dppx while keeping the
WebKit-prefixed check for legacy browsers. Update the media query to combine
(-webkit-min-device-pixel-ratio: 1.5) and (min-resolution: 1.5dppx) (and you may
include the comma-separated equivalent for older engines if desired) so the
selector is standard-compliant and linter-friendly.
In `@js/jquery.cslider.js`:
- Around line 55-56: The code assigns this.cssAnimations =
Modernizr.cssanimations and this.cssTransitions = Modernizr.csstransitions
without checking that the global Modernizr exists; update the initialization
(where cssAnimations and cssTransitions are set) to first detect whether typeof
Modernizr !== 'undefined' (or window.Modernizr) and only read
Modernizr.cssanimations and Modernizr.csstransitions when present, otherwise set
this.cssAnimations and this.cssTransitions to sensible defaults (false) so no
ReferenceError occurs when Modernizr is not loaded.
- Around line 272-276: The standalone function logError uses this.console which
can be undefined; update logError to reference the global console safely (e.g.,
use window.console or check typeof console !== 'undefined') and call
console.error only when that global exists; modify the logError function body
(the function named logError) to use the global console check instead of
this.console so it works in non-method contexts.
---
Nitpick comments:
In `@css/da-slider.css`:
- Around line 691-699: Remove or populate the empty responsive blocks: locate
the three empty media query rules `@media` (min-width: 768px), `@media` (max-width:
768px), and `@media` (max-width: 480px) and either delete them if they are unused
placeholders or add the intended responsive CSS rules (e.g., overrides for
slider layout, sizing, or visibility) so they are not empty; ensure any added
rules target the da-slider selectors used elsewhere in this file to maintain
expected responsive behavior.
In `@css/styles.css`:
- Around line 145-146: The CSS file contains empty rule blocks (notably the
.navbar-toggle selector and another empty selector later) which trigger the
linter; either remove these empty blocks or populate them with the intended
styles—update the .navbar-toggle rule (and the other empty selector block) by
adding the actual CSS declarations you intended or delete the empty block
entirely so the linter no longer flags it.
In `@font/css/font-awesome.css`:
- Around line 14-22: The .fa rule currently sets font-family: FontAwesome with
no generic fallback; update the .fa selector (font-family declaration) to
include a generic fallback (e.g. font-family: "FontAwesome", sans-serif;) so
icons degrade safely if the custom font fails to load and ensure the font name
is quoted if it contains spaces.
- Around line 1-4: The repository currently includes the very old Font Awesome
4.0.3 referenced in font/css/font-awesome.css; replace it with a modern release
(e.g., Font Awesome 7.2.0) by updating the CSS/SCSS and font/icon assets and
adjusting any usage paths and class names (older "fa-" classes may need mapping
to new equivalents), update any build/config (webpack/asset pipeline) that
references the old files, run the app UI tests to verify icons render and
accessibility attributes (aria-hidden, role) are correct, and remove or note
legacy vendor-prefixed rules left only for old-browser fallback while resolving
any static-analysis flags after upgrade.
In `@font/less/spinning.less`:
- Around line 4-9: The infinite-spin rule for .@{fa-css-prefix}-spin forces
motion; add a prefers-reduced-motion override so users who request reduced
motion don't get the animation. Update the stylesheet to include a media query
`@media` (prefers-reduced-motion: reduce) that targets .@{fa-css-prefix}-spin and
sets animation, -webkit-animation, -moz-animation and -o-animation to none (or
overrides the animation property) to disable the spin while preserving the
original rule for other users.
In `@index.html`:
- Line 16: The script tag referencing the html5shim uses an insecure HTTP URL
and a deprecated host; update the <script> element that loads "html5.js" (the
html5shim) to use a secure HTTPS CDN (for example replace the googlecode URL
with a modern HTTPS CDN like cdnjs or jsDelivr), or remove the script tag
entirely if IE8 support is not required; ensure the new src uses https:// and
points to a maintained package hosting the html5shiv/html5shim.
In `@js/custom.js`:
- Line 8: The code reads the id string from $('.isotopeWrapper') into var
$resize and uses it as a numeric divisor, which is fragile; update the selector
usage to read a numeric data attribute (e.g., data-columns) from the element
instead of id, parse it as an integer with parseInt(..., 10), and provide a safe
numeric fallback (e.g., 3) so $resize is always a valid number; change
references to the variable $resize and the selector '.isotopeWrapper'
accordingly.
In `@js/jquery.nav.js`:
- Around line 135-143: The for-in loop over this.sections may iterate inherited
properties; update the loop in the method containing "for (var section in
this.sections)" to skip non-own keys by adding a guard such as if
(Object.prototype.hasOwnProperty.call(this.sections, section)) { ... } around
the existing logic that compares this.sections[section] and sets returnValue,
ensuring only own properties are considered.
- Around line 214-215: The call to the deprecated jQuery method unbind on
this.$win should be replaced with the modern equivalent: call the .off method on
the same this.$win jQuery object using the same event namespace
'scroll.onePageNav' so the event handler is removed in a jQuery-3+ compatible
way; update the occurrence in js/jquery.nav.js where
this.$win.unbind('scroll.onePageNav') appears to use this.$win.off(...) instead,
preserving the event namespace.
In `@js/modernizr-latest.js`:
- Around line 1-7: The Modernizr v2.7.2 file (js/modernizr-latest.js / global
Modernizr) is outdated; replace it with a Modernizr 3.x custom build (e.g.,
v3.13.1) and update any usage of removed/renamed APIs (look for calls to
Modernizr.load, Modernizr.addTest, and feature boolean checks) to the 3.x
equivalents or polyfills; download a production-ready custom build from
modernizr.com with only the required tests, swap the file, run the app, and
adjust any code that relies on v2-specific APIs to use the Modernizr 3 API or
alternative loaders.
ℹ️ Review info
Configuration used: defaults
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (33)
font/fonts/FontAwesome.otfis excluded by!**/*.otffont/fonts/fontawesome-webfont.eotis excluded by!**/*.eotfont/fonts/fontawesome-webfont.svgis excluded by!**/*.svgfont/fonts/fontawesome-webfont.ttfis excluded by!**/*.ttffont/fonts/fontawesome-webfont.woffis excluded by!**/*.woffimages/arrows.pngis excluded by!**/*.pngimages/banner-bg.jpgis excluded by!**/*.jpgimages/bg.pngis excluded by!**/*.pngimages/bg_line.pngis excluded by!**/*.pngimages/photo-1.jpgis excluded by!**/*.jpgimages/photo-2.jpgis excluded by!**/*.jpgimages/photo-3.jpgis excluded by!**/*.jpgimages/photo-4.jpgis excluded by!**/*.jpgimages/portfolio/img1.jpgis excluded by!**/*.jpgimages/portfolio/img2.jpgis excluded by!**/*.jpgimages/portfolio/img3.jpgis excluded by!**/*.jpgimages/portfolio/img4.jpgis excluded by!**/*.jpgimages/portfolio/img5.jpgis excluded by!**/*.jpgimages/portfolio/img6.jpgis excluded by!**/*.jpgimages/portfolio/img7.jpgis excluded by!**/*.jpgimages/portfolio/img8.jpgis excluded by!**/*.jpgimages/portfolio/img9.jpgis excluded by!**/*.jpgimages/trans_black_25.pngis excluded by!**/*.pngimages/trans_black_50.pngis excluded by!**/*.pngjs/bootstrap.min.jsis excluded by!**/*.min.jsjs/fancybox/blank.gifis excluded by!**/*.gifjs/fancybox/fancybox_loading.gifis excluded by!**/*.gifjs/fancybox/fancybox_loading_402x.gifis excluded by!**/*.gifjs/fancybox/fancybox_overlay.pngis excluded by!**/*.pngjs/fancybox/fancybox_sprite.pngis excluded by!**/*.pngjs/fancybox/fancybox_sprite_402x.pngis excluded by!**/*.pngjs/jquery-1.8.2.min.jsis excluded by!**/*.min.jsjs/jquery.isotope.min.jsis excluded by!**/*.min.js
📒 Files selected for processing (41)
README.mdcss/bootstrap.min.csscss/da-slider.csscss/isotope.csscss/styles.cssfont/css/font-awesome.cssfont/css/font-awesome.min.cssfont/less/bordered-pulled.lessfont/less/core.lessfont/less/fixed-width.lessfont/less/font-awesome.lessfont/less/icons.lessfont/less/larger.lessfont/less/list.lessfont/less/mixins.lessfont/less/path.lessfont/less/rotated-flipped.lessfont/less/spinning.lessfont/less/stacked.lessfont/less/variables.lessfont/scss/_bordered-pulled.scssfont/scss/_core.scssfont/scss/_fixed-width.scssfont/scss/_icons.scssfont/scss/_larger.scssfont/scss/_list.scssfont/scss/_mixins.scssfont/scss/_path.scssfont/scss/_rotated-flipped.scssfont/scss/_spinning.scssfont/scss/_stacked.scssfont/scss/_variables.scssfont/scss/font-awesome.scssindex.htmljs/custom.jsjs/fancybox/Descr.WD3js/fancybox/jquery.fancybox.cssjs/fancybox/jquery.fancybox.pack.jsjs/jquery.cslider.jsjs/jquery.nav.jsjs/modernizr-latest.js
💤 Files with no reviewable changes (1)
- README.md
| /*! | ||
| * Bootstrap v3.1.1 (http://getbootstrap.com) | ||
| * Copyright 2011-2014 Twitter, Inc. | ||
| * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) | ||
| */ | ||
|
|
||
| /*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),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')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{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);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);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);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)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{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);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)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{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);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)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{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);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)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print{display:none!important}} No newline at end of file |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
Bootstrap CSS framework v3.1.1 release date end of life
💡 Result:
- Bootstrap v3.1.1 release date: February 13, 2014. [1], [2]
- Bootstrap 3 end-of-life (EOL): July 24, 2019 — Bootstrap announced that Bootstrap 3 moved to EOL and would no longer receive critical security updates. [3], [4]
Sources: [1] versionlog (Bootstrap 3.x release history), [2] twbs/bootstrap GitHub release v3.1.1, [3] Bootstrap Blog LTS plan announcement (Jul 24, 2019), [4] Bootstrap docs EOL notice page.
🌐 Web query:
Bootstrap latest version 2026 current active support
💡 Result:
As of February 28, 2026, the latest Bootstrap release is Bootstrap 5.3.8 (released Aug 26, 2025) and the currently active/maintained major version line is v5.x (Bootstrap 5). [1], [2], [3]
Support status (official project):
- Actively supported: v5.x (“Current major release”). [1]
- Not current (legacy): v4.6.2 is listed as the “previous major release” (last update v4.6.2), and v3.4.1 is the last v3 release—these lines are not shown as current. [1]
Sources:
[1] https://getbootstrap.com/docs/versions/
[2] https://getbootstrap.com/
[3] https://github.com/twbs/bootstrap
🌐 Web query:
Bootstrap 3 vs Bootstrap 5 major differences features
💡 Result:
Bootstrap 3 vs Bootstrap 5 — major differences (features & breaking changes)
1) Architecture & tooling
- Preprocessor: Bootstrap 3 source CSS is Less (with an official Sass port), while newer Bootstrap moved to Sass as the primary source. [1], [3]
- Layout engine: Bootstrap 3’s grid/components were built in the “float era”; later Bootstrap moved to Flexbox by default, which is what Bootstrap 5 builds on. [3]
2) Grid & breakpoints
- Breakpoints / class names:
- Bootstrap 3 uses
xs/sm/md/lgpatterns likecol-xs-6and older responsive utility classes. [1] - Modern Bootstrap removed the
-xs-infix style (you usecol-6for the smallest tier), and Bootstrap 5’s grid documents six tiers includingxxl(col-xxl-*). [3], [5]
- Bootstrap 3 uses
3) Utilities (one of the biggest day-to-day differences)
- Bootstrap 3 uses utilities like
.visible-*-*and.hidden-*for responsive visibility. [1] - Modern Bootstrap replaced most of that with display utilities like
.d-none,.d-sm-block, etc. [3]
4) JavaScript & dependencies
- Bootstrap 3 plugins are jQuery plugins (Bootstrap’s docs state all plugins depend on jQuery). [2]
- Bootstrap 5 removed jQuery (uses vanilla JS) and renamed data attributes to the
data-bs-*namespace (e.g.,data-bs-toggle). It also moved to Popper v2. [4]
5) Components: additions/removals/renames
- Removed in Bootstrap 5: the Jumbotron component (intended to be recreated with utilities). [7]
- Added in Bootstrap 5: Offcanvas as a first-class component. [7]
6) Forms: class changes that commonly break migrations
Bootstrap 5 migration notes include several form-breaking changes, for example:
- Dropped
.form-group,.form-row,.form-inline(use grid + utilities instead) [6] - Dropped
.input-group-append/.input-group-prepend[6] - Renamed multiple “custom-*” classes (e.g.,
.custom-select→.form-select) [6]
7) CSS variables, RTL, and modern theming
- Bootstrap 5 has significantly expanded use of CSS custom properties (variables) (including for forms and color modes in later 5.x). [6]
- Bootstrap 5 includes RTL support changes (logical
start/endnaming, etc.). [6]
Sources
[1] Bootstrap 3.4 CSS docs (grid, responsive utilities, Less) — getbootstrap.com
[2] Bootstrap 3.4 JavaScript docs (jQuery dependency) — getbootstrap.com
[3] Bootstrap migration notes (Flexbox default, Sass, breakpoint/class changes) — getbootstrap.com
[4] “Bootstrap 5” release post (no jQuery, data-bs-*, Popper v2) — blog.getbootstrap.com
[5] Bootstrap 5 grid docs (breakpoints including xxl) — getbootstrap.com
[6] Bootstrap 5 migration guide (forms changes, RTL, CSS variables notes) — getbootstrap.com
[7] Bootstrap 5 migration notes (Jumbotron removed, Offcanvas added) — getbootstrap.com
Bootstrap v3.1.1 (released 2014) is severely outdated and no longer maintained.
Bootstrap 3 reached end-of-life on July 24, 2019 and receives no security updates. Upgrade to Bootstrap 5.x (currently v5.3.8) to gain:
- Active security maintenance and bug fixes
- Modern Flexbox-based grid (replacing floats)
- Vanilla JavaScript plugins (no jQuery dependency)
- Improved accessibility and CSS custom properties
- Significant breaking changes to grid classes, forms, and utilities will require refactoring
🧰 Tools
🪛 Biome (2.4.4)
[error] 7-7: Unexpected value or character.
(parse)
[error] 7-7: Unexpected value or character.
(parse)
[error] 7-7: Unexpected value or character.
(parse)
[error] 7-7: Unexpected value or character.
(parse)
[error] 7-7: Unexpected value or character.
(parse)
[error] 7-7: Unexpected value or character.
(parse)
[error] 7-7: Unexpected value or character.
(parse)
[error] 7-7: Unexpected value or character.
(parse)
[error] 7-7: Unexpected value or character.
(parse)
[error] 7-7: Unexpected value or character.
(parse)
[error] 7-7: Unexpected value or character.
(parse)
[error] 7-7: Unexpected value or character.
(parse)
[error] 7-7: Duplicate font names are redundant and unnecessary: monospace
(lint/suspicious/noDuplicateFontNames)
[error] 7-7: Unexpected unknown at-rule: -ms-viewport
(lint/suspicious/noUnknownAtRules)
🪛 Stylelint (17.3.0)
[error] 7-7: Unexpected vendor-prefixed at-rule "@-webkit-keyframes" (at-rule-no-vendor-prefix)
(at-rule-no-vendor-prefix)
[error] 7-7: Unexpected vendor-prefixed at-rule "@-ms-viewport" (at-rule-no-vendor-prefix)
(at-rule-no-vendor-prefix)
[error] 7-7: Unexpected duplicate font-family name monospace (font-family-no-duplicate-names)
(font-family-no-duplicate-names)
[error] 7-7: Unexpected missing generic font family (font-family-no-missing-generic-family-keyword)
(font-family-no-missing-generic-family-keyword)
[error] 7-7: Unexpected missing generic font family (font-family-no-missing-generic-family-keyword)
(font-family-no-missing-generic-family-keyword)
[error] 7-7: Expected quotes around "url" function argument (function-url-quotes)
(function-url-quotes)
[error] 7-7: Expected quotes around "url" function argument (function-url-quotes)
(function-url-quotes)
[error] 7-7: Expected quotes around "url" function argument (function-url-quotes)
(function-url-quotes)
[error] 7-7: Expected quotes around "url" function argument (function-url-quotes)
(function-url-quotes)
[error] 7-7: Expected quotes around "url" function argument (function-url-quotes)
(function-url-quotes)
[error] 7-7: Expected "page-break-inside" to be "break-inside" (property-no-deprecated)
(property-no-deprecated)
[error] 7-7: Expected "page-break-inside" to be "break-inside" (property-no-deprecated)
(property-no-deprecated)
[error] 7-7: Expected "page-break-after" to be "break-after" (property-no-deprecated)
(property-no-deprecated)
[error] 7-7: Unexpected deprecated property "clip" (property-no-deprecated)
(property-no-deprecated)
[error] 7-7: Expected "word-wrap" to be "overflow-wrap" (property-no-deprecated)
(property-no-deprecated)
[error] 7-7: Unexpected vendor-prefixed selector "::-moz-placeholder" (selector-no-vendor-prefix)
(selector-no-vendor-prefix)
[error] 7-7: Unexpected vendor-prefixed selector ":-ms-input-placeholder" (selector-no-vendor-prefix)
(selector-no-vendor-prefix)
[error] 7-7: Unexpected vendor-prefixed selector "::-webkit-input-placeholder" (selector-no-vendor-prefix)
(selector-no-vendor-prefix)
[error] 7-7: Expected complex :not() pseudo-class notation (selector-not-notation)
(selector-not-notation)
[error] 7-7: Expected complex :not() pseudo-class notation (selector-not-notation)
(selector-not-notation)
[error] 7-7: Expected complex :not() pseudo-class notation (selector-not-notation)
(selector-not-notation)
[error] 7-7: Expected complex :not() pseudo-class notation (selector-not-notation)
(selector-not-notation)
[error] 7-7: Expected complex :not() pseudo-class notation (selector-not-notation)
(selector-not-notation)
[error] 7-7: Expected complex :not() pseudo-class notation (selector-not-notation)
(selector-not-notation)
[error] 7-7: Expected complex :not() pseudo-class notation (selector-not-notation)
(selector-not-notation)
[error] 7-7: Expected complex :not() pseudo-class notation (selector-not-notation)
(selector-not-notation)
[error] 7-7: Expected complex :not() pseudo-class notation (selector-not-notation)
(selector-not-notation)
[error] 7-7: Expected complex :not() pseudo-class notation (selector-not-notation)
(selector-not-notation)
[error] 7-7: Unexpected vendor-prefixed value "-webkit-linear-gradient" (value-no-vendor-prefix)
(value-no-vendor-prefix)
[error] 7-7: Unexpected vendor-prefixed value "-webkit-linear-gradient" (value-no-vendor-prefix)
(value-no-vendor-prefix)
[error] 7-7: Unexpected vendor-prefixed value "-webkit-linear-gradient" (value-no-vendor-prefix)
(value-no-vendor-prefix)
[error] 7-7: Unexpected vendor-prefixed value "-webkit-linear-gradient" (value-no-vendor-prefix)
(value-no-vendor-prefix)
[error] 7-7: Unexpected vendor-prefixed value "-webkit-linear-gradient" (value-no-vendor-prefix)
(value-no-vendor-prefix)
[error] 7-7: Unexpected vendor-prefixed value "-webkit-linear-gradient" (value-no-vendor-prefix)
(value-no-vendor-prefix)
[error] 7-7: Unexpected vendor-prefixed value "-webkit-linear-gradient" (value-no-vendor-prefix)
(value-no-vendor-prefix)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@css/bootstrap.min.css` around lines 1 - 7, The project is using Bootstrap
v3.1.1 (outdated and unsupported); replace this entire bootstrap.min.css with
Bootstrap 5.x (recommended v5.3.8) and migrate affected code: swap the v3 CSS
file for the official Bootstrap 5 distribution, remove references to deprecated
components (glyphicons, .col-xs-*, float-based .row/.col-* patterns) and update
markup using new Bootstrap 5 utilities and grid classes (e.g., replace .col-*-*
with .col, .row remains but rely on flexbox behavior), convert form classes to
the new form layout patterns, replace any jQuery-dependent plugins with
Bootstrap 5 vanilla JS or native alternatives, and update any icon usage
(Glyphicons -> Bootstrap Icons or Font Awesome); run a full UI regression to fix
breaking changes in .navbar, .form-control, .btn, .input-group,
.panel/.thumbnail/.well (now cards), .table-responsive and any custom overrides.
| /*! | ||
| * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome | ||
| * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) | ||
| */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.0.3');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.2857142857142858em;text-align:center}.fa-ul{padding-left:0;margin-left:2.142857142857143em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;top:.14285714285714285em;text-align:center}.fa-li.fa-lg{left:-1.8571428571428572em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0,mirror=1);-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2,mirror=1);-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-asc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-desc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-reply-all:before{content:"\f122"}.fa-mail-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"} No newline at end of file |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
Font Awesome latest version 2025 2026 current release
💡 Result:
Latest Font Awesome release (current as of Feb 28, 2026): Font Awesome 7.2.0 (announced Feb 18, 2026; tagged as the latest release on GitHub). [1][2]
Previous stable: 7.1.0 (Oct 1, 2025). [2][3]
Font Awesome 6 line (latest 6.x / LTS track): 6.7.2 (Dec 16, 2024). [4][2]
NPM package (free): @fortawesome/fontawesome-free is on the 7.x line (e.g., 7.0.1 shown on npm). [5]
🏁 Script executed:
# Check if this is a vendored file or actively used
cd font && find . -type f -name "*.css" -o -name "*.js" | head -20Repository: SophonTec/cotex-china.github.io
Length of output: 124
🏁 Script executed:
# Check for other Font Awesome references in the codebase
rg "font-awesome|fontawesome" --type html --type js --type json -l | head -20Repository: SophonTec/cotex-china.github.io
Length of output: 85
🌐 Web query:
Font Awesome 4.0.3 release date 2014
💡 Result:
Font Awesome 4.0.3 was released on February 25, 2014. [1][2]
🏁 Script executed:
# Check how Font Awesome CSS is used in index.html
cat index.html | head -100Repository: SophonTec/cotex-china.github.io
Length of output: 4894
Font Awesome 4.0.3 is severely outdated.
This version was released on February 25, 2014 — now over 12 years old. Font Awesome 7.2.0 (as of February 2026) is the current version with:
- Thousands of additional icons
- Better icon naming consistency
- SVG framework support
- Improved accessibility
- Active maintenance and security updates
Upgrade to Font Awesome 6.x or 7.x to gain modern icon support and ongoing maintenance.
🧰 Tools
🪛 Biome (2.4.4)
[error] 4-4: Unexpected value or character.
(parse)
[error] 4-4: Unexpected value or character.
(parse)
[error] 4-4: Unexpected value or character.
(parse)
[error] 4-4: Unexpected value or character.
(parse)
[error] 4-4: Unexpected value or character.
(parse)
🪛 Stylelint (17.3.0)
[error] 4-4: Unexpected vendor-prefixed at-rule "@-moz-keyframes" (at-rule-no-vendor-prefix)
(at-rule-no-vendor-prefix)
[error] 4-4: Unexpected vendor-prefixed at-rule "@-webkit-keyframes" (at-rule-no-vendor-prefix)
(at-rule-no-vendor-prefix)
[error] 4-4: Unexpected vendor-prefixed at-rule "@-o-keyframes" (at-rule-no-vendor-prefix)
(at-rule-no-vendor-prefix)
[error] 4-4: Unexpected vendor-prefixed at-rule "@-ms-keyframes" (at-rule-no-vendor-prefix)
(at-rule-no-vendor-prefix)
[error] 4-4: Unexpected quotes around "FontAwesome" (font-family-name-quotes)
(font-family-name-quotes)
[error] 4-4: Unexpected missing generic font family (font-family-no-missing-generic-family-keyword)
(font-family-no-missing-generic-family-keyword)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@font/css/font-awesome.min.css` around lines 1 - 4, The repo is using Font
Awesome 4.0.3 (old `@font-face` rules and FontAwesome font files); replace it with
a maintained v6+/v7+ distribution by removing the legacy font-awesome.min.css
and font files and integrating the modern package (either via the official CDN
link or by installing `@fortawesome/fontawesome-free` or the SVG JS packages),
update references to the old font-family and file names (the existing `@font-face`
and src URLs, and classes like .fa, .fa-lg, etc.) to the new distribution, and
audit any markup using old icon class names to map them to the corresponding new
icon names/sets per Font Awesome migration docs.
| * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome | ||
| * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
Font Awesome 4.0.3 maintenance status security advisories
💡 Result:
Maintenance status (Font Awesome 4.0.3 / major version 4)
- Font Awesome v4 is out of security support (no longer maintained for security fixes). (endoflife.date)
- The last v4 release was 4.7.0 (Oct 24, 2016), so 4.0.3 (Nov 6, 2013) is far behind the final v4 patch level. (endoflife.date)
- Package ecosystem trackers also show the
font-awesomepackage’s latest is 4.7.0 and that it has had no releases for years. (security.snyk.io)
Security advisories (for the Font Awesome core repo)
- The official GitHub repository does not list any published GitHub Security Advisories. (github.com)
Important clarification: “Font Awesome” vulnerabilities you may see are often WordPress plugins, not the icon library
- WordPress plugin databases list issues for a plugin named “Font Awesome” (e.g., stored XSS fixed in plugin 4.3.2, and token disclosure in early release candidates). These advisories do not apply to the Font Awesome 4.0.3 icon/CSS library itself unless you are specifically using that WordPress plugin. (wpscan.com)
Citations:
- 1: https://endoflife.date/font-awesome?utm_source=openai
- 2: https://endoflife.date/font-awesome?utm_source=openai
- 3: https://security.snyk.io/package/npm/font-awesome?utm_source=openai
- 4: https://github.com/FortAwesome/Font-Awesome/security?utm_source=openai
- 5: https://wpscan.com/plugin/font-awesome?utm_source=openai
🌐 Web query:
Font Awesome latest version 2024 2025 currently maintained
💡 Result:
- Latest Font Awesome release (currently):
7.2.0— released February 10, 2026. [1] (The Font Awesome team announced Font Awesome 7.2 on February 18, 2026.) [2] - Currently maintained:
- v7 (current major) — actively maintained (latest
7.2.0). [1] - v6 (LTS) — maintained as Long Term Support and “will get critical bug fixes only” (latest v6 release:
6.7.2on December 16, 2024). [3][4]
- v7 (current major) — actively maintained (latest
- Not maintained / EOL: v5, v4, v3 are marked end-of-life (no further releases planned). [3]
Sources: GitHub releases (FortAwesome/Font-Awesome) [1], Font Awesome blog announcement [2], GitHub repo README maintenance notes [3], endoflife.date version table [4].
🌐 Web query:
Font Awesome version history end of life EOL
💡 Result:
Font Awesome version history + EOL/EOS (as of Feb 28, 2026)
Latest releases (major lines)
- v7 (current/active): latest tag shown on GitHub releases is 7.2.0 (Feb 10, 2026). [1]
- v6 (supported, LTS): released Feb 7, 2022; latest 6.7.2 (Dec 16, 2024). [2]
- v5 (supported, LTS): released Feb 5, 2018; latest 5.15.4 (Aug 4, 2021). [2]
- v4: released Oct 23, 2013; latest 4.7.0 (Oct 24, 2016); EOL. [2]
- v3 and older: EOL. [2]
Official/commonly cited support status statements
- Font Awesome’s own package metadata/docs commonly state that v3 and v4 are end-of-life with no further 3.x/4.x releases planned. [3]
- With Font Awesome 6, Font Awesome 5 is treated as LTS (critical fixes only) and 3/4 are EOL (summarized by lifecycle trackers). [2]
Sources: GitHub releases list [1]; endoflife.date lifecycle summary [2]; npm ecosystem metadata mirrored by Libraries.io [3].
Upgrade Font Awesome from 4.0.3 (2013) to an actively maintained version.
Font Awesome v4 is end-of-life and no longer receives security updates. Version 4.0.3 is significantly outdated even within the v4 line (final v4 release was 4.7.0 in October 2016). Upgrade to Font Awesome 6 (long-term support, critical fixes only) or v7 (current).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@font/less/font-awesome.less` around lines 2 - 3, The comment header indicates
Font Awesome 4.0.3 is used; update the project to a maintained Font Awesome
release (prefer v6 LTS or v7) by replacing the old font files and the
font/less/font-awesome.less contents with the corresponding newer Font Awesome
distribution files, update the top-of-file license/version comment to the chosen
version and license text, run a migration pass to adjust any legacy icon class
names (e.g., fa- prefix changes or shim classes) used across the codebase, and
ensure the build (asset bundling and `@font-face` paths) and tests pass after the
swap.
| // Stacked Icons | ||
| // ------------------------- | ||
|
|
||
| .@{fa-css-prefix}-stack { |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== Stylelint config files =="
fd -HI '(^|/)(\.stylelintrc(\.(json|ya?ml|js|cjs|mjs))?|stylelint\.config\.(js|cjs|mjs))$'
CONFIGS=$(fd -HI '(^|/)(\.stylelintrc(\.(json|ya?ml|js|cjs|mjs))?|stylelint\.config\.(js|cjs|mjs))$' | tr '\n' ' ')
if [ -n "${CONFIGS// }" ]; then
echo "== LESS parser/override settings =="
rg -n "customSyntax|postcss-less|overrides|\\.less" $CONFIGS || true
fi
echo "== Sample LESS interpolation usage =="
rg -n "@\\{fa-css-prefix\\}" --type-add 'less:*.less' --type lessRepository: SophonTec/cotex-china.github.io
Length of output: 37894
🏁 Script executed:
cat -n .stylelintrc.jsonRepository: SophonTec/cotex-china.github.io
Length of output: 1291
Add postcss-less syntax support to stylelint config for LESS files.
The .stylelintrc.json extends stylelint-config-standard-scss but lacks syntax configuration for LESS files. LESS interpolation syntax (e.g., .@{fa-css-prefix}-stack) is valid in LESS but will fail when parsed as CSS. Add either:
{
"customSyntax": "postcss-less"
}or configure overrides for .less files to use the LESS parser, otherwise CI will report false parse errors on valid LESS syntax.
🧰 Tools
🪛 Stylelint (17.3.0)
[error] 4-4: Unknown word fa-css-prefix (CssSyntaxError)
(CssSyntaxError)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@font/less/stacked.less` at line 4, The stylelint config is missing LESS
parsing so valid LESS interpolation like .@{fa-css-prefix}-stack fails; update
.stylelintrc.json to enable postcss-less for .less files by either setting
"customSyntax": "postcss-less" globally or adding an "overrides" entry that maps
"*.less" to "postcss-less" so LESS files are parsed correctly (refer to the LESS
snippet .@{fa-css-prefix}-stack and the .less files when applying the change).
| $('document').ready(function () { | ||
| customScripts.init(); | ||
| }); No newline at end of file |
There was a problem hiding this comment.
Critical bug: $('document') should be $(document).
$('document') searches for <document> HTML elements (which don't exist), so the ready handler will never fire and customScripts.init() won't execute. This breaks all JavaScript initialization.
🐛 Proposed fix
-$('document').ready(function () {
+$(document).ready(function () {
customScripts.init();
});📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| $('document').ready(function () { | |
| customScripts.init(); | |
| }); | |
| $(document).ready(function () { | |
| customScripts.init(); | |
| }); |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@js/custom.js` around lines 85 - 87, The ready-handler is using $('document')
which looks for a non-existent <document> element so customScripts.init() never
runs; replace $('document').ready(function () { customScripts.init(); }); with
the correct jQuery document selector $(document).ready(...) (or the shorthand
$(function() { customScripts.init(); })) so the ready handler fires and
customScripts.init() is invoked.
| @@ -0,0 +1,274 @@ | |||
| /*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ | |||
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
fancyBox v2.1.5 security vulnerabilities CVE maintained 2024 2025
💡 Result:
fancyBox (jQuery) v2.1.5 — CVEs / security status (2024–2025)
Is v2.1.5 “maintained” in 2024/2025?
No. fancyBox v2.1.5 is an old release (commonly referenced as the last v2 release) and is not actively maintained in 2024/2025; organizations generally treat it as legacy and prefer upgrading away from it (e.g., to newer Fancybox generations or alternative lightbox libraries). A practical signal: Snyk lists no direct known vulnerabilities for the jquery.fancybox@2.1.5 npm package, but that does not imply it’s maintained—only that Snyk doesn’t currently track a direct CVE for that package/version. [2]
CVE that does cover fancyBox v2.1.5 (in real-world bundles)
- CVE-2024-5020 (published Dec 4, 2024) — Stored XSS in multiple WordPress plugins due to their bundled FancyBox JavaScript library versions 1.3.4 to 3.5.7 (this range includes 2.1.5). Impact: authenticated attackers (Contributor+) can inject scripts that execute when a user views affected content. [1]
2025 CVEs often confused as “fancyBox CVEs” (but are WordPress-plugin CVEs)
These are not CVEs for the upstream fancyBox v2.1.5 library itself; they’re for specific WordPress plugins that integrate/ship FancyBox-like functionality:
- CVE-2025-3662 — “FancyBox for WordPress” plugin (< 3.3.6), stored XSS. [3]
- CVE-2025-26591 — “WP fancybox” plugin (through 1.0.4), stored XSS. [4]
- CVE-2025-5035 — “easy-fancybox / Firelight Lightbox” plugin (up to 2.3.15), stored XSS under certain settings. [5]
What to do if you still have fancyBox 2.1.5 in 2024/2025
- If it’s inside a WordPress plugin bundle: check whether you’re in the affected scenario described in CVE-2024-5020 and update/patch the plugin (or remove the vulnerable feature path), plus enforce strong output escaping/sanitization. [1]
- If it’s in your own app: prefer migrating off v2.1.5 (legacy/unmaintained) and add compensating controls (strict HTML sanitization of any captions/attributes, CSP, etc.).
Sources: NVD (CVE-2024-5020) [1], Snyk package page for jquery.fancybox@2.1.5 [2], Wiz/Tenable/Rapid7 entries for 2025 WordPress-plugin CVEs [3][4][5].
Upgrade fancyBox to a maintained version. fancyBox v2.1.5 is unmaintained as of 2024–2025 and is affected by CVE-2024-5020 (Stored XSS, published Dec 2024), which covers FancyBox versions 1.3.4–3.5.7 when integrated into applications. Replace with a current, actively maintained lightbox library.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@js/fancybox/jquery.fancybox.css` at line 1, Upgrade the unmaintained fancyBox
v2.1.5 dependency (jquery.fancybox.css and any usage of $.fancybox /
$.fn.fancybox / data-fancybox) to a maintained lightbox library to mitigate
CVE-2024-5020; remove the old CSS and JS, add a current library (e.g., Fancybox
4, PhotoSwipe, or GLightbox), update all initialization calls and selectors that
call $.fancybox or use data-fancybox to the new library's API and data
attributes, adjust markup/CSS classes as required by the new API, run the app to
fix any breaking UI behavior, and re-scan dependencies to confirm the
vulnerability is resolved.
| this.cssAnimations = Modernizr.cssanimations; | ||
| this.cssTransitions = Modernizr.csstransitions; | ||
|
|
||
| if( !this.cssAnimations || !this.cssAnimations ) { | ||
|
|
||
| this.$el.addClass( 'da-slider-fb' ); | ||
|
|
||
| } |
There was a problem hiding this comment.
Logic error: duplicate condition checks the same variable.
Line 58 checks !this.cssAnimations || !this.cssAnimations which is redundant (checks the same variable twice). This should likely be checking both animation and transition support:
- if( !this.cssAnimations || !this.cssAnimations ) {
+ if( !this.cssAnimations || !this.cssTransitions ) {The same issue appears at lines 99, 124, and 139 with this.cssAnimations && this.cssAnimations.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| this.cssAnimations = Modernizr.cssanimations; | |
| this.cssTransitions = Modernizr.csstransitions; | |
| if( !this.cssAnimations || !this.cssAnimations ) { | |
| this.$el.addClass( 'da-slider-fb' ); | |
| } | |
| this.cssAnimations = Modernizr.cssanimations; | |
| this.cssTransitions = Modernizr.csstransitions; | |
| if( !this.cssAnimations || !this.cssTransitions ) { | |
| this.$el.addClass( 'da-slider-fb' ); | |
| } |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@js/jquery.cslider.js` around lines 55 - 62, The condition checks mistakenly
reference the same property twice (cssAnimations) causing incorrect feature
detection; update the conditional expressions to test both properties: use
(!this.cssAnimations || !this.cssTransitions) where it currently uses
(!this.cssAnimations || !this.cssAnimations) so the fallback class is added when
either animations or transitions are unsupported, and replace occurrences of
(this.cssAnimations && this.cssAnimations) with (this.cssAnimations &&
this.cssTransitions) where combined support is required (references:
this.cssAnimations, this.cssTransitions, this.$el.addClass('da-slider-fb')).
Summary by CodeRabbit
Release Notes