diff --git a/dist/css/main.css b/dist/css/main.css new file mode 100644 index 0000000000..d086b32619 --- /dev/null +++ b/dist/css/main.css @@ -0,0 +1,6051 @@ +@charset "UTF-8"; +/** + * Zeste de Savoir + * Main style file, imports everything + * @file main.scss + */ +/*------------------------ +1. Normalize +------------------------*/ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS and IE text size adjust after device orientation change, + * without disabling user zoom. + */ +html { + font-family: sans-serif; + /* 1 */ + -ms-text-size-adjust: 100%; + /* 2 */ + -webkit-text-size-adjust: 100%; + /* 2 */ } + +/** + * Remove default margin. + */ +body { + margin: 0; } + +/* HTML5 display definitions + ========================================================================== */ +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; } + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ +audio, +canvas, +progress, +video { + display: inline-block; + /* 1 */ + vertical-align: baseline; + /* 2 */ } + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ +audio:not([controls]) { + display: none; + height: 0; } + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. + */ +[hidden], +template { + display: none; } + +/* Links + ========================================================================== */ +/** + * Remove the gray background color from active links in IE 10. + */ +a { + background-color: transparent; } + +/** + * Improve readability of focused elements when they are also in an + * active/hover state. + */ +a:active, +a:hover { + outline: 0; } + +/* Text-level semantics + ========================================================================== */ +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ +abbr[title] { + border-bottom: 1px dotted; } + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ +b, +strong { + font-weight: bold; } + +/** + * Address styling not present in Safari and Chrome. + */ +dfn { + font-style: italic; } + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ +h1 { + font-size: 2em; + margin: 0.67em 0; } + +/** + * Address styling not present in IE 8/9. + */ +mark { + background: #ff0; + color: #000; } + +/** + * Address inconsistent and variable font size in all browsers. + */ +small { + font-size: 80%; } + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sup { + top: -0.5em; } + +sub { + bottom: -0.25em; } + +/* Embedded content + ========================================================================== */ +/** + * Remove border when inside `a` element in IE 8/9/10. + */ +img { + border: 0; } + +/** + * Correct overflow not hidden in IE 9/10/11. + */ +svg:not(:root) { + overflow: hidden; } + +/* Grouping content + ========================================================================== */ +/** + * Address margin not present in IE 8/9 and Safari. + */ +figure { + margin: 1em 40px; } + +/** + * Address differences between Firefox and other browsers. + */ +hr { + box-sizing: content-box; + height: 0; } + +/** + * Contain overflow in all browsers. + */ +pre { + overflow: auto; } + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; } + +/* Forms + ========================================================================== */ +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ +button, +input, +optgroup, +select, +textarea { + color: inherit; + /* 1 */ + font: inherit; + /* 2 */ + margin: 0; + /* 3 */ } + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ +button { + overflow: visible; } + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ +button, +select { + text-transform: none; } + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ +button, +html input[type="button"], input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + /* 2 */ + cursor: pointer; + /* 3 */ } + +/** + * Re-set default cursor for disabled elements. + */ +button[disabled], +html input[disabled] { + cursor: default; } + +/** + * Remove inner padding and border in Firefox 4+. + */ +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; } + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ +input { + line-height: normal; } + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ } + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; } + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. + */ +input[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + box-sizing: content-box; + /* 2 */ } + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +/** + * Define consistent border, margin, and padding. + */ +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; } + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ +legend { + border: 0; + /* 1 */ + padding: 0; + /* 2 */ } + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ +textarea { + overflow: auto; } + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ +optgroup { + font-weight: bold; } + +/* Tables + ========================================================================== */ +/** + * Remove most spacing between table cells. + */ +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + +/*------------------------ +2. Base +------------------------*/ +html { + height: 100%; + width: 100%; + font-size: 62.5%; + overflow-x: hidden; + word-wrap: break-word; } + +body { + background: #F7F7F7; + font-size: 14px; + font-size: 1.4rem; + line-height: 1.7em; + min-height: 100%; + width: 100%; } + +.page-container, +.main-container { + min-height: 100%; + background: #F7F7F7; } + +.content-container { + margin-bottom: 50px; } + +img { + vertical-align: middle; } + +fieldset { + border: 0; + margin: 0; + padding: 0; } + +textarea { + resize: vertical; } + +.chromeframe { + margin: 0; + background: #ccc; + color: #000; + padding: 0.2em 0; + text-align: center; + position: fixed; + z-index: 9999; + width: 100%; } + +.a11y { + display: block; + width: 0; + height: 0; + text-indent: -9999px; } + +nav ul, +nav ol { + list-style: none; } + +@media only screen and (min-width: 960px) { + html, + body, + .page-container { + height: 100%; } + .main-container { + min-height: calc(100% - 136px); } + .wrapper { + width: 95%; + margin: 0 2.5%; } } + +@media only screen and (max-width: 959px) { + body { + background: #222; } + body:not(.swipping) .page-container, + body:not(.swipping) .mobile-menu { + -webkit-transition-property: -webkit-transform; + transition-property: transform; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-timing-function: ease; + transition-timing-function: ease; } + body.swipping * { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + pointer-events: none; } } + +.table-wrapper { + max-width: 100%; + overflow: auto; } + +table { + margin: 15px 0; + border-top: 1px solid #DDD; } + table thead { + background: #DDD; + color: #084561; } + table th, table td { + text-align: left; + padding: 5px 15px 5px 7px; + border-right: 1px solid #DDD; } + table th:first-child, table td:first-child { + border-left: 1px solid #DDD; } + table th p, table td p { + margin: 0; } + table tbody tr { + background: #FDFDFD; + border-bottom: 1px solid #DDD; } + table tbody tr:nth-child(2n+1) { + background: #F7F7F7; } + table.fullwidth { + width: 100%; } + table.diff tbody tr { + border-bottom: none; + font-family: monospace, serif; + background: #FFF; + line-height: 1em; } + table.diff tbody tr .diff_next { + display: none; } + table.diff tbody tr td.diff_header { + padding: 5px; } + +.diff_delta { + overflow: scroll; + width: 100%; + font-size: 0.9em; } + +.content-container form, +#modals form { + width: 100%; } + .content-container form.content-wrapper, + #modals form.content-wrapper { + width: calc(100% - 20px); + margin: 0 10px; } + .content-container form p, + #modals form p { + position: relative; } + +.content-container fieldset, +#modals fieldset { + border-top: 1px solid #DDD; + border-bottom: 3px solid #DDD; + background: #EFEFEF; + padding: 0 4%; } + .content-container fieldset legend, + #modals fieldset legend { + padding: 0 10px; + border-top: 1px solid #DDD; + border-bottom: 3px solid #DDD; + background: #EFEFEF; } + +.content-container label, +#modals label { + display: block; + color: #555; + height: 30px; + line-height: 30px; } + .content-container label .asteriskField, + #modals label .asteriskField { + color: #C0392B; + margin-left: 4px; } + +.content-container .small-content-wrapper .asteriskField, +#modals .small-content-wrapper .asteriskField { + display: none; } + +.content-container .form-error, +#modals .form-error { + display: block; + font-size: 13px; + color: #C0392B; } + +.content-container input, +.content-container textarea, +#modals input, +#modals textarea { + border: 1px solid #D2D5D6; } + .content-container input:focus, + .content-container textarea:focus, + #modals input:focus, + #modals textarea:focus { + outline-color: #999; } + .content-container input.field-error, + .content-container input:invalid, + .content-container textarea.field-error, + .content-container textarea:invalid, + #modals input.field-error, + #modals input:invalid, + #modals textarea.field-error, + #modals textarea:invalid { + border-color: #C0392B; } + .content-container input.field-error:focus, + .content-container input:invalid:focus, + .content-container textarea.field-error:focus, + .content-container textarea:invalid:focus, + #modals input.field-error:focus, + #modals input:invalid:focus, + #modals textarea.field-error:focus, + #modals textarea:invalid:focus { + outline-color: #C0392B; } + .content-container input[disabled], + .content-container input .disabled, + .content-container textarea[disabled], + .content-container textarea .disabled, + #modals input[disabled], + #modals input .disabled, + #modals textarea[disabled], + #modals textarea .disabled { + background: #DDD !important; + color: #555; } + +.content-container input, +.content-container textarea, +.content-container button, +.content-container .btn, +#modals input, +#modals textarea, +#modals button, +#modals .btn { + -webkit-appearance: none; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; } + +.content-container input:not([type=submit]):not([type=reset]):not([type=radio]):not([type=checkbox]), +#modals input:not([type=submit]):not([type=reset]):not([type=radio]):not([type=checkbox]) { + width: calc(98% - 2px); + padding: 0 1%; } + +.content-container textarea, +#modals textarea { + width: calc(98% - 2px); + padding: 10px 1%; + font-family: monospace, serif; } + +.content-container input, +.content-container button, +.content-container .btn, +#modals input, +#modals button, +#modals .btn { + display: block; + height: 30px; } + .content-container input.ico-after, + .content-container button.ico-after, + .content-container .btn.ico-after, + #modals input.ico-after, + #modals button.ico-after, + #modals .btn.ico-after { + padding-left: 30px; } + .content-container input.ico-after:after, + .content-container button.ico-after:after, + .content-container .btn.ico-after:after, + #modals input.ico-after:after, + #modals button.ico-after:after, + #modals .btn.ico-after:after { + margin: 12px 0 0 7px; } + +.content-container [type=submit], +.content-container button:not(.link), +.content-container .btn, +#modals [type=submit], +#modals button:not(.link), +#modals .btn { + position: relative; + height: 40px; + line-height: 40px; + cursor: pointer; + color: #DDD; + padding: 0 15px; + border: none; + text-decoration: none; + margin-left: 1px; + outline: none; } + .content-container [type=submit].submitted, + .content-container button:not(.link).submitted, + .content-container .btn.submitted, + #modals [type=submit].submitted, + #modals button:not(.link).submitted, + #modals .btn.submitted { + color: #555; } + .content-container [type=submit].submitted .line-loading, + .content-container button:not(.link).submitted .line-loading, + .content-container .btn.submitted .line-loading, + #modals [type=submit].submitted .line-loading, + #modals button:not(.link).submitted .line-loading, + #modals .btn.submitted .line-loading { + display: block; + position: absolute; + left: 0; + bottom: 0; + width: 0%; + height: 1px; + background: #555; + -webkit-animation: lineLoading linear 1s infinite; + animation: lineLoading linear 1s infinite; } + .content-container [type=submit]:not(.btn-holder), + .content-container button:not(.link):not(.btn-holder), + .content-container .btn:not(.btn-holder), + #modals [type=submit]:not(.btn-holder), + #modals button:not(.link):not(.btn-holder), + #modals .btn:not(.btn-holder) { + float: right; } + +.content-container [type=submit]:not(.link), +.content-container .btn-submit:not(.link), +#modals [type=submit]:not(.link), +#modals .btn-submit:not(.link) { + color: #FFF; + background: #48a200; } + .content-container [type=submit]:not(.link):not([disabled]):hover, + .content-container [type=submit]:not(.link):not([disabled]):focus, + .content-container [type=submit]:not(.link):not(.disabled):hover, + .content-container [type=submit]:not(.link):not(.disabled):focus, + .content-container .btn-submit:not(.link):not([disabled]):hover, + .content-container .btn-submit:not(.link):not([disabled]):focus, + .content-container .btn-submit:not(.link):not(.disabled):hover, + .content-container .btn-submit:not(.link):not(.disabled):focus, + #modals [type=submit]:not(.link):not([disabled]):hover, + #modals [type=submit]:not(.link):not([disabled]):focus, + #modals [type=submit]:not(.link):not(.disabled):hover, + #modals [type=submit]:not(.link):not(.disabled):focus, + #modals .btn-submit:not(.link):not([disabled]):hover, + #modals .btn-submit:not(.link):not([disabled]):focus, + #modals .btn-submit:not(.link):not(.disabled):hover, + #modals .btn-submit:not(.link):not(.disabled):focus { + background: #58c600; } + .content-container [type=submit]:not(.link).disabled.submitted, + .content-container .btn-submit:not(.link).disabled.submitted, + #modals [type=submit]:not(.link).disabled.submitted, + #modals .btn-submit:not(.link).disabled.submitted { + color: #48a200; } + .content-container [type=submit]:not(.link).disabled.submitted .line-loading, + .content-container .btn-submit:not(.link).disabled.submitted .line-loading, + #modals [type=submit]:not(.link).disabled.submitted .line-loading, + #modals .btn-submit:not(.link).disabled.submitted .line-loading { + background: #48a200; } + +.content-container .btn-cancel:not(.link), +#modals .btn-cancel:not(.link) { + background: #c0392b; } + .content-container .btn-cancel:not(.link):not([disabled]):hover, + .content-container .btn-cancel:not(.link):not([disabled]):focus, + .content-container .btn-cancel:not(.link):not(.disabled):hover, + .content-container .btn-cancel:not(.link):not(.disabled):focus, + #modals .btn-cancel:not(.link):not([disabled]):hover, + #modals .btn-cancel:not(.link):not([disabled]):focus, + #modals .btn-cancel:not(.link):not(.disabled):hover, + #modals .btn-cancel:not(.link):not(.disabled):focus { + background: #d34a3b; } + .content-container .btn-cancel:not(.link).disabled.submitted, + #modals .btn-cancel:not(.link).disabled.submitted { + color: #c0392b; } + .content-container .btn-cancel:not(.link).disabled.submitted .line-loading, + #modals .btn-cancel:not(.link).disabled.submitted .line-loading { + background: #c0392b; } + +.content-container .btn-grey:not(.link), +#modals .btn-grey:not(.link) { + background: #EEE; + color: #555; } + .content-container .btn-grey:not(.link):not([disabled]):hover, + .content-container .btn-grey:not(.link):not([disabled]):focus, + .content-container .btn-grey:not(.link):not(.disabled):hover, + .content-container .btn-grey:not(.link):not(.disabled):focus, + #modals .btn-grey:not(.link):not([disabled]):hover, + #modals .btn-grey:not(.link):not([disabled]):focus, + #modals .btn-grey:not(.link):not(.disabled):hover, + #modals .btn-grey:not(.link):not(.disabled):focus { + background: #CCC; + color: #333; } + .content-container .btn-grey:not(.link).disabled.submitted, + #modals .btn-grey:not(.link).disabled.submitted { + color: #555; } + .content-container .btn-grey:not(.link).disabled.submitted .line-loading, + #modals .btn-grey:not(.link).disabled.submitted .line-loading { + background: #999; } + +.content-container [disabled], +.content-container .disabled, +#modals [disabled], +#modals .disabled { + cursor: default !important; + background: #EEE !important; } + .content-container [disabled]:not(.submitted), + .content-container .disabled:not(.submitted), + #modals [disabled]:not(.submitted), + #modals .disabled:not(.submitted) { + color: #BBB !important; } + +.content-container .btn-facebook:not(.link), +#modals .btn-facebook:not(.link) { + background: #3b5998; } + .content-container .btn-facebook:not(.link):hover, + .content-container .btn-facebook:not(.link):focus, + #modals .btn-facebook:not(.link):hover, + #modals .btn-facebook:not(.link):focus { + background: #2d4373; } + +.content-container .btn-twitter:not(.link), +#modals .btn-twitter:not(.link) { + background: #4099FF; } + .content-container .btn-twitter:not(.link):hover, + .content-container .btn-twitter:not(.link):focus, + #modals .btn-twitter:not(.link):hover, + #modals .btn-twitter:not(.link):focus { + background: #0d7eff; } + +.content-container .btn-google-plus:not(.link), +#modals .btn-google-plus:not(.link) { + background: #d34836; } + .content-container .btn-google-plus:not(.link):hover, + .content-container .btn-google-plus:not(.link):focus, + #modals .btn-google-plus:not(.link):hover, + #modals .btn-google-plus:not(.link):focus { + background: #b03626; } + +.content-container .btn-facebook, +.content-container .btn-twitter, +.content-container .btn-google-plus, +#modals .btn-facebook, +#modals .btn-twitter, +#modals .btn-google-plus { + width: 50%; + margin: 0 auto; + text-align: center; } + +.content-container .btn-holder, +.content-container .buttonHolder, +#modals .btn-holder, +#modals .buttonHolder { + margin-top: 25px; + min-height: 40px; } + +.wf-active .content-container textarea, +.wf-active #modals textarea { + font-family: "Source Code Pro", monospace, serif; } + +.main-container input[type=radio], +.main-container input[type=checkbox], +#modals input[type=radio], +#modals input[type=checkbox] { + float: left; + margin-right: 5px; + height: 15px; + width: 15px; + border: 1px solid #BBB; + background: #FCFCFC; + -webkit-transition: none; + transition: none; } + .main-container input[type=radio]:checked, + .main-container input[type=checkbox]:checked, + #modals input[type=radio]:checked, + #modals input[type=checkbox]:checked { + background-image: url("../images/sprite.png"); } + +.main-container input[type=radio], +#modals input[type=radio] { + border-radius: 50%; } + +.main-container input[type=radio]:checked, +#modals input[type=radio]:checked { + background-position: 0px -13px; } + +.main-container input[type=checkbox]:checked, +#modals input[type=checkbox]:checked { + background-position: 0px 0px; } + +.main-container .checkbox, +.main-container .radio, +#modals .checkbox, +#modals .radio { + padding: 10px 0; } + .main-container .checkbox input, + .main-container .radio input, + #modals .checkbox input, + #modals .radio input { + margin-top: 8px; } + +.main-container .controls .radio, +#modals .controls .radio { + padding-top: 3px; + padding-bottom: 0; } + +@media only screen and (min-width: 960px) { + .content-container form.content-wrapper, + #modals form.content-wrapper { + margin: 0; + width: 100%; } } + +@-webkit-keyframes lineLoading { + 0% { + width: 0%; + left: 0; + right: inherit; } + 49% { + left: 0; + right: inherit; } + 50% { + width: 100%; + left: inherit; + right: 0; } + 100% { + left: inherit; + right: 0; } } + +@keyframes lineLoading { + 0% { + width: 0%; + left: 0; + right: inherit; } + 49% { + left: 0; + right: inherit; } + 50% { + width: 100%; + left: inherit; + right: 0; } + 100% { + left: inherit; + right: 0; } } + +/*------------------------ +3. Typography +------------------------*/ +html, +body, +button, +input, +select, +textarea { + font-family: "Segoe UI", "Trebuchet MS", Helvetica, "Helvetica Neue", Arial, sans-serif; + color: #222; } + .wf-active html, + .no-js html, + .wf-active body, + .no-js body, + .wf-active button, + .no-js button, + .wf-active input, + .no-js input, + .wf-active select, + .no-js select, + .wf-active textarea, + .no-js textarea { + font-family: "Source Sans Pro", "Segoe UI", "Trebuchet MS", Helvetica, "Helvetica Neue", Arial, sans-serif; } + +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #ccc; + margin: 1em 0; + padding: 0; } + +a, +.link { + color: #1088bf; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; } + a:hover, + .link:hover { + color: #d68807; + text-decoration: none; } + +button.link { + display: inline-block; + background: none; + border: none; + text-decoration: underline; } + +/*------------------------ +4. Icons +------------------------*/ +.ico { + background-repeat: no-repeat; + background-image: url("../images/sprite.png"); } + +.ico-after { + position: relative; } + .ico-after:after { + content: " "; + display: block; + position: absolute; + top: 0; + left: 0; + width: 16px; + height: 16px; + background-repeat: no-repeat; + background-image: url("../images/sprite.png"); } + .ico-after.alert:after { + background-position: 0px -546px; } + .ico-after.arrow-left:after { + background-position: 0px -186px; } + .ico-after.arrow-left.blue:after { + background-position: 0px -4226px; } + .ico-after.arrow-left.light:after { + background-position: 0px -146px; } + .ico-after.offline:after, + .ico-after.arrow-right:after { + background-position: 0px -306px; } + .ico-after.offline.blue:after, + .ico-after.arrow-right.blue:after { + background-position: 0px -226px; } + .ico-after.offline.light:after, + .ico-after.arrow-right.light:after { + background-position: 0px -266px; } + .ico-after.beta:after { + background-position: 0px -466px; } + .ico-after.beta.blue:after { + background-position: 0px -386px; } + .ico-after.beta.light:after { + background-position: 0px -426px; } + .ico-after.cite:after { + background-position: 0px -706px; } + .ico-after.cite.blue:after { + background-position: 0px -626px; } + .ico-after.cite.light:after { + background-position: 0px -666px; } + .ico-after.cross:after { + background-position: 0px -906px; } + .ico-after.cross.blue:after { + background-position: 0px -746px; } + .ico-after.cross.red:after { + background-position: 0px -826px; } + .ico-after.cross.light:after { + background-position: 0px -786px; } + .ico-after.cross.white:after { + background-position: 0px -866px; } + .ico-after.download:after { + background-position: 0px -1146px; } + .ico-after.download.blue:after { + background-position: 0px -1066px; } + .ico-after.download.light:after { + background-position: 0px -1106px; } + .ico-after.downvote:after { + background-position: 0px -3826px; } + .ico-after.downvote.voted:after { + background-position: 0px -3786px; } + .ico-after.edit:after { + background-position: 0px -1266px; } + .ico-after.edit.blue:after { + background-position: 0px -1186px; } + .ico-after.edit.light:after { + background-position: 0px -1226px; } + .ico-after.email:after { + background-position: 0px -1386px; } + .ico-after.email.blue:after { + background-position: 0px -1306px; } + .ico-after.email.light:after { + background-position: 0px -1346px; } + .ico-after.diaspora:after { + background-position: 0px -1026px; } + .ico-after.diaspora.blue:after { + background-position: 0px -946px; } + .ico-after.diaspora.light:after { + background-position: 0px -986px; } + .ico-after.facebook:after { + background-position: 0px -1546px; } + .ico-after.facebook.blue:after { + background-position: 0px -1466px; } + .ico-after.facebook.light:after { + background-position: 0px -1506px; } + .ico-after.foursquare:after { + background-position: 0px -1706px; } + .ico-after.foursquare.blue:after { + background-position: 0px -1626px; } + .ico-after.foursquare.light:after { + background-position: 0px -1666px; } + .ico-after.gear:after { + background-position: 0px -1826px; } + .ico-after.gear.blue:after { + background-position: 0px -1746px; } + .ico-after.gear.light:after { + background-position: 0px -1786px; } + .ico-after.github:after { + background-position: 0px -1946px; } + .ico-after.github.blue:after { + background-position: 0px -1866px; } + .ico-after.github.light:after { + background-position: 0px -1906px; } + .ico-after.google-plus:after { + background-position: 0px -2066px; } + .ico-after.google-plus.blue:after { + background-position: 0px -1986px; } + .ico-after.google-plus.light:after { + background-position: 0px -2026px; } + .ico-after.help:after { + background-position: 0px -2186px; } + .ico-after.help.blue:after { + background-position: 0px -2106px; } + .ico-after.help.light:after { + background-position: 0px -106px; } + .ico-after.hide:after { + background-position: 0px -2306px; } + .ico-after.hide.blue:after { + background-position: 0px -2226px; } + .ico-after.hide.light:after { + background-position: 0px -2266px; } + .ico-after.history:after { + background-position: 0px -2426px; } + .ico-after.history.blue:after { + background-position: 0px -2346px; } + .ico-after.history.light:after { + background-position: 0px -2386px; } + .ico-after.import:after { + background-position: 0px -2546px; } + .ico-after.import.blue:after { + background-position: 0px -2466px; } + .ico-after.import.light:after { + background-position: 0px -2506px; } + .ico-after.lock:after { + background-position: 0px -2706px; } + .ico-after.lock.blue:after { + background-position: 0px -2626px; } + .ico-after.lock.light:after { + background-position: 0px -2666px; } + .ico-after.more:after { + background-position: 0px -2906px; } + .ico-after.more.blue:after { + background-position: 0px -2826px; } + .ico-after.more.light:after { + background-position: 0px -2866px; } + .ico-after.move:after { + background-position: 0px -3026px; } + .ico-after.move.blue:after { + background-position: 0px -2946px; } + .ico-after.move.light:after { + background-position: 0px -2986px; } + .ico-after.pin:after { + background-position: 0px -3226px; } + .ico-after.pin.blue:after { + background-position: 0px -3146px; } + .ico-after.pin.light:after { + background-position: 0px -3186px; } + .ico-after.rss:after { + background-position: 0px -3466px; } + .ico-after.rss.blue:after { + background-position: 0px -3346px; } + .ico-after.rss.orange:after { + background-position: 0px -3426px; } + .ico-after.rss.light:after { + background-position: 0px -3386px; } + .ico-after.star:after { + background-position: 0px -3746px; } + .ico-after.star.yellow:after { + background-position: 0px -3706px; } + .ico-after.star.blue:after { + background-position: 0px -3546px; } + .ico-after.star.light:after { + background-position: 0px -3666px; } + .ico-after.tick:after { + background-position: 0px -4026px; } + .ico-after.tick.green:after { + background-position: 0px -3946px; } + .ico-after.tick.light:after { + background-position: 0px -3986px; } + .ico-after.twitter:after { + background-position: 0px -4186px; } + .ico-after.twitter.blue:after { + background-position: 0px -4106px; } + .ico-after.twitter.light:after { + background-position: 0px -4146px; } + .ico-after.unread:after { + background-position: 0px -26px; } + .ico-after.upvote:after { + background-position: 0px -3906px; } + .ico-after.upvote.voted:after { + background-position: 0px -3866px; } + .ico-after.online:after, + .ico-after.view:after { + background-position: 0px -4346px; } + .ico-after.online.blue:after, + .ico-after.view.blue:after { + background-position: 0px -4266px; } + .ico-after.online.light:after, + .ico-after.view.light:after { + background-position: 0px -4306px; } + +/*------------------------ +5. Helpers +------------------------*/ +.ir { + background-color: transparent; + border: 0; + overflow: hidden; + *text-indent: -9999px; } + +.ir:before { + content: ""; + display: block; + width: 0; + height: 150%; } + +.hidden { + display: none !important; + visibility: hidden; } + +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; } + +.visuallyhidden.focusable:active, +.visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; } + +.invisible { + visibility: hidden; } + +.clearfix:before, +.clearfix:after { + content: " "; + display: table; } + +.clearfix:after { + clear: both; } + +.clearfix { + *zoom: 1; } + +hr.clearfix { + clear: both; + height: 0; + border: none; } + +.unstyled-list { + list-style: none; + padding-left: 0; } + +.screen, +.wide { + display: none; } + +@media only screen and (min-width: 1140px) { + .wide { + display: inline; } + table .wide { + display: table-cell; } } + +@media only screen and (min-width: 960px) { + .screen { + display: inline; } } + +/*------------------------ +6. Header +------------------------*/ +.header-container header { + background: #084561; + border-bottom: 3px solid #F8AD32; } + .header-container header a, + .header-container header button { + text-decoration: none; + color: #FFF; + -webkit-transition-property: background; + transition-property: background; + -webkit-transition-duration: 0.15s; + transition-duration: 0.15s; } + .header-container header a:focus, + .header-container header button:focus { + outline: none; } + .header-container header .header-menu { + height: 60px; } + .header-container header .header-menu .header-menu-list { + margin: 0; + padding: 0; } + .header-container header .header-menu .header-menu-list > li { + display: block; + float: left; + width: 33.3%; } + .header-container header .header-menu .header-menu-list > li > a { + display: block; + position: relative; + text-align: center; + line-height: 60px; + text-transform: uppercase; + font-size: 1.5px; + font-size: 1.5rem; + text-shadow: rgba(0, 0, 0, 0.75) 0 0 3px; } + .header-container header .header-menu .header-menu-list > li > a:hover, + .header-container header .header-menu .header-menu-list > li > a:focus, + .header-container header .header-menu .header-menu-list > li > a.active { + background: #396a81; } + .header-container header .header-menu .header-menu-list > li > a.current:before { + content: " "; + display: block; + position: absolute; + bottom: 0; + left: 0; + right: 0; + height: 2px; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; + border-radius: 2px 2px 0 0; + background-color: #F8AD32; } + .header-container header .header-menu .header-menu-list > li > a.current.active:before { + height: 0; } + +.header-logo { + text-align: center; + margin: 0; + padding: 0; + width: 100%; } + +.header-logo-link { + display: block; + margin: 0 auto; + text-indent: -9999px; + width: 100%; + max-width: 240px; + height: 60px; + background: url("../images/logo.png") no-repeat center center; + background-size: 100% auto; } + .header-logo-link:hover, + .header-logo-link:focus { + background-color: #396a81; } + +.logbox { + background: rgba(255, 255, 255, 0.05); } + .logbox .notifs-links { + margin-right: 60px; } + .logbox .notifs-links .ico-link { + display: block; + position: relative; + width: 33.3%; + height: 60px; + line-height: 60px; + float: left; } + .logbox .notifs-links .ico-link .notif-count { + display: block; + position: absolute; + z-index: 1; + top: 50%; + right: 50%; + margin: -20px -22px 0 0; + padding: 0 5px; + height: 16px; + line-height: 14px; + background: #c0392b; + border-radius: 16px; } + .logbox .notifs-links .ico-link .notif-text { + display: block; + position: absolute; + text-indent: -9999px; + height: 22px; + width: 22px; + top: 50%; + left: 50%; + margin: -11px 0 0 -11px; } + .logbox .notifs-links .ico-link .notif-text.ico-messages { + background-position: 0px -2786px; } + .logbox .notifs-links .ico-link .notif-text.ico-notifs { + background-position: 0px -3066px; } + .logbox .notifs-links .ico-link .notif-text.ico-alerts { + background-position: 0px -586px; } + .logbox .notifs-links .ico-link .notif-text.ico-params { + background-position: 0px -3106px; } + .logbox .notifs-links .ico-link:hover, + .logbox .notifs-links .ico-link:focus, + .logbox .notifs-links .ico-link.active { + background: #396a81; } + .logbox .dropdown { + overflow: hidden; } + .logbox .dropdown .dropdown-title { + display: block; + width: 100%; + height: 35px; + line-height: 37px; + text-align: center; + border-bottom: 1px solid #274a5a; + background-color: #396a81; } + .logbox .dropdown, + .logbox .dropdown .dropdown-list { + margin: 0; + padding: 0; + list-style: none; + background-color: #19526c; } + .logbox .dropdown li, + .logbox .dropdown .dropdown-list li { + display: block; + width: 100%; + height: 60px; } + .logbox .dropdown li a, + .logbox .dropdown .dropdown-list li a { + display: block; + overflow: hidden; + position: relative; + height: 100%; + width: 100%; } + .logbox .dropdown li a, + .logbox .dropdown li a:hover, + .logbox .dropdown li a:focus, + .logbox .dropdown .dropdown-list li a, + .logbox .dropdown .dropdown-list li a:hover, + .logbox .dropdown .dropdown-list li a:focus { + opacity: 1; + -webkit-transition-property: opacity, background-color; + transition-property: opacity, background-color; } + .logbox .dropdown li a:hover, + .logbox .dropdown li a:focus, + .logbox .dropdown .dropdown-list li a:hover, + .logbox .dropdown .dropdown-list li a:focus { + background-color: #396a81; } + .logbox .dropdown li a:hover .username, + .logbox .dropdown li a:focus .username, + .logbox .dropdown .dropdown-list li a:hover .username, + .logbox .dropdown .dropdown-list li a:focus .username { + text-shadow: rgba(0, 0, 0, 0.5) 0 0 5px; } + .logbox .dropdown li a:hover .date, + .logbox .dropdown li a:focus .date, + .logbox .dropdown .dropdown-list li a:hover .date, + .logbox .dropdown .dropdown-list li a:focus .date { + color: #95D7F5; } + .logbox .dropdown li .avatar, + .logbox .dropdown .dropdown-list li .avatar { + float: left; + height: 30px; + width: 30px; } + .logbox .dropdown li .username, + .logbox .dropdown .dropdown-list li .username { + display: block; + float: left; + margin: 4px 0 0 7px; + color: #95D7F5; + width: 50%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + .logbox .dropdown li .date, + .logbox .dropdown .dropdown-list li .date { + color: #5196b6; + float: right; + padding: 4px 10px 0 0; + -webkit-transition-property: color; + transition-property: color; } + .logbox .dropdown li .topic, + .logbox .dropdown .dropdown-list li .topic { + display: block; + position: absolute; + bottom: 0; + left: 0; + overflow: hidden; + height: 25px; + padding: 4px 7px 2px; + text-overflow: ellipsis; + white-space: nowrap; + width: 95%; + width: calc(100% - 14px); } + .logbox .dropdown li:nth-child(2n+1), + .logbox .dropdown li:nth-child(2n+1) form button, + .logbox .dropdown .dropdown-list li:nth-child(2n+1), + .logbox .dropdown .dropdown-list li:nth-child(2n+1) form button { + background-color: #084561; } + .logbox .my-account { + display: block; + height: 60px; + width: 60px; + float: right; } + .logbox .my-account .username { + display: none; } + .logbox .my-account .avatar { + background: #396a81; } + .logbox .dropdown.my-account-dropdown a, + .logbox .dropdown.my-account-dropdown button { + padding-left: 10px; } + .logbox .dropdown.my-account-dropdown button { + width: 100%; + height: 30px; + line-height: 28px; + background: transparent; + text-align: left; + border: 0; } + .logbox .dropdown.my-account-dropdown button:hover, + .logbox .dropdown.my-account-dropdown button:focus { + background: #396a81; } + .logbox.unlogged a { + display: block; + width: 50%; + text-align: center; + float: left; + line-height: 60px; + height: 60px; } + .logbox.unlogged a:hover, + .logbox.unlogged a:focus { + background-color: #396a81; } + +.sub-header { + background: #EEE; } + +@media only screen and (max-width: 959px) { + .header-logo { + width: 40px; + height: 50px; + margin-left: 50px; + float: left; } + .header-logo-link { + background-image: url("../images/logo-mobile.png") !important; + background-size: 100%; + width: 100%; + height: 100%; } + .header-logo-link:after { + display: block; + content: attr(data-title); + position: absolute; + top: 0; + left: 95px; + right: 155px; + line-height: 50px; + text-indent: 0; + text-align: left; + font-weight: normal; + font-size: 17px; + font-size: 1.7rem; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + max-width: 200px; } + .header-container header .header-menu { + height: 30px; } + .header-container header .header-menu .header-menu-list { + padding-top: 50px; } + .header-container header .header-menu .header-menu-list > li > a { + line-height: 50px; } + .logbox { + float: right; + width: 150px; + background: none; } + .logbox .notifs-links { + width: 100%; } + .logbox .notifs-links .ico-link { + height: 50px; + width: 50px; } + .logbox .dropdown { + top: 50px; } + .logbox .dropdown.my-account-dropdown .dropdown-list { + bottom: 0; } + .logbox .dropdown.my-account-dropdown .dropdown-list li { + height: 45px; + line-height: 45px; } + .logbox.unlogged { + font-size: 13px; + font-size: 1.3rem; } + .logbox.unlogged a { + background-color: rgba(255, 255, 255, 0.1); + line-height: 30px; + height: 30px; + margin: 10px 0; + width: 74px; + margin-right: 1px; } } + +@media only screen and (min-width: 960px) { + .header-container { + z-index: 1; + position: relative; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.3); } + .header-container header { + background-image: -webkit-linear-gradient(left, transparent 20%, rgba(255, 255, 255, 0.07) 40%, rgba(255, 255, 255, 0.07) 60%, transparent 80%); + background-image: linear-gradient(left, transparent 20%, rgba(255, 255, 255, 0.07) 40%, rgba(255, 255, 255, 0.07) 60%, transparent 80%); } + .header-logo { + float: left; + text-align: left; + width: 240px; } + .header-container header .header-menu { + float: left; + width: 40%; + margin-left: .5%; } + .header-container header .header-menu .header-menu-list > li > a { + max-width: 150px; + font-size: 1.6rem; + font-size: 16px; } + .dropdown { + top: 60px; } + .has-dropdown { + position: relative; + text-indent: -7px; } + .has-dropdown:after { + content: " "; + display: block; + position: absolute; + top: 47%; + left: 83%; + height: 0; + width: 0; + border: 6px solid transparent; + border-top: 6px solid rgba(255, 255, 255, 0.7); + border-left: 6px inset transparent; } + .has-dropdown:hover:after, + .has-dropdown:focus:after, + .has-dropdown.active:after { + border-top: 6px solid #FFF; } + .logbox .dropdown.my-account-dropdown ul li { + height: 30px; + line-height: 30px; } + .lt-ie9 .dropdown { + top: 90px; } + .header-right { + float: right; + width: 230px; } + .header-right .dropdown { + right: 2.5%; } } + +@media only screen and (min-width: 1140px) { + .header-container header .header-menu { + margin-left: 5%; } } + +.dropdown { + display: none; + position: absolute; + text-align: left; + top: 50px; + left: 0; + right: 0; + background-color: #396a81; + margin: 0; + padding: 10px 2.5%; + font-size: 14px; + font-size: 1.4rem; + border-bottom: 3px solid #F8AD32; + z-index: 50; } + .dropdown .dropdown-title { + color: #FFF; } + .dropdown.header-menu-dropdown .dropdown-list > li:first-child:nth-last-child(1), + .dropdown.header-menu-dropdown .dropdown-list > li:first-child:nth-last-child(1) ~ li { + width: 100%; } + .dropdown.header-menu-dropdown .dropdown-list > li:first-child:nth-last-child(2), + .dropdown.header-menu-dropdown .dropdown-list > li:first-child:nth-last-child(2) ~ li { + width: 50%; } + .dropdown.header-menu-dropdown .dropdown-list > li:first-child:nth-last-child(3), + .dropdown.header-menu-dropdown .dropdown-list > li:first-child:nth-last-child(3) ~ li { + width: 33.33333%; } + .dropdown.header-menu-dropdown .dropdown-list > li:first-child:nth-last-child(4), + .dropdown.header-menu-dropdown .dropdown-list > li:first-child:nth-last-child(4) ~ li { + width: 25%; } + .dropdown .dropdown-list { + width: 100%; + padding: 0; + margin-top: 15px; } + .dropdown .dropdown-list > li { + width: 20%; + float: left; } + .dropdown .dropdown-list > li.dropdown-empty-message { + color: rgba(255, 255, 255, 0.5); + text-align: center; + line-height: 60px; + background: none !important; } + .dropdown .dropdown-list > li ul { + margin: 0 0 10px; + padding: 0; } + .dropdown .dropdown-list > li ul li { + position: relative; } + .dropdown .dropdown-list > li ul li a { + display: block; + width: 95%; + min-height: 25px; + line-height: 25px; + color: #95d7f5; + overflow: hidden; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; } + .dropdown .dropdown-list > li ul li a:hover, + .dropdown .dropdown-list > li ul li a:focus { + padding-left: 3%; + background-color: rgba(0, 0, 0, 0.3); } + .dropdown .dropdown-link-all { + display: block; + clear: both; + text-align: center; + height: 30px; + line-height: 30px; + border-top: 1px solid #274a5a; + background-color: #396a81; + -webkit-transition-property: color, background-color; + transition-property: color, background-color; } + .dropdown .dropdown-link-all:first-child { + border-top: 0 !important; + border-bottom: 1px solid #274a5a; } + .dropdown .dropdown-link-all:hover, + .dropdown .dropdown-link-all:focus { + color: #95d7f5; + background-color: #274a5a; + border-top: 1px solid #396a81; } + +.active + .dropdown { + display: block; } + +@media only screen and (min-width: 760px) { + .dropdown { + box-shadow: 0 5px 7px rgba(0, 0, 0, 0.3); } + .header-right .dropdown { + width: 350px; + left: auto; + padding: 0; } + .header-right .dropdown .dropdown-list { + max-height: 270px; + overflow-x: hidden; + overflow-y: auto; } + .header-right .dropdown .dropdown-list::-webkit-scrollbar { + width: 10px; + height: 10px; } + .header-right .dropdown .dropdown-list::-webkit-scrollbar-track { + background-color: #06354a; } + .header-right .dropdown .dropdown-list::-webkit-scrollbar-thumb { + background-color: #396a81; + border: 1px solid #06354a; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; } + .header-right .dropdown .dropdown-list::-webkit-scrollbar-thumb:hover { + background-color: #5196b6; } + .header-right .dropdown .dropdown-list::-webkit-scrollbar-thumb:active { + background-color: #71b4d3; } + .header-right .dropdown.my-account-dropdown { + width: 230px; } } + +@media only screen and (max-width: 759px) { + html.dropdown-active { + overflow: hidden; } + html.dropdown-active .page-container { + width: 100%; } + html.dropdown-active .main-container { + display: none; } + .header-menu-dropdown { + display: none !important; } + .dropdown { + width: 100%; + top: 180px; + bottom: 0; + border-bottom: none; } + .dropdown .dropdown-list { + overflow: auto; + position: absolute; + top: 36px; + bottom: 50px; } + .dropdown .dropdown-link-all { + position: absolute; + left: 0; + right: 0; + bottom: 0; + height: 50px; + line-height: 50px; } } + +@media only screen and (min-width: 960px) { + .dropdown { + top: 60px; } } + +.search-form { + margin-bottom: 30px; } + +.search { + display: block; + position: relative; } + .search form input, + .search form button { + float: left; + border: none; + background: rgba(255, 255, 255, 0.25); + height: 40px; + -webkit-transition-property: background; + transition-property: background; + -webkit-transition-duration: 0.15s; + transition-duration: 0.15s; } + .search form input:hover, + .search form input:focus, + .search form button:hover, + .search form button:focus { + background-color: #FFF; } + .search form input:focus, + .search form button:focus { + outline-color: #F8AD32; } + .search form input { + height: 30px; + padding: 5px 3%; + width: 70%; } + .search form button { + width: 12%; + text-indent: -9999px; } + .search form button.disabled { + opacity: .5; + background: transparent; + cursor: default; } + .search form button:after { + display: block; + content: " "; + position: absolute; + top: 12px; + left: 50%; + margin-left: -8px; + height: 17px; + width: 17px; + background-position: 0px -3506px; } + .search .search-more { + display: block; + float: left; + height: 40px; + font-family: Arial, sans-serif; + line-height: 40px; + width: 12%; + text-align: center; + font-weight: bold; + text-decoration: none; + font-size: 24px; + background: #FFF; + color: #084561; + -webkit-transition: background 0.15s ease; + transition: background 0.15s ease; } + .search .search-more:hover, + .search .search-more:focus { + background: #F8AD32; + color: #FFF; + outline: none; } + .search .search-more:before { + content: "+"; } + +@media only screen and (min-width: 960px) { + .search:before { + content: " "; + display: block; + position: absolute; + left: -20px; + height: 30px; + width: 20px; + background: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.03), transparent); + background: linear-gradient(right, rgba(0, 0, 0, 0.03), transparent); } + .search form input { + padding: 6px 10px; + height: 18px; + width: 150px; } + .search form button { + height: 30px; + line-height: 30px; + width: 30px; } + .search form button:after { + top: 7px; } + .search .search-more { + width: 30px; + height: 30px; + line-height: 30px; } } + +#accessibility { + list-style: none; + margin: 0; + padding: 0 2.5%; + background: #062E41; + overflow: hidden; + height: 0; } + #accessibility.focused { + height: auto; } + #accessibility li { + display: inline; + margin: 0; + padding: 0; } + #accessibility li a { + display: inline-block; + padding: 0 7px; + color: #EEE; } + #accessibility li a:hover, + #accessibility li a:focus { + color: #084561; + background-color: #fff; + text-decoration: none; } + +#cookies-eu-banner { + padding: 0 3%; + background: #062E41; + display: none; } + #cookies-eu-banner div, + #cookies-eu-banner #cookies-eu-reject { + display: inline-block; + margin: 0; + padding: 7px 0; + color: #EEE; + line-height: 23px; } + #cookies-eu-banner #cookies-eu-reject { + background: none; + border: none; + text-decoration: underline; } + #cookies-eu-banner #cookies-eu-reject:hover, + #cookies-eu-banner #cookies-eu-reject:focus { + text-decoration: none; } + #cookies-eu-banner #cookies-eu-more, + #cookies-eu-banner #cookies-eu-accept { + display: inline-block; + margin-top: 3px; + padding: 4px 15px; + text-decoration: none; + -webkit-transition: background 0.15s, color 0.15s; + transition: background 0.15s, color 0.15s; } + #cookies-eu-banner #cookies-eu-more { + margin-left: 15px; + color: #EEE; + background: #084561; } + #cookies-eu-banner #cookies-eu-more:hover, + #cookies-eu-banner #cookies-eu-more:focus { + color: #084561; + background: #EEE; } + #cookies-eu-banner #cookies-eu-accept { + border: none; + color: #084561; + background: #EEE; } + #cookies-eu-banner #cookies-eu-accept:hover, + #cookies-eu-banner #cookies-eu-accept:focus { + color: #EEE; + background: #084561; } + +@media only screen and (max-width: 759px) { + #cookies-eu-banner { + position: absolute; + top: 50px; + right: 0; + bottom: 0; + left: 0; + z-index: 10; } + #cookies-eu-banner div { + margin-top: 40px; + padding: 0 5px; } + #cookies-eu-banner #cookies-eu-more, + #cookies-eu-banner #cookies-eu-accept { + display: block; + width: 100%; + height: 40px; + padding: 0 !important; + margin: 15px 0 0 0 !important; + text-align: center; } + #cookies-eu-banner #cookies-eu-more { + margin-top: 40px !important; + line-height: 40px; } } + +/*------------------------ +7. Layout +------------------------*/ +.main .sidebar { + padding: 0 0 10px; + background: #F0F0F0; + border-bottom: 1px solid #FFF; + color: #424242; + width: 105%; + margin: 0 0 0 -2.7%; } + .main .sidebar .new-btn { + display: block; + height: 40px; + padding-left: 11.5%; + text-decoration: none; + text-indent: 25px; + line-height: 40px; + font-size: 16px; + font-size: 1.6rem; + position: relative; + color: #1088bf; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; } + .main .sidebar .new-btn:first-child { + margin-top: 31px; } + .main .sidebar .new-btn:hover, + .main .sidebar .new-btn:focus { + background: #FFF; } + .main .sidebar .new-btn:after { + top: 12px; + left: 11.5%; } + .main .sidebar h3, + .main .sidebar h4 { + font-weight: normal; + margin: 0; + padding: 0; } + .main .sidebar h3 { + font-size: 18px; + font-size: 1.8rem; + line-height: 38px; + line-height: 3.8rem; + color: #084561; + border-bottom: 1px solid #F8AD32; + margin-top: 30px; } + .main .sidebar h4 { + padding-top: 20px; + font-size: 17px; + font-size: 1.7rem; } + .main .sidebar h4 a { + text-decoration: none; + color: #424242; } + .main .sidebar.accordeon h4 { + cursor: pointer; } + .main .sidebar h4[data-num] { + position: relative; + padding-left: calc(5% + 25px); } + .main .sidebar h4[data-num]:before { + content: attr(data-num); + position: absolute; + left: 5%; + text-align: right; + width: 50px; + margin-left: -35px; } + .main .sidebar h3 + ul, + .main .sidebar h3 + ol { + margin: 7px 0; } + .main .sidebar ul, + .main .sidebar ol { + margin: 0; + padding: 0; + list-style: none; + width: 100%; } + .main .sidebar ul li, + .main .sidebar ol li { + position: relative; + padding: 0 0 0 2.5%; + -webkit-transition: background 0.15s ease; + transition: background 0.15s ease; } + .main .sidebar ul li:not(.inactive):hover, + .main .sidebar ul li a:focus, + .main .sidebar ul li button:focus, + .main .sidebar ol li:not(.inactive):hover, + .main .sidebar ol li a:focus, + .main .sidebar ol li button:focus { + background: #FFF; + outline: none; } + .main .sidebar ul li:not(.inactive):hover .ico-after.action-hover, + .main .sidebar ul li a:focus .ico-after.action-hover, + .main .sidebar ul li button:focus .ico-after.action-hover, + .main .sidebar ol li:not(.inactive):hover .ico-after.action-hover, + .main .sidebar ol li a:focus .ico-after.action-hover, + .main .sidebar ol li button:focus .ico-after.action-hover { + display: block; } + .main .sidebar ul li a, + .main .sidebar ul li button, + .main .sidebar ul li.inactive > span, + .main .sidebar ul li.inactive > em, + .main .sidebar ol li a, + .main .sidebar ol li button, + .main .sidebar ol li.inactive > span, + .main .sidebar ol li.inactive > em { + display: block; + padding-left: 25px; + padding-right: 10px; + text-decoration: none; + color: #0079b2; + overflow: hidden; + height: 30px; + line-height: 30px; + font-size: 14px; + font-size: 1.4rem; + text-overflow: ellipsis; + white-space: nowrap; + border: 0; + text-align: left; + background: transparent; + /** + * Sidebar link variations / icons + */ } + .main .sidebar ul li a[data-num], + .main .sidebar ul li button[data-num], + .main .sidebar ul li.inactive > span[data-num], + .main .sidebar ul li.inactive > em[data-num], + .main .sidebar ol li a[data-num], + .main .sidebar ol li button[data-num], + .main .sidebar ol li.inactive > span[data-num], + .main .sidebar ol li.inactive > em[data-num] { + position: relative; } + .main .sidebar ul li a[data-num]:after, + .main .sidebar ul li button[data-num]:after, + .main .sidebar ul li.inactive > span[data-num]:after, + .main .sidebar ul li.inactive > em[data-num]:after, + .main .sidebar ol li a[data-num]:after, + .main .sidebar ol li button[data-num]:after, + .main .sidebar ol li.inactive > span[data-num]:after, + .main .sidebar ol li.inactive > em[data-num]:after { + content: attr(data-num) "."; + position: absolute; + left: 0; + width: 18px; + text-align: right; + color: #424242; } + .main .sidebar ul li a.selected, + .main .sidebar ul li button.selected, + .main .sidebar ul li.inactive > span.selected, + .main .sidebar ul li.inactive > em.selected, + .main .sidebar ol li a.selected, + .main .sidebar ol li button.selected, + .main .sidebar ol li.inactive > span.selected, + .main .sidebar ol li.inactive > em.selected { + font-weight: bold; } + .main .sidebar ul li a img, + .main .sidebar ul li button img, + .main .sidebar ul li.inactive > span img, + .main .sidebar ul li.inactive > em img, + .main .sidebar ol li a img, + .main .sidebar ol li button img, + .main .sidebar ol li.inactive > span img, + .main .sidebar ol li.inactive > em img { + border-right: 7px solid transparent; } + .main .sidebar ul li a img, + .main .sidebar ul li a span:not(.wide), + .main .sidebar ul li button img, + .main .sidebar ul li button span:not(.wide), + .main .sidebar ul li.inactive > span img, + .main .sidebar ul li.inactive > span span:not(.wide), + .main .sidebar ul li.inactive > em img, + .main .sidebar ul li.inactive > em span:not(.wide), + .main .sidebar ol li a img, + .main .sidebar ol li a span:not(.wide), + .main .sidebar ol li button img, + .main .sidebar ol li button span:not(.wide), + .main .sidebar ol li.inactive > span img, + .main .sidebar ol li.inactive > span span:not(.wide), + .main .sidebar ol li.inactive > em img, + .main .sidebar ol li.inactive > em span:not(.wide) { + vertical-align: middle; } + .main .sidebar ul li a .icon, + .main .sidebar ul li button .icon, + .main .sidebar ul li.inactive > span .icon, + .main .sidebar ul li.inactive > em .icon, + .main .sidebar ol li a .icon, + .main .sidebar ol li button .icon, + .main .sidebar ol li.inactive > span .icon, + .main .sidebar ol li.inactive > em .icon { + border-right: 7px solid transparent; + display: inline-block; + width: 16px; + height: 16px; + margin: 7px 5px; + line-height: 30px; } + .main .sidebar ul li a.ico-after:after, + .main .sidebar ul li button.ico-after:after, + .main .sidebar ul li.inactive > span.ico-after:after, + .main .sidebar ul li.inactive > em.ico-after:after, + .main .sidebar ol li a.ico-after:after, + .main .sidebar ol li button.ico-after:after, + .main .sidebar ol li.inactive > span.ico-after:after, + .main .sidebar ol li.inactive > em.ico-after:after { + top: 7px; + left: 0; + opacity: .7; } + .main .sidebar ul li a.ico-after.disabled:after, + .main .sidebar ul li button.ico-after.disabled:after, + .main .sidebar ul li.inactive > span.ico-after.disabled:after, + .main .sidebar ul li.inactive > em.ico-after.disabled:after, + .main .sidebar ol li a.ico-after.disabled:after, + .main .sidebar ol li button.ico-after.disabled:after, + .main .sidebar ol li.inactive > span.ico-after.disabled:after, + .main .sidebar ol li.inactive > em.ico-after.disabled:after { + opacity: .4 !important; } + .main .sidebar ul li a.ico-after:hover:after, + .main .sidebar ul li a.ico-after:focus:after, + .main .sidebar ul li button.ico-after:hover:after, + .main .sidebar ul li button.ico-after:focus:after, + .main .sidebar ul li.inactive > span.ico-after:hover:after, + .main .sidebar ul li.inactive > span.ico-after:focus:after, + .main .sidebar ul li.inactive > em.ico-after:hover:after, + .main .sidebar ul li.inactive > em.ico-after:focus:after, + .main .sidebar ol li a.ico-after:hover:after, + .main .sidebar ol li a.ico-after:focus:after, + .main .sidebar ol li button.ico-after:hover:after, + .main .sidebar ol li button.ico-after:focus:after, + .main .sidebar ol li.inactive > span.ico-after:hover:after, + .main .sidebar ol li.inactive > span.ico-after:focus:after, + .main .sidebar ol li.inactive > em.ico-after:hover:after, + .main .sidebar ol li.inactive > em.ico-after:focus:after { + opacity: 1; } + .main .sidebar ul li a.ico-after.action-hover, + .main .sidebar ul li button.ico-after.action-hover, + .main .sidebar ul li.inactive > span.ico-after.action-hover, + .main .sidebar ul li.inactive > em.ico-after.action-hover, + .main .sidebar ol li a.ico-after.action-hover, + .main .sidebar ol li button.ico-after.action-hover, + .main .sidebar ol li.inactive > span.ico-after.action-hover, + .main .sidebar ol li.inactive > em.ico-after.action-hover { + position: absolute; + display: none; + overflow: visible; + top: 0; + left: 10%; + padding: 0; + z-index: 1; + width: 30px; + height: 30px; + text-indent: -9999px; + background: #FFF; + right: -30px; } + .main .sidebar ul li a.ico-after.action-hover[data-title]:hover:before, + .main .sidebar ul li button.ico-after.action-hover[data-title]:hover:before, + .main .sidebar ul li.inactive > span.ico-after.action-hover[data-title]:hover:before, + .main .sidebar ul li.inactive > em.ico-after.action-hover[data-title]:hover:before, + .main .sidebar ol li a.ico-after.action-hover[data-title]:hover:before, + .main .sidebar ol li button.ico-after.action-hover[data-title]:hover:before, + .main .sidebar ol li.inactive > span.ico-after.action-hover[data-title]:hover:before, + .main .sidebar ol li.inactive > em.ico-after.action-hover[data-title]:hover:before { + content: attr(data-title); + display: block; + position: absolute; + background: #FFF; + color: #555; + top: -27px; + left: 0; + height: 27px; + line-height: 27px; + line-height: 2.7rem; + text-indent: 0; + padding: 0 15px; + border: 1px solid #EEE; + box-shadow: rgba(0, 0, 0, 0.15) 0 0 7px; } + .main .sidebar ul li a.ico-after.action-hover:after, + .main .sidebar ul li button.ico-after.action-hover:after, + .main .sidebar ul li.inactive > span.ico-after.action-hover:after, + .main .sidebar ul li.inactive > em.ico-after.action-hover:after, + .main .sidebar ol li a.ico-after.action-hover:after, + .main .sidebar ol li button.ico-after.action-hover:after, + .main .sidebar ol li.inactive > span.ico-after.action-hover:after, + .main .sidebar ol li.inactive > em.ico-after.action-hover:after { + left: 7px; } + .main .sidebar ul li.inactive > span, + .main .sidebar ul li.inactive > em, + .main .sidebar ol li.inactive > span, + .main .sidebar ol li.inactive > em { + color: #555; } + .main .sidebar ul li .count, + .main .sidebar ol li .count { + display: block; + position: absolute; + top: 6px; + right: 20px; + padding: 1px 10px; + height: 16px; + line-height: 16px; + font-style: normal; + background: #AAA; + color: #FFF; } + .main .sidebar ul li .last-answer, + .main .sidebar ol li .last-answer { + display: block; + visibility: hidden; + position: absolute; + top: -13px; + left: 102%; + width: 250px; + height: 40px; + background: #FFF; + padding: 7px 10px; + border: 1px solid #F0F0F0; + box-shadow: rgba(0, 0, 0, 0.1) 2px 2px 2px; + opacity: 0; + -webkit-transition: visibility 0s linear 0.15s, opacity 0.15s, left 0.15s; + transition: visibility 0s linear 0.15s, opacity 0.15s, left 0.15s; } + .main .sidebar ul li .last-answer .avatar, + .main .sidebar ol li .last-answer .avatar { + height: 40px; + width: 40px; + float: left; + border: 1px solid #F0F0F0; } + .main .sidebar ul li .last-answer .topic-last-answer, + .main .sidebar ol li .last-answer .topic-last-answer { + display: block; + margin-left: 50px; + line-height: 18px; + padding: 3px 0; + color: #555; } + .main .sidebar ul li .last-answer .topic-no-last-answer, + .main .sidebar ol li .last-answer .topic-no-last-answer { + display: block; + line-height: 40px; + width: 100%; + text-align: center; + color: #999; } + .main .sidebar ul li a:hover + .last-answer, + .main .sidebar ul li a:focus + .last-answer, + .main .sidebar ol li a:hover + .last-answer, + .main .sidebar ol li a:focus + .last-answer { + visibility: visible; + left: 100%; + opacity: 1; + -webkit-transition: visibility 0s linear 0, opacity 0.15s, left 0.15s; + transition: visibility 0s linear 0, opacity 0.15s, left 0.15s; } + .main .sidebar ul li a.unread, + .main .sidebar ol li a.unread { + font-weight: bold; } + .main .sidebar ul li button, + .main .sidebar ol li button { + width: 100%; + line-height: 28px; } + .main .sidebar ul li li, + .main .sidebar ol li li { + padding: 0; } + .main .sidebar ul li li a, + .main .sidebar ol li li a { + position: relative; + color: #084561; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; } + .main .sidebar ul li li a:hover, + .main .sidebar ul li li a:focus, + .main .sidebar ol li li a:hover, + .main .sidebar ol li li a:focus { + color: #0079B2; + background: #FFF; + margin-left: -11px; } + .main .sidebar ul li li a:hover:before, + .main .sidebar ul li li a:focus:before, + .main .sidebar ol li li a:hover:before, + .main .sidebar ol li li a:focus:before { + content: "> "; } + .main .sidebar.summary h4 { + border-bottom: 1px solid #d8dada; + padding-bottom: 5px; + padding-right: 15px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + .main .sidebar.summary h4 + ul > li:first-child, + .main .sidebar.summary h4 + ol > li:first-child { + margin-top: 5px; } + .main .sidebar.summary ol li.current { + margin-top: 0 !important; + padding-top: 5px; + margin-bottom: 5px; + background-color: #FFF; } + .main .sidebar.summary ol li.current + a { + font-weight: bold; } + .main .sidebar.summary ol li.current ol { + margin-top: 5px; + padding-top: 5px; + padding-bottom: 5px; + margin-left: -42px; + width: calc(105% + 25px); + background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.07), #F7F7F7 3px); + background: linear-gradient(top, rgba(0, 0, 0, 0.07), #F7F7F7 3px); } + .main .sidebar.summary ol li.current ol a { + padding-left: 50px; } + +.main .content-container { + padding-top: 30px; } + .main .content-container h1, + .main .content-container h2 { + font-size: 22px; + font-size: 2.2rem; + line-height: 38px; + line-height: 3.8rem; + color: #084561; + font-weight: normal; + border-bottom: 1px solid #F8AD32; + margin: 1px 0 15px; } + .main .content-container h1.illu, + .main .content-container h2.illu { + padding-left: 60px; } + .main .content-container h1.illu img, + .main .content-container h2.illu img { + background: #FFF; } + .main .content-container h1.ico-after, + .main .content-container h2.ico-after { + padding-left: 80px; } + .main .content-container h1.ico-after:after, + .main .content-container h2.ico-after:after { + width: 80px; + height: 40px; + margin-left: 21px; } + .main .content-container h1.ico-articles:after, + .main .content-container h2.ico-articles:after { + background-position: 0px -346px; } + .main .content-container h1.ico-tutorials:after, + .main .content-container h2.ico-tutorials:after { + background-position: 0px -4066px; } + .main .content-container h1.ico-news:after, + .main .content-container h2.ico-news:after { + background-position: 0px -3586px; } + .main .content-container h1.ico-forum:after, + .main .content-container h2.ico-forum:after { + background-position: 0px -1586px; } + .main .content-container h1.illu img, + .main .content-container h2.illu img { + position: absolute; + margin: -6px 0 0 -60px; + border: 1px solid #cdd0d1; + width: 50px; + height: 50px; } + .main .content-container .license { + float: right; + margin: 0; + margin-top: 10px; } + .main .content-container .subtitle { + font-size: 18px; + font-size: 1.8rem; + line-height: 23px; + color: #999; + margin-top: -15px; + margin-bottom: 15px; + padding: 10px 0; + font-weight: normal; + border-bottom: 1px solid #EEE; } + .main .content-container .pubdate { + display: block; + color: #999; + margin-bottom: 15px; } + .main .content-container .member-item .avatar { + margin-top: -2px; + height: 20px; + width: 20px; + border: 1px solid #CCC; } + .main .content-container .member-item .avatar + span { + padding-left: 3px; } + .main .content-container .member-item:hover .avatar { + border-color: #999; } + .main .content-container .member-item + .member-item { + margin-left: 7px; } + .main .content-container .authors .member-item { + margin-right: 0; + margin-left: 7px; } + .main .content-container .authors .member-item .avatar { + height: 30px; + width: 30px; + margin: -3px 5px 0 -6px; } + .main .content-container .open-zen-mode { + display: none; } + .main .content-container .new-btn-container { + display: none; } + +.home .main .content-container { + margin-top: 0; } + +@media only screen and (min-width: 1360px) { + .main .content-container .content-wrapper { + max-width: 960px; + margin: 0 auto !important; } } + +@media only screen and (min-width: 960px) { + body.no-sidebar .main .content-container { + width: 100%; } + body.no-sidebar .main .sidebar { + display: none; } + .main { + display: -webkit-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -ms-flex-direction: row-reverse; + -webkit-flex-direction: row-reverse; + flex-direction: row-reverse; + height: 100%; + margin-left: 0; + padding-left: 2.5%; } + .main .content-container { + width: 80%; + margin-right: 0; } + .main .content-container .taglist + .pubdate { + margin-top: -40px; } + .main .content-container .open-zen-mode { + display: block; } + .main .content-container.zen-mode { + width: 100%; + min-height: calc(100% - 200px); + position: absolute; + top: 0; + left: 0; + right: 0; + z-index: 20; + background: #FCFCFC; + padding: 100px 0; + margin-bottom: 0; } + .main .content-container.zen-mode .comments-title, + .main .content-container.zen-mode .pagination:not(.pagination-chapter), + .main .content-container.zen-mode .topic-message { + display: none; } + .main .content-container.zen-mode .content-wrapper { + margin: 0 4%; } + .main .content-container h1, + .main .content-container h2 { + margin-left: 1px; } + .main .content-container .content-col-2 { + width: 49.5%; + margin: 0 0 0 1%; } + .main .content-container .content-col-3 { + width: 32%; + margin: 0 0 0 2%; } + .main .content-container .content-col-2, + .main .content-container .content-col-3 { + float: left; } + .main .content-container .content-col-2:first-child, + .main .content-container .content-col-3:first-child { + margin: 0; } + .main .content-container .article-content > .summary-part > li { + float: left; + width: 50%; } + .main .content-container .article-content > .summary-part > li:nth-child(2n+1) { + clear: both; } + .main .sidebar { + width: 22.5%; + border-bottom: none; } + .main .sidebar h3, + .main .sidebar h4, + .main .sidebar ul li, + .main .sidebar ol li { + padding-left: 11.5%; } + .main .sidebar h3:first-child { + margin-top: 31px; } + .main .sidebar h4[data-num] { + padding-left: calc(11% + 25px); } + .main .sidebar h4[data-num]:before { + left: 11%; } + .main .sidebar.sommaire ul li.current ul, + .main .sidebar.sommaire ul li.current ol { + margin-left: calc(-11% - 10px); + width: calc(111% + 10px); + background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.07), transparent 3px); + background: linear-gradient(top, rgba(0, 0, 0, 0.07), transparent 3px); } + .main .sidebar.sommaire ul li.current ul a, + .main .sidebar.sommaire ul li.current ol a { + padding-left: calc(11% + 30px); } } + +@media only screen and (min-width: 960px) { + .content-cols .main .content-container { + width: 79%; + margin-left: 1.5%; } + .full-content-wrapper .tutorial-list article { + width: 46%; + float: left; } + .full-content-wrapper .tutorial-list article.extend { + width: 100%; } } + +@media only screen and (max-width: 959px) { + .main .content-container .new-btn-container { + display: block; + margin: 30px 0; + border-top: 1px solid #DDD; + overflow: hidden; } + .main .content-container .new-btn-container .new-btn { + display: block; + width: 100%; + padding: 7px 10px 7px 35px; + text-decoration: none; + height: 30px; + line-height: 30px; + background: #EEE; + color: #333; + border-bottom: 1px solid #DDD; } + .main .content-container .new-btn-container .new-btn.ico-after:after { + top: 13px; + left: 10px; } + .main .content-container h1.ico-news:after, .main .content-container h2.ico-news:after { + background-position: 0px -3626px; } + .main { + width: 100%; } + .main .content-container .content-col:not(:first-child), + .main .sidebar { + margin-top: 50px; } + .main .sidebar { + width: 102.5%; } + .main .sidebar h3, + .main .sidebar h4, + .main .sidebar ul li { + padding-left: 5.5%; } + .main .sidebar h3 a, + .main .sidebar h4 a, + .main .sidebar ul li a { + white-space: normal; } + .content-col-2:not(:first-child), + .content-col-3:not(:first-child) { + margin-top: 50px; } } + +.small-content-wrapper { + width: 90%; + max-width: 500px; + margin: 20px auto; } + +.main .content-container .content-wrapper.article-content, +.main .content-container .content-wrapper.authors { + padding-left: 2%; + padding-right: 2%; } + +.main .content-container .article-content p, +.main .content-container .article-content > a, +.main .content-container .article-content p a, +.main .content-container .article-content ul:not(.pagination), +.main .content-container .article-content ol:not(.summary-part) { + font-family: "Merriweather", "Liberation Serif", "Times New Roman", Times, Georgia, FreeSerif, serif; } + +.main .content-container .content-wrapper.comment-author, +.main .content-container .comment-author { + background: #EEE; + padding: 7px 15px; + margin-bottom: 20px; } + .main .content-container .content-wrapper.comment-author blockquote, + .main .content-container .comment-author blockquote { + margin: 10px 0; + border-left: 5px solid #CCC; + padding: 5px 0 5px 15px; } + +.main .content-container .article-content .summary-part { + font-size: 20px; + color: #ea9408; } + .main .content-container .article-content .summary-part h3, + .main .content-container .article-content .summary-part h4 { + font-weight: normal; + width: 90%; } + .main .content-container .article-content .summary-part h3 a, + .main .content-container .article-content .summary-part h4 a { + text-decoration: none; } + .main .content-container .article-content .summary-part h3 a:hover, + .main .content-container .article-content .summary-part h3 a:focus, + .main .content-container .article-content .summary-part h4 a:hover, + .main .content-container .article-content .summary-part h4 a:focus { + text-decoration: underline; } + .main .content-container .article-content .summary-part h3 { + font-size: 20px; + margin: 0 0 5px; } + .main .content-container .article-content .summary-part .summary-part { + list-style: none; + padding-left: 0; + margin-bottom: 15px; } + .main .content-container .article-content .summary-part .summary-part h4 { + font-size: 14px; + margin: 2px 0; } + +.main .content-container .article-content, +.main .content-container .message-content { + margin-top: 20px; + margin-bottom: 20px; + color: #424242; } + .main .content-container .article-content h2, + .main .content-container .article-content h3, + .main .content-container .message-content h2, + .main .content-container .message-content h3 { + clear: both; } + .main .content-container .article-content h2, + .main .content-container .article-content h2 a, + .main .content-container .article-content h3, + .main .content-container .article-content h3 a, + .main .content-container .message-content h2, + .main .content-container .message-content h2 a, + .main .content-container .message-content h3, + .main .content-container .message-content h3 a { + color: #ea9408; + margin-top: 40px; + text-decoration: none; } + .main .content-container .article-content h2 a:hover, + .main .content-container .article-content h2 a:focus, + .main .content-container .article-content h3 a:hover, + .main .content-container .article-content h3 a:focus, + .main .content-container .message-content h2 a:hover, + .main .content-container .message-content h2 a:focus, + .main .content-container .message-content h3 a:hover, + .main .content-container .message-content h3 a:focus { + text-decoration: underline; } + .main .content-container .article-content h2, + .main .content-container .message-content h2 { + font-size: 22px; + font-size: 2.2rem; + line-height: 50px; + margin-bottom: 20px; + background: #FFF; + border-top: 1px solid #e0e4e5; + padding-left: 1%; + font-weight: 400; } + .main .content-container .article-content h3, + .main .content-container .message-content h3 { + font-size: 20px; + font-size: 2.0rem; + margin-bottom: 14px; } + .main .content-container .article-content h4, + .main .content-container .message-content h4 { + font-size: 18px; + font-size: 1.8rem; + margin-bottom: 12px; } + .main .content-container .article-content h5, + .main .content-container .message-content h5 { + font-size: 16px; + font-size: 1.6rem; + margin-bottom: 10px; } + .main .content-container .article-content h6, + .main .content-container .message-content h6 { + font-size: 15px; + font-size: 1.5rem; + margin-bottom: 10px; } + .main .content-container .article-content .actions-title, + .main .content-container .message-content .actions-title { + float: right; + margin: -60px 10px 0 0; } + .main .content-container .article-content .actions-title .btn, + .main .content-container .message-content .actions-title .btn { + height: 30px; + line-height: 30px; + margin-left: 3px; + opacity: .7; } + .main .content-container .article-content .actions-title .btn.ico-after:after, + .main .content-container .message-content .actions-title .btn.ico-after:after { + margin-top: 7px; } + .main .content-container .article-content .actions-title .btn:hover, + .main .content-container .article-content .actions-title .btn:focus, + .main .content-container .message-content .actions-title .btn:hover, + .main .content-container .message-content .actions-title .btn:focus { + opacity: 1; } + .main .content-container .article-content :not(.alert-box).information, + .main .content-container .article-content :not(.alert-box).question, + .main .content-container .article-content :not(.alert-box).error, + .main .content-container .article-content :not(.alert-box).warning, + .main .content-container .article-content :not(.alert-box).spoiler, + .main .content-container .message-content :not(.alert-box).information, + .main .content-container .message-content :not(.alert-box).question, + .main .content-container .message-content :not(.alert-box).error, + .main .content-container .message-content :not(.alert-box).warning, + .main .content-container .message-content :not(.alert-box).spoiler { + margin: 25px 0; + padding: 7px 15px 7px 45px; } + .main .content-container .article-content :not(.alert-box).information.ico-after:after, + .main .content-container .article-content :not(.alert-box).question.ico-after:after, + .main .content-container .article-content :not(.alert-box).error.ico-after:after, + .main .content-container .article-content :not(.alert-box).warning.ico-after:after, + .main .content-container .article-content :not(.alert-box).spoiler.ico-after:after, + .main .content-container .message-content :not(.alert-box).information.ico-after:after, + .main .content-container .message-content :not(.alert-box).question.ico-after:after, + .main .content-container .message-content :not(.alert-box).error.ico-after:after, + .main .content-container .message-content :not(.alert-box).warning.ico-after:after, + .main .content-container .message-content :not(.alert-box).spoiler.ico-after:after { + position: absolute; + top: 50%; + left: 23px; + margin: -11px 0 0 -11px; + height: 22px; + width: 22px; } + .main .content-container .article-content :not(.alert-box).information, + .main .content-container .message-content :not(.alert-box).information { + background: #daeaee; } + .main .content-container .article-content :not(.alert-box).information.ico-after:after, + .main .content-container .message-content :not(.alert-box).information.ico-after:after { + background-position: 0px -2586px; } + .main .content-container .article-content :not(.alert-box).question, + .main .content-container .message-content :not(.alert-box).question { + background: #e2daee; } + .main .content-container .article-content :not(.alert-box).question.ico-after:after, + .main .content-container .message-content :not(.alert-box).question.ico-after:after { + background-position: 0px -3266px; } + .main .content-container .article-content :not(.alert-box).error, + .main .content-container .message-content :not(.alert-box).error { + background: #eedada; } + .main .content-container .article-content :not(.alert-box).error.ico-after:after, + .main .content-container .message-content :not(.alert-box).error.ico-after:after { + background-position: 0px -1426px; } + .main .content-container .article-content :not(.alert-box).warning, + .main .content-container .message-content :not(.alert-box).warning { + background: #eee7da; } + .main .content-container .article-content :not(.alert-box).warning.ico-after:after, + .main .content-container .message-content :not(.alert-box).warning.ico-after:after { + background-position: 0px -4386px; } + .main .content-container .article-content .spoiler, + .main .content-container .message-content .spoiler { + margin-top: 0; + padding-left: 15px; + background: #EEE; } + .main .content-container .article-content .spoiler-title, + .main .content-container .message-content .spoiler-title { + display: block; + background: #EEE; + margin-top: 15px; + padding: 3px 15px 3px 40px; + text-decoration: none; + border-bottom: 1px solid #DDD; + color: #555; } + .main .content-container .article-content .spoiler-title.ico-after:after, + .main .content-container .message-content .spoiler-title.ico-after:after { + margin: 8px 0 0 10px; } + .main .content-container .article-content .spoiler-title:nth-last-child(2), + .main .content-container .message-content .spoiler-title:nth-last-child(2) { + margin-bottom: 15px; } + .main .content-container .article-content .spoiler-title:hover, + .main .content-container .message-content .spoiler-title:hover { + text-decoration: underline; } + .main .content-container .article-content img, + .main .content-container .message-content img { + max-width: 100%; } + .main .content-container .article-content figure, + .main .content-container .message-content figure { + margin: 30px 0; + text-align: center; } + .main .content-container .article-content figure > img, + .main .content-container .article-content figure > video, + .main .content-container .article-content figure > pre, + .main .content-container .article-content figure > code, + .main .content-container .article-content figure > table, + .main .content-container .article-content figure > blockquote, + .main .content-container .article-content figure > embed, + .main .content-container .article-content figure > video, + .main .content-container .message-content figure > img, + .main .content-container .message-content figure > video, + .main .content-container .message-content figure > pre, + .main .content-container .message-content figure > code, + .main .content-container .message-content figure > table, + .main .content-container .message-content figure > blockquote, + .main .content-container .message-content figure > embed, + .main .content-container .message-content figure > video { + max-width: 100%; + margin: 0 auto; + text-align: left; } + .main .content-container .article-content figure > img, + .main .content-container .article-content figure > video, + .main .content-container .article-content figure > pre, + .main .content-container .article-content figure > code, + .main .content-container .message-content figure > img, + .main .content-container .message-content figure > video, + .main .content-container .message-content figure > pre, + .main .content-container .message-content figure > code { + display: block; } + .main .content-container .article-content figure > figcaption, + .main .content-container .message-content figure > figcaption { + display: block; } + .main .content-container .article-content figure > blockquote ~ figcaption, + .main .content-container .message-content figure > blockquote ~ figcaption { + padding: 0 0 1px 2%; + font-style: italic; + text-align: left; + color: #999; + border-left: 5px solid #CCC; } + .main .content-container .article-content figure > blockquote ~ figcaption p, + .main .content-container .message-content figure > blockquote ~ figcaption p { + margin: 0 0 5px; } + .main .content-container .article-content figure > blockquote ~ figcaption p:before, + .main .content-container .message-content figure > blockquote ~ figcaption p:before { + content: "— "; } + .main .content-container .article-content blockquote, + .main .content-container .message-content blockquote { + margin: 0; + color: #777; + padding: 1px 2%; + border-left: 5px solid #CCC; } + .main .content-container .article-content blockquote > p:first-child, + .main .content-container .message-content blockquote > p:first-child { + margin-top: 5px; } + .main .content-container .article-content blockquote > p:last-child, + .main .content-container .message-content blockquote > p:last-child { + margin-bottom: 5px; } + .main .content-container .article-content blockquote figure, + .main .content-container .message-content blockquote figure { + margin: 15px 0; } + .main .content-container .article-content blockquote:last-child, + .main .content-container .message-content blockquote:last-child { + margin-bottom: 15px; } + .main .content-container .article-content code, + .main .content-container .article-content kbd, + .main .content-container .article-content pre, + .main .content-container .article-content samp, + .main .content-container .message-content code, + .main .content-container .message-content kbd, + .main .content-container .message-content pre, + .main .content-container .message-content samp { + font-family: monospace, serif; } + .main .content-container .article-content pre, + .main .content-container .message-content pre { + margin: 0; } + .main .content-container .article-content kbd, + .main .content-container .message-content kbd { + background-color: #F8F6EA; + padding: 2px 6px; + border-radius: 3px; + border: solid 1px #e0dab6; + border-bottom-width: 3px; + text-shadow: 0 1px 0 #FFF; + color: #5e551f; } + .main .content-container .article-content p code, + .main .content-container .article-content li code, + .main .content-container .message-content p code, + .main .content-container .message-content li code { + color: #A00; + background: #EEE; + border: 1px solid #CCC; + padding: 0 5px; } + .main .content-container .article-content .mathjax-wrapper, + .main .content-container .message-content .mathjax-wrapper { + max-width: 100%; + overflow: auto; } + .main .content-container .article-content .mathjax-wrapper mathjax, + .main .content-container .message-content .mathjax-wrapper mathjax { + font-size: 16px; + font-size: 1.6rem; } + .main .content-container .article-content .footnote, + .main .content-container .message-content .footnote { + opacity: .7; } + .main .content-container .article-content .footnote ol, + .main .content-container .message-content .footnote ol { + padding-left: 25px; } + +.main .content-container .comments-title { + margin: 50px 0 20px; + color: #084561; + border-bottom: 1px solid #F8AD32; + font-weight: normal; + font-size: 22px; + font-size: 2.2rem; + line-height: 30px; } + +.wf-active .main .content-container .article-content p, +.wf-active .main .content-container .article-content ul:not(.pagination), +.wf-active .main .content-container .article-content ol:not(.summary-part) { + font-family: "Merriweather", "Liberation Serif", "Times New Roman", Times, Georgia, FreeSerif, serif; } + +.wf-active .main .content-container .article-content figcaption p { + font-family: "Source Sans Pro", "Segoe UI", "Trebuchet MS", Helvetica, "Helvetica Neue", Arial, sans-serif; + font-size: 16px; + font-size: 1.6rem; } + +.wf-active .main .content-container .article-content code, +.wf-active .main .content-container .article-content kbd, +.wf-active .main .content-container .article-content pre, +.wf-active .main .content-container .article-content samp, +.wf-active .main .content-container .message-content code, .wf-active .main .content-container .message-content kbd, .wf-active .main .content-container .message-content pre, .wf-active .main .content-container .message-content samp { + font-family: "Source Code Pro", monospace, serif; } + +.js .spoiler { + display: none; } + +@media only screen and (min-width: 1140px) { + .full-content-wrapper .tutorial-list article { + width: 29.3%; } + .main .content-container .topic-message .message .message-metadata .date .short-date { + display: none; } + .main .content-container .topic-message .message .message-metadata .date .long-date { + display: inline; } } + +@media only screen and (min-width: 960px) { + .content-wrapper, + .full-content-wrapper { + margin: 0 0 0 4%; } + .content-wrapper.without-margin, + .full-content-wrapper.without-margin { + margin: 0; } + .content-wrapper .content-wrapper, + .full-content-wrapper .content-wrapper { + max-width: none; + margin: 0; } } + +@media only screen and (max-width: 959px) { + .main .content-container .taglist, + .main .content-container .pubdate { + margin-left: 10px; + margin-right: 10px; } + .main .content-container .article-content p, + .main .content-container .article-content ol, + .main .content-container .article-content ul:not(.pagination) { + font-size: 15px; + font-size: 1.5rem; + font-size: 1.8ex; } + .main .content-container .content-wrapper h1:not(.ico-after), + .main .content-container .content-wrapper h2:not(.ico-after), + .main .content-container .content-wrapper h3, + .main .content-container .content-wrapper .subtitle, + .main .content-container .full-content-wrapper h1:not(.ico-after), + .main .content-container .full-content-wrapper h2:not(.ico-after), + .main .content-container .full-content-wrapper h3, + .main .content-container .full-content-wrapper .subtitle { + padding-left: 10px; + padding-right: 10px; } + .main .content-container .content-wrapper .illu img, + .main .content-container .full-content-wrapper .illu img { + display: none; } + .main .content-container .content-wrapper h4, + .main .content-container .content-wrapper h5, + .main .content-container .content-wrapper h6, + .main .content-container .content-wrapper .authors, + .main .content-container .content-wrapper p, + .main .content-container .content-wrapper figure, + .main .content-container .content-wrapper blockquote, + .main .content-container .full-content-wrapper h4, + .main .content-container .full-content-wrapper h5, + .main .content-container .full-content-wrapper h6, + .main .content-container .full-content-wrapper .authors, + .main .content-container .full-content-wrapper p, + .main .content-container .full-content-wrapper figure, + .main .content-container .full-content-wrapper blockquote { + margin-left: 10px; + margin-right: 10px; } + .main .content-container .content-wrapper figure p, + .main .content-container .content-wrapper figure blockquote, + .main .content-container .full-content-wrapper figure p, + .main .content-container .full-content-wrapper figure blockquote { + margin-left: 0; + margin-right: 0; } + .main .content-container .content-wrapper .license, + .main .content-container .full-content-wrapper .license { + position: absolute; + margin-top: 0; + top: 62px; + right: 15px; } } + +@media only screen and (max-width: 759px) { + .main .content-container .article-content .btn { + float: none; + text-align: center; } } + +.footer-container footer { + color: #424242; + padding: 20px 0; } + +.page-footer { + background: #084561; + height: 40px; + line-height: 40px; + border-top: 3px solid #F8AD32; + font-size: 14px; + font-size: 1.4rem; } + .page-footer .wrapper { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .page-footer .copyright { + color: #EEE; + margin: 0; } + .page-footer ul { + list-style: none; + margin: 0; + padding: 0; } + .page-footer ul.links li { + display: inline-block; + margin-left: 25px; } + .page-footer ul.links li a { + text-decoration: none; + color: #EEE; + border-bottom: 1px solid transparent; } + .page-footer ul.links li a:hover, + .page-footer ul.links li a:focus { + border-bottom-color: #F8AD32; } + .page-footer ul.social { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + text-align: center; } + .page-footer ul.social li { + margin: -2px 10px; + display: inline-block; } + .page-footer ul.social li a { + display: block; + height: 16px; + width: 16px; } + .page-footer ul.social li a:after { + opacity: 0.6; } + .page-footer ul.social li a:hover { + border-bottom-color: transparent; } + .page-footer ul.social li a:hover:after { + opacity: 1; } + .page-footer .version, + .page-footer .version a { + color: rgba(255, 255, 255, 0.5); } + .page-footer .version a:hover, + .page-footer .version a:focus { + color: #FFF; } + +@media only screen and (max-width: 959px) { + .page-footer { + text-align: center; + height: auto; } + .page-footer .wrapper { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .page-footer .wrapper .social { + -ms-flex: none; } + .page-footer .copyright, .page-footer .social { + border-bottom: 1px solid #5b3a03; } + .page-footer ul li { + margin: 0 5px; } } + +/*------------------------ +8. Components +------------------------*/ +.alert-box { + position: relative; + padding: 8px 30px 8px 15px; + margin: 0 0 15px 2%; + color: #FFF; + text-shadow: rgba(0, 0, 0, 0.2) 0 0 2px; + background: #777; } + .alert-box.alert-box-not-closable { + padding-right: 15px; } + .alert-box .alert-box-text { + display: block; + float: left; } + .alert-box .close-alert-box { + display: block; + position: absolute; + top: 8px; + right: 15px; + height: 20px; + width: 20px; + text-indent: -9999px; + text-decoration: none; + background-color: transparent; + line-height: 22px; + color: #FFF; } + .alert-box .close-alert-box.ico-after:after { + margin-top: 4px; } + .alert-box .close-alert-box-text { + width: auto; + text-indent: 0; + top: 8px; } + .alert-box .alert-box-title { + margin: 5px 0; + padding: 0; + font-size: 18px; + font-weight: normal; } + .alert-box.info, .alert-box.success { + background: #48A200; } + .alert-box.error { + background: #C0392B; } + .alert-box.alert, .alert-box.warning { + background: #e67e22; } + .alert-box.not-member { + background: #FDFDFD; + color: #333; + text-shadow: none; + border-bottom: 3px solid #D2D5D6; } + .alert-box.ico-after { + padding-left: 40px; } + .alert-box.ico-after:after { + margin: 12px 0 0 13px; } + .alert-box h4, + .alert-box p { + margin-left: 0 !important; + margin-right: 0 !important; } + .alert-box p { + margin: 0; } + .alert-box a { + color: #EEE; } + .alert-box .alert-box-btn { + display: inline-block; + background: #084561; + text-decoration: none; + padding: 8px 15px; + margin: 5px 0; + color: #FFF !important; } + .alert-box .alert-box-btn:hover, + .alert-box .alert-box-btn:focus { + background: #0b5c82; } + .alert-box .alert-box-btn.alert-box-btn-right { + position: absolute; + top: 0; + right: 0; + margin: 0; } + .alert-box.empty { + display: none; } + +.content-wrapper .alert-box { + margin: 0 0 20px; } + .content-wrapper .alert-box + .not-member { + margin-top: -20px; } + +@media only screen and (min-width: 760px) { + .alert-box .alert-box-text { + display: inline; } + .topic-message .alert-box { + padding: 8px 75px 8px 15px; } } + +@media only screen and (max-width: 759px) { + .alert-box .alert-box-btn, + .alert-box .alert-box-btn.alert-box-btn-right { + position: relative; + float: none; + display: block; + margin: 5px 0 0; + text-align: center; } } + +.authors { + color: #9c9c9c; + padding-bottom: 10px; + border-bottom: 1px solid #e0e4e5; + margin-bottom: 20px !important; } + .authors .authors-label { + display: inline-block; } + .authors ul { + display: inline-block; + list-style: none; + padding: 0; + margin: 0; } + .authors ul li { + display: inline-block; + margin: 0; } + .authors ul li .avatar { + height: 28px; + width: 28px; + border: 1px solid #cdd0d1; + margin-right: 3px; + margin-top: -4px; } + .authors ul li a { + display: block; + text-decoration: none; + color: #1088bf; + height: 36px; + line-height: 36px; + padding: 0 8px; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; } + .authors ul li a.ico-after { + padding-left: 30px; } + .authors ul li a.ico-after:after { + margin: 10px 0 0 8px; } + .authors ul li a:hover, + .authors ul li a:focus { + background: #DDD; + color: #084561; } + .authors ul li .info { + padding-left: 5px; + color: #777; } + +.autocomplete-wrapper { + position: relative; } + .autocomplete-wrapper .autocomplete-dropdown { + position: absolute; + z-index: 60; } + .autocomplete-wrapper .autocomplete-dropdown ul { + padding: 0; + margin: 0; + background-color: #FFF; + border-right: solid 1px #CCC; + border-left: solid 1px #CCC; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; } + .autocomplete-wrapper .autocomplete-dropdown ul li { + padding: 4px 10px; + border-bottom: solid 1px #CCC; + list-style: none; } + .autocomplete-wrapper .autocomplete-dropdown ul li.active, .autocomplete-wrapper .autocomplete-dropdown ul li:hover { + background-color: #0c6790; + color: white; } + +.modal .autocomplete-dropdown { + margin-top: -10px; + margin-left: 15px; } + +.breadcrumb { + display: none; } + +@media only screen and (min-width: 960px) { + .breadcrumb { + position: relative; + display: block; + float: left; + width: calc(100% - 230px); + height: 30px; } + .breadcrumb:after { + content: " "; + display: block; + position: absolute; + top: 0; + right: 0; + width: 50px; + height: 100%; + background-image: -webkit-linear-gradient(left, rgba(231, 235, 236, 0), rgba(231, 235, 236, 0.75)); + background-image: linear-gradient(left, rgba(231, 235, 236, 0), rgba(231, 235, 236, 0.75)); } + .breadcrumb ol { + margin: 0; + padding: 0; + list-style: none; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + .breadcrumb ol li { + position: relative; + display: inline-block; + padding-right: 30px; + line-height: 30px; } + .breadcrumb ol li a { + text-decoration: none; + color: #084561; } + .breadcrumb ol li a:hover, + .breadcrumb ol li a:focus { + text-decoration: underline; + outline: none; } + .breadcrumb ol li:not(:last-child):after { + display: block; + position: absolute; + top: 0; + right: 7px; + content: " "; + height: 30px; + width: 15px; + background-image: url("../images/sprite.png"); + background-repeat: no-repeat; + background-position: 0px -3306px; + opacity: .2; } } + +.content-item { + background: #FFF; + min-height: 60px; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + border: solid 1px #DEDEDE; + border-bottom-width: 2px; + margin: 0 10px 15px; + overflow: hidden; + -webkit-box-flex: 1; + -webkit-flex: 1 1 400px; + -ms-flex: 1 1 400px; + flex: 1 1 400px; + width: 100%; } + .content-item.expand-description .content-description { + height: 36px; + white-space: normal; + font-size: 14px; + font-size: 1.4rem; + line-height: 18px; } + .content-item.expand-description .content-meta { + line-height: 16px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; } + .content-item.expand-description .content-meta:not(.inline) > * { + display: inline; } + .content-item a { + text-decoration: none; } + .content-item > a:not(.btn) { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + width: 100%; } + .content-item .content-illu { + -webkit-box-flex: 0; + -webkit-flex: 0 0 96px; + -ms-flex: 0 0 96px; + flex: 0 0 96px; + height: 96px; + background-color: #DEDEDE; } + .content-item .content-illu img { + width: 100%; + height: 100%; + background-color: #FFF; } + .content-item .content-info { + padding: 10px 14px; + height: 76px; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + position: relative; + min-width: 100px; } + .content-item .content-reactions { + position: absolute; + z-index: 0; + bottom: 6px; + left: -14px; + height: 32px; + width: 32px; + padding-left: 1px; + background-image: url("../images/sprite.png"); + background-position: 0px -74px; + color: #F8AD32; + text-align: center; + line-height: 32px; + font-weight: bold; + font-size: 14px; + font-size: 1.4rem; } + .content-item .content-reactions span { + position: relative; + z-index: 2; } + .content-item .content-reactions::before { + content: ""; + display: block; + position: absolute; + top: 0; + bottom: 0; + right: 0; + left: 0; + z-index: 1; + background-image: url("../images/sprite.png"); + background-position: 0px -42px; + opacity: 0; + -webkit-transition: opacity 0.15s; + transition: opacity 0.15s; } + .content-item .content-reactions:focus, .content-item .content-reactions:hover { + color: white; } + .content-item .content-reactions:focus::before, .content-item .content-reactions:hover::before { + opacity: 1; } + .content-item.has-reactions .content-meta { + padding-left: 14px; } + .content-item .content-title { + margin: 0; + font-size: 17px; + font-size: 1.7rem; + font-weight: normal; + line-height: 20px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + color: #424242; } + .content-item a:hover, .content-item a:focus { + outline: none; } + .content-item a:hover .content-title, .content-item a:focus .content-title { + text-decoration: underline; + outline: none; } + .content-item p { + margin: 0; } + .content-item .content-description { + margin: 0; + font-size: 15px; + font-size: 1.5rem; + line-height: 26px; + color: #999; + margin-bottom: 2px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + .content-item .content-description .short { + display: none; } + .content-item .content-meta { + color: #F8AD32; + font-size: 13px; + font-size: 1.3rem; + line-height: 15px; } + .content-item .content-meta:not(.inline) > * { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: block; } + .content-item .content-meta .short { + display: none; } + .content-item .content-meta > a { + color: #ef9708; } + .content-item .content-meta > a:hover, .content-item .content-meta > a:focus { + text-decoration: underline; } + .content-item .content-tags { + margin: 0; + padding: 10px 0 0; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: end; + -webkit-align-items: flex-end; + -ms-flex-align: end; + align-items: flex-end; } + .content-item .content-tags li { + padding: 0; + -webkit-box-flex: 0; + -webkit-flex: 0 0 22px; + -ms-flex: 0 0 22px; + flex: 0 0 22px; + background-color: #EEE; + margin-bottom: 5px; + color: #777; + display: block; + text-align: right; + -webkit-transition: color 0.15s, background-color 0.15s; + transition: color 0.15s, background-color 0.15s; } + .content-item .content-tags li a { + color: inherit; + padding: 0 12px; + line-height: 22px; + height: 22px; + display: block; } + .content-item .content-tags li a:hover, .content-item .content-tags li a:focus { + color: #EEE; + background-color: #777; } + .content-item.write-tutorial { + background-color: #084561; + border-color: #084561; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + color: white; + height: 96px; } + .content-item.write-tutorial .write-tutorial-text { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + text-align: center; + margin: 10px 14px; } + .content-item.write-tutorial .write-tutorial-text p { + margin: 0; + font-size: 16px; } + .content-item.write-tutorial .write-tutorial-text p.lead { + font-size: 18px; + font-weight: bold; } + .content-item.write-tutorial .btn-write-tutorial { + background-color: #1c5b78; + margin-right: 28px; + -webkit-transition: color 0.15s, background-color 0.15s; + transition: color 0.15s, background-color 0.15s; } + .content-item.write-tutorial .btn-write-tutorial:hover, .content-item.write-tutorial .btn-write-tutorial:focus { + background-color: #FFF; + color: #1c5b78; } + .content-item.topic-item .content-info { + padding: 14px 20px; + height: 68px; } + .content-item.topic-item .content-title { + font-size: 19px; + font-size: 1.9rem; + line-height: 24px; + color: #084561; } + .content-item.topic-item .content-description { + color: #505050; + font-size: 16px; + font-size: 1.6rem; } + .content-item.topic-item .member-item:hover, .content-item.topic-item .member-item:focus { + text-decoration: underline; } + .content-item.topic-item .content-meta { + font-size: 14px; + font-size: 1.4rem; + line-height: 16px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + +.content-item-list { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + min-width: 100%; + margin: 0 -10px; } + .content-item-list .fill { + -webkit-box-flex: 1; + -webkit-flex: 1 1 400px; + -ms-flex: 1 1 400px; + flex: 1 1 400px; + margin: 0 10px; } + +@media only screen and (min-width: 960px) { + .content-item.mini { + -webkit-flex-basis: 200px; + -ms-flex-preferred-size: 200px; + flex-basis: 200px; } + .content-item.mini .content-description { + display: none; } + .content-item.mini .content-title { + white-space: normal; + font-size: 14px; + line-height: 15px; + height: 45px; } + .content-item.mini .content-meta { + padding-top: 1px; } + .content-item.mini .content-meta:not(.inline) .content-pubdate { + display: none; } + .content-item.mini .content-meta:not(.inline) > * { + display: block; } } + +@media only screen and (max-width: 959px) { + .full-content-wrapper .content-item .content-info h3 { + padding: 0 !important; } + .full-content-wrapper .content-item .content-info p:not(.content-meta) { + margin: 0 !important; } } + +@media only screen and (max-width: 759px) { + .content-item.write-tutorial { + display: none; } + .content-item .content-tags { + display: none; } + .content-item .content-meta .short, .content-item .content-description .short { + display: inline; } + .content-item .content-meta .long, .content-item .content-description .long { + display: none; } } + +.zform-toolbar { + margin: 0; + padding: 2px; + list-style-position: initial; + list-style-type: none; + border-bottom: none; } + .zform-toolbar a, + .zform-toolbar button { + display: block; + float: left; + cursor: pointer; + border-bottom: 1px solid transparent; + text-decoration: none; + color: #999; + height: 27px; + line-height: 30px; + padding: 0 10px; + margin-left: 1px; + text-indent: -9999px; + width: 0; } + .zform-toolbar a .zform-popup, + .zform-toolbar button .zform-popup { + text-indent: 0; + line-height: 20px; } + .zform-toolbar a.ico-after, + .zform-toolbar button.ico-after { + padding-left: 30px; } + .zform-toolbar a:after, + .zform-toolbar button:after { + top: 7px; + left: 12px; + display: none; } + .zform-toolbar button { + padding: 0 15px; + height: 30px; + border-top: none; + border-right: none; + border-left: none; } + .zform-toolbar button[type=submit] { + background: #084561; + border-bottom-color: #084561; + color: #DDD; } + .zform-toolbar button[type=submit]:hover, + .zform-toolbar button[type=submit]:focus { + color: #FFF; + background: #396A81; + border-bottom-color: #396A81; } + .zform-toolbar a:hover, + .zform-toolbar a:focus, + .zform-toolbar button:hover, + .zform-toolbar button:focus { + border-bottom-color: #1088bf; + outline: none; + background-color: #EEE; } + +.zform-button { + background-repeat: no-repeat; + background-position: center center; } + +/* Icons */ +.zform-button-bold { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAwklEQVQoz2P4z4AfMlBLQXlC+fmS/wXvs+tT1ye8j5wfLIBhQnF95v+s/SBWxPyQ/17nMRTk1qf+TwYr8K/3++/4H0NBen38/2igAl8Bt/tu/y3mYyhIqI/8H3zfp971vMt/s/1YfBFRH/zfCyxhMt/iv9p5eQE0Bf71vv8dwQq0BdT+6/4XL0BT4FYPtBlqtMx/zf8C9WgKbOsd/uuDPSddoPKf/z2XAooCmwST9br71fbL90v2C+/n7edUoHpc4IYASlr8ehOQ9V8AAAAASUVORK5CYII="); } + +.zform-button-italic { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAcUlEQVQoz2P4z4AfMlBbQXZD6oeE/5Efgg/gNCHuQeT/wAScJsQYhP/3/4DHipAJQf/dFuBR4PPA879tAE4FXgau/20+4PGF4wSX/0YL8CiweGDxXysApwIzB9P/Gv9xBpRJg+4BtQPyByQ30DguMCEAC2D/O2OrpxIAAAAASUVORK5CYII="); } + +.zform-button-strike { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAn0lEQVQoz2P4z4AfMlBTQYlgwczstNTyhJmRu7EqyHuXVQ6iI8oD/2NRkJuW9j+5A8L2wGZCukvC/+j/ITN9jf8z2LtgtSJyd+j/wP8e/23PmKEqKC8t/w+D8f9t/ksguRvJBH9BCG2Upn3X6L/cGQwr3NLsy2Fsmf9idzEU2KaZ/9eHmiLyjr8cQ4FJmu47tTPy5ZJpwuW8HTSKC+wQAFs6/D/QOXeIAAAAAElFTkSuQmCC"); } + +.zform-button-abbr { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACTUlEQVR42pWR4UtTYRTGB/0FgyBckZREI8SyElEEEyW0RJoxbaK2raYmaVMnt6ZYzpbTudqW091arqZoKYEVjWgFFRhCg77Ymt7J3d6522rh9yJ6eufHcOXOt3Nenuf8nveIRH9V10wY7dMEre4wNM7gN1G61TYtPB6aJ7g8F0cDG21J20DDrkDp5D3NngTkjlhhWmK1i6DB+vldLZvYXjsaQ5WZ6LYsVk7ER1rGA5AbPw7LeheLFaME5YPhyS2JG1zxgyp7ENX9/pJkr32jedD4cAilA6uL/xXXOWNjcjuBzPgJJy3CDu3b827rBxPM7wcgu9OPalfFtnKbIlZqJ8wxK/EVWYiv0ExmCwYjTZsatr48azEtXIM3NI/eF904brv588TYGlSTcRSZCeonBFx69BU17BoOGfjNTepmZMN6bwesC17I7wrQTMVRMERMybe867xJ5RZwxhnDgZ5VJmW0ClvJj86nr9B4P458w+vfeUZenJzn9PGsilJU2SPYx3BNqcSxYmMB8vW5OKy/ipwrjl8U15fdx+OUPYobzxKQMiFkdnLilAT5gxExxfXVUNTTjg1c/36Gmz13T0AbjbRbu+z/53VyDbxfwQqQj69B2sNtZN2j45jKkQgqzBHsvBhMnZ/ilpVZCEzPvyNbH0KWjhNT3L1062rHlICjdCZpDpalNKC4TZW3Ihh4kkCVLYqsrhVIdSsoN4Wh9XxB/e0ojnRzkKgDm5vQ3xVTXDZTu4xd7ctJXL/kQpChWxmJJrBOhesZ6iU2Q7kk/gOYnkYcn8opfQAAAABJRU5ErkJggg=="); } + +.zform-button-key { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABe0lEQVR42pWSQW5TQQyGv/GMX1KVsmJLeggEO+ACCHEJWOQKBSo19ADZpoIFN0CIY9BK0G1DuyebIlGSzNgsXt5LiKia/tJItmR/M7894dPnLy/NbGTmgHOzAkECEsKrF8+fHaWc8+jRwwfc3dnB3W5uD8Llr0uOT76NgKNkZpydjXn65DGb6uvxCXe2twFIZsbWVgeAfr9Pp9NBRDAzZrMZe6/fkHMGwN3Z7d2nqpTfV39qQClGShUABwcDut0u+/tvGQzeMZ1OyTkjqgDUc4KUFLOrBlDQpsCtPmZtLFHap4s3gISbNRYK1QIQYyTGiLu38ap8AahUKVZWLcR/AOvxOkA1Lu2sWogxIiLM53NE5FpAPQNbbkE11UmMYMZwOMRKqfP/AVSx1oIZKWk7nKYwiBCv+QeaEt5YsDULm0hVKcWWMyCEek0imwEqXdpxd0QC309PgbBBu9Pr9ZhMJjXgx3h8+P7Dxz1uqYvz80MWV94Ddrm9LoCffwHdG70wvg5ZlgAAAABJRU5ErkJggg=="); } + +.zform-button-sup { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABLElEQVR42mNgGDkgZMoDhdJVzy+0bH75wbfrbgPJBiTPe7wBqFHBq+1WQ8P65//JdknirIcXUuY9eoAhUV5efqC4uPhAbm7ugbS0tAPx8fEK4eHhB/z8/A64uroeAKmxr7jWEDbp3gXznEsGGAYANQcANX9ISUn5D9Q8ASQG1NwA1LzAxsZGwbroSoBT9bUFJhkXBAyTLzjoxZ9VwDAEaLMDUPP/yMjI/0DNBTCbQcC79eaB9LkP/yfPevA/bOLdDzj9CHT2hMDAwP9ubm7/gTYLkBxIQJsFQJpdXFz+GxkZTSDZAJCzgTYXWFtb/zcwMPivoKDgQLTN0AArAPE1NTUnAF3wX0JC4oOgoKABsTYfADkbqNkAaPMBoOYDQM0HuLi4DrCwsBgMzjwCAMHEeHCN9BV5AAAAAElFTkSuQmCC"); } + +.zform-button-sub { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABLElEQVR42mNgGD6gvLz8QHFx8YHc3NwDaWlpB+Lj4xXCw8MP+Pn5HXB1dT1A0ACg5gCg5g8pKSn/gZongMSAmhuAmhfY2NgoEOUKoM0OQM3/IyMj/wM1FxBlMzoAOntCYGDgfzc3t/9AmwVINgBoswBIs4uLy38jI6MJJBsAcjbQ5gJra+v/BgYG/xUUFBxA4iFTHiiUrnp+oWXzyw++XXcbsNoMDbACEF9TU3MC0AX/JSQkPggKChokz3u8AahRwavtVkPD+uf/cdl8AORsoGYDoM0HgJoPADUf4OLiOsDCwmIAUpc46+GFlHmPHpCVVuwrrjWETbp3wTznkgHJmq2LrgQ4VV9bYJJxQcAw+YKDXvxZBZIM8G69eSB97sP/ybMe/A+bePfD4MlDAC7MeHCrEeunAAAAAElFTkSuQmCC"); } + +.zform-button-center { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAfElEQVR42mP8z4AfMDFQqoAFRJT//8fwBwx/g+EvMP7FsJeRgYHxPzEmMDDkZP+eAtMNhTnHpoJkiDMh9T+yzQh4iwQ3BGf/moKsF2hWziMS3OD9H9Xu31D4mRg3MPwHQ9Ns/f+a/1X+y/2X/C/yn/8/93/2bIgMI8WxCQClCFYAGIFCIgAAAABJRU5ErkJggg=="); } + +.zform-button-right { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAY0lEQVR42mP8z4AfMDFQqoAFRJT//8fwBwx/g+EvMP7FsJeRgYHxPzEmQEDS/99QnTB4hmgTUv8j24yAt0h0g/t/hF6Iec+JNsH7P6rdv6HwM4lu0Pr/G64bEq5/iDGBYGQBABNITB8iVnJIAAAAAElFTkSuQmCC"); } + +.zform-button-ul { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA1UlEQVR42mNgGBQgZ/7jgqm7Xj8A0aTqZQERmtIcBQqibPJAJsiACeXl5dlAesrfv38Z/vz5w/D792+GX79+gemfP3+C2WvXrmWkigsGCUiZ+aigc9PLByE9d8kLRCUx1gIZIRb5N5Ic4ECMi4vLBgbUFFCAIeMfP37A2bdu3UIEYkDHrYKSxY8fuFZeG6qBaJt/qSB+2r0H1nmXyAxEdZ4CAwVucEo8CgxEIyOjbGBATYGlOhCNnBpBqROYShnhBty58WUCSDOUZjh37txUIDWVLt4HAP/ViGJIIAyXAAAAAElFTkSuQmCC"); } + +.zform-button-ol { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA70lEQVR42mNgoAbImf9YZdHhd//JNgCkmSIDYIbA2OXl5dlA/L+kpOR/QUHB/+zs7P+pqan/ExIS/kdGRv4PDg7+j9UFiw5S6Aqywdz9b//P2vP6f8TEeypkGxLae0+ld8tL8rwQ1HVHpXPTc7jmuLi47IiIiP+BgYH/vby8/js7O/+3sbH5b2Ji8l9XV/e/mpoaqkVt65//b1zz9H/NqqcDFIjlyx7/L136+H/x4sfkuwCk2TrvEvmxANIMc4GRkVG2trb2fxUVlf9ycnL/xcXF/wsJCf3n4eH5z87O/p+Zmfk/hu0gbFd0pYPu4QcAKY588QFUIAIAAAAASUVORK5CYII="); } + +.zform-button-quote { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABH0lEQVR42mNgGDQgon2HEBAvBeKfQPwfD94FxCrYDNi48uCt/7///P2PD2w5eR9kyG0gZkPWzAPEf/7++/f/w7d//19++vf/2cd//5+8//f/4bt//++9+ff/9qu//++8ghheveA4yBAzZAPkcqYeAEu+AGp89uHf/8dAzQ/e/vt/F6r5+ou//68+gxjQueosyABvrAY8BWp+9A6q+fW//7deQjRfAWq++AS3AXAvgJx/H2jrndd//98Ear72/O//y0DNF56ADPgDNqB20QmQAZZYAxFkCDIAuebC479gg9ECkRNXNP6BRdncHVfhBr3//APMB4pfxhqNONLGnefvvsI0fgfiWlISVu/MbVdAGr8AcSGpqVIJiO8BcQrD8AcAGopyopBVAH0AAAAASUVORK5CYII="); } + +.zform-button-link { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAA6UlEQVQoz2P4z4AfMtBJgR13Vmnru3n/ax7mmOdI1Nyd97/1XVapHTdUgRGbT9fE/y/+3/1/8H/jvepDN3/c/X/k/8T/Pl1GbGAFhn7FH66+i9jm/Sf1/6T/lf9T/3v/idi24mHxB0M/iAldTd8np/tz2X/e+//c/0P/1/63/+zPNTm96btRF1iBbmb6+2klQTsdf7n9DwRCt/+Ov4J2TitJf6+bCVagqel7vff9qrfr/k//X/i/Akiu+7/qbe973+uammAFasz2Bl73U75kf8/+GR4X7pz9Kft7yhev+/YGasz0C0mKFAAASj0PpKVVf4oAAAAASUVORK5CYII="); } + +.zform-button-image { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB8ElEQVQ4y6WTPWtUQRSGnzP33r33Jgu7kI1hI1GSgGARxFRG/4CFhY1VUlhI+oCNP8LfIKaz0MpCLEz+QUCwCIQVQc0X+dhsNtm5O3PGImbJboIIGaabmeec9533SAiB66wYYPnj2mtVmT8pNLPuilsDNZIYsoQ3L57OLsUAGmThyaOJ0SzLRCT6Z8WOgnddPnzZeA6cAU6spmmayfLqAR32aMk6k2M75EkTF5T9o5xvGxWGwl1iRnj5bBKvIj0JhQNjIoxAYbaYrO2Qln7QtC2cd8RpytREne+NYaqlGqoDHgAoYIxgwy6l5IDD0ybWdyicw4U2aZrStjkjuSEQesb0A0QITrG+S8dZTruWQh1eAekS1BMb4eLPmZ7R4QyQMUqrPUwgwarHOo9IiXarTLk0ThQZCHJZQghnEsrRTX5tbVPJNhkaNqTiON4fYnurTr0yRWzkcg7CRUByg/H8Pj/XVqiWfyPek3RGuTW9QDmr41X7YtHXwfreIl4Vr8odu8vcxG0UaGxu8+n4FXqkqCrweaCDEBDg8exS7yCaOeSkvUe2+ZXaw0Xmo6Qvmec+xgByRV59XsXnVWxt+oo8DpiYJdJEu5V7Yw9A5C8qnO9Lj50riCMJPUAplnfvVxpzhQ8z/zOccQSJ4S2AXHec/wAGb9qTrxXEvwAAAABJRU5ErkJggg=="); } + +.zform-button-attention { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACJklEQVR42qVTTUiUYRB+vh93dX903bKUYMNlMWHJBC1WW8GjZVCnfpa6Fp1i6dilQwcJglgrDEKiQqhDRYWVCEsSFJ0Ksh8zKjJZ3V0WU3G/73tnpoNrFGkZzmHmMDPPPM8wA6zRtJUSuXSHISSvhLnALJ21Xc9ouTp9JQAhSblqd0VdG7viQnz0v2hlh+PBqaH272TPiF0Ylcl72/MTd1qCq2bAxNcqQgm/puswvUF46hNBIT6zqulTj9ubMw9jJGSJNXVB7Gy/sJ2TLze3qc8DW5v/yUCYb/gakzqrOXwcuoXxR1fBTgaBppMGE/f+FSAzGEuUVbdFvZv3YeFrEiKACFCc6IE/0g13bUf8w5WGxLIAmcGYj5lTnvABsMoDXOoWAbMDLo6hqvEgmPjsu0th3x8ATNzvCe1f564Ow8ndBiAoD3iWhMHKXERFTQiVWw5tUkXn1G+HNHl/R0SY39btTpu08BLO9GUwA3pZOeZzs3B7GYYhMCo7Yfj3YrS31SZLRVtO58f1xaPhAV/DcVN4DjT7HBAGIPg08h7TbyYBCCAMVRiGps+jJpZ0Kcs5DwDat7ut3UZV04MNHSmo2SdwstcXJbFARAME0A2BJjZECLqxHuX1PXjdl8DM2Mgek4n6ApHDAADT1w7T11YSpy3JLzn5uQ9oLtTtPIbCaPqcKcTp7NMTR4QYTIxfIzkEshwoywFZDshSIFuBHAIrAit6sdZvxg9QwSUHEnNo0gAAAABJRU5ErkJggg=="); } + +.zform-button-error { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACU0lEQVR42q2T7U9SYRjG/VvgQys313pbc81WW80EBT1EICDiIdMjNlojTcdhptlWzoY0PzS11F618kumMWPlS7bUXpmWx0ohTsGK0HNAIN0V0oK51E9e2/Xt+f2ePffuJyVls+MqLxfOUWXmT1QJM6MnuWm9jvtIaphJUmV2FimEG8JuQznxhaLYn7ZGhIcciLwfR2RsGPzDLriMxXhbQLCvNFJiXXi2lOIX7ndheeYDovYHiHZaEW29hN93W7A0aoe32ohxlZh/qchcLZkzGAQx2MPd7sQy40T06gUErBbMN1YhfMWCSBONcMMZhB/dgfskidFjhzwj8gOChCAG075aM5acE/EbF200/BdNCNUZVpU7SyLccwNvJBkYlGXQCcFn6gQT7LmJaHcrAg0V+KGVrdmFChJ8Yw28lko8JdKZhIAp1Ycij3sQtVkQOG/EevEqs+GnCjDf2gyHZE8oIZgmtaHF7naE640InSvZUOArVmO+pRkD0h1JwVSRmvE31GDRSoM7rYkfXLMqCQK11XBVm2AXpSWf4CxU0IxchFB3BwJ6OfzFef/BrEIMNj8Pwc5rGJbuQn/WtuQQ32llgtc6wuMu0yF4rz0+MJ9a+hdU5oCVx2C5FHxHGyYLZSuwp1e0VbBqFybys4kx5RF+9rgawVvt+FVPw0uq8E2jhL/ODP56G6Y0uejLSuVj8Nrb+EJxmHh+9CA7nrcP36tM8Dddjvdr5Sk8y965ArPrwv8yJNsvHJSmmx3EXuZJ7m5uQLSd689JY/rEqebezC3CTf+9fwCiP9Om7nIiOAAAAABJRU5ErkJggg=="); } + +.zform-button-question { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACZUlEQVR42r2SXUiTURjH34K6CbryIgi62FXQVezOZLM2isLSQbFljVpOvOgmRelmQUblkD7VssFGgRSrtQyKUvrYLEdI5XQfVtIWS833Zeac22xra/+e854FE7vppgN/zsPz/P7Ped7zHkEoW6mLxnXpzvqelNWwlOrQI3W+JBZTTq4RI/xtLVrrry12HkbO04vizBBQ/Az8Kolilst5roMxjF1mTpzVOzN3LEDaD/wYA+YfA5IDiN/kEh08tzQmM4xlHtk8d0Z/LmlvBvJBggaBqW7gy2WIV00IG9QIH1Qjbm8CvvUAX7s4QyzzMK8gWnRZfB8Gki+AGRsw60DG14HQ/iqaxoms/xJGddvI2EdN7MC0jbPkEU/psoJ0Wk/fGQDm3DQqQdJtKjoJctHI/ciHehE1aYAFF68xhrHkEU/WQpi1HKBLogaJR1S4z4vzD1AUXYi01NEklUD2CTV4SI3dnEnQfSCA6da9EGLNNTks+GjcNwQRmCAlB+j05wS95mJx8imvMUZmfYi11OQET4PWLnYdJ/ADkBsBUl66aS8y/lsI1ikRrFVSnpqkPXIeP0dklnk8Zq2d/YiNbxu1g5KtlUD6Tflx2t8DBRLGuQqjJKphgvYgJFsbmId5/zwFxctDqr5I+zGCYiR6PIiWYq5CfBiJgW5ET+zDqyM77jHPssdkVW2pllwXCE4j+c6NgL4Sn0zbMdmgwaRZg4+N2qzXWH13c8X6KsI3rXjKE22GG8ViBFL/FYSMauxWbNhJaWWZtpaMq1eYw0171obNuxA6qsGQQfWsZFgj/MNaVXaSQvif6zcxVDmUf47DnQAAAABJRU5ErkJggg=="); } + +.zform-button-information, .zform-button-infoblocks { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACl0lEQVR42q2T7U9SURzH/VvgT+je3rQ2fdFcmw2StBeZNUwTtZWuwmywSjERnwAFbAiGmg+UT1CSIiRwJSPkITT15sAM2trqDWQty29H2jA35yvP9nl3v5/f+Z57TlbWUa983Qr3jCYiyVOF2VMt/mSOwpfMViyw2Qqv5ORDhntomKddFpxWhhIVvUH0OmMYZTbTGO1RCLWvQUtmE7TULjgwTKYKclsDqZbJVdj8CfRMxyAzv8eD4WUoLaswuzbQOBoBXTmRoq9P7JfkqcOc3LbF+G7Y8iYBCQndGQhhyPMRQ+4N3DYFIe4PwTS7DtnTIOgyc5wuHeZkBLnKRWm53g+r7zPqBiIQkwo3DQF8/7mdptrgQ3WPD+LHfgy8iuJC80tQRf3SjCCnzcca7TGoLSxu9QZQY/CjWu9Dn3MdJkJlN/MPnYfUCkE7vQK60MBmBCdkzNb4wifU9QXJpLeoeuQlHzPYXTsEkcaN8s45ggvXdG6YmSgoQddWRkBLnVtj3s10191JFVoPCXkQiX1D6sc2yjqcKG134ApBpHJgZJ4I+Kr/BXZWb2chf7aEKp0Xoi43rqrn8C76lQh+oUQxgxLSW9hsQ20PA7UtDPpsx14FutYmLVY6MeSKoUrDQKR0webbwO8/O+kKwQ9fUCyzEizofh5B4d1RImjfO0T6xhiHFpnj90cCMNnXUKZ0QNgyjUvyKRQ3WHCxfgJF9eNoHfGT3ztPti+P03w5Z99doISDgmMFxpRk0AfjzArEejfZ8gtcbrSiRuOA1hKCuI8BzWtIkfDBt5EqNAqogu7E+XuTUE8t4YmbJayhwxpGfp0ZFK8xQfObBIe+B/qclksJOiVUvoql+M1JiteUJBNZguQ4v4F75K/3L7zz0NlKPuwgAAAAAElFTkSuQmCC"); } + +.zform-button-secret { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACfUlEQVR42m1Sz2sTQRh9u9nml02M2hoapaZNtaIg4q0eBMEeRPGg3jyJhyK00EvpsZBr/wqhAfHQs3fBglRa0EYTm5YYFEqKSRvTJDs7s77ZbdpYHfiYmW++7817b8bAiZHL5fqVUnNSygnGWQYYvxgrjuMszs7O/u6tN3o3S0tLN9m8nEqlRuLxOEzTBPdot9uoVqvY5iDQ4/n5+fV/ANjcz8O1TCYzZts2KpUKms2mvh2WZSGZTHp1+Xx+k7kbCwsLLb03uwBMvhwaGhoTQqBYLG41Go0010Edel0oFH5qYLIbo5Tpbp/VXTA5EY1GUSqVwKaHMzMz5R515Ww2e69cLufT6bRX+z+AQa2Zt+n19klzdU6z0zVkO/iXB+V3z92V0jh29iKe5kfXVxFwBVzpwHX8EELi1fotz9RkuIYHF1ZxdWrN8Bm4Lp4+uUs0E0Ygwvk+oIhthfUhDRKQTgPZySbzwmvZfP3+WIK+SRc6u29ghQZgGP0s7AMiCaYVcLAHuf8NdusHlHOAyMg0XLvTA0CKUPomG/WNj9R5Colrt1F5u8j+8xi+M4n61w0C1BBLnyFhCVfYvQDCk+GSamL8CszgAN1RkB2JT7sRDMNGIjOCdjPE2gOPVRfA+wcu3dWoWmvt8zpZfOCJA9VW6LRI1SWzwhfUi999uUp5PccM9EajUkLichqB6DkC2Bh9NoVRwYb9HZzOpBDc7/MZUO4JANtDVY72YIMAMSBMI60g8xqgjlatCtFsIDYcp93Kl90LoCWELr5A5FIARjDkP6HJl1CUZrcQazWosEOi0vdLG38EwCfZWp7zvfA+jjgM52jmD/M/lpT+WgNx/AHLKabZiPgg0gAAAABJRU5ErkJggg=="); } + +.zform-button-blockcode, .zform-button-monospace { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABD0lEQVR42mNgGAVYgWHPQ36yNRt0PuD3nPf0WMSq5x9gYnGbX3/wXvz8GEgOr2b9tntCHrOfHiva9vq//9yn92DiIate3ivb/eY/SE679o4QVs16Lfciole//F649dV/v1lP76kX3JBGkpMOWPTsHkguYunz70C5CBTNug132cKXP/9YueMNUMGz36o514zRLdAsv2UMkivd9PJ/4MzHHxWSrrChKFAvvhkROv/p96xVL/579D24Jx93SRpJTtp76qN7ILmgmY++A+UisHpDMeWKkG3DnWOpi5/+d225Cw8Dr0mP7mWseP4fJCcXfVEIb0DKRFzgtyy/ecy78x48FvynPPxgU3vnGEhuNJFjAgDXGIoQBpiXVgAAAABJRU5ErkJggg=="); } + +.zform-button-titles { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAApklEQVQoz73QsQ2EMAwFUEsUNDRUVJeKLh1VdE2qSIiGAikZxBNkAja4Cf4iLOI1uCjkdKkokSvrP9lO6KT7okeAjx4eWzhpCQ4WJp6k53GvJnjZcLUplhS/RyipwCZrAQZTDhQPNVhlORxbNjwdOgcD9zVYxJUJGmMOeu5q4MQW8NvdcVsDK6YAhWt3y80f2JhOg07PVGFAjy62ofkQaKfXU199X1/TU/Qkt2QxeAAAAABJRU5ErkJggg=="); } + +.zform-button-title1 { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAApklEQVQoz73QsQ2EMAwFUEsUNDRUVJeKLh1VdE2qSIiGAikZxBNkAja4Cf4iLOI1uCjkdKkokSvrP9lO6KT7okeAjx4eWzhpCQ4WJp6k53GvJnjZcLUplhS/RyipwCZrAQZTDhQPNVhlORxbNjwdOgcD9zVYxJUJGmMOeu5q4MQW8NvdcVsDK6YAhWt3y80f2JhOg07PVGFAjy62ofkQaKfXU199X1/TU/Qkt2QxeAAAAABJRU5ErkJggg=="); } + +.zform-button-title2 { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAwklEQVQoz73QsQ2DMBAF0JMoaBARiiIqXER07lxZNK4sIRoKJHuCTMAETJANmOBvkAnYIBPcGsQCh5ISXfmfvs9HK50PXQLc5OAw+JU6b2GgJyXlXEO0R4PjAbs3UKwqudST+Dy4qCIYuI9A48nS1yEomxtnTQQ9d4sdzahHtUjeaYHsm+YRdGxjg0S9geKdIZXHDpZNBGE13uLXSklO/x0M6wgE7lw0oRwJaKF2A2bSUJDhm8KXCG/PWwyarzv1+fwAYArrjnYCa/AAAAAASUVORK5CYII="); } + +.zform-button-title3 { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAxElEQVQoz73QsanDMBSF4cPzAxdx4KkSBKxKnTpXIo0qg3GTwmBPkAk0gSbIBpngbuAJsshZ46Z4wmXK8LcfpzhQfA5fAWtZZZVlU8zbKEliGUJ4enHTsbBykX+fJFIRdl/cbnmAhbcKogxU+F5h72Y/wI3za8wpxzy8AhWut3Jmlw8wc6wLQTwVCtN3e8tmqmBkqsDLhTaYu6Ltf4lcQWKswMkfTT6xvTbhh7gqoEglyiBhU7jNipHu0ZbmiQem7139uTdX8exNUqtqywAAAABJRU5ErkJggg=="); } + +.zform-button-title4 { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAt0lEQVQoz73QsQ2DMBAFUEsUNAiJiipXRNfRUSE3rty4oYhkBmGCmyAbZILbgAnYgAluDXIBJ6SiRNdY+k/fPpvVnI+5BESKrDOsph8Ce3b0CZob0q8hSuTdayxbXOIE/AceCTjuNoAvmOsDPKSfw+hHN3ZzqwCfYGuuDtBLSA0t3wUtLBovxZJTAkF8Ao0CKGtb2WLKp6xJwItLABlkP+Wcfa/wpE/jVtfEAVjLt/UyMnTdV5/PG1Cu8REDzPeUAAAAAElFTkSuQmCC"); } + +.zform-button-table { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAByElEQVR42q2TzytEURTHv/Pe85sFGVPIRpHflKYRC8rCilCKspKlvZVY8H/IQhQldiyEyUSKUhKxUH7MTH7LNO/+cO6b8d4bWRCn3jvv3nfO53zvufcCfzSPes1tPUxIiVEuRakQAlwATHmuviUYeefh4EzSvNifGa7wGwogpBzr9+cV/qby5MJ5vfIWgGhW8srFLFVmVIXBJG9y0/E09/lvvGUapskzXABpUYeqR35U/S1GUMbhANSiyeZ3wj8CdDcXIO4GsCRA2WBbERaDdxho9dlzS6E79AeccfQ5lqrAJAA1EoZOwbth6LqG5VAYHg3Qkkkre6SOYtIoo6okG3HzyxJUFwzdg16/l4Ij6PEXpShwj8+vn8GYSFUgaWxQubWDCClIeCtAcyAGnRqVVl2cSQXdAKJJJY8Su5q82DiKorPBORbrhxEEKvORl2WF4/TqCTkZhquJIkHTNY+VrOzT0xSdBWD75MEGlnvT7Z1LABhL9IDkdtQVYvM4ivZaR8FyKIK+gNceKwV6cmlOD2gJtWW5uLl/R7kvC5e3r/ZdqClJt5LcJoQUrl2Qwan5s8Y4Fzlqf9XDqS+mdXnYt4fp8SW2iv+wD9RSCSl9jwFVAAAAAElFTkSuQmCC"); } + +.zform-button-math { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAs0lEQVQoz2P4z4AfMhCpoNGh8X/d/+oz5UeLz+T/yPqfchTDhLrz+/6XnSnqye3JmJzcEzsfQ0GlQff/Cf9zHCC8sP1Y3FBQP/9/2v0EATyOTDk/+39kAR4FsQkR74Nm4VQQIxB2P/A2nnAIXe9/xrMHwjb5j6EgOMHvvMdpEMsC6Ez992gKggx83ru/cay3qTfvN7qv918L3ZveCa77HfZb7Tfdb7hfd7/mfrV+UuOCAgUAOHoB5MLjQikAAAAASUVORK5CYII="); } + +.zform-button-footnote { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABlUlEQVR42qWTx05CURCGeQCfwBIX+gY+i23v3qCIEevCaMB7uY0LF9SoxF5iiSshlmCjG2kixRghajQRrjuJ+T3XFRukOMkkM2dyvjP/nIxKVWSL9uWC6j82v7AE+/IqZucXGmoCSLY55PIy1je3YbHOdVUNEMwSvgoFyJ+f2NrZhVmyrVUF4AQzZFnGbShMIDIczmMIoiVTMYDhRby9vePiyg1fIIjnl1dcu71geRNEi7X8XBhOQCabhc8f+PVA8Abph0eEozEFQLqR/p4LzXBIpdMIEQmKjFA4gmgsRs4ecBdPYNG+At5k2S0JoIwcuRDHfSIJt8eDRDIFhhNhoBjQjECkiAoAJQEGmkU4EsPpmQtGRc5T9neQfRqtRMptRV4CQF5ye/2gWeF7QDu04Tq/xBOBUEY2X9EvzNAMTGYr2js6e0jaxJNvzX3kcORwYlpPdZcFGCgWupHxPRLWKXmvut/q8fiQz+UxOaVHJU0o+pqL8npelLB/cAjd6MRJTfuh1gyu6IbHXCRsqXVJG4m3lir+AKcgCFAzJG3uAAAAAElFTkSuQmCC"); } + +/* Simple dropdown */ +div.zform-popup { + top: 18px; + z-index: 100; + background: transparent; + background-color: #fff; + background-image: -webkit-linear-gradient(center bottom, #EBEBE5 8%, #F9F9F6 75%); + background-image: linear-gradient(center bottom, #EBEBE5 8%, #F9F9F6 75%); + border: 1px solid #CCCCCC; + border-radius: 3px; + padding: 2px; } + +/* 3 cols select code dropdown */ +.zform-code-col { + display: inline-block; + vertical-align: top; + margin: 2px; + min-width: 100px; } + .zform-code-col > span { + display: block; + color: #2677C9; + cursor: pointer; } + .zform-code-col > span[data-zform-selected='true'] { + color: blue; + font-weight: bold; } + .zform-code-col > span:hover, + .zform-code-col > span:focus { + color: #C87B02; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Modal box + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +/* Overlay gris clair */ +#zform-modal-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #000; + opacity: 0.5; + filter: alpha(opacity=50); + display: none; + z-index: 99; } + +/* HTML Structure +==================================================================================== +
+
+
+ + + +
...
+
...
+
...
+ + +
+
+==================================================================================== */ +/* Modal box container */ +#zform-modal-wrapper { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: none; + margin-top: 10%; + text-align: center; + z-index: 100; } + #zform-modal-wrapper > div { + position: relative; + display: inline-block; + text-align: left; + background: #f4f6f6; + border: 1px solid #555; + border-radius: 2px; + box-shadow: 0 2px 26px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 0, 0, 0.1); + min-height: 220px; + min-width: 400px; } + #zform-modal-wrapper > div > header { + color: #fff; + padding-left: 6px; + padding-right: 6px; + white-space: nowrap; + border-bottom: 3px solid #f8ad32; + line-height: 53px; + height: 50px; + text-indent: 15px; + margin-bottom: 20px; + background: #084561; + font-size: 1.6rem; + font-size: 16px; + text-shadow: rgba(0, 0, 0, 0.75) 0 0 3px; } + #zform-modal-wrapper section { + display: block; + margin: 8px; + min-width: 200px; + min-height: 50px; } + #zform-modal-wrapper section div input { + min-width: 260px; + margin: 7px 15px; } + #zform-modal-wrapper .btn, + #zform-modal-wrapper [type=submit] { + position: absolute; + width: 50%; + height: 50px; + line-height: 50px; + bottom: 0; + right: 0; + margin: 0 !important; + padding: 0 !important; + text-align: center; + background: none !important; + border-top: 1px solid #CCC; + color: #333; + cursor: pointer; } + #zform-modal-wrapper .btn:hover, + #zform-modal-wrapper .btn:focus, + #zform-modal-wrapper [type=submit]:hover, + #zform-modal-wrapper [type=submit]:focus { + background: #DDD !important; } + #zform-modal-wrapper .btn-submit, + #zform-modal-wrapper [type=submit] { + color: #084561; + font-weight: bold; } + #zform-modal-wrapper .btn-cancel { + right: auto; + left: 0; + border-right: 1px solid #CCC; + color: #555; } + +.zform-modal label { + display: inline-block; + width: 70px; + text-align: left; } + +.featured-resource-item { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + margin-right: 1px; + background-color: #CCC; + position: relative; + overflow: hidden; + max-width: 228px; + min-width: 170px; + z-index: 0; + background-color: #084561; } + .featured-resource-item::before { + content: ""; + display: block; + padding-top: 100%; } + .featured-resource-item .featured-resource-illu { + position: absolute; + z-index: 1; + top: 0; + left: 0; + height: 100%; + width: auto; + -webkit-transition: 0.15s ease; + transition: 0.15s ease; + -webkit-transition-property: -webkit-filter, opacity, -webkit-transform, filter, opacity, -webkit-transform; + transition-property: filter, opacity, transform; } + .featured-resource-item .featured-resource-meta { + position: absolute; + z-index: 3; + color: white; + bottom: 0; + right: 0; + left: 0; + padding: 40px 14px 12px; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.6); + background-image: -webkit-linear-gradient(top, transparent 0%, rgba(0, 0, 0, 0.2) 30px, rgba(0, 0, 0, 0.4)); + background-image: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.2) 30px, rgba(0, 0, 0, 0.4)); } + .featured-resource-item .featured-resource-meta h3 { + font-size: 16px; + line-height: 20px; + font-weight: normal; + margin: 0; + display: table-cell; + vertical-align: middle; + height: 0; + -webkit-transition: height 0.15s ease; + transition: height 0.15s ease; } + .featured-resource-item .featured-resource-meta p { + font-size: 12px; + margin: 0; + line-height: 22px; } + .featured-resource-item a:focus .featured-resource-illu, + .featured-resource-item a:hover .featured-resource-illu { + opacity: 0.4; + -webkit-filter: blur(5px); + filter: blur(5px); + -webkit-transform: scale(1.05); + -ms-transform: scale(1.05); + transform: scale(1.05); } + .featured-resource-item a:focus .featured-resource-meta h3, + .featured-resource-item a:hover .featured-resource-meta h3 { + height: 190px; + font-size: 20px; } + .featured-resource-item > a { + display: block; } + +.featured-resource-edit-form { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; } + .featured-resource-edit-form .featured-resource-item { + margin-right: 20px; + -webkit-flex-basis: 228px; + -ms-flex-preferred-size: 228px; + flex-basis: 228px; } + .featured-resource-edit-form form { + width: auto; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; } + +@media only screen and (max-width: 759px) { + .featured-resource-edit-form { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: unset; + -webkit-align-items: unset; + -ms-flex-align: unset; + align-items: unset; } } + +.search-box { + width: 100%; + min-height: 60px; + background: #EEE; + box-shadow: rgba(0, 0, 0, 0.25) 0 0 3px; } + .search-box form { + min-height: 60px; } + .search-box form label { + display: block; + line-height: 40px; + font-size: 16px; + font-size: 1.6rem; + color: #333; + text-align: center; + width: 100%; } + .search-box form input, + .search-box form button { + border: 1px solid #F8AD32; + background: #FFF; + margin: 5px 0 12px; } + .search-box form input { + height: 34px; + padding: 0 15px; + border-right: none; + width: 85%; + width: calc(100% - 71px); } + .search-box form button { + height: 36px; + text-indent: -9999px; + border-left: none; + width: 40px; + -webkit-transition: background 0.15s; + transition: background 0.15s; + position: absolute; + bottom: 0; + right: 15px; } + .search-box form button:hover { + background: #EEE; } + .search-box form button:after { + top: 9px; + left: 12px; + background-position: 0px -3506px; } + +@media only screen and (min-width: 960px) { + .search-box form label { + line-height: 60px; + width: 300px; + float: left; } + .search-box form input, + .search-box form button { + margin: 12px 0; + float: left; } + .search-box form input { + width: calc(100% - 371px); } } + +.markdown-help { + min-height: 50px; + overflow: hidden; } + .markdown-help .open-markdown-help { + float: none !important; + display: inline-block !important; + margin-bottom: 20px; } + .markdown-help .open-markdown-help .close-markdown-help-text { + display: none; } + .topic-message .markdown-help { + min-height: 0; } + .topic-message .markdown-help .open-markdown-help { + position: absolute; + bottom: 0; + left: 8px; + margin-bottom: 0; } + .markdown-help .markdown-help-more { + display: none; + background: #EEE; + padding: 15px; + margin-bottom: 5px; + border-bottom: 1px solid #CCC; } + .markdown-help .markdown-help-more pre { + margin: 0; } + .markdown-help .markdown-help-more.show-markdown-help { + display: block; } + .markdown-help .show-markdown-help + .open-markdown-help { + margin-top: -5px; + padding-top: 5px; + line-height: 35px; } + .markdown-help .show-markdown-help + .open-markdown-help:after { + margin-top: 15px !important; } + .markdown-help .show-markdown-help + .open-markdown-help .close-markdown-help-text { + display: inline; } + .markdown-help .show-markdown-help + .open-markdown-help .open-markdown-help-text { + display: none; } + +@media only screen and (max-width: 759px) { + .markdown-help .open-markdown-help { + position: relative; + left: 0; + bottom: 0; + float: none; + margin-left: 0 !important; } + .topic-message .markdown-help .markdown-help-more { + margin-bottom: 0; } + .topic-message .markdown-help .open-markdown-help { + position: relative; + width: 100%; + margin-left: -10px !important; + padding-left: 40px; } + .topic-message .markdown-help .open-markdown-help:after { + margin-left: 15px; } + .topic-message .markdown-help .show-markdown-help + .open-markdown-help { + margin-top: 0; } } + +.mobile-menu, +.mobile-menu-btn { + display: none; } + +@media only screen and (max-width: 959px) { + .js .page-container { + position: absolute; + z-index: 10; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + .js .mobile-menu { + display: block; + position: absolute; + position: fixed; + overflow-x: hidden; + overflow-y: auto; + z-index: 1; + -webkit-transform: translate3d(-20%, 0, 0); + transform: translate3d(-20%, 0, 0); + width: 90%; + height: 100%; + padding-bottom: 20px; + background: #222; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .js .mobile-menu .search { + height: 50px; + position: relative; + top: 0; + left: 0; + width: 100%; } + .js .mobile-menu .search input { + color: #EEE; + background-color: #333; + width: 76%; + height: 30px; + padding: 10px 5%; + font-size: 16px; + font-size: 1.6rem; } + .js .mobile-menu .search input:hover, + .js .mobile-menu .search input:focus { + padding-bottom: 7px; + border-bottom: 3px solid #084561; + background-color: #333; } + .js .mobile-menu .search button { + display: none; } + .js .mobile-menu .search .search-more { + background-color: #3F3F3F; + width: 14%; + height: 50px; + line-height: 50px; + color: #CCC; } + .js .mobile-menu .mobile-menu-bloc, + .js .mobile-menu .mobile-menu-link { + width: 90%; + line-height: 40px; + text-indent: 0; } + .js .mobile-menu .mobile-menu-bloc { + margin: 0 5% 15px; } + .js .mobile-menu .mobile-menu-bloc:nth-child(2) { + margin-top: 15px; } + .js .mobile-menu .mobile-menu-bloc ul, + .js .mobile-menu .mobile-menu-bloc li { + margin: 0; + padding: 0; } + .js .mobile-menu .mobile-menu-bloc .mobile-menu-link { + margin: 0; + width: 100%; } + .js .mobile-menu .mobile-menu-bloc .mobile-menu-link.disabled { + opacity: .5; } + .js .mobile-menu .mobile-menu-bloc:not(.mobile-show-ico) .ico-after:after { + display: none; } + .js .mobile-menu .mobile-menu-bloc[data-title]:before { + display: block; + content: attr(data-title); + height: 30px; + font-size: 14px; + font-size: 1.4rem; + text-transform: uppercase; + padding-bottom: 3px; + border-bottom: 2px solid #3F3F3F; + font-weight: bold; + color: #666; } + .js .mobile-menu .mobile-menu-bloc.mobile-show-ico .ico-after { + padding-left: 30px; + width: calc(100% - 30px); } + .js .mobile-menu .mobile-menu-bloc.mobile-show-ico .ico-after:after { + top: 12px; + left: 2px; } + .js .mobile-menu .mobile-menu-bloc.mobile-show-ico .icon { + display: inline-block; + width: 16px; + height: 16px; + margin: 7px; + line-height: 30px; + padding-left: 5px; } + .js .mobile-menu .mobile-menu-bloc.mobile-show-ico .icon:after { + top: 0px; + left: 0px; } + .js .mobile-menu .mobile-menu-link { + display: block; + height: 40px; + line-height: 40px; + text-decoration: none; + color: #CCC; + font-size: 16px; + font-size: 1.6rem; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + background: none; + border: none; + text-align: left; + padding: 0; } + .js .mobile-menu .mobile-menu-link.mobile-menu-sublink { + width: 90%; + margin: 0 0 0 10%; } + .js .mobile-menu .mobile-menu-link.mobile-menu-bloc[data-title] { + height: 80px; } + .js .mobile-menu .mobile-menu-link.mobile-menu-bloc:not([data-title]) { + margin-bottom: 0; } + .js .mobile-menu .mobile-menu-link:not(:last-child):not(.mobile-menu-bloc) { + border-bottom: 1px solid #2C2C2C; } + .js .mobile-menu .mobile-menu-link[data-prefix]:before { + content: "[" attr(data-prefix) "] "; } + .js .mobile-menu .mobile-menu-link.unread { + font-weight: bold; + color: #EEE; } + .js .mobile-menu .mobile-menu-link img, .js .mobile-menu .mobile-menu-link span { + vertical-align: middle; } + .js .mobile-menu .mobile-menu-link img { + float: left; + margin: 5px 5px 5px 0; + width: 30px; + height: 30px; } + .js .mobile-menu .mobile-menu-link .label { + padding: 0 0 0 50px; } + .js .mobile-menu .mobile-menu-link img + .label { + padding: 0 0 0 10px; } + .js.show-mobile-menu { + width: 100%; } + .js.show-mobile-menu body { + position: fixed; } + .js.show-mobile-menu .page-container { + height: 100%; + -webkit-transform: translate3d(90%, 0, 0); + transform: translate3d(90%, 0, 0); + overflow: hidden; + box-shadow: 0 0 7px rgba(0, 0, 0, 0.25); } + .js.show-mobile-menu .mobile-menu { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } + .js.enable-mobile-menu .mobile-menu-hide { + display: none; } + .js.enable-mobile-menu .page-container .mobile-menu-bloc, + .js.enable-mobile-menu .page-container .mobile-menu-link, + .js.enable-mobile-menu .page-container .search { + display: none; } + .js.enable-mobile-menu .page-container .mobile-menu-btn + .header-logo { + margin-left: 0; } + .js.enable-mobile-menu .page-container .mobile-menu-btn { + display: block; + float: left; + height: 50px; + width: 50px; } + .js.enable-mobile-menu .page-container .mobile-menu-btn:after { + display: block; + content: " "; + position: absolute; + top: 15px; + left: 13px; + height: 22px; + width: 22px; + background-image: url("../images/sprite.png"); + background-repeat: no-repeat; + background-position: 0px -2746px; } + html:not(.enable-mobile-menu) .header-container { + border-bottom: 1px solid #CCC; } + html:not(.enable-mobile-menu) .page-container .header-logo { + margin-left: 10px; } + html:not(.enable-mobile-menu) .page-container .header-logo-link:after { + left: 55px; + right: 205px; } + html:not(.enable-mobile-menu) .logbox .notifs-links .ico-link, + html:not(.enable-mobile-menu) .logbox .my-account { + position: absolute; + top: 0; + right: 0; + height: 50px; + width: 50px; } + html:not(.enable-mobile-menu) .logbox .notifs-links .ico-link .avatar, + html:not(.enable-mobile-menu) .logbox .my-account .avatar { + height: 50px; + width: 50px; } + html:not(.enable-mobile-menu) .logbox .notifs-links :nth-child(1) .ico-link { + right: 150px; } + html:not(.enable-mobile-menu) .logbox .notifs-links :nth-child(2) .ico-link { + right: 100px; } + html:not(.enable-mobile-menu) .logbox .notifs-links :nth-child(3) .ico-link, + html:not(.enable-mobile-menu) .logbox .notifs-links .ico-link:nth-child(3) { + right: 50px; } + html:not(.enable-mobile-menu) .logbox.unlogged { + position: absolute; + top: 0; + right: 0; } } + +.modal { + display: none; } + +#modals .modal { + position: fixed; + z-index: 50; + width: auto !important; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: #EEE; + min-height: 220px; } + #modals .modal .modal-title { + display: block; + border-bottom: 3px solid #F8AD32; + line-height: 53px; + height: 50px; + text-indent: 15px; + margin-bottom: 20px; + background: #084561; + color: #FFF; + font-size: 16px; + font-size: 1.6rem; + text-shadow: rgba(0, 0, 0, 0.75) 0 0 3px; } + #modals .modal .modal-title.ico-after { + text-indent: 40px; } + #modals .modal .modal-title.ico-after:after { + margin: 18px 0 0 15px; } + #modals .modal p, + #modals .modal input, + #modals .modal select, + #modals .modal textarea { + margin: 10px 15px; + resize: none; } + #modals .modal p:not([type=checkbox]):not([type=radio]), + #modals .modal input:not([type=checkbox]):not([type=radio]), + #modals .modal select:not([type=checkbox]):not([type=radio]), + #modals .modal textarea:not([type=checkbox]):not([type=radio]) { + width: calc(98% - 32px) !important; } + #modals .modal label { + margin: 0 15px; } + #modals .modal textarea { + margin-top: 0; } + #modals .modal .btn:not(.modal-inner), + #modals .modal [type=submit]:not(.modal-inner) { + position: absolute; + width: 50%; + height: 50px; + line-height: 50px; + bottom: 0; + right: 0; + margin: 0 !important; + padding: 0 !important; + text-align: center; + background: none !important; + border-top: 1px solid #CCC; + color: #333; } + #modals .modal .btn-submit:not(.modal-inner), + #modals .modal [type=submit]:not(.modal-inner) { + height: 51px; + color: #084561; + font-weight: bold; } + #modals .modal .btn-cancel { + right: auto; + left: 0; + border-right: 1px solid #CCC; + color: #555; } + #modals .modal .btn.btn-modal-fullwidth { + width: 100%; + border-right: none; + font-weight: bold; } + +.enable-mobile-menu #modals .modal { + top: 25px; + right: 25px; + bottom: 25px; + left: 25px; + box-shadow: 0 0 5px #000; } + .enable-mobile-menu #modals .modal.modal-small, + .enable-mobile-menu #modals .modal.modal-medium, + .enable-mobile-menu #modals .modal.modal-big { + top: 50%; + bottom: auto; + max-width: 400px; } + .enable-mobile-menu #modals .modal.modal-small { + height: 220px; + margin: -110px auto 0; } + .enable-mobile-menu #modals .modal.modal-medium { + height: 250px; + margin: -125px auto 0; } + .enable-mobile-menu #modals .modal.modal-medium textarea { + height: 80px; } + .enable-mobile-menu #modals .modal.modal-big { + height: 320px; + margin: -160px auto 0; } + +.enable-mobile-menu #modals-overlay { + position: fixed; + display: none; + z-index: 49; + top: 0; + right: 0; + bottom: 0; + left: 0; + background: rgba(0, 0, 0, 0.7); } + +@media only screen and (min-width: 960px) { + .enable-mobile-menu #modals .modal { + box-shadow: 0 2px 7px rgba(0, 0, 0, 0.7); } + .enable-mobile-menu #modals .modal .modal-title { + line-height: 50px; } + .enable-mobile-menu #modals .modal [type=submit]:not(.disabled):hover, + .enable-mobile-menu #modals .modal [type=submit]:not(.disabled):focus, + .enable-mobile-menu #modals .modal .btn-submit:not(.disabled):hover, + .enable-mobile-menu #modals .modal .btn-submit:not(.disabled):focus { + color: #EEE; + background: #48a200 !important; } + .enable-mobile-menu #modals .modal .btn-cancel:hover, + .enable-mobile-menu #modals .modal .btn-cancel:focus { + color: #EEE; + background: #c0392b !important; } } + +.pagination { + list-style: none; + margin: 0; + padding: 0; + border-top: 1px solid #d2d5d6; + border-bottom: 1px solid #d2d5d6; + background: #FBFBFB; + height: 40px; + margin-bottom: 20px !important; } + .pagination li { + float: left; } + .pagination li a { + display: block; + text-align: center; + text-decoration: none; + color: #084561; + min-width: 45px; + height: 40px; + line-height: 40px; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; } + .pagination li a.current { + height: 38px; + color: #808080; + background: #F7F7F7; + margin-top: -1px; + border-left: 1px solid #d2d5d6; + border-bottom: 3px solid #d2d5d6; + border-right: 2px solid #d2d5d6; } + .pagination li a.ico-after:after { + margin-top: 12px; } + .pagination li a[href]:hover, + .pagination li a[href]:focus { + background: #d2d5d6; } + .pagination li.prev a, + .pagination li.next a { + padding: 0 15px; } + .pagination li.prev .ico-after { + padding-left: 30px; } + .pagination li.prev .ico-after:after { + margin-left: 8px; } + .pagination li.next { + float: right; } + .pagination li.next .ico-after { + padding-right: 30px; } + .pagination li.next .ico-after:after { + right: 8px; + left: auto; } + .pagination.pagination-top li a.current { + margin-top: 0; + border-top: 3px solid #d2d5d6; + border-bottom: none; + height: 35px; + line-height: 35px; + padding-bottom: 3px; } + .pagination.pagination-chapter { + margin-left: 0; } + .pagination.pagination-chapter li { + max-width: 45%; } + .pagination.pagination-chapter a { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; } + +@media only screen and (min-width: 960px) { + .pagination { + border: 1px solid #d2d5d6; } } + +@media only screen and (max-width: 759px) { + .pagination li.prev a, + .pagination li.next a { + min-width: 0px; } + .pagination li.prev a span, + .pagination li.next a span { + display: none; } } + +.codehilite .hll { + background-color: #ffffcc; } + +.codehilite { + background: #f8f8f8; } + +.codehilite .c { + color: #408080; + font-style: italic; } + +/* Comment */ +.codehilite .k { + color: #008000; + font-weight: bold; } + +/* Keyword */ +.codehilite .o { + color: #666666; } + +/* Operator */ +.codehilite .cm { + color: #408080; + font-style: italic; } + +/* Comment.Multiline */ +.codehilite .cp { + color: #BC7A00; } + +/* Comment.Preproc */ +.codehilite .c1 { + color: #408080; + font-style: italic; } + +/* Comment.Single */ +.codehilite .cs { + color: #408080; + font-style: italic; } + +/* Comment.Special */ +.codehilite .gd { + color: #A00000; } + +/* Generic.Deleted */ +.codehilite .ge { + font-style: italic; } + +/* Generic.Emph */ +.codehilite .gr { + color: #FF0000; } + +/* Generic.Error */ +.codehilite .gh { + color: #000080; + font-weight: bold; } + +/* Generic.Heading */ +.codehilite .gi { + color: #00A000; } + +/* Generic.Inserted */ +.codehilite .go { + color: #808080; } + +/* Generic.Output */ +.codehilite .gp { + color: #000080; + font-weight: bold; } + +/* Generic.Prompt */ +.codehilite .gs { + font-weight: bold; } + +/* Generic.Strong */ +.codehilite .gu { + color: #800080; + font-weight: bold; } + +/* Generic.Subheading */ +.codehilite .gt { + color: #0040D0; } + +/* Generic.Traceback */ +.codehilite .kc { + color: #008000; + font-weight: bold; } + +/* Keyword.Constant */ +.codehilite .kd { + color: #008000; + font-weight: bold; } + +/* Keyword.Declaration */ +.codehilite .kn { + color: #008000; + font-weight: bold; } + +/* Keyword.Namespace */ +.codehilite .kp { + color: #008000; } + +/* Keyword.Pseudo */ +.codehilite .kr { + color: #008000; + font-weight: bold; } + +/* Keyword.Reserved */ +.codehilite .kt { + color: #B00040; } + +/* Keyword.Type */ +.codehilite .m { + color: #666666; } + +/* Literal.Number */ +.codehilite .s { + color: #BA2121; } + +/* Literal.String */ +.codehilite .na { + color: #7D9029; } + +/* Name.Attribute */ +.codehilite .nb { + color: #008000; } + +/* Name.Builtin */ +.codehilite .nc { + color: #0000FF; + font-weight: bold; } + +/* Name.Class */ +.codehilite .no { + color: #880000; } + +/* Name.Constant */ +.codehilite .nd { + color: #AA22FF; } + +/* Name.Decorator */ +.codehilite .ni { + color: #999999; + font-weight: bold; } + +/* Name.Entity */ +.codehilite .ne { + color: #D2413A; + font-weight: bold; } + +/* Name.Exception */ +.codehilite .nf { + color: #0000FF; } + +/* Name.Function */ +.codehilite .nl { + color: #A0A000; } + +/* Name.Label */ +.codehilite .nn { + color: #0000FF; + font-weight: bold; } + +/* Name.Namespace */ +.codehilite .nt { + color: #008000; + font-weight: bold; } + +/* Name.Tag */ +.codehilite .nv { + color: #19177C; } + +/* Name.Variable */ +.codehilite .ow { + color: #AA22FF; + font-weight: bold; } + +/* Operator.Word */ +.codehilite .w { + color: #bbbbbb; } + +/* Text.Whitespace */ +.codehilite .mf { + color: #666666; } + +/* Literal.Number.Float */ +.codehilite .mh { + color: #666666; } + +/* Literal.Number.Hex */ +.codehilite .mi { + color: #666666; } + +/* Literal.Number.Integer */ +.codehilite .mo { + color: #666666; } + +/* Literal.Number.Oct */ +.codehilite .sb { + color: #BA2121; } + +/* Literal.String.Backtick */ +.codehilite .sc { + color: #BA2121; } + +/* Literal.String.Char */ +.codehilite .sd { + color: #BA2121; + font-style: italic; } + +/* Literal.String.Doc */ +.codehilite .s2 { + color: #BA2121; } + +/* Literal.String.Double */ +.codehilite .se { + color: #BB6622; + font-weight: bold; } + +/* Literal.String.Escape */ +.codehilite .sh { + color: #BA2121; } + +/* Literal.String.Heredoc */ +.codehilite .si { + color: #BB6688; + font-weight: bold; } + +/* Literal.String.Interpol */ +.codehilite .sx { + color: #008000; } + +/* Literal.String.Other */ +.codehilite .sr { + color: #BB6688; } + +/* Literal.String.Regex */ +.codehilite .s1 { + color: #BA2121; } + +/* Literal.String.Single */ +.codehilite .ss { + color: #19177C; } + +/* Literal.String.Symbol */ +.codehilite .bp { + color: #008000; } + +/* Name.Builtin.Pseudo */ +.codehilite .vc { + color: #19177C; } + +/* Name.Variable.Class */ +.codehilite .vg { + color: #19177C; } + +/* Name.Variable.Global */ +.codehilite .vi { + color: #19177C; } + +/* Name.Variable.Instance */ +.codehilite .il { + color: #666666; } + +/* Literal.Number.Integer.Long */ +.codehilitetable { + width: 100% !important; + table-layout: fixed; + border-color: rgba(0, 0, 0, 0.15); } + .codehilitetable td { + padding: 0; + vertical-align: top; } + .codehilitetable .linenos { + background-color: #fbfbfc; + border-right: 1px solid #ececf0; + width: 46px; + /* Can handle up to 9999 lines of code without overflowing */ } + .codehilitetable .codehilite pre, + .codehilitetable .linenos { + padding-top: 15px; + padding-bottom: 15px; } + .codehilitetable .linenodiv pre { + text-align: right; + padding-right: 7px; + color: #bebec5; } + .codehilitetable .codehilite { + width: 100%; + height: auto; + overflow: auto; } + .codehilitetable .codehilite pre { + white-space: pre; + overflow: auto; + overflow: auto; } + .codehilitetable .code pre { + overflow: auto; + word-wrap: normal; + padding-left: 7px; + padding-right: 7px; } + +.taglist { + list-style: none; + padding: 0; + margin: -14px 0 15px; + height: 30px; + line-height: 30px; } + .taglist li { + float: right; } + .taglist li a { + display: block; + text-decoration: none; + padding: 0 10px; + background: #396a81; + color: #FFF; + margin-left: 1px; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; } + .taglist li a:hover, + .taglist li a:focus { + background: #FFF; + color: #396a81; + border-bottom: 1px solid #396a81; } + +.topic-list { + margin-top: 50px !important; + margin-bottom: 50px !important; } + .topic-list h2 { + margin-bottom: 0 !important; } + .topic-list h2 + .topic { + border-top: none; } + .topic-list .topic { + position: relative; + min-height: 81px; + line-height: 25px; + border-top: 1px solid #FFF; + border-bottom: 1px solid #CCC; + overflow: hidden; + border-left: 1px solid transparent; + clear: both; } + .topic-list .topic:first-child { + border-top: 1px solid #CCC; } + .topic-list .topic:before { + content: " "; + display: block; + position: absolute; + background: transparent; + height: 100%; + width: 2px; } + .topic-list .topic.unread:before { + background: #1088bf; } + .topic-list .topic:nth-child(2n) { + background: none; } + .topic-list .topic.unread { + background: #FFF; } + .topic-list .topic.unread .topic-description .topic-title { + font-weight: bold; } + .topic-list .topic:hover:before, + .topic-list .topic.active:before { + width: 5px; + background: #1088bf; } + .topic-list .topic.selected { + background-color: #eaf7fd; } + .topic-list a { + text-decoration: none; + color: #0e77a8; } + .topic-list a:hover, + .topic-list a:focus { + color: #0e77a8; + text-decoration: underline; + outline: none; } + .topic-list .topic-infos, + .topic-list .topic-description, + .topic-list .topic-answers, + .topic-list .topic-last-answer { + display: block; + float: left; + padding: 4px 0; + margin: 0; } + .topic-list .topic-infos { + width: 5%; } + .topic-list .topic-infos input[type=checkbox] { + margin: 29px 25% 0; } + .topic-list .topic-infos .ico-after { + display: block; + text-indent: -9999px; } + .topic-list .topic-infos .ico-after:after { + margin: 4px 0 0 15px; } + .topic-list .topic-description { + position: relative; + width: 60%; } + .topic-list .topic-description .topic-image { + float: left; + max-height: 60px; + max-width: 60px; + margin: 5px 15px 0 0; } + .topic-list .topic-description .topic-tags { + list-style: none; + padding: 0; + margin: 0; + display: inline; } + .topic-list .topic-description .topic-tags .topic-tag { + display: block; + height: 23px; + line-height: 23px; + float: left; + padding: 0 5px; + margin: 0 3px 0 0; + color: #396a81; + background: #FCFCFC; + border: 1px solid #CCC; } + .topic-list .topic-description .topic-tags .topic-tag:hover, + .topic-list .topic-description .topic-tags .topic-tag:focus { + background: #FFF; + color: #084561; + border-color: #084561; + text-decoration: none; } + .topic-list .topic-description .topic-tags .topic-tag:focus { + box-shadow: #396a81 0 0 3px; } + .topic-list .topic-description .topic-tags li:last-child .topic-tag { + margin-right: 5px; } + .topic-list .topic-description .topic-title-link { + display: block; + min-height: 48px; } + .topic-list .topic-description .topic-title-link:hover, + .topic-list .topic-description .topic-title-link:focus { + text-decoration: none; } + .topic-list .topic-description .topic-title-link:hover .topic-title, + .topic-list .topic-description .topic-title-link:focus .topic-title { + text-decoration: underline; } + .topic-list .topic-description .topic-title, + .topic-list .topic-description .topic-subtitle { + display: block; + margin: 0 !important; + padding: 0; } + .topic-list .topic-description .topic-title { + font-size: 16px; + font-size: 1.6rem; + font-weight: normal; } + .topic-list .topic-description .topic-subtitle { + min-height: 24px; + line-height: 1.5em; + color: #777; } + .topic-list .topic-description .topic-members { + margin: 0; + color: #777; } + .topic-list .topic-answers { + width: 12%; + text-align: center; + padding-top: 29px; } + .topic-list .topic-last-answer { + width: 23%; } + .topic-list .topic-last-answer .topic-no-last-answer { + display: block; + margin-top: 27px; + color: #084561; + opacity: .5; } + .topic-list .highlighted { + background-color: rgba(255, 255, 100, 0.5); } + +.forum-list .group-title { + max-width: 100%; + margin-top: 30px !important; + clear: both; + border-bottom: 1px solid #CCC; + color: #F8AD32; } + +.topic-list-small .topic { + height: 60px; } + +.topic-list-small .topic-infos input[type=checkbox] { + margin-top: 18px; } + +.topic-list-small .topic-description { + padding-left: 1.5%; } + .topic-list-small .topic-description .topic-title { + font-weight: normal; + margin-top: 2px; } + +.topic-list-small .topic-infos + .topic-description { + padding-left: 0; } + +.topic-list-small .topic-answers { + padding-top: 17px; } + .topic-list-small .topic-answers span { + display: block; + float: left; + width: 50%; } + +.topic-list-small .topic-last-answer { + width: 18%; } + .topic-list-small .topic-last-answer .topic-no-last-answer { + margin-top: 13px; } + .topic-list-small .topic-last-answer .forum-last-message { + display: block; } + .topic-list-small .topic-last-answer .forum-last-message .forum-last-message-long { + display: none; } + .topic-list-small .topic-last-answer .forum-last-message-title { + display: block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + +@media only screen and (min-width: 960px) { + .topic-list .topic-members-short-date { + display: none; } + .topic-list .topic-last-answer-short-date { + display: none; } + .topic-list:not(.topic-list-small) .topic-last-answer .topic-no-last-answer { + margin-top: 24px; } + .forum-list .topic { + min-height: 0; } + .forum-list .topic-last-answer .forum-last-message .forum-last-message-long { + display: none; } } + +@media only screen and (max-width: 959px) { + .topic-list .topic { + background: none !important; } + .topic-list .topic p { + margin: 0 !important; } + .topic-list .topic .topic-members .topic-members-long-date { + display: none; } + .topic-list .topic .topic-answers { + padding: 0; + width: 30%; + border-bottom: 1px solid #CCC; } + .topic-list .topic .topic-answers.topic-no-answer { + display: none; } + .topic-list .topic .topic-last-answer { + width: 30%; + padding: 0; + text-align: right; } + .topic-list .topic .topic-last-answer .topic-last-answer-short-date { + font-size: 1.3rem; } + .topic-list .topic .topic-last-answer .topic-last-answer-long-date { + display: none; } + .topic-list .topic .topic-last-answer .topic-no-last-answer { + text-align: center; } } + +@media only screen and (max-width: 759px) { + .topic-list .topic-infos .ico-after:after { + margin: 4px 0 0 2px; } + .topic-list .topic-description .topic-subtitle:empty { + display: none; } + .topic-list .topic-last-answer .topic-no-last-answer { + font-size: 1.3rem; } + .forum-list .topic-description .topic-subtitle { + margin-left: 10px; } } + +.topic-message { + position: relative; } + .topic-message.repeated .message, + .topic-message.repeated .message .is-author { + background: #EEE; } + .topic-message.repeated .message:after { + border-right-color: #EEE; } + .topic-message.helpful .message, + .topic-message.helpful .message .is-author { + background: #e9f9dc; } + .topic-message.helpful .message:after { + border-right-color: #e9f9dc; } + .topic-message.helpful.repeated .message, + .topic-message.helpful.repeated .message .is-author { + background: #eaefe6; } + .topic-message.helpful.repeated .message:after { + border-right-color: #eaefe6; } + .topic-message .user .avatar-link { + display: block; + height: 58px; + width: 58px; + z-index: 0; + position: absolute; + top: 0; + border: 1px solid #DDD; } + .topic-message .user .avatar-link[href]:hover, + .topic-message .user .avatar-link[href]:focus { + border-color: #FFF; + overflow: hidden; + box-shadow: rgba(0, 0, 0, 0.3) 0 1px 7px; } + .topic-message .user .avatar-link img { + height: 58px; + width: 58px; } + .topic-message .user .user-metadata { + width: 60px; + height: 25px; } + .topic-message .user .user-metadata a { + display: block; + float: left; + border: 1px solid #D2D5D6; + border-top: 0; + text-align: center; + background-color: #edefef; + text-decoration: none; + color: #424242; + height: 25px; + line-height: 26px; + width: 28px; + color: #777; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; } + .topic-message .user .user-metadata a:first-child { + border-right: 0; + width: 29px; } + .topic-message .user .user-metadata a:hover, + .topic-message .user .user-metadata a:focus { + border-bottom-width: 1px; + border-bottom-color: #777; + background: #FFF; } + .topic-message .user .user-metadata a.positive { + color: #48a200; } + .topic-message .user .user-metadata a.negative { + color: #c0392b; } + .topic-message .message { + position: relative; + background-color: #FDFDFD; + border: 1px solid #D2D5D6; + border-right-width: 2px; + border-bottom-width: 3px; + min-height: 75px; } + .topic-message .message .is-author { + position: absolute; + top: -16px; + left: 10px; + background: #FDFDFD; + padding: 0 5px; + font-size: 12px; + line-height: 20px; + color: #999; + border-top: 1px solid #D2D5D6; } + .topic-message .message .is-author:before, + .topic-message .message .is-author:after { + content: " "; + display: block; + position: absolute; + top: 0; + height: 15px; + width: 1px; + background: #D2D5D6; } + .topic-message .message .is-author:before { + left: 0; } + .topic-message .message .is-author:after { + right: 0; } + .topic-message .message .message-metadata { + display: inline-block; + font-size: 14px; + font-size: 1.4rem; + margin-left: 5px; } + .topic-message .message .message-metadata a { + display: block; + float: left; + color: #999; + text-decoration: none; + height: 30px; + line-height: 30px; + padding: 0 5px; + border-bottom: 1px solid #D2D5D6; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; } + .topic-message .message .message-metadata a:hover, + .topic-message .message .message-metadata a:focus { + border-bottom: 1px solid #0e77a8; + color: #0e77a8; + outline: none; } + .topic-message .message .message-metadata .username { + color: #484848; + font-size: 16px; + font-size: 1.6rem; + margin-right: 3px; } + .topic-message .message .message-metadata .date { + line-height: 32px; } + .topic-message .message .message-metadata .date .long-date { + display: none; } + .topic-message .message .message-actions { + margin: 0; + padding: 0; + list-style: none; + position: absolute; + top: 0; + right: 0; } + .topic-message .message .message-actions li { + float: left; } + .topic-message .message .message-content { + clear: both; + padding-top: 1px; } + .topic-message .message .message-content > div > p:first-child { + margin-top: 7px; } + .topic-message .message .message-content > div > figure:first-child { + margin-top: 8px; } + .topic-message .message .message-content .message-hidden-content { + display: none; } + .topic-message .message .message-content .message-edited, + .topic-message .message .message-content .message-hidden, + .topic-message .message .message-content .message-helpful, + .topic-message .message .message-content .message-repeated { + padding-top: 3px 0 0; } + .topic-message .message .message-content .message-edited.ico-after, + .topic-message .message .message-content .message-hidden.ico-after, + .topic-message .message .message-content .message-helpful.ico-after, + .topic-message .message .message-content .message-repeated.ico-after { + text-indent: 20px; } + .topic-message .message .message-content .message-edited.ico-after:after, + .topic-message .message .message-content .message-hidden.ico-after:after, + .topic-message .message .message-content .message-helpful.ico-after:after, + .topic-message .message .message-content .message-repeated.ico-after:after { + margin: 4px 0; } + .topic-message .message .message-content .message-edited, + .topic-message .message .message-content .message-hidden, + .topic-message .message .message-content .message-repeated { + font-style: italic; + color: #999; } + .topic-message .message .message-content .message-edited:after, + .topic-message .message .message-content .message-hidden:after, + .topic-message .message .message-content .message-repeated:after { + opacity: .5; } + .topic-message .message .message-content .message-hidden { + margin-top: 1px; } + .topic-message .message .message-content .message-helpful { + color: #48A200; + text-indent: 20px; } + .topic-message .message .message-content textarea { + margin: 10px 0 10px -1px; + background-color: transparent; + min-height: 150px; } + .topic-message .message .message-bottom { + display: -webkit-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + -webkit-box-align: start; + -ms-flex-align: start; + -webkit-align-items: flex-start; + align-items: flex-start; + min-height: 30px; } + .topic-message .message .message-bottom .signature { + border-top: 1px solid #D2D5D6; + padding: 3px 0 0 10px; + margin: 0 10px 0 0; + font-size: 12px; + font-size: 1.2rem; + color: #999; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + overflow: hidden; } + .topic-message .message .message-bottom .signature p { + margin: 0; + padding: 0; } + .topic-message .message .message-bottom .signature a { + color: #999; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; } + .topic-message .message .message-bottom .signature a:hover, + .topic-message .message .message-bottom .signature a:focus { + text-decoration: none; + color: #555; } + .topic-message .message .message-bottom .message-karma { + margin-left: auto; + margin-bottom: -2px; } + .topic-message .message .message-bottom .message-karma span, + .topic-message .message .message-bottom .message-karma button.ico-after { + border-bottom-width: 3px; + border-bottom-color: transparent; + background: none !important; + height: 32px; } + .topic-message .message .message-bottom .message-karma span.upvote:not(.has-vote), + .topic-message .message .message-bottom .message-karma span.downvote:not(.has-vote) { + border-bottom: none; + opacity: .5; } + .topic-message .message .message-bottom .message-karma button { + -webkit-transition-property: opacity, border; + transition-property: opacity, border; } + .topic-message .message .message-bottom .message-karma button.voted:hover:after { + opacity: .5; } + .topic-message .message .message-bottom .message-karma .upvote:after, + .topic-message .message .message-bottom .message-karma .downvote:after { + left: 10px; } + .topic-message .message .message-bottom .message-karma .upvote.voted:after, + .topic-message .message .message-bottom .message-karma .downvote.voted:after { + opacity: 1; } + .topic-message .message .message-bottom .message-karma .upvote:hover:not(.more-voted), + .topic-message .message .message-bottom .message-karma .upvote:focus:not(.more-voted), + .topic-message .message .message-bottom .message-karma .downvote:hover:not(.more-voted), + .topic-message .message .message-bottom .message-karma .downvote:focus:not(.more-voted) { + border-bottom-color: transparent; } + .topic-message .message .message-bottom .message-karma .upvote:not(.has-vote), + .topic-message .message .message-bottom .message-karma .downvote:not(.has-vote) { + text-indent: -9999px; + width: 0; } + .topic-message .message .message-bottom .message-karma .upvote.more-voted, + .topic-message .message .message-bottom .message-karma .downvote.more-voted { + font-weight: bold; } + .topic-message .message .message-bottom .message-karma .upvote { + color: #48a200; } + .topic-message .message .message-bottom .message-karma .upvote.more-voted { + border-bottom-color: #48a200; } + .topic-message .message .message-bottom .message-karma .downvote { + color: #c0392b; } + .topic-message .message .message-bottom .message-karma .downvote.more-voted { + border-bottom-color: #c0392b; } + .topic-message .message .message-bottom .message-karma .tick { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + .topic-message .message .message-bottom .message-karma .tick:hover, + .topic-message .message .message-bottom .message-karma .tick:focus { + color: #555; + border-bottom-color: #48a200; } + .topic-message .message .message-bottom .message-karma .tick.active { + color: #48a200; } + .topic-message .message .message-bottom .message-karma .tick.active:after { + opacity: 1; } + .topic-message .message .message-buttons { + margin: 0 0 0 10px; + padding: 0; + list-style: none; + border-bottom: none; } + .topic-message .message .message-buttons a { + text-indent: -9999px; + width: 0; } + .topic-message .message .message-buttons a:after { + left: 12px !important; } + .topic-message .message .message-submit { + margin-left: auto; + margin-right: 10px; } + .topic-message .message .message-actions, + .topic-message .message .message-buttons, + .topic-message .message .message-karma, + .topic-message .message .message-submit { + display: -webkit-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; } + .topic-message .message .message-actions form, + .topic-message .message .message-buttons form, + .topic-message .message .message-karma form, + .topic-message .message .message-submit form { + width: auto; } + .topic-message .message .message-actions a, + .topic-message .message .message-actions .upvote, + .topic-message .message .message-actions .downvote, + .topic-message .message .message-actions button, + .topic-message .message .message-buttons a, + .topic-message .message .message-buttons .upvote, + .topic-message .message .message-buttons .downvote, + .topic-message .message .message-buttons button, + .topic-message .message .message-karma a, + .topic-message .message .message-karma .upvote, + .topic-message .message .message-karma .downvote, + .topic-message .message .message-karma button, + .topic-message .message .message-submit a, + .topic-message .message .message-submit .upvote, + .topic-message .message .message-submit .downvote, + .topic-message .message .message-submit button { + display: block; + float: left; + margin-left: 3px; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; } + .topic-message .message .message-actions a.ico-after, + .topic-message .message .message-actions .upvote.ico-after, + .topic-message .message .message-actions .downvote.ico-after, + .topic-message .message .message-actions button.ico-after, + .topic-message .message .message-buttons a.ico-after, + .topic-message .message .message-buttons .upvote.ico-after, + .topic-message .message .message-buttons .downvote.ico-after, + .topic-message .message .message-buttons button.ico-after, + .topic-message .message .message-karma a.ico-after, + .topic-message .message .message-karma .upvote.ico-after, + .topic-message .message .message-karma .downvote.ico-after, + .topic-message .message .message-karma button.ico-after, + .topic-message .message .message-submit a.ico-after, + .topic-message .message .message-submit .upvote.ico-after, + .topic-message .message .message-submit .downvote.ico-after, + .topic-message .message .message-submit button.ico-after { + padding-left: 30px !important; } + .topic-message .message .message-actions a:after, + .topic-message .message .message-actions .upvote:after, + .topic-message .message .message-actions .downvote:after, + .topic-message .message .message-actions button:after, + .topic-message .message .message-buttons a:after, + .topic-message .message .message-buttons .upvote:after, + .topic-message .message .message-buttons .downvote:after, + .topic-message .message .message-buttons button:after, + .topic-message .message .message-karma a:after, + .topic-message .message .message-karma .upvote:after, + .topic-message .message .message-karma .downvote:after, + .topic-message .message .message-karma button:after, + .topic-message .message .message-submit a:after, + .topic-message .message .message-submit .upvote:after, + .topic-message .message .message-submit .downvote:after, + .topic-message .message .message-submit button:after { + top: 7px; + left: 7px; + -webkit-transition: all 0.15s ease; + transition: all 0.15s ease; + opacity: .5; + margin: 0; } + .topic-message .message .message-actions a, + .topic-message .message .message-actions .upvote, + .topic-message .message .message-actions .downvote, + .topic-message .message .message-actions button.ico-after, + .topic-message .message .message-buttons a, + .topic-message .message .message-buttons .upvote, + .topic-message .message .message-buttons .downvote, + .topic-message .message .message-buttons button.ico-after, + .topic-message .message .message-karma a, + .topic-message .message .message-karma .upvote, + .topic-message .message .message-karma .downvote, + .topic-message .message .message-karma button.ico-after, + .topic-message .message .message-submit a, + .topic-message .message .message-submit .upvote, + .topic-message .message .message-submit .downvote, + .topic-message .message .message-submit button.ico-after { + border-bottom: 1px solid #D2D5D6; + text-decoration: none; + color: #999; + height: 29px; + line-height: 30px; + padding: 0 10px; } + .topic-message .message .message-actions a, + .topic-message .message .message-actions button.ico-after, + .topic-message .message .message-buttons a, + .topic-message .message .message-buttons button.ico-after, + .topic-message .message .message-karma a, + .topic-message .message .message-karma button.ico-after, + .topic-message .message .message-submit a, + .topic-message .message .message-submit button.ico-after { + cursor: pointer; } + .topic-message .message .message-actions a:hover, + .topic-message .message .message-actions a:focus, + .topic-message .message .message-actions button.ico-after:hover, + .topic-message .message .message-actions button.ico-after:focus, + .topic-message .message .message-buttons a:hover, + .topic-message .message .message-buttons a:focus, + .topic-message .message .message-buttons button.ico-after:hover, + .topic-message .message .message-buttons button.ico-after:focus, + .topic-message .message .message-karma a:hover, + .topic-message .message .message-karma a:focus, + .topic-message .message .message-karma button.ico-after:hover, + .topic-message .message .message-karma button.ico-after:focus, + .topic-message .message .message-submit a:hover, + .topic-message .message .message-submit a:focus, + .topic-message .message .message-submit button.ico-after:hover, + .topic-message .message .message-submit button.ico-after:focus { + border-bottom-color: #0e77a8; + outline: none; + background: none; } + .topic-message .message .message-actions a:hover:after, + .topic-message .message .message-actions a:focus:after, + .topic-message .message .message-actions button.ico-after:hover:after, + .topic-message .message .message-actions button.ico-after:focus:after, + .topic-message .message .message-buttons a:hover:after, + .topic-message .message .message-buttons a:focus:after, + .topic-message .message .message-buttons button.ico-after:hover:after, + .topic-message .message .message-buttons button.ico-after:focus:after, + .topic-message .message .message-karma a:hover:after, + .topic-message .message .message-karma a:focus:after, + .topic-message .message .message-karma button.ico-after:hover:after, + .topic-message .message .message-karma button.ico-after:focus:after, + .topic-message .message .message-submit a:hover:after, + .topic-message .message .message-submit a:focus:after, + .topic-message .message .message-submit button.ico-after:hover:after, + .topic-message .message .message-submit button.ico-after:focus:after { + opacity: 1; } + .topic-message .message .message-actions a:hover, + .topic-message .message .message-actions a:focus, + .topic-message .message .message-buttons a:hover, + .topic-message .message .message-buttons a:focus, + .topic-message .message .message-karma button:hover, + .topic-message .message .message-karma button:focus { + color: #555; + text-decoration: none; } + .topic-message .message .alert-box .alert-box-text { + float: none; } + +form.topic-message { + margin-top: 50px; } + +@media only screen and (max-width: 959px) { + .topic-message { + padding: 20px 0; } + .topic-message .user { + position: absolute; + top: 7px; + z-index: 10; + width: 100%; } + .topic-message .user .avatar-link { + float: left; + display: none; } + .topic-message .user .badge { + float: left; + height: 20px; + line-height: 20px; + font-size: 12px; + width: 50px; + margin-top: -2px; + margin-left: 10px; } + .topic-message .user .badge.push-badge { + margin-left: 105px; } + .topic-message .user .user-metadata { + float: right; + width: 140px; + margin-right: 10px; } + .topic-message .user .user-metadata a { + float: left; + height: 20px; + line-height: 20px; + border-bottom: none; + width: 68px; } + .topic-message .message { + border-right: 0; + border-left: 0; + padding-top: 65px; } + .topic-message .message .message-metadata { + position: absolute; + top: 0; + left: 0; + right: 10px; + z-index: 15; + height: 30px; + line-height: 30px; } + .topic-message .message .message-metadata .username { + margin-left: 5px; } + .topic-message .message .message-metadata .date { + float: right; } + .topic-message .message .message-actions { + margin: 35px 10px 0 0; } + .topic-message .message .message-bottom { + min-height: 0; } + .topic-message .message .message-bottom .signature { + display: none; } + .topic-message .message .message-bottom .message-karma { + position: absolute; + top: 35px; + left: 7px; } + .topic-message .message .message-bottom .message-karma .tick { + text-indent: -9999px; + margin-right: 1px; } + .topic-message .message .message-bottom .message-karma .tick:after { + left: 12px; } + .topic-message .message .message-bottom .message-karma .upvote, + .topic-message .message .message-bottom .message-karma .downvote { + padding: 0 7px; + text-align: center; } } + +@media only screen and (min-width: 960px) { + .topic-message { + margin: 25px 0; } + .topic-message:first-child { + margin-top: 35px; } + .topic-message .user:after, + .topic-message .message:after { + content: " "; + display: block; + position: absolute; + top: 10px; + height: 0; + width: 0; + border: 20px solid transparent; + border-left: 0; } + .topic-message .user { + position: absolute; + padding-top: 60px; + top: 0; + left: 0; } + .topic-message .user:after { + left: 60px; + border-right-color: #D2D4D6; } + .topic-message .message { + margin-left: 80px; } + .topic-message .message:after { + top: 9px; + left: -19px; + border-right-color: #FDFDFD; } + .topic-message .message .is-author { + left: 5px; } + .topic-message .message .message-content { + margin: 0 10px; } + .topic-message .message .message-content > :first-child { + margin-top: 5px; } + .topic-message .message .message-content > figure:first-child { + margin-top: 10px; } + .topic-message .message .message-bottom .signature p { + white-space: nowrap; + overflow: hidden; } } + +@media only screen and (max-width: 759px) { + .topic-message .message .message-actions a { + width: 0px; + text-indent: -9999px; } + .topic-message .message .message-actions a:after { + left: 12px !important; } + .topic-message .message .message-submit { + display: block !important; + width: 100%; + margin: 0; } + .topic-message .message .message-submit button { + float: right; + display: block; + width: calc(50% - 2px); + margin-left: 1px !important; } + .topic-message .message .message-submit button.btn-grey { + float: left; } + form.forum-message .message { + padding-top: 0 !important; } } + +.avatar { + height: 60px; + width: 60px; + background-color: #FFF; } + +.badge { + display: block; + width: 60px; + height: 25px; + line-height: 25px; + text-align: center; + text-transform: uppercase; + color: #EEE; + text-shadow: rgba(0, 0, 0, 0.25) 0 0 3px; + background: #777; } + .badge.staff { + background: #48a200; } + +.member-card .member-avatar { + float: left; + width: 60px; } + +.member-card .member-infos { + float: left; + list-style: none; + margin: 0; + padding-left: 15px; } + +.member-social { + list-style: none; + margin: 15px 0 0; + padding: 0; } + +/*------------------------ +9. Pages +------------------------*/ +.home .main { + display: block; + height: auto; + width: auto; + margin: 0; + padding: 0; } + +.home #content { + width: 100%; + margin: 0; + padding: 0; } + +.home .sub-header { + display: none; } + +.home .home-wrapper { + max-width: 1145px; + margin: 0 auto; } + +.home .home-row { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + margin-bottom: 10px; } + +.home .home-header { + border-bottom: solid 1px white; + padding-top: 40px; + background-color: #19516b; + background: #19516b -webkit-radial-gradient(at top, rgba(255, 255, 255, 0.1), transparent 60%); + background: #19516b radial-gradient(at top, rgba(255, 255, 255, 0.1), transparent 60%); + margin-bottom: -170px; + padding-bottom: 180px; + overflow: hidden; } + +.home .home-description { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .home .home-description p { + margin: 0; + padding: 0; + color: white; + line-height: normal; + text-align: justify; } + .home .home-description a:not(.home-description-button) { + color: white; } + .home .home-description a:not(.home-description-button):hover, .home .home-description a:not(.home-description-button):focus { + color: #90ABB6; + text-decoration: none; } + .home .home-description .column { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + padding: 0 10px; } + .home .home-description .column h2 { + font-size: 18px; + font-size: 1.8rem; + color: white; + margin: 0 0 5px 0; + border-bottom-color: white; + font-weight: 300; } + .home .home-description blockquote { + font-size: 2.5rem; + color: white; + font-weight: 300; + padding: 0; + margin: 0; } + .home .home-description blockquote span:first-of-type::before { + content: "«\00A0"; } + .home .home-description blockquote span:last-of-type::after { + content: "\00A0»"; } + .home .home-description:not(.connected):not(.short) { + padding-bottom: 60px; } + .home .home-description.connected { + text-align: center; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .home .home-description.connected .important { + color: #F8AD32; + text-transform: uppercase; + font-weight: bold; } + .home .home-description.connected p { + margin-top: 5px; + text-align: center; } + .home .home-description.connected .home-description-button { + margin-left: 15px; } + .home .home-description.short { + display: none; + color: white; + text-align: center; + font-size: 1.4em; } + .home .home-description.short .home-description-button { + font-size: 14px; + font-size: 1.4rem; + line-height: 24px; + line-height: 2.4rem; + margin-top: 12px; + padding: 0 10px; } + .home .home-description.short blockquote > span { + display: inline-block; } + +.home .home-description-button { + display: inline-block; + line-height: 2rem; + font-size: 1.2rem; + font-size: 12px; + color: white; + text-decoration: none; + border: solid 1px rgba(255, 255, 255, 0.5); + padding: 0 6px; + margin-top: 5px; } + .home .home-description-button:hover, .home .home-description-button:focus { + color: #084561; + border-color: white; + background-color: #FFF; } + .home .home-description-button.close-description { + display: none; } + +.home .featured-resource-row { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + margin-bottom: 30px; + padding: 1px 0 1px 1px; + background-color: #F7F7F7; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + width: 100%; } + .home .featured-resource-row .no-featured-resource { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + margin: 0; + line-height: 0; + text-align: center; + margin-right: 1px; + font-size: 20px; + background-color: white; } + .home .featured-resource-row .no-featured-resource::before, .home .featured-resource-row .no-featured-resource::after { + display: block; + content: ""; + padding-top: 10%; } + +.home .home-heading { + height: 40px; + padding-left: 50px !important; + margin-bottom: 18px !important; } + .home .home-heading.heading-white { + color: white; + border-bottom-color: white; } + .home .home-heading.ico-after::after { + margin-left: 0 !important; } + .home .home-heading .btn { + font-size: 15px; } + +.home .home-search-box { + position: relative; + margin: 30px auto 0; + max-width: 820px; + background: white; } + .home .home-search-box form { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .home .home-search-box:before { + content: ''; + position: absolute; + bottom: -6px; + left: -28px; + background: url("../images/home-clem.png"); + background-size: 100%; + width: 68px; + height: 134px; } + .home .home-search-box label, .home .home-search-box input { + box-sizing: border-box; + display: inline-block; + line-height: 50px; + height: 50px; } + .home .home-search-box label { + text-align: right; + padding: 0 5px; + font-size: 2rem; + font-weight: 300; + margin-left: 50px; } + .home .home-search-box input { + font-size: 2rem; + border: none; + font-weight: 300; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; } + .home .home-search-box button[type=submit] { + background: #FFF; + width: 50px; + height: 50px; } + .home .home-search-box button[type=submit]:hover, .home .home-search-box button[type=submit]:focus { + background-color: #CCC; } + .home .home-search-box button[type=submit]:after { + margin: 16px; + background-position: 0px -3506px; + width: 16px; + height: 40px; } + +@media only screen and (max-width: 759px) { + .home .home-description:not(.connected):not(.short) { + display: none; } + .home .home-description.short { + display: block; + width: auto; + padding: 0 20px; } + .home .home-description.short:target .home-description-button { + display: none; } + .home .home-description.short:target .home-description-button.close-description { + display: inline-block; } + .home .home-description.short:target ~ .home-description:not(.short) { + display: block; + margin-top: 20px; } + .home .home-description.connected { + padding: 0 20px !important; } + .home .home-description .featured-message { + display: none; } + .home .home-heading .btn { + visibility: hidden; } + .home .home-search-box { + padding-left: 40px; + margin: 30px 0 0 !important; } + .home .home-search-box:before { + left: -46px; } + .home .home-search-box label { + display: none; } + .home .featured-resource-row .featured-resource-item:nth-of-type(4) { + display: none; } } + +@media only screen and (max-width: 959px) { + .home .home-header { + padding-top: 10px; } + .home .home-wrapper { + padding: 20px 10px; } + .home .featured-resource-row .featured-resource-item { + margin: 4px; + padding: 0 !important; } + .home .featured-resource-row .featured-resource-item:last-of-type { + display: none; } + .home .home-header { + margin-bottom: 0; + padding-bottom: 10px; } + .home .home-heading { + margin-top: 18px; } + .home .home-heading.heading-white { + color: #084561; + border-color: #F8AD32; } + .home .home-row { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .home .home-search-box { + margin: 30px 40px 0; } + .home .home-description.connected { + width: auto; + padding: 0 80px; } } + +@media only screen and (min-width: 960px) { + .home .home-row { + margin-right: -10px; + margin-left: -10px; } + .home .home-row > section { + margin: 0 10px; + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + min-width: 300px; } + .home .home-description .column h2 { + font-size: 22px; + font-size: 2.2rem; } + .home .home-description.connected { + max-width: 740px; + margin: 0px auto; } } + +.gallery.grid-view { + clear: both; } + .gallery.grid-view .gallery-item { + position: relative; + width: 200px; + height: 200px; + float: left; + border: 10px solid #FFF; + margin: 10px; + clear: none; } + .gallery.grid-view .gallery-item:hover, + .gallery.grid-view .gallery-item.active { + border-color: #1088bf !important; } + .gallery.grid-view .gallery-item:hover:before, + .gallery.grid-view .gallery-item.active:before { + display: none; } + .gallery.grid-view .gallery-item:hover .topic-title, + .gallery.grid-view .gallery-item.active .topic-title { + background: #1088bf !important; + color: #FFF; + text-decoration: none; } + .gallery.grid-view .gallery-item .topic-infos { + position: absolute; + bottom: 0; + left: 0; + z-index: 1; + height: 15px; + width: 15px; + padding: 3px 0; } + .gallery.grid-view .gallery-item .topic-infos input { + margin: 0; } + .gallery.grid-view .gallery-item .topic-description, + .gallery.grid-view .gallery-item .topic-description a { + display: block; + width: 100%; + height: 100%; } + .gallery.grid-view .gallery-item .topic-image { + overflow: hidden; + max-height: 100%; + min-width: 100%; } + .gallery.grid-view .gallery-item .topic-title { + height: 15px; + background-color: white; + position: absolute; + bottom: 7px; + left: 0; + right: 0; + padding: 10px 20px 5px; + font-size: 15px; + font-size: 1.5rem; + line-height: 15px; + color: #444; } + .gallery.grid-view .gallery-item.selected { + border-color: #eaf7fd; } + .gallery.grid-view .gallery-item.selected .topic-title { + background: #eaf7fd; } + .gallery.grid-view .gallery-item.add-image { + font-size: 120px; + line-height: 200px; + text-align: center; + background: #DDD; + color: #555; + text-decoration: none; } + .gallery.grid-view .gallery-item.add-image:hover, + .gallery.grid-view .gallery-item.add-image:focus { + background-color: #CCC; + color: #1088bf; } + +.gallery.list-view .topic .topic-description .topic-title { + margin-top: 12px; } + +.gallery.list-view .add-image { + display: none; } + +.toggle-gallery-view { + float: left !important; } + +@media only screen and (min-width: 960px) { + .gallery-col-image { + float: left; + width: 50%; } + .gallery-col-image img { + max-width: 100%; } + .gallery-col-edit { + float: right; + width: calc(50% - 20px); + padding-left: 20px; } } + +#resources_container .footer { + display: none; } + +/* Temp fix to #2667 ; see: https://github.com/zestedesavoir/zds-site/issues/2667 */ +.tutorial-help-item { + min-height: 60px; + padding: 20px 2%; + border-bottom: 1px solid #e0e4e5; + color: #424242; + font-weight: normal; } + .tutorial-help-item:nth-child(2n+1) { + background-color: rgba(255, 255, 255, 0.8); } + .tutorial-help-item p { + margin: 0; } + .tutorial-help-item .tutorial-title { + margin: 0; + padding: 0; + font-size: 20px; + font-size: 2.0rem; + height: 27px; + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + clear: none; + font-weight: normal; + color: #424242; } + .tutorial-help-item a { + text-decoration: none; } + .tutorial-help-item a:hover, + .tutorial-help-item a:focus { + text-decoration: underline; } + .tutorial-help-item .tutorial-categories { + margin: 0 0 5px; + padding: 0; + color: #ee8709; } + .tutorial-help-item .tutorial-categories a { + color: #ee8709; } + .tutorial-help-item .tutorial-categories a:hover, + .tutorial-help-item .tutorial-categories a:focus { + text-decoration: underline; } + .tutorial-help-item .tutorial-illu { + display: block; + overflow: hidden; + float: left; } + .tutorial-help-item .tutorial-infos { + margin: 7px 0 0 70px; } + .tutorial-help-item .tutorial-infos.no-illu { + margin-left: 0; } + .tutorial-help-item .tutorial-help { + margin: 12px 0 0 0; } + .tutorial-help-item .tutorial-help img.light { + opacity: 0.2; } + .tutorial-help-item .tutorial-help img.light:hover, + .tutorial-help-item .tutorial-help img.light:focus { + opacity: 0.5; } + +/*------------------------- +10. High pixel ratio (retina) +-------------------------*/ +@media only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (min-device-pixel-ratio: 1.3), only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { + .header-logo-link { + background-size: 100%; + background-image: url("../images/logo@2x.png"); } + .ico, + .ico-after:after, + .breadcrumb ol li:not(:last-child):after, + input[type=radio]:checked, + input[type=checkbox]:checked { + background-image: url("../images/sprite@2x.png"); + background-size: 40px 4426px; } } + +@media only screen and (-webkit-min-device-pixel-ratio: 1.3) and (max-width: 959px), only screen and (min--moz-device-pixel-ratio: 1.3) and (max-width: 959px), only screen and (min-device-pixel-ratio: 1.3) and (max-width: 959px), only screen and (-webkit-min-device-pixel-ratio: 2) and (max-width: 959px), only screen and (min-resolution: 192dpi) and (max-width: 959px), only screen and (min-resolution: 2dppx) and (max-width: 959px) { + .js.enable-mobile-menu .mobile-menu-hide .page-container .mobile-menu-btn:after { + background-image: url("../images/sprite@2x.png"); + background-size: 40px 4426px; } + .page-container .header-logo-link { + background-image: url("../images/logo-mobile@2x.png") !important; } + .home .home-search-box::before { + background-image: url("../images/home-clem@2x.png"); } } diff --git a/dist/css/main.min.css b/dist/css/main.min.css new file mode 100644 index 0000000000..f284e251b0 --- /dev/null +++ b/dist/css/main.min.css @@ -0,0 +1 @@ +@charset "UTF-8";/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */fieldset,img,legend{border:0}fieldset,legend,td,th{padding:0}body,html{width:100%}.hidden,.invisible{visibility:hidden}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;height:100%;font-size:62.5%;overflow-x:hidden;word-wrap:break-word}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,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-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}.main-container,.page-container,body{min-height:100%;background:#F7F7F7}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.main .sidebar ol li a img,.main .sidebar ol li a span:not(.wide),.main .sidebar ol li button img,.main .sidebar ol li button span:not(.wide),.main .sidebar ol li.inactive>em img,.main .sidebar ol li.inactive>em span:not(.wide),.main .sidebar ol li.inactive>span img,.main .sidebar ol li.inactive>span span:not(.wide),.main .sidebar ul li a img,.main .sidebar ul li a span:not(.wide),.main .sidebar ul li button img,.main .sidebar ul li button span:not(.wide),.main .sidebar ul li.inactive>em img,.main .sidebar ul li.inactive>em span:not(.wide),.main .sidebar ul li.inactive>span img,.main .sidebar ul li.inactive>span span:not(.wide),img{vertical-align:middle}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}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;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}body{margin:0;font-size:14px;font-size:1.4rem;line-height:1.7em}.content-container{margin-bottom:50px}fieldset{margin:0}.chromeframe{margin:0;background:#ccc;color:#000;padding:.2em 0;text-align:center;position:fixed;z-index:9999;width:100%}.a11y{display:block;width:0;height:0;text-indent:-9999px}nav ol,nav ul{list-style:none}@media only screen and (min-width:960px){.page-container,body,html{height:100%}.main-container{min-height:calc(100% - 136px)}.wrapper{width:95%;margin:0 2.5%}}#modals form,.content-container form,table.fullwidth{width:100%}@media only screen and (max-width:959px){body{background:#222}body:not(.swipping) .mobile-menu,body:not(.swipping) .page-container{-webkit-transition-property:-webkit-transform;transition-property:transform;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-timing-function:ease;transition-timing-function:ease}body.swipping *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}}.table-wrapper{max-width:100%;overflow:auto}table{border-collapse:collapse;border-spacing:0;margin:15px 0;border-top:1px solid #DDD}table thead{background:#DDD;color:#084561}table td,table th{text-align:left;padding:5px 15px 5px 7px;border-right:1px solid #DDD}table td:first-child,table th:first-child{border-left:1px solid #DDD}table td p,table th p{margin:0}table tbody tr{background:#FDFDFD;border-bottom:1px solid #DDD}table tbody tr:nth-child(2n+1){background:#F7F7F7}table.diff tbody tr{border-bottom:none;font-family:monospace,serif;background:#FFF;line-height:1em}table.diff tbody tr .diff_next{display:none}table.diff tbody tr td.diff_header{padding:5px}.diff_delta{overflow:scroll;width:100%;font-size:.9em}#modals form.content-wrapper,.content-container form.content-wrapper{width:calc(100% - 20px);margin:0 10px}#modals form p,.content-container form p{position:relative}#modals fieldset,.content-container fieldset{border-top:1px solid #DDD;border-bottom:3px solid #DDD;background:#EFEFEF;padding:0 4%}#modals fieldset legend,.content-container fieldset legend{padding:0 10px;border-top:1px solid #DDD;border-bottom:3px solid #DDD;background:#EFEFEF}#modals label,.content-container label{display:block;color:#555;height:30px;line-height:30px}#modals label .asteriskField,.content-container label .asteriskField{color:#C0392B;margin-left:4px}#modals .small-content-wrapper .asteriskField,.content-container .small-content-wrapper .asteriskField{display:none}#modals .form-error,.content-container .form-error{display:block;font-size:13px;color:#C0392B}#modals input,#modals textarea,.content-container input,.content-container textarea{border:1px solid #D2D5D6}#modals input:focus,#modals textarea:focus,.content-container input:focus,.content-container textarea:focus{outline-color:#999}#modals input.field-error,#modals input:invalid,#modals textarea.field-error,#modals textarea:invalid,.content-container input.field-error,.content-container input:invalid,.content-container textarea.field-error,.content-container textarea:invalid{border-color:#C0392B}#modals input.field-error:focus,#modals input:invalid:focus,#modals textarea.field-error:focus,#modals textarea:invalid:focus,.content-container input.field-error:focus,.content-container input:invalid:focus,.content-container textarea.field-error:focus,.content-container textarea:invalid:focus{outline-color:#C0392B}#modals input .disabled,#modals input[disabled],#modals textarea .disabled,#modals textarea[disabled],.content-container input .disabled,.content-container input[disabled],.content-container textarea .disabled,.content-container textarea[disabled]{background:#DDD!important;color:#555}#modals .btn,#modals button,#modals input,#modals textarea,.content-container .btn,.content-container button,.content-container input,.content-container textarea{-webkit-appearance:none;-webkit-transition:all .15s ease;transition:all .15s ease}#modals input:not([type=submit]):not([type=reset]):not([type=radio]):not([type=checkbox]),.content-container input:not([type=submit]):not([type=reset]):not([type=radio]):not([type=checkbox]){width:calc(98% - 2px);padding:0 1%}#modals textarea,.content-container textarea{width:calc(98% - 2px);padding:10px 1%;font-family:monospace,serif}#modals .btn,#modals button,#modals input,.content-container .btn,.content-container button,.content-container input{display:block;height:30px}#modals .btn.ico-after,#modals button.ico-after,#modals input.ico-after,.content-container .btn.ico-after,.content-container button.ico-after,.content-container input.ico-after{padding-left:30px}#modals .btn.ico-after:after,#modals button.ico-after:after,#modals input.ico-after:after,.content-container .btn.ico-after:after,.content-container button.ico-after:after,.content-container input.ico-after:after{margin:9pt 0 0 7px}#modals .btn,#modals [type=submit],#modals button:not(.link),.content-container .btn,.content-container [type=submit],.content-container button:not(.link){position:relative;height:40px;line-height:40px;cursor:pointer;color:#DDD;padding:0 15px;border:none;text-decoration:none;margin-left:1px;outline:0}#modals .btn.submitted,#modals [type=submit].submitted,#modals button:not(.link).submitted,.content-container .btn.submitted,.content-container [type=submit].submitted,.content-container button:not(.link).submitted{color:#555}#modals .btn.submitted .line-loading,#modals [type=submit].submitted .line-loading,#modals button:not(.link).submitted .line-loading,.content-container .btn.submitted .line-loading,.content-container [type=submit].submitted .line-loading,.content-container button:not(.link).submitted .line-loading{display:block;position:absolute;left:0;bottom:0;width:0;height:1px;background:#555;-webkit-animation:lineLoading linear 1s infinite;animation:lineLoading linear 1s infinite}#modals .btn:not(.btn-holder),#modals [type=submit]:not(.btn-holder),#modals button:not(.link):not(.btn-holder),.content-container .btn:not(.btn-holder),.content-container [type=submit]:not(.btn-holder),.content-container button:not(.link):not(.btn-holder){float:right}#modals .btn-submit:not(.link),#modals [type=submit]:not(.link),.content-container .btn-submit:not(.link),.content-container [type=submit]:not(.link){color:#FFF;background:#48a200}#modals .btn-submit:not(.link):not(.disabled):focus,#modals .btn-submit:not(.link):not(.disabled):hover,#modals .btn-submit:not(.link):not([disabled]):focus,#modals .btn-submit:not(.link):not([disabled]):hover,#modals [type=submit]:not(.link):not(.disabled):focus,#modals [type=submit]:not(.link):not(.disabled):hover,#modals [type=submit]:not(.link):not([disabled]):focus,#modals [type=submit]:not(.link):not([disabled]):hover,.content-container .btn-submit:not(.link):not(.disabled):focus,.content-container .btn-submit:not(.link):not(.disabled):hover,.content-container .btn-submit:not(.link):not([disabled]):focus,.content-container .btn-submit:not(.link):not([disabled]):hover,.content-container [type=submit]:not(.link):not(.disabled):focus,.content-container [type=submit]:not(.link):not(.disabled):hover,.content-container [type=submit]:not(.link):not([disabled]):focus,.content-container [type=submit]:not(.link):not([disabled]):hover{background:#58c600}#modals .btn-submit:not(.link).disabled.submitted,#modals [type=submit]:not(.link).disabled.submitted,.content-container .btn-submit:not(.link).disabled.submitted,.content-container [type=submit]:not(.link).disabled.submitted{color:#48a200}#modals .btn-submit:not(.link).disabled.submitted .line-loading,#modals [type=submit]:not(.link).disabled.submitted .line-loading,.content-container .btn-submit:not(.link).disabled.submitted .line-loading,.content-container [type=submit]:not(.link).disabled.submitted .line-loading{background:#48a200}#modals .btn-cancel:not(.link),.content-container .btn-cancel:not(.link){background:#c0392b}#modals .btn-cancel:not(.link):not(.disabled):focus,#modals .btn-cancel:not(.link):not(.disabled):hover,#modals .btn-cancel:not(.link):not([disabled]):focus,#modals .btn-cancel:not(.link):not([disabled]):hover,.content-container .btn-cancel:not(.link):not(.disabled):focus,.content-container .btn-cancel:not(.link):not(.disabled):hover,.content-container .btn-cancel:not(.link):not([disabled]):focus,.content-container .btn-cancel:not(.link):not([disabled]):hover{background:#d34a3b}#modals .btn-cancel:not(.link).disabled.submitted,.content-container .btn-cancel:not(.link).disabled.submitted{color:#c0392b}#modals .btn-cancel:not(.link).disabled.submitted .line-loading,.content-container .btn-cancel:not(.link).disabled.submitted .line-loading{background:#c0392b}#modals .btn-grey:not(.link),.content-container .btn-grey:not(.link){background:#EEE;color:#555}#modals .btn-grey:not(.link):not(.disabled):focus,#modals .btn-grey:not(.link):not(.disabled):hover,#modals .btn-grey:not(.link):not([disabled]):focus,#modals .btn-grey:not(.link):not([disabled]):hover,.content-container .btn-grey:not(.link):not(.disabled):focus,.content-container .btn-grey:not(.link):not(.disabled):hover,.content-container .btn-grey:not(.link):not([disabled]):focus,.content-container .btn-grey:not(.link):not([disabled]):hover{background:#CCC;color:#333}#modals .btn-grey:not(.link).disabled.submitted,.content-container .btn-grey:not(.link).disabled.submitted{color:#555}#modals .btn-grey:not(.link).disabled.submitted .line-loading,.content-container .btn-grey:not(.link).disabled.submitted .line-loading{background:#999}#modals .disabled,#modals [disabled],.content-container .disabled,.content-container [disabled]{cursor:default!important;background:#EEE!important}#modals .disabled:not(.submitted),#modals [disabled]:not(.submitted),.content-container .disabled:not(.submitted),.content-container [disabled]:not(.submitted){color:#BBB!important}#modals .btn-facebook:not(.link),.content-container .btn-facebook:not(.link){background:#3b5998}#modals .btn-facebook:not(.link):focus,#modals .btn-facebook:not(.link):hover,.content-container .btn-facebook:not(.link):focus,.content-container .btn-facebook:not(.link):hover{background:#2d4373}#modals .btn-twitter:not(.link),.content-container .btn-twitter:not(.link){background:#4099FF}#modals .btn-twitter:not(.link):focus,#modals .btn-twitter:not(.link):hover,.content-container .btn-twitter:not(.link):focus,.content-container .btn-twitter:not(.link):hover{background:#0d7eff}#modals .btn-google-plus:not(.link),.content-container .btn-google-plus:not(.link){background:#d34836}#modals .btn-google-plus:not(.link):focus,#modals .btn-google-plus:not(.link):hover,.content-container .btn-google-plus:not(.link):focus,.content-container .btn-google-plus:not(.link):hover{background:#b03626}#modals .btn-facebook,#modals .btn-google-plus,#modals .btn-twitter,.content-container .btn-facebook,.content-container .btn-google-plus,.content-container .btn-twitter{width:50%;margin:0 auto;text-align:center}#modals .btn-holder,#modals .buttonHolder,.content-container .btn-holder,.content-container .buttonHolder{margin-top:25px;min-height:40px}.wf-active #modals textarea,.wf-active .content-container textarea{font-family:"Source Code Pro",monospace,serif}#modals input[type=checkbox],#modals input[type=radio],.main-container input[type=checkbox],.main-container input[type=radio]{float:left;margin-right:5px;height:15px;width:15px;border:1px solid #BBB;background:#FCFCFC;-webkit-transition:none;transition:none}#modals input[type=checkbox]:checked,#modals input[type=radio]:checked,.main-container input[type=checkbox]:checked,.main-container input[type=radio]:checked{background-image:url(../images/sprite.png)}#modals input[type=radio],.main-container input[type=radio]{border-radius:50%}#modals input[type=radio]:checked,.main-container input[type=radio]:checked{background-position:0 -13px}#modals input[type=checkbox]:checked,.main-container input[type=checkbox]:checked{background-position:0 0}#modals .checkbox,#modals .radio,.main-container .checkbox,.main-container .radio{padding:10px 0}#modals .checkbox input,#modals .radio input,.main-container .checkbox input,.main-container .radio input{margin-top:8px}#modals .controls .radio,.main-container .controls .radio{padding-top:3px;padding-bottom:0}@media only screen and (min-width:960px){#modals form.content-wrapper,.content-container form.content-wrapper{margin:0;width:100%}}@-webkit-keyframes lineLoading{0%{width:0;left:0;right:inherit}49%{left:0;right:inherit}50%{width:100%;left:inherit;right:0}100%{left:inherit;right:0}}@keyframes lineLoading{0%{width:0;left:0;right:inherit}49%{left:0;right:inherit}50%{width:100%;left:inherit;right:0}100%{left:inherit;right:0}}body,button,html,input,select,textarea{font-family:"Segoe UI","Trebuchet MS",Helvetica,"Helvetica Neue",Arial,sans-serif;color:#222}.no-js body,.no-js button,.no-js html,.no-js input,.no-js select,.no-js textarea,.wf-active body,.wf-active button,.wf-active html,.wf-active input,.wf-active select,.wf-active textarea{font-family:"Source Sans Pro","Segoe UI","Trebuchet MS",Helvetica,"Helvetica Neue",Arial,sans-serif}hr{box-sizing:content-box;display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}.link,a{color:#1088bf;-webkit-transition:all .15s ease;transition:all .15s ease}.link:hover,a:hover{color:#d68807;text-decoration:none}button.link{display:inline-block;background:0 0;border:none;text-decoration:underline}.ico,.ico-after:after{background-repeat:no-repeat;background-image:url(../images/sprite.png)}.ir,.visuallyhidden{border:0;overflow:hidden}.ico-after{position:relative}.ico-after:after{content:" ";display:block;position:absolute;top:0;left:0;width:1pc;height:1pc}.ico-after.alert:after{background-position:0 -546px}.ico-after.arrow-left:after{background-position:0 -186px}.ico-after.arrow-left.blue:after{background-position:0 -4226px}.ico-after.arrow-left.light:after{background-position:0 -146px}.ico-after.arrow-right:after,.ico-after.offline:after{background-position:0 -306px}.ico-after.arrow-right.blue:after,.ico-after.offline.blue:after{background-position:0 -226px}.ico-after.arrow-right.light:after,.ico-after.offline.light:after{background-position:0 -266px}.ico-after.beta:after{background-position:0 -466px}.ico-after.beta.blue:after{background-position:0 -386px}.ico-after.beta.light:after{background-position:0 -426px}.ico-after.cite:after{background-position:0 -706px}.ico-after.cite.blue:after{background-position:0 -626px}.ico-after.cite.light:after{background-position:0 -666px}.ico-after.cross:after{background-position:0 -906px}.ico-after.cross.blue:after{background-position:0 -746px}.ico-after.cross.red:after{background-position:0 -826px}.ico-after.cross.light:after{background-position:0 -786px}.ico-after.cross.white:after{background-position:0 -866px}.ico-after.download:after{background-position:0 -1146px}.ico-after.download.blue:after{background-position:0 -1066px}.ico-after.download.light:after{background-position:0 -1106px}.ico-after.downvote:after{background-position:0 -3826px}.ico-after.downvote.voted:after{background-position:0 -3786px}.ico-after.edit:after{background-position:0 -1266px}.ico-after.edit.blue:after{background-position:0 -1186px}.ico-after.edit.light:after{background-position:0 -1226px}.ico-after.email:after{background-position:0 -1386px}.ico-after.email.blue:after{background-position:0 -1306px}.ico-after.email.light:after{background-position:0 -1346px}.ico-after.diaspora:after{background-position:0 -1026px}.ico-after.diaspora.blue:after{background-position:0 -946px}.ico-after.diaspora.light:after{background-position:0 -986px}.ico-after.facebook:after{background-position:0 -1546px}.ico-after.facebook.blue:after{background-position:0 -1466px}.ico-after.facebook.light:after{background-position:0 -1506px}.ico-after.foursquare:after{background-position:0 -1706px}.ico-after.foursquare.blue:after{background-position:0 -1626px}.ico-after.foursquare.light:after{background-position:0 -1666px}.ico-after.gear:after{background-position:0 -1826px}.ico-after.gear.blue:after{background-position:0 -1746px}.ico-after.gear.light:after{background-position:0 -1786px}.ico-after.github:after{background-position:0 -1946px}.ico-after.github.blue:after{background-position:0 -1866px}.ico-after.github.light:after{background-position:0 -1906px}.ico-after.google-plus:after{background-position:0 -2066px}.ico-after.google-plus.blue:after{background-position:0 -1986px}.ico-after.google-plus.light:after{background-position:0 -2026px}.ico-after.help:after{background-position:0 -2186px}.ico-after.help.blue:after{background-position:0 -2106px}.ico-after.help.light:after{background-position:0 -106px}.ico-after.hide:after{background-position:0 -2306px}.ico-after.hide.blue:after{background-position:0 -2226px}.ico-after.hide.light:after{background-position:0 -2266px}.ico-after.history:after{background-position:0 -2426px}.ico-after.history.blue:after{background-position:0 -2346px}.ico-after.history.light:after{background-position:0 -2386px}.ico-after.import:after{background-position:0 -2546px}.ico-after.import.blue:after{background-position:0 -2466px}.ico-after.import.light:after{background-position:0 -2506px}.ico-after.lock:after{background-position:0 -2706px}.ico-after.lock.blue:after{background-position:0 -2626px}.ico-after.lock.light:after{background-position:0 -2666px}.ico-after.more:after{background-position:0 -2906px}.ico-after.more.blue:after{background-position:0 -2826px}.ico-after.more.light:after{background-position:0 -2866px}.ico-after.move:after{background-position:0 -3026px}.ico-after.move.blue:after{background-position:0 -2946px}.ico-after.move.light:after{background-position:0 -2986px}.ico-after.pin:after{background-position:0 -3226px}.ico-after.pin.blue:after{background-position:0 -3146px}.ico-after.pin.light:after{background-position:0 -3186px}.ico-after.rss:after{background-position:0 -3466px}.ico-after.rss.blue:after{background-position:0 -3346px}.ico-after.rss.orange:after{background-position:0 -3426px}.ico-after.rss.light:after{background-position:0 -3386px}.ico-after.star:after{background-position:0 -3746px}.ico-after.star.yellow:after{background-position:0 -3706px}.ico-after.star.blue:after{background-position:0 -3546px}.ico-after.star.light:after{background-position:0 -3666px}.ico-after.tick:after{background-position:0 -4026px}.ico-after.tick.green:after{background-position:0 -3946px}.ico-after.tick.light:after{background-position:0 -3986px}.ico-after.twitter:after{background-position:0 -4186px}.ico-after.twitter.blue:after{background-position:0 -4106px}.ico-after.twitter.light:after{background-position:0 -4146px}.ico-after.unread:after{background-position:0 -26px}.ico-after.upvote:after{background-position:0 -3906px}.ico-after.upvote.voted:after{background-position:0 -3866px}.ico-after.online:after,.ico-after.view:after{background-position:0 -4346px}.ico-after.online.blue:after,.ico-after.view.blue:after{background-position:0 -4266px}.ico-after.online.light:after,.ico-after.view.light:after{background-position:0 -4306px}.ir{background-color:transparent}.ir:before{content:"";display:block;width:0;height:150%}.hidden{display:none!important}.visuallyhidden{clip:rect(0 0 0 0);height:1px;margin:-1px;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.clearfix:after,.clearfix:before{content:" ";display:table}.clearfix:after{clear:both}hr.clearfix{clear:both;height:0;border:none}.unstyled-list{list-style:none;padding-left:0}.screen,.wide{display:none}@media only screen and (min-width:1140px){.wide{display:inline}table .wide{display:table-cell}}@media only screen and (min-width:960px){.screen{display:inline}}.header-container header{background:#084561;border-bottom:3px solid #F8AD32}.header-container header a,.header-container header button{text-decoration:none;color:#FFF;-webkit-transition-property:background;transition-property:background;-webkit-transition-duration:.15s;transition-duration:.15s}.header-container header a:focus,.header-container header button:focus{outline:0}.header-container header .header-menu{height:60px}.header-container header .header-menu .header-menu-list{margin:0;padding:0}.header-container header .header-menu .header-menu-list>li{display:block;float:left;width:33.3%}.header-container header .header-menu .header-menu-list>li>a{display:block;position:relative;text-align:center;line-height:60px;text-transform:uppercase;font-size:1.5px;font-size:1.5rem;text-shadow:rgba(0,0,0,.75) 0 0 3px}.header-container header .header-menu .header-menu-list>li>a.active,.header-container header .header-menu .header-menu-list>li>a:focus,.header-container header .header-menu .header-menu-list>li>a:hover{background:#396a81}.header-container header .header-menu .header-menu-list>li>a.current:before{content:" ";display:block;position:absolute;bottom:0;left:0;right:0;height:2px;-webkit-transition:all .15s ease;transition:all .15s ease;border-radius:2px 2px 0 0;background-color:#F8AD32}.header-container header .header-menu .header-menu-list>li>a.current.active:before{height:0}.header-logo{text-align:center;margin:0;padding:0;width:100%}.header-logo-link{display:block;margin:0 auto;text-indent:-9999px;width:100%;max-width:15pc;height:60px;background:url(../images/logo.png) center center no-repeat;background-size:100% auto}.header-logo-link:focus,.header-logo-link:hover{background-color:#396a81}.logbox{background:rgba(255,255,255,.05)}.logbox .notifs-links{margin-right:60px}.logbox .notifs-links .ico-link{display:block;position:relative;width:33.3%;height:60px;line-height:60px;float:left}.logbox .notifs-links .ico-link .notif-count{display:block;position:absolute;z-index:1;top:50%;right:50%;margin:-20px -22px 0 0;padding:0 5px;height:1pc;line-height:14px;background:#c0392b;border-radius:1pc}.logbox .notifs-links .ico-link .notif-text{display:block;position:absolute;text-indent:-9999px;height:22px;width:22px;top:50%;left:50%;margin:-11px 0 0 -11px}.logbox .notifs-links .ico-link .notif-text.ico-messages{background-position:0 -2786px}.logbox .notifs-links .ico-link .notif-text.ico-notifs{background-position:0 -3066px}.logbox .notifs-links .ico-link .notif-text.ico-alerts{background-position:0 -586px}.logbox .notifs-links .ico-link .notif-text.ico-params{background-position:0 -3106px}.logbox .notifs-links .ico-link.active,.logbox .notifs-links .ico-link:focus,.logbox .notifs-links .ico-link:hover{background:#396a81}.logbox .dropdown{overflow:hidden}.logbox .dropdown .dropdown-title{display:block;width:100%;height:35px;line-height:37px;text-align:center;border-bottom:1px solid #274a5a;background-color:#396a81}.logbox .dropdown,.logbox .dropdown .dropdown-list{margin:0;padding:0;list-style:none;background-color:#19526c}.logbox .dropdown .dropdown-list li,.logbox .dropdown li{display:block;width:100%;height:60px}.logbox .dropdown .dropdown-list li a,.logbox .dropdown li a{display:block;overflow:hidden;position:relative;height:100%;width:100%}.logbox .dropdown .dropdown-list li a,.logbox .dropdown .dropdown-list li a:focus,.logbox .dropdown .dropdown-list li a:hover,.logbox .dropdown li a,.logbox .dropdown li a:focus,.logbox .dropdown li a:hover{opacity:1;-webkit-transition-property:opacity,background-color;transition-property:opacity,background-color}.logbox .dropdown .dropdown-list li a:focus,.logbox .dropdown .dropdown-list li a:hover,.logbox .dropdown li a:focus,.logbox .dropdown li a:hover{background-color:#396a81}.logbox .dropdown .dropdown-list li a:focus .username,.logbox .dropdown .dropdown-list li a:hover .username,.logbox .dropdown li a:focus .username,.logbox .dropdown li a:hover .username{text-shadow:rgba(0,0,0,.5) 0 0 5px}.logbox .dropdown .dropdown-list li a:focus .date,.logbox .dropdown .dropdown-list li a:hover .date,.logbox .dropdown li a:focus .date,.logbox .dropdown li a:hover .date{color:#95D7F5}.logbox .dropdown .dropdown-list li .avatar,.logbox .dropdown li .avatar{float:left;height:30px;width:30px}.logbox .dropdown .dropdown-list li .username,.logbox .dropdown li .username{display:block;float:left;margin:4px 0 0 7px;color:#95D7F5;width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logbox .dropdown .dropdown-list li .date,.logbox .dropdown li .date{color:#5196b6;float:right;padding:4px 10px 0 0;-webkit-transition-property:color;transition-property:color}.logbox .dropdown .dropdown-list li .topic,.logbox .dropdown li .topic{display:block;position:absolute;bottom:0;left:0;overflow:hidden;height:25px;padding:4px 7px 2px;text-overflow:ellipsis;white-space:nowrap;width:95%;width:calc(100% - 14px)}.logbox .dropdown .dropdown-list li:nth-child(2n+1),.logbox .dropdown .dropdown-list li:nth-child(2n+1) form button,.logbox .dropdown li:nth-child(2n+1),.logbox .dropdown li:nth-child(2n+1) form button{background-color:#084561}.logbox .my-account{display:block;height:60px;width:60px;float:right}.logbox .my-account .username{display:none}.logbox .my-account .avatar{background:#396a81}.logbox .dropdown.my-account-dropdown a,.logbox .dropdown.my-account-dropdown button{padding-left:10px}.logbox .dropdown.my-account-dropdown button{width:100%;height:30px;line-height:28px;background:0 0;text-align:left;border:0}.logbox .dropdown.my-account-dropdown button:focus,.logbox .dropdown.my-account-dropdown button:hover{background:#396a81}.logbox.unlogged a{display:block;width:50%;text-align:center;float:left;line-height:60px;height:60px}.logbox.unlogged a:focus,.logbox.unlogged a:hover{background-color:#396a81}.sub-header{background:#EEE}@media only screen and (max-width:959px){.header-logo{width:40px;height:50px;margin-left:50px;float:left}.header-logo-link{background-image:url(../images/logo-mobile.png)!important;background-size:100%;width:100%;height:100%}.header-logo-link:after{display:block;content:attr(data-title);position:absolute;top:0;left:95px;right:155px;line-height:50px;text-indent:0;text-align:left;font-weight:400;font-size:17px;font-size:1.7rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:200px}.header-container header .header-menu{height:30px}.header-container header .header-menu .header-menu-list{padding-top:50px}.header-container header .header-menu .header-menu-list>li>a{line-height:50px}.logbox{float:right;width:150px;background:0 0}.logbox .notifs-links{width:100%}.logbox .notifs-links .ico-link{height:50px;width:50px}.logbox .dropdown{top:50px}.logbox .dropdown.my-account-dropdown .dropdown-list{bottom:0}.logbox .dropdown.my-account-dropdown .dropdown-list li{height:45px;line-height:45px}.logbox.unlogged{font-size:13px;font-size:1.3rem}.logbox.unlogged a{background-color:rgba(255,255,255,.1);line-height:30px;height:30px;margin:10px 1px 10px 0;width:74px}}@media only screen and (min-width:960px){.header-container{z-index:1;position:relative;box-shadow:0 0 4px rgba(0,0,0,.3)}.header-container header{background-image:-webkit-linear-gradient(left,transparent 20%,rgba(255,255,255,.07) 40%,rgba(255,255,255,.07) 60%,transparent 80%);background-image:linear-gradient(left,transparent 20%,rgba(255,255,255,.07) 40%,rgba(255,255,255,.07) 60%,transparent 80%)}.header-logo{float:left;text-align:left;width:15pc}.header-container header .header-menu{float:left;width:40%;margin-left:.5%}.header-container header .header-menu .header-menu-list>li>a{max-width:150px;font-size:1.6rem;font-size:1pc}.dropdown{top:60px}.has-dropdown{position:relative;text-indent:-7px}.has-dropdown:after{content:" ";display:block;position:absolute;top:47%;left:83%;height:0;width:0;border:6px solid transparent;border-top:6px solid rgba(255,255,255,.7);border-left:6px inset transparent}.has-dropdown.active:after,.has-dropdown:focus:after,.has-dropdown:hover:after{border-top:6px solid #FFF}.logbox .dropdown.my-account-dropdown ul li{height:30px;line-height:30px}.lt-ie9 .dropdown{top:90px}.header-right{float:right;width:230px}.header-right .dropdown{right:2.5%}}@media only screen and (min-width:1140px){.header-container header .header-menu{margin-left:5%}}.dropdown{display:none;position:absolute;text-align:left;top:50px;left:0;right:0;background-color:#396a81;margin:0;padding:10px 2.5%;font-size:14px;font-size:1.4rem;border-bottom:3px solid #F8AD32;z-index:50}.dropdown .dropdown-title{color:#FFF}.dropdown.header-menu-dropdown .dropdown-list>li:first-child:nth-last-child(1),.dropdown.header-menu-dropdown .dropdown-list>li:first-child:nth-last-child(1)~li{width:100%}.dropdown.header-menu-dropdown .dropdown-list>li:first-child:nth-last-child(2),.dropdown.header-menu-dropdown .dropdown-list>li:first-child:nth-last-child(2)~li{width:50%}.dropdown.header-menu-dropdown .dropdown-list>li:first-child:nth-last-child(3),.dropdown.header-menu-dropdown .dropdown-list>li:first-child:nth-last-child(3)~li{width:33.33333%}.dropdown.header-menu-dropdown .dropdown-list>li:first-child:nth-last-child(4),.dropdown.header-menu-dropdown .dropdown-list>li:first-child:nth-last-child(4)~li{width:25%}.dropdown .dropdown-list{width:100%;padding:0;margin-top:15px}.dropdown .dropdown-list>li{width:20%;float:left}.dropdown .dropdown-list>li.dropdown-empty-message{color:rgba(255,255,255,.5);text-align:center;line-height:60px;background:0 0!important}.dropdown .dropdown-list>li ul{margin:0 0 10px;padding:0}.dropdown .dropdown-list>li ul li{position:relative}.dropdown .dropdown-list>li ul li a{display:block;width:95%;min-height:25px;line-height:25px;color:#95d7f5;overflow:hidden;-webkit-transition:all .15s ease;transition:all .15s ease}.dropdown .dropdown-list>li ul li a:focus,.dropdown .dropdown-list>li ul li a:hover{padding-left:3%;background-color:rgba(0,0,0,.3)}.dropdown .dropdown-link-all{display:block;clear:both;text-align:center;height:30px;line-height:30px;border-top:1px solid #274a5a;background-color:#396a81;-webkit-transition-property:color,background-color;transition-property:color,background-color}.dropdown .dropdown-link-all:first-child{border-top:0!important;border-bottom:1px solid #274a5a}.dropdown .dropdown-link-all:focus,.dropdown .dropdown-link-all:hover{color:#95d7f5;background-color:#274a5a;border-top:1px solid #396a81}.active+.dropdown{display:block}@media only screen and (min-width:760px){.dropdown{box-shadow:0 5px 7px rgba(0,0,0,.3)}.header-right .dropdown{width:350px;left:auto;padding:0}.header-right .dropdown .dropdown-list{max-height:270px;overflow-x:hidden;overflow-y:auto}.header-right .dropdown .dropdown-list::-webkit-scrollbar{width:10px;height:10px}.header-right .dropdown .dropdown-list::-webkit-scrollbar-track{background-color:#06354a}.header-right .dropdown .dropdown-list::-webkit-scrollbar-thumb{background-color:#396a81;border:1px solid #06354a;-webkit-transition:all .15s ease;transition:all .15s ease}.header-right .dropdown .dropdown-list::-webkit-scrollbar-thumb:hover{background-color:#5196b6}.header-right .dropdown .dropdown-list::-webkit-scrollbar-thumb:active{background-color:#71b4d3}.header-right .dropdown.my-account-dropdown{width:230px}}@media only screen and (max-width:759px){.dropdown,html.dropdown-active .page-container{width:100%}html.dropdown-active{overflow:hidden}html.dropdown-active .main-container{display:none}.header-menu-dropdown{display:none!important}.dropdown{top:180px;bottom:0;border-bottom:none}.dropdown .dropdown-list{overflow:auto;position:absolute;top:36px;bottom:50px}.dropdown .dropdown-link-all{position:absolute;left:0;right:0;bottom:0;height:50px;line-height:50px}}@media only screen and (min-width:960px){.dropdown{top:60px}}.search-form{margin-bottom:30px}.search{display:block;position:relative}.search form button,.search form input{float:left;border:none;background:rgba(255,255,255,.25);height:40px;-webkit-transition-property:background;transition-property:background;-webkit-transition-duration:.15s;transition-duration:.15s}.search form button:focus,.search form button:hover,.search form input:focus,.search form input:hover{background-color:#FFF}.search form button:focus,.search form input:focus{outline-color:#F8AD32}.search form input{height:30px;padding:5px 3%;width:70%}.search form button{width:12%;text-indent:-9999px}.search form button.disabled{opacity:.5;background:0 0;cursor:default}.search form button:after{display:block;content:" ";position:absolute;top:9pt;left:50%;margin-left:-8px;height:17px;width:17px;background-position:0 -3506px}.search .search-more{display:block;float:left;height:40px;font-family:Arial,sans-serif;line-height:40px;width:12%;text-align:center;font-weight:700;text-decoration:none;font-size:24px;background:#FFF;color:#084561;-webkit-transition:background .15s ease;transition:background .15s ease}.search .search-more:focus,.search .search-more:hover{background:#F8AD32;color:#FFF;outline:0}.search .search-more:before{content:"+"}@media only screen and (min-width:960px){.search:before{content:" ";display:block;position:absolute;left:-20px;height:30px;width:20px;background:-webkit-linear-gradient(right,rgba(0,0,0,.03),transparent);background:linear-gradient(right,rgba(0,0,0,.03),transparent)}.search form input{padding:6px 10px;height:18px;width:150px}.search .search-more,.search form button{width:30px;height:30px;line-height:30px}.search form button:after{top:7px}}#accessibility{list-style:none;margin:0;padding:0 2.5%;background:#062E41;overflow:hidden;height:0}#accessibility.focused{height:auto}#accessibility li{display:inline;margin:0;padding:0}#accessibility li a{display:inline-block;padding:0 7px;color:#EEE}#accessibility li a:focus,#accessibility li a:hover{color:#084561;background-color:#fff;text-decoration:none}#cookies-eu-banner{padding:0 3%;background:#062E41;display:none}#cookies-eu-banner #cookies-eu-reject,#cookies-eu-banner div{display:inline-block;margin:0;padding:7px 0;color:#EEE;line-height:23px}#cookies-eu-banner #cookies-eu-reject{background:0 0;border:none;text-decoration:underline}#cookies-eu-banner #cookies-eu-reject:focus,#cookies-eu-banner #cookies-eu-reject:hover{text-decoration:none}#cookies-eu-banner #cookies-eu-accept,#cookies-eu-banner #cookies-eu-more{display:inline-block;margin-top:3px;padding:4px 15px;text-decoration:none;-webkit-transition:background .15s,color .15s;transition:background .15s,color .15s}#cookies-eu-banner #cookies-eu-more{margin-left:15px;color:#EEE;background:#084561}#cookies-eu-banner #cookies-eu-more:focus,#cookies-eu-banner #cookies-eu-more:hover{color:#084561;background:#EEE}#cookies-eu-banner #cookies-eu-accept{border:none;color:#084561;background:#EEE}#cookies-eu-banner #cookies-eu-accept:focus,#cookies-eu-banner #cookies-eu-accept:hover{color:#EEE;background:#084561}@media only screen and (max-width:759px){#cookies-eu-banner{position:absolute;top:50px;right:0;bottom:0;left:0;z-index:10}#cookies-eu-banner div{margin-top:40px;padding:0 5px}#cookies-eu-banner #cookies-eu-accept,#cookies-eu-banner #cookies-eu-more{display:block;width:100%;height:40px;padding:0!important;margin:15px 0 0!important;text-align:center}#cookies-eu-banner #cookies-eu-more{margin-top:40px!important;line-height:40px}}.main .sidebar{padding:0 0 10px;background:#F0F0F0;border-bottom:1px solid #FFF;color:#424242;width:105%;margin:0 0 0 -2.7%}.main .sidebar .new-btn{display:block;height:40px;padding-left:11.5%;text-decoration:none;text-indent:25px;line-height:40px;font-size:1pc;font-size:1.6rem;position:relative;color:#1088bf;-webkit-transition:all .15s ease;transition:all .15s ease}.main .sidebar .new-btn:first-child{margin-top:31px}.main .sidebar .new-btn:focus,.main .sidebar .new-btn:hover{background:#FFF}.main .sidebar .new-btn:after{top:9pt;left:11.5%}.main .sidebar h3,.main .sidebar h4{font-weight:400;margin:0;padding:0}.main .sidebar ol li a.selected,.main .sidebar ol li a.unread,.main .sidebar ol li button.selected,.main .sidebar ol li.inactive>em.selected,.main .sidebar ol li.inactive>span.selected,.main .sidebar ul li a.selected,.main .sidebar ul li a.unread,.main .sidebar ul li button.selected,.main .sidebar ul li.inactive>em.selected,.main .sidebar ul li.inactive>span.selected,.main .sidebar.summary ol li.current+a{font-weight:700}.main .sidebar h3{font-size:18px;font-size:1.8rem;line-height:38px;line-height:3.8rem;color:#084561;border-bottom:1px solid #F8AD32;margin-top:30px}.main .sidebar h4{padding-top:20px;font-size:17px;font-size:1.7rem}.main .sidebar h4 a{text-decoration:none;color:#424242}.main .sidebar.accordeon h4{cursor:pointer}.main .sidebar h4[data-num]{position:relative;padding-left:calc(5% + 25px)}.main .sidebar h4[data-num]:before{content:attr(data-num);position:absolute;left:5%;text-align:right;width:50px;margin-left:-35px}.main .sidebar h3+ol,.main .sidebar h3+ul{margin:7px 0}.main .sidebar ol,.main .sidebar ul{margin:0;padding:0;list-style:none;width:100%}.main .sidebar ol li,.main .sidebar ul li{position:relative;padding:0 0 0 2.5%;-webkit-transition:background .15s ease;transition:background .15s ease}.main .sidebar ol li a:focus,.main .sidebar ol li button:focus,.main .sidebar ol li:not(.inactive):hover,.main .sidebar ul li a:focus,.main .sidebar ul li button:focus,.main .sidebar ul li:not(.inactive):hover{background:#FFF;outline:0}.main .sidebar ol li a:focus .ico-after.action-hover,.main .sidebar ol li button:focus .ico-after.action-hover,.main .sidebar ol li:not(.inactive):hover .ico-after.action-hover,.main .sidebar ul li a:focus .ico-after.action-hover,.main .sidebar ul li button:focus .ico-after.action-hover,.main .sidebar ul li:not(.inactive):hover .ico-after.action-hover{display:block}.main .sidebar ol li a,.main .sidebar ol li button,.main .sidebar ol li.inactive>em,.main .sidebar ol li.inactive>span,.main .sidebar ul li a,.main .sidebar ul li button,.main .sidebar ul li.inactive>em,.main .sidebar ul li.inactive>span{display:block;padding-left:25px;padding-right:10px;text-decoration:none;color:#0079b2;overflow:hidden;height:30px;line-height:30px;font-size:14px;font-size:1.4rem;text-overflow:ellipsis;white-space:nowrap;border:0;text-align:left;background:0 0}.main .sidebar ol li a[data-num],.main .sidebar ol li button[data-num],.main .sidebar ol li.inactive>em[data-num],.main .sidebar ol li.inactive>span[data-num],.main .sidebar ul li a[data-num],.main .sidebar ul li button[data-num],.main .sidebar ul li.inactive>em[data-num],.main .sidebar ul li.inactive>span[data-num]{position:relative}.main .sidebar ol li a[data-num]:after,.main .sidebar ol li button[data-num]:after,.main .sidebar ol li.inactive>em[data-num]:after,.main .sidebar ol li.inactive>span[data-num]:after,.main .sidebar ul li a[data-num]:after,.main .sidebar ul li button[data-num]:after,.main .sidebar ul li.inactive>em[data-num]:after,.main .sidebar ul li.inactive>span[data-num]:after{content:attr(data-num) ".";position:absolute;left:0;width:18px;text-align:right;color:#424242}.main .sidebar ol li a img,.main .sidebar ol li button img,.main .sidebar ol li.inactive>em img,.main .sidebar ol li.inactive>span img,.main .sidebar ul li a img,.main .sidebar ul li button img,.main .sidebar ul li.inactive>em img,.main .sidebar ul li.inactive>span img{border-right:7px solid transparent}.main .sidebar ol li a .icon,.main .sidebar ol li button .icon,.main .sidebar ol li.inactive>em .icon,.main .sidebar ol li.inactive>span .icon,.main .sidebar ul li a .icon,.main .sidebar ul li button .icon,.main .sidebar ul li.inactive>em .icon,.main .sidebar ul li.inactive>span .icon{border-right:7px solid transparent;display:inline-block;width:1pc;height:1pc;margin:7px 5px;line-height:30px}.main .sidebar ol li a.ico-after:after,.main .sidebar ol li button.ico-after:after,.main .sidebar ol li.inactive>em.ico-after:after,.main .sidebar ol li.inactive>span.ico-after:after,.main .sidebar ul li a.ico-after:after,.main .sidebar ul li button.ico-after:after,.main .sidebar ul li.inactive>em.ico-after:after,.main .sidebar ul li.inactive>span.ico-after:after{top:7px;left:0;opacity:.7}.main .sidebar ol li a.ico-after.disabled:after,.main .sidebar ol li button.ico-after.disabled:after,.main .sidebar ol li.inactive>em.ico-after.disabled:after,.main .sidebar ol li.inactive>span.ico-after.disabled:after,.main .sidebar ul li a.ico-after.disabled:after,.main .sidebar ul li button.ico-after.disabled:after,.main .sidebar ul li.inactive>em.ico-after.disabled:after,.main .sidebar ul li.inactive>span.ico-after.disabled:after{opacity:.4!important}.main .sidebar ol li a.ico-after:focus:after,.main .sidebar ol li a.ico-after:hover:after,.main .sidebar ol li button.ico-after:focus:after,.main .sidebar ol li button.ico-after:hover:after,.main .sidebar ol li.inactive>em.ico-after:focus:after,.main .sidebar ol li.inactive>em.ico-after:hover:after,.main .sidebar ol li.inactive>span.ico-after:focus:after,.main .sidebar ol li.inactive>span.ico-after:hover:after,.main .sidebar ul li a.ico-after:focus:after,.main .sidebar ul li a.ico-after:hover:after,.main .sidebar ul li button.ico-after:focus:after,.main .sidebar ul li button.ico-after:hover:after,.main .sidebar ul li.inactive>em.ico-after:focus:after,.main .sidebar ul li.inactive>em.ico-after:hover:after,.main .sidebar ul li.inactive>span.ico-after:focus:after,.main .sidebar ul li.inactive>span.ico-after:hover:after{opacity:1}.main .sidebar ol li a.ico-after.action-hover,.main .sidebar ol li button.ico-after.action-hover,.main .sidebar ol li.inactive>em.ico-after.action-hover,.main .sidebar ol li.inactive>span.ico-after.action-hover,.main .sidebar ul li a.ico-after.action-hover,.main .sidebar ul li button.ico-after.action-hover,.main .sidebar ul li.inactive>em.ico-after.action-hover,.main .sidebar ul li.inactive>span.ico-after.action-hover{position:absolute;display:none;overflow:visible;top:0;left:10%;padding:0;z-index:1;width:30px;height:30px;text-indent:-9999px;background:#FFF;right:-30px}.main .sidebar ol li a.ico-after.action-hover[data-title]:hover:before,.main .sidebar ol li button.ico-after.action-hover[data-title]:hover:before,.main .sidebar ol li.inactive>em.ico-after.action-hover[data-title]:hover:before,.main .sidebar ol li.inactive>span.ico-after.action-hover[data-title]:hover:before,.main .sidebar ul li a.ico-after.action-hover[data-title]:hover:before,.main .sidebar ul li button.ico-after.action-hover[data-title]:hover:before,.main .sidebar ul li.inactive>em.ico-after.action-hover[data-title]:hover:before,.main .sidebar ul li.inactive>span.ico-after.action-hover[data-title]:hover:before{content:attr(data-title);display:block;position:absolute;background:#FFF;color:#555;top:-27px;left:0;height:27px;line-height:27px;line-height:2.7rem;text-indent:0;padding:0 15px;border:1px solid #EEE;box-shadow:rgba(0,0,0,.15) 0 0 7px}.main .sidebar ol li a.ico-after.action-hover:after,.main .sidebar ol li button.ico-after.action-hover:after,.main .sidebar ol li.inactive>em.ico-after.action-hover:after,.main .sidebar ol li.inactive>span.ico-after.action-hover:after,.main .sidebar ul li a.ico-after.action-hover:after,.main .sidebar ul li button.ico-after.action-hover:after,.main .sidebar ul li.inactive>em.ico-after.action-hover:after,.main .sidebar ul li.inactive>span.ico-after.action-hover:after{left:7px}.main .sidebar ol li.inactive>em,.main .sidebar ol li.inactive>span,.main .sidebar ul li.inactive>em,.main .sidebar ul li.inactive>span{color:#555}.main .sidebar ol li .count,.main .sidebar ul li .count{display:block;position:absolute;top:6px;right:20px;padding:1px 10px;height:1pc;line-height:1pc;font-style:normal;background:#AAA;color:#FFF}.main .sidebar ol li .last-answer,.main .sidebar ul li .last-answer{display:block;visibility:hidden;position:absolute;top:-13px;left:102%;width:250px;height:40px;background:#FFF;padding:7px 10px;border:1px solid #F0F0F0;box-shadow:rgba(0,0,0,.1) 2px 2px 2px;opacity:0;-webkit-transition:visibility 0s linear .15s,opacity .15s,left .15s;transition:visibility 0s linear .15s,opacity .15s,left .15s}.main .sidebar ol li .last-answer .avatar,.main .sidebar ul li .last-answer .avatar{height:40px;width:40px;float:left;border:1px solid #F0F0F0}.main .sidebar ol li .last-answer .topic-last-answer,.main .sidebar ul li .last-answer .topic-last-answer{display:block;margin-left:50px;line-height:18px;padding:3px 0;color:#555}.main .sidebar ol li .last-answer .topic-no-last-answer,.main .sidebar ul li .last-answer .topic-no-last-answer{display:block;line-height:40px;width:100%;text-align:center;color:#999}.main .sidebar ol li a:focus+.last-answer,.main .sidebar ol li a:hover+.last-answer,.main .sidebar ul li a:focus+.last-answer,.main .sidebar ul li a:hover+.last-answer{visibility:visible;left:100%;opacity:1;-webkit-transition:visibility 0s linear 0,opacity .15s,left .15s;transition:visibility 0s linear 0,opacity .15s,left .15s}.main .sidebar ol li button,.main .sidebar ul li button{width:100%;line-height:28px}.main .sidebar ol li li,.main .sidebar ul li li{padding:0}.main .sidebar ol li li a,.main .sidebar ul li li a{position:relative;color:#084561;-webkit-transition:all .15s ease;transition:all .15s ease}.authors ul li a,.pagination li a,.taglist li a{-webkit-transition:all .15s ease}.main .sidebar ol li li a:focus,.main .sidebar ol li li a:hover,.main .sidebar ul li li a:focus,.main .sidebar ul li li a:hover{color:#0079B2;background:#FFF;margin-left:-11px}.main .sidebar ol li li a:focus:before,.main .sidebar ol li li a:hover:before,.main .sidebar ul li li a:focus:before,.main .sidebar ul li li a:hover:before{content:"> "}.main .sidebar.summary h4{border-bottom:1px solid #d8dada;padding-bottom:5px;padding-right:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main .sidebar.summary h4+ol>li:first-child,.main .sidebar.summary h4+ul>li:first-child{margin-top:5px}.main .sidebar.summary ol li.current{margin-top:0!important;padding-top:5px;margin-bottom:5px;background-color:#FFF}.main .sidebar.summary ol li.current ol{margin-top:5px;padding-top:5px;padding-bottom:5px;margin-left:-42px;width:calc(105% + 25px);background:-webkit-linear-gradient(top,rgba(0,0,0,.07),#F7F7F7 3px);background:linear-gradient(top,rgba(0,0,0,.07),#F7F7F7 3px)}.main .sidebar.summary ol li.current ol a{padding-left:50px}.main .content-container{padding-top:30px}.main .content-container h1,.main .content-container h2{font-size:22px;font-size:2.2rem;line-height:38px;line-height:3.8rem;color:#084561;font-weight:400;border-bottom:1px solid #F8AD32;margin:1px 0 15px}.main .content-container h1.illu,.main .content-container h2.illu{padding-left:60px}.main .content-container h1.illu img,.main .content-container h2.illu img{background:#FFF}.main .content-container h1.ico-after,.main .content-container h2.ico-after{padding-left:5pc}.main .content-container h1.ico-after:after,.main .content-container h2.ico-after:after{width:5pc;height:40px;margin-left:21px}.main .content-container h1.ico-articles:after,.main .content-container h2.ico-articles:after{background-position:0 -346px}.main .content-container h1.ico-tutorials:after,.main .content-container h2.ico-tutorials:after{background-position:0 -4066px}.main .content-container h1.ico-news:after,.main .content-container h2.ico-news:after{background-position:0 -3586px}.main .content-container h1.ico-forum:after,.main .content-container h2.ico-forum:after{background-position:0 -1586px}.main .content-container h1.illu img,.main .content-container h2.illu img{position:absolute;margin:-6px 0 0 -60px;border:1px solid #cdd0d1;width:50px;height:50px}.main .content-container .license{float:right;margin:10px 0 0}.main .content-container .subtitle{font-size:18px;font-size:1.8rem;line-height:23px;color:#999;margin-top:-15px;margin-bottom:15px;padding:10px 0;font-weight:400;border-bottom:1px solid #EEE}.main .content-container .pubdate{display:block;color:#999;margin-bottom:15px}.main .content-container .member-item .avatar{margin-top:-2px;height:20px;width:20px;border:1px solid #CCC}.main .content-container .member-item .avatar+span{padding-left:3px}.main .content-container .member-item:hover .avatar{border-color:#999}.main .content-container .member-item+.member-item{margin-left:7px}.main .content-container .authors .member-item{margin-right:0;margin-left:7px}.main .content-container .authors .member-item .avatar{height:30px;width:30px;margin:-3px 5px 0 -6px}.main .content-container .new-btn-container,.main .content-container .open-zen-mode{display:none}.home .main .content-container{margin-top:0}@media only screen and (min-width:1360px){.main .content-container .content-wrapper{max-width:10in;margin:0 auto!important}}@media only screen and (min-width:960px){body.no-sidebar .main .content-container{width:100%}body.no-sidebar .main .sidebar{display:none}.main{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse;height:100%;margin-left:0;padding-left:2.5%}.main .content-container{width:80%;margin-right:0}.main .content-container .taglist+.pubdate{margin-top:-40px}.main .content-container .open-zen-mode{display:block}.main .content-container.zen-mode{width:100%;min-height:calc(100% - 200px);position:absolute;top:0;left:0;right:0;z-index:20;background:#FCFCFC;padding:75pt 0;margin-bottom:0}.main .content-container.zen-mode .comments-title,.main .content-container.zen-mode .pagination:not(.pagination-chapter),.main .content-container.zen-mode .topic-message{display:none}.main .content-container.zen-mode .content-wrapper{margin:0 4%}.main .content-container h1,.main .content-container h2{margin-left:1px}.main .content-container .content-col-2{width:49.5%;margin:0 0 0 1%}.main .content-container .content-col-3{width:32%;margin:0 0 0 2%}.main .content-container .content-col-2,.main .content-container .content-col-3{float:left}.main .content-container .content-col-2:first-child,.main .content-container .content-col-3:first-child{margin:0}.main .content-container .article-content>.summary-part>li{float:left;width:50%}.main .content-container .article-content>.summary-part>li:nth-child(2n+1){clear:both}.main .sidebar{width:22.5%;border-bottom:none}.main .sidebar h3,.main .sidebar h4,.main .sidebar ol li,.main .sidebar ul li{padding-left:11.5%}.main .sidebar h3:first-child{margin-top:31px}.main .sidebar h4[data-num]{padding-left:calc(11% + 25px)}.main .sidebar h4[data-num]:before{left:11%}.main .sidebar.sommaire ul li.current ol,.main .sidebar.sommaire ul li.current ul{margin-left:calc(-11% - 10px);width:calc(111% + 10px);background:-webkit-linear-gradient(top,rgba(0,0,0,.07),transparent 3px);background:linear-gradient(top,rgba(0,0,0,.07),transparent 3px)}.main .sidebar.sommaire ul li.current ol a,.main .sidebar.sommaire ul li.current ul a{padding-left:calc(11% + 30px)}.content-cols .main .content-container{width:79%;margin-left:1.5%}.full-content-wrapper .tutorial-list article{width:46%;float:left}.full-content-wrapper .tutorial-list article.extend{width:100%}}@media only screen and (max-width:959px){.main .content-container .new-btn-container{display:block;margin:30px 0;border-top:1px solid #DDD;overflow:hidden}.content-col-2:not(:first-child),.content-col-3:not(:first-child),.main .content-container .content-col:not(:first-child),.main .sidebar{margin-top:50px}.main .content-container .new-btn-container .new-btn{display:block;width:100%;padding:7px 10px 7px 35px;text-decoration:none;height:30px;line-height:30px;background:#EEE;color:#333;border-bottom:1px solid #DDD}.main .content-container .new-btn-container .new-btn.ico-after:after{top:13px;left:10px}.main .content-container h1.ico-news:after,.main .content-container h2.ico-news:after{background-position:0 -3626px}.main{width:100%}.main .sidebar{width:102.5%}.main .sidebar h3,.main .sidebar h4,.main .sidebar ul li{padding-left:5.5%}.main .sidebar h3 a,.main .sidebar h4 a,.main .sidebar ul li a{white-space:normal}}.small-content-wrapper{width:90%;max-width:500px;margin:20px auto}.main .content-container .content-wrapper.article-content,.main .content-container .content-wrapper.authors{padding-left:2%;padding-right:2%}.main .content-container .article-content ol:not(.summary-part),.main .content-container .article-content p,.main .content-container .article-content p a,.main .content-container .article-content ul:not(.pagination),.main .content-container .article-content>a{font-family:Merriweather,"Liberation Serif","Times New Roman",Times,Georgia,FreeSerif,serif}.main .content-container .comment-author,.main .content-container .content-wrapper.comment-author{background:#EEE;padding:7px 15px;margin-bottom:20px}.main .content-container .comment-author blockquote,.main .content-container .content-wrapper.comment-author blockquote{margin:10px 0;border-left:5px solid #CCC;padding:5px 0 5px 15px}.main .content-container .article-content .summary-part{font-size:20px;color:#ea9408}.main .content-container .article-content .summary-part h3,.main .content-container .article-content .summary-part h4{font-weight:400;width:90%}.main .content-container .article-content .summary-part h3 a,.main .content-container .article-content .summary-part h4 a{text-decoration:none}.main .content-container .article-content .summary-part h3 a:focus,.main .content-container .article-content .summary-part h3 a:hover,.main .content-container .article-content .summary-part h4 a:focus,.main .content-container .article-content .summary-part h4 a:hover{text-decoration:underline}.main .content-container .article-content .summary-part h3{font-size:20px;margin:0 0 5px}.main .content-container .article-content .summary-part .summary-part{list-style:none;padding-left:0;margin-bottom:15px}.main .content-container .article-content .summary-part .summary-part h4{font-size:14px;margin:2px 0}.main .content-container .article-content,.main .content-container .message-content{margin-top:20px;margin-bottom:20px;color:#424242}.main .content-container .article-content h2,.main .content-container .article-content h3,.main .content-container .message-content h2,.main .content-container .message-content h3{clear:both}.main .content-container .article-content h2,.main .content-container .article-content h2 a,.main .content-container .article-content h3,.main .content-container .article-content h3 a,.main .content-container .message-content h2,.main .content-container .message-content h2 a,.main .content-container .message-content h3,.main .content-container .message-content h3 a{color:#ea9408;margin-top:40px;text-decoration:none}.main .content-container .article-content h2 a:focus,.main .content-container .article-content h2 a:hover,.main .content-container .article-content h3 a:focus,.main .content-container .article-content h3 a:hover,.main .content-container .message-content h2 a:focus,.main .content-container .message-content h2 a:hover,.main .content-container .message-content h3 a:focus,.main .content-container .message-content h3 a:hover{text-decoration:underline}.main .content-container .article-content h2,.main .content-container .message-content h2{font-size:22px;font-size:2.2rem;line-height:50px;margin-bottom:20px;background:#FFF;border-top:1px solid #e0e4e5;padding-left:1%;font-weight:400}.main .content-container .article-content h3,.main .content-container .message-content h3{font-size:20px;font-size:2rem;margin-bottom:14px}.main .content-container .article-content h4,.main .content-container .message-content h4{font-size:18px;font-size:1.8rem;margin-bottom:9pt}.main .content-container .article-content h5,.main .content-container .message-content h5{font-size:1pc;font-size:1.6rem;margin-bottom:10px}.main .content-container .article-content h6,.main .content-container .message-content h6{font-size:15px;font-size:1.5rem;margin-bottom:10px}.main .content-container .article-content .actions-title,.main .content-container .message-content .actions-title{float:right;margin:-60px 10px 0 0}.main .content-container .article-content .actions-title .btn,.main .content-container .message-content .actions-title .btn{height:30px;line-height:30px;margin-left:3px;opacity:.7}.main .content-container .article-content .actions-title .btn.ico-after:after,.main .content-container .message-content .actions-title .btn.ico-after:after{margin-top:7px}.main .content-container .article-content .actions-title .btn:focus,.main .content-container .article-content .actions-title .btn:hover,.main .content-container .message-content .actions-title .btn:focus,.main .content-container .message-content .actions-title .btn:hover{opacity:1}.main .content-container .article-content :not(.alert-box).error,.main .content-container .article-content :not(.alert-box).information,.main .content-container .article-content :not(.alert-box).question,.main .content-container .article-content :not(.alert-box).spoiler,.main .content-container .article-content :not(.alert-box).warning,.main .content-container .message-content :not(.alert-box).error,.main .content-container .message-content :not(.alert-box).information,.main .content-container .message-content :not(.alert-box).question,.main .content-container .message-content :not(.alert-box).spoiler,.main .content-container .message-content :not(.alert-box).warning{margin:25px 0;padding:7px 15px 7px 45px}.main .content-container .article-content :not(.alert-box).error.ico-after:after,.main .content-container .article-content :not(.alert-box).information.ico-after:after,.main .content-container .article-content :not(.alert-box).question.ico-after:after,.main .content-container .article-content :not(.alert-box).spoiler.ico-after:after,.main .content-container .article-content :not(.alert-box).warning.ico-after:after,.main .content-container .message-content :not(.alert-box).error.ico-after:after,.main .content-container .message-content :not(.alert-box).information.ico-after:after,.main .content-container .message-content :not(.alert-box).question.ico-after:after,.main .content-container .message-content :not(.alert-box).spoiler.ico-after:after,.main .content-container .message-content :not(.alert-box).warning.ico-after:after{position:absolute;top:50%;left:23px;margin:-11px 0 0 -11px;height:22px;width:22px}.main .content-container .article-content :not(.alert-box).information,.main .content-container .message-content :not(.alert-box).information{background:#daeaee}.main .content-container .article-content :not(.alert-box).information.ico-after:after,.main .content-container .message-content :not(.alert-box).information.ico-after:after{background-position:0 -2586px}.main .content-container .article-content :not(.alert-box).question,.main .content-container .message-content :not(.alert-box).question{background:#e2daee}.main .content-container .article-content :not(.alert-box).question.ico-after:after,.main .content-container .message-content :not(.alert-box).question.ico-after:after{background-position:0 -3266px}.main .content-container .article-content :not(.alert-box).error,.main .content-container .message-content :not(.alert-box).error{background:#eedada}.main .content-container .article-content :not(.alert-box).error.ico-after:after,.main .content-container .message-content :not(.alert-box).error.ico-after:after{background-position:0 -1426px}.main .content-container .article-content :not(.alert-box).warning,.main .content-container .message-content :not(.alert-box).warning{background:#eee7da}.main .content-container .article-content :not(.alert-box).warning.ico-after:after,.main .content-container .message-content :not(.alert-box).warning.ico-after:after{background-position:0 -4386px}.main .content-container .article-content .spoiler,.main .content-container .message-content .spoiler{margin-top:0;padding-left:15px;background:#EEE}.main .content-container .article-content .spoiler-title,.main .content-container .message-content .spoiler-title{display:block;background:#EEE;margin-top:15px;padding:3px 15px 3px 40px;text-decoration:none;border-bottom:1px solid #DDD;color:#555}.content-item .content-meta>a:focus,.content-item .content-meta>a:hover,.content-item.topic-item .member-item:focus,.content-item.topic-item .member-item:hover,.main .content-container .article-content .spoiler-title:hover,.main .content-container .message-content .spoiler-title:hover{text-decoration:underline}.main .content-container .article-content .spoiler-title.ico-after:after,.main .content-container .message-content .spoiler-title.ico-after:after{margin:8px 0 0 10px}.main .content-container .article-content .spoiler-title:nth-last-child(2),.main .content-container .message-content .spoiler-title:nth-last-child(2){margin-bottom:15px}.main .content-container .article-content img,.main .content-container .message-content img{max-width:100%}.main .content-container .article-content figure,.main .content-container .message-content figure{margin:30px 0;text-align:center}.main .content-container .article-content figure>blockquote,.main .content-container .article-content figure>code,.main .content-container .article-content figure>embed,.main .content-container .article-content figure>img,.main .content-container .article-content figure>pre,.main .content-container .article-content figure>table,.main .content-container .article-content figure>video,.main .content-container .message-content figure>blockquote,.main .content-container .message-content figure>code,.main .content-container .message-content figure>embed,.main .content-container .message-content figure>img,.main .content-container .message-content figure>pre,.main .content-container .message-content figure>table,.main .content-container .message-content figure>video{max-width:100%;margin:0 auto;text-align:left}.main .content-container .article-content figure>code,.main .content-container .article-content figure>figcaption,.main .content-container .article-content figure>img,.main .content-container .article-content figure>pre,.main .content-container .article-content figure>video,.main .content-container .message-content figure>code,.main .content-container .message-content figure>figcaption,.main .content-container .message-content figure>img,.main .content-container .message-content figure>pre,.main .content-container .message-content figure>video{display:block}.main .content-container .article-content figure>blockquote~figcaption,.main .content-container .message-content figure>blockquote~figcaption{padding:0 0 1px 2%;font-style:italic;text-align:left;color:#999;border-left:5px solid #CCC}.main .content-container .article-content figure>blockquote~figcaption p,.main .content-container .message-content figure>blockquote~figcaption p{margin:0 0 5px}.main .content-container .article-content figure>blockquote~figcaption p:before,.main .content-container .message-content figure>blockquote~figcaption p:before{content:"— "}.main .content-container .article-content blockquote,.main .content-container .message-content blockquote{margin:0;color:#777;padding:1px 2%;border-left:5px solid #CCC}.main .content-container .article-content blockquote>p:first-child,.main .content-container .message-content blockquote>p:first-child{margin-top:5px}.main .content-container .article-content blockquote>p:last-child,.main .content-container .message-content blockquote>p:last-child{margin-bottom:5px}.main .content-container .article-content blockquote figure,.main .content-container .message-content blockquote figure{margin:15px 0}.main .content-container .article-content blockquote:last-child,.main .content-container .message-content blockquote:last-child{margin-bottom:15px}.main .content-container .article-content code,.main .content-container .article-content kbd,.main .content-container .article-content pre,.main .content-container .article-content samp,.main .content-container .message-content code,.main .content-container .message-content kbd,.main .content-container .message-content pre,.main .content-container .message-content samp{font-family:monospace,serif}.main .content-container .article-content pre,.main .content-container .message-content pre{margin:0}.main .content-container .article-content kbd,.main .content-container .message-content kbd{background-color:#F8F6EA;padding:2px 6px;border-radius:3px;border:1px solid #e0dab6;border-bottom-width:3px;text-shadow:0 1px 0 #FFF;color:#5e551f}.main .content-container .article-content li code,.main .content-container .article-content p code,.main .content-container .message-content li code,.main .content-container .message-content p code{color:#A00;background:#EEE;border:1px solid #CCC;padding:0 5px}.main .content-container .article-content .mathjax-wrapper,.main .content-container .message-content .mathjax-wrapper{max-width:100%;overflow:auto}.main .content-container .article-content .mathjax-wrapper mathjax,.main .content-container .message-content .mathjax-wrapper mathjax{font-size:1pc;font-size:1.6rem}.main .content-container .article-content .footnote,.main .content-container .message-content .footnote{opacity:.7}.main .content-container .article-content .footnote ol,.main .content-container .message-content .footnote ol{padding-left:25px}.main .content-container .comments-title{margin:50px 0 20px;color:#084561;border-bottom:1px solid #F8AD32;font-weight:400;font-size:22px;font-size:2.2rem;line-height:30px}.wf-active .main .content-container .article-content ol:not(.summary-part),.wf-active .main .content-container .article-content p,.wf-active .main .content-container .article-content ul:not(.pagination){font-family:Merriweather,"Liberation Serif","Times New Roman",Times,Georgia,FreeSerif,serif}.wf-active .main .content-container .article-content figcaption p{font-family:"Source Sans Pro","Segoe UI","Trebuchet MS",Helvetica,"Helvetica Neue",Arial,sans-serif;font-size:1pc;font-size:1.6rem}.wf-active .main .content-container .article-content code,.wf-active .main .content-container .article-content kbd,.wf-active .main .content-container .article-content pre,.wf-active .main .content-container .article-content samp,.wf-active .main .content-container .message-content code,.wf-active .main .content-container .message-content kbd,.wf-active .main .content-container .message-content pre,.wf-active .main .content-container .message-content samp{font-family:"Source Code Pro",monospace,serif}.js .spoiler{display:none}@media only screen and (min-width:1140px){.full-content-wrapper .tutorial-list article{width:29.3%}.main .content-container .topic-message .message .message-metadata .date .short-date{display:none}.main .content-container .topic-message .message .message-metadata .date .long-date{display:inline}}@media only screen and (min-width:960px){.content-wrapper,.full-content-wrapper{margin:0 0 0 4%}.content-wrapper.without-margin,.full-content-wrapper.without-margin{margin:0}.content-wrapper .content-wrapper,.full-content-wrapper .content-wrapper{max-width:none;margin:0}}@media only screen and (max-width:959px){.main .content-container .content-wrapper .authors,.main .content-container .content-wrapper blockquote,.main .content-container .content-wrapper figure,.main .content-container .content-wrapper h4,.main .content-container .content-wrapper h5,.main .content-container .content-wrapper h6,.main .content-container .content-wrapper p,.main .content-container .full-content-wrapper .authors,.main .content-container .full-content-wrapper blockquote,.main .content-container .full-content-wrapper figure,.main .content-container .full-content-wrapper h4,.main .content-container .full-content-wrapper h5,.main .content-container .full-content-wrapper h6,.main .content-container .full-content-wrapper p,.main .content-container .pubdate,.main .content-container .taglist{margin-left:10px;margin-right:10px}.main .content-container .article-content ol,.main .content-container .article-content p,.main .content-container .article-content ul:not(.pagination){font-size:15px;font-size:1.5rem;font-size:1.8ex}.main .content-container .content-wrapper .subtitle,.main .content-container .content-wrapper h1:not(.ico-after),.main .content-container .content-wrapper h2:not(.ico-after),.main .content-container .content-wrapper h3,.main .content-container .full-content-wrapper .subtitle,.main .content-container .full-content-wrapper h1:not(.ico-after),.main .content-container .full-content-wrapper h2:not(.ico-after),.main .content-container .full-content-wrapper h3{padding-left:10px;padding-right:10px}.main .content-container .content-wrapper .illu img,.main .content-container .full-content-wrapper .illu img{display:none}.main .content-container .content-wrapper figure blockquote,.main .content-container .content-wrapper figure p,.main .content-container .full-content-wrapper figure blockquote,.main .content-container .full-content-wrapper figure p{margin-left:0;margin-right:0}.main .content-container .content-wrapper .license,.main .content-container .full-content-wrapper .license{position:absolute;margin-top:0;top:62px;right:15px}}@media only screen and (max-width:759px){.main .content-container .article-content .btn{float:none;text-align:center}}.footer-container footer{color:#424242;padding:20px 0}.page-footer{background:#084561;height:40px;line-height:40px;border-top:3px solid #F8AD32;font-size:14px;font-size:1.4rem}.page-footer .wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.page-footer .copyright{color:#EEE;margin:0}.page-footer ul{list-style:none;margin:0;padding:0}.page-footer ul.links li{display:inline-block;margin-left:25px}.page-footer ul.links li a{text-decoration:none;color:#EEE;border-bottom:1px solid transparent}.page-footer ul.links li a:focus,.page-footer ul.links li a:hover{border-bottom-color:#F8AD32}.page-footer ul.social{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;text-align:center}.page-footer ul.social li{margin:-2px 10px;display:inline-block}.page-footer ul.social li a{display:block;height:1pc;width:1pc}.page-footer ul.social li a:after{opacity:.6}.page-footer ul.social li a:hover{border-bottom-color:transparent}.page-footer ul.social li a:hover:after{opacity:1}.page-footer .version,.page-footer .version a{color:rgba(255,255,255,.5)}.alert-box,.page-footer .version a:focus,.page-footer .version a:hover{color:#FFF}@media only screen and (max-width:959px){.page-footer{text-align:center;height:auto}.page-footer .wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.page-footer .wrapper .social{-ms-flex:none}.page-footer .copyright,.page-footer .social{border-bottom:1px solid #5b3a03}.page-footer ul li{margin:0 5px}}.alert-box{position:relative;padding:8px 30px 8px 15px;margin:0 0 15px 2%;text-shadow:rgba(0,0,0,.2) 0 0 2px;background:#777}.alert-box.alert-box-not-closable{padding-right:15px}.alert-box .alert-box-text{display:block;float:left}.alert-box .close-alert-box{display:block;position:absolute;top:8px;right:15px;height:20px;width:20px;text-indent:-9999px;text-decoration:none;background-color:transparent;line-height:22px;color:#FFF}.alert-box .close-alert-box.ico-after:after{margin-top:4px}.alert-box .close-alert-box-text{width:auto;text-indent:0;top:8px}.alert-box .alert-box-title{margin:5px 0;padding:0;font-size:18px;font-weight:400}.alert-box.info,.alert-box.success{background:#48A200}.alert-box.error{background:#C0392B}.alert-box.alert,.alert-box.warning{background:#e67e22}.alert-box.not-member{background:#FDFDFD;color:#333;text-shadow:none;border-bottom:3px solid #D2D5D6}.alert-box.ico-after{padding-left:40px}.alert-box.ico-after:after{margin:9pt 0 0 13px}.alert-box h4,.alert-box p{margin-left:0!important;margin-right:0!important}.alert-box p{margin:0}.alert-box a{color:#EEE}.alert-box .alert-box-btn{display:inline-block;background:#084561;text-decoration:none;padding:8px 15px;margin:5px 0;color:#FFF!important}.alert-box .alert-box-btn:focus,.alert-box .alert-box-btn:hover{background:#0b5c82}.alert-box .alert-box-btn.alert-box-btn-right{position:absolute;top:0;right:0;margin:0}.alert-box.empty{display:none}.content-wrapper .alert-box{margin:0 0 20px}.content-wrapper .alert-box+.not-member{margin-top:-20px}@media only screen and (min-width:760px){.alert-box .alert-box-text{display:inline}.topic-message .alert-box{padding:8px 75px 8px 15px}}@media only screen and (max-width:759px){.alert-box .alert-box-btn,.alert-box .alert-box-btn.alert-box-btn-right{position:relative;float:none;display:block;margin:5px 0 0;text-align:center}}.authors{color:#9c9c9c;padding-bottom:10px;border-bottom:1px solid #e0e4e5;margin-bottom:20px!important}.authors ul,.authors ul li{display:inline-block;margin:0}.authors .authors-label{display:inline-block}.authors ul{list-style:none;padding:0}.authors ul li .avatar{height:28px;width:28px;border:1px solid #cdd0d1;margin-right:3px;margin-top:-4px}.authors ul li a{display:block;text-decoration:none;color:#1088bf;height:36px;line-height:36px;padding:0 8px;transition:all .15s ease}.authors ul li a.ico-after{padding-left:30px}.authors ul li a.ico-after:after{margin:10px 0 0 8px}.authors ul li a:focus,.authors ul li a:hover{background:#DDD;color:#084561}.authors ul li .info{padding-left:5px;color:#777}.autocomplete-wrapper{position:relative}.autocomplete-wrapper .autocomplete-dropdown{position:absolute;z-index:60}.autocomplete-wrapper .autocomplete-dropdown ul{padding:0;margin:0;background-color:#FFF;border-right:solid 1px #CCC;border-left:solid 1px #CCC;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.autocomplete-wrapper .autocomplete-dropdown ul li{padding:4px 10px;border-bottom:solid 1px #CCC;list-style:none}.autocomplete-wrapper .autocomplete-dropdown ul li.active,.autocomplete-wrapper .autocomplete-dropdown ul li:hover{background-color:#0c6790;color:#fff}.modal .autocomplete-dropdown{margin-top:-10px;margin-left:15px}.breadcrumb{display:none}@media only screen and (min-width:960px){.breadcrumb{position:relative;display:block;float:left;width:calc(100% - 230px);height:30px}.breadcrumb:after{content:" ";display:block;position:absolute;top:0;right:0;width:50px;height:100%;background-image:-webkit-linear-gradient(left,rgba(231,235,236,0),rgba(231,235,236,.75));background-image:linear-gradient(left,rgba(231,235,236,0),rgba(231,235,236,.75))}.breadcrumb ol{margin:0;padding:0;list-style:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumb ol li{position:relative;display:inline-block;padding-right:30px;line-height:30px}.breadcrumb ol li a{text-decoration:none;color:#084561}.breadcrumb ol li a:focus,.breadcrumb ol li a:hover{text-decoration:underline;outline:0}.breadcrumb ol li:not(:last-child):after{display:block;position:absolute;top:0;right:7px;content:" ";height:30px;width:15px;background-image:url(../images/sprite.png);background-repeat:no-repeat;background-position:0 -3306px;opacity:.2}}.content-item{background:#FFF;min-height:60px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border:1px solid #DEDEDE;border-bottom-width:2px;margin:0 10px 15px;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1 1 25pc;-ms-flex:1 1 25pc;flex:1 1 25pc;width:100%}.content-item.expand-description .content-description{height:36px;white-space:normal;font-size:14px;font-size:1.4rem;line-height:18px}.content-item .content-description,.content-item .content-meta:not(.inline)>*,.content-item .content-title,.content-item.expand-description .content-meta,.content-item.topic-item .content-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content-item.expand-description .content-meta{line-height:1pc}.content-item.expand-description .content-meta:not(.inline)>*{display:inline}.content-item a{text-decoration:none}.content-item>a:not(.btn){display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.content-item .content-illu{-webkit-box-flex:0;-webkit-flex:0 0 1in;-ms-flex:0 0 1in;flex:0 0 1in;height:1in;background-color:#DEDEDE}.content-item .content-illu img{width:100%;height:100%;background-color:#FFF}.content-item .content-info{padding:10px 14px;height:76px;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;position:relative;min-width:75pt}.content-item .content-reactions{position:absolute;z-index:0;bottom:6px;left:-14px;height:2pc;width:2pc;padding-left:1px;background-image:url(../images/sprite.png);background-position:0 -74px;color:#F8AD32;text-align:center;line-height:2pc;font-weight:700;font-size:14px;font-size:1.4rem}.content-item .content-reactions span{position:relative;z-index:2}.content-item .content-reactions::before{content:"";display:block;position:absolute;top:0;bottom:0;right:0;left:0;z-index:1;background-image:url(../images/sprite.png);background-position:0 -42px;opacity:0;-webkit-transition:opacity .15s;transition:opacity .15s}.content-item .content-reactions:focus,.content-item .content-reactions:hover{color:#fff}.content-item .content-reactions:focus::before,.content-item .content-reactions:hover::before{opacity:1}.content-item.has-reactions .content-meta{padding-left:14px}.content-item .content-title{margin:0;font-size:17px;font-size:1.7rem;font-weight:400;line-height:20px;color:#424242}.content-item a:focus,.content-item a:hover{outline:0}.content-item a:focus .content-title,.content-item a:hover .content-title{text-decoration:underline;outline:0}.content-item p{margin:0}.content-item .content-description{margin:0 0 2px;font-size:15px;font-size:1.5rem;line-height:26px;color:#999}.content-item .content-description .short{display:none}.content-item .content-meta{color:#F8AD32;font-size:13px;font-size:1.3rem;line-height:15px}.content-item .content-meta:not(.inline)>*{display:block}.content-item .content-meta .short{display:none}.content-item .content-meta>a{color:#ef9708}.content-item .content-tags{margin:0;padding:10px 0 0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.content-item .content-tags li{padding:0;-webkit-box-flex:0;-webkit-flex:0 0 22px;-ms-flex:0 0 22px;flex:0 0 22px;background-color:#EEE;margin-bottom:5px;color:#777;display:block;text-align:right;-webkit-transition:color .15s,background-color .15s;transition:color .15s,background-color .15s}.content-item .content-tags li a{color:inherit;padding:0 9pt;line-height:22px;height:22px;display:block}.content-item .content-tags li a:focus,.content-item .content-tags li a:hover{color:#EEE;background-color:#777}.content-item.write-tutorial{background-color:#084561;border-color:#084561;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;color:#fff;height:1in}.content-item.write-tutorial .write-tutorial-text{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;text-align:center;margin:10px 14px}.content-item.write-tutorial .write-tutorial-text p{margin:0;font-size:1pc}.content-item.write-tutorial .write-tutorial-text p.lead{font-size:18px;font-weight:700}.content-item.write-tutorial .btn-write-tutorial{background-color:#1c5b78;margin-right:28px;-webkit-transition:color .15s,background-color .15s;transition:color .15s,background-color .15s}.content-item.write-tutorial .btn-write-tutorial:focus,.content-item.write-tutorial .btn-write-tutorial:hover{background-color:#FFF;color:#1c5b78}.content-item.topic-item .content-info{padding:14px 20px;height:68px}.content-item.topic-item .content-title{font-size:19px;font-size:1.9rem;line-height:24px;color:#084561}.content-item.topic-item .content-description{color:#505050;font-size:1pc;font-size:1.6rem}.content-item.topic-item .content-meta{font-size:14px;font-size:1.4rem;line-height:1pc}.content-item-list{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;min-width:100%;margin:0 -10px}.content-item-list .fill{-webkit-box-flex:1;-webkit-flex:1 1 25pc;-ms-flex:1 1 25pc;flex:1 1 25pc;margin:0 10px}@media only screen and (min-width:960px){.content-item.mini .content-description,.content-item.mini .content-meta:not(.inline) .content-pubdate{display:none}.content-item.mini{-webkit-flex-basis:200px;-ms-flex-preferred-size:200px;flex-basis:200px}.content-item.mini .content-title{white-space:normal;font-size:14px;line-height:15px;height:45px}.content-item.mini .content-meta{padding-top:1px}.content-item.mini .content-meta:not(.inline)>*{display:block}}@media only screen and (max-width:959px){.full-content-wrapper .content-item .content-info h3{padding:0!important}.full-content-wrapper .content-item .content-info p:not(.content-meta){margin:0!important}}@media only screen and (max-width:759px){.content-item .content-tags,.content-item.write-tutorial{display:none}.content-item .content-description .short,.content-item .content-meta .short{display:inline}.content-item .content-description .long,.content-item .content-meta .long{display:none}}.zform-toolbar{margin:0;padding:2px;list-style-position:initial;list-style-type:none;border-bottom:none}.zform-toolbar a,.zform-toolbar button{display:block;float:left;cursor:pointer;border-bottom:1px solid transparent;text-decoration:none;color:#999;height:27px;line-height:30px;padding:0 10px;margin-left:1px;text-indent:-9999px;width:0}.zform-toolbar a .zform-popup,.zform-toolbar button .zform-popup{text-indent:0;line-height:20px}.zform-toolbar a.ico-after,.zform-toolbar button.ico-after{padding-left:30px}.zform-toolbar a:after,.zform-toolbar button:after{top:7px;left:9pt;display:none}.zform-toolbar button{padding:0 15px;height:30px;border-top:none;border-right:none;border-left:none}.zform-toolbar button[type=submit]{background:#084561;border-bottom-color:#084561;color:#DDD}.zform-toolbar button[type=submit]:focus,.zform-toolbar button[type=submit]:hover{color:#FFF;background:#396A81;border-bottom-color:#396A81}.zform-toolbar a:focus,.zform-toolbar a:hover,.zform-toolbar button:focus,.zform-toolbar button:hover{border-bottom-color:#1088bf;outline:0;background-color:#EEE}.zform-button{background-repeat:no-repeat;background-position:center center}.zform-button-bold{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAwklEQVQoz2P4z4AfMlBLQXlC+fmS/wXvs+tT1ye8j5wfLIBhQnF95v+s/SBWxPyQ/17nMRTk1qf+TwYr8K/3++/4H0NBen38/2igAl8Bt/tu/y3mYyhIqI/8H3zfp971vMt/s/1YfBFRH/zfCyxhMt/iv9p5eQE0Bf71vv8dwQq0BdT+6/4XL0BT4FYPtBlqtMx/zf8C9WgKbOsd/uuDPSddoPKf/z2XAooCmwST9br71fbL90v2C+/n7edUoHpc4IYASlr8ehOQ9V8AAAAASUVORK5CYII=)}.zform-button-italic{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAcUlEQVQoz2P4z4AfMlBbQXZD6oeE/5Efgg/gNCHuQeT/wAScJsQYhP/3/4DHipAJQf/dFuBR4PPA879tAE4FXgau/20+4PGF4wSX/0YL8CiweGDxXysApwIzB9P/Gv9xBpRJg+4BtQPyByQ30DguMCEAC2D/O2OrpxIAAAAASUVORK5CYII=)}.zform-button-strike{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAn0lEQVQoz2P4z4AfMlBTQYlgwczstNTyhJmRu7EqyHuXVQ6iI8oD/2NRkJuW9j+5A8L2wGZCukvC/+j/ITN9jf8z2LtgtSJyd+j/wP8e/23PmKEqKC8t/w+D8f9t/ksguRvJBH9BCG2Upn3X6L/cGQwr3NLsy2Fsmf9idzEU2KaZ/9eHmiLyjr8cQ4FJmu47tTPy5ZJpwuW8HTSKC+wQAFs6/D/QOXeIAAAAAElFTkSuQmCC)}.zform-button-abbr{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACTUlEQVR42pWR4UtTYRTGB/0FgyBckZREI8SyElEEEyW0RJoxbaK2raYmaVMnt6ZYzpbTudqW091arqZoKYEVjWgFFRhCg77Ymt7J3d6522rh9yJ6eufHcOXOt3Nenuf8nveIRH9V10wY7dMEre4wNM7gN1G61TYtPB6aJ7g8F0cDG21J20DDrkDp5D3NngTkjlhhWmK1i6DB+vldLZvYXjsaQ5WZ6LYsVk7ER1rGA5AbPw7LeheLFaME5YPhyS2JG1zxgyp7ENX9/pJkr32jedD4cAilA6uL/xXXOWNjcjuBzPgJJy3CDu3b827rBxPM7wcgu9OPalfFtnKbIlZqJ8wxK/EVWYiv0ExmCwYjTZsatr48azEtXIM3NI/eF904brv588TYGlSTcRSZCeonBFx69BU17BoOGfjNTepmZMN6bwesC17I7wrQTMVRMERMybe867xJ5RZwxhnDgZ5VJmW0ClvJj86nr9B4P458w+vfeUZenJzn9PGsilJU2SPYx3BNqcSxYmMB8vW5OKy/ipwrjl8U15fdx+OUPYobzxKQMiFkdnLilAT5gxExxfXVUNTTjg1c/36Gmz13T0AbjbRbu+z/53VyDbxfwQqQj69B2sNtZN2j45jKkQgqzBHsvBhMnZ/ilpVZCEzPvyNbH0KWjhNT3L1062rHlICjdCZpDpalNKC4TZW3Ihh4kkCVLYqsrhVIdSsoN4Wh9XxB/e0ojnRzkKgDm5vQ3xVTXDZTu4xd7ctJXL/kQpChWxmJJrBOhesZ6iU2Q7kk/gOYnkYcn8opfQAAAABJRU5ErkJggg==)}.zform-button-key{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABe0lEQVR42pWSQW5TQQyGv/GMX1KVsmJLeggEO+ACCHEJWOQKBSo19ADZpoIFN0CIY9BK0G1DuyebIlGSzNgsXt5LiKia/tJItmR/M7894dPnLy/NbGTmgHOzAkECEsKrF8+fHaWc8+jRwwfc3dnB3W5uD8Llr0uOT76NgKNkZpydjXn65DGb6uvxCXe2twFIZsbWVgeAfr9Pp9NBRDAzZrMZe6/fkHMGwN3Z7d2nqpTfV39qQClGShUABwcDut0u+/tvGQzeMZ1OyTkjqgDUc4KUFLOrBlDQpsCtPmZtLFHap4s3gISbNRYK1QIQYyTGiLu38ap8AahUKVZWLcR/AOvxOkA1Lu2sWogxIiLM53NE5FpAPQNbbkE11UmMYMZwOMRKqfP/AVSx1oIZKWk7nKYwiBCv+QeaEt5YsDULm0hVKcWWMyCEek0imwEqXdpxd0QC309PgbBBu9Pr9ZhMJjXgx3h8+P7Dxz1uqYvz80MWV94Ddrm9LoCffwHdG70wvg5ZlgAAAABJRU5ErkJggg==)}.zform-button-sup{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABLElEQVR42mNgGDkgZMoDhdJVzy+0bH75wbfrbgPJBiTPe7wBqFHBq+1WQ8P65//JdknirIcXUuY9eoAhUV5efqC4uPhAbm7ugbS0tAPx8fEK4eHhB/z8/A64uroeAKmxr7jWEDbp3gXznEsGGAYANQcANX9ISUn5D9Q8ASQG1NwA1LzAxsZGwbroSoBT9bUFJhkXBAyTLzjoxZ9VwDAEaLMDUPP/yMjI/0DNBTCbQcC79eaB9LkP/yfPevA/bOLdDzj9CHT2hMDAwP9ubm7/gTYLkBxIQJsFQJpdXFz+GxkZTSDZAJCzgTYXWFtb/zcwMPivoKDgQLTN0AArAPE1NTUnAF3wX0JC4oOgoKABsTYfADkbqNkAaPMBoOYDQM0HuLi4DrCwsBgMzjwCAMHEeHCN9BV5AAAAAElFTkSuQmCC)}.zform-button-sub{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABLElEQVR42mNgGD6gvLz8QHFx8YHc3NwDaWlpB+Lj4xXCw8MP+Pn5HXB1dT1A0ACg5gCg5g8pKSn/gZongMSAmhuAmhfY2NgoEOUKoM0OQM3/IyMj/wM1FxBlMzoAOntCYGDgfzc3t/9AmwVINgBoswBIs4uLy38jI6MJJBsAcjbQ5gJra+v/BgYG/xUUFBxA4iFTHiiUrnp+oWXzyw++XXcbsNoMDbACEF9TU3MC0AX/JSQkPggKChokz3u8AahRwavtVkPD+uf/cdl8AORsoGYDoM0HgJoPADUf4OLiOsDCwmIAUpc46+GFlHmPHpCVVuwrrjWETbp3wTznkgHJmq2LrgQ4VV9bYJJxQcAw+YKDXvxZBZIM8G69eSB97sP/ybMe/A+bePfD4MlDAC7MeHCrEeunAAAAAElFTkSuQmCC)}.zform-button-center{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAfElEQVR42mP8z4AfMDFQqoAFRJT//8fwBwx/g+EvMP7FsJeRgYHxPzEmMDDkZP+eAtMNhTnHpoJkiDMh9T+yzQh4iwQ3BGf/moKsF2hWziMS3OD9H9Xu31D4mRg3MPwHQ9Ns/f+a/1X+y/2X/C/yn/8/93/2bIgMI8WxCQClCFYAGIFCIgAAAABJRU5ErkJggg==)}.zform-button-right{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAY0lEQVR42mP8z4AfMDFQqoAFRJT//8fwBwx/g+EvMP7FsJeRgYHxPzEmQEDS/99QnTB4hmgTUv8j24yAt0h0g/t/hF6Iec+JNsH7P6rdv6HwM4lu0Pr/G64bEq5/iDGBYGQBABNITB8iVnJIAAAAAElFTkSuQmCC)}.zform-button-ul{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA1UlEQVR42mNgGBQgZ/7jgqm7Xj8A0aTqZQERmtIcBQqibPJAJsiACeXl5dlAesrfv38Z/vz5w/D792+GX79+gemfP3+C2WvXrmWkigsGCUiZ+aigc9PLByE9d8kLRCUx1gIZIRb5N5Ic4ECMi4vLBgbUFFCAIeMfP37A2bdu3UIEYkDHrYKSxY8fuFZeG6qBaJt/qSB+2r0H1nmXyAxEdZ4CAwVucEo8CgxEIyOjbGBATYGlOhCNnBpBqROYShnhBty58WUCSDOUZjh37txUIDWVLt4HAP/ViGJIIAyXAAAAAElFTkSuQmCC)}.zform-button-ol{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA70lEQVR42mNgoAbImf9YZdHhd//JNgCkmSIDYIbA2OXl5dlA/L+kpOR/QUHB/+zs7P+pqan/ExIS/kdGRv4PDg7+j9UFiw5S6Aqywdz9b//P2vP6f8TEeypkGxLae0+ld8tL8rwQ1HVHpXPTc7jmuLi47IiIiP+BgYH/vby8/js7O/+3sbH5b2Ji8l9XV/e/mpoaqkVt65//b1zz9H/NqqcDFIjlyx7/L136+H/x4sfkuwCk2TrvEvmxANIMc4GRkVG2trb2fxUVlf9ycnL/xcXF/wsJCf3n4eH5z87O/p+Zmfk/hu0gbFd0pYPu4QcAKY588QFUIAIAAAAASUVORK5CYII=)}.zform-button-quote{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABH0lEQVR42mNgGDQgon2HEBAvBeKfQPwfD94FxCrYDNi48uCt/7///P2PD2w5eR9kyG0gZkPWzAPEf/7++/f/w7d//19++vf/2cd//5+8//f/4bt//++9+ff/9qu//++8ghheveA4yBAzZAPkcqYeAEu+AGp89uHf/8dAzQ/e/vt/F6r5+ou//68+gxjQueosyABvrAY8BWp+9A6q+fW//7deQjRfAWq++AS3AXAvgJx/H2jrndd//98Ear72/O//y0DNF56ADPgDNqB20QmQAZZYAxFkCDIAuebC479gg9ECkRNXNP6BRdncHVfhBr3//APMB4pfxhqNONLGnefvvsI0fgfiWlISVu/MbVdAGr8AcSGpqVIJiO8BcQrD8AcAGopyopBVAH0AAAAASUVORK5CYII=)}.zform-button-link{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAA6UlEQVQoz2P4z4AfMtBJgR13Vmnru3n/ax7mmOdI1Nyd97/1XVapHTdUgRGbT9fE/y/+3/1/8H/jvepDN3/c/X/k/8T/Pl1GbGAFhn7FH66+i9jm/Sf1/6T/lf9T/3v/idi24mHxB0M/iAldTd8np/tz2X/e+//c/0P/1/63/+zPNTm96btRF1iBbmb6+2klQTsdf7n9DwRCt/+Ov4J2TitJf6+bCVagqel7vff9qrfr/k//X/i/Akiu+7/qbe973+uammAFasz2Bl73U75kf8/+GR4X7pz9Kft7yhev+/YGasz0C0mKFAAASj0PpKVVf4oAAAAASUVORK5CYII=)}.zform-button-image{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB8ElEQVQ4y6WTPWtUQRSGnzP33r33Jgu7kI1hI1GSgGARxFRG/4CFhY1VUlhI+oCNP8LfIKaz0MpCLEz+QUCwCIQVQc0X+dhsNtm5O3PGImbJboIIGaabmeec9533SAiB66wYYPnj2mtVmT8pNLPuilsDNZIYsoQ3L57OLsUAGmThyaOJ0SzLRCT6Z8WOgnddPnzZeA6cAU6spmmayfLqAR32aMk6k2M75EkTF5T9o5xvGxWGwl1iRnj5bBKvIj0JhQNjIoxAYbaYrO2Qln7QtC2cd8RpytREne+NYaqlGqoDHgAoYIxgwy6l5IDD0ybWdyicw4U2aZrStjkjuSEQesb0A0QITrG+S8dZTruWQh1eAekS1BMb4eLPmZ7R4QyQMUqrPUwgwarHOo9IiXarTLk0ThQZCHJZQghnEsrRTX5tbVPJNhkaNqTiON4fYnurTr0yRWzkcg7CRUByg/H8Pj/XVqiWfyPek3RGuTW9QDmr41X7YtHXwfreIl4Vr8odu8vcxG0UaGxu8+n4FXqkqCrweaCDEBDg8exS7yCaOeSkvUe2+ZXaw0Xmo6Qvmec+xgByRV59XsXnVWxt+oo8DpiYJdJEu5V7Yw9A5C8qnO9Lj50riCMJPUAplnfvVxpzhQ8z/zOccQSJ4S2AXHec/wAGb9qTrxXEvwAAAABJRU5ErkJggg==)}.zform-button-attention{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACJklEQVR42qVTTUiUYRB+vh93dX903bKUYMNlMWHJBC1WW8GjZVCnfpa6Fp1i6dilQwcJglgrDEKiQqhDRYWVCEsSFJ0Ksh8zKjJZ3V0WU3G/73tnpoNrFGkZzmHmMDPPPM8wA6zRtJUSuXSHISSvhLnALJ21Xc9ouTp9JQAhSblqd0VdG7viQnz0v2hlh+PBqaH272TPiF0Ylcl72/MTd1qCq2bAxNcqQgm/puswvUF46hNBIT6zqulTj9ubMw9jJGSJNXVB7Gy/sJ2TLze3qc8DW5v/yUCYb/gakzqrOXwcuoXxR1fBTgaBppMGE/f+FSAzGEuUVbdFvZv3YeFrEiKACFCc6IE/0g13bUf8w5WGxLIAmcGYj5lTnvABsMoDXOoWAbMDLo6hqvEgmPjsu0th3x8ATNzvCe1f564Ow8ndBiAoD3iWhMHKXERFTQiVWw5tUkXn1G+HNHl/R0SY39btTpu08BLO9GUwA3pZOeZzs3B7GYYhMCo7Yfj3YrS31SZLRVtO58f1xaPhAV/DcVN4DjT7HBAGIPg08h7TbyYBCCAMVRiGps+jJpZ0Kcs5DwDat7ut3UZV04MNHSmo2SdwstcXJbFARAME0A2BJjZECLqxHuX1PXjdl8DM2Mgek4n6ApHDAADT1w7T11YSpy3JLzn5uQ9oLtTtPIbCaPqcKcTp7NMTR4QYTIxfIzkEshwoywFZDshSIFuBHAIrAit6sdZvxg9QwSUHEnNo0gAAAABJRU5ErkJggg==)}.zform-button-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACU0lEQVR42q2T7U9SYRjG/VvgQys313pbc81WW80EBT1EICDiIdMjNlojTcdhptlWzoY0PzS11F618kumMWPlS7bUXpmWx0ohTsGK0HNAIN0V0oK51E9e2/Xt+f2ePffuJyVls+MqLxfOUWXmT1QJM6MnuWm9jvtIaphJUmV2FimEG8JuQznxhaLYn7ZGhIcciLwfR2RsGPzDLriMxXhbQLCvNFJiXXi2lOIX7ndheeYDovYHiHZaEW29hN93W7A0aoe32ohxlZh/qchcLZkzGAQx2MPd7sQy40T06gUErBbMN1YhfMWCSBONcMMZhB/dgfskidFjhzwj8gOChCAG075aM5acE/EbF200/BdNCNUZVpU7SyLccwNvJBkYlGXQCcFn6gQT7LmJaHcrAg0V+KGVrdmFChJ8Yw28lko8JdKZhIAp1Ycij3sQtVkQOG/EevEqs+GnCjDf2gyHZE8oIZgmtaHF7naE640InSvZUOArVmO+pRkD0h1JwVSRmvE31GDRSoM7rYkfXLMqCQK11XBVm2AXpSWf4CxU0IxchFB3BwJ6OfzFef/BrEIMNj8Pwc5rGJbuQn/WtuQQ32llgtc6wuMu0yF4rz0+MJ9a+hdU5oCVx2C5FHxHGyYLZSuwp1e0VbBqFybys4kx5RF+9rgawVvt+FVPw0uq8E2jhL/ODP56G6Y0uejLSuVj8Nrb+EJxmHh+9CA7nrcP36tM8Dddjvdr5Sk8y965ArPrwv8yJNsvHJSmmx3EXuZJ7m5uQLSd689JY/rEqebezC3CTf+9fwCiP9Om7nIiOAAAAABJRU5ErkJggg==)}.zform-button-question{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACZUlEQVR42r2SXUiTURjH34K6CbryIgi62FXQVezOZLM2isLSQbFljVpOvOgmRelmQUblkD7VssFGgRSrtQyKUvrYLEdI5XQfVtIWS833Zeac22xra/+e854FE7vppgN/zsPz/P7Ped7zHkEoW6mLxnXpzvqelNWwlOrQI3W+JBZTTq4RI/xtLVrrry12HkbO04vizBBQ/Az8Kolilst5roMxjF1mTpzVOzN3LEDaD/wYA+YfA5IDiN/kEh08tzQmM4xlHtk8d0Z/LmlvBvJBggaBqW7gy2WIV00IG9QIH1Qjbm8CvvUAX7s4QyzzMK8gWnRZfB8Gki+AGRsw60DG14HQ/iqaxoms/xJGddvI2EdN7MC0jbPkEU/psoJ0Wk/fGQDm3DQqQdJtKjoJctHI/ciHehE1aYAFF68xhrHkEU/WQpi1HKBLogaJR1S4z4vzD1AUXYi01NEklUD2CTV4SI3dnEnQfSCA6da9EGLNNTks+GjcNwQRmCAlB+j05wS95mJx8imvMUZmfYi11OQET4PWLnYdJ/ADkBsBUl66aS8y/lsI1ikRrFVSnpqkPXIeP0dklnk8Zq2d/YiNbxu1g5KtlUD6Tflx2t8DBRLGuQqjJKphgvYgJFsbmId5/zwFxctDqr5I+zGCYiR6PIiWYq5CfBiJgW5ET+zDqyM77jHPssdkVW2pllwXCE4j+c6NgL4Sn0zbMdmgwaRZg4+N2qzXWH13c8X6KsI3rXjKE22GG8ViBFL/FYSMauxWbNhJaWWZtpaMq1eYw0171obNuxA6qsGQQfWsZFgj/MNaVXaSQvif6zcxVDmUf47DnQAAAABJRU5ErkJggg==)}.zform-button-infoblocks,.zform-button-information{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACl0lEQVR42q2T7U9SURzH/VvgT+je3rQ2fdFcmw2StBeZNUwTtZWuwmywSjERnwAFbAiGmg+UT1CSIiRwJSPkITT15sAM2trqDWQty29H2jA35yvP9nl3v5/f+Z57TlbWUa983Qr3jCYiyVOF2VMt/mSOwpfMViyw2Qqv5ORDhntomKddFpxWhhIVvUH0OmMYZTbTGO1RCLWvQUtmE7TULjgwTKYKclsDqZbJVdj8CfRMxyAzv8eD4WUoLaswuzbQOBoBXTmRoq9P7JfkqcOc3LbF+G7Y8iYBCQndGQhhyPMRQ+4N3DYFIe4PwTS7DtnTIOgyc5wuHeZkBLnKRWm53g+r7zPqBiIQkwo3DQF8/7mdptrgQ3WPD+LHfgy8iuJC80tQRf3SjCCnzcca7TGoLSxu9QZQY/CjWu9Dn3MdJkJlN/MPnYfUCkE7vQK60MBmBCdkzNb4wifU9QXJpLeoeuQlHzPYXTsEkcaN8s45ggvXdG6YmSgoQddWRkBLnVtj3s10191JFVoPCXkQiX1D6sc2yjqcKG134ApBpHJgZJ4I+Kr/BXZWb2chf7aEKp0Xoi43rqrn8C76lQh+oUQxgxLSW9hsQ20PA7UtDPpsx14FutYmLVY6MeSKoUrDQKR0webbwO8/O+kKwQ9fUCyzEizofh5B4d1RImjfO0T6xhiHFpnj90cCMNnXUKZ0QNgyjUvyKRQ3WHCxfgJF9eNoHfGT3ztPti+P03w5Z99doISDgmMFxpRk0AfjzArEejfZ8gtcbrSiRuOA1hKCuI8BzWtIkfDBt5EqNAqogu7E+XuTUE8t4YmbJayhwxpGfp0ZFK8xQfObBIe+B/qclksJOiVUvoql+M1JiteUJBNZguQ4v4F75K/3L7zz0NlKPuwgAAAAAElFTkSuQmCC)}.zform-button-secret{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACfUlEQVR42m1Sz2sTQRh9u9nml02M2hoapaZNtaIg4q0eBMEeRPGg3jyJhyK00EvpsZBr/wqhAfHQs3fBglRa0EYTm5YYFEqKSRvTJDs7s77ZbdpYHfiYmW++7817b8bAiZHL5fqVUnNSygnGWQYYvxgrjuMszs7O/u6tN3o3S0tLN9m8nEqlRuLxOEzTBPdot9uoVqvY5iDQ4/n5+fV/ANjcz8O1TCYzZts2KpUKms2mvh2WZSGZTHp1+Xx+k7kbCwsLLb03uwBMvhwaGhoTQqBYLG41Go0010Edel0oFH5qYLIbo5Tpbp/VXTA5EY1GUSqVwKaHMzMz5R515Ww2e69cLufT6bRX+z+AQa2Zt+n19klzdU6z0zVkO/iXB+V3z92V0jh29iKe5kfXVxFwBVzpwHX8EELi1fotz9RkuIYHF1ZxdWrN8Bm4Lp4+uUs0E0Ygwvk+oIhthfUhDRKQTgPZySbzwmvZfP3+WIK+SRc6u29ghQZgGP0s7AMiCaYVcLAHuf8NdusHlHOAyMg0XLvTA0CKUPomG/WNj9R5Colrt1F5u8j+8xi+M4n61w0C1BBLnyFhCVfYvQDCk+GSamL8CszgAN1RkB2JT7sRDMNGIjOCdjPE2gOPVRfA+wcu3dWoWmvt8zpZfOCJA9VW6LRI1SWzwhfUi999uUp5PccM9EajUkLichqB6DkC2Bh9NoVRwYb9HZzOpBDc7/MZUO4JANtDVY72YIMAMSBMI60g8xqgjlatCtFsIDYcp93Kl90LoCWELr5A5FIARjDkP6HJl1CUZrcQazWosEOi0vdLG38EwCfZWp7zvfA+jjgM52jmD/M/lpT+WgNx/AHLKabZiPgg0gAAAABJRU5ErkJggg==)}.zform-button-blockcode,.zform-button-monospace{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABD0lEQVR42mNgGAVYgWHPQ36yNRt0PuD3nPf0WMSq5x9gYnGbX3/wXvz8GEgOr2b9tntCHrOfHiva9vq//9yn92DiIate3ivb/eY/SE679o4QVs16Lfciole//F649dV/v1lP76kX3JBGkpMOWPTsHkguYunz70C5CBTNug132cKXP/9YueMNUMGz36o514zRLdAsv2UMkivd9PJ/4MzHHxWSrrChKFAvvhkROv/p96xVL/579D24Jx93SRpJTtp76qN7ILmgmY++A+UisHpDMeWKkG3DnWOpi5/+d225Cw8Dr0mP7mWseP4fJCcXfVEIb0DKRFzgtyy/ecy78x48FvynPPxgU3vnGEhuNJFjAgDXGIoQBpiXVgAAAABJRU5ErkJggg==)}.zform-button-title1,.zform-button-titles{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAApklEQVQoz73QsQ2EMAwFUEsUNDRUVJeKLh1VdE2qSIiGAikZxBNkAja4Cf4iLOI1uCjkdKkokSvrP9lO6KT7okeAjx4eWzhpCQ4WJp6k53GvJnjZcLUplhS/RyipwCZrAQZTDhQPNVhlORxbNjwdOgcD9zVYxJUJGmMOeu5q4MQW8NvdcVsDK6YAhWt3y80f2JhOg07PVGFAjy62ofkQaKfXU199X1/TU/Qkt2QxeAAAAABJRU5ErkJggg==)}.zform-button-title2{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAwklEQVQoz73QsQ2DMBAF0JMoaBARiiIqXER07lxZNK4sIRoKJHuCTMAETJANmOBvkAnYIBPcGsQCh5ISXfmfvs9HK50PXQLc5OAw+JU6b2GgJyXlXEO0R4PjAbs3UKwqudST+Dy4qCIYuI9A48nS1yEomxtnTQQ9d4sdzahHtUjeaYHsm+YRdGxjg0S9geKdIZXHDpZNBGE13uLXSklO/x0M6wgE7lw0oRwJaKF2A2bSUJDhm8KXCG/PWwyarzv1+fwAYArrjnYCa/AAAAAASUVORK5CYII=)}.zform-button-title3{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAxElEQVQoz73QsanDMBSF4cPzAxdx4KkSBKxKnTpXIo0qg3GTwmBPkAk0gSbIBpngbuAJsshZ46Z4wmXK8LcfpzhQfA5fAWtZZZVlU8zbKEliGUJ4enHTsbBykX+fJFIRdl/cbnmAhbcKogxU+F5h72Y/wI3za8wpxzy8AhWut3Jmlw8wc6wLQTwVCtN3e8tmqmBkqsDLhTaYu6Ltf4lcQWKswMkfTT6xvTbhh7gqoEglyiBhU7jNipHu0ZbmiQem7139uTdX8exNUqtqywAAAABJRU5ErkJggg==)}.zform-button-title4{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAt0lEQVQoz73QsQ2DMBAFUEsUNAiJiipXRNfRUSE3rty4oYhkBmGCmyAbZILbgAnYgAluDXIBJ6SiRNdY+k/fPpvVnI+5BESKrDOsph8Ce3b0CZob0q8hSuTdayxbXOIE/AceCTjuNoAvmOsDPKSfw+hHN3ZzqwCfYGuuDtBLSA0t3wUtLBovxZJTAkF8Ao0CKGtb2WLKp6xJwItLABlkP+Wcfa/wpE/jVtfEAVjLt/UyMnTdV5/PG1Cu8REDzPeUAAAAAElFTkSuQmCC)}.zform-button-table{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAByElEQVR42q2TzytEURTHv/Pe85sFGVPIRpHflKYRC8rCilCKspKlvZVY8H/IQhQldiyEyUSKUhKxUH7MTH7LNO/+cO6b8d4bWRCn3jvv3nfO53zvufcCfzSPes1tPUxIiVEuRakQAlwATHmuviUYeefh4EzSvNifGa7wGwogpBzr9+cV/qby5MJ5vfIWgGhW8srFLFVmVIXBJG9y0/E09/lvvGUapskzXABpUYeqR35U/S1GUMbhANSiyeZ3wj8CdDcXIO4GsCRA2WBbERaDdxho9dlzS6E79AeccfQ5lqrAJAA1EoZOwbth6LqG5VAYHg3Qkkkre6SOYtIoo6okG3HzyxJUFwzdg16/l4Ij6PEXpShwj8+vn8GYSFUgaWxQubWDCClIeCtAcyAGnRqVVl2cSQXdAKJJJY8Su5q82DiKorPBORbrhxEEKvORl2WF4/TqCTkZhquJIkHTNY+VrOzT0xSdBWD75MEGlnvT7Z1LABhL9IDkdtQVYvM4ivZaR8FyKIK+gNceKwV6cmlOD2gJtWW5uLl/R7kvC5e3r/ZdqClJt5LcJoQUrl2Qwan5s8Y4Fzlqf9XDqS+mdXnYt4fp8SW2iv+wD9RSCSl9jwFVAAAAAElFTkSuQmCC)}.zform-button-math{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAs0lEQVQoz2P4z4AfMhCpoNGh8X/d/+oz5UeLz+T/yPqfchTDhLrz+/6XnSnqye3JmJzcEzsfQ0GlQff/Cf9zHCC8sP1Y3FBQP/9/2v0EATyOTDk/+39kAR4FsQkR74Nm4VQQIxB2P/A2nnAIXe9/xrMHwjb5j6EgOMHvvMdpEMsC6Ez992gKggx83ru/cay3qTfvN7qv918L3ZveCa77HfZb7Tfdb7hfd7/mfrV+UuOCAgUAOHoB5MLjQikAAAAASUVORK5CYII=)}.zform-button-footnote{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABlUlEQVR42qWTx05CURCGeQCfwBIX+gY+i23v3qCIEevCaMB7uY0LF9SoxF5iiSshlmCjG2kixRghajQRrjuJ+T3XFRukOMkkM2dyvjP/nIxKVWSL9uWC6j82v7AE+/IqZucXGmoCSLY55PIy1je3YbHOdVUNEMwSvgoFyJ+f2NrZhVmyrVUF4AQzZFnGbShMIDIczmMIoiVTMYDhRby9vePiyg1fIIjnl1dcu71geRNEi7X8XBhOQCabhc8f+PVA8Abph0eEozEFQLqR/p4LzXBIpdMIEQmKjFA4gmgsRs4ecBdPYNG+At5k2S0JoIwcuRDHfSIJt8eDRDIFhhNhoBjQjECkiAoAJQEGmkU4EsPpmQtGRc5T9neQfRqtRMptRV4CQF5ye/2gWeF7QDu04Tq/xBOBUEY2X9EvzNAMTGYr2js6e0jaxJNvzX3kcORwYlpPdZcFGCgWupHxPRLWKXmvut/q8fiQz+UxOaVHJU0o+pqL8npelLB/cAjd6MRJTfuh1gyu6IbHXCRsqXVJG4m3lir+AKcgCFAzJG3uAAAAAElFTkSuQmCC)}div.zform-popup{top:18px;z-index:100;background:#fff;background-image:-webkit-linear-gradient(center bottom,#EBEBE5 8%,#F9F9F6 75%);background-image:linear-gradient(center bottom,#EBEBE5 8%,#F9F9F6 75%);border:1px solid #CCC;border-radius:3px;padding:2px}.zform-code-col{display:inline-block;vertical-align:top;margin:2px;min-width:75pt}.zform-code-col>span{display:block;color:#2677C9;cursor:pointer}#zform-modal-overlay,#zform-modal-wrapper{position:fixed;width:100%;height:100%;display:none;top:0;left:0}.zform-code-col>span[data-zform-selected=true]{color:#00f;font-weight:700}.zform-code-col>span:focus,.zform-code-col>span:hover{color:#C87B02}#zform-modal-overlay{background:#000;opacity:.5;filter:alpha(opacity=50);z-index:99}#zform-modal-wrapper{margin-top:10%;text-align:center;z-index:100}#zform-modal-wrapper>div{position:relative;display:inline-block;text-align:left;background:#f4f6f6;border:1px solid #555;border-radius:2px;box-shadow:0 2px 26px rgba(0,0,0,.3),0 0 0 1px rgba(0,0,0,.1);min-height:220px;min-width:25pc}#zform-modal-wrapper>div>header{color:#fff;padding-left:6px;padding-right:6px;white-space:nowrap;border-bottom:3px solid #f8ad32;line-height:53px;height:50px;text-indent:15px;margin-bottom:20px;background:#084561;font-size:1.6rem;font-size:1pc;text-shadow:rgba(0,0,0,.75) 0 0 3px}#zform-modal-wrapper section{display:block;margin:8px;min-width:200px;min-height:50px}.search-box,.search-box form{min-height:60px}#zform-modal-wrapper section div input{min-width:260px;margin:7px 15px}#zform-modal-wrapper .btn,#zform-modal-wrapper [type=submit]{position:absolute;width:50%;height:50px;line-height:50px;bottom:0;right:0;margin:0!important;padding:0!important;text-align:center;background:0 0!important;border-top:1px solid #CCC;color:#333;cursor:pointer}#zform-modal-wrapper .btn:focus,#zform-modal-wrapper .btn:hover,#zform-modal-wrapper [type=submit]:focus,#zform-modal-wrapper [type=submit]:hover{background:#DDD!important}#zform-modal-wrapper .btn-submit,#zform-modal-wrapper [type=submit]{color:#084561;font-weight:700}#zform-modal-wrapper .btn-cancel{right:auto;left:0;border-right:1px solid #CCC;color:#555}.zform-modal label{display:inline-block;width:70px;text-align:left}.featured-resource-item{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;margin-right:1px;position:relative;overflow:hidden;max-width:228px;min-width:170px;z-index:0;background-color:#084561}.featured-resource-item::before{content:"";display:block;padding-top:100%}.featured-resource-item .featured-resource-illu{position:absolute;z-index:1;top:0;left:0;height:100%;width:auto;-webkit-transition:.15s ease;transition:.15s ease;-webkit-transition-property:-webkit-filter,opacity,-webkit-transform,filter,opacity,-webkit-transform;transition-property:filter,opacity,transform}.featured-resource-item .featured-resource-meta{position:absolute;z-index:3;color:#fff;bottom:0;right:0;left:0;padding:40px 14px 9pt;text-shadow:1px 1px 0 rgba(0,0,0,.6);background-image:-webkit-linear-gradient(top,transparent 0,rgba(0,0,0,.2) 30px,rgba(0,0,0,.4));background-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.2) 30px,rgba(0,0,0,.4))}.featured-resource-item .featured-resource-meta h3{font-size:1pc;line-height:20px;font-weight:400;margin:0;display:table-cell;vertical-align:middle;height:0;-webkit-transition:height .15s ease;transition:height .15s ease}.featured-resource-item .featured-resource-meta p{font-size:9pt;margin:0;line-height:22px}.featured-resource-item a:focus .featured-resource-illu,.featured-resource-item a:hover .featured-resource-illu{opacity:.4;-webkit-filter:blur(5px);filter:blur(5px);-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}.featured-resource-item a:focus .featured-resource-meta h3,.featured-resource-item a:hover .featured-resource-meta h3{height:190px;font-size:20px}.featured-resource-item>a{display:block}.featured-resource-edit-form,.topic-message .message .message-bottom{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;-webkit-box-align:start}.featured-resource-edit-form{display:flex;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.featured-resource-edit-form .featured-resource-item{margin-right:20px;-webkit-flex-basis:228px;-ms-flex-preferred-size:228px;flex-basis:228px}.featured-resource-edit-form form{width:auto;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.search-box{width:100%;background:#EEE;box-shadow:rgba(0,0,0,.25) 0 0 3px}.search-box form label{display:block;line-height:40px;font-size:1pc;font-size:1.6rem;color:#333;text-align:center;width:100%}.search-box form button,.search-box form input{border:1px solid #F8AD32;background:#FFF;margin:5px 0 9pt}.search-box form input{height:34px;padding:0 15px;border-right:none;width:85%;width:calc(100% - 71px)}.search-box form button{height:36px;text-indent:-9999px;border-left:none;width:40px;-webkit-transition:background .15s;transition:background .15s;position:absolute;bottom:0;right:15px}.search-box form button:hover{background:#EEE}.search-box form button:after{top:9px;left:9pt;background-position:0 -3506px}@media only screen and (min-width:960px){.search-box form label{line-height:60px;width:300px;float:left}.search-box form button,.search-box form input{margin:9pt 0;float:left}.search-box form input{width:calc(100% - 371px)}}.markdown-help{min-height:50px;overflow:hidden}.markdown-help .open-markdown-help{float:none!important;display:inline-block!important;margin-bottom:20px}.markdown-help .open-markdown-help .close-markdown-help-text{display:none}.topic-message .markdown-help{min-height:0}.topic-message .markdown-help .open-markdown-help{position:absolute;bottom:0;left:8px;margin-bottom:0}.markdown-help .markdown-help-more{display:none;background:#EEE;padding:15px;margin-bottom:5px;border-bottom:1px solid #CCC}.markdown-help .markdown-help-more pre{margin:0}.markdown-help .markdown-help-more.show-markdown-help{display:block}.markdown-help .show-markdown-help+.open-markdown-help{margin-top:-5px;padding-top:5px;line-height:35px}.markdown-help .show-markdown-help+.open-markdown-help:after{margin-top:15px!important}.markdown-help .show-markdown-help+.open-markdown-help .close-markdown-help-text{display:inline}.markdown-help .show-markdown-help+.open-markdown-help .open-markdown-help-text,.mobile-menu,.mobile-menu-btn{display:none}@media only screen and (max-width:759px){.featured-resource-edit-form{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:unset;-webkit-align-items:unset;-ms-flex-align:unset;align-items:unset}.markdown-help .open-markdown-help{position:relative;left:0;bottom:0;float:none;margin-left:0!important}.topic-message .markdown-help .markdown-help-more{margin-bottom:0}.topic-message .markdown-help .open-markdown-help{position:relative;width:100%;margin-left:-10px!important;padding-left:40px}.topic-message .markdown-help .open-markdown-help:after{margin-left:15px}.topic-message .markdown-help .show-markdown-help+.open-markdown-help{margin-top:0}}@media only screen and (max-width:959px){.js .page-container{position:absolute;z-index:10;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.js .mobile-menu{display:block;position:absolute;position:fixed;overflow-x:hidden;overflow-y:auto;z-index:1;-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);width:90%;height:100%;padding-bottom:20px;background:#222;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .mobile-menu .mobile-menu-bloc:not(.mobile-show-ico) .ico-after:after,.js .mobile-menu .search button{display:none}.js .mobile-menu .search{height:50px;position:relative;top:0;left:0;width:100%}.js .mobile-menu .search input{color:#EEE;background-color:#333;width:76%;height:30px;padding:10px 5%;font-size:1pc;font-size:1.6rem}.js .mobile-menu .search input:focus,.js .mobile-menu .search input:hover{padding-bottom:7px;border-bottom:3px solid #084561;background-color:#333}.js .mobile-menu .search .search-more{background-color:#3F3F3F;width:14%;height:50px;line-height:50px;color:#CCC}.js .mobile-menu .mobile-menu-bloc,.js .mobile-menu .mobile-menu-link{width:90%;line-height:40px;text-indent:0}.js .mobile-menu .mobile-menu-bloc{margin:0 5% 15px}.js .mobile-menu .mobile-menu-bloc:nth-child(2){margin-top:15px}.js .mobile-menu .mobile-menu-bloc li,.js .mobile-menu .mobile-menu-bloc ul{margin:0;padding:0}.js .mobile-menu .mobile-menu-bloc .mobile-menu-link{margin:0;width:100%}.js .mobile-menu .mobile-menu-bloc .mobile-menu-link.disabled{opacity:.5}.js .mobile-menu .mobile-menu-bloc[data-title]:before{display:block;content:attr(data-title);height:30px;font-size:14px;font-size:1.4rem;text-transform:uppercase;padding-bottom:3px;border-bottom:2px solid #3F3F3F;font-weight:700;color:#666}.js .mobile-menu .mobile-menu-bloc.mobile-show-ico .ico-after{padding-left:30px;width:calc(100% - 30px)}.js .mobile-menu .mobile-menu-bloc.mobile-show-ico .ico-after:after{top:9pt;left:2px}.js .mobile-menu .mobile-menu-bloc.mobile-show-ico .icon{display:inline-block;width:1pc;height:1pc;margin:7px;line-height:30px;padding-left:5px}.js .mobile-menu .mobile-menu-bloc.mobile-show-ico .icon:after{top:0;left:0}.js .mobile-menu .mobile-menu-link{display:block;height:40px;line-height:40px;text-decoration:none;color:#CCC;font-size:1pc;font-size:1.6rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;background:0 0;border:none;text-align:left;padding:0}.js .mobile-menu .mobile-menu-link.mobile-menu-sublink{width:90%;margin:0 0 0 10%}.js .mobile-menu .mobile-menu-link.mobile-menu-bloc[data-title]{height:5pc}.js .mobile-menu .mobile-menu-link.mobile-menu-bloc:not([data-title]){margin-bottom:0}.js .mobile-menu .mobile-menu-link:not(:last-child):not(.mobile-menu-bloc){border-bottom:1px solid #2C2C2C}.js .mobile-menu .mobile-menu-link[data-prefix]:before{content:"[" attr(data-prefix) "] "}.js .mobile-menu .mobile-menu-link.unread{font-weight:700;color:#EEE}.js .mobile-menu .mobile-menu-link img,.js .mobile-menu .mobile-menu-link span{vertical-align:middle}.js .mobile-menu .mobile-menu-link img{float:left;margin:5px 5px 5px 0;width:30px;height:30px}.js .mobile-menu .mobile-menu-link .label{padding:0 0 0 50px}.js .mobile-menu .mobile-menu-link img+.label{padding:0 0 0 10px}.js.show-mobile-menu{width:100%}.js.show-mobile-menu body{position:fixed}.js.show-mobile-menu .page-container{height:100%;-webkit-transform:translate3d(90%,0,0);transform:translate3d(90%,0,0);overflow:hidden;box-shadow:0 0 7px rgba(0,0,0,.25)}.js.show-mobile-menu .mobile-menu{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.js.enable-mobile-menu .mobile-menu-hide,.js.enable-mobile-menu .page-container .mobile-menu-bloc,.js.enable-mobile-menu .page-container .mobile-menu-link,.js.enable-mobile-menu .page-container .search{display:none}.js.enable-mobile-menu .page-container .mobile-menu-btn+.header-logo{margin-left:0}.js.enable-mobile-menu .page-container .mobile-menu-btn{display:block;float:left;height:50px;width:50px}.js.enable-mobile-menu .page-container .mobile-menu-btn:after{display:block;content:" ";position:absolute;top:15px;left:13px;height:22px;width:22px;background-image:url(../images/sprite.png);background-repeat:no-repeat;background-position:0 -2746px}html:not(.enable-mobile-menu) .header-container{border-bottom:1px solid #CCC}html:not(.enable-mobile-menu) .page-container .header-logo{margin-left:10px}html:not(.enable-mobile-menu) .page-container .header-logo-link:after{left:55px;right:205px}html:not(.enable-mobile-menu) .logbox .my-account,html:not(.enable-mobile-menu) .logbox .notifs-links .ico-link{position:absolute;top:0;right:0;height:50px;width:50px}html:not(.enable-mobile-menu) .logbox .my-account .avatar,html:not(.enable-mobile-menu) .logbox .notifs-links .ico-link .avatar{height:50px;width:50px}html:not(.enable-mobile-menu) .logbox .notifs-links :nth-child(1) .ico-link{right:150px}html:not(.enable-mobile-menu) .logbox .notifs-links :nth-child(2) .ico-link{right:75pt}html:not(.enable-mobile-menu) .logbox .notifs-links .ico-link:nth-child(3),html:not(.enable-mobile-menu) .logbox .notifs-links :nth-child(3) .ico-link{right:50px}html:not(.enable-mobile-menu) .logbox.unlogged{position:absolute;top:0;right:0}}.modal{display:none}#modals .modal{position:fixed;z-index:50;width:auto!important;top:0;right:0;bottom:0;left:0;background:#EEE;min-height:220px}#modals .modal .modal-title{display:block;border-bottom:3px solid #F8AD32;line-height:53px;height:50px;text-indent:15px;margin-bottom:20px;background:#084561;color:#FFF;font-size:1pc;font-size:1.6rem;text-shadow:rgba(0,0,0,.75) 0 0 3px}#modals .modal .modal-title.ico-after{text-indent:40px}#modals .modal .modal-title.ico-after:after{margin:18px 0 0 15px}#modals .modal input,#modals .modal p,#modals .modal select,#modals .modal textarea{margin:10px 15px;resize:none}#modals .modal input:not([type=checkbox]):not([type=radio]),#modals .modal p:not([type=checkbox]):not([type=radio]),#modals .modal select:not([type=checkbox]):not([type=radio]),#modals .modal textarea:not([type=checkbox]):not([type=radio]){width:calc(98% - 2pc)!important}#modals .modal label{margin:0 15px}#modals .modal textarea{margin-top:0}#modals .modal .btn:not(.modal-inner),#modals .modal [type=submit]:not(.modal-inner){position:absolute;width:50%;height:50px;line-height:50px;bottom:0;right:0;margin:0!important;padding:0!important;text-align:center;background:0 0!important;border-top:1px solid #CCC;color:#333}#modals .modal .btn-submit:not(.modal-inner),#modals .modal [type=submit]:not(.modal-inner){height:51px;color:#084561;font-weight:700}#modals .modal .btn-cancel{right:auto;left:0;border-right:1px solid #CCC;color:#555}#modals .modal .btn.btn-modal-fullwidth{width:100%;border-right:none;font-weight:700}.enable-mobile-menu #modals .modal{top:25px;right:25px;bottom:25px;left:25px;box-shadow:0 0 5px #000}.enable-mobile-menu #modals .modal.modal-big,.enable-mobile-menu #modals .modal.modal-medium,.enable-mobile-menu #modals .modal.modal-small{top:50%;bottom:auto;max-width:25pc}.enable-mobile-menu #modals .modal.modal-small{height:220px;margin:-110px auto 0}.enable-mobile-menu #modals .modal.modal-medium{height:250px;margin:-125px auto 0}.enable-mobile-menu #modals .modal.modal-medium textarea{height:5pc}.enable-mobile-menu #modals .modal.modal-big{height:20pc;margin:-10pc auto 0}.enable-mobile-menu #modals-overlay{position:fixed;display:none;z-index:49;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.7)}@media only screen and (min-width:960px){.enable-mobile-menu #modals .modal{box-shadow:0 2px 7px rgba(0,0,0,.7)}.enable-mobile-menu #modals .modal .modal-title{line-height:50px}.enable-mobile-menu #modals .modal .btn-submit:not(.disabled):focus,.enable-mobile-menu #modals .modal .btn-submit:not(.disabled):hover,.enable-mobile-menu #modals .modal [type=submit]:not(.disabled):focus,.enable-mobile-menu #modals .modal [type=submit]:not(.disabled):hover{color:#EEE;background:#48a200!important}.enable-mobile-menu #modals .modal .btn-cancel:focus,.enable-mobile-menu #modals .modal .btn-cancel:hover{color:#EEE;background:#c0392b!important}}.pagination{list-style:none;margin:0;padding:0;border-top:1px solid #d2d5d6;border-bottom:1px solid #d2d5d6;background:#FBFBFB;height:40px;margin-bottom:20px!important}.pagination li{float:left}.pagination li.next,.taglist li{float:right}.pagination li a{display:block;text-align:center;text-decoration:none;color:#084561;min-width:45px;height:40px;line-height:40px;transition:all .15s ease}.pagination li a.current{height:38px;color:grey;background:#F7F7F7;margin-top:-1px;border-left:1px solid #d2d5d6;border-bottom:3px solid #d2d5d6;border-right:2px solid #d2d5d6}.pagination li a.ico-after:after{margin-top:9pt}.pagination li a[href]:focus,.pagination li a[href]:hover{background:#d2d5d6}.pagination li.next a,.pagination li.prev a{padding:0 15px}.pagination li.prev .ico-after{padding-left:30px}.pagination li.prev .ico-after:after{margin-left:8px}.pagination li.next .ico-after{padding-right:30px}.pagination li.next .ico-after:after{right:8px;left:auto}.pagination.pagination-top li a.current{margin-top:0;border-top:3px solid #d2d5d6;border-bottom:none;height:35px;line-height:35px;padding-bottom:3px}.pagination.pagination-chapter{margin-left:0}.pagination.pagination-chapter li{max-width:45%}.pagination.pagination-chapter a{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media only screen and (min-width:960px){.pagination{border:1px solid #d2d5d6}}@media only screen and (max-width:759px){.pagination li.next a,.pagination li.prev a{min-width:0}.pagination li.next a span,.pagination li.prev a span{display:none}}.codehilite .hll{background-color:#ffc}.codehilite{background:#f8f8f8}.codehilite .c{color:#408080;font-style:italic}.codehilite .k{color:green;font-weight:700}.codehilite .o{color:#666}.codehilite .cm{color:#408080;font-style:italic}.codehilite .cp{color:#BC7A00}.codehilite .c1,.codehilite .cs{color:#408080;font-style:italic}.codehilite .gd{color:#A00000}.codehilite .ge{font-style:italic}.codehilite .gr{color:red}.codehilite .gh{color:navy;font-weight:700}.codehilite .gi{color:#00A000}.codehilite .go{color:grey}.codehilite .gp{color:navy;font-weight:700}.codehilite .gs{font-weight:700}.codehilite .gu{color:purple;font-weight:700}.codehilite .gt{color:#0040D0}.codehilite .kc,.codehilite .kd,.codehilite .kn{color:green;font-weight:700}.codehilite .kp{color:green}.codehilite .kr{color:green;font-weight:700}.codehilite .kt{color:#B00040}.codehilite .m{color:#666}.codehilite .s{color:#BA2121}.codehilite .na{color:#7D9029}.codehilite .nb{color:green}.codehilite .nc{color:#00F;font-weight:700}.codehilite .no{color:#800}.codehilite .nd{color:#A2F}.codehilite .ni{color:#999;font-weight:700}.codehilite .ne{color:#D2413A;font-weight:700}.codehilite .nf{color:#00F}.codehilite .nl{color:#A0A000}.codehilite .nn{color:#00F;font-weight:700}.codehilite .nt{color:green;font-weight:700}.codehilite .nv{color:#19177C}.codehilite .ow{color:#A2F;font-weight:700}.codehilite .w{color:#bbb}.codehilite .mf,.codehilite .mh,.codehilite .mi,.codehilite .mo{color:#666}.codehilite .s2,.codehilite .sb,.codehilite .sc{color:#BA2121}.codehilite .sd{color:#BA2121;font-style:italic}.codehilite .se{color:#B62;font-weight:700}.codehilite .sh{color:#BA2121}.codehilite .si{color:#B68;font-weight:700}.codehilite .sx{color:green}.codehilite .sr{color:#B68}.codehilite .s1{color:#BA2121}.codehilite .ss{color:#19177C}.codehilite .bp{color:green}.codehilite .vc,.codehilite .vg,.codehilite .vi{color:#19177C}.codehilite .il{color:#666}.codehilitetable{width:100%!important;table-layout:fixed;border-color:rgba(0,0,0,.15)}.codehilitetable td{padding:0;vertical-align:top}.codehilitetable .linenos{background-color:#fbfbfc;border-right:1px solid #ececf0;width:46px}.codehilitetable .codehilite pre,.codehilitetable .linenos{padding-top:15px;padding-bottom:15px}.codehilitetable .linenodiv pre{text-align:right;padding-right:7px;color:#bebec5}.codehilitetable .codehilite{width:100%;height:auto;overflow:auto}.codehilitetable .codehilite pre{white-space:pre;overflow:auto}.codehilitetable .code pre{overflow:auto;word-wrap:normal;padding-left:7px;padding-right:7px}.taglist{list-style:none;padding:0;margin:-14px 0 15px;height:30px;line-height:30px}.taglist li a{display:block;text-decoration:none;padding:0 10px;background:#396a81;color:#FFF;margin-left:1px;transition:all .15s ease}.taglist li a:focus,.taglist li a:hover{background:#FFF;color:#396a81;border-bottom:1px solid #396a81}.topic-list{margin-top:50px!important;margin-bottom:50px!important}.topic-list h2{margin-bottom:0!important}.topic-list h2+.topic{border-top:none}.topic-list .topic{position:relative;min-height:81px;line-height:25px;border-top:1px solid #FFF;border-bottom:1px solid #CCC;overflow:hidden;border-left:1px solid transparent;clear:both}.topic-list .topic:first-child{border-top:1px solid #CCC}.topic-list .topic:before{content:" ";display:block;position:absolute;background:0 0;height:100%;width:2px}.topic-list .topic.unread:before{background:#1088bf}.topic-list .topic:nth-child(2n){background:0 0}.topic-list .topic.unread{background:#FFF}.topic-list .topic.unread .topic-description .topic-title{font-weight:700}.topic-list .topic.active:before,.topic-list .topic:hover:before{width:5px;background:#1088bf}.topic-list .topic.selected{background-color:#eaf7fd}.topic-list a{text-decoration:none;color:#0e77a8}.topic-list a:focus,.topic-list a:hover{color:#0e77a8;text-decoration:underline;outline:0}.topic-list .topic-answers,.topic-list .topic-description,.topic-list .topic-infos,.topic-list .topic-last-answer{display:block;float:left;padding:4px 0;margin:0}.topic-list .topic-infos{width:5%}.topic-list .topic-infos input[type=checkbox]{margin:29px 25% 0}.topic-list .topic-infos .ico-after{display:block;text-indent:-9999px}.topic-list .topic-infos .ico-after:after{margin:4px 0 0 15px}.topic-list .topic-description{position:relative;width:60%}.topic-list .topic-description .topic-image{float:left;max-height:60px;max-width:60px;margin:5px 15px 0 0}.topic-list .topic-description .topic-tags{list-style:none;padding:0;margin:0;display:inline}.topic-list .topic-description .topic-tags .topic-tag{display:block;height:23px;line-height:23px;float:left;padding:0 5px;margin:0 3px 0 0;color:#396a81;background:#FCFCFC;border:1px solid #CCC}.topic-list .topic-description .topic-tags .topic-tag:focus,.topic-list .topic-description .topic-tags .topic-tag:hover{background:#FFF;color:#084561;border-color:#084561;text-decoration:none}.topic-list .topic-description .topic-tags .topic-tag:focus{box-shadow:#396a81 0 0 3px}.topic-list .topic-description .topic-tags li:last-child .topic-tag{margin-right:5px}.topic-list .topic-description .topic-title-link{display:block;min-height:3pc}.topic-list .topic-description .topic-title-link:focus,.topic-list .topic-description .topic-title-link:hover{text-decoration:none}.topic-list .topic-description .topic-title-link:focus .topic-title,.topic-list .topic-description .topic-title-link:hover .topic-title{text-decoration:underline}.topic-list .topic-description .topic-subtitle,.topic-list .topic-description .topic-title{display:block;margin:0!important;padding:0}.topic-list .topic-description .topic-title{font-size:1pc;font-size:1.6rem;font-weight:400}.topic-list .topic-description .topic-subtitle{min-height:24px;line-height:1.5em;color:#777}.topic-list .topic-description .topic-members{margin:0;color:#777}.topic-list .topic-answers{width:12%;text-align:center;padding-top:29px}.topic-list .topic-last-answer{width:23%}.topic-list .topic-last-answer .topic-no-last-answer{display:block;margin-top:27px;color:#084561;opacity:.5}.topic-list .highlighted{background-color:rgba(255,255,100,.5)}.forum-list .group-title{max-width:100%;margin-top:30px!important;clear:both;border-bottom:1px solid #CCC;color:#F8AD32}.topic-list-small .topic{height:60px}.topic-list-small .topic-infos input[type=checkbox]{margin-top:18px}.topic-list-small .topic-description{padding-left:1.5%}.topic-list-small .topic-description .topic-title{font-weight:400;margin-top:2px}.topic-list-small .topic-infos+.topic-description{padding-left:0}.topic-list-small .topic-answers{padding-top:17px}.topic-list-small .topic-answers span{display:block;float:left;width:50%}.topic-list-small .topic-last-answer{width:18%}.topic-list-small .topic-last-answer .topic-no-last-answer{margin-top:13px}.topic-list-small .topic-last-answer .forum-last-message{display:block}.topic-list-small .topic-last-answer .forum-last-message .forum-last-message-long{display:none}.topic-list-small .topic-last-answer .forum-last-message-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media only screen and (min-width:960px){.forum-list .topic-last-answer .forum-last-message .forum-last-message-long,.topic-list .topic-last-answer-short-date,.topic-list .topic-members-short-date{display:none}.topic-list:not(.topic-list-small) .topic-last-answer .topic-no-last-answer{margin-top:24px}.forum-list .topic{min-height:0}}@media only screen and (max-width:959px){.topic-list .topic .topic-answers.topic-no-answer,.topic-list .topic .topic-last-answer .topic-last-answer-long-date,.topic-list .topic .topic-members .topic-members-long-date{display:none}.topic-list .topic{background:0 0!important}.topic-list .topic p{margin:0!important}.topic-list .topic .topic-answers{padding:0;width:30%;border-bottom:1px solid #CCC}.topic-list .topic .topic-last-answer{width:30%;padding:0;text-align:right}.topic-list .topic .topic-last-answer .topic-last-answer-short-date{font-size:1.3rem}.topic-list .topic .topic-last-answer .topic-no-last-answer{text-align:center}}@media only screen and (max-width:759px){.topic-list .topic-infos .ico-after:after{margin:4px 0 0 2px}.topic-list .topic-description .topic-subtitle:empty{display:none}.topic-list .topic-last-answer .topic-no-last-answer{font-size:1.3rem}.forum-list .topic-description .topic-subtitle{margin-left:10px}}.topic-message{position:relative}.topic-message.repeated .message,.topic-message.repeated .message .is-author{background:#EEE}.topic-message.repeated .message:after{border-right-color:#EEE}.topic-message.helpful .message,.topic-message.helpful .message .is-author{background:#e9f9dc}.topic-message.helpful .message:after{border-right-color:#e9f9dc}.topic-message.helpful.repeated .message,.topic-message.helpful.repeated .message .is-author{background:#eaefe6}.topic-message.helpful.repeated .message:after{border-right-color:#eaefe6}.topic-message .user .avatar-link{display:block;height:58px;width:58px;z-index:0;position:absolute;top:0;border:1px solid #DDD}.topic-message .user .avatar-link[href]:focus,.topic-message .user .avatar-link[href]:hover{border-color:#FFF;overflow:hidden;box-shadow:rgba(0,0,0,.3) 0 1px 7px}.topic-message .user .avatar-link img{height:58px;width:58px}.topic-message .user .user-metadata{width:60px;height:25px}.topic-message .user .user-metadata a{display:block;float:left;border:1px solid #D2D5D6;border-top:0;text-align:center;background-color:#edefef;text-decoration:none;height:25px;line-height:26px;width:28px;color:#777;-webkit-transition:all .15s ease;transition:all .15s ease}.topic-message .user .user-metadata a:first-child{border-right:0;width:29px}.topic-message .user .user-metadata a:focus,.topic-message .user .user-metadata a:hover{border-bottom-width:1px;border-bottom-color:#777;background:#FFF}.topic-message .user .user-metadata a.positive{color:#48a200}.topic-message .user .user-metadata a.negative{color:#c0392b}.topic-message .message{position:relative;background-color:#FDFDFD;border:1px solid #D2D5D6;border-right-width:2px;border-bottom-width:3px;min-height:75px}.topic-message .message .is-author{position:absolute;top:-1pc;left:10px;background:#FDFDFD;padding:0 5px;font-size:9pt;line-height:20px;color:#999;border-top:1px solid #D2D5D6}.topic-message .message .is-author:after,.topic-message .message .is-author:before{content:" ";display:block;position:absolute;top:0;height:15px;width:1px;background:#D2D5D6}.topic-message .message .is-author:before{left:0}.topic-message .message .is-author:after{right:0}.topic-message .message .message-metadata{display:inline-block;font-size:14px;font-size:1.4rem;margin-left:5px}.topic-message .message .message-metadata a{display:block;float:left;color:#999;text-decoration:none;height:30px;line-height:30px;padding:0 5px;border-bottom:1px solid #D2D5D6;-webkit-transition:all .15s ease;transition:all .15s ease}.topic-message .message .message-content .message-hidden-content,.topic-message .message .message-metadata .date .long-date{display:none}.topic-message .message .message-metadata a:focus,.topic-message .message .message-metadata a:hover{border-bottom:1px solid #0e77a8;color:#0e77a8;outline:0}.topic-message .message .message-metadata .username{color:#484848;font-size:1pc;font-size:1.6rem;margin-right:3px}.topic-message .message .message-metadata .date{line-height:2pc}.topic-message .message .message-actions{margin:0;padding:0;list-style:none;position:absolute;top:0;right:0}.topic-message .message .message-actions li{float:left}.topic-message .message .message-content{clear:both;padding-top:1px}.topic-message .message .message-content>div>p:first-child{margin-top:7px}.topic-message .message .message-content>div>figure:first-child{margin-top:8px}.topic-message .message .message-content .message-edited,.topic-message .message .message-content .message-helpful,.topic-message .message .message-content .message-hidden,.topic-message .message .message-content .message-repeated{padding-top:3px 0 0}.topic-message .message .message-content .message-edited.ico-after,.topic-message .message .message-content .message-helpful.ico-after,.topic-message .message .message-content .message-hidden.ico-after,.topic-message .message .message-content .message-repeated.ico-after{text-indent:20px}.topic-message .message .message-content .message-edited.ico-after:after,.topic-message .message .message-content .message-helpful.ico-after:after,.topic-message .message .message-content .message-hidden.ico-after:after,.topic-message .message .message-content .message-repeated.ico-after:after{margin:4px 0}.topic-message .message .message-content .message-edited,.topic-message .message .message-content .message-hidden,.topic-message .message .message-content .message-repeated{font-style:italic;color:#999}.topic-message .message .message-content .message-edited:after,.topic-message .message .message-content .message-hidden:after,.topic-message .message .message-content .message-repeated:after{opacity:.5}.topic-message .message .message-content .message-hidden{margin-top:1px}.topic-message .message .message-content .message-helpful{color:#48A200;text-indent:20px}.topic-message .message .message-bottom .message-karma .downvote:not(.has-vote),.topic-message .message .message-bottom .message-karma .upvote:not(.has-vote),.topic-message .message .message-buttons a{text-indent:-9999px;width:0}.topic-message .message .message-content textarea{margin:10px 0 10px -1px;background-color:transparent;min-height:150px}.topic-message .message .message-bottom{display:flex;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;min-height:30px}.topic-message .message .message-bottom .signature{border-top:1px solid #D2D5D6;padding:3px 0 0 10px;margin:0 10px 0 0;font-size:9pt;font-size:1.2rem;color:#999;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;overflow:hidden}.topic-message .message .message-bottom .signature p{margin:0;padding:0}.topic-message .message .message-bottom .signature a{color:#999;-webkit-transition:all .15s ease;transition:all .15s ease}.topic-message .message .message-bottom .signature a:focus,.topic-message .message .message-bottom .signature a:hover{text-decoration:none;color:#555}.topic-message .message .message-bottom .message-karma{margin-left:auto;margin-bottom:-2px}.topic-message .message .message-bottom .message-karma button.ico-after,.topic-message .message .message-bottom .message-karma span{border-bottom-width:3px;border-bottom-color:transparent;background:0 0!important;height:2pc}.topic-message .message .message-bottom .message-karma span.downvote:not(.has-vote),.topic-message .message .message-bottom .message-karma span.upvote:not(.has-vote){border-bottom:none;opacity:.5}.topic-message .message .message-bottom .message-karma button{-webkit-transition-property:opacity,border;transition-property:opacity,border}.topic-message .message .message-bottom .message-karma button.voted:hover:after{opacity:.5}.topic-message .message .message-bottom .message-karma .downvote.voted:after,.topic-message .message .message-bottom .message-karma .tick.active:after,.topic-message .message .message-bottom .message-karma .upvote.voted:after{opacity:1}.topic-message .message .message-bottom .message-karma .downvote:after,.topic-message .message .message-bottom .message-karma .upvote:after{left:10px}.topic-message .message .message-bottom .message-karma .downvote:focus:not(.more-voted),.topic-message .message .message-bottom .message-karma .downvote:hover:not(.more-voted),.topic-message .message .message-bottom .message-karma .upvote:focus:not(.more-voted),.topic-message .message .message-bottom .message-karma .upvote:hover:not(.more-voted){border-bottom-color:transparent}.topic-message .message .message-bottom .message-karma .downvote.more-voted,.topic-message .message .message-bottom .message-karma .upvote.more-voted{font-weight:700}.topic-message .message .message-bottom .message-karma .upvote{color:#48a200}.topic-message .message .message-bottom .message-karma .upvote.more-voted{border-bottom-color:#48a200}.topic-message .message .message-bottom .message-karma .downvote{color:#c0392b}.topic-message .message .message-bottom .message-karma .downvote.more-voted{border-bottom-color:#c0392b}.topic-message .message .message-bottom .message-karma .tick{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topic-message .message .message-bottom .message-karma .tick:focus,.topic-message .message .message-bottom .message-karma .tick:hover{color:#555;border-bottom-color:#48a200}.topic-message .message .message-bottom .message-karma .tick.active{color:#48a200}.topic-message .message .message-buttons{margin:0 0 0 10px;padding:0;list-style:none;border-bottom:none}.topic-message .message .message-buttons a:after{left:9pt!important}.topic-message .message .message-submit{margin-left:auto;margin-right:10px}.topic-message .message .message-actions,.topic-message .message .message-buttons,.topic-message .message .message-karma,.topic-message .message .message-submit{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.topic-message .message .message-actions form,.topic-message .message .message-buttons form,.topic-message .message .message-karma form,.topic-message .message .message-submit form{width:auto}.topic-message .message .message-actions .downvote,.topic-message .message .message-actions .upvote,.topic-message .message .message-actions a,.topic-message .message .message-actions button,.topic-message .message .message-buttons .downvote,.topic-message .message .message-buttons .upvote,.topic-message .message .message-buttons a,.topic-message .message .message-buttons button,.topic-message .message .message-karma .downvote,.topic-message .message .message-karma .upvote,.topic-message .message .message-karma a,.topic-message .message .message-karma button,.topic-message .message .message-submit .downvote,.topic-message .message .message-submit .upvote,.topic-message .message .message-submit a,.topic-message .message .message-submit button{display:block;float:left;margin-left:3px;-webkit-transition:all .15s ease;transition:all .15s ease}.topic-message .message .message-actions .downvote.ico-after,.topic-message .message .message-actions .upvote.ico-after,.topic-message .message .message-actions a.ico-after,.topic-message .message .message-actions button.ico-after,.topic-message .message .message-buttons .downvote.ico-after,.topic-message .message .message-buttons .upvote.ico-after,.topic-message .message .message-buttons a.ico-after,.topic-message .message .message-buttons button.ico-after,.topic-message .message .message-karma .downvote.ico-after,.topic-message .message .message-karma .upvote.ico-after,.topic-message .message .message-karma a.ico-after,.topic-message .message .message-karma button.ico-after,.topic-message .message .message-submit .downvote.ico-after,.topic-message .message .message-submit .upvote.ico-after,.topic-message .message .message-submit a.ico-after,.topic-message .message .message-submit button.ico-after{padding-left:30px!important}.topic-message .message .message-actions .downvote:after,.topic-message .message .message-actions .upvote:after,.topic-message .message .message-actions a:after,.topic-message .message .message-actions button:after,.topic-message .message .message-buttons .downvote:after,.topic-message .message .message-buttons .upvote:after,.topic-message .message .message-buttons a:after,.topic-message .message .message-buttons button:after,.topic-message .message .message-karma .downvote:after,.topic-message .message .message-karma .upvote:after,.topic-message .message .message-karma a:after,.topic-message .message .message-karma button:after,.topic-message .message .message-submit .downvote:after,.topic-message .message .message-submit .upvote:after,.topic-message .message .message-submit a:after,.topic-message .message .message-submit button:after{top:7px;left:7px;-webkit-transition:all .15s ease;transition:all .15s ease;opacity:.5;margin:0}.topic-message .message .message-actions .downvote,.topic-message .message .message-actions .upvote,.topic-message .message .message-actions a,.topic-message .message .message-actions button.ico-after,.topic-message .message .message-buttons .downvote,.topic-message .message .message-buttons .upvote,.topic-message .message .message-buttons a,.topic-message .message .message-buttons button.ico-after,.topic-message .message .message-karma .downvote,.topic-message .message .message-karma .upvote,.topic-message .message .message-karma a,.topic-message .message .message-karma button.ico-after,.topic-message .message .message-submit .downvote,.topic-message .message .message-submit .upvote,.topic-message .message .message-submit a,.topic-message .message .message-submit button.ico-after{border-bottom:1px solid #D2D5D6;text-decoration:none;color:#999;height:29px;line-height:30px;padding:0 10px}.topic-message .message .message-actions a,.topic-message .message .message-actions button.ico-after,.topic-message .message .message-buttons a,.topic-message .message .message-buttons button.ico-after,.topic-message .message .message-karma a,.topic-message .message .message-karma button.ico-after,.topic-message .message .message-submit a,.topic-message .message .message-submit button.ico-after{cursor:pointer}.topic-message .message .message-actions a:focus,.topic-message .message .message-actions a:hover,.topic-message .message .message-actions button.ico-after:focus,.topic-message .message .message-actions button.ico-after:hover,.topic-message .message .message-buttons a:focus,.topic-message .message .message-buttons a:hover,.topic-message .message .message-buttons button.ico-after:focus,.topic-message .message .message-buttons button.ico-after:hover,.topic-message .message .message-karma a:focus,.topic-message .message .message-karma a:hover,.topic-message .message .message-karma button.ico-after:focus,.topic-message .message .message-karma button.ico-after:hover,.topic-message .message .message-submit a:focus,.topic-message .message .message-submit a:hover,.topic-message .message .message-submit button.ico-after:focus,.topic-message .message .message-submit button.ico-after:hover{border-bottom-color:#0e77a8;outline:0;background:0 0}.topic-message .message .message-actions a:focus:after,.topic-message .message .message-actions a:hover:after,.topic-message .message .message-actions button.ico-after:focus:after,.topic-message .message .message-actions button.ico-after:hover:after,.topic-message .message .message-buttons a:focus:after,.topic-message .message .message-buttons a:hover:after,.topic-message .message .message-buttons button.ico-after:focus:after,.topic-message .message .message-buttons button.ico-after:hover:after,.topic-message .message .message-karma a:focus:after,.topic-message .message .message-karma a:hover:after,.topic-message .message .message-karma button.ico-after:focus:after,.topic-message .message .message-karma button.ico-after:hover:after,.topic-message .message .message-submit a:focus:after,.topic-message .message .message-submit a:hover:after,.topic-message .message .message-submit button.ico-after:focus:after,.topic-message .message .message-submit button.ico-after:hover:after{opacity:1}.topic-message .message .message-actions a:focus,.topic-message .message .message-actions a:hover,.topic-message .message .message-buttons a:focus,.topic-message .message .message-buttons a:hover,.topic-message .message .message-karma button:focus,.topic-message .message .message-karma button:hover{color:#555;text-decoration:none}.topic-message .message .alert-box .alert-box-text{float:none}form.topic-message{margin-top:50px}@media only screen and (max-width:959px){.topic-message{padding:20px 0}.topic-message .user{position:absolute;top:7px;z-index:10;width:100%}.topic-message .user .avatar-link{float:left;display:none}.topic-message .user .badge{float:left;height:20px;line-height:20px;font-size:9pt;width:50px;margin-top:-2px;margin-left:10px}.topic-message .user .badge.push-badge{margin-left:105px}.topic-message .user .user-metadata{float:right;width:140px;margin-right:10px}.topic-message .user .user-metadata a{float:left;height:20px;line-height:20px;border-bottom:none;width:68px}.topic-message .message{border-right:0;border-left:0;padding-top:65px}.topic-message .message .message-metadata{position:absolute;top:0;left:0;right:10px;z-index:15;height:30px;line-height:30px}.topic-message .message .message-metadata .username{margin-left:5px}.topic-message .message .message-metadata .date{float:right}.topic-message .message .message-actions{margin:35px 10px 0 0}.topic-message .message .message-bottom{min-height:0}.topic-message .message .message-bottom .signature{display:none}.topic-message .message .message-bottom .message-karma{position:absolute;top:35px;left:7px}.topic-message .message .message-bottom .message-karma .tick{text-indent:-9999px;margin-right:1px}.topic-message .message .message-bottom .message-karma .tick:after{left:9pt}.topic-message .message .message-bottom .message-karma .downvote,.topic-message .message .message-bottom .message-karma .upvote{padding:0 7px;text-align:center}}@media only screen and (min-width:960px){.topic-message{margin:25px 0}.topic-message:first-child{margin-top:35px}.topic-message .message:after,.topic-message .user:after{content:" ";display:block;position:absolute;top:10px;height:0;width:0;border:20px solid transparent;border-left:0}.topic-message .user{position:absolute;padding-top:60px;top:0;left:0}.topic-message .user:after{left:60px;border-right-color:#D2D4D6}.topic-message .message{margin-left:5pc}.topic-message .message:after{top:9px;left:-19px;border-right-color:#FDFDFD}.topic-message .message .is-author{left:5px}.topic-message .message .message-content{margin:0 10px}.topic-message .message .message-content>:first-child{margin-top:5px}.topic-message .message .message-content>figure:first-child{margin-top:10px}.topic-message .message .message-bottom .signature p{white-space:nowrap;overflow:hidden}}@media only screen and (max-width:759px){.topic-message .message .message-actions a{width:0;text-indent:-9999px}.topic-message .message .message-actions a:after{left:9pt!important}.topic-message .message .message-submit{display:block!important;width:100%;margin:0}.topic-message .message .message-submit button{float:right;display:block;width:calc(50% - 2px);margin-left:1px!important}.topic-message .message .message-submit button.btn-grey{float:left}form.forum-message .message{padding-top:0!important}}.avatar{height:60px;width:60px;background-color:#FFF}.badge{display:block;width:60px;height:25px;line-height:25px;text-align:center;text-transform:uppercase;color:#EEE;text-shadow:rgba(0,0,0,.25) 0 0 3px;background:#777}.badge.staff{background:#48a200}.member-card .member-avatar{float:left;width:60px}.member-card .member-infos{float:left;list-style:none;margin:0;padding-left:15px}.member-social{list-style:none;margin:15px 0 0;padding:0}.home .main{display:block;height:auto;width:auto;margin:0;padding:0}.home #content{width:100%;margin:0;padding:0}.home .sub-header{display:none}.home .home-wrapper{max-width:1145px;margin:0 auto}.home .home-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:10px}.home .home-header{border-bottom:solid 1px #fff;padding-top:40px;background-color:#19516b;background:-webkit-radial-gradient(at top,rgba(255,255,255,.1),transparent 60%) #19516b;background:radial-gradient(at top,rgba(255,255,255,.1),transparent 60%) #19516b;margin-bottom:-170px;padding-bottom:180px;overflow:hidden}.home .home-description{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.home .home-description p{margin:0;padding:0;color:#fff;line-height:normal;text-align:justify}.home .home-description a:not(.home-description-button){color:#fff}.home .home-description a:not(.home-description-button):focus,.home .home-description a:not(.home-description-button):hover{color:#90ABB6;text-decoration:none}.home .home-description .column{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;padding:0 10px}.home .home-description .column h2{font-size:18px;font-size:1.8rem;color:#fff;margin:0 0 5px;border-bottom-color:#fff;font-weight:300}.home .home-description blockquote{font-size:2.5rem;color:#fff;font-weight:300;padding:0;margin:0}.home .home-description blockquote span:first-of-type::before{content:"«\00A0"}.home .home-description blockquote span:last-of-type::after{content:"\00A0»"}.home .home-description:not(.connected):not(.short){padding-bottom:60px}.home .home-description.connected{text-align:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.home .home-description.connected .important{color:#F8AD32;text-transform:uppercase;font-weight:700}.home .home-description.connected p{margin-top:5px;text-align:center}.home .home-description.connected .home-description-button{margin-left:15px}.home .home-description.short{display:none;color:#fff;text-align:center;font-size:1.4em}.home .home-description.short .home-description-button{font-size:14px;font-size:1.4rem;line-height:24px;line-height:2.4rem;margin-top:9pt;padding:0 10px}.home .home-description.short blockquote>span{display:inline-block}.home .home-description-button{display:inline-block;line-height:2rem;font-size:1.2rem;font-size:9pt;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.5);padding:0 6px;margin-top:5px}.home .home-description-button:focus,.home .home-description-button:hover{color:#084561;border-color:#fff;background-color:#FFF}.home .home-description-button.close-description{display:none}.home .featured-resource-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:30px;padding:1px 0 1px 1px;background-color:#F7F7F7;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:100%}.home .featured-resource-row .no-featured-resource{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;margin:0 1px 0 0;line-height:0;text-align:center;font-size:20px;background-color:#fff}.home .featured-resource-row .no-featured-resource::after,.home .featured-resource-row .no-featured-resource::before{display:block;content:"";padding-top:10%}.home .home-heading{height:40px;padding-left:50px!important;margin-bottom:18px!important}.home .home-heading.heading-white{color:#fff;border-bottom-color:#fff}.home .home-heading.ico-after::after{margin-left:0!important}.home .home-heading .btn{font-size:15px}.home .home-search-box{position:relative;margin:30px auto 0;max-width:820px;background:#fff}.home .home-search-box form{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.home .home-search-box:before{content:'';position:absolute;bottom:-6px;left:-28px;background:url(../images/home-clem.png);background-size:100%;width:68px;height:134px}.home .home-search-box input,.home .home-search-box label{box-sizing:border-box;display:inline-block;line-height:50px;height:50px}.home .home-search-box label{text-align:right;padding:0 5px;font-size:2rem;font-weight:300;margin-left:50px}.home .home-search-box input{font-size:2rem;border:none;font-weight:300;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.home .home-search-box button[type=submit]{background:#FFF;width:50px;height:50px}.home .home-search-box button[type=submit]:focus,.home .home-search-box button[type=submit]:hover{background-color:#CCC}.home .home-search-box button[type=submit]:after{margin:1pc;background-position:0 -3506px;width:1pc;height:40px}@media only screen and (max-width:759px){.home .home-description:not(.connected):not(.short){display:none}.home .home-description.short{display:block;width:auto;padding:0 20px}.home .home-description.short:target .home-description-button{display:none}.home .home-description.short:target .home-description-button.close-description{display:inline-block}.home .home-description.short:target~.home-description:not(.short){display:block;margin-top:20px}.home .featured-resource-row .featured-resource-item:nth-of-type(4),.home .home-description .featured-message,.home .home-search-box label{display:none}.home .home-description.connected{padding:0 20px!important}.home .home-heading .btn{visibility:hidden}.home .home-search-box{padding-left:40px;margin:30px 0 0!important}.home .home-search-box:before{left:-46px}}@media only screen and (max-width:959px){.home .home-header{padding-top:10px}.home .home-wrapper{padding:20px 10px}.home .featured-resource-row .featured-resource-item{margin:4px;padding:0!important}.home .featured-resource-row .featured-resource-item:last-of-type{display:none}.home .home-header{margin-bottom:0;padding-bottom:10px}.home .home-heading{margin-top:18px}.home .home-heading.heading-white{color:#084561;border-color:#F8AD32}.home .home-row{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.home .home-search-box{margin:30px 40px 0}.home .home-description.connected{width:auto;padding:0 5pc}}@media only screen and (min-width:960px){.home .home-row{margin-right:-10px;margin-left:-10px}.home .home-row>section{margin:0 10px;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;min-width:300px}.home .home-description .column h2{font-size:22px;font-size:2.2rem}.home .home-description.connected{max-width:740px;margin:0 auto}}.gallery.grid-view{clear:both}.gallery.grid-view .gallery-item{position:relative;width:200px;height:200px;float:left;border:10px solid #FFF;margin:10px;clear:none}.gallery.grid-view .gallery-item.active,.gallery.grid-view .gallery-item:hover{border-color:#1088bf!important}.gallery.grid-view .gallery-item.active:before,.gallery.grid-view .gallery-item:hover:before{display:none}.gallery.grid-view .gallery-item.active .topic-title,.gallery.grid-view .gallery-item:hover .topic-title{background:#1088bf!important;color:#FFF;text-decoration:none}.gallery.grid-view .gallery-item .topic-infos{position:absolute;bottom:0;left:0;z-index:1;height:15px;width:15px;padding:3px 0}.gallery.grid-view .gallery-item .topic-infos input{margin:0}.gallery.grid-view .gallery-item .topic-description,.gallery.grid-view .gallery-item .topic-description a{display:block;width:100%;height:100%}#resources_container .footer,.gallery.list-view .add-image{display:none}.gallery.grid-view .gallery-item .topic-image{overflow:hidden;max-height:100%;min-width:100%}.gallery.grid-view .gallery-item .topic-title{height:15px;background-color:#fff;position:absolute;bottom:7px;left:0;right:0;padding:10px 20px 5px;font-size:15px;font-size:1.5rem;line-height:15px;color:#444}.gallery.grid-view .gallery-item.selected{border-color:#eaf7fd}.gallery.grid-view .gallery-item.selected .topic-title{background:#eaf7fd}.gallery.grid-view .gallery-item.add-image{font-size:90pt;line-height:200px;text-align:center;background:#DDD;color:#555;text-decoration:none}.gallery.grid-view .gallery-item.add-image:focus,.gallery.grid-view .gallery-item.add-image:hover{background-color:#CCC;color:#1088bf}.gallery.list-view .topic .topic-description .topic-title{margin-top:9pt}.toggle-gallery-view{float:left!important}@media only screen and (min-width:960px){.gallery-col-image{float:left;width:50%}.gallery-col-image img{max-width:100%}.gallery-col-edit{float:right;width:calc(50% - 20px);padding-left:20px}}.tutorial-help-item{min-height:60px;padding:20px 2%;border-bottom:1px solid #e0e4e5;color:#424242;font-weight:400}.tutorial-help-item:nth-child(2n+1){background-color:rgba(255,255,255,.8)}.tutorial-help-item p{margin:0}.tutorial-help-item .tutorial-title{margin:0;padding:0;font-size:20px;font-size:2rem;height:27px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;clear:none;font-weight:400;color:#424242}.tutorial-help-item a{text-decoration:none}.tutorial-help-item .tutorial-categories a:focus,.tutorial-help-item .tutorial-categories a:hover,.tutorial-help-item a:focus,.tutorial-help-item a:hover{text-decoration:underline}.tutorial-help-item .tutorial-categories{margin:0 0 5px;padding:0;color:#ee8709}.tutorial-help-item .tutorial-categories a{color:#ee8709}.tutorial-help-item .tutorial-illu{display:block;overflow:hidden;float:left}.tutorial-help-item .tutorial-infos{margin:7px 0 0 70px}.tutorial-help-item .tutorial-infos.no-illu{margin-left:0}.tutorial-help-item .tutorial-help{margin:9pt 0 0}.tutorial-help-item .tutorial-help img.light{opacity:.2}.tutorial-help-item .tutorial-help img.light:focus,.tutorial-help-item .tutorial-help img.light:hover{opacity:.5}@media only screen and (-webkit-min-device-pixel-ratio:1.3),only screen and (min--moz-device-pixel-ratio:1.3),only screen and (min-device-pixel-ratio:1.3),only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.header-logo-link{background-size:100%;background-image:url(../images/logo@2x.png)}.breadcrumb ol li:not(:last-child):after,.ico,.ico-after:after,input[type=checkbox]:checked,input[type=radio]:checked{background-image:url(../images/sprite@2x.png);background-size:40px 4426px}}@media only screen and (-webkit-min-device-pixel-ratio:1.3) and (max-width:959px),only screen and (min--moz-device-pixel-ratio:1.3) and (max-width:959px),only screen and (min-device-pixel-ratio:1.3) and (max-width:959px),only screen and (-webkit-min-device-pixel-ratio:2) and (max-width:959px),only screen and (min-resolution:192dpi) and (max-width:959px),only screen and (min-resolution:2dppx) and (max-width:959px){.js.enable-mobile-menu .mobile-menu-hide .page-container .mobile-menu-btn:after{background-image:url(../images/sprite@2x.png);background-size:40px 4426px}.page-container .header-logo-link{background-image:url(../images/logo-mobile@2x.png)!important}.home .home-search-box::before{background-image:url(../images/home-clem@2x.png)}} \ No newline at end of file diff --git a/dist/images/apple-touch-icon-114x114-precomposed.png b/dist/images/apple-touch-icon-114x114-precomposed.png new file mode 100644 index 0000000000..a92558a691 Binary files /dev/null and b/dist/images/apple-touch-icon-114x114-precomposed.png differ diff --git a/dist/images/apple-touch-icon-144x144-precomposed.png b/dist/images/apple-touch-icon-144x144-precomposed.png new file mode 100644 index 0000000000..4b7fbfd2e8 Binary files /dev/null and b/dist/images/apple-touch-icon-144x144-precomposed.png differ diff --git a/dist/images/apple-touch-icon-57x57-precomposed.png b/dist/images/apple-touch-icon-57x57-precomposed.png new file mode 100644 index 0000000000..eb25fdc0a2 Binary files /dev/null and b/dist/images/apple-touch-icon-57x57-precomposed.png differ diff --git a/dist/images/apple-touch-icon-72x72-precomposed.png b/dist/images/apple-touch-icon-72x72-precomposed.png new file mode 100644 index 0000000000..522da6c239 Binary files /dev/null and b/dist/images/apple-touch-icon-72x72-precomposed.png differ diff --git a/dist/images/apple-touch-icon-precomposed.png b/dist/images/apple-touch-icon-precomposed.png new file mode 100644 index 0000000000..eb25fdc0a2 Binary files /dev/null and b/dist/images/apple-touch-icon-precomposed.png differ diff --git a/dist/images/apple-touch-icon.png b/dist/images/apple-touch-icon.png new file mode 100644 index 0000000000..eb25fdc0a2 Binary files /dev/null and b/dist/images/apple-touch-icon.png differ diff --git a/dist/images/beta.png b/dist/images/beta.png new file mode 100644 index 0000000000..b87be2af0e Binary files /dev/null and b/dist/images/beta.png differ diff --git a/dist/images/favicon.png b/dist/images/favicon.png new file mode 100644 index 0000000000..eb25fdc0a2 Binary files /dev/null and b/dist/images/favicon.png differ diff --git a/dist/images/home-clem.png b/dist/images/home-clem.png new file mode 100644 index 0000000000..a359b53c52 Binary files /dev/null and b/dist/images/home-clem.png differ diff --git a/dist/images/home-clem@2x.png b/dist/images/home-clem@2x.png new file mode 100644 index 0000000000..ee76b0ff93 Binary files /dev/null and b/dist/images/home-clem@2x.png differ diff --git a/dist/images/logo-background.png b/dist/images/logo-background.png new file mode 100644 index 0000000000..8384f1122b Binary files /dev/null and b/dist/images/logo-background.png differ diff --git a/dist/images/logo-mobile.png b/dist/images/logo-mobile.png new file mode 100644 index 0000000000..0fceb0b825 Binary files /dev/null and b/dist/images/logo-mobile.png differ diff --git a/dist/images/logo-mobile@2x.png b/dist/images/logo-mobile@2x.png new file mode 100644 index 0000000000..88041d5d00 Binary files /dev/null and b/dist/images/logo-mobile@2x.png differ diff --git a/dist/images/logo.png b/dist/images/logo.png new file mode 100644 index 0000000000..976607d001 Binary files /dev/null and b/dist/images/logo.png differ diff --git a/dist/images/logo@2x.png b/dist/images/logo@2x.png new file mode 100644 index 0000000000..5b488bd491 Binary files /dev/null and b/dist/images/logo@2x.png differ diff --git a/dist/images/sprite.png b/dist/images/sprite.png new file mode 100644 index 0000000000..a3cd0ef74b Binary files /dev/null and b/dist/images/sprite.png differ diff --git a/dist/images/sprite@2x.png b/dist/images/sprite@2x.png new file mode 100644 index 0000000000..6e67483d25 Binary files /dev/null and b/dist/images/sprite@2x.png differ diff --git a/dist/images/tutorials.png b/dist/images/tutorials.png new file mode 100644 index 0000000000..542e2cc94e Binary files /dev/null and b/dist/images/tutorials.png differ diff --git a/dist/js/all.js b/dist/js/all.js new file mode 100644 index 0000000000..30409823c4 --- /dev/null +++ b/dist/js/all.js @@ -0,0 +1,11779 @@ +/** + * Cookies EU banner v1.2.7 - Manage display of banner to accept/reject cookies from tracking services like Google Analytics + * ------------------------ + * @link http://alex-d.github.io/Cookies-EU-banner/ + * @license MIT + * @author Alex-D + * Twitter : @AlexandreDemode + * Website : alex-d.fr + */ + +(function(root, factory, undefined){ + if(typeof define === "function" && define.amd){ + define([], factory); + } else if(typeof exports === "object"){ + module.exports = factory(); + } else { + // root is window + root.CookiesEuBanner = factory(); + } +}(window, function(){ + var CookiesEuBanner, + document = window.document; + + CookiesEuBanner = function(launchFunction, waitAccept, undefined){ + if(!(this instanceof CookiesEuBanner)){ + return new CookiesEuBanner(launchFunction); + } + + this.cookieTimeout = 33696000000; // 13 months in milliseconds + this.bots = /bot|googlebot|crawler|spider|robot|crawling/i; + this.cookieName = "hasConsent"; + this.trackingCookiesNames = ["__utma","__utmb","__utmc","__utmt","__utmv","__utmz","_ga","_gat"]; + this.launchFunction = launchFunction; + this.waitAccept = waitAccept != null ? waitAccept : false; + this.init(); + }; + + CookiesEuBanner.prototype = { + init: function(){ + // Do nothing if it is a bot + // If DoNotTrack is activated, do nothing too + if(this.isBot() || !this.isToTrack() || this.hasConsent() === false){ + return false; + } + + // User has already consent to use cookies to tracking + if(this.hasConsent() === true){ + // Launch user custom function + this.launchFunction(); + return true; + } + + // If it's not a bot, no DoNotTrack and not already accept : show banner + this.showBanner(); + + if(!this.waitAccept){ + // Accept cookies by default for the next page + this.setCookie(this.cookieName, true); + } + }, + + /* + * Show banner at the top of the page + */ + showBanner: function(){ + var _this = this, + banner = document.getElementById("cookies-eu-banner"), + rejectButton = document.getElementById("cookies-eu-reject"), + acceptButton = document.getElementById("cookies-eu-accept"), + moreLink = document.getElementById("cookies-eu-more"); + + banner.style.display = "block"; + + this.addEventListener(moreLink, "click", function(){ + _this.deleteCookie(_this.cookieName); + }); + + this.addEventListener(acceptButton, "click", function(){ + banner.parentNode.removeChild(banner); + _this.setCookie(_this.cookieName, true); + _this.launchFunction(); + }); + + this.addEventListener(rejectButton, "click", function(){ + banner.parentNode.removeChild(banner); + _this.setCookie(_this.cookieName, false); + _this.deleteTrackingCookies(); + }); + }, + + /* + * Check if user already consent + */ + hasConsent: function(){ + if(document.cookie.indexOf(this.cookieName+"=true") > -1){ + return true; + } else if(document.cookie.indexOf(this.cookieName+"=false") > -1){ + return false; + } + return null; + }, + + /* + * Detect if the visitor is a bot or not + * Prevent for search engine take the cookie + * alert message as main content of the page + */ + isBot: function(){ + return this.bots.test(navigator.userAgent); + }, + + /* + * Check if DoNotTrack is activated + */ + isToTrack: function() { + var dnt = navigator.doNotTrack || navigator.msDoNotTrack || window.doNotTrack; + return (dnt != null) ? (dnt && dnt !== "yes" && dnt !== 1 && dnt !== "1") : true; + }, + + /* + * Delete existants tracking cookies + */ + deleteTrackingCookies: function(){ + var name; + for(name in this.trackingCookiesNames){ + this.deleteCookie(name); + } + }, + + /* + * Create/update cookie + */ + setCookie: function(name, value){ + var date = new Date(); + date.setTime(date.getTime() + this.cookieTimeout); + + document.cookie = name + "=" + value + ";expires=" + date.toGMTString() + ";path=/"; + }, + + /* + * Delete cookie by changing expire + */ + deleteCookie: function(name){ + var hostname = document.location.hostname; + if(hostname.indexOf("www.") === 0){ + hostname = hostname.substring(4); + } + document.cookie = name + "=; domain=." + hostname + "; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/"; + document.cookie = name + "=; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/"; + }, + + addEventListener: function(DOMElement, evnt, callback){ + if(document.addEventListener){ // For all major browsers, except IE 8 and earlier + DOMElement.addEventListener(evnt, callback); + } else if(DOMElement.attachEvent){ // For IE 8 and earlier versions + DOMElement.attachEvent("on"+evnt, callback); + } + } + }; + + return CookiesEuBanner; +})); + + +/*! + * jQuery JavaScript Library v2.1.4 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2015-04-28T16:01Z + */ + +(function( global, factory ) { + + if ( typeof module === "object" && typeof module.exports === "object" ) { + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Support: Firefox 18+ +// Can't be in strict mode, several libs including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// + +var arr = []; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var support = {}; + + + +var + // Use the correct document accordingly with window argument (sandbox) + document = window.document, + + version = "2.1.4", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android<4.1 + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num != null ? + + // Return just the one element from the set + ( num < 0 ? this[ num + this.length ] : this[ num ] ) : + + // Return all the elements in a clean array + slice.call( this ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + // parseFloat NaNs numeric-cast false positives (null|true|false|"") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + // adding 1 corrects loss of precision from parseFloat (#15100) + return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0; + }, + + isPlainObject: function( obj ) { + // Not plain objects: + // - Any object or value whose internal [[Class]] property is not "[object Object]" + // - DOM nodes + // - window + if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.constructor && + !hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) { + return false; + } + + // If the function hasn't returned already, we're confident that + // |obj| is a plain object, created by {} or constructed with new Object + return true; + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + // Support: Android<4.0, iOS<6 (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call(obj) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + var script, + indirect = eval; + + code = jQuery.trim( code ); + + if ( code ) { + // If the code includes a valid, prologue position + // strict mode pragma, execute code by injecting a + // script tag into the document. + if ( code.indexOf("use strict") === 1 ) { + script = document.createElement("script"); + script.text = code; + document.head.appendChild( script ).parentNode.removeChild( script ); + } else { + // Otherwise, avoid the DOM node creation, insertion + // and removal by using an indirect global eval + indirect( code ); + } + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE9-11+ + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Support: Android<4.1 + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +}); + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + + // Support: iOS 8.2 (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.2.0-pre + * http://sizzlejs.com/ + * + * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-12-16 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // General-purpose constants + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // http://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + characterEncoding + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + nodeType = context.nodeType; + + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + if ( !seed && documentIsHTML ) { + + // Try to shortcut find operations when possible (e.g., not under DocumentFragment) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document (jQuery #6963) + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType !== 1 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = attrs.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, parent, + doc = node ? node.ownerDocument || node : preferredDoc; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + parent = doc.defaultView; + + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent !== parent.top ) { + // IE11 does not have attachEvent, so all must suffer + if ( parent.addEventListener ) { + parent.addEventListener( "unload", unloadHandler, false ); + } else if ( parent.attachEvent ) { + parent.attachEvent( "onunload", unloadHandler ); + } + } + + /* Support tests + ---------------------------------------------------------------------- */ + documentIsHTML = !isXML( doc ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( doc.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [ m ] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + docElem.appendChild( div ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( div.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+ + if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibing-combinator selector` fails + if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( div ) { + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( div.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (oldCache = outerCache[ dir ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + outerCache[ dir ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context !== document && context; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is no seed and only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = ""; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = ""; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + + +var rneedsContext = jQuery.expr.match.needsContext; + +var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/); + + + +var risSimple = /^.[^:#\[\.,]*$/; + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + }); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + }); + + } + + if ( typeof qualifier === "string" ) { + if ( risSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) >= 0 ) !== not; + }); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); +}; + +jQuery.fn.extend({ + find: function( selector ) { + var i, + len = this.length, + ret = [], + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); + }, + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +}); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + init = jQuery.fn.init = function( selector, context ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Support: Blackberry 4.6 + // gEBID returns nodes no longer in the document (#6963) + if ( elem && elem.parentNode ) { + // Inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return typeof rootjQuery.ready !== "undefined" ? + rootjQuery.ready( selector ) : + // Execute immediately if ready is not present + selector( jQuery ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.extend({ + dir: function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; + }, + + sibling: function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; + } +}); + +jQuery.fn.extend({ + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter(function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + matched.push( cur ); + break; + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.unique( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +function sibling( cur, dir ) { + while ( (cur = cur[dir]) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return elem.contentDocument || jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.unique( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +}); +var rnotwhite = (/\S+/g); + + + +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // Flag to know if list is currently firing + firing, + // First callback to fire (used internally by add and fireWith) + firingStart, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // Add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // If we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); + + +// The deferred used on DOM ready +var readyList; + +jQuery.fn.ready = function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; +}; + +jQuery.extend({ + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.triggerHandler ) { + jQuery( document ).triggerHandler( "ready" ); + jQuery( document ).off( "ready" ); + } + } +}); + +/** + * The ready event handler and self cleanup method + */ +function completed() { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + jQuery.ready(); +} + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // We once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + } else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + } + } + return readyList.promise( obj ); +}; + +// Kick off the DOM ready check even if the user does not +jQuery.ready.promise(); + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + len ? fn( elems[0], key ) : emptyGet; +}; + + +/** + * Determines whether an object can have data + */ +jQuery.acceptData = function( owner ) { + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + /* jshint -W018 */ + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + +function Data() { + // Support: Android<4, + // Old WebKit does not have Object.preventExtensions/freeze method, + // return new empty object instead with no [[set]] accessor + Object.defineProperty( this.cache = {}, 0, { + get: function() { + return {}; + } + }); + + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; +Data.accepts = jQuery.acceptData; + +Data.prototype = { + key: function( owner ) { + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return the key for a frozen object. + if ( !Data.accepts( owner ) ) { + return 0; + } + + var descriptor = {}, + // Check if the owner object already has a cache key + unlock = owner[ this.expando ]; + + // If not, create one + if ( !unlock ) { + unlock = Data.uid++; + + // Secure it in a non-enumerable, non-writable property + try { + descriptor[ this.expando ] = { value: unlock }; + Object.defineProperties( owner, descriptor ); + + // Support: Android<4 + // Fallback to a less secure definition + } catch ( e ) { + descriptor[ this.expando ] = unlock; + jQuery.extend( owner, descriptor ); + } + } + + // Ensure the cache object + if ( !this.cache[ unlock ] ) { + this.cache[ unlock ] = {}; + } + + return unlock; + }, + set: function( owner, data, value ) { + var prop, + // There may be an unlock assigned to this node, + // if there is no entry for this "owner", create one inline + // and set the unlock as though an owner entry had always existed + unlock = this.key( owner ), + cache = this.cache[ unlock ]; + + // Handle: [ owner, key, value ] args + if ( typeof data === "string" ) { + cache[ data ] = value; + + // Handle: [ owner, { properties } ] args + } else { + // Fresh assignments by object are shallow copied + if ( jQuery.isEmptyObject( cache ) ) { + jQuery.extend( this.cache[ unlock ], data ); + // Otherwise, copy the properties one-by-one to the cache object + } else { + for ( prop in data ) { + cache[ prop ] = data[ prop ]; + } + } + } + return cache; + }, + get: function( owner, key ) { + // Either a valid cache is found, or will be created. + // New caches will be created and the unlock returned, + // allowing direct access to the newly created + // empty data object. A valid owner object must be provided. + var cache = this.cache[ this.key( owner ) ]; + + return key === undefined ? + cache : cache[ key ]; + }, + access: function( owner, key, value ) { + var stored; + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ((key && typeof key === "string") && value === undefined) ) { + + stored = this.get( owner, key ); + + return stored !== undefined ? + stored : this.get( owner, jQuery.camelCase(key) ); + } + + // [*]When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, name, camel, + unlock = this.key( owner ), + cache = this.cache[ unlock ]; + + if ( key === undefined ) { + this.cache[ unlock ] = {}; + + } else { + // Support array or space separated string of keys + if ( jQuery.isArray( key ) ) { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = key.concat( key.map( jQuery.camelCase ) ); + } else { + camel = jQuery.camelCase( key ); + // Try the string as a key before any manipulation + if ( key in cache ) { + name = [ key, camel ]; + } else { + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + name = camel; + name = name in cache ? + [ name ] : ( name.match( rnotwhite ) || [] ); + } + } + + i = name.length; + while ( i-- ) { + delete cache[ name[ i ] ]; + } + } + }, + hasData: function( owner ) { + return !jQuery.isEmptyObject( + this.cache[ owner[ this.expando ] ] || {} + ); + }, + discard: function( owner ) { + if ( owner[ this.expando ] ) { + delete this.cache[ owner[ this.expando ] ]; + } + } +}; +var data_priv = new Data(); + +var data_user = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /([A-Z])/g; + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + data_user.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend({ + hasData: function( elem ) { + return data_user.hasData( elem ) || data_priv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return data_user.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + data_user.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to data_priv methods, these can be deprecated. + _data: function( elem, name, data ) { + return data_priv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + data_priv.remove( elem, name ); + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = data_user.get( elem ); + + if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE11+ + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + data_priv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + data_user.set( this, key ); + }); + } + + return access( this, function( value ) { + var data, + camelKey = jQuery.camelCase( key ); + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + // Attempt to get data from the cache + // with the key as-is + data = data_user.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to get data from the cache + // with the key camelized + data = data_user.get( elem, camelKey ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, camelKey, undefined ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each(function() { + // First, attempt to store a copy or reference of any + // data that might've been store with a camelCased key. + var data = data_user.get( this, camelKey ); + + // For HTML5 data-* attribute interop, we have to + // store property names with dashes in a camelCase form. + // This might not apply to all properties...* + data_user.set( this, camelKey, value ); + + // *... In the case of properties that might _actually_ + // have dashes, we need to also store a copy of that + // unchanged property. + if ( key.indexOf("-") !== -1 && data !== undefined ) { + data_user.set( this, key, value ); + } + }); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each(function() { + data_user.remove( this, key ); + }); + } +}); + + +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = data_priv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray( data ) ) { + queue = data_priv.access( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return data_priv.get( elem, key ) || data_priv.access( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + data_priv.remove( elem, [ type + "queue", key ] ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = data_priv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source; + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHidden = function( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); + }; + +var rcheckableType = (/^(?:checkbox|radio)$/i); + + + +(function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Safari<=5.1 + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Safari<=5.1, Android<4.2 + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<=11+ + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +})(); +var strundefined = typeof undefined; + + + +support.focusinBubbles = "onfocusin" in window; + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = data_priv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = data_priv.hasData( elem ) && data_priv.get( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnotwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + data_priv.remove( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( data_priv.get( cur, "events" ) || {} )[ event.type ] && data_priv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && jQuery.acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + elem[ type ](); + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, j, ret, matched, handleObj, + handlerQueue = [], + args = slice.call( arguments ), + handlers = ( data_priv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, matches, sel, handleObj, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.disabled !== true || event.type !== "click" ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var eventDoc, doc, body, + button = original.button; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: Cordova 2.5 (WebKit) (#13255) + // All events should have a target; Cordova deviceready doesn't + if ( !event.target ) { + event.target = document; + } + + // Support: Safari 6.0+, Chrome<28 + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } +}; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + // Support: Android<4.0 + src.returnValue === false ? + returnTrue : + returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && e.preventDefault ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && e.stopPropagation ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && e.stopImmediatePropagation ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +// Support: Chrome 15+ +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// Support: Firefox, Chrome, Safari +// Create "bubbling" focus and blur events +if ( !support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = data_priv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + data_priv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = data_priv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + data_priv.remove( doc, fix ); + + } else { + data_priv.access( doc, fix, attaches ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); + + +var + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rhtml = /<|&#?\w+;/, + rnoInnerhtml = /<(?:script|style|link)/i, + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptType = /^$|\/(?:java|ecma)script/i, + rscriptTypeMasked = /^true\/(.*)/, + rcleanScript = /^\s*\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + + // Support: IE9 + option: [ 1, "" ], + + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] + }; + +// Support: IE9 +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +// Support: 1.x compatibility +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + + if ( match ) { + elem.type = match[ 1 ]; + } else { + elem.removeAttribute("type"); + } + + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + data_priv.set( + elems[ i ], "globalEval", !refElements || data_priv.get( refElements[ i ], "globalEval" ) + ); + } +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( data_priv.hasData( src ) ) { + pdataOld = data_priv.access( src ); + pdataCur = data_priv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( data_user.hasData( src ) ) { + udataOld = data_user.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + data_user.set( dest, udataCur ); + } +} + +function getAll( context, tag ) { + var ret = context.getElementsByTagName ? context.getElementsByTagName( tag || "*" ) : + context.querySelectorAll ? context.querySelectorAll( tag || "*" ) : + []; + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], ret ) : + ret; +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + // Support: QtWebKit, PhantomJS + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: QtWebKit, PhantomJS + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; + }, + + cleanData: function( elems ) { + var data, elem, type, key, + special = jQuery.event.special, + i = 0; + + for ( ; (elem = elems[ i ]) !== undefined; i++ ) { + if ( jQuery.acceptData( elem ) ) { + key = elem[ data_priv.expando ]; + + if ( key && (data = data_priv.cache[ key ]) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + if ( data_priv.cache[ key ] ) { + // Discard any remaining `private` data + delete data_priv.cache[ key ]; + } + } + } + // Discard any remaining `user` data + delete data_user.cache[ elem[ data_user.expando ] ]; + } + } +}); + +jQuery.fn.extend({ + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each(function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + }); + }, null, value, arguments.length ); + }, + + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + remove: function( selector, keepData /* Internal Use Only */ ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; + + for ( ; (elem = elems[i]) != null; i++ ) { + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map(function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var arg = arguments[ 0 ]; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + arg = this.parentNode; + + jQuery.cleanData( getAll( this ) ); + + if ( arg ) { + arg.replaceChild( elem, this ); + } + }); + + // Force removal if there was no new content (e.g., from empty arguments) + return arg && (arg.length || arg.nodeType) ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[ 0 ], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + self.domManip( args, callback ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + // Support: QtWebKit + // jQuery.merge because push.apply(_, arraylike) throws + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !data_priv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + jQuery.globalEval( node.textContent.replace( rcleanScript, "" ) ); + } + } + } + } + } + } + + return this; + } +}); + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: QtWebKit + // .get() because push.apply(_, arraylike) throws + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + + +var iframe, + elemdisplay = {}; + +/** + * Retrieve the actual display of a element + * @param {String} name nodeName of the element + * @param {Object} doc Document object + */ +// Called only from within defaultDisplay +function actualDisplay( name, doc ) { + var style, + elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), + + // getDefaultComputedStyle might be reliably used only on attached element + display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? + + // Use of this method is a temporary fix (more like optimization) until something better comes along, + // since it was removed from specification and supported only in FF + style.display : jQuery.css( elem[ 0 ], "display" ); + + // We don't have any data stored on the element, + // so use "detach" method as fast way to get rid of the element + elem.detach(); + + return display; +} + +/** + * Try to determine the default display value of an element + * @param {String} nodeName + */ +function defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + + // Use the already-created iframe if possible + iframe = (iframe || jQuery( "