diff --git a/admin-dev/themes/default/css/admin-theme.css b/admin-dev/themes/default/css/admin-theme.css index 26b23a260..789a83242 100644 --- a/admin-dev/themes/default/css/admin-theme.css +++ b/admin-dev/themes/default/css/admin-theme.css @@ -30,7 +30,7 @@ * Email: dave@fontawesome.io * Twitter: http://twitter.com/byscuits * Work: Lead Product Designer @ Kyruus - http://kyruus.com - */@font-face{font-family:'FontAwesome';src:url("../font/fontawesome-webfont.eot?v=3.2.1");src:url("../font/fontawesome-webfont.eot?#iefix&v=3.2.1") format("embedded-opentype"),url("../font/fontawesome-webfont.woff?v=3.2.1") format("woff"),url("../font/fontawesome-webfont.ttf?v=3.2.1") format("truetype"),url("../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1") format("svg");font-weight:normal;font-style:normal}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em}[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none}.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em}a [class^="icon-"],a [class*=" icon-"]{display:inline}[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.1428571428571428em;text-align:right;padding-right:0.2857142857142857em}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.4285714285714286em}.icons-ul{margin-left:2.142857142857143em;list-style-type:none}.icons-ul>li{position:relative}.icons-ul .icon-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;text-align:center;line-height:inherit}[class^="icon-"].hide,[class*=" icon-"].hide{display:none}.icon-muted{color:#eeeeee}.icon-light{color:#ffffff}.icon-dark{color:#333333}.icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.icon-2x{font-size:2em}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.icon-3x{font-size:3em}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.icon-4x{font-size:4em}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.icon-5x{font-size:5em}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.pull-right,#content h3:not(.modal-title) .panel-heading-action,#content .panel-heading .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action{float:right}.pull-left,.page-head h2.page-title{float:left}[class^="icon-"].pull-left,.page-head h2[class^="icon-"].page-title,[class*=" icon-"].pull-left,.page-head h2[class*=" icon-"].page-title{margin-right:.3em}[class^="icon-"].pull-right,#content h3:not(.modal-title) [class^="icon-"].panel-heading-action,#content .panel-heading [class^="icon-"].panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].panel-heading-action,[class*=" icon-"].pull-right,#content h3:not(.modal-title) [class*=" icon-"].panel-heading-action,#content .panel-heading [class*=" icon-"].panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].panel-heading-action{margin-left:.3em}[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],#header_infos .nav>.active>a>[class^="icon-"],.navbar-inverse #header_notifs_icon_wrapper>.active>a>[class^="icon-"],#header_infos #header_notifs_icon_wrapper>.active>a>[class^="icon-"],.navbar-inverse #header_employee_box>.active>a>[class^="icon-"],#header_infos #header_employee_box>.active>a>[class^="icon-"],.navbar-inverse #header_quick>.active>a>[class^="icon-"],#header_infos #header_quick>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],#header_infos .nav>.active>a>[class*=" icon-"],.navbar-inverse #header_notifs_icon_wrapper>.active>a>[class*=" icon-"],#header_infos #header_notifs_icon_wrapper>.active>a>[class*=" icon-"],.navbar-inverse #header_employee_box>.active>a>[class*=" icon-"],#header_infos #header_employee_box>.active>a>[class*=" icon-"],.navbar-inverse #header_quick>.active>a>[class*=" icon-"],#header_infos #header_quick>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none}.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,#header_notifs_icon_wrapper [class^="icon-"].icon-large,#header_employee_box [class^="icon-"].icon-large,#header_quick [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large,#header_notifs_icon_wrapper [class*=" icon-"].icon-large,#header_employee_box [class*=" icon-"].icon-large,#header_quick [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].icon-spin,.btn #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading .btn [class^="icon-"].data_value:before,.nav [class^="icon-"].icon-spin,#header_notifs_icon_wrapper [class^="icon-"].icon-spin,#header_employee_box [class^="icon-"].icon-spin,#header_quick [class^="icon-"].icon-spin,.nav #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading .nav [class^="icon-"].data_value:before,#header_notifs_icon_wrapper #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_notifs_icon_wrapper [class^="icon-"].data_value:before,#header_employee_box #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_employee_box [class^="icon-"].data_value:before,#header_quick #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_quick [class^="icon-"].data_value:before,.btn [class*=" icon-"].icon-spin,.btn #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading .btn [class*=" icon-"].data_value:before,.nav [class*=" icon-"].icon-spin,#header_notifs_icon_wrapper [class*=" icon-"].icon-spin,#header_employee_box [class*=" icon-"].icon-spin,#header_quick [class*=" icon-"].icon-spin,.nav #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading .nav [class*=" icon-"].data_value:before,#header_notifs_icon_wrapper #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_notifs_icon_wrapper [class*=" icon-"].data_value:before,#header_employee_box #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_employee_box [class*=" icon-"].data_value:before,#header_quick #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_quick [class*=" icon-"].data_value:before{display:inline-block}.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].pull-left.icon-2x,.btn .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn h2[class^="icon-"].icon-2x.page-title,.btn [class*=" icon-"].pull-left.icon-2x,.btn .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn h2[class*=" icon-"].icon-2x.page-title,.btn [class^="icon-"].pull-right.icon-2x,.btn #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn [class^="icon-"].icon-2x.panel-heading-action,.btn [class*=" icon-"].pull-right.icon-2x,.btn #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn [class*=" icon-"].icon-2x.panel-heading-action{margin-top:.18em}.btn [class^="icon-"].icon-spin.icon-large,.btn #dashboard .loading [class^="icon-"].icon-large.data_value:before,#dashboard .loading .btn [class^="icon-"].icon-large.data_value:before,.btn [class*=" icon-"].icon-spin.icon-large,.btn #dashboard .loading [class*=" icon-"].icon-large.data_value:before,#dashboard .loading .btn [class*=" icon-"].icon-large.data_value:before{line-height:.8em}.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-small h2[class^="icon-"].icon-2x.page-title,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-small h2[class*=" icon-"].icon-2x.page-title,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small [class*=" icon-"].pull-right.icon-2x,.btn.btn-small #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action{margin-top:.25em}.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class^="icon-"].icon-2x.page-title,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class*=" icon-"].icon-2x.page-title,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large [class*=" icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action{margin-top:.05em}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class^="icon-"].icon-2x.page-title,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class*=" icon-"].icon-2x.page-title{margin-right:.2em}.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large [class*=" icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action{margin-left:.2em}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit}.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em}.icon-stack .icon-stack-base{font-size:2em;*line-height:1em}.icon-spin,#dashboard .loading .data_value:before{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}a .icon-stack,a .icon-spin,a #dashboard .loading .data_value:before,#dashboard .loading a .data_value:before{display:inline-block;text-decoration:none}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1)}.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2)}.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block}.icon-glass:before{content:"\f000"}.icon-music:before{content:"\f001"}.icon-search:before{content:"\f002"}.icon-envelope-alt:before{content:"\f003"}.icon-heart:before{content:"\f004"}.icon-star:before{content:"\f005"}.icon-star-empty:before{content:"\f006"}.icon-user:before{content:"\f007"}.icon-film:before{content:"\f008"}.icon-th-large:before{content:"\f009"}.icon-th:before{content:"\f00a"}.icon-th-list:before{content:"\f00b"}.icon-ok:before{content:"\f00c"}.icon-remove:before,.process-icon-cancel:before{content:"\f00d"}.icon-zoom-in:before{content:"\f00e"}.icon-zoom-out:before{content:"\f010"}.icon-power-off:before,.icon-off:before{content:"\f011"}.icon-signal:before{content:"\f012"}.icon-gear:before,.icon-cog:before,.icon-AdminAdmin:before,.process-icon-configure:before{content:"\f013"}.icon-trash:before,.process-icon-delete:before{content:"\f014"}.icon-home:before{content:"\f015"}.icon-file-alt:before{content:"\f016"}.icon-time:before{content:"\f017"}.icon-road:before{content:"\f018"}.icon-download-alt:before{content:"\f019"}.icon-download:before,.process-icon-save-date:before,.process-icon-save-status:before{content:"\f01a"}.icon-upload:before{content:"\f01b"}.icon-inbox:before{content:"\f01c"}.icon-play-circle:before{content:"\f01d"}.icon-rotate-right:before,.icon-repeat:before{content:"\f01e"}.icon-refresh:before,.process-icon-refresh:before{content:"\f021"}.icon-list-alt:before{content:"\f022"}.icon-lock:before{content:"\f023"}.icon-flag:before{content:"\f024"}.icon-headphones:before{content:"\f025"}.icon-volume-off:before{content:"\f026"}.icon-volume-down:before{content:"\f027"}.icon-volume-up:before{content:"\f028"}.icon-qrcode:before{content:"\f029"}.icon-barcode:before{content:"\f02a"}.icon-tag:before{content:"\f02b"}.icon-tags:before,.icon-AdminPriceRule:before{content:"\f02c"}.icon-book:before,.icon-AdminCatalog:before{content:"\f02d"}.icon-bookmark:before{content:"\f02e"}.icon-print:before{content:"\f02f"}.icon-camera:before{content:"\f030"}.icon-font:before{content:"\f031"}.icon-bold:before{content:"\f032"}.icon-italic:before{content:"\f033"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-align-left:before{content:"\f036"}.icon-align-center:before{content:"\f037"}.icon-align-right:before{content:"\f038"}.icon-align-justify:before{content:"\f039"}.icon-list:before{content:"\f03a"}.icon-indent-left:before{content:"\f03b"}.icon-indent-right:before{content:"\f03c"}.icon-facetime-video:before{content:"\f03d"}.icon-picture:before{content:"\f03e"}.icon-pencil:before{content:"\f040"}.icon-map-marker:before{content:"\f041"}.icon-adjust:before{content:"\f042"}.icon-tint:before{content:"\f043"}.icon-edit:before,.process-icon-edit:before{content:"\f044"}.icon-share:before{content:"\f045"}.icon-check:before{content:"\f046"}.icon-move:before{content:"\f047"}.icon-step-backward:before{content:"\f048"}.icon-fast-backward:before{content:"\f049"}.icon-backward:before{content:"\f04a"}.icon-play:before{content:"\f04b"}.icon-pause:before{content:"\f04c"}.icon-stop:before{content:"\f04d"}.icon-forward:before{content:"\f04e"}.icon-fast-forward:before{content:"\f050"}.icon-step-forward:before{content:"\f051"}.icon-eject:before{content:"\f052"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-plus-sign:before,.process-icon-newCombination.toolbar-new:before{content:"\f055"}.icon-minus-sign:before,.process-icon-newCombination.toolbar-cancel:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before,.process-icon-help:before,.process-icon-help-new:before{content:"\f059"}.icon-info-sign:before{content:"\f05a"}.icon-screenshot:before{content:"\f05b"}.icon-remove-circle:before{content:"\f05c"}.icon-ok-circle:before{content:"\f05d"}.icon-ban-circle:before{content:"\f05e"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrow-down:before{content:"\f063"}.icon-mail-forward:before,.icon-share-alt:before{content:"\f064"}.icon-resize-full:before{content:"\f065"}.icon-resize-small:before{content:"\f066"}.icon-plus:before,.process-icon-new-module:before{content:"\f067"}.icon-minus:before{content:"\f068"}.icon-asterisk:before{content:"\f069"}.icon-exclamation-sign:before{content:"\f06a"}.icon-gift:before{content:"\f06b"}.icon-leaf:before{content:"\f06c"}.icon-fire:before{content:"\f06d"}.icon-eye-open:before,.process-icon-preview:before,.process-icon-previewURL:before{content:"\f06e"}.icon-eye-close:before{content:"\f070"}.icon-warning-sign:before{content:"\f071"}.icon-plane:before{content:"\f072"}.icon-calendar:before{content:"\f073"}.icon-random:before{content:"\f074"}.icon-comment:before{content:"\f075"}.icon-magnet:before{content:"\f076"}.icon-chevron-up:before{content:"\f077"}.icon-chevron-down:before{content:"\f078"}.icon-retweet:before{content:"\f079"}.icon-shopping-cart:before{content:"\f07a"}.icon-folder-close:before{content:"\f07b"}.icon-folder-open:before{content:"\f07c"}.icon-resize-vertical:before{content:"\f07d"}.icon-resize-horizontal:before{content:"\f07e"}.icon-bar-chart:before,.icon-AdminParentStats:before,.process-icon-stats:before{content:"\f080"}.icon-twitter-sign:before{content:"\f081"}.icon-facebook-sign:before{content:"\f082"}.icon-camera-retro:before{content:"\f083"}.icon-key:before{content:"\f084"}.icon-gears:before,.icon-cogs:before,.icon-AdminTools:before{content:"\f085"}.icon-comments:before{content:"\f086"}.icon-thumbs-up-alt:before{content:"\f087"}.icon-thumbs-down-alt:before{content:"\f088"}.icon-star-half:before{content:"\f089"}.icon-heart-empty:before{content:"\f08a"}.icon-signout:before{content:"\f08b"}.icon-linkedin-sign:before{content:"\f08c"}.icon-pushpin:before{content:"\f08d"}.icon-external-link:before{content:"\f08e"}.icon-signin:before{content:"\f090"}.icon-trophy:before{content:"\f091"}.icon-github-sign:before{content:"\f092"}.icon-upload-alt:before{content:"\f093"}.icon-lemon:before{content:"\f094"}.icon-phone:before{content:"\f095"}.icon-unchecked:before,.icon-check-empty:before{content:"\f096"}.icon-bookmark-empty:before{content:"\f097"}.icon-phone-sign:before{content:"\f098"}.icon-twitter:before{content:"\f099"}.icon-facebook:before{content:"\f09a"}.icon-github:before{content:"\f09b"}.icon-unlock:before{content:"\f09c"}.icon-credit-card:before,.icon-AdminParentOrders:before{content:"\f09d"}.icon-rss:before{content:"\f09e"}.icon-hdd:before{content:"\f0a0"}.icon-bullhorn:before{content:"\f0a1"}.icon-bell:before{content:"\f0a2"}.icon-certificate:before{content:"\f0a3"}.icon-hand-right:before{content:"\f0a4"}.icon-hand-left:before{content:"\f0a5"}.icon-hand-up:before{content:"\f0a6"}.icon-hand-down:before{content:"\f0a7"}.icon-circle-arrow-left:before,.process-icon-back:before{content:"\f0a8"}.icon-circle-arrow-right:before{content:"\f0a9"}.icon-circle-arrow-up:before{content:"\f0aa"}.icon-circle-arrow-down:before{content:"\f0ab"}.icon-globe:before,.icon-AdminParentLocalization:before{content:"\f0ac"}.icon-wrench:before,.icon-AdminParentPreferences:before{content:"\f0ad"}.icon-tasks:before{content:"\f0ae"}.icon-filter:before{content:"\f0b0"}.icon-briefcase:before{content:"\f0b1"}.icon-fullscreen:before{content:"\f0b2"}.icon-group:before,.icon-AdminParentCustomer:before{content:"\f0c0"}.icon-link:before{content:"\f0c1"}.icon-cloud:before{content:"\f0c2"}.icon-beaker:before{content:"\f0c3"}.icon-cut:before{content:"\f0c4"}.icon-copy:before,.process-icon-duplicate:before{content:"\f0c5"}.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6"}.icon-save:before,.process-icon-save:before,.process-icon-save-and-stay:before,.process-icon-save-and-preview:before{content:"\f0c7"}.icon-sign-blank:before{content:"\f0c8"}.icon-reorder:before{content:"\f0c9"}.icon-list-ul:before{content:"\f0ca"}.icon-list-ol:before{content:"\f0cb"}.icon-strikethrough:before{content:"\f0cc"}.icon-underline:before{content:"\f0cd"}.icon-table:before{content:"\f0ce"}.icon-magic:before{content:"\f0d0"}.icon-truck:before,.icon-AdminParentShipping:before{content:"\f0d1"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-sign:before{content:"\f0d3"}.icon-google-plus-sign:before{content:"\f0d4"}.icon-google-plus:before{content:"\f0d5"}.icon-money:before{content:"\f0d6"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-columns:before{content:"\f0db"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-envelope:before{content:"\f0e0"}.icon-linkedin:before{content:"\f0e1"}.icon-rotate-left:before,.icon-undo:before{content:"\f0e2"}.icon-legal:before{content:"\f0e3"}.icon-dashboard:before,.icon-AdminDashboard:before{content:"\f0e4"}.icon-comment-alt:before{content:"\f0e5"}.icon-comments-alt:before{content:"\f0e6"}.icon-bolt:before{content:"\f0e7"}.icon-sitemap:before{content:"\f0e8"}.icon-umbrella:before{content:"\f0e9"}.icon-paste:before{content:"\f0ea"}.icon-lightbulb:before{content:"\f0eb"}.icon-exchange:before,.process-icon-partial_refund:before{content:"\f0ec"}.icon-cloud-download:before,.process-icon-export:before{content:"\f0ed"}.icon-cloud-upload:before,.process-icon-import:before{content:"\f0ee"}.icon-user-md:before{content:"\f0f0"}.icon-stethoscope:before{content:"\f0f1"}.icon-suitcase:before{content:"\f0f2"}.icon-bell-alt:before{content:"\f0f3"}.icon-coffee:before{content:"\f0f4"}.icon-food:before{content:"\f0f5"}.icon-file-text-alt:before{content:"\f0f6"}.icon-building:before{content:"\f0f7"}.icon-hospital:before{content:"\f0f8"}.icon-ambulance:before{content:"\f0f9"}.icon-medkit:before{content:"\f0fa"}.icon-fighter-jet:before{content:"\f0fb"}.icon-beer:before{content:"\f0fc"}.icon-h-sign:before{content:"\f0fd"}.icon-plus-sign-alt:before,.process-icon-newAttributes:before,.process-icon-new:before,.process-icon-new-url:before{content:"\f0fe"}.icon-double-angle-left:before{content:"\f100"}.icon-double-angle-right:before{content:"\f101"}.icon-double-angle-up:before{content:"\f102"}.icon-double-angle-down:before{content:"\f103"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before,#nav-sidebar ul.menu li.maintab.expanded span.submenu_expand:before{content:"\f106"}.icon-angle-down:before,#nav-sidebar ul.menu li.maintab span.submenu_expand:before{content:"\f107"}.icon-desktop:before{content:"\f108"}.icon-laptop:before{content:"\f109"}.icon-tablet:before{content:"\f10a"}.icon-mobile-phone:before{content:"\f10b"}.icon-circle-blank:before{content:"\f10c"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-spinner:before{content:"\f110"}.icon-circle:before{content:"\f111"}.icon-mail-reply:before,.icon-reply:before{content:"\f112"}.icon-github-alt:before{content:"\f113"}.icon-folder-close-alt:before{content:"\f114"}.icon-folder-open-alt:before{content:"\f115"}.icon-expand-alt:before{content:"\f116"}.icon-collapse-alt:before{content:"\f117"}.icon-smile:before{content:"\f118"}.icon-frown:before{content:"\f119"}.icon-meh:before{content:"\f11a"}.icon-gamepad:before{content:"\f11b"}.icon-keyboard:before{content:"\f11c"}.icon-flag-alt:before{content:"\f11d"}.icon-flag-checkered:before{content:"\f11e"}.icon-terminal:before{content:"\f120"}.icon-code:before{content:"\f121"}.icon-reply-all:before{content:"\f122"}.icon-mail-reply-all:before{content:"\f122"}.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123"}.icon-location-arrow:before{content:"\f124"}.icon-crop:before{content:"\f125"}.icon-code-fork:before{content:"\f126"}.icon-unlink:before{content:"\f127"}.icon-question:before{content:"\f128"}.icon-info:before{content:"\f129"}.icon-exclamation:before{content:"\f12a"}.icon-superscript:before{content:"\f12b"}.icon-subscript:before{content:"\f12c"}.icon-eraser:before{content:"\f12d"}.icon-puzzle-piece:before,.icon-AdminParentModules:before,.process-icon-modules-list:before{content:"\f12e"}.icon-microphone:before{content:"\f130"}.icon-microphone-off:before{content:"\f131"}.icon-shield:before{content:"\f132"}.icon-calendar-empty:before{content:"\f133"}.icon-fire-extinguisher:before{content:"\f134"}.icon-rocket:before{content:"\f135"}.icon-maxcdn:before{content:"\f136"}.icon-chevron-sign-left:before{content:"\f137"}.icon-chevron-sign-right:before{content:"\f138"}.icon-chevron-sign-up:before{content:"\f139"}.icon-chevron-sign-down:before{content:"\f13a"}.icon-html5:before{content:"\f13b"}.icon-css3:before{content:"\f13c"}.icon-anchor:before,.process-icon-anchor:before{content:"\f13d"}.icon-unlock-alt:before{content:"\f13e"}.icon-bullseye:before{content:"\f140"}.icon-ellipsis-horizontal:before{content:"\f141"}.icon-ellipsis-vertical:before{content:"\f142"}.icon-rss-sign:before{content:"\f143"}.icon-play-sign:before{content:"\f144"}.icon-ticket:before{content:"\f145"}.icon-minus-sign-alt:before{content:"\f146"}.icon-check-minus:before{content:"\f147"}.icon-level-up:before{content:"\f148"}.icon-level-down:before{content:"\f149"}.icon-check-sign:before{content:"\f14a"}.icon-edit-sign:before{content:"\f14b"}.icon-external-link-sign:before{content:"\f14c"}.icon-share-sign:before{content:"\f14d"}.icon-compass:before{content:"\f14e"}.icon-collapse:before{content:"\f150"}.icon-collapse-top:before{content:"\f151"}.icon-expand:before{content:"\f152"}.icon-euro:before,.icon-eur:before{content:"\f153"}.icon-gbp:before{content:"\f154"}.icon-dollar:before,.icon-usd:before{content:"\f155"}.icon-rupee:before,.icon-inr:before{content:"\f156"}.icon-yen:before,.icon-jpy:before{content:"\f157"}.icon-renminbi:before,.icon-cny:before{content:"\f158"}.icon-won:before,.icon-krw:before{content:"\f159"}.icon-bitcoin:before,.icon-btc:before{content:"\f15a"}.icon-file:before{content:"\f15b"}.icon-file-text:before{content:"\f15c"}.icon-sort-by-alphabet:before{content:"\f15d"}.icon-sort-by-alphabet-alt:before{content:"\f15e"}.icon-sort-by-attributes:before{content:"\f160"}.icon-sort-by-attributes-alt:before{content:"\f161"}.icon-sort-by-order:before{content:"\f162"}.icon-sort-by-order-alt:before{content:"\f163"}.icon-thumbs-up:before{content:"\f164"}.icon-thumbs-down:before{content:"\f165"}.icon-youtube-sign:before{content:"\f166"}.icon-youtube:before{content:"\f167"}.icon-xing:before{content:"\f168"}.icon-xing-sign:before{content:"\f169"}.icon-youtube-play:before{content:"\f16a"}.icon-dropbox:before{content:"\f16b"}.icon-stackexchange:before{content:"\f16c"}.icon-instagram:before{content:"\f16d"}.icon-flickr:before{content:"\f16e"}.icon-adn:before{content:"\f170"}.icon-bitbucket:before{content:"\f171"}.icon-bitbucket-sign:before{content:"\f172"}.icon-tumblr:before{content:"\f173"}.icon-tumblr-sign:before{content:"\f174"}.icon-long-arrow-down:before{content:"\f175"}.icon-long-arrow-up:before{content:"\f176"}.icon-long-arrow-left:before{content:"\f177"}.icon-long-arrow-right:before{content:"\f178"}.icon-apple:before{content:"\f179"}.icon-windows:before{content:"\f17a"}.icon-android:before{content:"\f17b"}.icon-linux:before{content:"\f17c"}.icon-dribbble:before{content:"\f17d"}.icon-skype:before{content:"\f17e"}.icon-foursquare:before{content:"\f180"}.icon-trello:before{content:"\f181"}.icon-female:before{content:"\f182"}.icon-male:before{content:"\f183"}.icon-gittip:before{content:"\f184"}.icon-sun:before{content:"\f185"}.icon-moon:before{content:"\f186"}.icon-archive:before,.icon-AdminStock:before{content:"\f187"}.icon-bug:before{content:"\f188"}.icon-vk:before{content:"\f189"}.icon-weibo:before{content:"\f18a"}.icon-renren:before{content:"\f18b"}html,body{min-height:100%;height:100%}#main{min-height:100%;padding:36px 0 60px;margin:0 0 -60px 0;background-color:#f8f8f8;background-image:url("../img/patterns/bedge_grunge.png")}#content{padding:80px 20px 0;margin-left:240px;-webkit-transition-property:margin;-moz-transition-property:margin;-o-transition-property:margin;transition-property:margin;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#content fieldset,#content .panel,#content #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper #content .notifs_panel,#content #dash_version{padding:20px;margin-bottom:20px;border:solid 1px #dfdfdf;background-color:#fff;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow:rgba(0,0,0,0.1) 0 2px 0,#fff 0 0 0 3px inset;box-shadow:rgba(0,0,0,0.1) 0 2px 0,#fff 0 0 0 3px inset}#content h3:not(.modal-title),#content .panel-heading:not(.modal-title),#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title),#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title),#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header{border:none;padding:0 5px;margin:-16px -16px 15px -16px;color:contrasted(#e6e8e3);font-size:1.2em;line-height:30px;font-weight:300;text-transform:uppercase;background-color:#fff;border-bottom:solid 1px #ccc}#content h3:not(.modal-title) i,#content .panel-heading:not(.modal-title) i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) i,#content h3:not(.modal-title) a,#content .panel-heading:not(.modal-title) a,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) a,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) a,#content .panel-heading i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header i,#content .panel-heading a,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header a,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header a{color:contrasted(#e6e8e3)}#content h3:not(.modal-title) .badge,#content .panel-heading:not(.modal-title) .badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .badge,#content h3:not(.modal-title) #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content h3:not(.modal-title) .notifs_badge,#content .panel-heading:not(.modal-title) #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content .panel-heading:not(.modal-title) .notifs_badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .notifs_badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .notifs_badge,#content .panel-heading .badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .badge,#content .panel-heading #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content .panel-heading .notifs_badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_badge{background-color:#1ba6e5;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;height:29px;line-height:25px;font-size:1.3em;margin-right:7px;font-weight:300;float:left;margin-left:-5px}#content h3:not(.modal-title) .panel-heading-action,#content .panel-heading:not(.modal-title) .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action,#content .panel-heading .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action{margin-right:-5px}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content .panel-heading .panel-heading-action a.list-toolbar-btn,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn{float:left;height:30px;width:30px;color:#1ba6e5;border-left:solid 1px #ccc}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content .panel-heading .panel-heading-action a.list-toolbar-btn:hover,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn:hover,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn:hover{text-decoration:none;color:#000}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content .panel-heading .panel-heading-action a.list-toolbar-btn i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn i{text-align:center;font-size:1.3em;line-height:30px}#content .panel-danger .panel-heading,#content .panel-danger #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .panel-danger .notifs_panel_header{background-color:#8bc954 !important}#content form .alert,#content form #carrier_wizard .wizard_error,#carrier_wizard #content form .wizard_error{clear:both}@media (max-width: 768px){#content{margin-left:0;width:100%}}#nobootstrap{float:left}.data-focus.data-focus-primary{background-color:#1ba6e5;color:#fff;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px}#customer_part .customerCard.selected-customer .panel,#customer_part .customerCard.selected-customer #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper #customer_part .customerCard.selected-customer .notifs_panel,#customer_part .customerCard.selected-customer #dash_version{color:#5cb85c;border:solid 2px #5cb85c}body.display-modal #content,body.display-modal #main{margin:0;padding:0;background:#f8f8f8}#content .panel .panel-footer,#content #header_notifs_icon_wrapper .notifs_panel .panel-footer,#header_notifs_icon_wrapper #content .notifs_panel .panel-footer,#content #dash_version .panel-footer,#header_notifs_icon_wrapper .notifs_panel #content .panel .notifs_panel_footer,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper #content .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper .notifs_panel #content #dash_version .notifs_panel_footer{margin:15px -20px -20px;height:73px}*:focus{outline:none !important;-moz-outline:none !important;-moz-user-focus:ignore !important}#header_infos{background-color:#242424}#header_shopname{font:300 1.3em/100% "Ubuntu",sans-serif}#header_notifs_icon_wrapper li a{padding:9px 5px}#header_notifs_icon_wrapper>li>a>i{font-size:1.4em;color:#fff;vertical-align:middle}#header_notifs_icon_wrapper .notifs_badge{background-color:#8bc954}#header_notifs_icon_wrapper .notifs_dropdown{background-color:transparent;border:none;box-shadow:none}#header_notifs_icon_wrapper .notifs_panel{width:300px;-webkit-box-shadow:rgba(0,0,0,0.5) 2px 2px 8px;box-shadow:rgba(0,0,0,0.5) 2px 2px 8px}#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header h3,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #content .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_panel_header{padding:0;font-size:1.3em;margin:0}#header_nav_toggle{background-color:#000;border:none;color:#fff}#header_employee_box a img{margin-right:5px}#header_employee_box #header_foaccess i{font-size:1.2em}#header_search{width:160px;padding:0 0 0 10px;position:relative}@media (max-width: 768px){#header_search{width:100%}}#header_search input,#header_search .form-group{margin:0}#header_search .form-group.focus-search{position:absolute;z-index:900;top:0;left:10px;width:400px}#footer{z-index:600;display:block;width:100%;background-color:rgba(36,36,36,0.85);color:#888;position:fixed;bottom:0;height:50px;line-height:50px}#footer a{color:#ccc}#footer #go-top{position:fixed;bottom:10px;height:30px;width:30px;text-align:center;line-height:30px;right:10px;z-index:9003;display:block;padding:0px 6px 0px 6px;margin:-2px 0px 0px;text-decoration:none;color:#fff;cursor:pointer;font-size:16px;background-color:rgba(0,0,0,0.5)}#footer #go-top:hover{background-color:#000}#footer .social-networks{margin:4px 0 0 0}a.link-social i{font-size:2em;width:30px;height:30px;display:inline-block;line-height:30px;text-align:center;-webkit-border-radius:30px;-moz-border-radius:30px;-ms-border-radius:30px;-o-border-radius:30px;border-radius:30px}a.link-social:hover{text-decoration:none}.link-twitter i{color:#fff;background-color:#7cceef}.link-twitter i:hover{color:#7cceef;background-color:#fff}.link-facebook i{color:#fff;background-color:#557dbb}.link-facebook i:hover{color:#557dbb;background-color:#fff}.link-github i{color:#000;background-color:#fff}.link-github i:hover{color:#fff;background-color:#000}.link-google i{color:#fff;background-color:#e6644e}.link-google i:hover{color:#e6644e;background-color:#fff}#nav-sidebar{position:fixed;width:240px;height:100% !important;overflow-y:auto;z-index:500;background-color:#515561;border-right:1px solid #000}#nav-sidebar li.maintab>a>i{display:inline-block;height:30px;width:30px;font-size:20px;line-height:30px;color:#fff;text-align:center;-webkit-border-radius:40px;-moz-border-radius:40px;-ms-border-radius:40px;-o-border-radius:40px;border-radius:40px}#nav-sidebar li:not(.active) ul{display:none}#nav-sidebar li.active span.submenu_expand{display:none}#nav-sidebar ul.menu{margin:0;padding:0;border-top:1px #000 solid;list-style:none}#nav-sidebar ul.menu li.maintab{position:relative}#nav-sidebar ul.menu li.maintab.active a.title,#nav-sidebar ul.menu li.maintab.active a.title:hover{color:#fff;background-color:#1ba6e5}#nav-sidebar ul.menu li.maintab.active a.title i,#nav-sidebar ul.menu li.maintab.active a.title:hover i{color:#000;background-color:#fff}#nav-sidebar ul.menu li.maintab.active a.title:hover{color:#fff}#nav-sidebar ul.menu li.maintab.expanded a.title{color:#fff;background-color:#3a3d45;border-bottom:solid 1px #17181c}#nav-sidebar ul.menu li.maintab.expanded a.title:hover{background-color:#686d7d}#nav-sidebar ul.menu li.maintab.expanded a.title i{color:#fff}#nav-sidebar ul.menu li.maintab.expanded ul.submenu{display:block}#nav-sidebar ul.menu li.maintab.expanded ul.submenu a{color:#9da1ae;background-color:#2e3037;border-bottom:solid 1px #17181c}#nav-sidebar ul.menu li.maintab.expanded ul.submenu a:hover{color:#fff;background-color:#454953}#nav-sidebar ul.menu li.maintab a.title{display:block;position:relative;padding:2px 0 2px 8px;border-bottom:1px solid #3a3d45;font-size:12px;line-height:28px;color:#cacccf;background-color:#515561;text-transform:uppercase;text-decoration:none;-webkit-transition-property:background-color,border,box-shadow;-moz-transition-property:background-color,border,box-shadow;-o-transition-property:background-color,border,box-shadow;transition-property:background-color,border,box-shadow;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-sidebar ul.menu li.maintab a.title i{color:#9094a2;background-color:#17181c;-webkit-transition-property:color;-moz-transition-property:color;-o-transition-property:color;transition-property:color;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-sidebar ul.menu li.maintab a.title:hover{background-color:#686d7d;color:#fff}#nav-sidebar ul.menu li.maintab a.title:hover i{color:#fff}#nav-sidebar ul.menu li.maintab span.submenu_expand{position:absolute;right:10px;top:2px;cursor:pointer;font-family:FontAwesome;font-size:24px;font-weight:100;color:#000;background-color:transparent;text-shadow:#686d7d 1px 1px 0}#nav-sidebar ul.menu li.maintab span.submenu_expand:hover{color:#fff;text-shadow:#232429 -1px -1px 0}#nav-sidebar ul.submenu{list-style:none;padding:0}#nav-sidebar ul.submenu li a{display:block;padding:4px 5px 4px 10px;font-size:12px;border:none;border-bottom:solid 1px #eee;background-color:#fff}#nav-sidebar ul.submenu li a:hover{color:#515561;background-color:#edeeef;text-decoration:none}#nav-sidebar ul.submenu li:last-child a{border-bottom:none}#nav-sidebar ul.submenu li.active a{color:#fff;background-color:#1ba6e5;border-bottom:solid 1px #1585b8}@media (max-width: 768px){#nav-sidebar{display:none}}#nav-topbar{position:fixed;height:28px;top:35px;left:80;width:100%;z-index:600;background-color:#fff}#nav-topbar ul.menu{height:28px;margin:0;padding:0;display:block;list-style:none}#nav-topbar ul.menu>li{height:28px;padding:0;margin:0;border-right:solid 1px #aaa;list-style:none;position:relative;float:left}#nav-topbar ul.menu>li>a{display:block;line-height:28px;color:#515561;padding:0 6px;margin:0}#nav-topbar ul.menu>li>a i{margin:0;width:15px;background-color:transparent;font-size:18px}#nav-topbar ul.menu>li>a:hover{text-decoration:none;background-color:#515561;color:#fff}#nav-topbar ul.menu>li>a:hover i{color:#fff !important}#nav-topbar ul.menu>li.active>a{color:#fff;background-color:#515561}#nav-topbar ul.menu>li.active>a i{color:#fff}#nav-topbar .menu-collapse{display:none}#nav-topbar ul.submenu{display:none !important;-webkit-box-shadow:rgba(0,0,0,0.3) 0 2px 4px;box-shadow:rgba(0,0,0,0.3) 0 2px 4px}#nav-topbar>ul.menu>li.expanded ul.submenu{display:block !important}#nav-topbar>ul.menu>li ul.submenu{display:none !important;position:absolute;margin:0;padding:0;left:0;top:28px;width:200px !important}#nav-topbar>ul.menu>li ul.submenu li{width:200px;padding:0;list-style:none}#nav-topbar>ul.menu>li ul.submenu li a{display:block;padding:4px 5px 4px 10px;font-size:12px;background-color:#fff;border-bottom:solid 1px #eee}#nav-topbar>ul.menu>li ul.submenu li a:hover{color:#515561;background-color:#edeeef;text-decoration:none}#nav-topbar>ul.menu>li ul.submenu li:last-child a{border-bottom:none}#nav-topbar>ul.menu>li ul.submenu li.active a{color:#fff;background-color:#1ba6e5;border-bottom:solid 1px #1585b8}.menu-collapse{height:54px;width:100%;font-size:2em;text-align:center;line-height:55px;display:block;background-color:#515561;border-bottom:3px solid #3a3d45;color:#0b0c0e}.page-topbar #main{padding-top:64px}.page-topbar #nav-sidebar{display:none}.page-topbar .page-head{top:63px}.page-topbar #content{margin-left:0;width:100%}.page-topbar #content .page-head h2.page-title{padding:0 0 0 20px}.page-sidebar-closed #nav-sidebar{overflow:visible;width:50px;-webkit-transition-property:width;-moz-transition-property:width;-o-transition-property:width;transition-property:width;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.page-sidebar-closed #nav-sidebar span.title{display:none}.page-sidebar-closed #nav-sidebar ul.submenu{display:none !important;padding-top:37px;position:relative;top:0;-webkit-box-shadow:rgba(0,0,0,0.2) 1px 1px 0,rgba(0,0,0,0.3) 2px 2px 4px;box-shadow:rgba(0,0,0,0.2) 1px 1px 0,rgba(0,0,0,0.3) 2px 2px 4px}.page-sidebar-closed #nav-sidebar>ul>li:hover{width:250px !important;position:relative}.page-sidebar-closed #nav-sidebar>ul>li:hover span.title{display:inline-block}.page-sidebar-closed #nav-sidebar>ul>li:hover ul.submenu{display:block !important;position:absolute;left:50px;width:200px !important}.page-sidebar-closed #content{margin-left:50px}.page-sidebar-closed #content .page-head h2.page-title{padding:0 0 0 70px}@media (max-width: 768px){.page-sidebar-closed #content .page-head h2.page-title{padding:0 0 0 20px}}@media (max-width: 768px){.page-sidebar-closed #content{margin-left:0;width:100%}}.page-sidebar-closed .submenu_expand{display:none}[class^="icon-Admin"]{margin-right:6px}.fixed-width-xs{width:40px !important}.fixed-width-sm{width:80px !important}.fixed-width-md{width:120px !important}.fixed-width-lg{width:160px !important}.fixed-width-xl{width:200px !important}.fixed-width-xxl{width:250px !important}.row-margin-bottom{margin-bottom:15px}.row-padding-top{padding-top:15px}.thumbnail{background-color:#fff;border-color:#ccc !important}.badge,#header_notifs_icon_wrapper .notifs_badge,.badge.badge-success,.badge.badge-error{background-color:#8fc04d}#header_notifs_icon_wrapper .badge-success.notifs_badge,.badge-success.badge{background-color:#5cb85c}#header_notifs_icon_wrapper .badge-error.notifs_badge,.badge-error.badge{background-color:#d9534f}.nav-tabs{border-bottom:none}.nav-tabs li a{font-size:1.1em;font-family:"Ubuntu",sans-serif;text-transform:uppercase;font-weight:300}.nav-tabs li.active a,.nav-tabs li.active a:hover,.nav-tabs li.active a:focus{background-color:#fff}.alert.alert-danger,#carrier_wizard .wizard_error{padding-left:60px;position:relative}.alert.alert-danger:before,#carrier_wizard .wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f00d"}.alert.alert-success,#carrier_wizard .alert-success.wizard_error{padding-left:60px;position:relative}.alert.alert-success:before,#carrier_wizard .alert-success.wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f00c"}.alert.alert-info,#carrier_wizard .alert-info.wizard_error{padding-left:60px;position:relative}.alert.alert-info:before,#carrier_wizard .alert-info.wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\F05A"}.overflow-y{height:200px;overflow-y:auto}.table{border-collapse:separate;border-spacing:0 2px 0 0;margin-bottom:5px}.table thead>tr>th{border:none;font-weight:normal;vertical-align:top}.table thead>tr>th span.title_box{color:#000;font-size:1.1em;font-weight:bold;display:block;word-wrap:nowrap;white-space:nowrap}.table thead>tr>th span.title_box.active{font-weight:bold}.table thead>tr>th span.title_box a{text-decoration:none}.table thead>tr>th span.title_box a.active{color:#000}.table input,.table select{margin:0}.table tbody>tr>td{border-top:none;background-color:#fff}.table tbody>tr>td{padding:3px 7px;vertical-align:middle;word-wrap:nowrap;font-size:12px;border-bottom:solid 1px #eee}.table td.center,.table th.center{text-align:center}.table td.pointer{cursor:pointer}.table tr td:first-child,.table tr th:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.table tr td:last-child,.table tr th:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}tr.filter{background-color:#dfeff8}tr.filter input[type="text"].filter,tr.filter input[type="password"].filter,tr.filter select.filter{font-size:12px;border-color:#a0d0eb}tr.highlighted td{background-color:#1ba6e5 !important;color:#fff}td.actions{min-width:200px}.bulk-actions{margin:17px 0 0 0}.tree{padding:0 0 0 20px;list-style:none}.tree input{margin-right:4px}.tree i{font-size:1.3em}.tree .tree-item-name,.tree .tree-folder-name{padding:0 5px;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px;font-weight:normal}.tree .tree-item-name:hover,.tree .tree-folder-name:hover{background-color:#eee;cursor:pointer}.tree .tree-selected{background-color:#a4dcf5}.tree .tree-selected i.tree-dot{background-color:#1ba6e5}.tree i.tree-dot{display:inline-block;position:relative;width:6px;height:6px;margin:0 4px 0 6px;background-color:#ccc;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px}.tree .tree-item-disable,.tree .tree-folder-name-disable{color:#ccc}.tree .tree-item-disable:hover,.tree .tree-folder-name-disable:hover{color:#ccc;background-color:none}.tree-actions{padding-bottom:4px;display:inline-block}.tree-panel-heading-controls{margin:-20px -20px 20px;padding:5px;border-bottom:solid 1px #dfdfdf}label.control-label{font-size:13px;font-weight:normal;color:#666}label.control-label span.label-tooltip{text-decoration:none;font-size:13px;background-color:#ebebeb;border:none;border-bottom:solid 1px #dfdfdf;padding:0 5px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}label.required:before{content:"*";color:red;font-size:14px;position:relative;line-height:12px}.tooltip{font-size:12px}select.input-tiny,input[type="text"].input-tiny,input[type="password"].input-tiny{width:80px;float:left}textarea{resize:none}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{background-color:#fefbe2;-webkit-box-shadow:none;box-shadow:none}.btn{text-transform:uppercase}.btn .caret{border-top-color:#333 !important}.btn:hover .caret,.btn:focus .caret{border-top-color:#fff !important}.btn.btn-default{-webkit-box-shadow:#e6e6e6 0 -2px 0 inset;box-shadow:#e6e6e6 0 -2px 0 inset}.btn.btn-default:hover{-webkit-box-shadow:none;box-shadow:none;background-color:#1ba6e5;color:#fff;border-color:#1585b8}.btn.btn-default:hover i{color:#fff}.btn.btn-primary{background-color:#1ba6e5;color:#fff;border-color:#1585b8}.btn.btn-default[disabled]{border-color:#999;color:#999;background-color:#f2f2f2;-webkit-box-shadow:#ccc 0 -2px 0 inset;box-shadow:#ccc 0 -2px 0 inset}.dropdown-menu{text-align:left}.btn-group-action{width:175px}.btn-group-action a{text-decoration:none}.tt-query{border-bottom-right-radius:3px !important;border-top-right-radius:3px !important}.tt-dropdown-menu{background-color:#fff;border:solid 1px #ccc;font-size:0.9em;text-transform:none}.tt-suggestions{padding:0 6px;-webkit-box-shadow:rgba(0,0,0,0.25) 0 1px 4px;box-shadow:rgba(0,0,0,0.25) 0 1px 4px}.tt-suggestion p{border-bottom:solid 1px #ccc;margin:0 !important;padding:0 !important}.tt-suggestion:last-child p{border-bottom:none}.tagify-container{background-color:#fff;padding:2px 6px;min-height:30px;overflow:auto;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;border:solid 1px #ccc;-webkit-box-shadow:rgba(0,0,0,0.075) 0 1px 1px inset;box-shadow:rgba(0,0,0,0.075) 0 1px 1px inset}.tagify-container span{float:left}.tagify-container>span{display:inline-block;padding:3px 5px;margin:3px;border-radius:2px;border:1px solid #1ba6e5;background-color:#60c1ed;color:#fff}.tagify-container>span>a{padding-left:5px;color:#1ba6e5;text-decoration:none;font-weight:bold}.tagify-container>input{margin-top:2px;border:0 none;width:100px;-webkit-box-shadow:none;box-shadow:none}.tagify-container>input:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}.box-stats{background-color:#fff}.box-stats .boxchart-overlay{padding:10px 10px 5px 10px;margin-right:10px;float:left;color:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.box-stats i{float:left;height:64px;width:64px;margin-right:10px;color:#fff;font-size:35px;text-align:center;line-height:64px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.box-stats .title{color:#666;display:block}.box-stats .value{font-size:22px}.box-stats small{line-height:0.3em;color:#aaa;text-transform:uppercase}.box-stats:hover{text-decoration:none}.color1 i,.color1 .boxchart-overlay{background-color:#2ba8e3;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color1 .value{color:#2ba8e3}.color2 i,.color2 .boxchart-overlay{background-color:#ff5450;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color2 .value{color:#ff5450}.color3 i,.color3 .boxchart-overlay{background-color:#9e5ba1;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color3 .value{color:#9e5ba1}.color4 i,.color4 .boxchart-overlay{background-color:#95cc6b;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color4 .value{color:#95cc6b}.data_chart rect{fill:#fff}.data_chart path{stroke:#fff;stroke-width:2;fill:none}.data_chart line{stroke:#000}.data_chart .area{fill:rgba(255,255,255,0.3);stroke-width:0}.icon-big{font-size:4em;color:#c5c5c5}.switch .slide-button,.toggle p span{display:none}.switch{background-color:#d2d2d2;border-radius:3px}.switch label{padding:0;cursor:pointer}@media only screen{.toggle{position:relative;padding:0;margin-left:100px}.toggle label{position:relative;z-index:3;display:block;width:100%}.toggle input{position:absolute;opacity:0;z-index:5}.toggle p{position:absolute;left:-100px;width:100%;margin:0;padding-right:100px;text-align:left}.toggle p span{position:absolute;top:0;left:0;z-index:5;display:block;width:50%;margin-left:100px;text-align:center}.toggle:last-child{left:50%}.toggle .slide-button{position:absolute;right:0;top:0;z-index:4;display:block;width:50%;height:100%;padding:0}.switch{position:relative;padding:0}.switch input{position:absolute;opacity:0}.switch label{position:relative;z-index:2;float:left;width:50%;height:100%;margin:0;text-align:center}.switch .slide-button{position:absolute;top:0;left:0;padding:0;z-index:1;width:50%;height:100%}.switch input:last-of-type:checked ~ .slide-button{left:50%}.switch.switch-three label,.switch.switch-three .slide-button{width:33.3%}.switch.switch-three input:checked:nth-of-type(2) ~ .slide-button{left:33.3%}.switch.switch-three input:checked:last-of-type ~ .slide-button{left:66.6%}.switch.switch-four label,.switch.switch-four .slide-button{width:25%}.switch.switch-four input:checked:nth-of-type(2) ~ .slide-button{left:25%}.switch.switch-four input:checked:nth-of-type(3) ~ .slide-button{left:50%}.switch.switch-four input:checked:last-of-type ~ .slide-button{left:75%}.switch.switch-five label,.switch.switch-five .slide-button{width:20%}.switch.switch-five input:checked:nth-of-type(2) ~ .slide-button{left:20%}.switch.switch-five input:checked:nth-of-type(3) ~ .slide-button{left:40%}.switch.switch-five input:checked:nth-of-type(4) ~ .slide-button{left:60%}.switch.switch-five input:checked:last-of-type ~ .slide-button{left:80%}.toggle,.switch{display:block;height:27px}.switch *,.toggle *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}.switch .slide-button,.toggle .slide-button{display:block;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-ms-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.toggle label,.toggle p,.switch label{line-height:27px;vertical-align:middle}.toggle input:checked ~ .slide-button{right:50%}.toggle input:focus ~ .slide-button,.switch input:focus+label{outline:1px dotted #888}.switch,.toggle{-webkit-animation:bugfix infinite 1s}.prestashop-switch{min-width:150px;color:#666;text-align:center;border-radius:3px;-webkit-box-shadow:rgba(0,0,0,0.2) 0 2px 5px 1px inset;box-shadow:rgba(0,0,0,0.2) 0 2px 5px 1px inset}.prestashop-switch label{padding-top:0 !important;font-weight:500}.prestashop-switch input:checked+label{color:#333 !important;text-shadow:rgba(255,255,255,0.7) 1px 1px 0}.prestashop-switch input:not(:checked)+label i{color:#666 !important}.prestashop-switch .slide-button{position:relative;margin-right:3px;color:#fff}.prestashop-switch p{color:#333}.prestashop-switch span{color:#fff}}.page-head{width:100%;height:55px;padding:0 10px 0 0;margin:0;border-bottom:4px solid #75a139;position:fixed;top:36px;left:0px;z-index:499;background-color:#8fc04d;-webkit-box-shadow:rgba(0,0,0,0.15) 0 7px 0;box-shadow:rgba(0,0,0,0.15) 0 7px 0}.page-head h2.page-title{padding:0 0 0 260px;font-size:18px;color:#fff;text-transform:uppercase}@media (max-width: 768px){.page-head h2.page-title{padding:0 0 0 20px}}.page-head h2.page-title a{border-bottom:dotted 1px #fff}.page-head h2.page-title a:hover{color:#000;border-color:#000}.page-head a{color:#fff;text-decoration:none}.page-head .btn-toolbar{margin:0;padding:3px 0 0 0}.page-head .btn-toolbar .nav-tabs{margin:0}.page-head .btn-toolbar .nav-tabs>li>a{color:#333}.toolbar_btn{position:relative;padding:2px 5px !important;margin-right:3px;font-size:12px;font-weight:600;color:#fff;text-align:center;text-shadow:none}.toolbar_btn:hover{color:#8fc04d;border-color:#fff;background-color:#fff !important}[class^="process-icon-"],[class*=" process-icon-"]{height:25px;min-width:32px;background-position:center;background-repeat:no-repeat;display:block;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:25px;line-height:25px;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:0.3em}.page-header-toolbar-back{border:none !important;display:inline-block}#datepicker .input-selected{margin:0}#datepicker #date-start.input-selected,#datepicker #date-end.input-selected{border:solid 3px #00a4e7}#datepicker #date-start-compare.input-selected,#datepicker #date-end-compare.input-selected{border:solid 3px #ff8000}#datepicker div#datepicker-form #date-range{border:solid 1px #0092ce}#datepicker div#datepicker-form #date-range .form-date-heading{background-color:#0092ce}#datepicker div#datepicker-form #date-compare{border:solid 1px #e67300}#datepicker div#datepicker-form #date-compare .form-date-heading{background-color:#e67300}#datepicker div#datepicker-form .form-date-heading{height:30px;line-height:30px;padding:0 0 0 8px}#datepicker div#datepicker-form .form-date-heading .title,#datepicker div#datepicker-form .form-date-heading .checkbox-title label{font-size:1.15em;color:#fff;font-weight:200;text-transform:uppercase;line-height:2em}#datepicker div#datepicker-form .form-date-heading .btn-default{background-color:rgba(255,255,255,0.3);font-weight:700;color:#fff;border:none}#datepicker div#datepicker-form .form-date-heading select{margin:2px 2px 0 0}#datepicker div#datepicker-form .form-date-body,#datepicker div#datepicker-form .form-date-actions{width:100%;padding:10px;background-color:#fff;display:inline-block}#datepicker div#datepicker-form .form-date-actions{border:solid 1px #ccc}#datepicker div#datepicker-form .form-date-group{clear:both;width:100%;margin:0 auto 6px auto}#datepicker div#datepicker-form .form-date-group label{font-size:0.8em;font-weight:700;text-transform:uppercase;color:#666}#datepicker div#datepicker-form .form-date-group input{margin:4px 4px 0 0}#datepicker div#datepicker-form .form-date-group input[type='text']{width:35%}#datepicker div#datepicker-form .form-date-group button{margin:5px 0 0 0}#datepicker .daterangepicker{position:relative;margin:0 0 8px 0;width:100%;font-size:13px;border:solid 1px #ccc}#datepicker .daterangepicker table{width:100%;margin:0;border-spacing:1px}#datepicker .daterangepicker thead tr th:after{content:"";border-top:1px solid #0080b4;width:100%;display:block}#datepicker .daterangepicker thead tr th{background-color:#0092ce;color:#004968;font-size:0.7em;font-weight:700;border-bottom:solid 1px #0cb8ff;text-transform:uppercase}#datepicker .daterangepicker thead tr:first-child th{background-color:#fff;font-weight:200;font-size:1.4em;color:#00a4e7}#datepicker .daterangepicker td,#datepicker .daterangepicker th{text-align:center;padding:0;position:relative}#datepicker .daterangepicker td{color:#00a4e7;height:2.4em;padding:0 8px}#datepicker .daterangepicker td.day:after{content:"";position:absolute;display:block;top:0;left:0;width:100%;z-index:0;background-color:transparent}#datepicker .daterangepicker td.day:hover{cursor:pointer}#datepicker .daterangepicker td.day.disabled{color:#ccc}#datepicker .daterangepicker td.old,#datepicker .daterangepicker td.new{color:#ccc}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected){color:#fff;font-weight:700;background-color:#00a4e7;border-bottom-left-radius:15px;border-top-left-radius:15px}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).range-compare{background-color:#4ca0b1;border-bottom-left-radius:0;border-top-left-radius:0}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).end-selected-compare,#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).start-selected-compare{background-color:#4c99a1}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).end-selected-compare{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected){color:#fff;font-weight:700;background-color:#00a4e7;border-bottom-right-radius:15px;border-top-right-radius:15px}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).range-compare{background-color:#4ca0b1;border-bottom-right-radius:0;border-top-right-radius:0}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).end-selected-compare,#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).start-selected-compare{background-color:#4c99a1}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).start-selected-compare{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.start-selected-compare:not(.old):not(.new):not(.end-selected-compare){color:#fff;font-weight:700;background-color:#ff8000;border-bottom-left-radius:15px;border-top-left-radius:15px}#datepicker .daterangepicker td.start-selected-compare:not(.old):not(.new):not(.end-selected-compare).range{background-color:#ba924c;border-bottom-left-radius:0;border-top-left-radius:0}#datepicker .daterangepicker td.end-selected-compare:not(.old):not(.new):not(.start-selected-compare){color:#fff;font-weight:700;background-color:#ff8000;border-bottom-right-radius:15px;border-top-right-radius:15px}#datepicker .daterangepicker td.end-selected-compare:not(.old):not(.new):not(.start-selected-compare).range{background-color:#ba924c;border-bottom-right-radius:0;border-top-right-radius:0}#datepicker .daterangepicker td.end-selected.start-selected{color:#fff;-webkit-border-radius:15px;-moz-border-radius:15px;-ms-border-radius:15px;-o-border-radius:15px;border-radius:15px;font-weight:700;background-color:#00a4e7}#datepicker .daterangepicker td.end-selected.start-selected.range-compare{background-color:#4ca0b1;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.end-selected-compare.start-selected-compare{color:#fff;-webkit-border-radius:15px;-moz-border-radius:15px;-ms-border-radius:15px;-o-border-radius:15px;border-radius:15px;font-weight:700;background-color:#ff8000}#datepicker .daterangepicker td.end-selected-compare.start-selected-compare.range{background-color:#ba924c;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.range{color:#cef1ff;background-color:#1bbdff}#datepicker .daterangepicker td.range.range-compare{background-color:#8dab99}#datepicker .daterangepicker td.range-compare{color:#fff2e5;background-color:#f93}#datepicker .daterangepicker td.range-compare.range{background-color:#8dab99}#datepicker .daterangepicker td.today{background-color:#fff}#datepicker .daterangepicker td span{padding:0;display:block;width:33.333%;height:3em;line-height:3em;font-weight:400;float:left;text-transform:uppercase;cursor:pointer}#datepicker .daterangepicker td span:hover{background-color:#00a4e7}#datepicker .daterangepicker td span.active{background-color:#00a4e7;color:#fff}#datepicker .daterangepicker td span.old{color:#ccc}#datepicker .daterangepicker th.switch{width:145px}#datepicker .daterangepicker th.next,#datepicker .daterangepicker th.prev{font-size:1.3em}#datepicker .daterangepicker thead tr:first-child th{cursor:pointer}.chevron-left,.chevron-right{position:relative}.chevron-left:before,.chevron-right:before{display:block;content:"";width:0;height:0;border-style:solid;position:absolute}.chevron-left:before{right:0;top:0;border-width:1.2em 0 1.2em 0.5em;border-color:transparent transparent transparent #00a4e7;background-color:#1bbdff}.chevron-right:before{left:0;top:0;border-width:1.2em 0 1.2em 0.5em;border-color:transparent transparent transparent #1bbdff;background-color:#00a4e7}.input-complete{-webkit-animation:one 0.2s ease-in-out;-moz-animation:one 0.2s ease-in-out;-ms-animation:one 0.2s ease-in-out;-o-animation:one 0.2s ease-in-out;animation:one 0.2s ease-in-out}@-webkit-keyframes one{0%{background-color:#00a4e7}100%{background-color:#fff}}@-webkit-keyframes two{0%{-webkit-box-shadow:#00a4e7 0 0 0 20px inset;box-shadow:#00a4e7 0 0 0 20px inset}100%{-webkit-box-shadow:#00a4e7 0 0 0 inset;box-shadow:#00a4e7 0 0 0 inset}}/* Ladda + */@font-face{font-family:'FontAwesome';src:url("../font/fontawesome-webfont.eot?v=3.2.1");src:url("../font/fontawesome-webfont.eot?#iefix&v=3.2.1") format("embedded-opentype"),url("../font/fontawesome-webfont.woff?v=3.2.1") format("woff"),url("../font/fontawesome-webfont.ttf?v=3.2.1") format("truetype"),url("../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1") format("svg");font-weight:normal;font-style:normal}[class^="icon-"],[class*=" icon-"]{font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:.3em}[class^="icon-"]:before,[class*=" icon-"]:before{text-decoration:inherit;display:inline-block;speak:none}.icon-large:before{vertical-align:-10%;font-size:1.3333333333333333em}a [class^="icon-"],a [class*=" icon-"]{display:inline}[class^="icon-"].icon-fixed-width,[class*=" icon-"].icon-fixed-width{display:inline-block;width:1.1428571428571428em;text-align:right;padding-right:0.2857142857142857em}[class^="icon-"].icon-fixed-width.icon-large,[class*=" icon-"].icon-fixed-width.icon-large{width:1.4285714285714286em}.icons-ul{margin-left:2.142857142857143em;list-style-type:none}.icons-ul>li{position:relative}.icons-ul .icon-li{position:absolute;left:-2.142857142857143em;width:2.142857142857143em;text-align:center;line-height:inherit}[class^="icon-"].hide,[class*=" icon-"].hide{display:none}.icon-muted{color:#eeeeee}.icon-light{color:#ffffff}.icon-dark{color:#333333}.icon-border{border:solid 1px #eeeeee;padding:.2em .25em .15em;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.icon-2x{font-size:2em}.icon-2x.icon-border{border-width:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.icon-3x{font-size:3em}.icon-3x.icon-border{border-width:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.icon-4x{font-size:4em}.icon-4x.icon-border{border-width:4px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.icon-5x{font-size:5em}.icon-5x.icon-border{border-width:5px;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.pull-right,#content h3:not(.modal-title) .panel-heading-action,#content .panel-heading .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action{float:right}.pull-left,.page-head h2.page-title{float:left}[class^="icon-"].pull-left,.page-head h2[class^="icon-"].page-title,[class*=" icon-"].pull-left,.page-head h2[class*=" icon-"].page-title{margin-right:.3em}[class^="icon-"].pull-right,#content h3:not(.modal-title) [class^="icon-"].panel-heading-action,#content .panel-heading [class^="icon-"].panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].panel-heading-action,[class*=" icon-"].pull-right,#content h3:not(.modal-title) [class*=" icon-"].panel-heading-action,#content .panel-heading [class*=" icon-"].panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].panel-heading-action{margin-left:.3em}[class^="icon-"],[class*=" icon-"]{display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],#header_infos .nav>.active>a>[class^="icon-"],.navbar-inverse #header_notifs_icon_wrapper>.active>a>[class^="icon-"],#header_infos #header_notifs_icon_wrapper>.active>a>[class^="icon-"],.navbar-inverse #header_employee_box>.active>a>[class^="icon-"],#header_infos #header_employee_box>.active>a>[class^="icon-"],.navbar-inverse #header_quick>.active>a>[class^="icon-"],#header_infos #header_quick>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],#header_infos .nav>.active>a>[class*=" icon-"],.navbar-inverse #header_notifs_icon_wrapper>.active>a>[class*=" icon-"],#header_infos #header_notifs_icon_wrapper>.active>a>[class*=" icon-"],.navbar-inverse #header_employee_box>.active>a>[class*=" icon-"],#header_infos #header_employee_box>.active>a>[class*=" icon-"],.navbar-inverse #header_quick>.active>a>[class*=" icon-"],#header_infos #header_quick>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:none}.btn [class^="icon-"].icon-large,.nav [class^="icon-"].icon-large,#header_notifs_icon_wrapper [class^="icon-"].icon-large,#header_employee_box [class^="icon-"].icon-large,#header_quick [class^="icon-"].icon-large,.btn [class*=" icon-"].icon-large,.nav [class*=" icon-"].icon-large,#header_notifs_icon_wrapper [class*=" icon-"].icon-large,#header_employee_box [class*=" icon-"].icon-large,#header_quick [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].icon-spin,.btn #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading .btn [class^="icon-"].data_value:before,.nav [class^="icon-"].icon-spin,#header_notifs_icon_wrapper [class^="icon-"].icon-spin,#header_employee_box [class^="icon-"].icon-spin,#header_quick [class^="icon-"].icon-spin,.nav #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading .nav [class^="icon-"].data_value:before,#header_notifs_icon_wrapper #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_notifs_icon_wrapper [class^="icon-"].data_value:before,#header_employee_box #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_employee_box [class^="icon-"].data_value:before,#header_quick #dashboard .loading [class^="icon-"].data_value:before,#dashboard .loading #header_quick [class^="icon-"].data_value:before,.btn [class*=" icon-"].icon-spin,.btn #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading .btn [class*=" icon-"].data_value:before,.nav [class*=" icon-"].icon-spin,#header_notifs_icon_wrapper [class*=" icon-"].icon-spin,#header_employee_box [class*=" icon-"].icon-spin,#header_quick [class*=" icon-"].icon-spin,.nav #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading .nav [class*=" icon-"].data_value:before,#header_notifs_icon_wrapper #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_notifs_icon_wrapper [class*=" icon-"].data_value:before,#header_employee_box #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_employee_box [class*=" icon-"].data_value:before,#header_quick #dashboard .loading [class*=" icon-"].data_value:before,#dashboard .loading #header_quick [class*=" icon-"].data_value:before{display:inline-block}.nav-tabs [class^="icon-"],.nav-pills [class^="icon-"],.nav-tabs [class*=" icon-"],.nav-pills [class*=" icon-"],.nav-tabs [class^="icon-"].icon-large,.nav-pills [class^="icon-"].icon-large,.nav-tabs [class*=" icon-"].icon-large,.nav-pills [class*=" icon-"].icon-large{line-height:.9em}.btn [class^="icon-"].pull-left.icon-2x,.btn .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn h2[class^="icon-"].icon-2x.page-title,.btn [class*=" icon-"].pull-left.icon-2x,.btn .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn h2[class*=" icon-"].icon-2x.page-title,.btn [class^="icon-"].pull-right.icon-2x,.btn #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn [class^="icon-"].icon-2x.panel-heading-action,.btn #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn [class^="icon-"].icon-2x.panel-heading-action,.btn [class*=" icon-"].pull-right.icon-2x,.btn #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn [class*=" icon-"].icon-2x.panel-heading-action,.btn #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn [class*=" icon-"].icon-2x.panel-heading-action{margin-top:.18em}.btn [class^="icon-"].icon-spin.icon-large,.btn #dashboard .loading [class^="icon-"].icon-large.data_value:before,#dashboard .loading .btn [class^="icon-"].icon-large.data_value:before,.btn [class*=" icon-"].icon-spin.icon-large,.btn #dashboard .loading [class*=" icon-"].icon-large.data_value:before,#dashboard .loading .btn [class*=" icon-"].icon-large.data_value:before{line-height:.8em}.btn.btn-small [class^="icon-"].pull-left.icon-2x,.btn.btn-small .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-small h2[class^="icon-"].icon-2x.page-title,.btn.btn-small [class*=" icon-"].pull-left.icon-2x,.btn.btn-small .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-small h2[class*=" icon-"].icon-2x.page-title,.btn.btn-small [class^="icon-"].pull-right.icon-2x,.btn.btn-small #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-small [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-small [class*=" icon-"].pull-right.icon-2x,.btn.btn-small #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-small #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-small [class*=" icon-"].icon-2x.panel-heading-action{margin-top:.25em}.btn.btn-large [class^="icon-"],.btn.btn-large [class*=" icon-"]{margin-top:0}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class^="icon-"].icon-2x.page-title,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class*=" icon-"].icon-2x.page-title,.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large [class*=" icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action{margin-top:.05em}.btn.btn-large [class^="icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class^="icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class^="icon-"].icon-2x.page-title,.btn.btn-large [class*=" icon-"].pull-left.icon-2x,.btn.btn-large .page-head h2[class*=" icon-"].icon-2x.page-title,.page-head .btn.btn-large h2[class*=" icon-"].icon-2x.page-title{margin-right:.2em}.btn.btn-large [class^="icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class^="icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class^="icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class^="icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class^="icon-"].icon-2x.panel-heading-action,.btn.btn-large [class*=" icon-"].pull-right.icon-2x,.btn.btn-large #content h3:not(.modal-title) [class*=" icon-"].icon-2x.panel-heading-action,#content h3:not(.modal-title) .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content .panel-heading [class*=" icon-"].icon-2x.panel-heading-action,#content .panel-heading .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action,.btn.btn-large #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header [class*=" icon-"].icon-2x.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.btn-large [class*=" icon-"].icon-2x.panel-heading-action{margin-left:.2em}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{line-height:inherit}.icon-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:-35%}.icon-stack [class^="icon-"],.icon-stack [class*=" icon-"]{display:block;text-align:center;position:absolute;width:100%;height:100%;font-size:1em;line-height:inherit;*line-height:2em}.icon-stack .icon-stack-base{font-size:2em;*line-height:1em}.icon-spin,#dashboard .loading .data_value:before{display:inline-block;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;-webkit-animation:spin 2s infinite linear;animation:spin 2s infinite linear}a .icon-stack,a .icon-spin,a #dashboard .loading .data_value:before,#dashboard .loading a .data_value:before{display:inline-block;text-decoration:none}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.icon-rotate-90:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1)}.icon-rotate-180:before{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2)}.icon-rotate-270:before{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.icon-flip-horizontal:before{-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.icon-flip-vertical:before{-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}a .icon-rotate-90:before,a .icon-rotate-180:before,a .icon-rotate-270:before,a .icon-flip-horizontal:before,a .icon-flip-vertical:before{display:inline-block}.icon-glass:before{content:"\f000"}.icon-music:before{content:"\f001"}.icon-search:before{content:"\f002"}.icon-envelope-alt:before{content:"\f003"}.icon-heart:before{content:"\f004"}.icon-star:before{content:"\f005"}.icon-star-empty:before{content:"\f006"}.icon-user:before{content:"\f007"}.icon-film:before{content:"\f008"}.icon-th-large:before{content:"\f009"}.icon-th:before{content:"\f00a"}.icon-th-list:before{content:"\f00b"}.icon-ok:before{content:"\f00c"}.icon-remove:before,.process-icon-cancel:before{content:"\f00d"}.icon-zoom-in:before{content:"\f00e"}.icon-zoom-out:before{content:"\f010"}.icon-power-off:before,.icon-off:before{content:"\f011"}.icon-signal:before{content:"\f012"}.icon-gear:before,.icon-cog:before,.icon-AdminAdmin:before,.process-icon-configure:before{content:"\f013"}.icon-trash:before,.process-icon-delete:before{content:"\f014"}.icon-home:before{content:"\f015"}.icon-file-alt:before{content:"\f016"}.icon-time:before{content:"\f017"}.icon-road:before{content:"\f018"}.icon-download-alt:before{content:"\f019"}.icon-download:before,.process-icon-save-date:before,.process-icon-save-status:before{content:"\f01a"}.icon-upload:before{content:"\f01b"}.icon-inbox:before{content:"\f01c"}.icon-play-circle:before{content:"\f01d"}.icon-rotate-right:before,.icon-repeat:before{content:"\f01e"}.icon-refresh:before,.process-icon-refresh:before{content:"\f021"}.icon-list-alt:before{content:"\f022"}.icon-lock:before{content:"\f023"}.icon-flag:before{content:"\f024"}.icon-headphones:before{content:"\f025"}.icon-volume-off:before{content:"\f026"}.icon-volume-down:before{content:"\f027"}.icon-volume-up:before{content:"\f028"}.icon-qrcode:before{content:"\f029"}.icon-barcode:before{content:"\f02a"}.icon-tag:before{content:"\f02b"}.icon-tags:before,.icon-AdminPriceRule:before{content:"\f02c"}.icon-book:before,.icon-AdminCatalog:before{content:"\f02d"}.icon-bookmark:before{content:"\f02e"}.icon-print:before{content:"\f02f"}.icon-camera:before{content:"\f030"}.icon-font:before{content:"\f031"}.icon-bold:before{content:"\f032"}.icon-italic:before{content:"\f033"}.icon-text-height:before{content:"\f034"}.icon-text-width:before{content:"\f035"}.icon-align-left:before{content:"\f036"}.icon-align-center:before{content:"\f037"}.icon-align-right:before{content:"\f038"}.icon-align-justify:before{content:"\f039"}.icon-list:before{content:"\f03a"}.icon-indent-left:before{content:"\f03b"}.icon-indent-right:before{content:"\f03c"}.icon-facetime-video:before{content:"\f03d"}.icon-picture:before{content:"\f03e"}.icon-pencil:before{content:"\f040"}.icon-map-marker:before{content:"\f041"}.icon-adjust:before{content:"\f042"}.icon-tint:before{content:"\f043"}.icon-edit:before,.process-icon-edit:before{content:"\f044"}.icon-share:before{content:"\f045"}.icon-check:before{content:"\f046"}.icon-move:before{content:"\f047"}.icon-step-backward:before{content:"\f048"}.icon-fast-backward:before{content:"\f049"}.icon-backward:before{content:"\f04a"}.icon-play:before{content:"\f04b"}.icon-pause:before{content:"\f04c"}.icon-stop:before{content:"\f04d"}.icon-forward:before{content:"\f04e"}.icon-fast-forward:before{content:"\f050"}.icon-step-forward:before{content:"\f051"}.icon-eject:before{content:"\f052"}.icon-chevron-left:before{content:"\f053"}.icon-chevron-right:before{content:"\f054"}.icon-plus-sign:before,.process-icon-newCombination.toolbar-new:before{content:"\f055"}.icon-minus-sign:before,.process-icon-newCombination.toolbar-cancel:before{content:"\f056"}.icon-remove-sign:before{content:"\f057"}.icon-ok-sign:before{content:"\f058"}.icon-question-sign:before,.process-icon-help:before,.process-icon-help-new:before{content:"\f059"}.icon-info-sign:before{content:"\f05a"}.icon-screenshot:before{content:"\f05b"}.icon-remove-circle:before{content:"\f05c"}.icon-ok-circle:before{content:"\f05d"}.icon-ban-circle:before{content:"\f05e"}.icon-arrow-left:before{content:"\f060"}.icon-arrow-right:before{content:"\f061"}.icon-arrow-up:before{content:"\f062"}.icon-arrow-down:before{content:"\f063"}.icon-mail-forward:before,.icon-share-alt:before{content:"\f064"}.icon-resize-full:before{content:"\f065"}.icon-resize-small:before{content:"\f066"}.icon-plus:before,.process-icon-new-module:before{content:"\f067"}.icon-minus:before{content:"\f068"}.icon-asterisk:before{content:"\f069"}.icon-exclamation-sign:before{content:"\f06a"}.icon-gift:before{content:"\f06b"}.icon-leaf:before{content:"\f06c"}.icon-fire:before{content:"\f06d"}.icon-eye-open:before,.process-icon-preview:before,.process-icon-previewURL:before{content:"\f06e"}.icon-eye-close:before{content:"\f070"}.icon-warning-sign:before{content:"\f071"}.icon-plane:before{content:"\f072"}.icon-calendar:before{content:"\f073"}.icon-random:before{content:"\f074"}.icon-comment:before{content:"\f075"}.icon-magnet:before{content:"\f076"}.icon-chevron-up:before{content:"\f077"}.icon-chevron-down:before{content:"\f078"}.icon-retweet:before{content:"\f079"}.icon-shopping-cart:before{content:"\f07a"}.icon-folder-close:before{content:"\f07b"}.icon-folder-open:before{content:"\f07c"}.icon-resize-vertical:before{content:"\f07d"}.icon-resize-horizontal:before{content:"\f07e"}.icon-bar-chart:before,.icon-AdminParentStats:before,.process-icon-stats:before{content:"\f080"}.icon-twitter-sign:before{content:"\f081"}.icon-facebook-sign:before{content:"\f082"}.icon-camera-retro:before{content:"\f083"}.icon-key:before{content:"\f084"}.icon-gears:before,.icon-cogs:before,.icon-AdminTools:before{content:"\f085"}.icon-comments:before{content:"\f086"}.icon-thumbs-up-alt:before{content:"\f087"}.icon-thumbs-down-alt:before{content:"\f088"}.icon-star-half:before{content:"\f089"}.icon-heart-empty:before{content:"\f08a"}.icon-signout:before{content:"\f08b"}.icon-linkedin-sign:before{content:"\f08c"}.icon-pushpin:before{content:"\f08d"}.icon-external-link:before{content:"\f08e"}.icon-signin:before{content:"\f090"}.icon-trophy:before{content:"\f091"}.icon-github-sign:before{content:"\f092"}.icon-upload-alt:before{content:"\f093"}.icon-lemon:before{content:"\f094"}.icon-phone:before{content:"\f095"}.icon-unchecked:before,.icon-check-empty:before{content:"\f096"}.icon-bookmark-empty:before{content:"\f097"}.icon-phone-sign:before{content:"\f098"}.icon-twitter:before{content:"\f099"}.icon-facebook:before{content:"\f09a"}.icon-github:before{content:"\f09b"}.icon-unlock:before{content:"\f09c"}.icon-credit-card:before,.icon-AdminParentOrders:before{content:"\f09d"}.icon-rss:before{content:"\f09e"}.icon-hdd:before{content:"\f0a0"}.icon-bullhorn:before{content:"\f0a1"}.icon-bell:before{content:"\f0a2"}.icon-certificate:before{content:"\f0a3"}.icon-hand-right:before{content:"\f0a4"}.icon-hand-left:before{content:"\f0a5"}.icon-hand-up:before{content:"\f0a6"}.icon-hand-down:before{content:"\f0a7"}.icon-circle-arrow-left:before,.process-icon-back:before{content:"\f0a8"}.icon-circle-arrow-right:before{content:"\f0a9"}.icon-circle-arrow-up:before{content:"\f0aa"}.icon-circle-arrow-down:before{content:"\f0ab"}.icon-globe:before,.icon-AdminParentLocalization:before{content:"\f0ac"}.icon-wrench:before,.icon-AdminParentPreferences:before{content:"\f0ad"}.icon-tasks:before{content:"\f0ae"}.icon-filter:before{content:"\f0b0"}.icon-briefcase:before{content:"\f0b1"}.icon-fullscreen:before{content:"\f0b2"}.icon-group:before,.icon-AdminParentCustomer:before{content:"\f0c0"}.icon-link:before{content:"\f0c1"}.icon-cloud:before{content:"\f0c2"}.icon-beaker:before{content:"\f0c3"}.icon-cut:before{content:"\f0c4"}.icon-copy:before,.process-icon-duplicate:before{content:"\f0c5"}.icon-paperclip:before,.icon-paper-clip:before{content:"\f0c6"}.icon-save:before,.process-icon-save:before,.process-icon-save-and-stay:before,.process-icon-save-and-preview:before{content:"\f0c7"}.icon-sign-blank:before{content:"\f0c8"}.icon-reorder:before{content:"\f0c9"}.icon-list-ul:before{content:"\f0ca"}.icon-list-ol:before{content:"\f0cb"}.icon-strikethrough:before{content:"\f0cc"}.icon-underline:before{content:"\f0cd"}.icon-table:before{content:"\f0ce"}.icon-magic:before{content:"\f0d0"}.icon-truck:before,.icon-AdminParentShipping:before{content:"\f0d1"}.icon-pinterest:before{content:"\f0d2"}.icon-pinterest-sign:before{content:"\f0d3"}.icon-google-plus-sign:before{content:"\f0d4"}.icon-google-plus:before{content:"\f0d5"}.icon-money:before{content:"\f0d6"}.icon-caret-down:before{content:"\f0d7"}.icon-caret-up:before{content:"\f0d8"}.icon-caret-left:before{content:"\f0d9"}.icon-caret-right:before{content:"\f0da"}.icon-columns:before{content:"\f0db"}.icon-sort:before{content:"\f0dc"}.icon-sort-down:before{content:"\f0dd"}.icon-sort-up:before{content:"\f0de"}.icon-envelope:before{content:"\f0e0"}.icon-linkedin:before{content:"\f0e1"}.icon-rotate-left:before,.icon-undo:before{content:"\f0e2"}.icon-legal:before{content:"\f0e3"}.icon-dashboard:before,.icon-AdminDashboard:before{content:"\f0e4"}.icon-comment-alt:before{content:"\f0e5"}.icon-comments-alt:before{content:"\f0e6"}.icon-bolt:before{content:"\f0e7"}.icon-sitemap:before{content:"\f0e8"}.icon-umbrella:before{content:"\f0e9"}.icon-paste:before{content:"\f0ea"}.icon-lightbulb:before{content:"\f0eb"}.icon-exchange:before,.process-icon-partial_refund:before{content:"\f0ec"}.icon-cloud-download:before,.process-icon-export:before{content:"\f0ed"}.icon-cloud-upload:before,.process-icon-import:before{content:"\f0ee"}.icon-user-md:before{content:"\f0f0"}.icon-stethoscope:before{content:"\f0f1"}.icon-suitcase:before{content:"\f0f2"}.icon-bell-alt:before{content:"\f0f3"}.icon-coffee:before{content:"\f0f4"}.icon-food:before{content:"\f0f5"}.icon-file-text-alt:before{content:"\f0f6"}.icon-building:before{content:"\f0f7"}.icon-hospital:before{content:"\f0f8"}.icon-ambulance:before{content:"\f0f9"}.icon-medkit:before{content:"\f0fa"}.icon-fighter-jet:before{content:"\f0fb"}.icon-beer:before{content:"\f0fc"}.icon-h-sign:before{content:"\f0fd"}.icon-plus-sign-alt:before,.process-icon-newAttributes:before,.process-icon-new:before,.process-icon-new-url:before{content:"\f0fe"}.icon-double-angle-left:before{content:"\f100"}.icon-double-angle-right:before{content:"\f101"}.icon-double-angle-up:before{content:"\f102"}.icon-double-angle-down:before{content:"\f103"}.icon-angle-left:before{content:"\f104"}.icon-angle-right:before{content:"\f105"}.icon-angle-up:before,#nav-sidebar ul.menu li.maintab.expanded span.submenu_expand:before{content:"\f106"}.icon-angle-down:before,#nav-sidebar ul.menu li.maintab span.submenu_expand:before{content:"\f107"}.icon-desktop:before{content:"\f108"}.icon-laptop:before{content:"\f109"}.icon-tablet:before{content:"\f10a"}.icon-mobile-phone:before{content:"\f10b"}.icon-circle-blank:before{content:"\f10c"}.icon-quote-left:before{content:"\f10d"}.icon-quote-right:before{content:"\f10e"}.icon-spinner:before{content:"\f110"}.icon-circle:before{content:"\f111"}.icon-mail-reply:before,.icon-reply:before{content:"\f112"}.icon-github-alt:before{content:"\f113"}.icon-folder-close-alt:before{content:"\f114"}.icon-folder-open-alt:before{content:"\f115"}.icon-expand-alt:before{content:"\f116"}.icon-collapse-alt:before{content:"\f117"}.icon-smile:before{content:"\f118"}.icon-frown:before{content:"\f119"}.icon-meh:before{content:"\f11a"}.icon-gamepad:before{content:"\f11b"}.icon-keyboard:before{content:"\f11c"}.icon-flag-alt:before{content:"\f11d"}.icon-flag-checkered:before{content:"\f11e"}.icon-terminal:before{content:"\f120"}.icon-code:before{content:"\f121"}.icon-reply-all:before{content:"\f122"}.icon-mail-reply-all:before{content:"\f122"}.icon-star-half-full:before,.icon-star-half-empty:before{content:"\f123"}.icon-location-arrow:before{content:"\f124"}.icon-crop:before{content:"\f125"}.icon-code-fork:before{content:"\f126"}.icon-unlink:before{content:"\f127"}.icon-question:before{content:"\f128"}.icon-info:before{content:"\f129"}.icon-exclamation:before{content:"\f12a"}.icon-superscript:before{content:"\f12b"}.icon-subscript:before{content:"\f12c"}.icon-eraser:before{content:"\f12d"}.icon-puzzle-piece:before,.icon-AdminParentModules:before,.process-icon-modules-list:before{content:"\f12e"}.icon-microphone:before{content:"\f130"}.icon-microphone-off:before{content:"\f131"}.icon-shield:before{content:"\f132"}.icon-calendar-empty:before{content:"\f133"}.icon-fire-extinguisher:before{content:"\f134"}.icon-rocket:before{content:"\f135"}.icon-maxcdn:before{content:"\f136"}.icon-chevron-sign-left:before{content:"\f137"}.icon-chevron-sign-right:before{content:"\f138"}.icon-chevron-sign-up:before{content:"\f139"}.icon-chevron-sign-down:before{content:"\f13a"}.icon-html5:before{content:"\f13b"}.icon-css3:before{content:"\f13c"}.icon-anchor:before,.process-icon-anchor:before{content:"\f13d"}.icon-unlock-alt:before{content:"\f13e"}.icon-bullseye:before{content:"\f140"}.icon-ellipsis-horizontal:before{content:"\f141"}.icon-ellipsis-vertical:before{content:"\f142"}.icon-rss-sign:before{content:"\f143"}.icon-play-sign:before{content:"\f144"}.icon-ticket:before{content:"\f145"}.icon-minus-sign-alt:before{content:"\f146"}.icon-check-minus:before{content:"\f147"}.icon-level-up:before{content:"\f148"}.icon-level-down:before{content:"\f149"}.icon-check-sign:before{content:"\f14a"}.icon-edit-sign:before{content:"\f14b"}.icon-external-link-sign:before{content:"\f14c"}.icon-share-sign:before{content:"\f14d"}.icon-compass:before{content:"\f14e"}.icon-collapse:before{content:"\f150"}.icon-collapse-top:before{content:"\f151"}.icon-expand:before{content:"\f152"}.icon-euro:before,.icon-eur:before{content:"\f153"}.icon-gbp:before{content:"\f154"}.icon-dollar:before,.icon-usd:before{content:"\f155"}.icon-rupee:before,.icon-inr:before{content:"\f156"}.icon-yen:before,.icon-jpy:before{content:"\f157"}.icon-renminbi:before,.icon-cny:before{content:"\f158"}.icon-won:before,.icon-krw:before{content:"\f159"}.icon-bitcoin:before,.icon-btc:before{content:"\f15a"}.icon-file:before{content:"\f15b"}.icon-file-text:before{content:"\f15c"}.icon-sort-by-alphabet:before{content:"\f15d"}.icon-sort-by-alphabet-alt:before{content:"\f15e"}.icon-sort-by-attributes:before{content:"\f160"}.icon-sort-by-attributes-alt:before{content:"\f161"}.icon-sort-by-order:before{content:"\f162"}.icon-sort-by-order-alt:before{content:"\f163"}.icon-thumbs-up:before{content:"\f164"}.icon-thumbs-down:before{content:"\f165"}.icon-youtube-sign:before{content:"\f166"}.icon-youtube:before{content:"\f167"}.icon-xing:before{content:"\f168"}.icon-xing-sign:before{content:"\f169"}.icon-youtube-play:before{content:"\f16a"}.icon-dropbox:before{content:"\f16b"}.icon-stackexchange:before{content:"\f16c"}.icon-instagram:before{content:"\f16d"}.icon-flickr:before{content:"\f16e"}.icon-adn:before{content:"\f170"}.icon-bitbucket:before{content:"\f171"}.icon-bitbucket-sign:before{content:"\f172"}.icon-tumblr:before{content:"\f173"}.icon-tumblr-sign:before{content:"\f174"}.icon-long-arrow-down:before{content:"\f175"}.icon-long-arrow-up:before{content:"\f176"}.icon-long-arrow-left:before{content:"\f177"}.icon-long-arrow-right:before{content:"\f178"}.icon-apple:before{content:"\f179"}.icon-windows:before{content:"\f17a"}.icon-android:before{content:"\f17b"}.icon-linux:before{content:"\f17c"}.icon-dribbble:before{content:"\f17d"}.icon-skype:before{content:"\f17e"}.icon-foursquare:before{content:"\f180"}.icon-trello:before{content:"\f181"}.icon-female:before{content:"\f182"}.icon-male:before{content:"\f183"}.icon-gittip:before{content:"\f184"}.icon-sun:before{content:"\f185"}.icon-moon:before{content:"\f186"}.icon-archive:before,.icon-AdminStock:before{content:"\f187"}.icon-bug:before{content:"\f188"}.icon-vk:before{content:"\f189"}.icon-weibo:before{content:"\f18a"}.icon-renren:before{content:"\f18b"}html,body{min-height:100%;height:100%}#main{min-height:100%;padding:36px 0 60px;margin:0 0 -60px 0;background-color:#f8f8f8;background-image:url("../img/patterns/bedge_grunge.png")}#content{padding:80px 20px 0;margin-left:240px;-webkit-transition-property:margin;-moz-transition-property:margin;-o-transition-property:margin;transition-property:margin;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#content fieldset,#content .panel,#content #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper #content .notifs_panel,#content #dash_version{padding:20px;margin-bottom:20px;border:solid 1px #dfdfdf;background-color:#fff;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;-webkit-box-shadow:rgba(0,0,0,0.1) 0 2px 0,#fff 0 0 0 3px inset;box-shadow:rgba(0,0,0,0.1) 0 2px 0,#fff 0 0 0 3px inset}#content h3:not(.modal-title),#content .panel-heading:not(.modal-title),#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title),#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title),#content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header{border:none;padding:0 5px;margin:-16px -16px 15px -16px;color:contrasted(#e6e8e3);font-size:1.2em;line-height:30px;font-weight:300;text-transform:uppercase;background-color:#fff;border-bottom:solid 1px #ccc}#content h3:not(.modal-title) i,#content .panel-heading:not(.modal-title) i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) i,#content h3:not(.modal-title) a,#content .panel-heading:not(.modal-title) a,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) a,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) a,#content .panel-heading i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header i,#content .panel-heading a,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header a,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header a{color:contrasted(#e6e8e3)}#content h3:not(.modal-title) .badge,#content .panel-heading:not(.modal-title) .badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .badge,#content h3:not(.modal-title) #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content h3:not(.modal-title) .notifs_badge,#content .panel-heading:not(.modal-title) #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content .panel-heading:not(.modal-title) .notifs_badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .notifs_badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .notifs_badge,#content .panel-heading .badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .badge,#content .panel-heading #header_notifs_icon_wrapper .notifs_badge,#header_notifs_icon_wrapper #content .panel-heading .notifs_badge,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_badge,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_badge{background-color:#1ba6e5;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;height:29px;line-height:25px;font-size:1.3em;margin-right:7px;font-weight:300;float:left;margin-left:-5px}#content h3:not(.modal-title) .panel-heading-action,#content .panel-heading:not(.modal-title) .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action,#content .panel-heading .panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action{margin-right:-5px}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn,#content .panel-heading .panel-heading-action a.list-toolbar-btn,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn{float:left;height:30px;width:30px;color:#1ba6e5;border-left:solid 1px #ccc}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn:hover,#content .panel-heading .panel-heading-action a.list-toolbar-btn:hover,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn:hover,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn:hover{text-decoration:none;color:#000}#content h3:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content .panel-heading:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header:not(.modal-title) .panel-heading-action a.list-toolbar-btn i,#content .panel-heading .panel-heading-action a.list-toolbar-btn i,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading-action a.list-toolbar-btn i,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-heading-action a.list-toolbar-btn i{text-align:center;font-size:1.3em;line-height:30px}#content .panel-danger .panel-heading,#content .panel-danger #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .panel-danger .notifs_panel_header{background-color:#8bc954 !important}#content form .alert,#content form #carrier_wizard .wizard_error,#carrier_wizard #content form .wizard_error{clear:both}@media (max-width: 768px){#content{margin-left:0;width:100%}}#nobootstrap{float:left}.data-focus.data-focus-primary{background-color:#1ba6e5;color:#fff;-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px}#customer_part .customerCard.selected-customer .panel,#customer_part .customerCard.selected-customer #header_notifs_icon_wrapper .notifs_panel,#header_notifs_icon_wrapper #customer_part .customerCard.selected-customer .notifs_panel,#customer_part .customerCard.selected-customer #dash_version{color:#5cb85c;border:solid 2px #5cb85c}body.display-modal #content,body.display-modal #main{margin:0;padding:0;background:#f8f8f8}#content .panel .panel-footer,#content #header_notifs_icon_wrapper .notifs_panel .panel-footer,#header_notifs_icon_wrapper #content .notifs_panel .panel-footer,#content #dash_version .panel-footer,#header_notifs_icon_wrapper .notifs_panel #content .panel .notifs_panel_footer,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper #content .notifs_panel .notifs_panel_footer,#header_notifs_icon_wrapper .notifs_panel #content #dash_version .notifs_panel_footer{margin:15px -20px -20px;height:73px}.panel-footer .btn.pull-right,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.pull-right,.panel-footer #content h3:not(.modal-title) .btn.panel-heading-action,#content h3:not(.modal-title) .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content h3:not(.modal-title) .btn.panel-heading-action,#content h3:not(.modal-title) #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.panel-heading-action,.panel-footer #content .panel-heading .btn.panel-heading-action,#content .panel-heading .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content .panel-heading .btn.panel-heading-action,#content .panel-heading #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .btn.panel-heading-action,.panel-footer #content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-footer .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer .notifs_panel_header .btn.panel-heading-action,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_panel_footer .btn.panel-heading-action,.panel-footer #header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .panel-footer .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_footer #content .notifs_panel_header .btn.panel-heading-action,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_panel_footer .btn.panel-heading-action{margin-left:3px}#header_infos{background-color:#242424}#header_shopname{font:300 1.3em/100% "Ubuntu",sans-serif}#header_notifs_icon_wrapper li a{padding:9px 5px}#header_notifs_icon_wrapper>li>a>i{font-size:1.4em;color:#fff;vertical-align:middle}#header_notifs_icon_wrapper .notifs_badge{background-color:#8bc954}#header_notifs_icon_wrapper .notifs_dropdown{background-color:transparent;border:none;box-shadow:none}#header_notifs_icon_wrapper .notifs_panel{width:300px;-webkit-box-shadow:rgba(0,0,0,0.5) 2px 2px 8px;box-shadow:rgba(0,0,0,0.5) 2px 2px 8px}#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header h3,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #content .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .panel-heading,#content #header_notifs_icon_wrapper .notifs_panel .notifs_panel_header .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel .notifs_panel_header #content .notifs_panel_header,#header_notifs_icon_wrapper .notifs_panel #content .notifs_panel_header .notifs_panel_header{padding:0;font-size:1.3em;margin:0}#header_nav_toggle{background-color:#000;border:none;color:#fff}#header_employee_box a img{margin-right:5px}#header_employee_box #header_foaccess i{font-size:1.2em}#header_search{width:160px;padding:0 0 0 10px;position:relative}@media (max-width: 768px){#header_search{width:100%}}#header_search input,#header_search .form-group{margin:0}#header_search .form-group.focus-search{position:absolute;z-index:900;top:0;left:10px;width:400px}#footer{z-index:600;display:block;width:100%;background-color:rgba(36,36,36,0.85);color:#888;position:fixed;bottom:0;height:50px;line-height:50px}#footer a{color:#ccc}#footer #go-top{position:fixed;bottom:10px;height:30px;width:30px;text-align:center;line-height:30px;right:10px;z-index:9003;display:block;padding:0px 6px 0px 6px;margin:-2px 0px 0px;text-decoration:none;color:#fff;cursor:pointer;font-size:16px;background-color:rgba(0,0,0,0.5)}#footer #go-top:hover{background-color:#000}#footer .social-networks{margin:4px 0 0 0}a.link-social i{font-size:2em;width:30px;height:30px;display:inline-block;line-height:30px;text-align:center;-webkit-border-radius:30px;-moz-border-radius:30px;-ms-border-radius:30px;-o-border-radius:30px;border-radius:30px}a.link-social:hover{text-decoration:none}.link-twitter i{color:#fff;background-color:#7cceef}.link-twitter i:hover{color:#7cceef;background-color:#fff}.link-facebook i{color:#fff;background-color:#557dbb}.link-facebook i:hover{color:#557dbb;background-color:#fff}.link-github i{color:#000;background-color:#fff}.link-github i:hover{color:#fff;background-color:#000}.link-google i{color:#fff;background-color:#e6644e}.link-google i:hover{color:#e6644e;background-color:#fff}#nav-sidebar{position:fixed;width:240px;height:100% !important;overflow-y:auto;z-index:500;background-color:#515561;border-right:1px solid #000}#nav-sidebar li.maintab>a>i{display:inline-block;height:30px;width:30px;font-size:20px;line-height:30px;color:#fff;text-align:center;-webkit-border-radius:40px;-moz-border-radius:40px;-ms-border-radius:40px;-o-border-radius:40px;border-radius:40px}#nav-sidebar li:not(.active) ul{display:none}#nav-sidebar li.active span.submenu_expand{display:none}#nav-sidebar ul.menu{margin:0;padding:0;border-top:1px #000 solid;list-style:none}#nav-sidebar ul.menu li.maintab{position:relative}#nav-sidebar ul.menu li.maintab.active a.title,#nav-sidebar ul.menu li.maintab.active a.title:hover{color:#fff;background-color:#1ba6e5}#nav-sidebar ul.menu li.maintab.active a.title i,#nav-sidebar ul.menu li.maintab.active a.title:hover i{color:#000;background-color:#fff}#nav-sidebar ul.menu li.maintab.active a.title:hover{color:#fff}#nav-sidebar ul.menu li.maintab.expanded a.title{color:#fff;background-color:#3a3d45;border-bottom:solid 1px #17181c}#nav-sidebar ul.menu li.maintab.expanded a.title:hover{background-color:#686d7d}#nav-sidebar ul.menu li.maintab.expanded a.title i{color:#fff}#nav-sidebar ul.menu li.maintab.expanded ul.submenu{display:block}#nav-sidebar ul.menu li.maintab.expanded ul.submenu a{color:#9da1ae;background-color:#2e3037;border-bottom:solid 1px #17181c}#nav-sidebar ul.menu li.maintab.expanded ul.submenu a:hover{color:#fff;background-color:#454953}#nav-sidebar ul.menu li.maintab a.title{display:block;position:relative;padding:2px 0 2px 8px;border-bottom:1px solid #3a3d45;font-size:12px;line-height:28px;color:#cacccf;background-color:#515561;text-transform:uppercase;text-decoration:none;-webkit-transition-property:background-color,border,box-shadow;-moz-transition-property:background-color,border,box-shadow;-o-transition-property:background-color,border,box-shadow;transition-property:background-color,border,box-shadow;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-sidebar ul.menu li.maintab a.title i{color:#9094a2;background-color:#17181c;-webkit-transition-property:color;-moz-transition-property:color;-o-transition-property:color;transition-property:color;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}#nav-sidebar ul.menu li.maintab a.title:hover{background-color:#686d7d;color:#fff}#nav-sidebar ul.menu li.maintab a.title:hover i{color:#fff}#nav-sidebar ul.menu li.maintab span.submenu_expand{position:absolute;right:10px;top:2px;cursor:pointer;font-family:FontAwesome;font-size:24px;font-weight:100;color:#000;background-color:transparent;text-shadow:#686d7d 1px 1px 0}#nav-sidebar ul.menu li.maintab span.submenu_expand:hover{color:#fff;text-shadow:#232429 -1px -1px 0}#nav-sidebar ul.submenu{list-style:none;padding:0}#nav-sidebar ul.submenu li a{display:block;padding:4px 5px 4px 10px;font-size:12px;border:none;border-bottom:solid 1px #eee;background-color:#fff}#nav-sidebar ul.submenu li a:hover{color:#515561;background-color:#edeeef;text-decoration:none}#nav-sidebar ul.submenu li:last-child a{border-bottom:none}#nav-sidebar ul.submenu li.active a{color:#fff;background-color:#1ba6e5;border-bottom:solid 1px #1585b8}@media (max-width: 768px){#nav-sidebar{display:none}}#nav-topbar{position:fixed;height:28px;top:35px;left:80;width:100%;z-index:600;background-color:#fff}#nav-topbar ul.menu{height:28px;margin:0;padding:0;display:block;list-style:none}#nav-topbar ul.menu>li{height:28px;padding:0;margin:0;border-right:solid 1px #aaa;list-style:none;position:relative;float:left}#nav-topbar ul.menu>li>a{display:block;line-height:28px;color:#515561;padding:0 6px;margin:0}#nav-topbar ul.menu>li>a i{margin:0;width:15px;background-color:transparent;font-size:18px}#nav-topbar ul.menu>li>a:hover{text-decoration:none;background-color:#515561;color:#fff}#nav-topbar ul.menu>li>a:hover i{color:#fff !important}#nav-topbar ul.menu>li.active>a{color:#fff;background-color:#515561}#nav-topbar ul.menu>li.active>a i{color:#fff}#nav-topbar .menu-collapse{display:none}#nav-topbar ul.submenu{display:none !important;-webkit-box-shadow:rgba(0,0,0,0.3) 0 2px 4px;box-shadow:rgba(0,0,0,0.3) 0 2px 4px}#nav-topbar>ul.menu>li.expanded ul.submenu{display:block !important}#nav-topbar>ul.menu>li ul.submenu{display:none !important;position:absolute;margin:0;padding:0;left:0;top:28px;width:200px !important}#nav-topbar>ul.menu>li ul.submenu li{width:200px;padding:0;list-style:none}#nav-topbar>ul.menu>li ul.submenu li a{display:block;padding:4px 5px 4px 10px;font-size:12px;background-color:#fff;border-bottom:solid 1px #eee}#nav-topbar>ul.menu>li ul.submenu li a:hover{color:#515561;background-color:#edeeef;text-decoration:none}#nav-topbar>ul.menu>li ul.submenu li:last-child a{border-bottom:none}#nav-topbar>ul.menu>li ul.submenu li.active a{color:#fff;background-color:#1ba6e5;border-bottom:solid 1px #1585b8}.menu-collapse{height:54px;width:100%;font-size:2em;text-align:center;line-height:55px;display:block;background-color:#515561;border-bottom:3px solid #3a3d45;color:#0b0c0e}.page-topbar #main{padding-top:64px}.page-topbar #nav-sidebar{display:none}.page-topbar .page-head{top:63px}.page-topbar #content{margin-left:0;width:100%}.page-topbar #content .page-head h2.page-title{padding:0 0 0 20px}.page-sidebar-closed #nav-sidebar{overflow:visible;width:50px;-webkit-transition-property:width;-moz-transition-property:width;-o-transition-property:width;transition-property:width;-webkit-transition-duration:0.4s;transition-duration:0.4s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.page-sidebar-closed #nav-sidebar span.title{display:none}.page-sidebar-closed #nav-sidebar ul.submenu{display:none !important;padding-top:37px;position:relative;top:0;-webkit-box-shadow:rgba(0,0,0,0.2) 1px 1px 0,rgba(0,0,0,0.3) 2px 2px 4px;box-shadow:rgba(0,0,0,0.2) 1px 1px 0,rgba(0,0,0,0.3) 2px 2px 4px}.page-sidebar-closed #nav-sidebar>ul>li:hover{width:250px !important;position:relative}.page-sidebar-closed #nav-sidebar>ul>li:hover span.title{display:inline-block}.page-sidebar-closed #nav-sidebar>ul>li:hover ul.submenu{display:block !important;position:absolute;left:50px;width:200px !important}.page-sidebar-closed #content{margin-left:50px}.page-sidebar-closed #content .page-head h2.page-title{padding:0 0 0 70px}@media (max-width: 768px){.page-sidebar-closed #content .page-head h2.page-title{padding:0 0 0 20px}}@media (max-width: 768px){.page-sidebar-closed #content{margin-left:0;width:100%}}.page-sidebar-closed .submenu_expand{display:none}[class^="icon-Admin"]{margin-right:6px}.fixed-width-xs{width:40px !important}.fixed-width-sm{width:80px !important}.fixed-width-md{width:120px !important}.fixed-width-lg{width:160px !important}.fixed-width-xl{width:200px !important}.fixed-width-xxl{width:250px !important}.row-margin-bottom{margin-bottom:15px}.row-padding-top{padding-top:15px}.thumbnail{background-color:#fff;border-color:#ccc !important}.badge,#header_notifs_icon_wrapper .notifs_badge,.badge.badge-success,.badge.badge-error{background-color:#8fc04d}#header_notifs_icon_wrapper .badge-success.notifs_badge,.badge-success.badge{background-color:#5cb85c}#header_notifs_icon_wrapper .badge-error.notifs_badge,.badge-error.badge{background-color:#d9534f}.nav-tabs{border-bottom:none}.nav-tabs li a{font-size:1.1em;font-family:"Ubuntu",sans-serif;text-transform:uppercase;font-weight:300}.nav-tabs li.active a,.nav-tabs li.active a:hover,.nav-tabs li.active a:focus{background-color:#fff}.alert.alert-danger,#carrier_wizard .wizard_error{padding-left:60px;position:relative}.alert.alert-danger:before,#carrier_wizard .wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f00d"}.alert.alert-success,#carrier_wizard .alert-success.wizard_error{padding-left:60px;position:relative}.alert.alert-success:before,#carrier_wizard .alert-success.wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f00c"}.alert.alert-info,#carrier_wizard .alert-info.wizard_error{padding-left:60px;position:relative}.alert.alert-info:before,#carrier_wizard .alert-info.wizard_error:before{position:absolute;top:0;left:10px;display:block;min-height:25px;min-width:25px;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:35px;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\F05A"}.overflow-y{height:200px;overflow-y:auto}.table{border-collapse:separate;border-spacing:0 2px 0 0;margin-bottom:5px}.table thead>tr>th{border:none;font-weight:normal;vertical-align:top}.table thead>tr>th span.title_box{color:#000;font-size:1.1em;font-weight:bold;display:block;word-wrap:nowrap;white-space:nowrap}.table thead>tr>th span.title_box.active{font-weight:bold}.table thead>tr>th span.title_box a{text-decoration:none}.table thead>tr>th span.title_box a.active{color:#000}.table input,.table select{margin:0}.table tbody>tr>td{border-top:none;background-color:#fff}.table tbody>tr>td{padding:3px 7px;vertical-align:middle;word-wrap:nowrap;font-size:12px;border-bottom:solid 1px #eee}.table td.center,.table th.center{text-align:center}.table td.pointer{cursor:pointer}.table tr td:first-child,.table tr th:first-child{border-top-left-radius:3px;border-bottom-left-radius:3px}.table tr td:last-child,.table tr th:last-child{border-top-right-radius:3px;border-bottom-right-radius:3px}tr.filter{background-color:#dfeff8}tr.filter input[type="text"].filter,tr.filter input[type="password"].filter,tr.filter select.filter{font-size:12px;border-color:#a0d0eb}tr.highlighted td{background-color:#1ba6e5 !important;color:#fff}td.actions{min-width:200px}.bulk-actions{margin:17px 0 0 0}.tree{padding:0 0 0 20px;list-style:none}.tree input{margin-right:4px}.tree i{font-size:1.3em}.tree .tree-item-name,.tree .tree-folder-name{padding:0 5px;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px;font-weight:normal}.tree .tree-item-name:hover,.tree .tree-folder-name:hover{background-color:#eee;cursor:pointer}.tree .tree-selected{background-color:#a4dcf5}.tree .tree-selected i.tree-dot{background-color:#1ba6e5}.tree i.tree-dot{display:inline-block;position:relative;width:6px;height:6px;margin:0 4px 0 6px;background-color:#ccc;-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px}.tree .tree-item-disable,.tree .tree-folder-name-disable{color:#ccc}.tree .tree-item-disable:hover,.tree .tree-folder-name-disable:hover{color:#ccc;background-color:none}.tree-actions{padding-bottom:4px;display:inline-block}.tree-panel-heading-controls{margin:-20px -20px 20px;padding:5px;border-bottom:solid 1px #dfdfdf}label.control-label{font-size:13px;font-weight:normal;color:#666}label.control-label span.label-tooltip{text-decoration:none;font-size:13px;background-color:#ebebeb;border:none;border-bottom:solid 1px #dfdfdf;padding:0 5px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}label.required:before{content:"*";color:red;font-size:14px;position:relative;line-height:12px}.tooltip{font-size:12px}select.input-tiny,input[type="text"].input-tiny,input[type="password"].input-tiny{width:80px;float:left}textarea{resize:none}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{background-color:#fefbe2;-webkit-box-shadow:none;box-shadow:none}.btn{text-transform:uppercase}.btn .caret{border-top-color:#333 !important}.btn:hover .caret,.btn:focus .caret{border-top-color:#fff !important}.btn.btn-default{-webkit-box-shadow:#e6e6e6 0 -2px 0 inset;box-shadow:#e6e6e6 0 -2px 0 inset}.btn.btn-default:hover{-webkit-box-shadow:none;box-shadow:none;background-color:#1ba6e5;color:#fff;border-color:#1585b8}.btn.btn-default:hover i{color:#fff}.btn.btn-primary{background-color:#1ba6e5;color:#fff;border-color:#1585b8}.btn.btn-default[disabled]{border-color:#999;color:#999;background-color:#f2f2f2;-webkit-box-shadow:#ccc 0 -2px 0 inset;box-shadow:#ccc 0 -2px 0 inset}.dropdown-menu{text-align:left}.btn-group-action{width:175px}.btn-group-action a{text-decoration:none}.tt-query{border-bottom-right-radius:3px !important;border-top-right-radius:3px !important}.tt-dropdown-menu{background-color:#fff;border:solid 1px #ccc;font-size:0.9em;text-transform:none}.tt-suggestions{padding:0 6px;-webkit-box-shadow:rgba(0,0,0,0.25) 0 1px 4px;box-shadow:rgba(0,0,0,0.25) 0 1px 4px}.tt-suggestion p{border-bottom:solid 1px #ccc;margin:0 !important;padding:0 !important}.tt-suggestion:last-child p{border-bottom:none}.tagify-container{background-color:#fff;padding:2px 6px;min-height:30px;overflow:auto;-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px;border:solid 1px #ccc;-webkit-box-shadow:rgba(0,0,0,0.075) 0 1px 1px inset;box-shadow:rgba(0,0,0,0.075) 0 1px 1px inset}.tagify-container span{float:left}.tagify-container>span{display:inline-block;padding:3px 5px;margin:3px;border-radius:2px;border:1px solid #1ba6e5;background-color:#60c1ed;color:#fff}.tagify-container>span>a{padding-left:5px;color:#1ba6e5;text-decoration:none;font-weight:bold}.tagify-container>input{margin-top:2px;border:0 none;width:100px;-webkit-box-shadow:none;box-shadow:none}.tagify-container>input:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}.box-stats{background-color:#fff}.box-stats .boxchart-overlay{padding:10px 10px 5px 10px;margin-right:10px;float:left;color:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.box-stats i{float:left;height:64px;width:64px;margin-right:10px;color:#fff;font-size:35px;text-align:center;line-height:64px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.box-stats .title{color:#666;display:block}.box-stats .value{font-size:22px}.box-stats small{line-height:0.3em;color:#aaa;text-transform:uppercase}.box-stats:hover{text-decoration:none}.color1 i,.color1 .boxchart-overlay{background-color:#2ba8e3;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color1 .value{color:#2ba8e3}.color2 i,.color2 .boxchart-overlay{background-color:#ff5450;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color2 .value{color:#ff5450}.color3 i,.color3 .boxchart-overlay{background-color:#9e5ba1;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color3 .value{color:#9e5ba1}.color4 i,.color4 .boxchart-overlay{background-color:#95cc6b;-webkit-box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset;box-shadow:rgba(0,0,0,0.15) 0 -3px 0 inset}.color4 .value{color:#95cc6b}.data_chart rect{fill:#fff}.data_chart path{stroke:#fff;stroke-width:2;fill:none}.data_chart line{stroke:#000}.data_chart .area{fill:rgba(255,255,255,0.3);stroke-width:0}.icon-big{font-size:4em;color:#c5c5c5}.switch .slide-button,.toggle p span{display:none}.switch{background-color:#d2d2d2;border-radius:3px}.switch label{padding:0;cursor:pointer}@media only screen{.toggle{position:relative;padding:0;margin-left:100px}.toggle label{position:relative;z-index:3;display:block;width:100%}.toggle input{position:absolute;opacity:0;z-index:5}.toggle p{position:absolute;left:-100px;width:100%;margin:0;padding-right:100px;text-align:left}.toggle p span{position:absolute;top:0;left:0;z-index:5;display:block;width:50%;margin-left:100px;text-align:center}.toggle:last-child{left:50%}.toggle .slide-button{position:absolute;right:0;top:0;z-index:4;display:block;width:50%;height:100%;padding:0}.switch{position:relative;padding:0}.switch input{position:absolute;opacity:0}.switch label{position:relative;z-index:2;float:left;width:50%;height:100%;margin:0;text-align:center}.switch .slide-button{position:absolute;top:0;left:0;padding:0;z-index:1;width:50%;height:100%}.switch input:last-of-type:checked ~ .slide-button{left:50%}.switch.switch-three label,.switch.switch-three .slide-button{width:33.3%}.switch.switch-three input:checked:nth-of-type(2) ~ .slide-button{left:33.3%}.switch.switch-three input:checked:last-of-type ~ .slide-button{left:66.6%}.switch.switch-four label,.switch.switch-four .slide-button{width:25%}.switch.switch-four input:checked:nth-of-type(2) ~ .slide-button{left:25%}.switch.switch-four input:checked:nth-of-type(3) ~ .slide-button{left:50%}.switch.switch-four input:checked:last-of-type ~ .slide-button{left:75%}.switch.switch-five label,.switch.switch-five .slide-button{width:20%}.switch.switch-five input:checked:nth-of-type(2) ~ .slide-button{left:20%}.switch.switch-five input:checked:nth-of-type(3) ~ .slide-button{left:40%}.switch.switch-five input:checked:nth-of-type(4) ~ .slide-button{left:60%}.switch.switch-five input:checked:last-of-type ~ .slide-button{left:80%}.toggle,.switch{display:block;height:27px}.switch *,.toggle *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}.switch .slide-button,.toggle .slide-button{display:block;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-ms-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.toggle label,.toggle p,.switch label{line-height:27px;vertical-align:middle}.toggle input:checked ~ .slide-button{right:50%}.toggle input:focus ~ .slide-button,.switch input:focus+label{outline:1px dotted #888}.switch,.toggle{-webkit-animation:bugfix infinite 1s}.prestashop-switch{min-width:150px;color:#666;text-align:center;border-radius:3px;-webkit-box-shadow:rgba(0,0,0,0.2) 0 2px 5px 1px inset;box-shadow:rgba(0,0,0,0.2) 0 2px 5px 1px inset}.prestashop-switch label{padding-top:0 !important;font-weight:500}.prestashop-switch input:checked+label{color:#333 !important;text-shadow:rgba(255,255,255,0.7) 1px 1px 0}.prestashop-switch input:not(:checked)+label i{color:#666 !important}.prestashop-switch .slide-button{position:relative;margin-right:3px;color:#fff}.prestashop-switch p{color:#333}.prestashop-switch span{color:#fff}}.page-head{width:100%;height:55px;padding:0 10px 0 0;margin:0;border-bottom:4px solid #75a139;position:fixed;top:36px;left:0px;z-index:499;background-color:#8fc04d;-webkit-box-shadow:rgba(0,0,0,0.15) 0 7px 0;box-shadow:rgba(0,0,0,0.15) 0 7px 0}.page-head h2.page-title{padding:0 0 0 260px;font-size:18px;color:#fff;text-transform:uppercase}@media (max-width: 768px){.page-head h2.page-title{padding:0 0 0 20px}}.page-head h2.page-title a{border-bottom:dotted 1px #fff}.page-head h2.page-title a:hover{color:#000;border-color:#000}.page-head a{color:#fff;text-decoration:none}.page-head .btn-toolbar{margin:0;padding:3px 0 0 0}.page-head .btn-toolbar .nav-tabs{margin:0}.page-head .btn-toolbar .nav-tabs>li>a{color:#333}.toolbar_btn{position:relative;padding:2px 5px !important;margin-right:3px;font-size:12px;font-weight:600;color:#fff;text-align:center;text-shadow:none}.toolbar_btn:hover{color:#8fc04d;border-color:#fff;background-color:#fff !important}[class^="process-icon-"],[class*=" process-icon-"]{height:25px;min-width:32px;background-position:center;background-repeat:no-repeat;display:block;font-family:FontAwesome;font-weight:normal;font-style:normal;font-size:25px;line-height:25px;text-decoration:inherit;-webkit-font-smoothing:antialiased;*margin-right:0.3em}.page-header-toolbar-back{border:none !important;display:inline-block}#datepicker .input-selected{margin:0}#datepicker #date-start.input-selected,#datepicker #date-end.input-selected{border:solid 3px #00a4e7}#datepicker #date-start-compare.input-selected,#datepicker #date-end-compare.input-selected{border:solid 3px #ff8000}#datepicker div#datepicker-form #date-range{border:solid 1px #0092ce}#datepicker div#datepicker-form #date-range .form-date-heading{background-color:#0092ce}#datepicker div#datepicker-form #date-compare{border:solid 1px #e67300}#datepicker div#datepicker-form #date-compare .form-date-heading{background-color:#e67300}#datepicker div#datepicker-form .form-date-heading{height:30px;line-height:30px;padding:0 0 0 8px}#datepicker div#datepicker-form .form-date-heading .title,#datepicker div#datepicker-form .form-date-heading .checkbox-title label{font-size:1.15em;color:#fff;font-weight:200;text-transform:uppercase;line-height:2em}#datepicker div#datepicker-form .form-date-heading .btn-default{background-color:rgba(255,255,255,0.3);font-weight:700;color:#fff;border:none}#datepicker div#datepicker-form .form-date-heading select{margin:2px 2px 0 0}#datepicker div#datepicker-form .form-date-body,#datepicker div#datepicker-form .form-date-actions{width:100%;padding:10px;background-color:#fff;display:inline-block}#datepicker div#datepicker-form .form-date-actions{border:solid 1px #ccc}#datepicker div#datepicker-form .form-date-group{clear:both;width:100%;margin:0 auto 6px auto}#datepicker div#datepicker-form .form-date-group label{font-size:0.8em;font-weight:700;text-transform:uppercase;color:#666}#datepicker div#datepicker-form .form-date-group input{margin:4px 4px 0 0}#datepicker div#datepicker-form .form-date-group input[type='text']{width:35%}#datepicker div#datepicker-form .form-date-group button{margin:5px 0 0 0}#datepicker .daterangepicker{position:relative;margin:0 0 8px 0;width:100%;font-size:13px;border:solid 1px #ccc}#datepicker .daterangepicker table{width:100%;margin:0;border-spacing:1px}#datepicker .daterangepicker thead tr th:after{content:"";border-top:1px solid #0080b4;width:100%;display:block}#datepicker .daterangepicker thead tr th{background-color:#0092ce;color:#004968;font-size:0.7em;font-weight:700;border-bottom:solid 1px #0cb8ff;text-transform:uppercase}#datepicker .daterangepicker thead tr:first-child th{background-color:#fff;font-weight:200;font-size:1.4em;color:#00a4e7}#datepicker .daterangepicker td,#datepicker .daterangepicker th{text-align:center;padding:0;position:relative}#datepicker .daterangepicker td{color:#00a4e7;height:2.4em;padding:0 8px}#datepicker .daterangepicker td.day:after{content:"";position:absolute;display:block;top:0;left:0;width:100%;z-index:0;background-color:transparent}#datepicker .daterangepicker td.day:hover{cursor:pointer}#datepicker .daterangepicker td.day.disabled{color:#ccc}#datepicker .daterangepicker td.old,#datepicker .daterangepicker td.new{color:#ccc}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected){color:#fff;font-weight:700;background-color:#00a4e7;border-bottom-left-radius:15px;border-top-left-radius:15px}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).range-compare{background-color:#4ca0b1;border-bottom-left-radius:0;border-top-left-radius:0}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).end-selected-compare,#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).start-selected-compare{background-color:#4c99a1}#datepicker .daterangepicker td.start-selected:not(.old):not(.new):not(.end-selected).end-selected-compare{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected){color:#fff;font-weight:700;background-color:#00a4e7;border-bottom-right-radius:15px;border-top-right-radius:15px}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).range-compare{background-color:#4ca0b1;border-bottom-right-radius:0;border-top-right-radius:0}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).end-selected-compare,#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).start-selected-compare{background-color:#4c99a1}#datepicker .daterangepicker td.end-selected:not(.old):not(.new):not(.start-selected).start-selected-compare{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.start-selected-compare:not(.old):not(.new):not(.end-selected-compare){color:#fff;font-weight:700;background-color:#ff8000;border-bottom-left-radius:15px;border-top-left-radius:15px}#datepicker .daterangepicker td.start-selected-compare:not(.old):not(.new):not(.end-selected-compare).range{background-color:#ba924c;border-bottom-left-radius:0;border-top-left-radius:0}#datepicker .daterangepicker td.end-selected-compare:not(.old):not(.new):not(.start-selected-compare){color:#fff;font-weight:700;background-color:#ff8000;border-bottom-right-radius:15px;border-top-right-radius:15px}#datepicker .daterangepicker td.end-selected-compare:not(.old):not(.new):not(.start-selected-compare).range{background-color:#ba924c;border-bottom-right-radius:0;border-top-right-radius:0}#datepicker .daterangepicker td.end-selected.start-selected{color:#fff;-webkit-border-radius:15px;-moz-border-radius:15px;-ms-border-radius:15px;-o-border-radius:15px;border-radius:15px;font-weight:700;background-color:#00a4e7}#datepicker .daterangepicker td.end-selected.start-selected.range-compare{background-color:#4ca0b1;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.end-selected-compare.start-selected-compare{color:#fff;-webkit-border-radius:15px;-moz-border-radius:15px;-ms-border-radius:15px;-o-border-radius:15px;border-radius:15px;font-weight:700;background-color:#ff8000}#datepicker .daterangepicker td.end-selected-compare.start-selected-compare.range{background-color:#ba924c;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}#datepicker .daterangepicker td.range{color:#cef1ff;background-color:#1bbdff}#datepicker .daterangepicker td.range.range-compare{background-color:#8dab99}#datepicker .daterangepicker td.range-compare{color:#fff2e5;background-color:#f93}#datepicker .daterangepicker td.range-compare.range{background-color:#8dab99}#datepicker .daterangepicker td.today{background-color:#fff}#datepicker .daterangepicker td span{padding:0;display:block;width:33.333%;height:3em;line-height:3em;font-weight:400;float:left;text-transform:uppercase;cursor:pointer}#datepicker .daterangepicker td span:hover{background-color:#00a4e7}#datepicker .daterangepicker td span.active{background-color:#00a4e7;color:#fff}#datepicker .daterangepicker td span.old{color:#ccc}#datepicker .daterangepicker th.switch{width:145px}#datepicker .daterangepicker th.next,#datepicker .daterangepicker th.prev{font-size:1.3em}#datepicker .daterangepicker thead tr:first-child th{cursor:pointer}.chevron-left,.chevron-right{position:relative}.chevron-left:before,.chevron-right:before{display:block;content:"";width:0;height:0;border-style:solid;position:absolute}.chevron-left:before{right:0;top:0;border-width:1.2em 0 1.2em 0.5em;border-color:transparent transparent transparent #00a4e7;background-color:#1bbdff}.chevron-right:before{left:0;top:0;border-width:1.2em 0 1.2em 0.5em;border-color:transparent transparent transparent #1bbdff;background-color:#00a4e7}.input-complete{-webkit-animation:one 0.2s ease-in-out;-moz-animation:one 0.2s ease-in-out;-ms-animation:one 0.2s ease-in-out;-o-animation:one 0.2s ease-in-out;animation:one 0.2s ease-in-out}@-webkit-keyframes one{0%{background-color:#00a4e7}100%{background-color:#fff}}@-webkit-keyframes two{0%{-webkit-box-shadow:#00a4e7 0 0 0 20px inset;box-shadow:#00a4e7 0 0 0 20px inset}100%{-webkit-box-shadow:#00a4e7 0 0 0 inset;box-shadow:#00a4e7 0 0 0 inset}}/* Ladda * http://lab.hakim.se/ladda * MIT licensed * diff --git a/admin-dev/themes/default/css/admin-theme.sass b/admin-dev/themes/default/css/admin-theme.sass index 625c4ff38..0c7232e20 100755 --- a/admin-dev/themes/default/css/admin-theme.sass +++ b/admin-dev/themes/default/css/admin-theme.sass @@ -116,12 +116,10 @@ input[type="text"],input[type="search"],input[type="password"], textarea, select .panel-footer margin: 15px -20px -20px height: 73px +.panel-footer + .btn.pull-right + margin-left: 3px -//todo: fix focus firefox -*:focus - outline: none!important - -moz-outline: none!important - -moz-user-focus: ignore!important //components @import "admin-theme/admin-header" diff --git a/admin-dev/themes/default/js/jquery.fileupload-image.js b/admin-dev/themes/default/js/jquery.fileupload-image.js new file mode 100644 index 000000000..d8ccd3ff0 --- /dev/null +++ b/admin-dev/themes/default/js/jquery.fileupload-image.js @@ -0,0 +1,294 @@ +/* + * jQuery File Upload Image Preview & Resize Plugin 1.3.1 + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/*jslint nomen: true, unparam: true, regexp: true */ +/*global define, window, document, DataView, Blob, Uint8Array */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'load-image', + 'load-image-meta', + 'load-image-exif', + 'load-image-ios', + 'canvas-to-blob', + './jquery.fileupload-process' + ], factory); + } else { + // Browser globals: + factory( + window.jQuery, + window.loadImage + ); + } +}(function ($, loadImage) { + 'use strict'; + + // Prepend to the default processQueue: + $.blueimp.fileupload.prototype.options.processQueue.unshift( + { + action: 'loadImageMetaData', + disableImageHead: '@', + disableExif: '@', + disableExifThumbnail: '@', + disableExifSub: '@', + disableExifGps: '@', + disabled: '@disableImageMetaDataLoad' + }, + { + action: 'loadImage', + // Use the action as prefix for the "@" options: + prefix: true, + fileTypes: '@', + maxFileSize: '@', + noRevoke: '@', + disabled: '@disableImageLoad' + }, + { + action: 'resizeImage', + // Use "image" as prefix for the "@" options: + prefix: 'image', + maxWidth: '@', + maxHeight: '@', + minWidth: '@', + minHeight: '@', + crop: '@', + orientation: '@', + disabled: '@disableImageResize' + }, + { + action: 'saveImage', + disabled: '@disableImageResize' + }, + { + action: 'saveImageMetaData', + disabled: '@disableImageMetaDataSave' + }, + { + action: 'resizeImage', + // Use "preview" as prefix for the "@" options: + prefix: 'preview', + maxWidth: '@', + maxHeight: '@', + minWidth: '@', + minHeight: '@', + crop: '@', + orientation: '@', + thumbnail: '@', + canvas: '@', + disabled: '@disableImagePreview' + }, + { + action: 'setImage', + name: '@imagePreviewName', + disabled: '@disableImagePreview' + } + ); + + // The File Upload Resize plugin extends the fileupload widget + // with image resize functionality: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + // The regular expression for the types of images to load: + // matched against the file type: + loadImageFileTypes: /^image\/(gif|jpeg|png)$/, + // The maximum file size of images to load: + loadImageMaxFileSize: 10000000, // 10MB + // The maximum width of resized images: + imageMaxWidth: 1920, + // The maximum height of resized images: + imageMaxHeight: 1080, + // Defines the image orientation (1-8) or takes the orientation + // value from Exif data if set to true: + imageOrientation: false, + // Define if resized images should be cropped or only scaled: + imageCrop: false, + // Disable the resize image functionality by default: + disableImageResize: true, + // The maximum width of the preview images: + previewMaxWidth: 80, + // The maximum height of the preview images: + previewMaxHeight: 80, + // Defines the preview orientation (1-8) or takes the orientation + // value from Exif data if set to true: + previewOrientation: true, + // Create the preview using the Exif data thumbnail: + previewThumbnail: true, + // Define if preview images should be cropped or only scaled: + previewCrop: false, + // Define if preview images should be resized as canvas elements: + previewCanvas: true + }, + + processActions: { + + // Loads the image given via data.files and data.index + // as img element, if the browser supports the File API. + // Accepts the options fileTypes (regular expression) + // and maxFileSize (integer) to limit the files to load: + loadImage: function (data, options) { + if (options.disabled) { + return data; + } + var that = this, + file = data.files[data.index], + dfd = $.Deferred(); + if (($.type(options.maxFileSize) === 'number' && + file.size > options.maxFileSize) || + (options.fileTypes && + !options.fileTypes.test(file.type)) || + !loadImage( + file, + function (img) { + if (img.src) { + data.img = img; + } + dfd.resolveWith(that, [data]); + }, + options + )) { + return data; + } + return dfd.promise(); + }, + + // Resizes the image given as data.canvas or data.img + // and updates data.canvas or data.img with the resized image. + // Also stores the resized image as preview property. + // Accepts the options maxWidth, maxHeight, minWidth, + // minHeight, canvas and crop: + resizeImage: function (data, options) { + if (options.disabled || !(data.canvas || data.img)) { + return data; + } + options = $.extend({canvas: true}, options); + var that = this, + dfd = $.Deferred(), + img = (options.canvas && data.canvas) || data.img, + resolve = function (newImg) { + if (newImg && (newImg.width !== img.width || + newImg.height !== img.height)) { + data[newImg.getContext ? 'canvas' : 'img'] = newImg; + } + data.preview = newImg; + dfd.resolveWith(that, [data]); + }, + thumbnail; + if (data.exif) { + if (options.orientation === true) { + options.orientation = data.exif.get('Orientation'); + } + if (options.thumbnail) { + thumbnail = data.exif.get('Thumbnail'); + if (thumbnail) { + loadImage(thumbnail, resolve, options); + return dfd.promise(); + } + } + } + if (img) { + resolve(loadImage.scale(img, options)); + return dfd.promise(); + } + return data; + }, + + // Saves the processed image given as data.canvas + // inplace at data.index of data.files: + saveImage: function (data, options) { + if (!data.canvas || options.disabled) { + return data; + } + var that = this, + file = data.files[data.index], + name = file.name, + dfd = $.Deferred(), + callback = function (blob) { + if (!blob.name) { + if (file.type === blob.type) { + blob.name = file.name; + } else if (file.name) { + blob.name = file.name.replace( + /\..+$/, + '.' + blob.type.substr(6) + ); + } + } + // Store the created blob at the position + // of the original file in the files list: + data.files[data.index] = blob; + dfd.resolveWith(that, [data]); + }; + // Use canvas.mozGetAsFile directly, to retain the filename, as + // Gecko doesn't support the filename option for FormData.append: + if (data.canvas.mozGetAsFile) { + callback(data.canvas.mozGetAsFile( + (/^image\/(jpeg|png)$/.test(file.type) && name) || + ((name && name.replace(/\..+$/, '')) || + 'blob') + '.png', + file.type + )); + } else if (data.canvas.toBlob) { + data.canvas.toBlob(callback, file.type); + } else { + return data; + } + return dfd.promise(); + }, + + loadImageMetaData: function (data, options) { + if (options.disabled) { + return data; + } + var that = this, + dfd = $.Deferred(); + loadImage.parseMetaData(data.files[data.index], function (result) { + $.extend(data, result); + dfd.resolveWith(that, [data]); + }, options); + return dfd.promise(); + }, + + saveImageMetaData: function (data, options) { + if (!(data.imageHead && data.canvas && + data.canvas.toBlob && !options.disabled)) { + return data; + } + var file = data.files[data.index], + blob = new Blob([ + data.imageHead, + // Resized images always have a head size of 20 bytes, + // including the JPEG marker and a minimal JFIF header: + this._blobSlice.call(file, 20) + ], {type: file.type}); + blob.name = file.name; + data.files[data.index] = blob; + return data; + }, + + // Sets the resized version of the image as a property of the + // file object, must be called after "saveImage": + setImage: function (data, options) { + if (data.preview && !options.disabled) { + data.files[data.index][options.name || 'preview'] = data.preview; + } + return data; + } + + } + + }); + +})); diff --git a/admin-dev/themes/default/js/jquery.fileupload-process.js b/admin-dev/themes/default/js/jquery.fileupload-process.js new file mode 100644 index 000000000..87042c3d5 --- /dev/null +++ b/admin-dev/themes/default/js/jquery.fileupload-process.js @@ -0,0 +1,164 @@ +/* + * jQuery File Upload Processing Plugin 1.2.2 + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2012, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/*jslint nomen: true, unparam: true */ +/*global define, window */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + './jquery.fileupload' + ], factory); + } else { + // Browser globals: + factory( + window.jQuery + ); + } +}(function ($) { + 'use strict'; + + var originalAdd = $.blueimp.fileupload.prototype.options.add; + + // The File Upload Processing plugin extends the fileupload widget + // with file processing functionality: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + // The list of processing actions: + processQueue: [ + /* + { + action: 'log', + type: 'debug' + } + */ + ], + add: function (e, data) { + var $this = $(this); + data.process(function () { + return $this.fileupload('process', data); + }); + originalAdd.call(this, e, data); + } + }, + + processActions: { + /* + log: function (data, options) { + console[options.type]( + 'Processing "' + data.files[data.index].name + '"' + ); + } + */ + }, + + _processFile: function (data) { + var that = this, + dfd = $.Deferred().resolveWith(that, [data]), + chain = dfd.promise(); + this._trigger('process', null, data); + $.each(data.processQueue, function (i, settings) { + var func = function (data) { + return that.processActions[settings.action].call( + that, + data, + settings + ); + }; + chain = chain.pipe(func, settings.always && func); + }); + chain + .done(function () { + that._trigger('processdone', null, data); + that._trigger('processalways', null, data); + }) + .fail(function () { + that._trigger('processfail', null, data); + that._trigger('processalways', null, data); + }); + return chain; + }, + + // Replaces the settings of each processQueue item that + // are strings starting with an "@", using the remaining + // substring as key for the option map, + // e.g. "@autoUpload" is replaced with options.autoUpload: + _transformProcessQueue: function (options) { + var processQueue = []; + $.each(options.processQueue, function () { + var settings = {}, + action = this.action, + prefix = this.prefix === true ? action : this.prefix; + $.each(this, function (key, value) { + if ($.type(value) === 'string' && + value.charAt(0) === '@') { + settings[key] = options[ + value.slice(1) || (prefix ? prefix + + key.charAt(0).toUpperCase() + key.slice(1) : key) + ]; + } else { + settings[key] = value; + } + + }); + processQueue.push(settings); + }); + options.processQueue = processQueue; + }, + + // Returns the number of files currently in the processsing queue: + processing: function () { + return this._processing; + }, + + // Processes the files given as files property of the data parameter, + // returns a Promise object that allows to bind callbacks: + process: function (data) { + var that = this, + options = $.extend({}, this.options, data); + if (options.processQueue && options.processQueue.length) { + this._transformProcessQueue(options); + if (this._processing === 0) { + this._trigger('processstart'); + } + $.each(data.files, function (index) { + var opts = index ? $.extend({}, options) : options, + func = function () { + return that._processFile(opts); + }; + opts.index = index; + that._processing += 1; + that._processingQueue = that._processingQueue.pipe(func, func) + .always(function () { + that._processing -= 1; + if (that._processing === 0) { + that._trigger('processstop'); + } + }); + }); + } + return this._processingQueue; + }, + + _create: function () { + this._super(); + this._processing = 0; + this._processingQueue = $.Deferred().resolveWith(this) + .promise(); + } + + }); + +})); diff --git a/admin-dev/themes/default/js/jquery.fileupload-validate.js b/admin-dev/themes/default/js/jquery.fileupload-validate.js new file mode 100644 index 000000000..ee1c2f2ed --- /dev/null +++ b/admin-dev/themes/default/js/jquery.fileupload-validate.js @@ -0,0 +1,117 @@ +/* + * jQuery File Upload Validation Plugin 1.1.1 + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/*jslint nomen: true, unparam: true, regexp: true */ +/*global define, window */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + './jquery.fileupload-process' + ], factory); + } else { + // Browser globals: + factory( + window.jQuery + ); + } +}(function ($) { + 'use strict'; + + // Append to the default processQueue: + $.blueimp.fileupload.prototype.options.processQueue.push( + { + action: 'validate', + // Always trigger this action, + // even if the previous action was rejected: + always: true, + // Options taken from the global options map: + acceptFileTypes: '@', + maxFileSize: '@', + minFileSize: '@', + maxNumberOfFiles: '@', + disabled: '@disableValidation' + } + ); + + // The File Upload Validation plugin extends the fileupload widget + // with file validation functionality: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + /* + // The regular expression for allowed file types, matches + // against either file type or file name: + acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, + // The maximum allowed file size in bytes: + maxFileSize: 10000000, // 10 MB + // The minimum allowed file size in bytes: + minFileSize: undefined, // No minimal file size + // The limit of files to be uploaded: + maxNumberOfFiles: 10, + */ + + // Function returning the current number of files, + // has to be overriden for maxNumberOfFiles validation: + getNumberOfFiles: $.noop, + + // Error and info messages: + messages: { + maxNumberOfFiles: 'Maximum number of files exceeded', + acceptFileTypes: 'File type not allowed', + maxFileSize: 'File is too large', + minFileSize: 'File is too small' + } + }, + + processActions: { + + validate: function (data, options) { + if (options.disabled) { + return data; + } + var dfd = $.Deferred(), + settings = this.options, + file = data.files[data.index]; + if ($.type(options.maxNumberOfFiles) === 'number' && + (settings.getNumberOfFiles() || 0) + data.files.length > + options.maxNumberOfFiles) { + file.error = settings.i18n('maxNumberOfFiles'); + } else if (options.acceptFileTypes && + !(options.acceptFileTypes.test(file.type) || + options.acceptFileTypes.test(file.name))) { + file.error = settings.i18n('acceptFileTypes'); + } else if (options.maxFileSize && file.size > + options.maxFileSize) { + file.error = settings.i18n('maxFileSize'); + } else if ($.type(file.size) === 'number' && + file.size < options.minFileSize) { + file.error = settings.i18n('minFileSize'); + } else { + delete file.error; + } + if (file.error || data.files.error) { + data.files.error = true; + dfd.rejectWith(this, [data]); + } else { + dfd.resolveWith(this, [data]); + } + return dfd.promise(); + } + + } + + }); + +})); diff --git a/admin-dev/themes/default/js/jquery.fileupload.js b/admin-dev/themes/default/js/jquery.fileupload.js new file mode 100644 index 000000000..16ebb1d95 --- /dev/null +++ b/admin-dev/themes/default/js/jquery.fileupload.js @@ -0,0 +1,1367 @@ +/* + * jQuery File Upload Plugin 5.34.0 + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2010, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/*jslint nomen: true, unparam: true, regexp: true */ +/*global define, window, document, location, File, Blob, FormData */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'jquery.ui.widget' + ], factory); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + // Detect file input support, based on + // http://viljamis.com/blog/2012/file-upload-support-on-mobile/ + $.support.fileInput = !(new RegExp( + // Handle devices which give false positives for the feature detection: + '(Android (1\\.[0156]|2\\.[01]))' + + '|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' + + '|(w(eb)?OSBrowser)|(webOS)' + + '|(Kindle/(1\\.0|2\\.[05]|3\\.0))' + ).test(window.navigator.userAgent) || + // Feature detection for all other devices: + $('').prop('disabled')); + + // The FileReader API is not actually used, but works as feature detection, + // as e.g. Safari supports XHR file uploads via the FormData API, + // but not non-multipart XHR file uploads: + $.support.xhrFileUpload = !!(window.XMLHttpRequestUpload && window.FileReader); + $.support.xhrFormDataFileUpload = !!window.FormData; + + // Detect support for Blob slicing (required for chunked uploads): + $.support.blobSlice = window.Blob && (Blob.prototype.slice || + Blob.prototype.webkitSlice || Blob.prototype.mozSlice); + + // The fileupload widget listens for change events on file input fields defined + // via fileInput setting and paste or drop events of the given dropZone. + // In addition to the default jQuery Widget methods, the fileupload widget + // exposes the "add" and "send" methods, to add or directly send files using + // the fileupload API. + // By default, files added via file input selection, paste, drag & drop or + // "add" method are uploaded immediately, but it is possible to override + // the "add" callback option to queue file uploads. + $.widget('blueimp.fileupload', { + + options: { + // The drop target element(s), by the default the complete document. + // Set to null to disable drag & drop support: + dropZone: $(document), + // The paste target element(s), by the default the complete document. + // Set to null to disable paste support: + pasteZone: $(document), + // The file input field(s), that are listened to for change events. + // If undefined, it is set to the file input fields inside + // of the widget element on plugin initialization. + // Set to null to disable the change listener. + fileInput: undefined, + // By default, the file input field is replaced with a clone after + // each input field change event. This is required for iframe transport + // queues and allows change events to be fired for the same file + // selection, but can be disabled by setting the following option to false: + replaceFileInput: true, + // The parameter name for the file form data (the request argument name). + // If undefined or empty, the name property of the file input field is + // used, or "files[]" if the file input name property is also empty, + // can be a string or an array of strings: + paramName: undefined, + // By default, each file of a selection is uploaded using an individual + // request for XHR type uploads. Set to false to upload file + // selections in one request each: + singleFileUploads: true, + // To limit the number of files uploaded with one XHR request, + // set the following option to an integer greater than 0: + limitMultiFileUploads: undefined, + // Set the following option to true to issue all file upload requests + // in a sequential order: + sequentialUploads: false, + // To limit the number of concurrent uploads, + // set the following option to an integer greater than 0: + limitConcurrentUploads: undefined, + // Set the following option to true to force iframe transport uploads: + forceIframeTransport: false, + // Set the following option to the location of a redirect url on the + // origin server, for cross-domain iframe transport uploads: + redirect: undefined, + // The parameter name for the redirect url, sent as part of the form + // data and set to 'redirect' if this option is empty: + redirectParamName: undefined, + // Set the following option to the location of a postMessage window, + // to enable postMessage transport uploads: + postMessage: undefined, + // By default, XHR file uploads are sent as multipart/form-data. + // The iframe transport is always using multipart/form-data. + // Set to false to enable non-multipart XHR uploads: + multipart: true, + // To upload large files in smaller chunks, set the following option + // to a preferred maximum chunk size. If set to 0, null or undefined, + // or the browser does not support the required Blob API, files will + // be uploaded as a whole. + maxChunkSize: undefined, + // When a non-multipart upload or a chunked multipart upload has been + // aborted, this option can be used to resume the upload by setting + // it to the size of the already uploaded bytes. This option is most + // useful when modifying the options object inside of the "add" or + // "send" callbacks, as the options are cloned for each file upload. + uploadedBytes: undefined, + // By default, failed (abort or error) file uploads are removed from the + // global progress calculation. Set the following option to false to + // prevent recalculating the global progress data: + recalculateProgress: true, + // Interval in milliseconds to calculate and trigger progress events: + progressInterval: 100, + // Interval in milliseconds to calculate progress bitrate: + bitrateInterval: 500, + // By default, uploads are started automatically when adding files: + autoUpload: true, + + // Error and info messages: + messages: { + uploadedBytes: 'Uploaded bytes exceed file size' + }, + + // Translation function, gets the message key to be translated + // and an object with context specific data as arguments: + i18n: function (message, context) { + message = this.messages[message] || message.toString(); + if (context) { + $.each(context, function (key, value) { + message = message.replace('{' + key + '}', value); + }); + } + return message; + }, + + // Additional form data to be sent along with the file uploads can be set + // using this option, which accepts an array of objects with name and + // value properties, a function returning such an array, a FormData + // object (for XHR file uploads), or a simple object. + // The form of the first fileInput is given as parameter to the function: + formData: function (form) { + return form.serializeArray(); + }, + + // The add callback is invoked as soon as files are added to the fileupload + // widget (via file input selection, drag & drop, paste or add API call). + // If the singleFileUploads option is enabled, this callback will be + // called once for each file in the selection for XHR file uploads, else + // once for each file selection. + // + // The upload starts when the submit method is invoked on the data parameter. + // The data object contains a files property holding the added files + // and allows you to override plugin options as well as define ajax settings. + // + // Listeners for this callback can also be bound the following way: + // .bind('fileuploadadd', func); + // + // data.submit() returns a Promise object and allows to attach additional + // handlers using jQuery's Deferred callbacks: + // data.submit().done(func).fail(func).always(func); + add: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + if (data.autoUpload || (data.autoUpload !== false && + $(this).fileupload('option', 'autoUpload'))) { + data.process().done(function () { + data.submit(); + }); + } + }, + + // Other callbacks: + + // Callback for the submit event of each file upload: + // submit: function (e, data) {}, // .bind('fileuploadsubmit', func); + + // Callback for the start of each file upload request: + // send: function (e, data) {}, // .bind('fileuploadsend', func); + + // Callback for successful uploads: + // done: function (e, data) {}, // .bind('fileuploaddone', func); + + // Callback for failed (abort or error) uploads: + // fail: function (e, data) {}, // .bind('fileuploadfail', func); + + // Callback for completed (success, abort or error) requests: + // always: function (e, data) {}, // .bind('fileuploadalways', func); + + // Callback for upload progress events: + // progress: function (e, data) {}, // .bind('fileuploadprogress', func); + + // Callback for global upload progress events: + // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func); + + // Callback for uploads start, equivalent to the global ajaxStart event: + // start: function (e) {}, // .bind('fileuploadstart', func); + + // Callback for uploads stop, equivalent to the global ajaxStop event: + // stop: function (e) {}, // .bind('fileuploadstop', func); + + // Callback for change events of the fileInput(s): + // change: function (e, data) {}, // .bind('fileuploadchange', func); + + // Callback for paste events to the pasteZone(s): + // paste: function (e, data) {}, // .bind('fileuploadpaste', func); + + // Callback for drop events of the dropZone(s): + // drop: function (e, data) {}, // .bind('fileuploaddrop', func); + + // Callback for dragover events of the dropZone(s): + // dragover: function (e) {}, // .bind('fileuploaddragover', func); + + // Callback for the start of each chunk upload request: + // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func); + + // Callback for successful chunk uploads: + // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func); + + // Callback for failed (abort or error) chunk uploads: + // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func); + + // Callback for completed (success, abort or error) chunk upload requests: + // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func); + + // The plugin options are used as settings object for the ajax calls. + // The following are jQuery ajax settings required for the file uploads: + processData: false, + contentType: false, + cache: false + }, + + // A list of options that require reinitializing event listeners and/or + // special initialization code: + _specialOptions: [ + 'fileInput', + 'dropZone', + 'pasteZone', + 'multipart', + 'forceIframeTransport' + ], + + _blobSlice: $.support.blobSlice && function () { + var slice = this.slice || this.webkitSlice || this.mozSlice; + return slice.apply(this, arguments); + }, + + _BitrateTimer: function () { + this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime()); + this.loaded = 0; + this.bitrate = 0; + this.getBitrate = function (now, loaded, interval) { + var timeDiff = now - this.timestamp; + if (!this.bitrate || !interval || timeDiff > interval) { + this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8; + this.loaded = loaded; + this.timestamp = now; + } + return this.bitrate; + }; + }, + + _isXHRUpload: function (options) { + return !options.forceIframeTransport && + ((!options.multipart && $.support.xhrFileUpload) || + $.support.xhrFormDataFileUpload); + }, + + _getFormData: function (options) { + var formData; + if (typeof options.formData === 'function') { + return options.formData(options.form); + } + if ($.isArray(options.formData)) { + return options.formData; + } + if ($.type(options.formData) === 'object') { + formData = []; + $.each(options.formData, function (name, value) { + formData.push({name: name, value: value}); + }); + return formData; + } + return []; + }, + + _getTotal: function (files) { + var total = 0; + $.each(files, function (index, file) { + total += file.size || 1; + }); + return total; + }, + + _initProgressObject: function (obj) { + var progress = { + loaded: 0, + total: 0, + bitrate: 0 + }; + if (obj._progress) { + $.extend(obj._progress, progress); + } else { + obj._progress = progress; + } + }, + + _initResponseObject: function (obj) { + var prop; + if (obj._response) { + for (prop in obj._response) { + if (obj._response.hasOwnProperty(prop)) { + delete obj._response[prop]; + } + } + } else { + obj._response = {}; + } + }, + + _onProgress: function (e, data) { + if (e.lengthComputable) { + var now = ((Date.now) ? Date.now() : (new Date()).getTime()), + loaded; + if (data._time && data.progressInterval && + (now - data._time < data.progressInterval) && + e.loaded !== e.total) { + return; + } + data._time = now; + loaded = Math.floor( + e.loaded / e.total * (data.chunkSize || data._progress.total) + ) + (data.uploadedBytes || 0); + // Add the difference from the previously loaded state + // to the global loaded counter: + this._progress.loaded += (loaded - data._progress.loaded); + this._progress.bitrate = this._bitrateTimer.getBitrate( + now, + this._progress.loaded, + data.bitrateInterval + ); + data._progress.loaded = data.loaded = loaded; + data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate( + now, + loaded, + data.bitrateInterval + ); + // Trigger a custom progress event with a total data property set + // to the file size(s) of the current upload and a loaded data + // property calculated accordingly: + this._trigger( + 'progress', + $.Event('progress', {delegatedEvent: e}), + data + ); + // Trigger a global progress event for all current file uploads, + // including ajax calls queued for sequential file uploads: + this._trigger( + 'progressall', + $.Event('progressall', {delegatedEvent: e}), + this._progress + ); + } + }, + + _initProgressListener: function (options) { + var that = this, + xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr(); + // Accesss to the native XHR object is required to add event listeners + // for the upload progress event: + if (xhr.upload) { + $(xhr.upload).bind('progress', function (e) { + var oe = e.originalEvent; + // Make sure the progress event properties get copied over: + e.lengthComputable = oe.lengthComputable; + e.loaded = oe.loaded; + e.total = oe.total; + that._onProgress(e, options); + }); + options.xhr = function () { + return xhr; + }; + } + }, + + _isInstanceOf: function (type, obj) { + // Cross-frame instanceof check + return Object.prototype.toString.call(obj) === '[object ' + type + ']'; + }, + + _initXHRData: function (options) { + var that = this, + formData, + file = options.files[0], + // Ignore non-multipart setting if not supported: + multipart = options.multipart || !$.support.xhrFileUpload, + paramName = options.paramName[0]; + options.headers = $.extend({}, options.headers); + if (options.contentRange) { + options.headers['Content-Range'] = options.contentRange; + } + if (!multipart || options.blob || !this._isInstanceOf('File', file)) { + options.headers['Content-Disposition'] = 'attachment; filename="' + + encodeURI(file.name) + '"'; + } + if (!multipart) { + options.contentType = file.type; + options.data = options.blob || file; + } else if ($.support.xhrFormDataFileUpload) { + if (options.postMessage) { + // window.postMessage does not allow sending FormData + // objects, so we just add the File/Blob objects to + // the formData array and let the postMessage window + // create the FormData object out of this array: + formData = this._getFormData(options); + if (options.blob) { + formData.push({ + name: paramName, + value: options.blob + }); + } else { + $.each(options.files, function (index, file) { + formData.push({ + name: options.paramName[index] || paramName, + value: file + }); + }); + } + } else { + if (that._isInstanceOf('FormData', options.formData)) { + formData = options.formData; + } else { + formData = new FormData(); + $.each(this._getFormData(options), function (index, field) { + formData.append(field.name, field.value); + }); + } + if (options.blob) { + formData.append(paramName, options.blob, file.name); + } else { + $.each(options.files, function (index, file) { + // This check allows the tests to run with + // dummy objects: + if (that._isInstanceOf('File', file) || + that._isInstanceOf('Blob', file)) { + formData.append( + options.paramName[index] || paramName, + file, + file.name + ); + } + }); + } + } + options.data = formData; + } + // Blob reference is not needed anymore, free memory: + options.blob = null; + }, + + _initIframeSettings: function (options) { + var targetHost = $('').prop('href', options.url).prop('host'); + // Setting the dataType to iframe enables the iframe transport: + options.dataType = 'iframe ' + (options.dataType || ''); + // The iframe transport accepts a serialized array as form data: + options.formData = this._getFormData(options); + // Add redirect url to form data on cross-domain uploads: + if (options.redirect && targetHost && targetHost !== location.host) { + options.formData.push({ + name: options.redirectParamName || 'redirect', + value: options.redirect + }); + } + }, + + _initDataSettings: function (options) { + if (this._isXHRUpload(options)) { + if (!this._chunkedUpload(options, true)) { + if (!options.data) { + this._initXHRData(options); + } + this._initProgressListener(options); + } + if (options.postMessage) { + // Setting the dataType to postmessage enables the + // postMessage transport: + options.dataType = 'postmessage ' + (options.dataType || ''); + } + } else { + this._initIframeSettings(options); + } + }, + + _getParamName: function (options) { + var fileInput = $(options.fileInput), + paramName = options.paramName; + if (!paramName) { + paramName = []; + fileInput.each(function () { + var input = $(this), + name = input.prop('name') || 'files[]', + i = (input.prop('files') || [1]).length; + while (i) { + paramName.push(name); + i -= 1; + } + }); + if (!paramName.length) { + paramName = [fileInput.prop('name') || 'files[]']; + } + } else if (!$.isArray(paramName)) { + paramName = [paramName]; + } + return paramName; + }, + + _initFormSettings: function (options) { + // Retrieve missing options from the input field and the + // associated form, if available: + if (!options.form || !options.form.length) { + options.form = $(options.fileInput.prop('form')); + // If the given file input doesn't have an associated form, + // use the default widget file input's form: + if (!options.form.length) { + options.form = $(this.options.fileInput.prop('form')); + } + } + options.paramName = this._getParamName(options); + if (!options.url) { + options.url = options.form.prop('action') || location.href; + } + // The HTTP request method must be "POST" or "PUT": + options.type = (options.type || + ($.type(options.form.prop('method')) === 'string' && + options.form.prop('method')) || '' + ).toUpperCase(); + if (options.type !== 'POST' && options.type !== 'PUT' && + options.type !== 'PATCH') { + options.type = 'POST'; + } + if (!options.formAcceptCharset) { + options.formAcceptCharset = options.form.attr('accept-charset'); + } + }, + + _getAJAXSettings: function (data) { + var options = $.extend({}, this.options, data); + this._initFormSettings(options); + this._initDataSettings(options); + return options; + }, + + // jQuery 1.6 doesn't provide .state(), + // while jQuery 1.8+ removed .isRejected() and .isResolved(): + _getDeferredState: function (deferred) { + if (deferred.state) { + return deferred.state(); + } + if (deferred.isResolved()) { + return 'resolved'; + } + if (deferred.isRejected()) { + return 'rejected'; + } + return 'pending'; + }, + + // Maps jqXHR callbacks to the equivalent + // methods of the given Promise object: + _enhancePromise: function (promise) { + promise.success = promise.done; + promise.error = promise.fail; + promise.complete = promise.always; + return promise; + }, + + // Creates and returns a Promise object enhanced with + // the jqXHR methods abort, success, error and complete: + _getXHRPromise: function (resolveOrReject, context, args) { + var dfd = $.Deferred(), + promise = dfd.promise(); + context = context || this.options.context || promise; + if (resolveOrReject === true) { + dfd.resolveWith(context, args); + } else if (resolveOrReject === false) { + dfd.rejectWith(context, args); + } + promise.abort = dfd.promise; + return this._enhancePromise(promise); + }, + + // Adds convenience methods to the data callback argument: + _addConvenienceMethods: function (e, data) { + var that = this, + getPromise = function (data) { + return $.Deferred().resolveWith(that, [data]).promise(); + }; + data.process = function (resolveFunc, rejectFunc) { + if (resolveFunc || rejectFunc) { + data._processQueue = this._processQueue = + (this._processQueue || getPromise(this)) + .pipe(resolveFunc, rejectFunc); + } + return this._processQueue || getPromise(this); + }; + data.submit = function () { + if (this.state() !== 'pending') { + data.jqXHR = this.jqXHR = + (that._trigger( + 'submit', + $.Event('submit', {delegatedEvent: e}), + this + ) !== false) && that._onSend(e, this); + } + return this.jqXHR || that._getXHRPromise(); + }; + data.abort = function () { + if (this.jqXHR) { + return this.jqXHR.abort(); + } + return that._getXHRPromise(); + }; + data.state = function () { + if (this.jqXHR) { + return that._getDeferredState(this.jqXHR); + } + if (this._processQueue) { + return that._getDeferredState(this._processQueue); + } + }; + data.progress = function () { + return this._progress; + }; + data.response = function () { + return this._response; + }; + }, + + // Parses the Range header from the server response + // and returns the uploaded bytes: + _getUploadedBytes: function (jqXHR) { + var range = jqXHR.getResponseHeader('Range'), + parts = range && range.split('-'), + upperBytesPos = parts && parts.length > 1 && + parseInt(parts[1], 10); + return upperBytesPos && upperBytesPos + 1; + }, + + // Uploads a file in multiple, sequential requests + // by splitting the file up in multiple blob chunks. + // If the second parameter is true, only tests if the file + // should be uploaded in chunks, but does not invoke any + // upload requests: + _chunkedUpload: function (options, testOnly) { + options.uploadedBytes = options.uploadedBytes || 0; + var that = this, + file = options.files[0], + fs = file.size, + ub = options.uploadedBytes, + mcs = options.maxChunkSize || fs, + slice = this._blobSlice, + dfd = $.Deferred(), + promise = dfd.promise(), + jqXHR, + upload; + if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) || + options.data) { + return false; + } + if (testOnly) { + return true; + } + if (ub >= fs) { + file.error = options.i18n('uploadedBytes'); + return this._getXHRPromise( + false, + options.context, + [null, 'error', file.error] + ); + } + // The chunk upload method: + upload = function () { + // Clone the options object for each chunk upload: + var o = $.extend({}, options), + currentLoaded = o._progress.loaded; + o.blob = slice.call( + file, + ub, + ub + mcs, + file.type + ); + // Store the current chunk size, as the blob itself + // will be dereferenced after data processing: + o.chunkSize = o.blob.size; + // Expose the chunk bytes position range: + o.contentRange = 'bytes ' + ub + '-' + + (ub + o.chunkSize - 1) + '/' + fs; + // Process the upload data (the blob and potential form data): + that._initXHRData(o); + // Add progress listeners for this chunk upload: + that._initProgressListener(o); + jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) || + that._getXHRPromise(false, o.context)) + .done(function (result, textStatus, jqXHR) { + ub = that._getUploadedBytes(jqXHR) || + (ub + o.chunkSize); + // Create a progress event if no final progress event + // with loaded equaling total has been triggered + // for this chunk: + if (currentLoaded + o.chunkSize - o._progress.loaded) { + that._onProgress($.Event('progress', { + lengthComputable: true, + loaded: ub - o.uploadedBytes, + total: ub - o.uploadedBytes + }), o); + } + options.uploadedBytes = o.uploadedBytes = ub; + o.result = result; + o.textStatus = textStatus; + o.jqXHR = jqXHR; + that._trigger('chunkdone', null, o); + that._trigger('chunkalways', null, o); + if (ub < fs) { + // File upload not yet complete, + // continue with the next chunk: + upload(); + } else { + dfd.resolveWith( + o.context, + [result, textStatus, jqXHR] + ); + } + }) + .fail(function (jqXHR, textStatus, errorThrown) { + o.jqXHR = jqXHR; + o.textStatus = textStatus; + o.errorThrown = errorThrown; + that._trigger('chunkfail', null, o); + that._trigger('chunkalways', null, o); + dfd.rejectWith( + o.context, + [jqXHR, textStatus, errorThrown] + ); + }); + }; + this._enhancePromise(promise); + promise.abort = function () { + return jqXHR.abort(); + }; + upload(); + return promise; + }, + + _beforeSend: function (e, data) { + if (this._active === 0) { + // the start callback is triggered when an upload starts + // and no other uploads are currently running, + // equivalent to the global ajaxStart event: + this._trigger('start'); + // Set timer for global bitrate progress calculation: + this._bitrateTimer = new this._BitrateTimer(); + // Reset the global progress values: + this._progress.loaded = this._progress.total = 0; + this._progress.bitrate = 0; + } + // Make sure the container objects for the .response() and + // .progress() methods on the data object are available + // and reset to their initial state: + this._initResponseObject(data); + this._initProgressObject(data); + data._progress.loaded = data.loaded = data.uploadedBytes || 0; + data._progress.total = data.total = this._getTotal(data.files) || 1; + data._progress.bitrate = data.bitrate = 0; + this._active += 1; + // Initialize the global progress values: + this._progress.loaded += data.loaded; + this._progress.total += data.total; + }, + + _onDone: function (result, textStatus, jqXHR, options) { + var total = options._progress.total, + response = options._response; + if (options._progress.loaded < total) { + // Create a progress event if no final progress event + // with loaded equaling total has been triggered: + this._onProgress($.Event('progress', { + lengthComputable: true, + loaded: total, + total: total + }), options); + } + response.result = options.result = result; + response.textStatus = options.textStatus = textStatus; + response.jqXHR = options.jqXHR = jqXHR; + this._trigger('done', null, options); + }, + + _onFail: function (jqXHR, textStatus, errorThrown, options) { + var response = options._response; + if (options.recalculateProgress) { + // Remove the failed (error or abort) file upload from + // the global progress calculation: + this._progress.loaded -= options._progress.loaded; + this._progress.total -= options._progress.total; + } + response.jqXHR = options.jqXHR = jqXHR; + response.textStatus = options.textStatus = textStatus; + response.errorThrown = options.errorThrown = errorThrown; + this._trigger('fail', null, options); + }, + + _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) { + // jqXHRorResult, textStatus and jqXHRorError are added to the + // options object via done and fail callbacks + this._trigger('always', null, options); + }, + + _onSend: function (e, data) { + if (!data.submit) { + this._addConvenienceMethods(e, data); + } + var that = this, + jqXHR, + aborted, + slot, + pipe, + options = that._getAJAXSettings(data), + send = function () { + that._sending += 1; + // Set timer for bitrate progress calculation: + options._bitrateTimer = new that._BitrateTimer(); + jqXHR = jqXHR || ( + ((aborted || that._trigger( + 'send', + $.Event('send', {delegatedEvent: e}), + options + ) === false) && + that._getXHRPromise(false, options.context, aborted)) || + that._chunkedUpload(options) || $.ajax(options) + ).done(function (result, textStatus, jqXHR) { + that._onDone(result, textStatus, jqXHR, options); + }).fail(function (jqXHR, textStatus, errorThrown) { + that._onFail(jqXHR, textStatus, errorThrown, options); + }).always(function (jqXHRorResult, textStatus, jqXHRorError) { + that._onAlways( + jqXHRorResult, + textStatus, + jqXHRorError, + options + ); + that._sending -= 1; + that._active -= 1; + if (options.limitConcurrentUploads && + options.limitConcurrentUploads > that._sending) { + // Start the next queued upload, + // that has not been aborted: + var nextSlot = that._slots.shift(); + while (nextSlot) { + if (that._getDeferredState(nextSlot) === 'pending') { + nextSlot.resolve(); + break; + } + nextSlot = that._slots.shift(); + } + } + if (that._active === 0) { + // The stop callback is triggered when all uploads have + // been completed, equivalent to the global ajaxStop event: + that._trigger('stop'); + } + }); + return jqXHR; + }; + this._beforeSend(e, options); + if (this.options.sequentialUploads || + (this.options.limitConcurrentUploads && + this.options.limitConcurrentUploads <= this._sending)) { + if (this.options.limitConcurrentUploads > 1) { + slot = $.Deferred(); + this._slots.push(slot); + pipe = slot.pipe(send); + } else { + this._sequence = this._sequence.pipe(send, send); + pipe = this._sequence; + } + // Return the piped Promise object, enhanced with an abort method, + // which is delegated to the jqXHR object of the current upload, + // and jqXHR callbacks mapped to the equivalent Promise methods: + pipe.abort = function () { + aborted = [undefined, 'abort', 'abort']; + if (!jqXHR) { + if (slot) { + slot.rejectWith(options.context, aborted); + } + return send(); + } + return jqXHR.abort(); + }; + return this._enhancePromise(pipe); + } + return send(); + }, + + _onAdd: function (e, data) { + var that = this, + result = true, + options = $.extend({}, this.options, data), + limit = options.limitMultiFileUploads, + paramName = this._getParamName(options), + paramNameSet, + paramNameSlice, + fileSet, + i; + if (!(options.singleFileUploads || limit) || + !this._isXHRUpload(options)) { + fileSet = [data.files]; + paramNameSet = [paramName]; + } else if (!options.singleFileUploads && limit) { + fileSet = []; + paramNameSet = []; + for (i = 0; i < data.files.length; i += limit) { + fileSet.push(data.files.slice(i, i + limit)); + paramNameSlice = paramName.slice(i, i + limit); + if (!paramNameSlice.length) { + paramNameSlice = paramName; + } + paramNameSet.push(paramNameSlice); + } + } else { + paramNameSet = paramName; + } + data.originalFiles = data.files; + $.each(fileSet || data.files, function (index, element) { + var newData = $.extend({}, data); + newData.files = fileSet ? element : [element]; + newData.paramName = paramNameSet[index]; + that._initResponseObject(newData); + that._initProgressObject(newData); + that._addConvenienceMethods(e, newData); + result = that._trigger( + 'add', + $.Event('add', {delegatedEvent: e}), + newData + ); + return result; + }); + return result; + }, + + _replaceFileInput: function (input) { + var inputClone = input.clone(true); + $('
').append(inputClone)[0].reset(); + // Detaching allows to insert the fileInput on another form + // without loosing the file input value: + input.after(inputClone).detach(); + // Avoid memory leaks with the detached file input: + $.cleanData(input.unbind('remove')); + // Replace the original file input element in the fileInput + // elements set with the clone, which has been copied including + // event handlers: + this.options.fileInput = this.options.fileInput.map(function (i, el) { + if (el === input[0]) { + return inputClone[0]; + } + return el; + }); + // If the widget has been initialized on the file input itself, + // override this.element with the file input clone: + if (input[0] === this.element[0]) { + this.element = inputClone; + } + }, + + _handleFileTreeEntry: function (entry, path) { + var that = this, + dfd = $.Deferred(), + errorHandler = function (e) { + if (e && !e.entry) { + e.entry = entry; + } + // Since $.when returns immediately if one + // Deferred is rejected, we use resolve instead. + // This allows valid files and invalid items + // to be returned together in one set: + dfd.resolve([e]); + }, + dirReader; + path = path || ''; + if (entry.isFile) { + if (entry._file) { + // Workaround for Chrome bug #149735 + entry._file.relativePath = path; + dfd.resolve(entry._file); + } else { + entry.file(function (file) { + file.relativePath = path; + dfd.resolve(file); + }, errorHandler); + } + } else if (entry.isDirectory) { + dirReader = entry.createReader(); + dirReader.readEntries(function (entries) { + that._handleFileTreeEntries( + entries, + path + entry.name + '/' + ).done(function (files) { + dfd.resolve(files); + }).fail(errorHandler); + }, errorHandler); + } else { + // Return an empy list for file system items + // other than files or directories: + dfd.resolve([]); + } + return dfd.promise(); + }, + + _handleFileTreeEntries: function (entries, path) { + var that = this; + return $.when.apply( + $, + $.map(entries, function (entry) { + return that._handleFileTreeEntry(entry, path); + }) + ).pipe(function () { + return Array.prototype.concat.apply( + [], + arguments + ); + }); + }, + + _getDroppedFiles: function (dataTransfer) { + dataTransfer = dataTransfer || {}; + var items = dataTransfer.items; + if (items && items.length && (items[0].webkitGetAsEntry || + items[0].getAsEntry)) { + return this._handleFileTreeEntries( + $.map(items, function (item) { + var entry; + if (item.webkitGetAsEntry) { + entry = item.webkitGetAsEntry(); + if (entry) { + // Workaround for Chrome bug #149735: + entry._file = item.getAsFile(); + } + return entry; + } + return item.getAsEntry(); + }) + ); + } + return $.Deferred().resolve( + $.makeArray(dataTransfer.files) + ).promise(); + }, + + _getSingleFileInputFiles: function (fileInput) { + fileInput = $(fileInput); + var entries = fileInput.prop('webkitEntries') || + fileInput.prop('entries'), + files, + value; + if (entries && entries.length) { + return this._handleFileTreeEntries(entries); + } + files = $.makeArray(fileInput.prop('files')); + if (!files.length) { + value = fileInput.prop('value'); + if (!value) { + return $.Deferred().resolve([]).promise(); + } + // If the files property is not available, the browser does not + // support the File API and we add a pseudo File object with + // the input value as name with path information removed: + files = [{name: value.replace(/^.*\\/, '')}]; + } else if (files[0].name === undefined && files[0].fileName) { + // File normalization for Safari 4 and Firefox 3: + $.each(files, function (index, file) { + file.name = file.fileName; + file.size = file.fileSize; + }); + } + return $.Deferred().resolve(files).promise(); + }, + + _getFileInputFiles: function (fileInput) { + if (!(fileInput instanceof $) || fileInput.length === 1) { + return this._getSingleFileInputFiles(fileInput); + } + return $.when.apply( + $, + $.map(fileInput, this._getSingleFileInputFiles) + ).pipe(function () { + return Array.prototype.concat.apply( + [], + arguments + ); + }); + }, + + _onChange: function (e) { + var that = this, + data = { + fileInput: $(e.target), + form: $(e.target.form) + }; + this._getFileInputFiles(data.fileInput).always(function (files) { + data.files = files; + if (that.options.replaceFileInput) { + that._replaceFileInput(data.fileInput); + } + if (that._trigger( + 'change', + $.Event('change', {delegatedEvent: e}), + data + ) !== false) { + that._onAdd(e, data); + } + }); + }, + + _onPaste: function (e) { + var items = e.originalEvent && e.originalEvent.clipboardData && + e.originalEvent.clipboardData.items, + data = {files: []}; + if (items && items.length) { + $.each(items, function (index, item) { + var file = item.getAsFile && item.getAsFile(); + if (file) { + data.files.push(file); + } + }); + if (this._trigger( + 'paste', + $.Event('paste', {delegatedEvent: e}), + data + ) !== false) { + this._onAdd(e, data); + } + } + }, + + _onDrop: function (e) { + e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer; + var that = this, + dataTransfer = e.dataTransfer, + data = {}; + if (dataTransfer && dataTransfer.files && dataTransfer.files.length) { + e.preventDefault(); + this._getDroppedFiles(dataTransfer).always(function (files) { + data.files = files; + if (that._trigger( + 'drop', + $.Event('drop', {delegatedEvent: e}), + data + ) !== false) { + that._onAdd(e, data); + } + }); + } + }, + + _onDragOver: function (e) { + e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer; + var dataTransfer = e.dataTransfer; + if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 && + this._trigger( + 'dragover', + $.Event('dragover', {delegatedEvent: e}) + ) !== false) { + e.preventDefault(); + dataTransfer.dropEffect = 'copy'; + } + }, + + _initEventHandlers: function () { + if (this._isXHRUpload(this.options)) { + this._on(this.options.dropZone, { + dragover: this._onDragOver, + drop: this._onDrop + }); + this._on(this.options.pasteZone, { + paste: this._onPaste + }); + } + if ($.support.fileInput) { + this._on(this.options.fileInput, { + change: this._onChange + }); + } + }, + + _destroyEventHandlers: function () { + this._off(this.options.dropZone, 'dragover drop'); + this._off(this.options.pasteZone, 'paste'); + this._off(this.options.fileInput, 'change'); + }, + + _setOption: function (key, value) { + var reinit = $.inArray(key, this._specialOptions) !== -1; + if (reinit) { + this._destroyEventHandlers(); + } + this._super(key, value); + if (reinit) { + this._initSpecialOptions(); + this._initEventHandlers(); + } + }, + + _initSpecialOptions: function () { + var options = this.options; + if (options.fileInput === undefined) { + options.fileInput = this.element.is('input[type="file"]') ? + this.element : this.element.find('input[type="file"]'); + } else if (!(options.fileInput instanceof $)) { + options.fileInput = $(options.fileInput); + } + if (!(options.dropZone instanceof $)) { + options.dropZone = $(options.dropZone); + } + if (!(options.pasteZone instanceof $)) { + options.pasteZone = $(options.pasteZone); + } + }, + + _getRegExp: function (str) { + var parts = str.split('/'), + modifiers = parts.pop(); + parts.shift(); + return new RegExp(parts.join('/'), modifiers); + }, + + _isRegExpOption: function (key, value) { + return key !== 'url' && $.type(value) === 'string' && + /^\/.*\/[igm]{0,3}$/.test(value); + }, + + _initDataAttributes: function () { + var that = this, + options = this.options; + // Initialize options set via HTML5 data-attributes: + $.each( + $(this.element[0].cloneNode(false)).data(), + function (key, value) { + if (that._isRegExpOption(key, value)) { + value = that._getRegExp(value); + } + options[key] = value; + } + ); + }, + + _create: function () { + this._initDataAttributes(); + this._initSpecialOptions(); + this._slots = []; + this._sequence = this._getXHRPromise(true); + this._sending = this._active = 0; + this._initProgressObject(this); + this._initEventHandlers(); + }, + + // This method is exposed to the widget API and allows to query + // the number of active uploads: + active: function () { + return this._active; + }, + + // This method is exposed to the widget API and allows to query + // the widget upload progress. + // It returns an object with loaded, total and bitrate properties + // for the running uploads: + progress: function () { + return this._progress; + }, + + // This method is exposed to the widget API and allows adding files + // using the fileupload API. The data parameter accepts an object which + // must have a files property and can contain additional options: + // .fileupload('add', {files: filesList}); + add: function (data) { + var that = this; + if (!data || this.options.disabled) { + return; + } + if (data.fileInput && !data.files) { + this._getFileInputFiles(data.fileInput).always(function (files) { + data.files = files; + that._onAdd(null, data); + }); + } else { + data.files = $.makeArray(data.files); + this._onAdd(null, data); + } + }, + + // This method is exposed to the widget API and allows sending files + // using the fileupload API. The data parameter accepts an object which + // must have a files or fileInput property and can contain additional options: + // .fileupload('send', {files: filesList}); + // The method returns a Promise object for the file upload call. + send: function (data) { + if (data && !this.options.disabled) { + if (data.fileInput && !data.files) { + var that = this, + dfd = $.Deferred(), + promise = dfd.promise(), + jqXHR, + aborted; + promise.abort = function () { + aborted = true; + if (jqXHR) { + return jqXHR.abort(); + } + dfd.reject(null, 'abort', 'abort'); + return promise; + }; + this._getFileInputFiles(data.fileInput).always( + function (files) { + if (aborted) { + return; + } + if (!files.length) { + dfd.reject(); + return; + } + data.files = files; + jqXHR = that._onSend(null, data).then( + function (result, textStatus, jqXHR) { + dfd.resolve(result, textStatus, jqXHR); + }, + function (jqXHR, textStatus, errorThrown) { + dfd.reject(jqXHR, textStatus, errorThrown); + } + ); + } + ); + return this._enhancePromise(promise); + } + data.files = $.makeArray(data.files); + if (data.files.length) { + return this._onSend(null, data); + } + } + return this._getXHRPromise(false, data && data.context); + } + + }); + +})); diff --git a/admin-dev/themes/default/js/jquery.iframe-transport.js b/admin-dev/themes/default/js/jquery.iframe-transport.js new file mode 100644 index 000000000..33e279553 --- /dev/null +++ b/admin-dev/themes/default/js/jquery.iframe-transport.js @@ -0,0 +1,208 @@ +/* + * jQuery Iframe Transport Plugin 1.8.0 + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2011, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/*jslint unparam: true, nomen: true */ +/*global define, window, document */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define(['jquery'], factory); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + // Helper variable to create unique names for the transport iframes: + var counter = 0; + + // The iframe transport accepts four additional options: + // options.fileInput: a jQuery collection of file input fields + // options.paramName: the parameter name for the file form data, + // overrides the name property of the file input field(s), + // can be a string or an array of strings. + // options.formData: an array of objects with name and value properties, + // equivalent to the return data of .serializeArray(), e.g.: + // [{name: 'a', value: 1}, {name: 'b', value: 2}] + // options.initialIframeSrc: the URL of the initial iframe src, + // by default set to "javascript:false;" + $.ajaxTransport('iframe', function (options) { + if (options.async) { + // javascript:false as initial iframe src + // prevents warning popups on HTTPS in IE6: + var initialIframeSrc = options.initialIframeSrc || 'javascript:false;', + form, + iframe, + addParamChar; + return { + send: function (_, completeCallback) { + form = $(''); + form.attr('accept-charset', options.formAcceptCharset); + addParamChar = /\?/.test(options.url) ? '&' : '?'; + // XDomainRequest only supports GET and POST: + if (options.type === 'DELETE') { + options.url = options.url + addParamChar + '_method=DELETE'; + options.type = 'POST'; + } else if (options.type === 'PUT') { + options.url = options.url + addParamChar + '_method=PUT'; + options.type = 'POST'; + } else if (options.type === 'PATCH') { + options.url = options.url + addParamChar + '_method=PATCH'; + options.type = 'POST'; + } + // IE versions below IE8 cannot set the name property of + // elements that have already been added to the DOM, + // so we set the name along with the iframe HTML markup: + counter += 1; + iframe = $( + '' + ).bind('load', function () { + var fileInputClones, + paramNames = $.isArray(options.paramName) ? + options.paramName : [options.paramName]; + iframe + .unbind('load') + .bind('load', function () { + var response; + // Wrap in a try/catch block to catch exceptions thrown + // when trying to access cross-domain iframe contents: + try { + response = iframe.contents(); + // Google Chrome and Firefox do not throw an + // exception when calling iframe.contents() on + // cross-domain requests, so we unify the response: + if (!response.length || !response[0].firstChild) { + throw new Error(); + } + } catch (e) { + response = undefined; + } + // The complete callback returns the + // iframe content document as response object: + completeCallback( + 200, + 'success', + {'iframe': response} + ); + // Fix for IE endless progress bar activity bug + // (happens on form submits to iframe targets): + $('') + .appendTo(form); + window.setTimeout(function () { + // Removing the form in a setTimeout call + // allows Chrome's developer tools to display + // the response result + form.remove(); + }, 0); + }); + form + .prop('target', iframe.prop('name')) + .prop('action', options.url) + .prop('method', options.type); + if (options.formData) { + $.each(options.formData, function (index, field) { + $('') + .prop('name', field.name) + .val(field.value) + .appendTo(form); + }); + } + if (options.fileInput && options.fileInput.length && + options.type === 'POST') { + fileInputClones = options.fileInput.clone(); + // Insert a clone for each file input field: + options.fileInput.after(function (index) { + return fileInputClones[index]; + }); + if (options.paramName) { + options.fileInput.each(function (index) { + $(this).prop( + 'name', + paramNames[index] || options.paramName + ); + }); + } + // Appending the file input fields to the hidden form + // removes them from their original location: + form + .append(options.fileInput) + .prop('enctype', 'multipart/form-data') + // enctype must be set as encoding for IE: + .prop('encoding', 'multipart/form-data'); + } + form.submit(); + // Insert the file input fields at their original location + // by replacing the clones with the originals: + if (fileInputClones && fileInputClones.length) { + options.fileInput.each(function (index, input) { + var clone = $(fileInputClones[index]); + $(input).prop('name', clone.prop('name')); + clone.replaceWith(input); + }); + } + }); + form.append(iframe).appendTo(document.body); + }, + abort: function () { + if (iframe) { + // javascript:false as iframe src aborts the request + // and prevents warning popups on HTTPS in IE6. + // concat is used to avoid the "Script URL" JSLint error: + iframe + .unbind('load') + .prop('src', initialIframeSrc); + } + if (form) { + form.remove(); + } + } + }; + } + }); + + // The iframe transport returns the iframe content document as response. + // The following adds converters from iframe to text, json, html, xml + // and script. + // Please note that the Content-Type for JSON responses has to be text/plain + // or text/html, if the browser doesn't include application/json in the + // Accept header, else IE will show a download dialog. + // The Content-Type for XML responses on the other hand has to be always + // application/xml or text/xml, so IE properly parses the XML response. + // See also + // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation + $.ajaxSetup({ + converters: { + 'iframe text': function (iframe) { + return iframe && $(iframe[0].body).text(); + }, + 'iframe json': function (iframe) { + return iframe && $.parseJSON($(iframe[0].body).text()); + }, + 'iframe html': function (iframe) { + return iframe && $(iframe[0].body).html(); + }, + 'iframe xml': function (iframe) { + var xmlDoc = iframe && iframe[0]; + return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc : + $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) || + $(xmlDoc.body).html()); + }, + 'iframe script': function (iframe) { + return iframe && $.globalEval($(iframe[0].body).text()); + } + } + }); + +})); diff --git a/admin-dev/themes/default/js/vendor/jquery.ui.widget.js b/admin-dev/themes/default/js/vendor/jquery.ui.widget.js new file mode 100644 index 000000000..2d370893a --- /dev/null +++ b/admin-dev/themes/default/js/vendor/jquery.ui.widget.js @@ -0,0 +1,530 @@ +/* + * jQuery UI Widget 1.10.3+amd + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013 jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/jQuery.widget/ + */ + +(function (factory) { + if (typeof define === "function" && define.amd) { + // Register as an anonymous AMD module: + define(["jquery"], factory); + } else { + // Browser globals: + factory(jQuery); + } +}(function( $, undefined ) { + +var uuid = 0, + slice = Array.prototype.slice, + _cleanData = $.cleanData; +$.cleanData = function( elems ) { + for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { + try { + $( elem ).triggerHandler( "remove" ); + // http://bugs.jquery.com/ticket/8235 + } catch( e ) {} + } + _cleanData( elems ); +}; + +$.widget = function( name, base, prototype ) { + var fullName, existingConstructor, constructor, basePrototype, + // proxiedPrototype allows the provided prototype to remain unmodified + // so that it can be used as a mixin for multiple widgets (#8876) + proxiedPrototype = {}, + namespace = name.split( "." )[ 0 ]; + + name = name.split( "." )[ 1 ]; + fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + // create selector for plugin + $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { + return !!$.data( elem, fullName ); + }; + + $[ namespace ] = $[ namespace ] || {}; + existingConstructor = $[ namespace ][ name ]; + constructor = $[ namespace ][ name ] = function( options, element ) { + // allow instantiation without "new" keyword + if ( !this._createWidget ) { + return new constructor( options, element ); + } + + // allow instantiation without initializing for simple inheritance + // must use "new" keyword (the code above always passes args) + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + // extend with the existing constructor to carry over any static properties + $.extend( constructor, existingConstructor, { + version: prototype.version, + // copy the object used to create the prototype in case we need to + // redefine the widget later + _proto: $.extend( {}, prototype ), + // track widgets that inherit from this widget in case this widget is + // redefined after a widget inherits from it + _childConstructors: [] + }); + + basePrototype = new base(); + // we need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from + basePrototype.options = $.widget.extend( {}, basePrototype.options ); + $.each( prototype, function( prop, value ) { + if ( !$.isFunction( value ) ) { + proxiedPrototype[ prop ] = value; + return; + } + proxiedPrototype[ prop ] = (function() { + var _super = function() { + return base.prototype[ prop ].apply( this, arguments ); + }, + _superApply = function( args ) { + return base.prototype[ prop ].apply( this, args ); + }; + return function() { + var __super = this._super, + __superApply = this._superApply, + returnValue; + + this._super = _super; + this._superApply = _superApply; + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; + }; + })(); + }); + constructor.prototype = $.widget.extend( basePrototype, { + // TODO: remove support for widgetEventPrefix + // always use the name + a colon as the prefix, e.g., draggable:start + // don't prefix for widgets that aren't DOM-based + widgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix : name + }, proxiedPrototype, { + constructor: constructor, + namespace: namespace, + widgetName: name, + widgetFullName: fullName + }); + + // If this widget is being redefined then we need to find all widgets that + // are inheriting from it and redefine all of them so that they inherit from + // the new version of this widget. We're essentially trying to replace one + // level in the prototype chain. + if ( existingConstructor ) { + $.each( existingConstructor._childConstructors, function( i, child ) { + var childPrototype = child.prototype; + + // redefine the child widget using the same prototype that was + // originally used, but inherit from the new version of the base + $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto ); + }); + // remove the list of existing child constructors from the old constructor + // so the old child constructors can be garbage collected + delete existingConstructor._childConstructors; + } else { + base._childConstructors.push( constructor ); + } + + $.widget.bridge( name, constructor ); +}; + +$.widget.extend = function( target ) { + var input = slice.call( arguments, 1 ), + inputIndex = 0, + inputLength = input.length, + key, + value; + for ( ; inputIndex < inputLength; inputIndex++ ) { + for ( key in input[ inputIndex ] ) { + value = input[ inputIndex ][ key ]; + if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { + // Clone objects + if ( $.isPlainObject( value ) ) { + target[ key ] = $.isPlainObject( target[ key ] ) ? + $.widget.extend( {}, target[ key ], value ) : + // Don't extend strings, arrays, etc. with objects + $.widget.extend( {}, value ); + // Copy everything else by reference + } else { + target[ key ] = value; + } + } + } + } + return target; +}; + +$.widget.bridge = function( name, object ) { + var fullName = object.prototype.widgetFullName || name; + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string", + args = slice.call( arguments, 1 ), + returnValue = this; + + // allow multiple hashes to be passed on init + options = !isMethodCall && args.length ? + $.widget.extend.apply( null, [ options ].concat(args) ) : + options; + + if ( isMethodCall ) { + this.each(function() { + var methodValue, + instance = $.data( this, fullName ); + if ( !instance ) { + return $.error( "cannot call methods on " + name + " prior to initialization; " + + "attempted to call method '" + options + "'" ); + } + if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) { + return $.error( "no such method '" + options + "' for " + name + " widget instance" ); + } + methodValue = instance[ options ].apply( instance, args ); + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue && methodValue.jquery ? + returnValue.pushStack( methodValue.get() ) : + methodValue; + return false; + } + }); + } else { + this.each(function() { + var instance = $.data( this, fullName ); + if ( instance ) { + instance.option( options || {} )._init(); + } else { + $.data( this, fullName, new object( options, this ) ); + } + }); + } + + return returnValue; + }; +}; + +$.Widget = function( /* options, element */ ) {}; +$.Widget._childConstructors = []; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "{$input.desc}
{/if} - {if isset($fields_value.image) && $fields_value.image} -{l s='File size'} {$fields_value.size}kb
- - {l s='Delete'} - -{l s='e.g. 10:00AM - 9:30PM'}
{l s='File size'} {$fields_value[$input.name].size}kb
- - {l s='Delete'} - -{l s='File size'} {$size}kb
{/if} + {if isset($delete_url)} + + {l s='Delete'} + + {/if} +{l s='File size'} {$size}kb
{/if} + {if isset($delete_url)} + + {l s='Delete'} + + {/if} +