diff --git a/CHANGELOG.md b/CHANGELOG.md index 667d15fde46..beba3865de6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +### 1.0.0-beta.7 "einsteinium-emu" (2014-06-12) + + ### 1.0.0-beta.6 "darmstadtium-dingo" (2014-05-21) diff --git a/bower.json b/bower.json index 2bf010192f6..abb754b1582 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "ionic", - "version": "1.0.0-beta.6", - "codename": "darmstadtium-dingo", + "version": "1.0.0-beta.7", + "codename": "einsteinium-emu", "homepage": "https://github.com/driftyco/ionic", "authors": [ "Max Lynch ", diff --git a/component.json b/component.json index ae4619b0d1a..3a498b3d435 100644 --- a/component.json +++ b/component.json @@ -1,7 +1,7 @@ { "repo": "driftyco/ionic", "development": {}, - "version": "1.0.0-beta.6", + "version": "1.0.0-beta.7", "styles": [ "dist/css/ionic.css" ], diff --git a/package.json b/package.json index 48cae7f2d22..f1da153986f 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "ionic", "private": false, "version": "1.0.0-beta.7", - "codename": "darmstadtium-dingo", + "codename": "einsteinium-emu", "repository": { "url": "git://github.com/driftyco/ionic.git" }, diff --git a/release/css/ionic.css b/release/css/ionic.css index 0ea281eb41f..b7059ca25f8 100644 --- a/release/css/ionic.css +++ b/release/css/ionic.css @@ -2,7 +2,7 @@ * Copyright 2014 Drifty Co. * http://drifty.com/ * - * Ionic, v1.0.0-beta.6 + * Ionic, v1.0.0-beta.7 * A powerful HTML5 mobile app framework. * http://ionicframework.com/ * @@ -1959,8 +1959,8 @@ table { html { overflow: hidden; - -ms-touch-action: none; - touch-action: none; } + -ms-touch-action: pan-y; + touch-action: pan-y; } body, .ionic-body { -webkit-touch-callout: none; @@ -2438,7 +2438,7 @@ a.subdued { position: fixed; top: 0; left: 0; - z-index: 10; + z-index: 11; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.4); @@ -2619,6 +2619,13 @@ a.subdued { .bar .button.button-clear .icon:before, .bar .button.button-clear.icon:before, .bar .button.button-clear.icon-left:before, .bar .button.button-clear.icon-right:before { font-size: 32px; line-height: 32px; } + .bar .button.back-button { + padding: 0; + opacity: 0.8; } + .bar .button.back-button .back-button-title { + display: inline-block; + vertical-align: middle; + margin-left: 4px; } .bar .button.back-button.active, .bar .button.back-button.activated { opacity: 1; } .bar .button-bar > .button, .bar .buttons > .button { @@ -2980,6 +2987,81 @@ a.subdued { background-color: #fff; color: #444; } +.tabs-striped .tabs { + background-color: white; + background-image: none; + border: none; } +.tabs-striped.tabs-light .tab-item.tab-item-active, .tabs-striped.tabs-light .tab-item.active, .tabs-striped.tabs-light .tab-item.activated { + margin-top: -4px; + color: #fff; + border-style: solid; + border-width: 4px 0 0 0; + border-color: #fff; } +.tabs-striped.tabs-stable .tab-item.tab-item-active, .tabs-striped.tabs-stable .tab-item.active, .tabs-striped.tabs-stable .tab-item.activated { + margin-top: -4px; + color: #f8f8f8; + border-style: solid; + border-width: 4px 0 0 0; + border-color: #f8f8f8; } +.tabs-striped.tabs-positive .tab-item.tab-item-active, .tabs-striped.tabs-positive .tab-item.active, .tabs-striped.tabs-positive .tab-item.activated { + margin-top: -4px; + color: #4a87ee; + border-style: solid; + border-width: 4px 0 0 0; + border-color: #4a87ee; } +.tabs-striped.tabs-calm .tab-item.tab-item-active, .tabs-striped.tabs-calm .tab-item.active, .tabs-striped.tabs-calm .tab-item.activated { + margin-top: -4px; + color: #43cee6; + border-style: solid; + border-width: 4px 0 0 0; + border-color: #43cee6; } +.tabs-striped.tabs-assertive .tab-item.tab-item-active, .tabs-striped.tabs-assertive .tab-item.active, .tabs-striped.tabs-assertive .tab-item.activated { + margin-top: -4px; + color: #ef4e3a; + border-style: solid; + border-width: 4px 0 0 0; + border-color: #ef4e3a; } +.tabs-striped.tabs-balanced .tab-item.tab-item-active, .tabs-striped.tabs-balanced .tab-item.active, .tabs-striped.tabs-balanced .tab-item.activated { + margin-top: -4px; + color: #66cc33; + border-style: solid; + border-width: 4px 0 0 0; + border-color: #66cc33; } +.tabs-striped.tabs-energized .tab-item.tab-item-active, .tabs-striped.tabs-energized .tab-item.active, .tabs-striped.tabs-energized .tab-item.activated { + margin-top: -4px; + color: #f0b840; + border-style: solid; + border-width: 4px 0 0 0; + border-color: #f0b840; } +.tabs-striped.tabs-royal .tab-item.tab-item-active, .tabs-striped.tabs-royal .tab-item.active, .tabs-striped.tabs-royal .tab-item.activated { + margin-top: -4px; + color: #8a6de9; + border-style: solid; + border-width: 4px 0 0 0; + border-color: #8a6de9; } +.tabs-striped.tabs-dark .tab-item.tab-item-active, .tabs-striped.tabs-dark .tab-item.active, .tabs-striped.tabs-dark .tab-item.activated { + margin-top: -4px; + color: #444; + border-style: solid; + border-width: 4px 0 0 0; + border-color: #444; } +.tabs-striped .tab-item { + color: #000; + opacity: 0.4; } +.tabs-striped .tab-item + .tab-item:before { + border-left: 1px solid #ccc; + display: block; + float: left; + width: 2px; + height: 26px; + margin: 11px auto; + content: " "; } + +.tabs-top.tabs-striped .tab-item.tab-item-active, .tabs-top.tabs-striped .tab-item.active, .tabs-top.tabs-striped .tab-item.activated { + margin-top: 0; + margin-bottom: -4px; + border-width: 0px 0px 4px 0px !important; } + /* Allow parent element to have tabs-top */ /* If you change this, change platform.scss as well */ .tabs-top > .tabs, .tabs.tabs-top { @@ -3094,6 +3176,11 @@ a.subdued { cursor: default; pointer-events: none; } +/** Platform styles **/ + +.tab-item.tab-item-android { + border-top: 2px solid inherit; } + /** * Menus * -------------------------------------------------- @@ -3193,7 +3280,7 @@ a.subdued { position: fixed; top: 50%; left: 50%; - z-index: 11; + z-index: 12; visibility: hidden; width: 250px; max-width: 100%; @@ -3279,7 +3366,7 @@ a.subdued { position: fixed; top: 50%; left: 50%; - z-index: 11; + z-index: 13; padding: 20px; border-radius: 5px; background-color: rgba(0, 0, 0, 0.7); @@ -4214,6 +4301,25 @@ input, button, select, textarea { overflow: hidden; height: 46px; } +.item-floating-label { + display: block; + background-color: transparent; + box-shadow: none; } + .item-floating-label .input-label { + position: relative; + padding: 5px 0 0 0; + opacity: 0; + top: 10px; + -webkit-transition: opacity 0.15s ease-in, top 0.2s linear; + -moz-transition: opacity 0.15s ease-in, top 0.2s linear; + transition: opacity 0.15s ease-in, top 0.2s linear; } + .item-floating-label .input-label.has-input { + opacity: 1; + top: 0; + -webkit-transition: opacity 0.15s ease-in, top 0.2s linear; + -moz-transition: opacity 0.15s ease-in, top 0.2s linear; + transition: opacity 0.15s ease-in, top 0.2s linear; } + textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"] { display: block; padding-top: 2px; @@ -4250,7 +4356,8 @@ input[type="file"] { left: -9999px; width: 200px; } -input:-moz-placeholder, textarea:-moz-placeholder { +input::-moz-placeholder, textarea::-moz-placeholder { + /* Firefox 19+ */ color: #aaaaaa; } input:-ms-input-placeholder, textarea:-ms-input-placeholder { color: #aaaaaa; } @@ -5579,23 +5686,27 @@ a.button { * -------------------------------------------------- */ .slide-left-right-ios7 > .ng-enter, .slide-left-right-ios7.ng-enter, .slide-left-right-ios7 > .ng-leave, .slide-left-right-ios7.ng-leave, .slide-right-left-ios7.reverse > .ng-enter, .slide-right-left-ios7.reverse.ng-enter, .slide-right-left-ios7.reverse > .ng-leave, .slide-right-left-ios7.reverse.ng-leave { - -webkit-transition: all ease-in-out 250ms; - -moz-transition: all ease-in-out 250ms; - transition: all ease-in-out 250ms; + -webkit-transition: all cubic-bezier(0.4, 0.6, 0.2, 1) 340ms; + -moz-transition: all cubic-bezier(0.4, 0.6, 0.2, 1) 340ms; + transition: all cubic-bezier(0.4, 0.6, 0.2, 1) 340ms; position: absolute; top: 0; right: -1px; bottom: 0; left: -1px; - width: auto; } + width: auto; + border-right: none; + border-left: none; } .slide-left-right-ios7 > .ng-enter:not(.bar), .slide-left-right-ios7.ng-enter:not(.bar), .slide-left-right-ios7 > .ng-leave:not(.bar), .slide-left-right-ios7.ng-leave:not(.bar), .slide-right-left-ios7.reverse > .ng-enter:not(.bar), .slide-right-left-ios7.reverse.ng-enter:not(.bar), .slide-right-left-ios7.reverse > .ng-leave:not(.bar), .slide-right-left-ios7.reverse.ng-leave:not(.bar) { - border-right: 1px solid #ddd; - border-left: 1px solid #ddd; } + border-right: 1px solid transparent; + border-left: 1px solid transparent; } .slide-left-right-ios7 > .ng-enter, .slide-left-right-ios7.ng-enter, .slide-right-left-ios7.reverse > .ng-enter, .slide-right-left-ios7.reverse.ng-enter { /* NEW content placed far RIGHT BEFORE it slides IN from the RIGHT */ -webkit-transform: translate3d(100%, 0, 0); -moz-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } +.slide-left-right-ios7 > .ng-leave, .slide-left-right-ios7.ng-leave, .slide-right-left-ios7.reverse > .ng-leave, .slide-right-left-ios7.reverse.ng-leave { + z-index: 1; } .slide-left-right-ios7 > .ng-enter.ng-enter-active, .slide-left-right-ios7.ng-enter.ng-enter-active, .slide-right-left-ios7.reverse > .ng-enter.ng-enter-active, .slide-right-left-ios7.reverse.ng-enter.ng-enter-active { /* NEW content ACTIVELY sliding IN from the RIGHT */ -webkit-transform: translate3d(0, 0, 0); @@ -5608,22 +5719,24 @@ a.button { transform: translate3d(-15%, 0, 0); } .slide-left-right-ios7.reverse > .ng-enter, .slide-left-right-ios7.reverse.ng-enter, .slide-left-right-ios7.reverse > .ng-leave, .slide-left-right-ios7.reverse.ng-leave, .slide-right-left-ios7 > .ng-enter, .slide-right-left-ios7.ng-enter, .slide-right-left-ios7 > .ng-leave, .slide-right-left-ios7.ng-leave { - -webkit-transition: all ease-in-out 250ms; - -moz-transition: all ease-in-out 250ms; - transition: all ease-in-out 250ms; + -webkit-transition: all cubic-bezier(0.4, 0.6, 0.2, 1) 340ms; + -moz-transition: all cubic-bezier(0.4, 0.6, 0.2, 1) 340ms; + transition: all cubic-bezier(0.4, 0.6, 0.2, 1) 340ms; position: absolute; top: 0; right: -1px; bottom: 0; left: -1px; width: auto; - border-right: 1px solid #ddd; - border-left: 1px solid #ddd; } + border-right: 1px solid transparent; + border-left: 1px solid transparent; } .slide-left-right-ios7.reverse > .ng-enter, .slide-left-right-ios7.reverse.ng-enter, .slide-right-left-ios7 > .ng-enter, .slide-right-left-ios7.ng-enter { /* NEW content placed far LEFT BEFORE it slides IN from the LEFT */ - -webkit-transform: translate3d(-100%, 0, 0); - -moz-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); } + -webkit-transform: translate3d(-15%, 0, 0); + -moz-transform: translate3d(-15%, 0, 0); + transform: translate3d(-15%, 0, 0); } +.slide-left-right-ios7.reverse > .ng-leave, .slide-left-right-ios7.reverse.ng-leave, .slide-right-left-ios7 > .ng-leave, .slide-right-left-ios7.ng-leave { + z-index: 2; } .slide-left-right-ios7.reverse > .ng-enter.ng-enter-active, .slide-left-right-ios7.reverse.ng-enter.ng-enter-active, .slide-right-left-ios7 > .ng-enter.ng-enter-active, .slide-right-left-ios7.ng-enter.ng-enter-active { /* NEW content ACTIVELY sliding IN from the LEFT */ -webkit-transform: translate3d(0, 0, 0); @@ -5631,10 +5744,164 @@ a.button { transform: translate3d(0, 0, 0); } .slide-left-right-ios7.reverse > .ng-leave.ng-leave-active, .slide-left-right-ios7.reverse.ng-leave.ng-leave-active, .slide-right-left-ios7 > .ng-leave.ng-leave-active, .slide-right-left-ios7.ng-leave.ng-leave-active { /* OLD content ACTIVELY sliding OUT to the RIGHT */ - -webkit-transform: translate3d(15%, 0, 0); - -moz-transform: translate3d(15%, 0, 0); - transform: translate3d(15%, 0, 0); } + -webkit-transform: translate3d(100%, 0, 0); + -moz-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } + +/** + * iPad doesn't like box shadows + */ +.grade-a:not(.platform-ipad) .slide-left-right-ios7 > .ng-enter, .grade-a:not(.platform-ipad) .slide-left-right-ios7.ng-enter, .grade-a:not(.platform-ipad) .slide-right-left-ios7.reverse > .ng-enter, .grade-a:not(.platform-ipad) .slide-right-left-ios7.reverse.ng-enter { + box-shadow: -200px 0px 200px rgba(0, 0, 0, 0), -5px 0px 5px rgba(0, 0, 0, 0.01); } +.grade-a:not(.platform-ipad) .slide-left-right-ios7 > .ng-enter.ng-enter-active, .grade-a:not(.platform-ipad) .slide-left-right-ios7.ng-enter.ng-enter-active, .grade-a:not(.platform-ipad) .slide-right-left-ios7.reverse > .ng-enter.ng-enter-active, .grade-a:not(.platform-ipad) .slide-right-left-ios7.reverse.ng-enter.ng-enter-active { + box-shadow: -200px 0px 200px rgba(0, 0, 0, 0.15), -5px 0px 5px rgba(0, 0, 0, 0.18); } +.grade-a.platform-ipad .slide-left-right-ios7 > .ng-enter, .grade-a.platform-ipad .slide-left-right-ios7.ng-enter, .grade-a.platform-ipad .slide-right-left-ios7.reverse > .ng-enter, .grade-a.platform-ipad .slide-right-left-ios7.reverse.ng-enter { + border-left: 1px solid #ddd; } +.grade-a.platform-ipad .slide-left-right-ios7.reverse > .ng-leave, .grade-a.platform-ipad .slide-left-right-ios7.reverse.ng-leave, .grade-a.platform-ipad .slide-right-left-ios7 > .ng-leave, .grade-a.platform-ipad .slide-right-left-ios7.ng-leave { + border-left: 1px solid #ddd; } + +/** + * Android style "pop in" with fade and scale + */ +.fade-explode > .ng-enter, .fade-explode.ng-enter, .fade-explode > .ng-leave, .fade-explode.ng-leave { + -webkit-transition: all ease-out 300ms; + -moz-transition: all ease-out 300ms; + transition: all ease-out 300ms; + position: absolute; + top: 0; + right: -1px; + bottom: 0; + left: -1px; + width: auto; } + .fade-explode > .ng-enter:not(.bar), .fade-explode.ng-enter:not(.bar), .fade-explode > .ng-leave:not(.bar), .fade-explode.ng-leave:not(.bar) { + border-right: 1px solid #ddd; + border-left: 1px solid #ddd; } +.fade-explode > .ng-enter, .fade-explode.ng-enter { + /* NEW content placed far RIGHT BEFORE it slides IN from the RIGHT */ + -webkit-transform: scale(1.6); + -moz-transform: scale(1.6); + transform: scale(1.6); + opacity: 0; + z-index: 2; } +.fade-explode > .ng-leave, .fade-explode.ng-leave { + z-index: 1; } +.fade-explode > .ng-enter.ng-enter-active, .fade-explode.ng-enter.ng-enter-active { + /* NEW content ACTIVELY sliding IN from the RIGHT */ + -webkit-transform: scale(1); + -moz-transform: scale(1); + transform: scale(1); + opacity: 1; } +.fade-explode > .ng-leave.ng-leave-active, .fade-explode.ng-leave.ng-leave-active { + /* OLD content ACTIVELY sliding OUT to the LEFT */ + -webkit-transform: scale(0.95); + -moz-transform: scale(0.95); + transform: scale(0.95); } + +.fade-explode.reverse > .ng-enter, .fade-explode.reverse.ng-enter, .fade-explode.reverse > .ng-leave, .fade-explode.reverse.ng-leave { + -webkit-transition: all ease-out 300ms; + -moz-transition: all ease-out 300ms; + transition: all ease-out 300ms; + position: absolute; + top: 0; + right: -1px; + bottom: 0; + left: -1px; + width: auto; } + .fade-explode.reverse > .ng-enter:not(.bar), .fade-explode.reverse.ng-enter:not(.bar), .fade-explode.reverse > .ng-leave:not(.bar), .fade-explode.reverse.ng-leave:not(.bar) { + border-right: 1px solid #ddd; + border-left: 1px solid #ddd; } +.fade-explode.reverse > .ng-enter, .fade-explode.reverse.ng-enter { + /* NEW content placed far LEFT BEFORE it slides IN from the LEFT */ + -webkit-transform: scale(0.95); + -moz-transform: scale(0.95); + transform: scale(0.95); + opacity: 0; + z-index: 1; } +.fade-explode.reverse > .ng-leave, .fade-explode.reverse.ng-leave { + -webkit-transform: scale(1); + -moz-transform: scale(1); + transform: scale(1); + opacity: 1; + z-index: 2; } +.fade-explode.reverse > .ng-enter.ng-enter-active, .fade-explode.reverse.ng-enter.ng-enter-active { + -webkit-transform: scale(1); + -moz-transform: scale(1); + transform: scale(1); + opacity: 1; } +.fade-explode.reverse > .ng-leave.ng-leave-active, .fade-explode.reverse.ng-leave.ng-leave-active { + -webkit-transform: scale(1.6); + -moz-transform: scale(1.6); + transform: scale(1.6); + opacity: 0; } + +/** + * Android style "pop in" with fade and scale + */ +.fade-implode > .ng-enter, .fade-implode.ng-enter, .fade-implode > .ng-leave, .fade-implode.ng-leave { + -webkit-transition: all ease-out 200ms; + -moz-transition: all ease-out 200ms; + transition: all ease-out 200ms; + position: absolute; + top: 0; + right: -1px; + bottom: 0; + left: -1px; + width: auto; } + .fade-implode > .ng-enter:not(.bar), .fade-implode.ng-enter:not(.bar), .fade-implode > .ng-leave:not(.bar), .fade-implode.ng-leave:not(.bar) { + border-right: 1px solid #ddd; + border-left: 1px solid #ddd; } +.fade-implode > .ng-enter, .fade-implode.ng-enter { + /* NEW content placed far RIGHT BEFORE it slides IN from the RIGHT */ + -webkit-transform: scale(0.8); + -moz-transform: scale(0.8); + transform: scale(0.8); + opacity: 0; + z-index: 2; } +.fade-implode > .ng-leave, .fade-implode.ng-leave { + z-index: 1; } +.fade-implode > .ng-enter.ng-enter-active, .fade-implode.ng-enter.ng-enter-active { + /* NEW content */ + -webkit-transform: scale(1); + -moz-transform: scale(1); + transform: scale(1); + opacity: 1; } + +.fade-implode.reverse > .ng-enter, .fade-implode.reverse.ng-enter, .fade-implode.reverse > .ng-leave, .fade-implode.reverse.ng-leave { + -webkit-transition: all ease-out 200ms; + -moz-transition: all ease-out 200ms; + transition: all ease-out 200ms; + position: absolute; + top: 0; + right: -1px; + bottom: 0; + left: -1px; + width: auto; + border-right: 1px solid #ddd; + border-left: 1px solid #ddd; } +.fade-implode.reverse > .ng-enter, .fade-implode.reverse.ng-enter { + -webkit-transform: scale(1); + -moz-transform: scale(1); + transform: scale(1); + opacity: 1; + z-index: 1; } +.fade-implode.reverse > .ng-leave, .fade-implode.reverse.ng-leave { + -webkit-transform: scale(1); + -moz-transform: scale(1); + transform: scale(1); + opacity: 1; + z-index: 2; } +.fade-implode.reverse > .ng-enter.ng-enter-active, .fade-implode.reverse.ng-enter.ng-enter-active { + opacity: 1; } +.fade-implode.reverse > .ng-leave.ng-leave-active, .fade-implode.reverse.ng-leave.ng-leave-active { + -webkit-transform: scale(0.8); + -moz-transform: scale(0.8); + transform: scale(0.8); + opacity: 0; } + +/** + * Simple slide-in animation + */ .slide-in-left { -webkit-transform: translate3d(0%, 0, 0); -moz-transform: translate3d(0%, 0, 0); @@ -5754,9 +6021,9 @@ a.button { -moz-animation-fill-mode: both; animation-fill-mode: both; } .slide-in-right.ng-leave, .slide-in-right > .ng-leave { - -webkit-animation-name: slideInFromRight; - -moz-animation-name: slideInFromRight; - animation-name: slideInFromRight; + -webkit-animation-name: slideOutToRight; + -moz-animation-name: slideOutToRight; + animation-name: slideOutToRight; -webkit-animation-duration: 250ms; -moz-animation-duration: 250ms; animation-duration: 250ms; @@ -5881,12 +6148,12 @@ a.button { * Some component specific animations */ .nav-title-slide-ios7:not(.no-animation) .button.back-button { - -webkit-transition: all 250ms; - -moz-transition: all 250ms; - transition: all 250ms; - -webkit-transition-timing-function: ease-in-out; - -moz-transition-timing-function: ease-in-out; - transition-timing-function: ease-in-out; + -webkit-transition: all 340ms; + -moz-transition: all 340ms; + transition: all 340ms; + -webkit-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); + -moz-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); + transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); -webkit-transform: translate3d(0%, 0, 0); -moz-transform: translate3d(0%, 0, 0); transform: translate3d(0%, 0, 0); @@ -5903,18 +6170,22 @@ a.button { .nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide-add { position: absolute; } .nav-title-slide-ios7 > .ng-enter, .nav-title-slide-ios7.ng-enter, .nav-title-slide-ios7 > .ng-leave, .nav-title-slide-ios7.ng-leave { - -webkit-transition: all 250ms; - -moz-transition: all 250ms; - transition: all 250ms; - -webkit-transition-timing-function: ease-in-out; - -moz-transition-timing-function: ease-in-out; - transition-timing-function: ease-in-out; + -webkit-transition: all 340ms; + -moz-transition: all 340ms; + transition: all 340ms; + -webkit-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); + -moz-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); + transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); opacity: 1; } .nav-title-slide-ios7 > .ng-enter, .nav-title-slide-ios7.ng-enter { -webkit-transform: translate3d(30%, 0, 0); -moz-transform: translate3d(30%, 0, 0); transform: translate3d(30%, 0, 0); opacity: 0; } + .nav-title-slide-ios7 > .ng-enter.title, .nav-title-slide-ios7.ng-enter.title { + -webkit-transform: translate3d(100%, 0, 0); + -moz-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } .nav-title-slide-ios7 > .ng-enter.ng-enter-active, .nav-title-slide-ios7.ng-enter.ng-enter-active { -webkit-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); @@ -5926,9 +6197,12 @@ a.button { transform: translate3d(-30%, 0, 0); opacity: 0; } .nav-title-slide-ios7.reverse > .ng-enter, .nav-title-slide-ios7.reverse.ng-enter, .nav-title-slide-ios7.reverse > .ng-leave, .nav-title-slide-ios7.reverse.ng-leave { - -webkit-transition: all ease-in-out 250ms; - -moz-transition: all ease-in-out 250ms; - transition: all ease-in-out 250ms; + -webkit-transition: all 340ms; + -moz-transition: all 340ms; + transition: all 340ms; + -webkit-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); + -moz-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); + transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); opacity: 1; } .nav-title-slide-ios7.reverse > .ng-enter, .nav-title-slide-ios7.reverse.ng-enter { -webkit-transform: translate3d(-30%, 0, 0); @@ -5941,9 +6215,37 @@ a.button { transform: translate3d(0, 0, 0); opacity: 1; } .nav-title-slide-ios7.reverse > .ng-leave.ng-leave-active, .nav-title-slide-ios7.reverse.ng-leave.ng-leave-active { - -webkit-transform: translate3d(30%, 0, 0); - -moz-transform: translate3d(30%, 0, 0); - transform: translate3d(30%, 0, 0); + -webkit-transform: translate3d(100%, 0, 0); + -moz-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + opacity: 0; } + +.nav-title-android:not(.no-animation) .button.back-button { + -webkit-transition: all 200ms; + -moz-transition: all 200ms; + transition: all 200ms; + -webkit-transition-timing-function: linear; + -moz-transition-timing-function: linear; + transition-timing-function: linear; + opacity: 1; } + .nav-title-android:not(.no-animation) .button.back-button.ng-hide { + opacity: 0; } + .nav-title-android:not(.no-animation) .button.back-button.ng-hide-add, .nav-title-android:not(.no-animation) .button.back-button.ng-hide-remove { + display: block !important; } + .nav-title-android:not(.no-animation) .button.back-button.ng-hide-add { + position: absolute; } +.nav-title-android > .ng-enter, .nav-title-android.ng-enter, .nav-title-android > .ng-leave, .nav-title-android.ng-leave { + -webkit-transition: all 200ms; + -moz-transition: all 200ms; + transition: all 200ms; + -webkit-transition-timing-function: linear; + -moz-transition-timing-function: linear; + transition-timing-function: linear; } +.nav-title-android > .ng-enter, .nav-title-android.ng-enter { + opacity: 0; } +.nav-title-android > .ng-enter.ng-enter-active, .nav-title-android.ng-enter.ng-enter-active { + opacity: 1; } +.nav-title-android > .ng-leave.ng-leave-active, .nav-title-android.ng-leave.ng-leave-active { opacity: 0; } /** @@ -6411,6 +6713,91 @@ a.button { * -------------------------------------------------- * Platform specific tweaks */ +/** + * Apply roboto font + */ +.roboto { + font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; } + .roboto input { + font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; } + +/* +.platform-android { + + + .bar { + padding: 0; + + line-height: 40px; + + .button { + line-height: 40px; + } + + .button-icon:before { + font-size: 24px; + } + } + + .back-button { + &.button-icon:before { + line-height: 40px; + } + margin-left: -3px; + padding: 0px 2px !important; + &.ion-android-arrow-back:before { + font-size: 12px; + } + + &.back-button.active, + &.back-button.activated { + background-color: rgba(0,0,0,0.1); + } + } + + .item-divider { + background: none; + border-top-width: 0; + border-bottom-width: 2px; + text-transform: uppercase; + margin-top: 10px; + font-size: 14px; + } + .item { + border-left-width: 0; + border-right-width: 0; + } + + .item-divider ~ .item:not(.item-divider) { + border-bottom-width: 0; + } + + .back-button:not(.ng-hide) + .left-buttons + .title { + // Don't allow normal titles in this mode + display: none; + } + + .bar .title { + text-align: left; + font-weight: normal; + } + + /* + font-family: 'Roboto'; + + h1, h2, h3, h4, h5 { + font-family: 'Roboto', $font-family-base; + } + + .tab-item { + font-family: 'Roboto', $font-family-base; + } + + + input, button, select, textarea { + font-family: 'Roboto', $font-family-base; + } + */ .platform-ios7.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader) { height: 64px; } .platform-ios7.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader).item-input-inset .item-input-wrapper { diff --git a/release/css/ionic.min.css b/release/css/ionic.min.css index f33f2ba2b81..b9cf570905c 100644 --- a/release/css/ionic.min.css +++ b/release/css/ionic.min.css @@ -2,7 +2,7 @@ * Copyright 2014 Drifty Co. * http://drifty.com/ * - * Ionic, v1.0.0-beta.6 + * Ionic, v1.0.0-beta.7 * A powerful HTML5 mobile app framework. * http://ionicframework.com/ * @@ -15,4 +15,4 @@ Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ https://twitter.com/benjsperry https://twitter.com/ionicframework MIT License: https://github.com/driftyco/ionicons -*/@font-face{font-family:Ionicons;src:url(../fonts/ionicons.eot?v=1.4.1);src:url(../fonts/ionicons.eot?v=1.4.1#iefix) format("embedded-opentype"),url(../fonts/ionicons.ttf?v=1.4.1) format("truetype"),url(../fonts/ionicons.woff?v=1.4.1) format("woff"),url(../fonts/ionicons.svg?v=1.4.1#Ionicons) format("svg");font-weight:400;font-style:normal}.ion,.ion-alert-circled:before,.ion-alert:before,.ion-android-add-contact:before,.ion-android-add:before,.ion-android-alarm:before,.ion-android-archive:before,.ion-android-arrow-back:before,.ion-android-arrow-down-left:before,.ion-android-arrow-down-right:before,.ion-android-arrow-up-left:before,.ion-android-arrow-up-right:before,.ion-android-battery:before,.ion-android-book:before,.ion-android-calendar:before,.ion-android-call:before,.ion-android-camera:before,.ion-android-chat:before,.ion-android-checkmark:before,.ion-android-clock:before,.ion-android-close:before,.ion-android-contact:before,.ion-android-contacts:before,.ion-android-data:before,.ion-android-developer:before,.ion-android-display:before,.ion-android-download:before,.ion-android-dropdown:before,.ion-android-earth:before,.ion-android-folder:before,.ion-android-forums:before,.ion-android-friends:before,.ion-android-hand:before,.ion-android-image:before,.ion-android-inbox:before,.ion-android-information:before,.ion-android-keypad:before,.ion-android-lightbulb:before,.ion-android-locate:before,.ion-android-location:before,.ion-android-mail:before,.ion-android-microphone:before,.ion-android-mixer:before,.ion-android-more:before,.ion-android-note:before,.ion-android-playstore:before,.ion-android-printer:before,.ion-android-promotion:before,.ion-android-reminder:before,.ion-android-remove:before,.ion-android-search:before,.ion-android-send:before,.ion-android-settings:before,.ion-android-share:before,.ion-android-social-user:before,.ion-android-social:before,.ion-android-sort:before,.ion-android-star:before,.ion-android-stopwatch:before,.ion-android-storage:before,.ion-android-system-back:before,.ion-android-system-home:before,.ion-android-system-windows:before,.ion-android-timer:before,.ion-android-trash:before,.ion-android-volume:before,.ion-android-wifi:before,.ion-archive:before,.ion-arrow-down-a:before,.ion-arrow-down-b:before,.ion-arrow-down-c:before,.ion-arrow-expand:before,.ion-arrow-graph-down-left:before,.ion-arrow-graph-down-right:before,.ion-arrow-graph-up-left:before,.ion-arrow-graph-up-right:before,.ion-arrow-left-a:before,.ion-arrow-left-b:before,.ion-arrow-left-c:before,.ion-arrow-move:before,.ion-arrow-resize:before,.ion-arrow-return-left:before,.ion-arrow-return-right:before,.ion-arrow-right-a:before,.ion-arrow-right-b:before,.ion-arrow-right-c:before,.ion-arrow-shrink:before,.ion-arrow-swap:before,.ion-arrow-up-a:before,.ion-arrow-up-b:before,.ion-arrow-up-c:before,.ion-at:before,.ion-bag:before,.ion-battery-charging:before,.ion-battery-empty:before,.ion-battery-full:before,.ion-battery-half:before,.ion-battery-low:before,.ion-beaker:before,.ion-beer:before,.ion-bluetooth:before,.ion-bookmark:before,.ion-briefcase:before,.ion-bug:before,.ion-calculator:before,.ion-calendar:before,.ion-camera:before,.ion-card:before,.ion-chatbox-working:before,.ion-chatbox:before,.ion-chatboxes:before,.ion-chatbubble-working:before,.ion-chatbubble:before,.ion-chatbubbles:before,.ion-checkmark-circled:before,.ion-checkmark-round:before,.ion-checkmark:before,.ion-chevron-down:before,.ion-chevron-left:before,.ion-chevron-right:before,.ion-chevron-up:before,.ion-clipboard:before,.ion-clock:before,.ion-close-circled:before,.ion-close-round:before,.ion-close:before,.ion-cloud:before,.ion-code-download:before,.ion-code-working:before,.ion-code:before,.ion-coffee:before,.ion-compass:before,.ion-compose:before,.ion-connection-bars:before,.ion-contrast:before,.ion-disc:before,.ion-document-text:before,.ion-document:before,.ion-drag:before,.ion-earth:before,.ion-edit:before,.ion-egg:before,.ion-eject:before,.ion-email:before,.ion-eye-disabled:before,.ion-eye:before,.ion-female:before,.ion-filing:before,.ion-film-marker:before,.ion-flag:before,.ion-flash-off:before,.ion-flash:before,.ion-flask:before,.ion-folder:before,.ion-fork-repo:before,.ion-fork:before,.ion-forward:before,.ion-game-controller-a:before,.ion-game-controller-b:before,.ion-gear-a:before,.ion-gear-b:before,.ion-grid:before,.ion-hammer:before,.ion-headphone:before,.ion-heart:before,.ion-help-buoy:before,.ion-help-circled:before,.ion-help:before,.ion-home:before,.ion-icecream:before,.ion-icon-social-google-plus-outline:before,.ion-icon-social-google-plus:before,.ion-image:before,.ion-images:before,.ion-information-circled:before,.ion-information:before,.ion-ionic:before,.ion-ios7-alarm-outline:before,.ion-ios7-alarm:before,.ion-ios7-albums-outline:before,.ion-ios7-albums:before,.ion-ios7-arrow-back:before,.ion-ios7-arrow-down:before,.ion-ios7-arrow-forward:before,.ion-ios7-arrow-left:before,.ion-ios7-arrow-right:before,.ion-ios7-arrow-thin-down:before,.ion-ios7-arrow-thin-left:before,.ion-ios7-arrow-thin-right:before,.ion-ios7-arrow-thin-up:before,.ion-ios7-arrow-up:before,.ion-ios7-at-outline:before,.ion-ios7-at:before,.ion-ios7-bell-outline:before,.ion-ios7-bell:before,.ion-ios7-bolt-outline:before,.ion-ios7-bolt:before,.ion-ios7-bookmarks-outline:before,.ion-ios7-bookmarks:before,.ion-ios7-box-outline:before,.ion-ios7-box:before,.ion-ios7-briefcase-outline:before,.ion-ios7-briefcase:before,.ion-ios7-browsers-outline:before,.ion-ios7-browsers:before,.ion-ios7-calculator-outline:before,.ion-ios7-calculator:before,.ion-ios7-calendar-outline:before,.ion-ios7-calendar:before,.ion-ios7-camera-outline:before,.ion-ios7-camera:before,.ion-ios7-cart-outline:before,.ion-ios7-cart:before,.ion-ios7-chatboxes-outline:before,.ion-ios7-chatboxes:before,.ion-ios7-chatbubble-outline:before,.ion-ios7-chatbubble:before,.ion-ios7-checkmark-empty:before,.ion-ios7-checkmark-outline:before,.ion-ios7-checkmark:before,.ion-ios7-circle-filled:before,.ion-ios7-circle-outline:before,.ion-ios7-clock-outline:before,.ion-ios7-clock:before,.ion-ios7-close-empty:before,.ion-ios7-close-outline:before,.ion-ios7-close:before,.ion-ios7-cloud-download-outline:before,.ion-ios7-cloud-download:before,.ion-ios7-cloud-outline:before,.ion-ios7-cloud-upload-outline:before,.ion-ios7-cloud-upload:before,.ion-ios7-cloud:before,.ion-ios7-cloudy-night-outline:before,.ion-ios7-cloudy-night:before,.ion-ios7-cloudy-outline:before,.ion-ios7-cloudy:before,.ion-ios7-cog-outline:before,.ion-ios7-cog:before,.ion-ios7-compose-outline:before,.ion-ios7-compose:before,.ion-ios7-contact-outline:before,.ion-ios7-contact:before,.ion-ios7-copy-outline:before,.ion-ios7-copy:before,.ion-ios7-download-outline:before,.ion-ios7-download:before,.ion-ios7-drag:before,.ion-ios7-email-outline:before,.ion-ios7-email:before,.ion-ios7-eye-outline:before,.ion-ios7-eye:before,.ion-ios7-fastforward-outline:before,.ion-ios7-fastforward:before,.ion-ios7-filing-outline:before,.ion-ios7-filing:before,.ion-ios7-film-outline:before,.ion-ios7-film:before,.ion-ios7-flag-outline:before,.ion-ios7-flag:before,.ion-ios7-folder-outline:before,.ion-ios7-folder:before,.ion-ios7-gear-outline:before,.ion-ios7-gear:before,.ion-ios7-glasses-outline:before,.ion-ios7-glasses:before,.ion-ios7-heart-outline:before,.ion-ios7-heart:before,.ion-ios7-help-empty:before,.ion-ios7-help-outline:before,.ion-ios7-help:before,.ion-ios7-infinite-outline:before,.ion-ios7-infinite:before,.ion-ios7-information-empty:before,.ion-ios7-information-outline:before,.ion-ios7-information:before,.ion-ios7-ionic-outline:before,.ion-ios7-keypad-outline:before,.ion-ios7-keypad:before,.ion-ios7-lightbulb-outline:before,.ion-ios7-lightbulb:before,.ion-ios7-location-outline:before,.ion-ios7-location:before,.ion-ios7-locked-outline:before,.ion-ios7-locked:before,.ion-ios7-medkit-outline:before,.ion-ios7-medkit:before,.ion-ios7-mic-off:before,.ion-ios7-mic-outline:before,.ion-ios7-mic:before,.ion-ios7-minus-empty:before,.ion-ios7-minus-outline:before,.ion-ios7-minus:before,.ion-ios7-monitor-outline:before,.ion-ios7-monitor:before,.ion-ios7-moon-outline:before,.ion-ios7-moon:before,.ion-ios7-more-outline:before,.ion-ios7-more:before,.ion-ios7-musical-note:before,.ion-ios7-musical-notes:before,.ion-ios7-navigate-outline:before,.ion-ios7-navigate:before,.ion-ios7-paperplane-outline:before,.ion-ios7-paperplane:before,.ion-ios7-partlysunny-outline:before,.ion-ios7-partlysunny:before,.ion-ios7-pause-outline:before,.ion-ios7-pause:before,.ion-ios7-people-outline:before,.ion-ios7-people:before,.ion-ios7-person-outline:before,.ion-ios7-person:before,.ion-ios7-personadd-outline:before,.ion-ios7-personadd:before,.ion-ios7-photos-outline:before,.ion-ios7-photos:before,.ion-ios7-pie-outline:before,.ion-ios7-pie:before,.ion-ios7-play-outline:before,.ion-ios7-play:before,.ion-ios7-plus-empty:before,.ion-ios7-plus-outline:before,.ion-ios7-plus:before,.ion-ios7-pricetag-outline:before,.ion-ios7-pricetag:before,.ion-ios7-printer-outline:before,.ion-ios7-printer:before,.ion-ios7-rainy-outline:before,.ion-ios7-rainy:before,.ion-ios7-recording-outline:before,.ion-ios7-recording:before,.ion-ios7-redo-outline:before,.ion-ios7-redo:before,.ion-ios7-refresh-empty:before,.ion-ios7-refresh-outline:before,.ion-ios7-refresh:before,.ion-ios7-reload:before,.ion-ios7-reloading,.ion-ios7-reloading:before,.ion-ios7-rewind-outline:before,.ion-ios7-rewind:before,.ion-ios7-search-strong:before,.ion-ios7-search:before,.ion-ios7-skipbackward-outline:before,.ion-ios7-skipbackward:before,.ion-ios7-skipforward-outline:before,.ion-ios7-skipforward:before,.ion-ios7-snowy:before,.ion-ios7-speedometer-outline:before,.ion-ios7-speedometer:before,.ion-ios7-star-outline:before,.ion-ios7-star:before,.ion-ios7-stopwatch-outline:before,.ion-ios7-stopwatch:before,.ion-ios7-sunny-outline:before,.ion-ios7-sunny:before,.ion-ios7-telephone-outline:before,.ion-ios7-telephone:before,.ion-ios7-thunderstorm-outline:before,.ion-ios7-thunderstorm:before,.ion-ios7-time-outline:before,.ion-ios7-time:before,.ion-ios7-timer-outline:before,.ion-ios7-timer:before,.ion-ios7-trash-outline:before,.ion-ios7-trash:before,.ion-ios7-undo-outline:before,.ion-ios7-undo:before,.ion-ios7-unlocked-outline:before,.ion-ios7-unlocked:before,.ion-ios7-upload-outline:before,.ion-ios7-upload:before,.ion-ios7-videocam-outline:before,.ion-ios7-videocam:before,.ion-ios7-volume-high:before,.ion-ios7-volume-low:before,.ion-ios7-wineglass-outline:before,.ion-ios7-wineglass:before,.ion-ios7-world-outline:before,.ion-ios7-world:before,.ion-ipad:before,.ion-iphone:before,.ion-ipod:before,.ion-jet:before,.ion-key:before,.ion-knife:before,.ion-laptop:before,.ion-leaf:before,.ion-levels:before,.ion-lightbulb:before,.ion-link:before,.ion-load-a:before,.ion-load-b:before,.ion-load-c:before,.ion-load-d:before,.ion-loading-a,.ion-loading-a:before,.ion-loading-b,.ion-loading-b:before,.ion-loading-c,.ion-loading-c:before,.ion-loading-d,.ion-loading-d:before,.ion-location:before,.ion-locked:before,.ion-log-in:before,.ion-log-out:before,.ion-loop:before,.ion-looping,.ion-looping:before,.ion-magnet:before,.ion-male:before,.ion-man:before,.ion-map:before,.ion-medkit:before,.ion-mic-a:before,.ion-mic-b:before,.ion-mic-c:before,.ion-minus-circled:before,.ion-minus-round:before,.ion-minus:before,.ion-model-s:before,.ion-monitor:before,.ion-more:before,.ion-music-note:before,.ion-navicon-round:before,.ion-navicon:before,.ion-navigate:before,.ion-no-smoking:before,.ion-nuclear:before,.ion-paper-airplane:before,.ion-paperclip:before,.ion-pause:before,.ion-person-add:before,.ion-person-stalker:before,.ion-person:before,.ion-pie-graph:before,.ion-pin:before,.ion-pinpoint:before,.ion-pizza:before,.ion-plane:before,.ion-play:before,.ion-playstation:before,.ion-plus-circled:before,.ion-plus-round:before,.ion-plus:before,.ion-pound:before,.ion-power:before,.ion-pricetag:before,.ion-pricetags:before,.ion-printer:before,.ion-radio-waves:before,.ion-record:before,.ion-refresh:before,.ion-refreshing,.ion-refreshing:before,.ion-reply-all:before,.ion-reply:before,.ion-search:before,.ion-settings:before,.ion-share:before,.ion-shuffle:before,.ion-skip-backward:before,.ion-skip-forward:before,.ion-social-android-outline:before,.ion-social-android:before,.ion-social-apple-outline:before,.ion-social-apple:before,.ion-social-bitcoin-outline:before,.ion-social-bitcoin:before,.ion-social-buffer-outline:before,.ion-social-buffer:before,.ion-social-designernews-outline:before,.ion-social-designernews:before,.ion-social-dribbble-outline:before,.ion-social-dribbble:before,.ion-social-dropbox-outline:before,.ion-social-dropbox:before,.ion-social-facebook-outline:before,.ion-social-facebook:before,.ion-social-freebsd-devil:before,.ion-social-github-outline:before,.ion-social-github:before,.ion-social-googleplus-outline:before,.ion-social-googleplus:before,.ion-social-hackernews-outline:before,.ion-social-hackernews:before,.ion-social-linkedin-outline:before,.ion-social-linkedin:before,.ion-social-pinterest-outline:before,.ion-social-pinterest:before,.ion-social-reddit-outline:before,.ion-social-reddit:before,.ion-social-rss-outline:before,.ion-social-rss:before,.ion-social-skype-outline:before,.ion-social-skype:before,.ion-social-tumblr-outline:before,.ion-social-tumblr:before,.ion-social-tux:before,.ion-social-twitter-outline:before,.ion-social-twitter:before,.ion-social-vimeo-outline:before,.ion-social-vimeo:before,.ion-social-windows-outline:before,.ion-social-windows:before,.ion-social-wordpress-outline:before,.ion-social-wordpress:before,.ion-social-yahoo-outline:before,.ion-social-yahoo:before,.ion-social-youtube-outline:before,.ion-social-youtube:before,.ion-speakerphone:before,.ion-speedometer:before,.ion-spoon:before,.ion-star:before,.ion-stats-bars:before,.ion-steam:before,.ion-stop:before,.ion-thermometer:before,.ion-thumbsdown:before,.ion-thumbsup:before,.ion-trash-a:before,.ion-trash-b:before,.ion-umbrella:before,.ion-unlocked:before,.ion-upload:before,.ion-usb:before,.ion-videocamera:before,.ion-volume-high:before,.ion-volume-low:before,.ion-volume-medium:before,.ion-volume-mute:before,.ion-waterdrop:before,.ion-wifi:before,.ion-wineglass:before,.ion-woman:before,.ion-wrench:before,.ion-xbox:before,.ionicons:before{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-ios7-reloading,.ion-loading-a,.ion-loading-b,.ion-loading-c,.ion-loading-d,.ion-looping,.ion-refreshing,.ion-spin{-webkit-animation:spin 1s infinite linear;-moz-animation:spin 1s infinite linear;-o-animation:spin 1s infinite linear;animation:spin 1s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.ion-loading-a{-webkit-animation-timing-function:steps(8,start);-moz-animation-timing-function:steps(8,start);animation-timing-function:steps(8,start)}.ion-alert:before{content:"\f101"}.ion-alert-circled:before{content:"\f100"}.ion-android-add:before{content:"\f2c7"}.ion-android-add-contact:before{content:"\f2c6"}.ion-android-alarm:before{content:"\f2c8"}.ion-android-archive:before{content:"\f2c9"}.ion-android-arrow-back:before{content:"\f2ca"}.ion-android-arrow-down-left:before{content:"\f2cb"}.ion-android-arrow-down-right:before{content:"\f2cc"}.ion-android-arrow-up-left:before{content:"\f2cd"}.ion-android-arrow-up-right:before{content:"\f2ce"}.ion-android-battery:before{content:"\f2cf"}.ion-android-book:before{content:"\f2d0"}.ion-android-calendar:before{content:"\f2d1"}.ion-android-call:before{content:"\f2d2"}.ion-android-camera:before{content:"\f2d3"}.ion-android-chat:before{content:"\f2d4"}.ion-android-checkmark:before{content:"\f2d5"}.ion-android-clock:before{content:"\f2d6"}.ion-android-close:before{content:"\f2d7"}.ion-android-contact:before{content:"\f2d8"}.ion-android-contacts:before{content:"\f2d9"}.ion-android-data:before{content:"\f2da"}.ion-android-developer:before{content:"\f2db"}.ion-android-display:before{content:"\f2dc"}.ion-android-download:before{content:"\f2dd"}.ion-android-dropdown:before{content:"\f2de"}.ion-android-earth:before{content:"\f2df"}.ion-android-folder:before{content:"\f2e0"}.ion-android-forums:before{content:"\f2e1"}.ion-android-friends:before{content:"\f2e2"}.ion-android-hand:before{content:"\f2e3"}.ion-android-image:before{content:"\f2e4"}.ion-android-inbox:before{content:"\f2e5"}.ion-android-information:before{content:"\f2e6"}.ion-android-keypad:before{content:"\f2e7"}.ion-android-lightbulb:before{content:"\f2e8"}.ion-android-locate:before{content:"\f2e9"}.ion-android-location:before{content:"\f2ea"}.ion-android-mail:before{content:"\f2eb"}.ion-android-microphone:before{content:"\f2ec"}.ion-android-mixer:before{content:"\f2ed"}.ion-android-more:before{content:"\f2ee"}.ion-android-note:before{content:"\f2ef"}.ion-android-playstore:before{content:"\f2f0"}.ion-android-printer:before{content:"\f2f1"}.ion-android-promotion:before{content:"\f2f2"}.ion-android-reminder:before{content:"\f2f3"}.ion-android-remove:before{content:"\f2f4"}.ion-android-search:before{content:"\f2f5"}.ion-android-send:before{content:"\f2f6"}.ion-android-settings:before{content:"\f2f7"}.ion-android-share:before{content:"\f2f8"}.ion-android-social:before{content:"\f2fa"}.ion-android-social-user:before{content:"\f2f9"}.ion-android-sort:before{content:"\f2fb"}.ion-android-star:before{content:"\f2fc"}.ion-android-stopwatch:before{content:"\f2fd"}.ion-android-storage:before{content:"\f2fe"}.ion-android-system-back:before{content:"\f2ff"}.ion-android-system-home:before{content:"\f300"}.ion-android-system-windows:before{content:"\f301"}.ion-android-timer:before{content:"\f302"}.ion-android-trash:before{content:"\f303"}.ion-android-volume:before{content:"\f304"}.ion-android-wifi:before{content:"\f305"}.ion-archive:before{content:"\f102"}.ion-arrow-down-a:before{content:"\f103"}.ion-arrow-down-b:before{content:"\f104"}.ion-arrow-down-c:before{content:"\f105"}.ion-arrow-expand:before{content:"\f25e"}.ion-arrow-graph-down-left:before{content:"\f25f"}.ion-arrow-graph-down-right:before{content:"\f260"}.ion-arrow-graph-up-left:before{content:"\f261"}.ion-arrow-graph-up-right:before{content:"\f262"}.ion-arrow-left-a:before{content:"\f106"}.ion-arrow-left-b:before{content:"\f107"}.ion-arrow-left-c:before{content:"\f108"}.ion-arrow-move:before{content:"\f263"}.ion-arrow-resize:before{content:"\f264"}.ion-arrow-return-left:before{content:"\f265"}.ion-arrow-return-right:before{content:"\f266"}.ion-arrow-right-a:before{content:"\f109"}.ion-arrow-right-b:before{content:"\f10a"}.ion-arrow-right-c:before{content:"\f10b"}.ion-arrow-shrink:before{content:"\f267"}.ion-arrow-swap:before{content:"\f268"}.ion-arrow-up-a:before{content:"\f10c"}.ion-arrow-up-b:before{content:"\f10d"}.ion-arrow-up-c:before{content:"\f10e"}.ion-at:before{content:"\f10f"}.ion-bag:before{content:"\f110"}.ion-battery-charging:before{content:"\f111"}.ion-battery-empty:before{content:"\f112"}.ion-battery-full:before{content:"\f113"}.ion-battery-half:before{content:"\f114"}.ion-battery-low:before{content:"\f115"}.ion-beaker:before{content:"\f269"}.ion-beer:before{content:"\f26a"}.ion-bluetooth:before{content:"\f116"}.ion-bookmark:before{content:"\f26b"}.ion-briefcase:before{content:"\f26c"}.ion-bug:before{content:"\f2be"}.ion-calculator:before{content:"\f26d"}.ion-calendar:before{content:"\f117"}.ion-camera:before{content:"\f118"}.ion-card:before{content:"\f119"}.ion-chatbox:before{content:"\f11b"}.ion-chatbox-working:before{content:"\f11a"}.ion-chatboxes:before{content:"\f11c"}.ion-chatbubble:before{content:"\f11e"}.ion-chatbubble-working:before{content:"\f11d"}.ion-chatbubbles:before{content:"\f11f"}.ion-checkmark:before{content:"\f122"}.ion-checkmark-circled:before{content:"\f120"}.ion-checkmark-round:before{content:"\f121"}.ion-chevron-down:before{content:"\f123"}.ion-chevron-left:before{content:"\f124"}.ion-chevron-right:before{content:"\f125"}.ion-chevron-up:before{content:"\f126"}.ion-clipboard:before{content:"\f127"}.ion-clock:before{content:"\f26e"}.ion-close:before{content:"\f12a"}.ion-close-circled:before{content:"\f128"}.ion-close-round:before{content:"\f129"}.ion-cloud:before{content:"\f12b"}.ion-code:before{content:"\f271"}.ion-code-download:before{content:"\f26f"}.ion-code-working:before{content:"\f270"}.ion-coffee:before{content:"\f272"}.ion-compass:before{content:"\f273"}.ion-compose:before{content:"\f12c"}.ion-connection-bars:before{content:"\f274"}.ion-contrast:before{content:"\f275"}.ion-disc:before{content:"\f12d"}.ion-document:before{content:"\f12f"}.ion-document-text:before{content:"\f12e"}.ion-drag:before{content:"\f130"}.ion-earth:before{content:"\f276"}.ion-edit:before{content:"\f2bf"}.ion-egg:before{content:"\f277"}.ion-eject:before{content:"\f131"}.ion-email:before{content:"\f132"}.ion-eye:before{content:"\f133"}.ion-eye-disabled:before{content:"\f306"}.ion-female:before{content:"\f278"}.ion-filing:before{content:"\f134"}.ion-film-marker:before{content:"\f135"}.ion-flag:before{content:"\f279"}.ion-flash:before{content:"\f137"}.ion-flash-off:before{content:"\f136"}.ion-flask:before{content:"\f138"}.ion-folder:before{content:"\f139"}.ion-fork:before{content:"\f27a"}.ion-fork-repo:before{content:"\f2c0"}.ion-forward:before{content:"\f13a"}.ion-game-controller-a:before{content:"\f13b"}.ion-game-controller-b:before{content:"\f13c"}.ion-gear-a:before{content:"\f13d"}.ion-gear-b:before{content:"\f13e"}.ion-grid:before{content:"\f13f"}.ion-hammer:before{content:"\f27b"}.ion-headphone:before{content:"\f140"}.ion-heart:before{content:"\f141"}.ion-help:before{content:"\f143"}.ion-help-buoy:before{content:"\f27c"}.ion-help-circled:before{content:"\f142"}.ion-home:before{content:"\f144"}.ion-icecream:before{content:"\f27d"}.ion-icon-social-google-plus:before{content:"\f146"}.ion-icon-social-google-plus-outline:before{content:"\f145"}.ion-image:before{content:"\f147"}.ion-images:before{content:"\f148"}.ion-information:before{content:"\f14a"}.ion-information-circled:before{content:"\f149"}.ion-ionic:before{content:"\f14b"}.ion-ios7-alarm:before{content:"\f14d"}.ion-ios7-alarm-outline:before{content:"\f14c"}.ion-ios7-albums:before{content:"\f14f"}.ion-ios7-albums-outline:before{content:"\f14e"}.ion-ios7-arrow-back:before{content:"\f150"}.ion-ios7-arrow-down:before{content:"\f151"}.ion-ios7-arrow-forward:before{content:"\f152"}.ion-ios7-arrow-left:before{content:"\f153"}.ion-ios7-arrow-right:before{content:"\f154"}.ion-ios7-arrow-thin-down:before{content:"\f27e"}.ion-ios7-arrow-thin-left:before{content:"\f27f"}.ion-ios7-arrow-thin-right:before{content:"\f280"}.ion-ios7-arrow-thin-up:before{content:"\f281"}.ion-ios7-arrow-up:before{content:"\f155"}.ion-ios7-at:before{content:"\f157"}.ion-ios7-at-outline:before{content:"\f156"}.ion-ios7-bell:before{content:"\f159"}.ion-ios7-bell-outline:before{content:"\f158"}.ion-ios7-bolt:before{content:"\f15b"}.ion-ios7-bolt-outline:before{content:"\f15a"}.ion-ios7-bookmarks:before{content:"\f15d"}.ion-ios7-bookmarks-outline:before{content:"\f15c"}.ion-ios7-box:before{content:"\f15f"}.ion-ios7-box-outline:before{content:"\f15e"}.ion-ios7-briefcase:before{content:"\f283"}.ion-ios7-briefcase-outline:before{content:"\f282"}.ion-ios7-browsers:before{content:"\f161"}.ion-ios7-browsers-outline:before{content:"\f160"}.ion-ios7-calculator:before{content:"\f285"}.ion-ios7-calculator-outline:before{content:"\f284"}.ion-ios7-calendar:before{content:"\f163"}.ion-ios7-calendar-outline:before{content:"\f162"}.ion-ios7-camera:before{content:"\f165"}.ion-ios7-camera-outline:before{content:"\f164"}.ion-ios7-cart:before{content:"\f167"}.ion-ios7-cart-outline:before{content:"\f166"}.ion-ios7-chatboxes:before{content:"\f169"}.ion-ios7-chatboxes-outline:before{content:"\f168"}.ion-ios7-chatbubble:before{content:"\f16b"}.ion-ios7-chatbubble-outline:before{content:"\f16a"}.ion-ios7-checkmark:before{content:"\f16e"}.ion-ios7-checkmark-empty:before{content:"\f16c"}.ion-ios7-checkmark-outline:before{content:"\f16d"}.ion-ios7-circle-filled:before{content:"\f16f"}.ion-ios7-circle-outline:before{content:"\f170"}.ion-ios7-clock:before{content:"\f172"}.ion-ios7-clock-outline:before{content:"\f171"}.ion-ios7-close:before{content:"\f2bc"}.ion-ios7-close-empty:before{content:"\f2bd"}.ion-ios7-close-outline:before{content:"\f2bb"}.ion-ios7-cloud:before{content:"\f178"}.ion-ios7-cloud-download:before{content:"\f174"}.ion-ios7-cloud-download-outline:before{content:"\f173"}.ion-ios7-cloud-outline:before{content:"\f175"}.ion-ios7-cloud-upload:before{content:"\f177"}.ion-ios7-cloud-upload-outline:before{content:"\f176"}.ion-ios7-cloudy:before{content:"\f17a"}.ion-ios7-cloudy-night:before{content:"\f308"}.ion-ios7-cloudy-night-outline:before{content:"\f307"}.ion-ios7-cloudy-outline:before{content:"\f179"}.ion-ios7-cog:before{content:"\f17c"}.ion-ios7-cog-outline:before{content:"\f17b"}.ion-ios7-compose:before{content:"\f17e"}.ion-ios7-compose-outline:before{content:"\f17d"}.ion-ios7-contact:before{content:"\f180"}.ion-ios7-contact-outline:before{content:"\f17f"}.ion-ios7-copy:before{content:"\f182"}.ion-ios7-copy-outline:before{content:"\f181"}.ion-ios7-download:before{content:"\f184"}.ion-ios7-download-outline:before{content:"\f183"}.ion-ios7-drag:before{content:"\f185"}.ion-ios7-email:before{content:"\f187"}.ion-ios7-email-outline:before{content:"\f186"}.ion-ios7-eye:before{content:"\f189"}.ion-ios7-eye-outline:before{content:"\f188"}.ion-ios7-fastforward:before{content:"\f18b"}.ion-ios7-fastforward-outline:before{content:"\f18a"}.ion-ios7-filing:before{content:"\f18d"}.ion-ios7-filing-outline:before{content:"\f18c"}.ion-ios7-film:before{content:"\f18f"}.ion-ios7-film-outline:before{content:"\f18e"}.ion-ios7-flag:before{content:"\f191"}.ion-ios7-flag-outline:before{content:"\f190"}.ion-ios7-folder:before{content:"\f193"}.ion-ios7-folder-outline:before{content:"\f192"}.ion-ios7-gear:before{content:"\f195"}.ion-ios7-gear-outline:before{content:"\f194"}.ion-ios7-glasses:before{content:"\f197"}.ion-ios7-glasses-outline:before{content:"\f196"}.ion-ios7-heart:before{content:"\f199"}.ion-ios7-heart-outline:before{content:"\f198"}.ion-ios7-help:before{content:"\f19c"}.ion-ios7-help-empty:before{content:"\f19a"}.ion-ios7-help-outline:before{content:"\f19b"}.ion-ios7-infinite:before{content:"\f19e"}.ion-ios7-infinite-outline:before{content:"\f19d"}.ion-ios7-information:before{content:"\f1a1"}.ion-ios7-information-empty:before{content:"\f19f"}.ion-ios7-information-outline:before{content:"\f1a0"}.ion-ios7-ionic-outline:before{content:"\f1a2"}.ion-ios7-keypad:before{content:"\f1a4"}.ion-ios7-keypad-outline:before{content:"\f1a3"}.ion-ios7-lightbulb:before{content:"\f287"}.ion-ios7-lightbulb-outline:before{content:"\f286"}.ion-ios7-location:before{content:"\f1a6"}.ion-ios7-location-outline:before{content:"\f1a5"}.ion-ios7-locked:before{content:"\f1a8"}.ion-ios7-locked-outline:before{content:"\f1a7"}.ion-ios7-medkit:before{content:"\f289"}.ion-ios7-medkit-outline:before{content:"\f288"}.ion-ios7-mic:before{content:"\f1ab"}.ion-ios7-mic-off:before{content:"\f1a9"}.ion-ios7-mic-outline:before{content:"\f1aa"}.ion-ios7-minus:before{content:"\f1ae"}.ion-ios7-minus-empty:before{content:"\f1ac"}.ion-ios7-minus-outline:before{content:"\f1ad"}.ion-ios7-monitor:before{content:"\f1b0"}.ion-ios7-monitor-outline:before{content:"\f1af"}.ion-ios7-moon:before{content:"\f1b2"}.ion-ios7-moon-outline:before{content:"\f1b1"}.ion-ios7-more:before{content:"\f1b4"}.ion-ios7-more-outline:before{content:"\f1b3"}.ion-ios7-musical-note:before{content:"\f1b5"}.ion-ios7-musical-notes:before{content:"\f1b6"}.ion-ios7-navigate:before{content:"\f1b8"}.ion-ios7-navigate-outline:before{content:"\f1b7"}.ion-ios7-paperplane:before{content:"\f1ba"}.ion-ios7-paperplane-outline:before{content:"\f1b9"}.ion-ios7-partlysunny:before{content:"\f1bc"}.ion-ios7-partlysunny-outline:before{content:"\f1bb"}.ion-ios7-pause:before{content:"\f1be"}.ion-ios7-pause-outline:before{content:"\f1bd"}.ion-ios7-people:before{content:"\f1c0"}.ion-ios7-people-outline:before{content:"\f1bf"}.ion-ios7-person:before{content:"\f1c2"}.ion-ios7-person-outline:before{content:"\f1c1"}.ion-ios7-personadd:before{content:"\f1c4"}.ion-ios7-personadd-outline:before{content:"\f1c3"}.ion-ios7-photos:before{content:"\f1c6"}.ion-ios7-photos-outline:before{content:"\f1c5"}.ion-ios7-pie:before{content:"\f28b"}.ion-ios7-pie-outline:before{content:"\f28a"}.ion-ios7-play:before{content:"\f1c8"}.ion-ios7-play-outline:before{content:"\f1c7"}.ion-ios7-plus:before{content:"\f1cb"}.ion-ios7-plus-empty:before{content:"\f1c9"}.ion-ios7-plus-outline:before{content:"\f1ca"}.ion-ios7-pricetag:before{content:"\f28d"}.ion-ios7-pricetag-outline:before{content:"\f28c"}.ion-ios7-printer:before{content:"\f1cd"}.ion-ios7-printer-outline:before{content:"\f1cc"}.ion-ios7-rainy:before{content:"\f1cf"}.ion-ios7-rainy-outline:before{content:"\f1ce"}.ion-ios7-recording:before{content:"\f1d1"}.ion-ios7-recording-outline:before{content:"\f1d0"}.ion-ios7-redo:before{content:"\f1d3"}.ion-ios7-redo-outline:before{content:"\f1d2"}.ion-ios7-refresh:before{content:"\f1d6"}.ion-ios7-refresh-empty:before{content:"\f1d4"}.ion-ios7-refresh-outline:before{content:"\f1d5"}.ion-ios7-reload:before,.ion-ios7-reloading:before{content:"\f28e"}.ion-ios7-rewind:before{content:"\f1d8"}.ion-ios7-rewind-outline:before{content:"\f1d7"}.ion-ios7-search:before{content:"\f1da"}.ion-ios7-search-strong:before{content:"\f1d9"}.ion-ios7-skipbackward:before{content:"\f1dc"}.ion-ios7-skipbackward-outline:before{content:"\f1db"}.ion-ios7-skipforward:before{content:"\f1de"}.ion-ios7-skipforward-outline:before{content:"\f1dd"}.ion-ios7-snowy:before{content:"\f309"}.ion-ios7-speedometer:before{content:"\f290"}.ion-ios7-speedometer-outline:before{content:"\f28f"}.ion-ios7-star:before{content:"\f1e0"}.ion-ios7-star-outline:before{content:"\f1df"}.ion-ios7-stopwatch:before{content:"\f1e2"}.ion-ios7-stopwatch-outline:before{content:"\f1e1"}.ion-ios7-sunny:before{content:"\f1e4"}.ion-ios7-sunny-outline:before{content:"\f1e3"}.ion-ios7-telephone:before{content:"\f1e6"}.ion-ios7-telephone-outline:before{content:"\f1e5"}.ion-ios7-thunderstorm:before{content:"\f1e8"}.ion-ios7-thunderstorm-outline:before{content:"\f1e7"}.ion-ios7-time:before{content:"\f292"}.ion-ios7-time-outline:before{content:"\f291"}.ion-ios7-timer:before{content:"\f1ea"}.ion-ios7-timer-outline:before{content:"\f1e9"}.ion-ios7-trash:before{content:"\f1ec"}.ion-ios7-trash-outline:before{content:"\f1eb"}.ion-ios7-undo:before{content:"\f1ee"}.ion-ios7-undo-outline:before{content:"\f1ed"}.ion-ios7-unlocked:before{content:"\f1f0"}.ion-ios7-unlocked-outline:before{content:"\f1ef"}.ion-ios7-upload:before{content:"\f1f2"}.ion-ios7-upload-outline:before{content:"\f1f1"}.ion-ios7-videocam:before{content:"\f1f4"}.ion-ios7-videocam-outline:before{content:"\f1f3"}.ion-ios7-volume-high:before{content:"\f1f5"}.ion-ios7-volume-low:before{content:"\f1f6"}.ion-ios7-wineglass:before{content:"\f294"}.ion-ios7-wineglass-outline:before{content:"\f293"}.ion-ios7-world:before{content:"\f1f8"}.ion-ios7-world-outline:before{content:"\f1f7"}.ion-ipad:before{content:"\f1f9"}.ion-iphone:before{content:"\f1fa"}.ion-ipod:before{content:"\f1fb"}.ion-jet:before{content:"\f295"}.ion-key:before{content:"\f296"}.ion-knife:before{content:"\f297"}.ion-laptop:before{content:"\f1fc"}.ion-leaf:before{content:"\f1fd"}.ion-levels:before{content:"\f298"}.ion-lightbulb:before{content:"\f299"}.ion-link:before{content:"\f1fe"}.ion-load-a:before,.ion-loading-a:before{content:"\f29a"}.ion-load-b:before,.ion-loading-b:before{content:"\f29b"}.ion-load-c:before,.ion-loading-c:before{content:"\f29c"}.ion-load-d:before,.ion-loading-d:before{content:"\f29d"}.ion-location:before{content:"\f1ff"}.ion-locked:before{content:"\f200"}.ion-log-in:before{content:"\f29e"}.ion-log-out:before{content:"\f29f"}.ion-loop:before,.ion-looping:before{content:"\f201"}.ion-magnet:before{content:"\f2a0"}.ion-male:before{content:"\f2a1"}.ion-man:before{content:"\f202"}.ion-map:before{content:"\f203"}.ion-medkit:before{content:"\f2a2"}.ion-mic-a:before{content:"\f204"}.ion-mic-b:before{content:"\f205"}.ion-mic-c:before{content:"\f206"}.ion-minus:before{content:"\f209"}.ion-minus-circled:before{content:"\f207"}.ion-minus-round:before{content:"\f208"}.ion-model-s:before{content:"\f2c1"}.ion-monitor:before{content:"\f20a"}.ion-more:before{content:"\f20b"}.ion-music-note:before{content:"\f20c"}.ion-navicon:before{content:"\f20e"}.ion-navicon-round:before{content:"\f20d"}.ion-navigate:before{content:"\f2a3"}.ion-no-smoking:before{content:"\f2c2"}.ion-nuclear:before{content:"\f2a4"}.ion-paper-airplane:before{content:"\f2c3"}.ion-paperclip:before{content:"\f20f"}.ion-pause:before{content:"\f210"}.ion-person:before{content:"\f213"}.ion-person-add:before{content:"\f211"}.ion-person-stalker:before{content:"\f212"}.ion-pie-graph:before{content:"\f2a5"}.ion-pin:before{content:"\f2a6"}.ion-pinpoint:before{content:"\f2a7"}.ion-pizza:before{content:"\f2a8"}.ion-plane:before{content:"\f214"}.ion-play:before{content:"\f215"}.ion-playstation:before{content:"\f30a"}.ion-plus:before{content:"\f218"}.ion-plus-circled:before{content:"\f216"}.ion-plus-round:before{content:"\f217"}.ion-pound:before{content:"\f219"}.ion-power:before{content:"\f2a9"}.ion-pricetag:before{content:"\f2aa"}.ion-pricetags:before{content:"\f2ab"}.ion-printer:before{content:"\f21a"}.ion-radio-waves:before{content:"\f2ac"}.ion-record:before{content:"\f21b"}.ion-refresh:before,.ion-refreshing:before{content:"\f21c"}.ion-reply:before{content:"\f21e"}.ion-reply-all:before{content:"\f21d"}.ion-search:before{content:"\f21f"}.ion-settings:before{content:"\f2ad"}.ion-share:before{content:"\f220"}.ion-shuffle:before{content:"\f221"}.ion-skip-backward:before{content:"\f222"}.ion-skip-forward:before{content:"\f223"}.ion-social-android:before{content:"\f225"}.ion-social-android-outline:before{content:"\f224"}.ion-social-apple:before{content:"\f227"}.ion-social-apple-outline:before{content:"\f226"}.ion-social-bitcoin:before{content:"\f2af"}.ion-social-bitcoin-outline:before{content:"\f2ae"}.ion-social-buffer:before{content:"\f229"}.ion-social-buffer-outline:before{content:"\f228"}.ion-social-designernews:before{content:"\f22b"}.ion-social-designernews-outline:before{content:"\f22a"}.ion-social-dribbble:before{content:"\f22d"}.ion-social-dribbble-outline:before{content:"\f22c"}.ion-social-dropbox:before{content:"\f22f"}.ion-social-dropbox-outline:before{content:"\f22e"}.ion-social-facebook:before{content:"\f231"}.ion-social-facebook-outline:before{content:"\f230"}.ion-social-freebsd-devil:before{content:"\f2c4"}.ion-social-github:before{content:"\f233"}.ion-social-github-outline:before{content:"\f232"}.ion-social-googleplus:before{content:"\f235"}.ion-social-googleplus-outline:before{content:"\f234"}.ion-social-hackernews:before{content:"\f237"}.ion-social-hackernews-outline:before{content:"\f236"}.ion-social-linkedin:before{content:"\f239"}.ion-social-linkedin-outline:before{content:"\f238"}.ion-social-pinterest:before{content:"\f2b1"}.ion-social-pinterest-outline:before{content:"\f2b0"}.ion-social-reddit:before{content:"\f23b"}.ion-social-reddit-outline:before{content:"\f23a"}.ion-social-rss:before{content:"\f23d"}.ion-social-rss-outline:before{content:"\f23c"}.ion-social-skype:before{content:"\f23f"}.ion-social-skype-outline:before{content:"\f23e"}.ion-social-tumblr:before{content:"\f241"}.ion-social-tumblr-outline:before{content:"\f240"}.ion-social-tux:before{content:"\f2c5"}.ion-social-twitter:before{content:"\f243"}.ion-social-twitter-outline:before{content:"\f242"}.ion-social-vimeo:before{content:"\f245"}.ion-social-vimeo-outline:before{content:"\f244"}.ion-social-windows:before{content:"\f247"}.ion-social-windows-outline:before{content:"\f246"}.ion-social-wordpress:before{content:"\f249"}.ion-social-wordpress-outline:before{content:"\f248"}.ion-social-yahoo:before{content:"\f24b"}.ion-social-yahoo-outline:before{content:"\f24a"}.ion-social-youtube:before{content:"\f24d"}.ion-social-youtube-outline:before{content:"\f24c"}.ion-speakerphone:before{content:"\f2b2"}.ion-speedometer:before{content:"\f2b3"}.ion-spoon:before{content:"\f2b4"}.ion-star:before{content:"\f24e"}.ion-stats-bars:before{content:"\f2b5"}.ion-steam:before{content:"\f30b"}.ion-stop:before{content:"\f24f"}.ion-thermometer:before{content:"\f2b6"}.ion-thumbsdown:before{content:"\f250"}.ion-thumbsup:before{content:"\f251"}.ion-trash-a:before{content:"\f252"}.ion-trash-b:before{content:"\f253"}.ion-umbrella:before{content:"\f2b7"}.ion-unlocked:before{content:"\f254"}.ion-upload:before{content:"\f255"}.ion-usb:before{content:"\f2b8"}.ion-videocamera:before{content:"\f256"}.ion-volume-high:before{content:"\f257"}.ion-volume-low:before{content:"\f258"}.ion-volume-medium:before{content:"\f259"}.ion-volume-mute:before{content:"\f25a"}.ion-waterdrop:before{content:"\f25b"}.ion-wifi:before{content:"\f25c"}.ion-wineglass:before{content:"\f2b9"}.ion-woman:before{content:"\f25d"}.ion-wrench:before{content:"\f2ba"}.ion-xbox:before{content:"\f30c"}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;vertical-align:baseline;font:inherit;font-size:100%}ol,ul{list-style:none}blockquote,q{quotes:none}audio:not([controls]){display:none;height:0}[hidden],template{display:none}script{display:none!important}html{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}:focus,a,a:active,a:focus,a:hover,button,button:focus{outline:0}a{-webkit-user-drag:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}a[href]:hover{cursor:pointer}b,strong{font-weight:700}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}code,kbd,pre,samp{font-size:1em;font-family:monospace,serif}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}sub,sup{position:relative;vertical-align:baseline;font-size:75%;line-height:0}sup{top:-.5em}sub{bottom:-.25em}fieldset{margin:0 2px;padding:.35em .625em .75em;border:1px solid silver}button,input,select,textarea{margin:0;outline-offset:0;outline-style:none;outline-width:0;-webkit-font-smoothing:inherit}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto}img{-webkit-user-drag:none}table{border-spacing:0;border-collapse:collapse}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{overflow:hidden;-ms-touch-action:none;touch-action:none}.ionic-body,body{-webkit-touch-callout:none;-webkit-font-smoothing:antialiased;font-smoothing:antialiased;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0;padding:0;color:#000;word-wrap:break-word;font-size:14px;font-family:"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;line-height:20px;text-rendering:optimizeLegibility;-webkit-backface-visibility:hidden;-webkit-user-drag:none}body.grade-b,body.grade-c{text-rendering:auto}.content{position:relative}.scroll-content{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;margin-top:-1px;width:auto;height:auto}.scroll-view{position:relative;display:block;overflow:hidden;margin-top:-1px}.scroll{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-transform-origin:left top;-moz-transform-origin:left top;transform-origin:left top}.scroll-bar{position:absolute;z-index:9999}.ng-animate .scroll-bar{visibility:hidden}.scroll-bar-h{right:2px;bottom:3px;left:2px;height:3px}.scroll-bar-h .scroll-bar-indicator{height:100%}.scroll-bar-v{top:2px;right:3px;bottom:2px;width:3px}.scroll-bar-v .scroll-bar-indicator{width:100%}.scroll-bar-indicator{position:absolute;border-radius:4px;background:rgba(0,0,0,.3);opacity:1}.scroll-bar-indicator.scroll-bar-fade-out{-webkit-transition:opacity .3s linear;-moz-transition:opacity .3s linear;transition:opacity .3s linear;opacity:0}.grade-b .scroll-bar-indicator,.grade-c .scroll-bar-indicator{border-radius:0;background:#aaa}.grade-b .scroll-bar-indicator.scroll-bar-fade-out,.grade-c .scroll-bar-indicator.scroll-bar-fade-out{-webkit-transition:none;-moz-transition:none;transition:none}@keyframes refresh-spin{0%{transform:translate3d(0,0,0) rotate(0)}100%{transform:translate3d(0,0,0) rotate(-180deg)}}@-webkit-keyframes refresh-spin{0%{-webkit-transform:translate3d(0,0,0) rotate(0)}100%{-webkit-transform:translate3d(0,0,0) rotate(-180deg)}}@keyframes refresh-spin-back{0%{transform:translate3d(0,0,0) rotate(-180deg)}100%{transform:translate3d(0,0,0) rotate(0)}}@-webkit-keyframes refresh-spin-back{0%{-webkit-transform:translate3d(0,0,0) rotate(-180deg)}100%{-webkit-transform:translate3d(0,0,0) rotate(0)}}.scroll-refresher{position:absolute;top:-60px;right:0;left:0;overflow:hidden;margin:auto;height:60px}.scroll-refresher .ionic-refresher-content{position:absolute;bottom:15px;left:0;width:100%;color:#666;text-align:center;font-size:30px}.scroll-refresher .ionic-refresher-content .text-pulling,.scroll-refresher .ionic-refresher-content .text-refreshing{font-size:16px;line-height:16px}.scroll-refresher .ionic-refresher-content.ionic-refresher-with-text{bottom:10px}.scroll-refresher .icon-pulling,.scroll-refresher .icon-refreshing{width:100%;-webkit-backface-visibility:hidden;-webkit-transform-style:preserve-3d;backface-visibility:hidden;transform-style:preserve-3d}.scroll-refresher .icon-pulling{-webkit-animation-name:refresh-spin-back;-moz-animation-name:refresh-spin-back;animation-name:refresh-spin-back;-webkit-animation-duration:200ms;-moz-animation-duration:200ms;animation-duration:200ms;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:none;-moz-animation-fill-mode:none;animation-fill-mode:none;-webkit-transform:translate3d(0,0,0) rotate(0deg);transform:translate3d(0,0,0) rotate(0deg)}.scroll-refresher .icon-refreshing,.scroll-refresher .text-refreshing{display:none}.scroll-refresher .icon-refreshing{-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;animation-duration:1.5s}.scroll-refresher.active .icon-pulling{-webkit-animation-name:refresh-spin;-moz-animation-name:refresh-spin;animation-name:refresh-spin;-webkit-transform:translate3d(0,0,0) rotate(-180deg);transform:translate3d(0,0,0) rotate(-180deg)}.scroll-refresher.active.refreshing .icon-pulling,.scroll-refresher.active.refreshing .text-pulling{display:none}.scroll-refresher.active.refreshing .icon-refreshing,.scroll-refresher.active.refreshing .text-refreshing{display:block}.scroll-refresher-content{position:absolute;bottom:15px;left:0;width:100%;color:#666;text-align:center;font-size:30px}ion-infinite-scroll .scroll-infinite{position:relative;overflow:hidden;margin-top:-70px;height:60px}.scroll-infinite-content{position:absolute;bottom:-1px;left:0;width:100%;color:#666;text-align:center;font-size:30px}ion-infinite-scroll.active .scroll-infinite{margin-top:-30px}.overflow-scroll{overflow-x:hidden;overflow-y:scroll;-webkit-overflow-scrolling:touch}.overflow-scroll .scroll{position:static;height:100%;-webkit-transform:translate3d(0,0,0)}.has-header{top:44px}.no-header{top:0}.has-subheader{top:88px}.has-tabs-top{top:93px}.has-header.has-subheader.has-tabs-top{top:137px}.has-footer{bottom:44px}.has-subfooter{bottom:88px}.bar-footer.has-tabs,.has-tabs{bottom:49px}.has-footer.has-tabs{bottom:93px}.pane{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:1}.view{z-index:1}.pane,.view{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:#fff;overflow:hidden}p{margin:0 0 10px}small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:#000;font-weight:500;font-family:"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;line-height:1.2}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1:first-child,.h2:first-child,.h3:first-child,h1:first-child,h2:first-child,h3:first-child{margin-top:0}.h1+.h1,.h1+.h2,.h1+.h3,.h1+h1,.h1+h2,.h1+h3,.h2+.h1,.h2+.h2,.h2+.h3,.h2+h1,.h2+h2,.h2+h3,.h3+.h1,.h3+.h2,.h3+.h3,.h3+h1,.h3+h2,.h3+h3,h1+.h1,h1+.h2,h1+.h3,h1+h1,h1+h2,h1+h3,h2+.h1,h2+.h2,h2+.h3,h2+h1,h2+h2,h2+h3,h3+.h1,h3+.h2,h3+.h3,h3+h1,h3+h2,h3+h3{margin-top:10px}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}.h1 small,h1 small{font-size:24px}.h2 small,h2 small{font-size:18px}.h3 small,.h4 small,h3 small,h4 small{font-size:14px}dl{margin-bottom:20px}dd,dt{line-height:1.42857}dt{font-weight:700}blockquote{margin:0 0 20px;padding:10px 20px;border-left:5px solid gray}blockquote p{font-weight:300;font-size:17.5px;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.42857}blockquote small:before{content:'\2014 \00A0'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.42857}a.subdued{padding-right:10px;color:#888;text-decoration:none}a.subdued:hover{text-decoration:none}a.subdued:last-child{padding-right:0}.action-sheet-backdrop{-webkit-transition:background-color 300ms ease-in-out;-moz-transition:background-color 300ms ease-in-out;transition:background-color 300ms ease-in-out;position:fixed;top:0;left:0;z-index:11;width:100%;height:100%;background-color:rgba(0,0,0,0)}.action-sheet-backdrop.active{background-color:rgba(0,0,0,.5)}.action-sheet-wrapper{-webkit-transform:translate3d(0,100%,0);-moz-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);-webkit-transition:all ease-in-out 300ms;-moz-transition:all ease-in-out 300ms;transition:all ease-in-out 300ms;position:absolute;bottom:0;width:100%}.action-sheet-up{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.action-sheet{margin-left:15px;margin-right:15px;width:auto;z-index:11;overflow:hidden}.action-sheet .button{display:block;padding:1px;width:100%;border-radius:0;background-color:transparent;color:#4a87ee;font-size:18px}.action-sheet .button.destructive{color:#ef4e3a}.action-sheet-title{padding:10px;color:#666;text-align:center;font-size:12px}.action-sheet-group{margin-bottom:5px;border-radius:3px;background-color:#fff}.action-sheet-group .button{border-width:1px 0 0;border-radius:0}.action-sheet-group .button.active{background-color:transparent;color:inherit}.action-sheet-group .button:first-child:last-child{border-width:0}.action-sheet-open,.action-sheet-open.modal-open .modal{pointer-events:none}.action-sheet-open .action-sheet-backdrop{pointer-events:auto}.backdrop{position:fixed;top:0;left:0;z-index:10;width:100%;height:100%;background-color:rgba(0,0,0,.4);visibility:hidden;opacity:0;-webkit-transition:.1s opacity linear;-moz-transition:.1s opacity linear;transition:.1s opacity linear}.backdrop.visible{visibility:visible}.backdrop.active{opacity:1}.bar{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;right:0;left:0;z-index:10;box-sizing:border-box;padding:5px;width:100%;height:44px;border-width:0;border-style:solid;border-top:1px solid transparent;border-bottom:1px solid #ddd;background-color:#fff;background-size:0}@media (min--moz-device-pixel-ratio:1.5),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:144dpi),(min-resolution:1.5dppx){.bar{border:none;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);background-position:bottom;background-size:100% 1px;background-repeat:no-repeat}}.bar.bar-clear{border:none;background:0 0;color:#fff}.bar.bar-clear .button,.bar.bar-clear .title{color:#fff}.bar.item-input-inset .item-input-wrapper{margin-top:-1px}.bar.item-input-inset .item-input-wrapper input{padding-left:8px;width:94%;height:28px;background:0 0}.bar.bar-light{border-color:#ddd;background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);color:#444}.bar.bar-light .title{color:#444}.bar.bar-stable{border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444}.bar.bar-stable .title{color:#444}.bar.bar-positive{border-color:#145fd7;background-color:#4a87ee;background-image:linear-gradient(0deg,#145fd7,#145fd7 50%,transparent 50%);color:#fff}.bar.bar-positive .title{color:#fff}.bar.bar-calm{border-color:#1aacc3;background-color:#43cee6;background-image:linear-gradient(0deg,#1aacc3,#1aacc3 50%,transparent 50%);color:#fff}.bar.bar-calm .title{color:#fff}.bar.bar-assertive{border-color:#cc2311;background-color:#ef4e3a;background-image:linear-gradient(0deg,#cc2311,#cc2311 50%,transparent 50%);color:#fff}.bar.bar-assertive .title{color:#fff}.bar.bar-balanced{border-color:#498f24;background-color:#6c3;background-image:linear-gradient(0deg,#498f24,#498f24 50%,transparent 50%);color:#fff}.bar.bar-balanced .title{color:#fff}.bar.bar-energized{border-color:#d39211;background-color:#f0b840;background-image:linear-gradient(0deg,#d39211,#d39211 50%,transparent 50%);color:#fff}.bar.bar-energized .title{color:#fff}.bar.bar-royal{border-color:#552bdf;background-color:#8a6de9;background-image:linear-gradient(0deg,#552bdf,#552bdf 50%,transparent 50%);color:#fff}.bar.bar-royal .title{color:#fff}.bar.bar-dark{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%);color:#fff}.bar.bar-dark .title{color:#fff}.bar .title{position:absolute;top:0;right:0;left:0;z-index:0;overflow:hidden;margin:0 10px;min-width:30px;height:43px;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:17px;line-height:44px}.bar .title.title-left{text-align:left}.bar .title.title-right{text-align:right}.bar .title a{color:inherit}.bar .button{z-index:1;padding:0 8px;min-width:initial;min-height:31px;font-weight:400;font-size:13px;line-height:32px}.bar .button .icon:before,.bar .button.button-icon:before,.bar .button.icon-left:before,.bar .button.icon-right:before,.bar .button.icon:before{padding-right:2px;padding-left:2px;font-size:20px;line-height:32px}.bar .button.button-icon{font-size:17px}.bar .button.button-icon .icon:before,.bar .button.button-icon.icon-left:before,.bar .button.button-icon.icon-right:before,.bar .button.button-icon:before{vertical-align:top;font-size:32px;line-height:32px}.bar .button.button-clear{padding-right:2px;padding-left:2px;font-weight:300;font-size:17px}.bar .button.button-clear .icon:before,.bar .button.button-clear.icon-left:before,.bar .button.button-clear.icon-right:before,.bar .button.button-clear.icon:before{font-size:32px;line-height:32px}.bar .button.back-button.activated,.bar .button.back-button.active{opacity:1}.bar .button-bar>.button,.bar .buttons>.button{min-height:31px;line-height:32px}.bar .button+.button-bar,.bar .button-bar+.button{margin-left:5px}.bar .buttons,.bar .buttons.left-buttons,.bar .buttons.right-buttons{display:inherit}.bar .buttons.pull-right,.bar .title+.button:last-child,.bar .title+.buttons,.bar>.button+.button:last-child,.bar>.button.pull-right{position:absolute;top:5px;right:5px;bottom:5px}.bar-light .button{border-color:#ddd;background-color:#fff;color:#444}.bar-light .button:hover{color:#444;text-decoration:none}.bar-light .button.activated,.bar-light .button.active{border-color:#ccc;background-color:#fafafa;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-light .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#444;font-size:17px}.bar-light .button.button-icon{border-color:transparent;background:0 0}.bar-stable .button{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.bar-stable .button:hover{color:#444;text-decoration:none}.bar-stable .button.activated,.bar-stable .button.active{border-color:#a2a2a2;background-color:#e5e5e5;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-stable .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#444;font-size:17px}.bar-stable .button.button-icon{border-color:transparent;background:0 0}.bar-positive .button{border-color:#145fd7;background-color:#4a87ee;color:#fff}.bar-positive .button:hover{color:#fff;text-decoration:none}.bar-positive .button.activated,.bar-positive .button.active{border-color:#145fd7;background-color:#145fd7;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-positive .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-positive .button.button-icon{border-color:transparent;background:0 0}.bar-calm .button{border-color:#1aacc3;background-color:#43cee6;color:#fff}.bar-calm .button:hover{color:#fff;text-decoration:none}.bar-calm .button.activated,.bar-calm .button.active{border-color:#1aacc3;background-color:#1aacc3;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-calm .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-calm .button.button-icon{border-color:transparent;background:0 0}.bar-assertive .button{border-color:#cc2311;background-color:#ef4e3a;color:#fff}.bar-assertive .button:hover{color:#fff;text-decoration:none}.bar-assertive .button.activated,.bar-assertive .button.active{border-color:#cc2311;background-color:#cc2311;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-assertive .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-assertive .button.button-icon{border-color:transparent;background:0 0}.bar-balanced .button{border-color:#498f24;background-color:#6c3;color:#fff}.bar-balanced .button:hover{color:#fff;text-decoration:none}.bar-balanced .button.activated,.bar-balanced .button.active{border-color:#498f24;background-color:#498f24;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-balanced .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-balanced .button.button-icon{border-color:transparent;background:0 0}.bar-energized .button{border-color:#d39211;background-color:#f0b840;color:#fff}.bar-energized .button:hover{color:#fff;text-decoration:none}.bar-energized .button.activated,.bar-energized .button.active{border-color:#d39211;background-color:#d39211;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-energized .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-energized .button.button-icon{border-color:transparent;background:0 0}.bar-royal .button{border-color:#552bdf;background-color:#8a6de9;color:#fff}.bar-royal .button:hover{color:#fff;text-decoration:none}.bar-royal .button.activated,.bar-royal .button.active{border-color:#552bdf;background-color:#552bdf;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-royal .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-royal .button.button-icon{border-color:transparent;background:0 0}.bar-dark .button{border-color:#111;background-color:#444;color:#fff}.bar-dark .button:hover{color:#fff;text-decoration:none}.bar-dark .button.activated,.bar-dark .button.active{border-color:#000;background-color:#262626;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-dark .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-dark .button.button-icon{border-color:transparent;background:0 0}.bar-header{top:0;border-top-width:0;border-bottom-width:1px}.bar-footer{bottom:0;border-top-width:1px;border-bottom-width:0;background-position:top}.bar-footer.item-input-inset{position:absolute}.bar-tabs{padding:0}.bar-subheader{top:44px;display:block}.bar-subfooter{bottom:44px;display:block}.tabs{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:horizontal;-moz-flex-direction:horizontal;-ms-flex-direction:horizontal;flex-direction:horizontal;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444;position:absolute;bottom:0;z-index:5;width:100%;height:49px;border-style:solid;border-top-width:1px;background-size:0;line-height:49px}.tabs .tab-item .badge{background-color:#444;color:#f8f8f8}@media (min--moz-device-pixel-ratio:1.5),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:144dpi),(min-resolution:1.5dppx){.tabs{padding-top:2px;border-top:none!important;border-bottom:none!important;background-position:top;background-size:100% 1px;background-repeat:no-repeat}}.tabs-light>.tabs,.tabs.tabs-light{border-color:#ddd;background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);color:#444}.tabs-light>.tabs .tab-item .badge,.tabs.tabs-light .tab-item .badge{background-color:#444;color:#fff}.tabs-stable>.tabs,.tabs.tabs-stable{border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444}.tabs-stable>.tabs .tab-item .badge,.tabs.tabs-stable .tab-item .badge{background-color:#444;color:#f8f8f8}.tabs-positive>.tabs,.tabs.tabs-positive{border-color:#145fd7;background-color:#4a87ee;background-image:linear-gradient(0deg,#145fd7,#145fd7 50%,transparent 50%);color:#fff}.tabs-positive>.tabs .tab-item .badge,.tabs.tabs-positive .tab-item .badge{background-color:#fff;color:#4a87ee}.tabs-calm>.tabs,.tabs.tabs-calm{border-color:#1aacc3;background-color:#43cee6;background-image:linear-gradient(0deg,#1aacc3,#1aacc3 50%,transparent 50%);color:#fff}.tabs-calm>.tabs .tab-item .badge,.tabs.tabs-calm .tab-item .badge{background-color:#fff;color:#43cee6}.tabs-assertive>.tabs,.tabs.tabs-assertive{border-color:#cc2311;background-color:#ef4e3a;background-image:linear-gradient(0deg,#cc2311,#cc2311 50%,transparent 50%);color:#fff}.tabs-assertive>.tabs .tab-item .badge,.tabs.tabs-assertive .tab-item .badge{background-color:#fff;color:#ef4e3a}.tabs-balanced>.tabs,.tabs.tabs-balanced{border-color:#498f24;background-color:#6c3;background-image:linear-gradient(0deg,#498f24,#498f24 50%,transparent 50%);color:#fff}.tabs-balanced>.tabs .tab-item .badge,.tabs.tabs-balanced .tab-item .badge{background-color:#fff;color:#6c3}.tabs-energized>.tabs,.tabs.tabs-energized{border-color:#d39211;background-color:#f0b840;background-image:linear-gradient(0deg,#d39211,#d39211 50%,transparent 50%);color:#fff}.tabs-energized>.tabs .tab-item .badge,.tabs.tabs-energized .tab-item .badge{background-color:#fff;color:#f0b840}.tabs-royal>.tabs,.tabs.tabs-royal{border-color:#552bdf;background-color:#8a6de9;background-image:linear-gradient(0deg,#552bdf,#552bdf 50%,transparent 50%);color:#fff}.tabs-royal>.tabs .tab-item .badge,.tabs.tabs-royal .tab-item .badge{background-color:#fff;color:#8a6de9}.tabs-dark>.tabs,.tabs.tabs-dark{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%);color:#fff}.tabs-dark>.tabs .tab-item .badge,.tabs.tabs-dark .tab-item .badge{background-color:#fff;color:#444}.tabs-top>.tabs,.tabs.tabs-top{top:44px;padding-top:0;padding-bottom:2px;background-position:bottom}.tab-item{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;overflow:hidden;max-width:150px;height:100%;color:inherit;text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;font-weight:400;font-size:14px;font-family:"Helvetica Neue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;opacity:.7}.tab-item:hover{cursor:pointer}.tabs-item-hide>.tabs,.tabs.tabs-item-hide{display:none}.tabs-icon-bottom.tabs .tab-item,.tabs-icon-bottom>.tabs .tab-item,.tabs-icon-top.tabs .tab-item,.tabs-icon-top>.tabs .tab-item{font-size:12px;line-height:14px}.tab-item .icon{display:block;margin:0 auto;height:32px;font-size:32px}.tabs-icon-left.tabs .tab-item,.tabs-icon-left>.tabs .tab-item,.tabs-icon-right.tabs .tab-item,.tabs-icon-right>.tabs .tab-item{font-size:12px}.tabs-icon-left.tabs .tab-item .icon,.tabs-icon-left>.tabs .tab-item .icon,.tabs-icon-right.tabs .tab-item .icon,.tabs-icon-right>.tabs .tab-item .icon{display:inline-block;vertical-align:top}.tabs-icon-left.tabs .tab-item .icon:before,.tabs-icon-left>.tabs .tab-item .icon:before,.tabs-icon-right.tabs .tab-item .icon:before,.tabs-icon-right>.tabs .tab-item .icon:before{font-size:24px;line-height:49px}.tabs-icon-left.tabs .tab-item .icon,.tabs-icon-left>.tabs .tab-item .icon{padding-right:3px}.tabs-icon-right.tabs .tab-item .icon,.tabs-icon-right>.tabs .tab-item .icon{padding-left:3px}.tabs-icon-only.tabs .icon,.tabs-icon-only>.tabs .icon{line-height:inherit}.tab-item.has-badge{position:relative}.tab-item .badge{position:absolute;top:4%;right:33%;right:calc(50% - 26px);padding:1px 6px;height:auto;font-size:12px;line-height:16px}.tab-item.activated,.tab-item.active,.tab-item.tab-item-active{opacity:1}.tab-item.activated.tab-item-light,.tab-item.active.tab-item-light,.tab-item.tab-item-active.tab-item-light{color:#fff}.tab-item.activated.tab-item-stable,.tab-item.active.tab-item-stable,.tab-item.tab-item-active.tab-item-stable{color:#f8f8f8}.tab-item.activated.tab-item-positive,.tab-item.active.tab-item-positive,.tab-item.tab-item-active.tab-item-positive{color:#4a87ee}.tab-item.activated.tab-item-calm,.tab-item.active.tab-item-calm,.tab-item.tab-item-active.tab-item-calm{color:#43cee6}.tab-item.activated.tab-item-assertive,.tab-item.active.tab-item-assertive,.tab-item.tab-item-active.tab-item-assertive{color:#ef4e3a}.tab-item.activated.tab-item-balanced,.tab-item.active.tab-item-balanced,.tab-item.tab-item-active.tab-item-balanced{color:#6c3}.tab-item.activated.tab-item-energized,.tab-item.active.tab-item-energized,.tab-item.tab-item-active.tab-item-energized{color:#f0b840}.tab-item.activated.tab-item-royal,.tab-item.active.tab-item-royal,.tab-item.tab-item-active.tab-item-royal{color:#8a6de9}.tab-item.activated.tab-item-dark,.tab-item.active.tab-item-dark,.tab-item.tab-item-active.tab-item-dark{color:#444}.item.tabs{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;padding:0}.item.tabs .icon:before{position:relative}.tab-item.disabled,.tab-item[disabled]{opacity:.4;cursor:default;pointer-events:none}.menu{position:absolute;top:0;bottom:0;z-index:0;overflow:hidden;min-height:100%;max-height:100%;width:275px;background-color:#fff}.menu-content{-webkit-transform:none;-moz-transform:none;transform:none;box-shadow:-1px 0 2px rgba(0,0,0,.2),1px 0 2px rgba(0,0,0,.2)}.menu-open .menu-content .pane,.menu-open .menu-content .scroll-content{pointer-events:none}.grade-b .menu-content,.grade-c .menu-content{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;right:-1px;left:-1px;border-right:1px solid #ccc;border-left:1px solid #ccc;box-shadow:none}.menu-left{left:0}.menu-right{right:0}.menu-animated{-webkit-transition:-webkit-transform 200ms ease;-moz-transition:-moz-transform 200ms ease;transition:transform 200ms ease}.modal-backdrop{-webkit-transition:background-color 300ms ease-in-out;-moz-transition:background-color 300ms ease-in-out;transition:background-color 300ms ease-in-out;position:fixed;top:0;left:0;z-index:10;width:100%;height:100%;background-color:rgba(0,0,0,0)}.modal-backdrop.active{background-color:rgba(0,0,0,.5)}.modal{position:absolute;top:0;z-index:10;overflow:hidden;min-height:100%;width:100%;background-color:#fff}@media (min-width:680px){.modal{top:20%;right:20%;bottom:20%;left:20%;overflow:visible;min-height:240px;width:60%}.modal.ng-leave-active{bottom:0}}.modal-open{pointer-events:none}.modal-open .modal,.modal-open .modal-backdrop{pointer-events:auto}.popup{position:fixed;top:50%;left:50%;z-index:11;visibility:hidden;width:250px;max-width:100%;border-radius:0;background-color:rgba(255,255,255,.9)}.popup.popup-hidden{-webkit-animation-name:scaleOut;-moz-animation-name:scaleOut;animation-name:scaleOut;-webkit-animation-duration:.1s;-moz-animation-duration:.1s;animation-duration:.1s;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.popup.popup-showing{visibility:visible}.popup.active{-webkit-animation-name:superScaleIn;-moz-animation-name:superScaleIn;animation-name:superScaleIn;-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.popup-head{padding:15px 0;border-bottom:1px solid #eee;text-align:center}.popup-title{margin:0;padding:0;font-size:15px}.popup-sub-title{margin:5px 0 0;padding:0;font-weight:400;font-size:11px}.popup-body,.popup-buttons.row{padding:10px}.popup-buttons .button{margin:0 5px;min-height:45px;border-radius:2px;line-height:20px}.popup-buttons .button:first-child{margin-left:0}.popup-buttons .button:last-child{margin-right:0}.popup-open,.popup-open.modal-open .modal{pointer-events:none}.popup-open .popup,.popup-open .popup-backdrop{pointer-events:auto}.loading{-webkit-transition:.2s opacity linear;-moz-transition:.2s opacity linear;transition:.2s opacity linear;visibility:hidden;opacity:0;position:fixed;top:50%;left:50%;z-index:11;padding:20px;border-radius:5px;background-color:rgba(0,0,0,.7);color:#fff;text-align:center;text-overflow:ellipsis;font-size:15px}.loading.visible{visibility:visible}.loading.active{opacity:1}.loading h1,.loading h2,.loading h3,.loading h4,.loading h5,.loading h6{color:#fff}.item{border-color:#ddd;background-color:#fff;color:#444;position:relative;z-index:2;display:block;margin:-1px;padding:15px;border-width:1px;border-style:solid;font-size:16px}.item h2{margin:0 0 4px;font-size:16px}.item h3{margin:0 0 4px;font-size:14px}.item h4{margin:0 0 4px;font-size:12px}.item h5,.item h6{margin:0 0 3px;font-size:10px}.item p{color:#666;font-size:14px}.item h1:last-child,.item h2:last-child,.item h3:last-child,.item h4:last-child,.item h5:last-child,.item h6:last-child,.item p:last-child{margin-bottom:0}.item .badge{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;position:absolute;top:15px;right:30px}.item.item-button-right .badge{right:65px}.item.item-divider .badge{top:8px}.item .badge+.badge{margin-right:5px}.item.item-light{border-color:#ddd;background-color:#fff;color:#444}.item.item-stable{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.item.item-positive{border-color:#145fd7;background-color:#4a87ee;color:#fff}.item.item-calm{border-color:#1aacc3;background-color:#43cee6;color:#fff}.item.item-assertive{border-color:#cc2311;background-color:#ef4e3a;color:#fff}.item.item-balanced{border-color:#498f24;background-color:#6c3;color:#fff}.item.item-energized{border-color:#d39211;background-color:#f0b840;color:#fff}.item.item-royal{border-color:#552bdf;background-color:#8a6de9;color:#fff}.item.item-dark{border-color:#111;background-color:#444;color:#fff}.item[ng-click]:hover{cursor:pointer}.item .item-content.activated,.item .item-content.active,.item-complex.activated .item-content,.item-complex.active .item-content,.item.activated,.item.active{border-color:#ccc;background-color:#D9D9D9}.item .item-content.activated.item-light,.item .item-content.active.item-light,.item-complex.activated .item-content.item-light,.item-complex.active .item-content.item-light,.item.activated.item-light,.item.active.item-light{border-color:#ccc;background-color:#fafafa}.item .item-content.activated.item-stable,.item .item-content.active.item-stable,.item-complex.activated .item-content.item-stable,.item-complex.active .item-content.item-stable,.item.activated.item-stable,.item.active.item-stable{border-color:#a2a2a2;background-color:#e5e5e5}.item .item-content.activated.item-positive,.item .item-content.active.item-positive,.item-complex.activated .item-content.item-positive,.item-complex.active .item-content.item-positive,.item.activated.item-positive,.item.active.item-positive{border-color:#145fd7;background-color:#145fd7}.item .item-content.activated.item-calm,.item .item-content.active.item-calm,.item-complex.activated .item-content.item-calm,.item-complex.active .item-content.item-calm,.item.activated.item-calm,.item.active.item-calm{border-color:#1aacc3;background-color:#1aacc3}.item .item-content.activated.item-assertive,.item .item-content.active.item-assertive,.item-complex.activated .item-content.item-assertive,.item-complex.active .item-content.item-assertive,.item.activated.item-assertive,.item.active.item-assertive{border-color:#cc2311;background-color:#cc2311}.item .item-content.activated.item-balanced,.item .item-content.active.item-balanced,.item-complex.activated .item-content.item-balanced,.item-complex.active .item-content.item-balanced,.item.activated.item-balanced,.item.active.item-balanced{border-color:#498f24;background-color:#498f24}.item .item-content.activated.item-energized,.item .item-content.active.item-energized,.item-complex.activated .item-content.item-energized,.item-complex.active .item-content.item-energized,.item.activated.item-energized,.item.active.item-energized{border-color:#d39211;background-color:#d39211}.item .item-content.activated.item-royal,.item .item-content.active.item-royal,.item-complex.activated .item-content.item-royal,.item-complex.active .item-content.item-royal,.item.activated.item-royal,.item.active.item-royal{border-color:#552bdf;background-color:#552bdf}.item .item-content.activated.item-dark,.item .item-content.active.item-dark,.item-complex.activated .item-content.item-dark,.item-complex.active .item-content.item-dark,.item.activated.item-dark,.item.active.item-dark{border-color:#000;background-color:#262626}.item,.item h1,.item h2,.item h3,.item h4,.item h5,.item h6,.item p,.item-content,.item-content h1,.item-content h2,.item-content h3,.item-content h4,.item-content h5,.item-content h6,.item-content p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.item{color:inherit;text-decoration:none}a.item:focus,a.item:hover{text-decoration:none}.item-complex,a.item.item-complex,button.item.item-complex{padding:0}.item-complex .item-content,.item-radio .item-content{position:relative;z-index:2;padding:15px 45px 15px 15px;border:none;background-color:#fff}a.item-content{display:block;color:inherit;text-decoration:none}.item-body h1,.item-body h2,.item-body h3,.item-body h4,.item-body h5,.item-body h6,.item-body p,.item-complex.item-text-wrap,.item-complex.item-text-wrap .item-content,.item-complex.item-text-wrap h1,.item-complex.item-text-wrap h2,.item-complex.item-text-wrap h3,.item-complex.item-text-wrap h4,.item-complex.item-text-wrap h5,.item-complex.item-text-wrap h6,.item-complex.item-text-wrap p,.item-text-wrap,.item-text-wrap .item,.item-text-wrap .item-content,.item-text-wrap h1,.item-text-wrap h2,.item-text-wrap h3,.item-text-wrap h4,.item-text-wrap h5,.item-text-wrap h6,.item-text-wrap p{overflow:visible;white-space:normal}.item-icon-left .icon,.item-icon-right .icon{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px}.item-icon-left .icon:before,.item-icon-right .icon:before{display:block;width:32px;text-align:center}.item .fill-icon{min-width:30px;min-height:30px;font-size:28px}.item-icon-left{padding-left:50px}.item-icon-left .icon{left:10px}.item-complex.item-icon-left{padding-left:0}.item-complex.item-icon-left .item-content{padding-left:50px}.item-icon-right{padding-right:50px}.item-icon-right .icon{right:10px}.item-complex.item-icon-right{padding-right:0}.item-complex.item-icon-right .item-content{padding-right:50px}.item-icon-left.item-icon-right .icon:first-child{right:auto}.item-icon-left .item-delete .icon,.item-icon-left.item-icon-right .icon:last-child{left:auto}.item-icon-left .icon-accessory,.item-icon-right .icon-accessory{color:#ccc;font-size:16px}.item-icon-left .icon-accessory{left:3px}.item-icon-right .icon-accessory{right:3px}.item-button-left{padding-left:68px}.item-button-left .item-content>.button,.item-button-left>.button{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:8px;left:10px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}.item-button-left .item-content>.button .icon:before,.item-button-left>.button .icon:before{position:relative;left:auto;width:auto;line-height:31px}.item-button-left .item-content>.button>.button,.item-button-left>.button>.button{margin:0 2px;min-height:34px;font-size:18px;line-height:32px}.item-button-right,a.item.item-button-right,button.item.item-button-right{padding-right:75px}.item-button-right .item-content>.button,.item-button-right .item-content>.buttons,.item-button-right>.button,.item-button-right>.buttons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:8px;right:15px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}.item-button-right .item-content>.button .icon:before,.item-button-right .item-content>.buttons .icon:before,.item-button-right>.button .icon:before,.item-button-right>.buttons .icon:before{position:relative;left:auto;width:auto;line-height:31px}.item-button-right .item-content>.button>.button,.item-button-right .item-content>.buttons>.button,.item-button-right>.button>.button,.item-button-right>.buttons>.button{margin:0 2px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}.item-avatar,.item-avatar .item-content,.item-avatar-left,.item-avatar-left .item-content{padding-left:70px;min-height:70px}.item-avatar .item-content .item-image,.item-avatar .item-content>img:first-child,.item-avatar .item-image,.item-avatar-left .item-content .item-image,.item-avatar-left .item-content>img:first-child,.item-avatar-left .item-image,.item-avatar-left>img:first-child,.item-avatar>img:first-child{position:absolute;top:15px;left:15px;max-width:40px;max-height:40px;width:100%;border-radius:4px}.item-avatar-right,.item-avatar-right .item-content{padding-right:70px;min-height:70px}.item-avatar-right .item-content .item-image,.item-avatar-right .item-content>img:first-child,.item-avatar-right .item-image,.item-avatar-right>img:first-child{position:absolute;top:15px;right:15px;max-width:40px;max-height:40px;width:100%;border-radius:4px}.item-thumbnail-left,.item-thumbnail-left .item-content{padding-left:105px;min-height:100px}.item-thumbnail-left .item-content .item-image,.item-thumbnail-left .item-content>img:first-child,.item-thumbnail-left .item-image,.item-thumbnail-left>img:first-child{position:absolute;top:10px;left:10px;max-width:80px;max-height:80px;width:100%}.item-avatar-left.item-complex,.item-avatar.item-complex,.item-thumbnail-left.item-complex{padding-left:0}.item-thumbnail-right,.item-thumbnail-right .item-content{padding-right:105px;min-height:100px}.item-thumbnail-right .item-content .item-image,.item-thumbnail-right .item-content>img:first-child,.item-thumbnail-right .item-image,.item-thumbnail-right>img:first-child{position:absolute;top:10px;right:10px;max-width:80px;max-height:80px;width:100%}.item-avatar-right.item-complex,.item-thumbnail-right.item-complex{padding-right:0}.item-image{padding:0;text-align:center}.item-image .list-img,.item-image img:first-child{width:100%;vertical-align:middle}.item-body{overflow:auto;padding:15px;text-overflow:inherit;white-space:normal}.item-body h1,.item-body h2,.item-body h3,.item-body h4,.item-body h5,.item-body h6,.item-body p{margin-top:15px;margin-bottom:15px}.item-divider{padding-top:8px;padding-bottom:8px;min-height:30px;background-color:#f5f5f5;color:#222;font-weight:700}.item-note{float:right;color:#aaa;font-size:14px}.item-left-editable .item-content,.item-right-editable .item-content{-webkit-transition-duration:250ms;-moz-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:ease-in-out;-moz-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.item-left-editable .item-content{-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;transition-property:transform}.item-right-editable .item-content{-webkit-transition-property:margin-right;-moz-transition-property:margin-right;transition-property:margin-right}.item-left-editable.item-right-editable .item-content{-webkit-transition-property:-webkit-transform,margin-right;-moz-transition-property:-moz-transform,margin-right;transition-property:transform,margin-right}.item-left-editing.item-left-editable .item-content,.list-left-editing .item-left-editable .item-content{-webkit-transform:translate3d(50px,0,0);-moz-transform:translate3d(50px,0,0);transform:translate3d(50px,0,0)}.item-right-editing.item-right-editable .item-content,.list-right-editing .item-right-editable .item-content{margin-right:50px}.item-left-edit{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;-webkit-transform:translate3d(-42px,0,0);-moz-transform:translate3d(-42px,0,0);transform:translate3d(-42px,0,0);position:absolute;top:0;left:0;z-index:0;width:50px;height:100%;line-height:100%}.item-left-edit .button{height:100%}.item-left-edit .button.icon{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%}.item-left-editing .item-left-edit,.list-left-editing .item-left-edit{-webkit-transform:translate3d(8px,0,0);-moz-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}.item-delete .button.icon{color:#ef4e3a;font-size:24px}.item-delete .button.icon:hover{opacity:.7}.item-right-edit{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;position:absolute;top:0;right:0;z-index:0;width:50px;height:100%;background:inherit}.item-right-edit .button{min-width:50px;height:100%}.item-right-edit .button.icon{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px}.item-reorder .button.icon{color:#444;font-size:32px}.item-reordering{position:absolute;left:0;top:0;z-index:9;width:100%;box-shadow:0 0 10px 0 #aaa}.item-reordering .item-reorder{z-index:1}.item-placeholder{opacity:.7}.item-left-edit.item-delete,.item-right-edit.item-reorder{opacity:1}.item-left-edit.item-delete.ng-hide,.item-right-edit.item-reorder.ng-hide{opacity:0}.item-left-edit.item-delete.ng-hide-add,.item-left-edit.item-delete.ng-hide-remove,.item-right-edit.item-reorder.ng-hide-add,.item-right-edit.item-reorder.ng-hide-remove{display:block!important}.item-options{position:absolute;top:0;right:0;z-index:1;height:100%}.item-options .button{height:100%;border:none;border-radius:0}.list{position:relative;padding-top:1px;padding-bottom:1px;padding-left:0;margin-bottom:20px}.list:last-child{margin-bottom:0}.list-header{margin-top:20px;padding:5px 15px;background-color:transparent;color:#222;font-weight:700}.card.list .list-item{padding-right:1px;padding-left:1px}.card,.list-inset{overflow:hidden;margin:20px 10px;border-radius:2px;background-color:#fff}.card{padding-top:1px;padding-bottom:1px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.card .item:first-child,.card .item:first-child .item-content,.list-inset .item:first-child,.list-inset .item:first-child .item-content,.padding>.list .item:first-child,.padding>.list .item:first-child .item-content{border-top-left-radius:2px;border-top-right-radius:2px}.card .item:last-child,.card .item:last-child .item-content,.list-inset .item:last-child,.list-inset .item:last-child .item-content,.padding>.list .item:last-child,.padding>.list .item:last-child .item-content{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.card .item:last-child,.list-inset .item:last-child{margin-bottom:-1px}.card .item,.list-inset .item,.padding-horizontal>.list .item,.padding>.list .item{margin-right:0;margin-left:0}.card .item.item-input input,.list-inset .item.item-input input,.padding-horizontal>.list .item.item-input input,.padding>.list .item.item-input input{padding-right:44px}.padding-left>.list .item{margin-left:0}.padding-right>.list .item{margin-right:0}.badge{background-color:transparent;color:#AAA;z-index:1;display:inline-block;padding:3px 8px;min-width:10px;border-radius:10px;vertical-align:baseline;text-align:center;white-space:nowrap;font-weight:700;font-size:14px;line-height:16px}.badge:empty{display:none}.badge.badge-light,.tabs .tab-item .badge.badge-light{background-color:#fff;color:#444}.badge.badge-stable,.tabs .tab-item .badge.badge-stable{background-color:#f8f8f8;color:#444}.badge.badge-positive,.tabs .tab-item .badge.badge-positive{background-color:#4a87ee;color:#fff}.badge.badge-calm,.tabs .tab-item .badge.badge-calm{background-color:#43cee6;color:#fff}.badge.badge-assertive,.tabs .tab-item .badge.badge-assertive{background-color:#ef4e3a;color:#fff}.badge.badge-balanced,.tabs .tab-item .badge.badge-balanced{background-color:#6c3;color:#fff}.badge.badge-energized,.tabs .tab-item .badge.badge-energized{background-color:#f0b840;color:#fff}.badge.badge-royal,.tabs .tab-item .badge.badge-royal{background-color:#8a6de9;color:#fff}.badge.badge-dark,.tabs .tab-item .badge.badge-dark{background-color:#444;color:#fff}.button .badge{position:relative;top:-1px}.slider{position:relative;visibility:hidden;overflow:hidden}.slider-slides{position:relative;height:100%}.slider-slide{position:relative;display:block;float:left;width:100%;height:100%;vertical-align:top}.slider-slide-image>img{width:100%}.slider-pager{position:absolute;bottom:20px;z-index:1;width:100%;height:15px;text-align:center}.slider-pager .slider-pager-page{display:inline-block;margin:0 3px;width:15px;color:#000;text-decoration:none;opacity:.3}.slider-pager .slider-pager-page.active{-webkit-transition:opacity .4s ease-in;-moz-transition:opacity .4s ease-in;transition:opacity .4s ease-in;opacity:1}.split-pane{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;align-items:stretch;width:100%;height:100%}.split-pane-menu{-webkit-box-flex:0;-webkit-flex:0 0 320px;-moz-box-flex:0;-moz-flex:0 0 320px;-ms-flex:0 0 320px;flex:0 0 320px;overflow-y:auto;width:320px;height:100%;border-right:1px solid #eee}@media all and (max-width:568px){.split-pane-menu{border-right:none}}.split-pane-content{-webkit-box-flex:1;-webkit-flex:1 0 auto;-moz-box-flex:1;-moz-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}form{margin:0 0 1.42857}legend{display:block;margin-bottom:1.42857;padding:0;width:100%;border:1px solid #ddd;color:#444;font-size:21px;line-height:2.85714}legend small{color:#f8f8f8;font-size:1.07143}button,input,label,select,textarea{font-weight:400;font-size:14px;line-height:1.42857}button,input,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif}.item-input{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:relative;overflow:hidden;padding:6px 0 5px 8px}.item-input input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-flex:1;-webkit-flex:1 0 220px;-moz-box-flex:1;-moz-flex:1 0 220px;-ms-flex:1 0 220px;flex:1 0 220px;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;padding-right:24px;background-color:transparent}.item-input .button .icon{-webkit-box-flex:0;-webkit-flex:0 0 24px;-moz-box-flex:0;-moz-flex:0 0 24px;-ms-flex:0 0 24px;flex:0 0 24px;position:static;display:inline-block;height:auto;text-align:center;font-size:16px}.item-input .button-bar{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-flex:1;-webkit-flex:1 0 220px;-moz-box-flex:1;-moz-flex:1 0 220px;-ms-flex:1 0 220px;flex:1 0 220px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.item-input .icon{min-width:14px}.item-input-inset{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:relative;overflow:hidden;padding:10px}.item-input-wrapper{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1 0;-moz-box-flex:1;-moz-flex:1 0;-ms-flex:1 0;flex:1 0;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;padding-right:8px;padding-left:8px;background:#eee}.item-input-inset .item-input-wrapper input{padding-left:4px;height:29px;background:0 0;line-height:18px}.item-input-wrapper~.button{margin-left:10px}.input-label{-webkit-box-flex:1;-webkit-flex:1 0 100px;-moz-box-flex:1;-moz-flex:1 0 100px;-ms-flex:1 0 100px;flex:1 0 100px;display:table;padding:7px 10px 7px 3px;max-width:200px;width:35%;color:#444;font-weight:700;font-size:14px}.placeholder-icon{color:#aaa}.placeholder-icon:first-child{padding-right:6px}.placeholder-icon:last-child{padding-left:6px}.item-stacked-label{display:block;background-color:transparent;box-shadow:none}.item-stacked-label .icon,.item-stacked-label .input-label{display:inline-block;padding:4px 0;vertical-align:middle}.item-stacked-label input,.item-stacked-label textarea{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;padding:4px 8px 3px;border:none;background-color:#fff}.item-stacked-label input{overflow:hidden;height:46px}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{display:block;padding-top:2px;height:34px;color:#111;vertical-align:middle;font-size:14px;line-height:16px}.platform-android input[type=date],.platform-android input[type=datetime-local],.platform-android input[type=month],.platform-android input[type=time],.platform-android input[type=week],.platform-ios input[type=date],.platform-ios input[type=datetime-local],.platform-ios input[type=month],.platform-ios input[type=time],.platform-ios input[type=week]{padding-top:8px}input,textarea{width:100%}textarea{height:auto}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{border:0}input[type=checkbox],input[type=radio]{margin:0;line-height:normal}input[type=button],input[type=checkbox],input[type=file],input[type=image],input[type=radio],input[type=reset],input[type=submit]{width:auto}input[type=file]{line-height:34px}.cloned-text-input+input,.cloned-text-input+textarea,.previous-input-focus{position:absolute;left:-9999px;width:200px}input:-moz-placeholder,textarea:-moz-placeholder{color:#aaa}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#aaa}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#aaa}input[disabled],input[readonly]:not(.cloned-text-input),select[disabled],select[readonly],textarea[disabled],textarea[readonly]:not(.cloned-text-input){background-color:#f8f8f8;cursor:not-allowed}input[type=checkbox][disabled],input[type=checkbox][readonly],input[type=radio][disabled],input[type=radio][readonly]{background-color:transparent}.checkbox{position:relative;display:inline-block;padding:7px;cursor:pointer}.checkbox .checkbox-icon:before,.checkbox input:before{border-color:#4a87ee}.checkbox input:checked+.checkbox-icon:before,.checkbox input:checked:before{background:#4a87ee}.checkbox.checkbox-light .checkbox-icon:before,.checkbox.checkbox-light input:before{border-color:#ddd}.checkbox.checkbox-light input:checked+.checkbox-icon:before,.checkbox.checkbox-light input:checked:before{background:#ddd}.checkbox.checkbox-stable .checkbox-icon:before,.checkbox.checkbox-stable input:before{border-color:#b2b2b2}.checkbox.checkbox-stable input:checked+.checkbox-icon:before,.checkbox.checkbox-stable input:checked:before{background:#b2b2b2}.checkbox.checkbox-positive .checkbox-icon:before,.checkbox.checkbox-positive input:before{border-color:#4a87ee}.checkbox.checkbox-positive input:checked+.checkbox-icon:before,.checkbox.checkbox-positive input:checked:before{background:#4a87ee}.checkbox.checkbox-calm .checkbox-icon:before,.checkbox.checkbox-calm input:before{border-color:#43cee6}.checkbox.checkbox-calm input:checked+.checkbox-icon:before,.checkbox.checkbox-calm input:checked:before{background:#43cee6}.checkbox.checkbox-assertive .checkbox-icon:before,.checkbox.checkbox-assertive input:before{border-color:#ef4e3a}.checkbox.checkbox-assertive input:checked+.checkbox-icon:before,.checkbox.checkbox-assertive input:checked:before{background:#ef4e3a}.checkbox.checkbox-balanced .checkbox-icon:before,.checkbox.checkbox-balanced input:before{border-color:#6c3}.checkbox.checkbox-balanced input:checked+.checkbox-icon:before,.checkbox.checkbox-balanced input:checked:before{background:#6c3}.checkbox.checkbox-energized .checkbox-icon:before,.checkbox.checkbox-energized input:before{border-color:#f0b840}.checkbox.checkbox-energized input:checked+.checkbox-icon:before,.checkbox.checkbox-energized input:checked:before{background:#f0b840}.checkbox.checkbox-royal .checkbox-icon:before,.checkbox.checkbox-royal input:before{border-color:#8a6de9}.checkbox.checkbox-royal input:checked+.checkbox-icon:before,.checkbox.checkbox-royal input:checked:before{background:#8a6de9}.checkbox.checkbox-dark .checkbox-icon:before,.checkbox.checkbox-dark input:before{border-color:#444}.checkbox.checkbox-dark input:checked+.checkbox-icon:before,.checkbox.checkbox-dark input:checked:before{background:#444}.checkbox.checkbox-input-hidden input{display:none!important}.checkbox input,.checkbox-icon{position:relative;width:28px;height:28px;display:block;border:0;background:0 0;cursor:pointer;-webkit-appearance:none}.checkbox input:before,.checkbox-icon:before{display:table;width:100%;height:100%;border-width:1px;border-style:solid;border-radius:28px;background:#fff;content:' ';transition:background-color 20ms ease-in-out}.checkbox input:checked:before,input:checked+.checkbox-icon:before{border-width:2px}.checkbox input:after,.checkbox-icon:after{-webkit-transition:opacity .05s ease-in-out;-moz-transition:opacity .05s ease-in-out;transition:opacity .05s ease-in-out;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);transform:rotate(-45deg);position:absolute;top:30%;left:26%;display:table;width:15px;height:10.33px;border:3px solid #fff;border-top:0;border-right:0;content:' ';opacity:0}.grade-c .checkbox input:after,.grade-c .checkbox-icon:after{-webkit-transform:rotate(0);-moz-transform:rotate(0);transform:rotate(0);top:3px;left:4px;border:none;color:#fff;content:'\2713';font-weight:700;font-size:20px}.checkbox input:checked:after,input:checked+.checkbox-icon:after{opacity:1}.item-checkbox{padding-left:58px}.item-checkbox.active{box-shadow:none}.item-checkbox .checkbox{position:absolute;top:50%;right:7.5px;left:7.5px;z-index:3;margin-top:-21px}.item-checkbox.item-checkbox-right{padding-right:58px;padding-left:15px}.item-checkbox-right .checkbox input,.item-checkbox-right .checkbox-icon{float:right}.item-toggle{pointer-events:none}.toggle{position:relative;display:inline-block;pointer-events:auto;margin:-5px;padding:5px}.toggle input:checked+.track{border-color:#4a87ee;background-color:#4a87ee}.toggle.dragging .handle{background-color:#f2f2f2!important}.toggle.toggle-light input:checked+.track{border-color:#ddd;background-color:#ddd}.toggle.toggle-stable input:checked+.track{border-color:#b2b2b2;background-color:#b2b2b2}.toggle.toggle-positive input:checked+.track{border-color:#4a87ee;background-color:#4a87ee}.toggle.toggle-calm input:checked+.track{border-color:#43cee6;background-color:#43cee6}.toggle.toggle-assertive input:checked+.track{border-color:#ef4e3a;background-color:#ef4e3a}.toggle.toggle-balanced input:checked+.track{border-color:#6c3;background-color:#6c3}.toggle.toggle-energized input:checked+.track{border-color:#f0b840;background-color:#f0b840}.toggle.toggle-royal input:checked+.track{border-color:#8a6de9;background-color:#8a6de9}.toggle.toggle-dark input:checked+.track{border-color:#444;background-color:#444}.toggle input{display:none}.toggle .track{-webkit-transition-timing-function:ease-in-out;-moz-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:background-color,border;-moz-transition-property:background-color,border;transition-property:background-color,border;display:inline-block;box-sizing:border-box;width:54px;height:32px;border:solid 2px #E5E5E5;border-radius:20px;background-color:#E5E5E5;content:' ';cursor:pointer;pointer-events:none}.platform-android4_2 .toggle .track{-webkit-background-clip:padding-box}.toggle .handle{-webkit-transition:.2s ease-in-out;-moz-transition:.2s ease-in-out;transition:.2s ease-in-out;position:absolute;display:block;width:28px;height:28px;border-radius:28px;background-color:#fff;top:7px;left:7px}.toggle .handle:before{position:absolute;top:-4px;left:-22px;padding:19px 35px;content:" "}.toggle input:checked+.track .handle{-webkit-transform:translate3d(22px,0,0);-moz-transform:translate3d(22px,0,0);transform:translate3d(22px,0,0);background-color:#fff}.item-toggle.active{box-shadow:none}.item-toggle,.item-toggle.item-complex .item-content{padding-right:99px}.item-toggle.item-complex{padding-right:0}.item-toggle .toggle{position:absolute;top:7.5px;right:15px;z-index:3}.toggle input:disabled+.track{opacity:.6}.item-radio{padding:0}.item-radio:hover{cursor:pointer}.item-radio .item-content{padding-right:60px}.item-radio .radio-icon{position:absolute;top:0;right:0;z-index:3;visibility:hidden;padding:13px;height:100%;font-size:24px}.item-radio input{position:absolute;left:-9999px}.item-radio input:checked~.item-content{background:#f7f7f7}.item-radio input:checked~.radio-icon{visibility:visible}.platform-android.grade-b .item-radio,.platform-android.grade-c .item-radio{-webkit-animation:androidCheckedbugfix infinite 1s}@-webkit-keyframes androidCheckedbugfix{from,to{padding:0}}input[type=range]{display:inline-block;overflow:hidden;margin-top:5px;margin-bottom:5px;padding-right:2px;padding-left:1px;width:auto;height:35px;outline:0;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#ccc),color-stop(100%,#ccc));background:linear-gradient(to right,#ccc 0,#ccc 100%);background-position:center;background-size:99% 4px;background-repeat:no-repeat;-webkit-appearance:none}input[type=range]::-webkit-slider-thumb{position:relative;width:20px;height:20px;border-radius:10px;background-color:#fff;box-shadow:0 0 2px rgba(0,0,0,.5),1px 3px 5px rgba(0,0,0,.25);cursor:pointer;-webkit-appearance:none}input[type=range]::-webkit-slider-thumb:before{position:absolute;top:8px;left:-2001px;width:2000px;height:4px;background:#444;content:' '}input[type=range]::-webkit-slider-thumb:after{position:absolute;top:-20px;left:-20px;padding:30px;content:' '}.range{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;padding:2px 4px}.range.range-light input::-webkit-slider-thumb:before{background:#ddd}.range.range-stable input::-webkit-slider-thumb:before{background:#b2b2b2}.range.range-positive input::-webkit-slider-thumb:before{background:#4a87ee}.range.range-calm input::-webkit-slider-thumb:before{background:#43cee6}.range.range-balanced input::-webkit-slider-thumb:before{background:#6c3}.range.range-assertive input::-webkit-slider-thumb:before{background:#ef4e3a}.range.range-energized input::-webkit-slider-thumb:before{background:#f0b840}.range.range-royal input::-webkit-slider-thumb:before{background:#8a6de9}.range.range-dark input::-webkit-slider-thumb:before{background:#444}.range .icon{-webkit-box-flex:0;-webkit-flex:0;-moz-box-flex:0;-moz-flex:0;-ms-flex:0;flex:0;display:block;min-width:24px;text-align:center;font-size:24px}.range input{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;margin-right:10px;margin-left:10px}.range-label{-webkit-box-flex:0;-webkit-flex:0 0 auto;-moz-box-flex:0;-moz-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;display:block;white-space:nowrap}.range-label:first-child{padding-left:5px}.range input+.range-label{padding-right:5px;padding-left:0}.item-select{position:relative}.item-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;top:0;right:0;padding:13px 45px 15px 15px;max-width:65%;border:none;background:0 0;color:#333;text-indent:.01px;text-overflow:'';white-space:nowrap;font-size:14px;cursor:pointer;direction:rtl}.item-select select::-ms-expand{display:none}.item-select option{direction:ltr}.item-select:after{position:absolute;top:50%;right:15px;margin-top:-3px;width:0;height:0;border-top:5px solid;border-right:5px solid rgba(0,0,0,0);border-left:5px solid rgba(0,0,0,0);color:#999;content:"";pointer-events:none}select[multiple],select[size]{height:auto}progress{display:block;margin:15px auto;width:100%}.button{border-color:#b2b2b2;background-color:#f8f8f8;color:#444;position:relative;display:inline-block;margin:0;padding:0 12px;min-width:52px;min-height:47px;border-width:1px;border-style:solid;border-radius:2px;vertical-align:top;text-align:center;text-overflow:ellipsis;font-size:16px;line-height:42px;cursor:pointer}.button:hover{color:#444;text-decoration:none}.button.activated,.button.active{border-color:#a2a2a2;background-color:#e5e5e5;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button:after{position:absolute;top:-6px;right:-8px;bottom:-6px;left:-8px;content:' '}.button .icon{vertical-align:top;pointer-events:none}.button .icon:before,.button.icon-left:before,.button.icon-right:before,.button.icon:before{display:inline-block;padding:0 0 1px;vertical-align:inherit;font-size:24px;line-height:41px;pointer-events:none}.button.icon-left:before{float:left;padding-right:.2em;padding-left:0}.button.icon-right:before{float:right;padding-right:0;padding-left:.2em}.button.button-block,.button.button-full{margin-top:10px;margin-bottom:10px}.button.button-light{border-color:#ddd;background-color:#fff;color:#444}.button.button-light:hover{color:#444;text-decoration:none}.button.button-light.activated,.button.button-light.active{border-color:#ccc;background-color:#fafafa;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-light.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#ddd}.button.button-light.button-icon{border-color:transparent;background:0 0}.button.button-light.button-outline{border-color:#ddd;background:0 0;color:#ddd}.button.button-light.button-outline.activated,.button.button-light.button-outline.active{background-color:#ddd;box-shadow:none;color:#fff}.button.button-stable{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.button.button-stable:hover{color:#444;text-decoration:none}.button.button-stable.activated,.button.button-stable.active{border-color:#a2a2a2;background-color:#e5e5e5;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-stable.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#b2b2b2}.button.button-stable.button-icon{border-color:transparent;background:0 0}.button.button-stable.button-outline{border-color:#b2b2b2;background:0 0;color:#b2b2b2}.button.button-stable.button-outline.activated,.button.button-stable.button-outline.active{background-color:#b2b2b2;box-shadow:none;color:#fff}.button.button-positive{border-color:#145fd7;background-color:#4a87ee;color:#fff}.button.button-positive:hover{color:#fff;text-decoration:none}.button.button-positive.activated,.button.button-positive.active{border-color:#145fd7;background-color:#145fd7;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-positive.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#4a87ee}.button.button-positive.button-icon{border-color:transparent;background:0 0}.button.button-positive.button-outline{border-color:#4a87ee;background:0 0;color:#4a87ee}.button.button-positive.button-outline.activated,.button.button-positive.button-outline.active{background-color:#4a87ee;box-shadow:none;color:#fff}.button.button-calm{border-color:#1aacc3;background-color:#43cee6;color:#fff}.button.button-calm:hover{color:#fff;text-decoration:none}.button.button-calm.activated,.button.button-calm.active{border-color:#1aacc3;background-color:#1aacc3;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-calm.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#43cee6}.button.button-calm.button-icon{border-color:transparent;background:0 0}.button.button-calm.button-outline{border-color:#43cee6;background:0 0;color:#43cee6}.button.button-calm.button-outline.activated,.button.button-calm.button-outline.active{background-color:#43cee6;box-shadow:none;color:#fff}.button.button-assertive{border-color:#cc2311;background-color:#ef4e3a;color:#fff}.button.button-assertive:hover{color:#fff;text-decoration:none}.button.button-assertive.activated,.button.button-assertive.active{border-color:#cc2311;background-color:#cc2311;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-assertive.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#ef4e3a}.button.button-assertive.button-icon{border-color:transparent;background:0 0}.button.button-assertive.button-outline{border-color:#ef4e3a;background:0 0;color:#ef4e3a}.button.button-assertive.button-outline.activated,.button.button-assertive.button-outline.active{background-color:#ef4e3a;box-shadow:none;color:#fff}.button.button-balanced{border-color:#498f24;background-color:#6c3;color:#fff}.button.button-balanced:hover{color:#fff;text-decoration:none}.button.button-balanced.activated,.button.button-balanced.active{border-color:#498f24;background-color:#498f24;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-balanced.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#6c3}.button.button-balanced.button-icon{border-color:transparent;background:0 0}.button.button-balanced.button-outline{border-color:#6c3;background:0 0;color:#6c3}.button.button-balanced.button-outline.activated,.button.button-balanced.button-outline.active{background-color:#6c3;box-shadow:none;color:#fff}.button.button-energized{border-color:#d39211;background-color:#f0b840;color:#fff}.button.button-energized:hover{color:#fff;text-decoration:none}.button.button-energized.activated,.button.button-energized.active{border-color:#d39211;background-color:#d39211;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-energized.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#f0b840}.button.button-energized.button-icon{border-color:transparent;background:0 0}.button.button-energized.button-outline{border-color:#f0b840;background:0 0;color:#f0b840}.button.button-energized.button-outline.activated,.button.button-energized.button-outline.active{background-color:#f0b840;box-shadow:none;color:#fff}.button.button-royal{border-color:#552bdf;background-color:#8a6de9;color:#fff}.button.button-royal:hover{color:#fff;text-decoration:none}.button.button-royal.activated,.button.button-royal.active{border-color:#552bdf;background-color:#552bdf;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-royal.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#8a6de9}.button.button-royal.button-icon{border-color:transparent;background:0 0}.button.button-royal.button-outline{border-color:#8a6de9;background:0 0;color:#8a6de9}.button.button-royal.button-outline.activated,.button.button-royal.button-outline.active{background-color:#8a6de9;box-shadow:none;color:#fff}.button.button-dark{border-color:#111;background-color:#444;color:#fff}.button.button-dark:hover{color:#fff;text-decoration:none}.button.button-dark.activated,.button.button-dark.active{border-color:#000;background-color:#262626;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-dark.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#444}.button.button-dark.button-icon{border-color:transparent;background:0 0}.button.button-dark.button-outline{border-color:#444;background:0 0;color:#444}.button.button-dark.button-outline.activated,.button.button-dark.button-outline.active{background-color:#444;box-shadow:none;color:#fff}.button-small{padding:2px 4px 1px;min-width:28px;min-height:30px;font-size:12px;line-height:26px}.button-small .icon:before,.button-small.icon-left:before,.button-small.icon-right:before,.button-small.icon:before{font-size:16px;line-height:19px;margin-top:3px}.button-large{padding:0 16px;min-width:68px;min-height:59px;font-size:20px;line-height:53px}.button-large .icon:before,.button-large.icon-left:before,.button-large.icon-right:before,.button-large.icon:before{padding-bottom:2px;font-size:32px;line-height:51px}.button-icon{-webkit-transition:opacity .1s;-moz-transition:opacity .1s;transition:opacity .1s;padding:0 6px;min-width:initial;border-color:transparent;background:0 0}.button-icon.button.activated,.button-icon.button.active{border-color:transparent;background:0 0;box-shadow:none;opacity:.3}.button-icon .icon:before,.button-icon.icon:before{font-size:32px}.button-clear{-webkit-transition:opacity .1s;-moz-transition:opacity .1s;transition:opacity .1s;padding:0 6px;max-height:42px;border-color:transparent;background:0 0;box-shadow:none}.button-clear.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#b2b2b2}.button-clear.button-icon{border-color:transparent;background:0 0}.button-clear.activated,.button-clear.active{opacity:.3}.button-outline{-webkit-transition:opacity .1s;-moz-transition:opacity .1s;transition:opacity .1s;background:0 0;box-shadow:none}.button-outline.button-outline{border-color:#b2b2b2;background:0 0;color:#b2b2b2}.button-outline.button-outline.activated,.button-outline.button-outline.active{background-color:#b2b2b2;box-shadow:none;color:#fff}.padding>.button.button-block:first-child{margin-top:0}.button-block{display:block;clear:both}.button-block:after{clear:both}.button-full,.button-full>.button{display:block;margin-right:0;margin-left:0;border-right-width:0;border-left-width:0;border-radius:0}.button-full>button.button,button.button-block,button.button-full,input.button.button-block{width:100%}a.button{text-decoration:none}.button.disabled,.button[disabled]{opacity:.4;cursor:default!important;pointer-events:none}.button-bar{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;width:100%}.button-bar.button-bar-inline{display:block;width:auto;*zoom:1}.button-bar.button-bar-inline:after,.button-bar.button-bar-inline:before{display:table;content:"";line-height:0}.button-bar.button-bar-inline:after{clear:both}.button-bar.button-bar-inline>.button{width:auto;display:inline-block;float:left}.button-bar>.button{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;overflow:hidden;padding:0 16px;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.button-bar>.button .icon:before,.button-bar>.button:before{line-height:44px}.button-bar>.button:first-child{border-radius:2px 0 0 2px}.button-bar>.button:last-child{border-right-width:1px;border-radius:0 2px 2px 0}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0)}100%{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideInUp{0%{-moz-transform:translate3d(0,100%,0)}100%{-moz-transform:translate3d(0,0,0)}}@keyframes slideInUp{0%{transform:translate3d(0,100%,0)}100%{transform:translate3d(0,0,0)}}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translate3d(0,0,0)}100%{-webkit-transform:translate3d(0,100%,0)}}@-moz-keyframes slideOutUp{0%{-moz-transform:translate3d(0,0,0)}100%{-moz-transform:translate3d(0,100%,0)}}@keyframes slideOutUp{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(0,100%,0)}}@-webkit-keyframes slideInFromLeft{from{-webkit-transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideInFromLeft{from{-moz-transform:translateX(-100%)}to{-moz-transform:translateX(0)}}@keyframes slideInFromLeft{from{transform:translateX(-100%)}to{transform:translateX(0)}}@-webkit-keyframes slideInFromRight{from{-webkit-transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideInFromRight{from{-moz-transform:translateX(100%)}to{-moz-transform:translateX(0)}}@keyframes slideInFromRight{from{transform:translateX(100%)}to{transform:translateX(0)}}@-webkit-keyframes slideOutToLeft{from{-webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-100%,0,0)}}@-moz-keyframes slideOutToLeft{from{-moz-transform:translateX(0)}to{-moz-transform:translateX(-100%)}}@keyframes slideOutToLeft{from{transform:translateX(0)}to{transform:translateX(-100%)}}@-webkit-keyframes slideOutToRight{from{-webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(100%,0,0)}}@-moz-keyframes slideOutToRight{from{-moz-transform:translateX(0)}to{-moz-transform:translateX(100%)}}@keyframes slideOutToRight{from{transform:translateX(0)}to{transform:translateX(100%)}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@-moz-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@-moz-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInHalf{from{background-color:rgba(0,0,0,0)}to{background-color:rgba(0,0,0,.5)}}@-moz-keyframes fadeInHalf{from{background-color:rgba(0,0,0,0)}to{background-color:rgba(0,0,0,.5)}}@keyframes fadeInHalf{from{background-color:rgba(0,0,0,0)}to{background-color:rgba(0,0,0,.5)}}@-webkit-keyframes fadeOutHalf{from{background-color:rgba(0,0,0,.5)}to{background-color:rgba(0,0,0,0)}}@-moz-keyframes fadeOutHalf{from{background-color:rgba(0,0,0,.5)}to{background-color:rgba(0,0,0,0)}}@keyframes fadeOutHalf{from{background-color:rgba(0,0,0,.5)}to{background-color:rgba(0,0,0,0)}}@-webkit-keyframes scaleOut{from{-webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(0.8);opacity:0}}@-moz-keyframes scaleOut{from{-moz-transform:scale(1);opacity:1}to{-moz-transform:scale(0.8);opacity:0}}@keyframes scaleOut{from{transform:scale(1);opacity:1}to{transform:scale(0.8);opacity:0}}@-webkit-keyframes scaleIn{from{-webkit-transform:scale(0)}to{-webkit-transform:scale(1)}}@-moz-keyframes scaleIn{from{-moz-transform:scale(0)}to{-moz-transform:scale(1)}}@keyframes scaleIn{from{transform:scale(0)}to{transform:scale(1)}}@-webkit-keyframes superScaleIn{from{-webkit-transform:scale(1.2);opacity:0}to{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes superScaleIn{from{-moz-transform:scale(1.2);opacity:0}to{-moz-transform:scale(1);opacity:1}}@keyframes superScaleIn{from{transform:scale(1.2);opacity:0}to{transform:scale(1);opacity:1}}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@keyframes spin{100%{transform:rotate(360deg)}}.no-animation.ng-enter,.no-animation.ng-leave,.no-animation>.ng-enter,.no-animation>.ng-leave{-webkit-transition:none;-moz-transition:none;transition:none}.noop-animation.ng-enter,.noop-animation.ng-leave,.noop-animation>.ng-enter,.noop-animation>.ng-leave{-webkit-transition:all cubic-bezier(0.25,.46,.45,.94) 250ms;-moz-transition:all cubic-bezier(0.25,.46,.45,.94) 250ms;transition:all cubic-bezier(0.25,.46,.45,.94) 250ms;position:absolute;top:0;right:0;bottom:0;left:0}.ng-animate .pane{position:absolute}.slide-left-right.ng-enter,.slide-left-right.ng-leave,.slide-left-right>.ng-enter,.slide-left-right>.ng-leave,.slide-right-left.reverse.ng-enter,.slide-right-left.reverse.ng-leave,.slide-right-left.reverse>.ng-enter,.slide-right-left.reverse>.ng-leave{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;position:absolute;top:0;right:0;bottom:0;left:0}.slide-left-right.ng-enter,.slide-left-right>.ng-enter,.slide-right-left.reverse.ng-enter,.slide-right-left.reverse>.ng-enter{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.slide-left-right.ng-enter.ng-enter-active,.slide-left-right>.ng-enter.ng-enter-active,.slide-right-left.reverse.ng-enter.ng-enter-active,.slide-right-left.reverse>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-left-right.ng-leave.ng-leave-active,.slide-left-right>.ng-leave.ng-leave-active,.slide-right-left.reverse.ng-leave.ng-leave-active,.slide-right-left.reverse>.ng-leave.ng-leave-active{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.slide-left-right.reverse.ng-enter,.slide-left-right.reverse.ng-leave,.slide-left-right.reverse>.ng-enter,.slide-left-right.reverse>.ng-leave,.slide-right-left.ng-enter,.slide-right-left.ng-leave,.slide-right-left>.ng-enter,.slide-right-left>.ng-leave{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;position:absolute;top:0;right:0;bottom:0;left:0}.slide-left-right.reverse.ng-enter,.slide-left-right.reverse>.ng-enter,.slide-right-left.ng-enter,.slide-right-left>.ng-enter{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.slide-left-right.reverse.ng-enter.ng-enter-active,.slide-left-right.reverse>.ng-enter.ng-enter-active,.slide-right-left.ng-enter.ng-enter-active,.slide-right-left>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-left-right.reverse.ng-leave.ng-leave-active,.slide-left-right.reverse>.ng-leave.ng-leave-active,.slide-right-left.ng-leave.ng-leave-active,.slide-right-left>.ng-leave.ng-leave-active{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.slide-left-right-ios7.ng-enter,.slide-left-right-ios7.ng-leave,.slide-left-right-ios7>.ng-enter,.slide-left-right-ios7>.ng-leave,.slide-right-left-ios7.reverse.ng-enter,.slide-right-left-ios7.reverse.ng-leave,.slide-right-left-ios7.reverse>.ng-enter,.slide-right-left-ios7.reverse>.ng-leave{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;position:absolute;top:0;right:-1px;bottom:0;left:-1px;width:auto}.slide-left-right-ios7.ng-enter:not(.bar),.slide-left-right-ios7.ng-leave:not(.bar),.slide-left-right-ios7>.ng-enter:not(.bar),.slide-left-right-ios7>.ng-leave:not(.bar),.slide-right-left-ios7.reverse.ng-enter:not(.bar),.slide-right-left-ios7.reverse.ng-leave:not(.bar),.slide-right-left-ios7.reverse>.ng-enter:not(.bar),.slide-right-left-ios7.reverse>.ng-leave:not(.bar){border-right:1px solid #ddd;border-left:1px solid #ddd}.slide-left-right-ios7.ng-enter,.slide-left-right-ios7>.ng-enter,.slide-right-left-ios7.reverse.ng-enter,.slide-right-left-ios7.reverse>.ng-enter{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.slide-left-right-ios7.ng-enter.ng-enter-active,.slide-left-right-ios7>.ng-enter.ng-enter-active,.slide-right-left-ios7.reverse.ng-enter.ng-enter-active,.slide-right-left-ios7.reverse>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-left-right-ios7.ng-leave.ng-leave-active,.slide-left-right-ios7>.ng-leave.ng-leave-active,.slide-right-left-ios7.reverse.ng-leave.ng-leave-active,.slide-right-left-ios7.reverse>.ng-leave.ng-leave-active{-webkit-transform:translate3d(-15%,0,0);-moz-transform:translate3d(-15%,0,0);transform:translate3d(-15%,0,0)}.slide-left-right-ios7.reverse.ng-enter,.slide-left-right-ios7.reverse.ng-leave,.slide-left-right-ios7.reverse>.ng-enter,.slide-left-right-ios7.reverse>.ng-leave,.slide-right-left-ios7.ng-enter,.slide-right-left-ios7.ng-leave,.slide-right-left-ios7>.ng-enter,.slide-right-left-ios7>.ng-leave{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;position:absolute;top:0;right:-1px;bottom:0;left:-1px;width:auto;border-right:1px solid #ddd;border-left:1px solid #ddd}.slide-left-right-ios7.reverse.ng-enter,.slide-left-right-ios7.reverse>.ng-enter,.slide-right-left-ios7.ng-enter,.slide-right-left-ios7>.ng-enter{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.slide-left-right-ios7.reverse.ng-enter.ng-enter-active,.slide-left-right-ios7.reverse>.ng-enter.ng-enter-active,.slide-right-left-ios7.ng-enter.ng-enter-active,.slide-right-left-ios7>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-left-right-ios7.reverse.ng-leave.ng-leave-active,.slide-left-right-ios7.reverse>.ng-leave.ng-leave-active,.slide-right-left-ios7.ng-leave.ng-leave-active,.slide-right-left-ios7>.ng-leave.ng-leave-active{-webkit-transform:translate3d(15%,0,0);-moz-transform:translate3d(15%,0,0);transform:translate3d(15%,0,0)}.slide-in-left{-webkit-transform:translate3d(0%,0,0);-moz-transform:translate3d(0%,0,0);transform:translate3d(0%,0,0)}.slide-in-left.ng-enter,.slide-in-left>.ng-enter{-webkit-animation-name:slideInFromLeft;-moz-animation-name:slideInFromLeft;animation-name:slideInFromLeft;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-left.ng-leave,.slide-in-left>.ng-leave{-webkit-animation-name:slideOutToLeft;-moz-animation-name:slideOutToLeft;animation-name:slideOutToLeft;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-left-add{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-left-add-active{-webkit-animation-name:slideInFromLeft;-moz-animation-name:slideInFromLeft;animation-name:slideInFromLeft}.slide-out-left{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.slide-out-left.ng-enter,.slide-out-left.ng-leave,.slide-out-left>.ng-enter,.slide-out-left>.ng-leave{-webkit-animation-name:slideOutToLeft;-moz-animation-name:slideOutToLeft;animation-name:slideOutToLeft;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-out-left-add{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-out-left-add-active{-webkit-animation-name:slideOutToLeft;-moz-animation-name:slideOutToLeft;animation-name:slideOutToLeft}.slide-in-right{-webkit-transform:translate3d(0%,0,0);-moz-transform:translate3d(0%,0,0);transform:translate3d(0%,0,0)}.slide-in-right.ng-enter,.slide-in-right.ng-leave,.slide-in-right>.ng-enter,.slide-in-right>.ng-leave{-webkit-animation-name:slideInFromRight;-moz-animation-name:slideInFromRight;animation-name:slideInFromRight;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-right-add{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-right-add-active{-webkit-animation-name:slideInFromRight;-moz-animation-name:slideInFromRight;animation-name:slideInFromRight}.slide-out-right{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.slide-out-right.ng-enter,.slide-out-right.ng-leave,.slide-out-right>.ng-enter,.slide-out-right>.ng-leave{-webkit-animation-name:slideOutToRight;-moz-animation-name:slideOutToRight;animation-name:slideOutToRight;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-out-right-add{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-out-right-add-active{-webkit-animation-name:slideOutToRight;-moz-animation-name:slideOutToRight;animation-name:slideOutToRight}.slide-in-up{-webkit-transform:translate3d(0,100%,0);-moz-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.slide-in-up.ng-enter,.slide-in-up>.ng-enter{-webkit-transition:all cubic-bezier(0.1,.7,.1,1) 400ms;-moz-transition:all cubic-bezier(0.1,.7,.1,1) 400ms;transition:all cubic-bezier(0.1,.7,.1,1) 400ms}.slide-in-up.ng-enter-active,.slide-in-up>.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-in-up.ng-leave,.slide-in-up>.ng-leave{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms}.fade-in{-webkit-animation:fadeOut .3s;-moz-animation:fadeOut .3s;animation:fadeOut .3s}.fade-in.active{-webkit-animation:fadeIn .3s;-moz-animation:fadeIn .3s;animation:fadeIn .3s}.fade-in-not-out .ng-enter,.fade-in-not-out.ng-enter{-webkit-animation:fadeIn .3s;-moz-animation:fadeIn .3s;animation:fadeIn .3s;position:relative}.fade-in-not-out .ng-leave,.fade-in-not-out.ng-leave{display:none}.nav-title-slide-ios7:not(.no-animation) .button.back-button{-webkit-transition:all 250ms;-moz-transition:all 250ms;transition:all 250ms;-webkit-transition-timing-function:ease-in-out;-moz-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transform:translate3d(0%,0,0);-moz-transform:translate3d(0%,0,0);transform:translate3d(0%,0,0);opacity:1}.nav-title-slide-ios7:not(.no-animation) .button.back-button.activated,.nav-title-slide-ios7:not(.no-animation) .button.back-button.active{opacity:.5}.nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide{opacity:0;-webkit-transform:translate3d(30%,0,0);-moz-transform:translate3d(30%,0,0);transform:translate3d(30%,0,0)}.nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide-add,.nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide-remove{display:block!important}.nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide-add{position:absolute}.nav-title-slide-ios7.ng-enter,.nav-title-slide-ios7.ng-leave,.nav-title-slide-ios7>.ng-enter,.nav-title-slide-ios7>.ng-leave{-webkit-transition:all 250ms;-moz-transition:all 250ms;transition:all 250ms;-webkit-transition-timing-function:ease-in-out;-moz-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;opacity:1}.nav-title-slide-ios7.ng-enter,.nav-title-slide-ios7>.ng-enter{-webkit-transform:translate3d(30%,0,0);-moz-transform:translate3d(30%,0,0);transform:translate3d(30%,0,0);opacity:0}.nav-title-slide-ios7.ng-enter.ng-enter-active,.nav-title-slide-ios7>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.nav-title-slide-ios7.ng-leave.ng-leave-active,.nav-title-slide-ios7>.ng-leave.ng-leave-active{-webkit-transform:translate3d(-30%,0,0);-moz-transform:translate3d(-30%,0,0);transform:translate3d(-30%,0,0);opacity:0}.nav-title-slide-ios7.reverse.ng-enter,.nav-title-slide-ios7.reverse.ng-leave,.nav-title-slide-ios7.reverse>.ng-enter,.nav-title-slide-ios7.reverse>.ng-leave{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;opacity:1}.nav-title-slide-ios7.reverse.ng-enter,.nav-title-slide-ios7.reverse>.ng-enter{-webkit-transform:translate3d(-30%,0,0);-moz-transform:translate3d(-30%,0,0);transform:translate3d(-30%,0,0);opacity:0}.nav-title-slide-ios7.reverse.ng-enter.ng-enter-active,.nav-title-slide-ios7.reverse>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.nav-title-slide-ios7.reverse.ng-leave.ng-leave-active,.nav-title-slide-ios7.reverse>.ng-leave.ng-leave-active{-webkit-transform:translate3d(30%,0,0);-moz-transform:translate3d(30%,0,0);transform:translate3d(30%,0,0);opacity:0}.row{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;padding:5px;width:100%}.row+.row{margin-top:-5px;padding-top:0}.col{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;padding:5px;width:100%}.row-top{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;-moz-align-items:flex-start;align-items:flex-start}.row-bottom{-webkit-box-align:end;-ms-flex-align:end;-webkit-align-items:flex-end;-moz-align-items:flex-end;align-items:flex-end}.row-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center}.row-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;align-items:stretch}.row-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;-webkit-align-items:baseline;-moz-align-items:baseline;align-items:baseline}.col-top{-webkit-align-self:flex-start;-moz-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.col-bottom{-webkit-align-self:flex-end;-moz-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.col-center{-webkit-align-self:center;-moz-align-self:center;-ms-flex-item-align:center;align-self:center}.col-offset-10{margin-left:10%}.col-offset-20{margin-left:20%}.col-offset-25{margin-left:25%}.col-offset-33,.col-offset-34{margin-left:33.3333%}.col-offset-50{margin-left:50%}.col-offset-66,.col-offset-67{margin-left:66.6666%}.col-offset-75{margin-left:75%}.col-offset-80{margin-left:80%}.col-offset-90{margin-left:90%}.col-10{-webkit-box-flex:0;-webkit-flex:0 0 10%;-moz-box-flex:0;-moz-flex:0 0 10%;-ms-flex:0 0 10%;flex:0 0 10%;max-width:10%}.col-20{-webkit-box-flex:0;-webkit-flex:0 0 20%;-moz-box-flex:0;-moz-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.col-25{-webkit-box-flex:0;-webkit-flex:0 0 25%;-moz-box-flex:0;-moz-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-33,.col-34{-webkit-box-flex:0;-webkit-flex:0 0 33.3333%;-moz-box-flex:0;-moz-flex:0 0 33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%;max-width:33.3333%}.col-50{-webkit-box-flex:0;-webkit-flex:0 0 50%;-moz-box-flex:0;-moz-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-66,.col-67{-webkit-box-flex:0;-webkit-flex:0 0 66.6666%;-moz-box-flex:0;-moz-flex:0 0 66.6666%;-ms-flex:0 0 66.6666%;flex:0 0 66.6666%;max-width:66.6666%}.col-75{-webkit-box-flex:0;-webkit-flex:0 0 75%;-moz-box-flex:0;-moz-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-80{-webkit-box-flex:0;-webkit-flex:0 0 80%;-moz-box-flex:0;-moz-flex:0 0 80%;-ms-flex:0 0 80%;flex:0 0 80%;max-width:80%}.col-90{-webkit-box-flex:0;-webkit-flex:0 0 90%;-moz-box-flex:0;-moz-flex:0 0 90%;-ms-flex:0 0 90%;flex:0 0 90%;max-width:90%}@media (max-width:567px){.responsive-sm{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-sm .col,.responsive-sm .col-10,.responsive-sm .col-20,.responsive-sm .col-25,.responsive-sm .col-33,.responsive-sm .col-34,.responsive-sm .col-50,.responsive-sm .col-66,.responsive-sm .col-67,.responsive-sm .col-75,.responsive-sm .col-80,.responsive-sm .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}@media (max-width:767px){.responsive-md{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-md .col,.responsive-md .col-10,.responsive-md .col-20,.responsive-md .col-25,.responsive-md .col-33,.responsive-md .col-34,.responsive-md .col-50,.responsive-md .col-66,.responsive-md .col-67,.responsive-md .col-75,.responsive-md .col-80,.responsive-md .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}@media (max-width:1023px){.responsive-lg{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-lg .col,.responsive-lg .col-10,.responsive-lg .col-20,.responsive-lg .col-25,.responsive-lg .col-33,.responsive-lg .col-34,.responsive-lg .col-50,.responsive-lg .col-66,.responsive-lg .col-67,.responsive-lg .col-75,.responsive-lg .col-80,.responsive-lg .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}.hide{display:none}.opacity-hide{opacity:0}.grade-b .opacity-hide,.grade-c .opacity-hide{opacity:1;display:none}.show{display:block}.opacity-show{opacity:1}.invisible{visibility:hidden}.keyboard-open .hide-on-keyboard-open{display:none}.keyboard-open .bar-footer.hide-on-keyboard-open+.pane .has-footer,.keyboard-open .tabs.hide-on-keyboard-open+.pane .has-tabs{bottom:0}.inline{display:inline-block}.disable-pointer-events{pointer-events:none}.enable-pointer-events{pointer-events:auto}.disable-user-behavior{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-user-drag:none;-ms-touch-action:none;-ms-content-zooming:none}.no-resize{resize:none}.block{display:block;clear:both}.block:after{display:block;visibility:hidden;clear:both;height:0;content:"."}.full-image{width:100%}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:"";line-height:0}.clearfix:after{clear:both}.padding{padding:10px}.padding-top,.padding-vertical{padding-top:10px}.padding-horizontal,.padding-right{padding-right:10px}.padding-bottom,.padding-vertical{padding-bottom:10px}.padding-horizontal,.padding-left{padding-left:10px}.rounded{border-radius:4px}.light,a.light{color:#fff}.light-bg{background-color:#fff}.light-border{border-color:#ddd}.stable,a.stable{color:#f8f8f8}.stable-bg{background-color:#f8f8f8}.stable-border{border-color:#b2b2b2}.positive,a.positive{color:#4a87ee}.positive-bg{background-color:#4a87ee}.positive-border{border-color:#145fd7}.calm,a.calm{color:#43cee6}.calm-bg{background-color:#43cee6}.calm-border{border-color:#1aacc3}.assertive,a.assertive{color:#ef4e3a}.assertive-bg{background-color:#ef4e3a}.assertive-border{border-color:#cc2311}.balanced,a.balanced{color:#6c3}.balanced-bg{background-color:#6c3}.balanced-border{border-color:#498f24}.energized,a.energized{color:#f0b840}.energized-bg{background-color:#f0b840}.energized-border{border-color:#d39211}.royal,a.royal{color:#8a6de9}.royal-bg{background-color:#8a6de9}.royal-border{border-color:#552bdf}.dark,a.dark{color:#444}.dark-bg{background-color:#444}.dark-border{border-color:#111}.platform-ios7.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader){height:64px}.platform-ios7.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader).item-input-inset .item-input-wrapper{margin-top:19px!important}.platform-ios7.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader)>*{margin-top:20px}.platform-ios7.platform-cordova:not(.fullscreen) .bar-subheader,.platform-ios7.platform-cordova:not(.fullscreen) .has-header,.platform-ios7.platform-cordova:not(.fullscreen) .tabs-top>.tabs,.platform-ios7.platform-cordova:not(.fullscreen) .tabs.tabs-top{top:64px}.platform-ios7.platform-cordova:not(.fullscreen) .has-subheader{top:108px}.platform-ios7.platform-cordova:not(.fullscreen) .has-tabs-top{top:113px}.platform-ios7.platform-cordova:not(.fullscreen) .has-header.has-subheader.has-tabs-top{top:157px}.platform-ios7.platform-cordova.status-bar-hide{margin-bottom:20px}@media (orientation:landscape){.platform-ios7.platform-browser.platform-ipad{position:fixed}}.platform-c:not(.enable-transitions) *{-webkit-transition:none!important;transition:none!important} \ No newline at end of file +*/@font-face{font-family:Ionicons;src:url(../fonts/ionicons.eot?v=1.4.1);src:url(../fonts/ionicons.eot?v=1.4.1#iefix) format("embedded-opentype"),url(../fonts/ionicons.ttf?v=1.4.1) format("truetype"),url(../fonts/ionicons.woff?v=1.4.1) format("woff"),url(../fonts/ionicons.svg?v=1.4.1#Ionicons) format("svg");font-weight:400;font-style:normal}.ion,.ion-alert-circled:before,.ion-alert:before,.ion-android-add-contact:before,.ion-android-add:before,.ion-android-alarm:before,.ion-android-archive:before,.ion-android-arrow-back:before,.ion-android-arrow-down-left:before,.ion-android-arrow-down-right:before,.ion-android-arrow-up-left:before,.ion-android-arrow-up-right:before,.ion-android-battery:before,.ion-android-book:before,.ion-android-calendar:before,.ion-android-call:before,.ion-android-camera:before,.ion-android-chat:before,.ion-android-checkmark:before,.ion-android-clock:before,.ion-android-close:before,.ion-android-contact:before,.ion-android-contacts:before,.ion-android-data:before,.ion-android-developer:before,.ion-android-display:before,.ion-android-download:before,.ion-android-dropdown:before,.ion-android-earth:before,.ion-android-folder:before,.ion-android-forums:before,.ion-android-friends:before,.ion-android-hand:before,.ion-android-image:before,.ion-android-inbox:before,.ion-android-information:before,.ion-android-keypad:before,.ion-android-lightbulb:before,.ion-android-locate:before,.ion-android-location:before,.ion-android-mail:before,.ion-android-microphone:before,.ion-android-mixer:before,.ion-android-more:before,.ion-android-note:before,.ion-android-playstore:before,.ion-android-printer:before,.ion-android-promotion:before,.ion-android-reminder:before,.ion-android-remove:before,.ion-android-search:before,.ion-android-send:before,.ion-android-settings:before,.ion-android-share:before,.ion-android-social-user:before,.ion-android-social:before,.ion-android-sort:before,.ion-android-star:before,.ion-android-stopwatch:before,.ion-android-storage:before,.ion-android-system-back:before,.ion-android-system-home:before,.ion-android-system-windows:before,.ion-android-timer:before,.ion-android-trash:before,.ion-android-volume:before,.ion-android-wifi:before,.ion-archive:before,.ion-arrow-down-a:before,.ion-arrow-down-b:before,.ion-arrow-down-c:before,.ion-arrow-expand:before,.ion-arrow-graph-down-left:before,.ion-arrow-graph-down-right:before,.ion-arrow-graph-up-left:before,.ion-arrow-graph-up-right:before,.ion-arrow-left-a:before,.ion-arrow-left-b:before,.ion-arrow-left-c:before,.ion-arrow-move:before,.ion-arrow-resize:before,.ion-arrow-return-left:before,.ion-arrow-return-right:before,.ion-arrow-right-a:before,.ion-arrow-right-b:before,.ion-arrow-right-c:before,.ion-arrow-shrink:before,.ion-arrow-swap:before,.ion-arrow-up-a:before,.ion-arrow-up-b:before,.ion-arrow-up-c:before,.ion-at:before,.ion-bag:before,.ion-battery-charging:before,.ion-battery-empty:before,.ion-battery-full:before,.ion-battery-half:before,.ion-battery-low:before,.ion-beaker:before,.ion-beer:before,.ion-bluetooth:before,.ion-bookmark:before,.ion-briefcase:before,.ion-bug:before,.ion-calculator:before,.ion-calendar:before,.ion-camera:before,.ion-card:before,.ion-chatbox-working:before,.ion-chatbox:before,.ion-chatboxes:before,.ion-chatbubble-working:before,.ion-chatbubble:before,.ion-chatbubbles:before,.ion-checkmark-circled:before,.ion-checkmark-round:before,.ion-checkmark:before,.ion-chevron-down:before,.ion-chevron-left:before,.ion-chevron-right:before,.ion-chevron-up:before,.ion-clipboard:before,.ion-clock:before,.ion-close-circled:before,.ion-close-round:before,.ion-close:before,.ion-cloud:before,.ion-code-download:before,.ion-code-working:before,.ion-code:before,.ion-coffee:before,.ion-compass:before,.ion-compose:before,.ion-connection-bars:before,.ion-contrast:before,.ion-disc:before,.ion-document-text:before,.ion-document:before,.ion-drag:before,.ion-earth:before,.ion-edit:before,.ion-egg:before,.ion-eject:before,.ion-email:before,.ion-eye-disabled:before,.ion-eye:before,.ion-female:before,.ion-filing:before,.ion-film-marker:before,.ion-flag:before,.ion-flash-off:before,.ion-flash:before,.ion-flask:before,.ion-folder:before,.ion-fork-repo:before,.ion-fork:before,.ion-forward:before,.ion-game-controller-a:before,.ion-game-controller-b:before,.ion-gear-a:before,.ion-gear-b:before,.ion-grid:before,.ion-hammer:before,.ion-headphone:before,.ion-heart:before,.ion-help-buoy:before,.ion-help-circled:before,.ion-help:before,.ion-home:before,.ion-icecream:before,.ion-icon-social-google-plus-outline:before,.ion-icon-social-google-plus:before,.ion-image:before,.ion-images:before,.ion-information-circled:before,.ion-information:before,.ion-ionic:before,.ion-ios7-alarm-outline:before,.ion-ios7-alarm:before,.ion-ios7-albums-outline:before,.ion-ios7-albums:before,.ion-ios7-arrow-back:before,.ion-ios7-arrow-down:before,.ion-ios7-arrow-forward:before,.ion-ios7-arrow-left:before,.ion-ios7-arrow-right:before,.ion-ios7-arrow-thin-down:before,.ion-ios7-arrow-thin-left:before,.ion-ios7-arrow-thin-right:before,.ion-ios7-arrow-thin-up:before,.ion-ios7-arrow-up:before,.ion-ios7-at-outline:before,.ion-ios7-at:before,.ion-ios7-bell-outline:before,.ion-ios7-bell:before,.ion-ios7-bolt-outline:before,.ion-ios7-bolt:before,.ion-ios7-bookmarks-outline:before,.ion-ios7-bookmarks:before,.ion-ios7-box-outline:before,.ion-ios7-box:before,.ion-ios7-briefcase-outline:before,.ion-ios7-briefcase:before,.ion-ios7-browsers-outline:before,.ion-ios7-browsers:before,.ion-ios7-calculator-outline:before,.ion-ios7-calculator:before,.ion-ios7-calendar-outline:before,.ion-ios7-calendar:before,.ion-ios7-camera-outline:before,.ion-ios7-camera:before,.ion-ios7-cart-outline:before,.ion-ios7-cart:before,.ion-ios7-chatboxes-outline:before,.ion-ios7-chatboxes:before,.ion-ios7-chatbubble-outline:before,.ion-ios7-chatbubble:before,.ion-ios7-checkmark-empty:before,.ion-ios7-checkmark-outline:before,.ion-ios7-checkmark:before,.ion-ios7-circle-filled:before,.ion-ios7-circle-outline:before,.ion-ios7-clock-outline:before,.ion-ios7-clock:before,.ion-ios7-close-empty:before,.ion-ios7-close-outline:before,.ion-ios7-close:before,.ion-ios7-cloud-download-outline:before,.ion-ios7-cloud-download:before,.ion-ios7-cloud-outline:before,.ion-ios7-cloud-upload-outline:before,.ion-ios7-cloud-upload:before,.ion-ios7-cloud:before,.ion-ios7-cloudy-night-outline:before,.ion-ios7-cloudy-night:before,.ion-ios7-cloudy-outline:before,.ion-ios7-cloudy:before,.ion-ios7-cog-outline:before,.ion-ios7-cog:before,.ion-ios7-compose-outline:before,.ion-ios7-compose:before,.ion-ios7-contact-outline:before,.ion-ios7-contact:before,.ion-ios7-copy-outline:before,.ion-ios7-copy:before,.ion-ios7-download-outline:before,.ion-ios7-download:before,.ion-ios7-drag:before,.ion-ios7-email-outline:before,.ion-ios7-email:before,.ion-ios7-eye-outline:before,.ion-ios7-eye:before,.ion-ios7-fastforward-outline:before,.ion-ios7-fastforward:before,.ion-ios7-filing-outline:before,.ion-ios7-filing:before,.ion-ios7-film-outline:before,.ion-ios7-film:before,.ion-ios7-flag-outline:before,.ion-ios7-flag:before,.ion-ios7-folder-outline:before,.ion-ios7-folder:before,.ion-ios7-gear-outline:before,.ion-ios7-gear:before,.ion-ios7-glasses-outline:before,.ion-ios7-glasses:before,.ion-ios7-heart-outline:before,.ion-ios7-heart:before,.ion-ios7-help-empty:before,.ion-ios7-help-outline:before,.ion-ios7-help:before,.ion-ios7-infinite-outline:before,.ion-ios7-infinite:before,.ion-ios7-information-empty:before,.ion-ios7-information-outline:before,.ion-ios7-information:before,.ion-ios7-ionic-outline:before,.ion-ios7-keypad-outline:before,.ion-ios7-keypad:before,.ion-ios7-lightbulb-outline:before,.ion-ios7-lightbulb:before,.ion-ios7-location-outline:before,.ion-ios7-location:before,.ion-ios7-locked-outline:before,.ion-ios7-locked:before,.ion-ios7-medkit-outline:before,.ion-ios7-medkit:before,.ion-ios7-mic-off:before,.ion-ios7-mic-outline:before,.ion-ios7-mic:before,.ion-ios7-minus-empty:before,.ion-ios7-minus-outline:before,.ion-ios7-minus:before,.ion-ios7-monitor-outline:before,.ion-ios7-monitor:before,.ion-ios7-moon-outline:before,.ion-ios7-moon:before,.ion-ios7-more-outline:before,.ion-ios7-more:before,.ion-ios7-musical-note:before,.ion-ios7-musical-notes:before,.ion-ios7-navigate-outline:before,.ion-ios7-navigate:before,.ion-ios7-paperplane-outline:before,.ion-ios7-paperplane:before,.ion-ios7-partlysunny-outline:before,.ion-ios7-partlysunny:before,.ion-ios7-pause-outline:before,.ion-ios7-pause:before,.ion-ios7-people-outline:before,.ion-ios7-people:before,.ion-ios7-person-outline:before,.ion-ios7-person:before,.ion-ios7-personadd-outline:before,.ion-ios7-personadd:before,.ion-ios7-photos-outline:before,.ion-ios7-photos:before,.ion-ios7-pie-outline:before,.ion-ios7-pie:before,.ion-ios7-play-outline:before,.ion-ios7-play:before,.ion-ios7-plus-empty:before,.ion-ios7-plus-outline:before,.ion-ios7-plus:before,.ion-ios7-pricetag-outline:before,.ion-ios7-pricetag:before,.ion-ios7-printer-outline:before,.ion-ios7-printer:before,.ion-ios7-rainy-outline:before,.ion-ios7-rainy:before,.ion-ios7-recording-outline:before,.ion-ios7-recording:before,.ion-ios7-redo-outline:before,.ion-ios7-redo:before,.ion-ios7-refresh-empty:before,.ion-ios7-refresh-outline:before,.ion-ios7-refresh:before,.ion-ios7-reload:before,.ion-ios7-reloading,.ion-ios7-reloading:before,.ion-ios7-rewind-outline:before,.ion-ios7-rewind:before,.ion-ios7-search-strong:before,.ion-ios7-search:before,.ion-ios7-skipbackward-outline:before,.ion-ios7-skipbackward:before,.ion-ios7-skipforward-outline:before,.ion-ios7-skipforward:before,.ion-ios7-snowy:before,.ion-ios7-speedometer-outline:before,.ion-ios7-speedometer:before,.ion-ios7-star-outline:before,.ion-ios7-star:before,.ion-ios7-stopwatch-outline:before,.ion-ios7-stopwatch:before,.ion-ios7-sunny-outline:before,.ion-ios7-sunny:before,.ion-ios7-telephone-outline:before,.ion-ios7-telephone:before,.ion-ios7-thunderstorm-outline:before,.ion-ios7-thunderstorm:before,.ion-ios7-time-outline:before,.ion-ios7-time:before,.ion-ios7-timer-outline:before,.ion-ios7-timer:before,.ion-ios7-trash-outline:before,.ion-ios7-trash:before,.ion-ios7-undo-outline:before,.ion-ios7-undo:before,.ion-ios7-unlocked-outline:before,.ion-ios7-unlocked:before,.ion-ios7-upload-outline:before,.ion-ios7-upload:before,.ion-ios7-videocam-outline:before,.ion-ios7-videocam:before,.ion-ios7-volume-high:before,.ion-ios7-volume-low:before,.ion-ios7-wineglass-outline:before,.ion-ios7-wineglass:before,.ion-ios7-world-outline:before,.ion-ios7-world:before,.ion-ipad:before,.ion-iphone:before,.ion-ipod:before,.ion-jet:before,.ion-key:before,.ion-knife:before,.ion-laptop:before,.ion-leaf:before,.ion-levels:before,.ion-lightbulb:before,.ion-link:before,.ion-load-a:before,.ion-load-b:before,.ion-load-c:before,.ion-load-d:before,.ion-loading-a,.ion-loading-a:before,.ion-loading-b,.ion-loading-b:before,.ion-loading-c,.ion-loading-c:before,.ion-loading-d,.ion-loading-d:before,.ion-location:before,.ion-locked:before,.ion-log-in:before,.ion-log-out:before,.ion-loop:before,.ion-looping,.ion-looping:before,.ion-magnet:before,.ion-male:before,.ion-man:before,.ion-map:before,.ion-medkit:before,.ion-mic-a:before,.ion-mic-b:before,.ion-mic-c:before,.ion-minus-circled:before,.ion-minus-round:before,.ion-minus:before,.ion-model-s:before,.ion-monitor:before,.ion-more:before,.ion-music-note:before,.ion-navicon-round:before,.ion-navicon:before,.ion-navigate:before,.ion-no-smoking:before,.ion-nuclear:before,.ion-paper-airplane:before,.ion-paperclip:before,.ion-pause:before,.ion-person-add:before,.ion-person-stalker:before,.ion-person:before,.ion-pie-graph:before,.ion-pin:before,.ion-pinpoint:before,.ion-pizza:before,.ion-plane:before,.ion-play:before,.ion-playstation:before,.ion-plus-circled:before,.ion-plus-round:before,.ion-plus:before,.ion-pound:before,.ion-power:before,.ion-pricetag:before,.ion-pricetags:before,.ion-printer:before,.ion-radio-waves:before,.ion-record:before,.ion-refresh:before,.ion-refreshing,.ion-refreshing:before,.ion-reply-all:before,.ion-reply:before,.ion-search:before,.ion-settings:before,.ion-share:before,.ion-shuffle:before,.ion-skip-backward:before,.ion-skip-forward:before,.ion-social-android-outline:before,.ion-social-android:before,.ion-social-apple-outline:before,.ion-social-apple:before,.ion-social-bitcoin-outline:before,.ion-social-bitcoin:before,.ion-social-buffer-outline:before,.ion-social-buffer:before,.ion-social-designernews-outline:before,.ion-social-designernews:before,.ion-social-dribbble-outline:before,.ion-social-dribbble:before,.ion-social-dropbox-outline:before,.ion-social-dropbox:before,.ion-social-facebook-outline:before,.ion-social-facebook:before,.ion-social-freebsd-devil:before,.ion-social-github-outline:before,.ion-social-github:before,.ion-social-googleplus-outline:before,.ion-social-googleplus:before,.ion-social-hackernews-outline:before,.ion-social-hackernews:before,.ion-social-linkedin-outline:before,.ion-social-linkedin:before,.ion-social-pinterest-outline:before,.ion-social-pinterest:before,.ion-social-reddit-outline:before,.ion-social-reddit:before,.ion-social-rss-outline:before,.ion-social-rss:before,.ion-social-skype-outline:before,.ion-social-skype:before,.ion-social-tumblr-outline:before,.ion-social-tumblr:before,.ion-social-tux:before,.ion-social-twitter-outline:before,.ion-social-twitter:before,.ion-social-vimeo-outline:before,.ion-social-vimeo:before,.ion-social-windows-outline:before,.ion-social-windows:before,.ion-social-wordpress-outline:before,.ion-social-wordpress:before,.ion-social-yahoo-outline:before,.ion-social-yahoo:before,.ion-social-youtube-outline:before,.ion-social-youtube:before,.ion-speakerphone:before,.ion-speedometer:before,.ion-spoon:before,.ion-star:before,.ion-stats-bars:before,.ion-steam:before,.ion-stop:before,.ion-thermometer:before,.ion-thumbsdown:before,.ion-thumbsup:before,.ion-trash-a:before,.ion-trash-b:before,.ion-umbrella:before,.ion-unlocked:before,.ion-upload:before,.ion-usb:before,.ion-videocamera:before,.ion-volume-high:before,.ion-volume-low:before,.ion-volume-medium:before,.ion-volume-mute:before,.ion-waterdrop:before,.ion-wifi:before,.ion-wineglass:before,.ion-woman:before,.ion-wrench:before,.ion-xbox:before,.ionicons:before{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-ios7-reloading,.ion-loading-a,.ion-loading-b,.ion-loading-c,.ion-loading-d,.ion-looping,.ion-refreshing,.ion-spin{-webkit-animation:spin 1s infinite linear;-moz-animation:spin 1s infinite linear;-o-animation:spin 1s infinite linear;animation:spin 1s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.ion-loading-a{-webkit-animation-timing-function:steps(8,start);-moz-animation-timing-function:steps(8,start);animation-timing-function:steps(8,start)}.ion-alert:before{content:"\f101"}.ion-alert-circled:before{content:"\f100"}.ion-android-add:before{content:"\f2c7"}.ion-android-add-contact:before{content:"\f2c6"}.ion-android-alarm:before{content:"\f2c8"}.ion-android-archive:before{content:"\f2c9"}.ion-android-arrow-back:before{content:"\f2ca"}.ion-android-arrow-down-left:before{content:"\f2cb"}.ion-android-arrow-down-right:before{content:"\f2cc"}.ion-android-arrow-up-left:before{content:"\f2cd"}.ion-android-arrow-up-right:before{content:"\f2ce"}.ion-android-battery:before{content:"\f2cf"}.ion-android-book:before{content:"\f2d0"}.ion-android-calendar:before{content:"\f2d1"}.ion-android-call:before{content:"\f2d2"}.ion-android-camera:before{content:"\f2d3"}.ion-android-chat:before{content:"\f2d4"}.ion-android-checkmark:before{content:"\f2d5"}.ion-android-clock:before{content:"\f2d6"}.ion-android-close:before{content:"\f2d7"}.ion-android-contact:before{content:"\f2d8"}.ion-android-contacts:before{content:"\f2d9"}.ion-android-data:before{content:"\f2da"}.ion-android-developer:before{content:"\f2db"}.ion-android-display:before{content:"\f2dc"}.ion-android-download:before{content:"\f2dd"}.ion-android-dropdown:before{content:"\f2de"}.ion-android-earth:before{content:"\f2df"}.ion-android-folder:before{content:"\f2e0"}.ion-android-forums:before{content:"\f2e1"}.ion-android-friends:before{content:"\f2e2"}.ion-android-hand:before{content:"\f2e3"}.ion-android-image:before{content:"\f2e4"}.ion-android-inbox:before{content:"\f2e5"}.ion-android-information:before{content:"\f2e6"}.ion-android-keypad:before{content:"\f2e7"}.ion-android-lightbulb:before{content:"\f2e8"}.ion-android-locate:before{content:"\f2e9"}.ion-android-location:before{content:"\f2ea"}.ion-android-mail:before{content:"\f2eb"}.ion-android-microphone:before{content:"\f2ec"}.ion-android-mixer:before{content:"\f2ed"}.ion-android-more:before{content:"\f2ee"}.ion-android-note:before{content:"\f2ef"}.ion-android-playstore:before{content:"\f2f0"}.ion-android-printer:before{content:"\f2f1"}.ion-android-promotion:before{content:"\f2f2"}.ion-android-reminder:before{content:"\f2f3"}.ion-android-remove:before{content:"\f2f4"}.ion-android-search:before{content:"\f2f5"}.ion-android-send:before{content:"\f2f6"}.ion-android-settings:before{content:"\f2f7"}.ion-android-share:before{content:"\f2f8"}.ion-android-social:before{content:"\f2fa"}.ion-android-social-user:before{content:"\f2f9"}.ion-android-sort:before{content:"\f2fb"}.ion-android-star:before{content:"\f2fc"}.ion-android-stopwatch:before{content:"\f2fd"}.ion-android-storage:before{content:"\f2fe"}.ion-android-system-back:before{content:"\f2ff"}.ion-android-system-home:before{content:"\f300"}.ion-android-system-windows:before{content:"\f301"}.ion-android-timer:before{content:"\f302"}.ion-android-trash:before{content:"\f303"}.ion-android-volume:before{content:"\f304"}.ion-android-wifi:before{content:"\f305"}.ion-archive:before{content:"\f102"}.ion-arrow-down-a:before{content:"\f103"}.ion-arrow-down-b:before{content:"\f104"}.ion-arrow-down-c:before{content:"\f105"}.ion-arrow-expand:before{content:"\f25e"}.ion-arrow-graph-down-left:before{content:"\f25f"}.ion-arrow-graph-down-right:before{content:"\f260"}.ion-arrow-graph-up-left:before{content:"\f261"}.ion-arrow-graph-up-right:before{content:"\f262"}.ion-arrow-left-a:before{content:"\f106"}.ion-arrow-left-b:before{content:"\f107"}.ion-arrow-left-c:before{content:"\f108"}.ion-arrow-move:before{content:"\f263"}.ion-arrow-resize:before{content:"\f264"}.ion-arrow-return-left:before{content:"\f265"}.ion-arrow-return-right:before{content:"\f266"}.ion-arrow-right-a:before{content:"\f109"}.ion-arrow-right-b:before{content:"\f10a"}.ion-arrow-right-c:before{content:"\f10b"}.ion-arrow-shrink:before{content:"\f267"}.ion-arrow-swap:before{content:"\f268"}.ion-arrow-up-a:before{content:"\f10c"}.ion-arrow-up-b:before{content:"\f10d"}.ion-arrow-up-c:before{content:"\f10e"}.ion-at:before{content:"\f10f"}.ion-bag:before{content:"\f110"}.ion-battery-charging:before{content:"\f111"}.ion-battery-empty:before{content:"\f112"}.ion-battery-full:before{content:"\f113"}.ion-battery-half:before{content:"\f114"}.ion-battery-low:before{content:"\f115"}.ion-beaker:before{content:"\f269"}.ion-beer:before{content:"\f26a"}.ion-bluetooth:before{content:"\f116"}.ion-bookmark:before{content:"\f26b"}.ion-briefcase:before{content:"\f26c"}.ion-bug:before{content:"\f2be"}.ion-calculator:before{content:"\f26d"}.ion-calendar:before{content:"\f117"}.ion-camera:before{content:"\f118"}.ion-card:before{content:"\f119"}.ion-chatbox:before{content:"\f11b"}.ion-chatbox-working:before{content:"\f11a"}.ion-chatboxes:before{content:"\f11c"}.ion-chatbubble:before{content:"\f11e"}.ion-chatbubble-working:before{content:"\f11d"}.ion-chatbubbles:before{content:"\f11f"}.ion-checkmark:before{content:"\f122"}.ion-checkmark-circled:before{content:"\f120"}.ion-checkmark-round:before{content:"\f121"}.ion-chevron-down:before{content:"\f123"}.ion-chevron-left:before{content:"\f124"}.ion-chevron-right:before{content:"\f125"}.ion-chevron-up:before{content:"\f126"}.ion-clipboard:before{content:"\f127"}.ion-clock:before{content:"\f26e"}.ion-close:before{content:"\f12a"}.ion-close-circled:before{content:"\f128"}.ion-close-round:before{content:"\f129"}.ion-cloud:before{content:"\f12b"}.ion-code:before{content:"\f271"}.ion-code-download:before{content:"\f26f"}.ion-code-working:before{content:"\f270"}.ion-coffee:before{content:"\f272"}.ion-compass:before{content:"\f273"}.ion-compose:before{content:"\f12c"}.ion-connection-bars:before{content:"\f274"}.ion-contrast:before{content:"\f275"}.ion-disc:before{content:"\f12d"}.ion-document:before{content:"\f12f"}.ion-document-text:before{content:"\f12e"}.ion-drag:before{content:"\f130"}.ion-earth:before{content:"\f276"}.ion-edit:before{content:"\f2bf"}.ion-egg:before{content:"\f277"}.ion-eject:before{content:"\f131"}.ion-email:before{content:"\f132"}.ion-eye:before{content:"\f133"}.ion-eye-disabled:before{content:"\f306"}.ion-female:before{content:"\f278"}.ion-filing:before{content:"\f134"}.ion-film-marker:before{content:"\f135"}.ion-flag:before{content:"\f279"}.ion-flash:before{content:"\f137"}.ion-flash-off:before{content:"\f136"}.ion-flask:before{content:"\f138"}.ion-folder:before{content:"\f139"}.ion-fork:before{content:"\f27a"}.ion-fork-repo:before{content:"\f2c0"}.ion-forward:before{content:"\f13a"}.ion-game-controller-a:before{content:"\f13b"}.ion-game-controller-b:before{content:"\f13c"}.ion-gear-a:before{content:"\f13d"}.ion-gear-b:before{content:"\f13e"}.ion-grid:before{content:"\f13f"}.ion-hammer:before{content:"\f27b"}.ion-headphone:before{content:"\f140"}.ion-heart:before{content:"\f141"}.ion-help:before{content:"\f143"}.ion-help-buoy:before{content:"\f27c"}.ion-help-circled:before{content:"\f142"}.ion-home:before{content:"\f144"}.ion-icecream:before{content:"\f27d"}.ion-icon-social-google-plus:before{content:"\f146"}.ion-icon-social-google-plus-outline:before{content:"\f145"}.ion-image:before{content:"\f147"}.ion-images:before{content:"\f148"}.ion-information:before{content:"\f14a"}.ion-information-circled:before{content:"\f149"}.ion-ionic:before{content:"\f14b"}.ion-ios7-alarm:before{content:"\f14d"}.ion-ios7-alarm-outline:before{content:"\f14c"}.ion-ios7-albums:before{content:"\f14f"}.ion-ios7-albums-outline:before{content:"\f14e"}.ion-ios7-arrow-back:before{content:"\f150"}.ion-ios7-arrow-down:before{content:"\f151"}.ion-ios7-arrow-forward:before{content:"\f152"}.ion-ios7-arrow-left:before{content:"\f153"}.ion-ios7-arrow-right:before{content:"\f154"}.ion-ios7-arrow-thin-down:before{content:"\f27e"}.ion-ios7-arrow-thin-left:before{content:"\f27f"}.ion-ios7-arrow-thin-right:before{content:"\f280"}.ion-ios7-arrow-thin-up:before{content:"\f281"}.ion-ios7-arrow-up:before{content:"\f155"}.ion-ios7-at:before{content:"\f157"}.ion-ios7-at-outline:before{content:"\f156"}.ion-ios7-bell:before{content:"\f159"}.ion-ios7-bell-outline:before{content:"\f158"}.ion-ios7-bolt:before{content:"\f15b"}.ion-ios7-bolt-outline:before{content:"\f15a"}.ion-ios7-bookmarks:before{content:"\f15d"}.ion-ios7-bookmarks-outline:before{content:"\f15c"}.ion-ios7-box:before{content:"\f15f"}.ion-ios7-box-outline:before{content:"\f15e"}.ion-ios7-briefcase:before{content:"\f283"}.ion-ios7-briefcase-outline:before{content:"\f282"}.ion-ios7-browsers:before{content:"\f161"}.ion-ios7-browsers-outline:before{content:"\f160"}.ion-ios7-calculator:before{content:"\f285"}.ion-ios7-calculator-outline:before{content:"\f284"}.ion-ios7-calendar:before{content:"\f163"}.ion-ios7-calendar-outline:before{content:"\f162"}.ion-ios7-camera:before{content:"\f165"}.ion-ios7-camera-outline:before{content:"\f164"}.ion-ios7-cart:before{content:"\f167"}.ion-ios7-cart-outline:before{content:"\f166"}.ion-ios7-chatboxes:before{content:"\f169"}.ion-ios7-chatboxes-outline:before{content:"\f168"}.ion-ios7-chatbubble:before{content:"\f16b"}.ion-ios7-chatbubble-outline:before{content:"\f16a"}.ion-ios7-checkmark:before{content:"\f16e"}.ion-ios7-checkmark-empty:before{content:"\f16c"}.ion-ios7-checkmark-outline:before{content:"\f16d"}.ion-ios7-circle-filled:before{content:"\f16f"}.ion-ios7-circle-outline:before{content:"\f170"}.ion-ios7-clock:before{content:"\f172"}.ion-ios7-clock-outline:before{content:"\f171"}.ion-ios7-close:before{content:"\f2bc"}.ion-ios7-close-empty:before{content:"\f2bd"}.ion-ios7-close-outline:before{content:"\f2bb"}.ion-ios7-cloud:before{content:"\f178"}.ion-ios7-cloud-download:before{content:"\f174"}.ion-ios7-cloud-download-outline:before{content:"\f173"}.ion-ios7-cloud-outline:before{content:"\f175"}.ion-ios7-cloud-upload:before{content:"\f177"}.ion-ios7-cloud-upload-outline:before{content:"\f176"}.ion-ios7-cloudy:before{content:"\f17a"}.ion-ios7-cloudy-night:before{content:"\f308"}.ion-ios7-cloudy-night-outline:before{content:"\f307"}.ion-ios7-cloudy-outline:before{content:"\f179"}.ion-ios7-cog:before{content:"\f17c"}.ion-ios7-cog-outline:before{content:"\f17b"}.ion-ios7-compose:before{content:"\f17e"}.ion-ios7-compose-outline:before{content:"\f17d"}.ion-ios7-contact:before{content:"\f180"}.ion-ios7-contact-outline:before{content:"\f17f"}.ion-ios7-copy:before{content:"\f182"}.ion-ios7-copy-outline:before{content:"\f181"}.ion-ios7-download:before{content:"\f184"}.ion-ios7-download-outline:before{content:"\f183"}.ion-ios7-drag:before{content:"\f185"}.ion-ios7-email:before{content:"\f187"}.ion-ios7-email-outline:before{content:"\f186"}.ion-ios7-eye:before{content:"\f189"}.ion-ios7-eye-outline:before{content:"\f188"}.ion-ios7-fastforward:before{content:"\f18b"}.ion-ios7-fastforward-outline:before{content:"\f18a"}.ion-ios7-filing:before{content:"\f18d"}.ion-ios7-filing-outline:before{content:"\f18c"}.ion-ios7-film:before{content:"\f18f"}.ion-ios7-film-outline:before{content:"\f18e"}.ion-ios7-flag:before{content:"\f191"}.ion-ios7-flag-outline:before{content:"\f190"}.ion-ios7-folder:before{content:"\f193"}.ion-ios7-folder-outline:before{content:"\f192"}.ion-ios7-gear:before{content:"\f195"}.ion-ios7-gear-outline:before{content:"\f194"}.ion-ios7-glasses:before{content:"\f197"}.ion-ios7-glasses-outline:before{content:"\f196"}.ion-ios7-heart:before{content:"\f199"}.ion-ios7-heart-outline:before{content:"\f198"}.ion-ios7-help:before{content:"\f19c"}.ion-ios7-help-empty:before{content:"\f19a"}.ion-ios7-help-outline:before{content:"\f19b"}.ion-ios7-infinite:before{content:"\f19e"}.ion-ios7-infinite-outline:before{content:"\f19d"}.ion-ios7-information:before{content:"\f1a1"}.ion-ios7-information-empty:before{content:"\f19f"}.ion-ios7-information-outline:before{content:"\f1a0"}.ion-ios7-ionic-outline:before{content:"\f1a2"}.ion-ios7-keypad:before{content:"\f1a4"}.ion-ios7-keypad-outline:before{content:"\f1a3"}.ion-ios7-lightbulb:before{content:"\f287"}.ion-ios7-lightbulb-outline:before{content:"\f286"}.ion-ios7-location:before{content:"\f1a6"}.ion-ios7-location-outline:before{content:"\f1a5"}.ion-ios7-locked:before{content:"\f1a8"}.ion-ios7-locked-outline:before{content:"\f1a7"}.ion-ios7-medkit:before{content:"\f289"}.ion-ios7-medkit-outline:before{content:"\f288"}.ion-ios7-mic:before{content:"\f1ab"}.ion-ios7-mic-off:before{content:"\f1a9"}.ion-ios7-mic-outline:before{content:"\f1aa"}.ion-ios7-minus:before{content:"\f1ae"}.ion-ios7-minus-empty:before{content:"\f1ac"}.ion-ios7-minus-outline:before{content:"\f1ad"}.ion-ios7-monitor:before{content:"\f1b0"}.ion-ios7-monitor-outline:before{content:"\f1af"}.ion-ios7-moon:before{content:"\f1b2"}.ion-ios7-moon-outline:before{content:"\f1b1"}.ion-ios7-more:before{content:"\f1b4"}.ion-ios7-more-outline:before{content:"\f1b3"}.ion-ios7-musical-note:before{content:"\f1b5"}.ion-ios7-musical-notes:before{content:"\f1b6"}.ion-ios7-navigate:before{content:"\f1b8"}.ion-ios7-navigate-outline:before{content:"\f1b7"}.ion-ios7-paperplane:before{content:"\f1ba"}.ion-ios7-paperplane-outline:before{content:"\f1b9"}.ion-ios7-partlysunny:before{content:"\f1bc"}.ion-ios7-partlysunny-outline:before{content:"\f1bb"}.ion-ios7-pause:before{content:"\f1be"}.ion-ios7-pause-outline:before{content:"\f1bd"}.ion-ios7-people:before{content:"\f1c0"}.ion-ios7-people-outline:before{content:"\f1bf"}.ion-ios7-person:before{content:"\f1c2"}.ion-ios7-person-outline:before{content:"\f1c1"}.ion-ios7-personadd:before{content:"\f1c4"}.ion-ios7-personadd-outline:before{content:"\f1c3"}.ion-ios7-photos:before{content:"\f1c6"}.ion-ios7-photos-outline:before{content:"\f1c5"}.ion-ios7-pie:before{content:"\f28b"}.ion-ios7-pie-outline:before{content:"\f28a"}.ion-ios7-play:before{content:"\f1c8"}.ion-ios7-play-outline:before{content:"\f1c7"}.ion-ios7-plus:before{content:"\f1cb"}.ion-ios7-plus-empty:before{content:"\f1c9"}.ion-ios7-plus-outline:before{content:"\f1ca"}.ion-ios7-pricetag:before{content:"\f28d"}.ion-ios7-pricetag-outline:before{content:"\f28c"}.ion-ios7-printer:before{content:"\f1cd"}.ion-ios7-printer-outline:before{content:"\f1cc"}.ion-ios7-rainy:before{content:"\f1cf"}.ion-ios7-rainy-outline:before{content:"\f1ce"}.ion-ios7-recording:before{content:"\f1d1"}.ion-ios7-recording-outline:before{content:"\f1d0"}.ion-ios7-redo:before{content:"\f1d3"}.ion-ios7-redo-outline:before{content:"\f1d2"}.ion-ios7-refresh:before{content:"\f1d6"}.ion-ios7-refresh-empty:before{content:"\f1d4"}.ion-ios7-refresh-outline:before{content:"\f1d5"}.ion-ios7-reload:before,.ion-ios7-reloading:before{content:"\f28e"}.ion-ios7-rewind:before{content:"\f1d8"}.ion-ios7-rewind-outline:before{content:"\f1d7"}.ion-ios7-search:before{content:"\f1da"}.ion-ios7-search-strong:before{content:"\f1d9"}.ion-ios7-skipbackward:before{content:"\f1dc"}.ion-ios7-skipbackward-outline:before{content:"\f1db"}.ion-ios7-skipforward:before{content:"\f1de"}.ion-ios7-skipforward-outline:before{content:"\f1dd"}.ion-ios7-snowy:before{content:"\f309"}.ion-ios7-speedometer:before{content:"\f290"}.ion-ios7-speedometer-outline:before{content:"\f28f"}.ion-ios7-star:before{content:"\f1e0"}.ion-ios7-star-outline:before{content:"\f1df"}.ion-ios7-stopwatch:before{content:"\f1e2"}.ion-ios7-stopwatch-outline:before{content:"\f1e1"}.ion-ios7-sunny:before{content:"\f1e4"}.ion-ios7-sunny-outline:before{content:"\f1e3"}.ion-ios7-telephone:before{content:"\f1e6"}.ion-ios7-telephone-outline:before{content:"\f1e5"}.ion-ios7-thunderstorm:before{content:"\f1e8"}.ion-ios7-thunderstorm-outline:before{content:"\f1e7"}.ion-ios7-time:before{content:"\f292"}.ion-ios7-time-outline:before{content:"\f291"}.ion-ios7-timer:before{content:"\f1ea"}.ion-ios7-timer-outline:before{content:"\f1e9"}.ion-ios7-trash:before{content:"\f1ec"}.ion-ios7-trash-outline:before{content:"\f1eb"}.ion-ios7-undo:before{content:"\f1ee"}.ion-ios7-undo-outline:before{content:"\f1ed"}.ion-ios7-unlocked:before{content:"\f1f0"}.ion-ios7-unlocked-outline:before{content:"\f1ef"}.ion-ios7-upload:before{content:"\f1f2"}.ion-ios7-upload-outline:before{content:"\f1f1"}.ion-ios7-videocam:before{content:"\f1f4"}.ion-ios7-videocam-outline:before{content:"\f1f3"}.ion-ios7-volume-high:before{content:"\f1f5"}.ion-ios7-volume-low:before{content:"\f1f6"}.ion-ios7-wineglass:before{content:"\f294"}.ion-ios7-wineglass-outline:before{content:"\f293"}.ion-ios7-world:before{content:"\f1f8"}.ion-ios7-world-outline:before{content:"\f1f7"}.ion-ipad:before{content:"\f1f9"}.ion-iphone:before{content:"\f1fa"}.ion-ipod:before{content:"\f1fb"}.ion-jet:before{content:"\f295"}.ion-key:before{content:"\f296"}.ion-knife:before{content:"\f297"}.ion-laptop:before{content:"\f1fc"}.ion-leaf:before{content:"\f1fd"}.ion-levels:before{content:"\f298"}.ion-lightbulb:before{content:"\f299"}.ion-link:before{content:"\f1fe"}.ion-load-a:before,.ion-loading-a:before{content:"\f29a"}.ion-load-b:before,.ion-loading-b:before{content:"\f29b"}.ion-load-c:before,.ion-loading-c:before{content:"\f29c"}.ion-load-d:before,.ion-loading-d:before{content:"\f29d"}.ion-location:before{content:"\f1ff"}.ion-locked:before{content:"\f200"}.ion-log-in:before{content:"\f29e"}.ion-log-out:before{content:"\f29f"}.ion-loop:before,.ion-looping:before{content:"\f201"}.ion-magnet:before{content:"\f2a0"}.ion-male:before{content:"\f2a1"}.ion-man:before{content:"\f202"}.ion-map:before{content:"\f203"}.ion-medkit:before{content:"\f2a2"}.ion-mic-a:before{content:"\f204"}.ion-mic-b:before{content:"\f205"}.ion-mic-c:before{content:"\f206"}.ion-minus:before{content:"\f209"}.ion-minus-circled:before{content:"\f207"}.ion-minus-round:before{content:"\f208"}.ion-model-s:before{content:"\f2c1"}.ion-monitor:before{content:"\f20a"}.ion-more:before{content:"\f20b"}.ion-music-note:before{content:"\f20c"}.ion-navicon:before{content:"\f20e"}.ion-navicon-round:before{content:"\f20d"}.ion-navigate:before{content:"\f2a3"}.ion-no-smoking:before{content:"\f2c2"}.ion-nuclear:before{content:"\f2a4"}.ion-paper-airplane:before{content:"\f2c3"}.ion-paperclip:before{content:"\f20f"}.ion-pause:before{content:"\f210"}.ion-person:before{content:"\f213"}.ion-person-add:before{content:"\f211"}.ion-person-stalker:before{content:"\f212"}.ion-pie-graph:before{content:"\f2a5"}.ion-pin:before{content:"\f2a6"}.ion-pinpoint:before{content:"\f2a7"}.ion-pizza:before{content:"\f2a8"}.ion-plane:before{content:"\f214"}.ion-play:before{content:"\f215"}.ion-playstation:before{content:"\f30a"}.ion-plus:before{content:"\f218"}.ion-plus-circled:before{content:"\f216"}.ion-plus-round:before{content:"\f217"}.ion-pound:before{content:"\f219"}.ion-power:before{content:"\f2a9"}.ion-pricetag:before{content:"\f2aa"}.ion-pricetags:before{content:"\f2ab"}.ion-printer:before{content:"\f21a"}.ion-radio-waves:before{content:"\f2ac"}.ion-record:before{content:"\f21b"}.ion-refresh:before,.ion-refreshing:before{content:"\f21c"}.ion-reply:before{content:"\f21e"}.ion-reply-all:before{content:"\f21d"}.ion-search:before{content:"\f21f"}.ion-settings:before{content:"\f2ad"}.ion-share:before{content:"\f220"}.ion-shuffle:before{content:"\f221"}.ion-skip-backward:before{content:"\f222"}.ion-skip-forward:before{content:"\f223"}.ion-social-android:before{content:"\f225"}.ion-social-android-outline:before{content:"\f224"}.ion-social-apple:before{content:"\f227"}.ion-social-apple-outline:before{content:"\f226"}.ion-social-bitcoin:before{content:"\f2af"}.ion-social-bitcoin-outline:before{content:"\f2ae"}.ion-social-buffer:before{content:"\f229"}.ion-social-buffer-outline:before{content:"\f228"}.ion-social-designernews:before{content:"\f22b"}.ion-social-designernews-outline:before{content:"\f22a"}.ion-social-dribbble:before{content:"\f22d"}.ion-social-dribbble-outline:before{content:"\f22c"}.ion-social-dropbox:before{content:"\f22f"}.ion-social-dropbox-outline:before{content:"\f22e"}.ion-social-facebook:before{content:"\f231"}.ion-social-facebook-outline:before{content:"\f230"}.ion-social-freebsd-devil:before{content:"\f2c4"}.ion-social-github:before{content:"\f233"}.ion-social-github-outline:before{content:"\f232"}.ion-social-googleplus:before{content:"\f235"}.ion-social-googleplus-outline:before{content:"\f234"}.ion-social-hackernews:before{content:"\f237"}.ion-social-hackernews-outline:before{content:"\f236"}.ion-social-linkedin:before{content:"\f239"}.ion-social-linkedin-outline:before{content:"\f238"}.ion-social-pinterest:before{content:"\f2b1"}.ion-social-pinterest-outline:before{content:"\f2b0"}.ion-social-reddit:before{content:"\f23b"}.ion-social-reddit-outline:before{content:"\f23a"}.ion-social-rss:before{content:"\f23d"}.ion-social-rss-outline:before{content:"\f23c"}.ion-social-skype:before{content:"\f23f"}.ion-social-skype-outline:before{content:"\f23e"}.ion-social-tumblr:before{content:"\f241"}.ion-social-tumblr-outline:before{content:"\f240"}.ion-social-tux:before{content:"\f2c5"}.ion-social-twitter:before{content:"\f243"}.ion-social-twitter-outline:before{content:"\f242"}.ion-social-vimeo:before{content:"\f245"}.ion-social-vimeo-outline:before{content:"\f244"}.ion-social-windows:before{content:"\f247"}.ion-social-windows-outline:before{content:"\f246"}.ion-social-wordpress:before{content:"\f249"}.ion-social-wordpress-outline:before{content:"\f248"}.ion-social-yahoo:before{content:"\f24b"}.ion-social-yahoo-outline:before{content:"\f24a"}.ion-social-youtube:before{content:"\f24d"}.ion-social-youtube-outline:before{content:"\f24c"}.ion-speakerphone:before{content:"\f2b2"}.ion-speedometer:before{content:"\f2b3"}.ion-spoon:before{content:"\f2b4"}.ion-star:before{content:"\f24e"}.ion-stats-bars:before{content:"\f2b5"}.ion-steam:before{content:"\f30b"}.ion-stop:before{content:"\f24f"}.ion-thermometer:before{content:"\f2b6"}.ion-thumbsdown:before{content:"\f250"}.ion-thumbsup:before{content:"\f251"}.ion-trash-a:before{content:"\f252"}.ion-trash-b:before{content:"\f253"}.ion-umbrella:before{content:"\f2b7"}.ion-unlocked:before{content:"\f254"}.ion-upload:before{content:"\f255"}.ion-usb:before{content:"\f2b8"}.ion-videocamera:before{content:"\f256"}.ion-volume-high:before{content:"\f257"}.ion-volume-low:before{content:"\f258"}.ion-volume-medium:before{content:"\f259"}.ion-volume-mute:before{content:"\f25a"}.ion-waterdrop:before{content:"\f25b"}.ion-wifi:before{content:"\f25c"}.ion-wineglass:before{content:"\f2b9"}.ion-woman:before{content:"\f25d"}.ion-wrench:before{content:"\f2ba"}.ion-xbox:before{content:"\f30c"}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;vertical-align:baseline;font:inherit;font-size:100%}ol,ul{list-style:none}blockquote,q{quotes:none}audio:not([controls]){display:none;height:0}[hidden],template{display:none}script{display:none!important}html{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}:focus,a,a:active,a:focus,a:hover,button,button:focus{outline:0}a{-webkit-user-drag:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}a[href]:hover{cursor:pointer}b,strong{font-weight:700}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}code,kbd,pre,samp{font-size:1em;font-family:monospace,serif}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}sub,sup{position:relative;vertical-align:baseline;font-size:75%;line-height:0}sup{top:-.5em}sub{bottom:-.25em}fieldset{margin:0 2px;padding:.35em .625em .75em;border:1px solid silver}button,input,select,textarea{margin:0;outline-offset:0;outline-style:none;outline-width:0;-webkit-font-smoothing:inherit}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto}img{-webkit-user-drag:none}table{border-spacing:0;border-collapse:collapse}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{overflow:hidden;-ms-touch-action:pan-y;touch-action:pan-y}.ionic-body,body{-webkit-touch-callout:none;-webkit-font-smoothing:antialiased;font-smoothing:antialiased;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0;padding:0;color:#000;word-wrap:break-word;font-size:14px;font-family:"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;line-height:20px;text-rendering:optimizeLegibility;-webkit-backface-visibility:hidden;-webkit-user-drag:none}body.grade-b,body.grade-c{text-rendering:auto}.content{position:relative}.scroll-content{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;margin-top:-1px;width:auto;height:auto}.scroll-view{position:relative;display:block;overflow:hidden;margin-top:-1px}.scroll{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-transform-origin:left top;-moz-transform-origin:left top;transform-origin:left top}.scroll-bar{position:absolute;z-index:9999}.ng-animate .scroll-bar{visibility:hidden}.scroll-bar-h{right:2px;bottom:3px;left:2px;height:3px}.scroll-bar-h .scroll-bar-indicator{height:100%}.scroll-bar-v{top:2px;right:3px;bottom:2px;width:3px}.scroll-bar-v .scroll-bar-indicator{width:100%}.scroll-bar-indicator{position:absolute;border-radius:4px;background:rgba(0,0,0,.3);opacity:1}.scroll-bar-indicator.scroll-bar-fade-out{-webkit-transition:opacity .3s linear;-moz-transition:opacity .3s linear;transition:opacity .3s linear;opacity:0}.grade-b .scroll-bar-indicator,.grade-c .scroll-bar-indicator{border-radius:0;background:#aaa}.grade-b .scroll-bar-indicator.scroll-bar-fade-out,.grade-c .scroll-bar-indicator.scroll-bar-fade-out{-webkit-transition:none;-moz-transition:none;transition:none}@keyframes refresh-spin{0%{transform:translate3d(0,0,0) rotate(0)}100%{transform:translate3d(0,0,0) rotate(-180deg)}}@-webkit-keyframes refresh-spin{0%{-webkit-transform:translate3d(0,0,0) rotate(0)}100%{-webkit-transform:translate3d(0,0,0) rotate(-180deg)}}@keyframes refresh-spin-back{0%{transform:translate3d(0,0,0) rotate(-180deg)}100%{transform:translate3d(0,0,0) rotate(0)}}@-webkit-keyframes refresh-spin-back{0%{-webkit-transform:translate3d(0,0,0) rotate(-180deg)}100%{-webkit-transform:translate3d(0,0,0) rotate(0)}}.scroll-refresher{position:absolute;top:-60px;right:0;left:0;overflow:hidden;margin:auto;height:60px}.scroll-refresher .ionic-refresher-content{position:absolute;bottom:15px;left:0;width:100%;color:#666;text-align:center;font-size:30px}.scroll-refresher .ionic-refresher-content .text-pulling,.scroll-refresher .ionic-refresher-content .text-refreshing{font-size:16px;line-height:16px}.scroll-refresher .ionic-refresher-content.ionic-refresher-with-text{bottom:10px}.scroll-refresher .icon-pulling,.scroll-refresher .icon-refreshing{width:100%;-webkit-backface-visibility:hidden;-webkit-transform-style:preserve-3d;backface-visibility:hidden;transform-style:preserve-3d}.scroll-refresher .icon-pulling{-webkit-animation-name:refresh-spin-back;-moz-animation-name:refresh-spin-back;animation-name:refresh-spin-back;-webkit-animation-duration:200ms;-moz-animation-duration:200ms;animation-duration:200ms;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:none;-moz-animation-fill-mode:none;animation-fill-mode:none;-webkit-transform:translate3d(0,0,0) rotate(0deg);transform:translate3d(0,0,0) rotate(0deg)}.scroll-refresher .icon-refreshing,.scroll-refresher .text-refreshing{display:none}.scroll-refresher .icon-refreshing{-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;animation-duration:1.5s}.scroll-refresher.active .icon-pulling{-webkit-animation-name:refresh-spin;-moz-animation-name:refresh-spin;animation-name:refresh-spin;-webkit-transform:translate3d(0,0,0) rotate(-180deg);transform:translate3d(0,0,0) rotate(-180deg)}.scroll-refresher.active.refreshing .icon-pulling,.scroll-refresher.active.refreshing .text-pulling{display:none}.scroll-refresher.active.refreshing .icon-refreshing,.scroll-refresher.active.refreshing .text-refreshing{display:block}.scroll-refresher-content{position:absolute;bottom:15px;left:0;width:100%;color:#666;text-align:center;font-size:30px}ion-infinite-scroll .scroll-infinite{position:relative;overflow:hidden;margin-top:-70px;height:60px}.scroll-infinite-content{position:absolute;bottom:-1px;left:0;width:100%;color:#666;text-align:center;font-size:30px}ion-infinite-scroll.active .scroll-infinite{margin-top:-30px}.overflow-scroll{overflow-x:hidden;overflow-y:scroll;-webkit-overflow-scrolling:touch}.overflow-scroll .scroll{position:static;height:100%;-webkit-transform:translate3d(0,0,0)}.has-header{top:44px}.no-header{top:0}.has-subheader{top:88px}.has-tabs-top{top:93px}.has-header.has-subheader.has-tabs-top{top:137px}.has-footer{bottom:44px}.has-subfooter{bottom:88px}.bar-footer.has-tabs,.has-tabs{bottom:49px}.has-footer.has-tabs{bottom:93px}.pane{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:1}.view{z-index:1}.pane,.view{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:#fff;overflow:hidden}p{margin:0 0 10px}small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:#000;font-weight:500;font-family:"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;line-height:1.2}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1:first-child,.h2:first-child,.h3:first-child,h1:first-child,h2:first-child,h3:first-child{margin-top:0}.h1+.h1,.h1+.h2,.h1+.h3,.h1+h1,.h1+h2,.h1+h3,.h2+.h1,.h2+.h2,.h2+.h3,.h2+h1,.h2+h2,.h2+h3,.h3+.h1,.h3+.h2,.h3+.h3,.h3+h1,.h3+h2,.h3+h3,h1+.h1,h1+.h2,h1+.h3,h1+h1,h1+h2,h1+h3,h2+.h1,h2+.h2,h2+.h3,h2+h1,h2+h2,h2+h3,h3+.h1,h3+.h2,h3+.h3,h3+h1,h3+h2,h3+h3{margin-top:10px}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}.h1 small,h1 small{font-size:24px}.h2 small,h2 small{font-size:18px}.h3 small,.h4 small,h3 small,h4 small{font-size:14px}dl{margin-bottom:20px}dd,dt{line-height:1.42857}dt{font-weight:700}blockquote{margin:0 0 20px;padding:10px 20px;border-left:5px solid gray}blockquote p{font-weight:300;font-size:17.5px;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.42857}blockquote small:before{content:'\2014 \00A0'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.42857}a.subdued{padding-right:10px;color:#888;text-decoration:none}a.subdued:hover{text-decoration:none}a.subdued:last-child{padding-right:0}.action-sheet-backdrop{-webkit-transition:background-color 300ms ease-in-out;-moz-transition:background-color 300ms ease-in-out;transition:background-color 300ms ease-in-out;position:fixed;top:0;left:0;z-index:11;width:100%;height:100%;background-color:rgba(0,0,0,0)}.action-sheet-backdrop.active{background-color:rgba(0,0,0,.5)}.action-sheet-wrapper{-webkit-transform:translate3d(0,100%,0);-moz-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);-webkit-transition:all ease-in-out 300ms;-moz-transition:all ease-in-out 300ms;transition:all ease-in-out 300ms;position:absolute;bottom:0;width:100%}.action-sheet-up{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.action-sheet{margin-left:15px;margin-right:15px;width:auto;z-index:11;overflow:hidden}.action-sheet .button{display:block;padding:1px;width:100%;border-radius:0;background-color:transparent;color:#4a87ee;font-size:18px}.action-sheet .button.destructive{color:#ef4e3a}.action-sheet-title{padding:10px;color:#666;text-align:center;font-size:12px}.action-sheet-group{margin-bottom:5px;border-radius:3px;background-color:#fff}.action-sheet-group .button{border-width:1px 0 0;border-radius:0}.action-sheet-group .button.active{background-color:transparent;color:inherit}.action-sheet-group .button:first-child:last-child{border-width:0}.action-sheet-open,.action-sheet-open.modal-open .modal{pointer-events:none}.action-sheet-open .action-sheet-backdrop{pointer-events:auto}.backdrop{position:fixed;top:0;left:0;z-index:11;width:100%;height:100%;background-color:rgba(0,0,0,.4);visibility:hidden;opacity:0;-webkit-transition:.1s opacity linear;-moz-transition:.1s opacity linear;transition:.1s opacity linear}.backdrop.visible{visibility:visible}.backdrop.active{opacity:1}.bar{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;right:0;left:0;z-index:10;box-sizing:border-box;padding:5px;width:100%;height:44px;border-width:0;border-style:solid;border-top:1px solid transparent;border-bottom:1px solid #ddd;background-color:#fff;background-size:0}@media (min--moz-device-pixel-ratio:1.5),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:144dpi),(min-resolution:1.5dppx){.bar{border:none;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);background-position:bottom;background-size:100% 1px;background-repeat:no-repeat}}.bar.bar-clear{border:none;background:0 0;color:#fff}.bar.bar-clear .button,.bar.bar-clear .title{color:#fff}.bar.item-input-inset .item-input-wrapper{margin-top:-1px}.bar.item-input-inset .item-input-wrapper input{padding-left:8px;width:94%;height:28px;background:0 0}.bar.bar-light{border-color:#ddd;background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);color:#444}.bar.bar-light .title{color:#444}.bar.bar-stable{border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444}.bar.bar-stable .title{color:#444}.bar.bar-positive{border-color:#145fd7;background-color:#4a87ee;background-image:linear-gradient(0deg,#145fd7,#145fd7 50%,transparent 50%);color:#fff}.bar.bar-positive .title{color:#fff}.bar.bar-calm{border-color:#1aacc3;background-color:#43cee6;background-image:linear-gradient(0deg,#1aacc3,#1aacc3 50%,transparent 50%);color:#fff}.bar.bar-calm .title{color:#fff}.bar.bar-assertive{border-color:#cc2311;background-color:#ef4e3a;background-image:linear-gradient(0deg,#cc2311,#cc2311 50%,transparent 50%);color:#fff}.bar.bar-assertive .title{color:#fff}.bar.bar-balanced{border-color:#498f24;background-color:#6c3;background-image:linear-gradient(0deg,#498f24,#498f24 50%,transparent 50%);color:#fff}.bar.bar-balanced .title{color:#fff}.bar.bar-energized{border-color:#d39211;background-color:#f0b840;background-image:linear-gradient(0deg,#d39211,#d39211 50%,transparent 50%);color:#fff}.bar.bar-energized .title{color:#fff}.bar.bar-royal{border-color:#552bdf;background-color:#8a6de9;background-image:linear-gradient(0deg,#552bdf,#552bdf 50%,transparent 50%);color:#fff}.bar.bar-royal .title{color:#fff}.bar.bar-dark{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%);color:#fff}.bar.bar-dark .title{color:#fff}.bar .title{position:absolute;top:0;right:0;left:0;z-index:0;overflow:hidden;margin:0 10px;min-width:30px;height:43px;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:17px;line-height:44px}.bar .title.title-left{text-align:left}.bar .title.title-right{text-align:right}.bar .title a{color:inherit}.bar .button{z-index:1;padding:0 8px;min-width:initial;min-height:31px;font-weight:400;font-size:13px;line-height:32px}.bar .button .icon:before,.bar .button.button-icon:before,.bar .button.icon-left:before,.bar .button.icon-right:before,.bar .button.icon:before{padding-right:2px;padding-left:2px;font-size:20px;line-height:32px}.bar .button.button-icon{font-size:17px}.bar .button.button-icon .icon:before,.bar .button.button-icon.icon-left:before,.bar .button.button-icon.icon-right:before,.bar .button.button-icon:before{vertical-align:top;font-size:32px;line-height:32px}.bar .button.button-clear{padding-right:2px;padding-left:2px;font-weight:300;font-size:17px}.bar .button.button-clear .icon:before,.bar .button.button-clear.icon-left:before,.bar .button.button-clear.icon-right:before,.bar .button.button-clear.icon:before{font-size:32px;line-height:32px}.bar .button.back-button{padding:0;opacity:.8}.bar .button.back-button .back-button-title{display:inline-block;vertical-align:middle;margin-left:4px}.bar .button.back-button.activated,.bar .button.back-button.active{opacity:1}.bar .button-bar>.button,.bar .buttons>.button{min-height:31px;line-height:32px}.bar .button+.button-bar,.bar .button-bar+.button{margin-left:5px}.bar .buttons,.bar .buttons.left-buttons,.bar .buttons.right-buttons{display:inherit}.bar .buttons.pull-right,.bar .title+.button:last-child,.bar .title+.buttons,.bar>.button+.button:last-child,.bar>.button.pull-right{position:absolute;top:5px;right:5px;bottom:5px}.bar-light .button{border-color:#ddd;background-color:#fff;color:#444}.bar-light .button:hover{color:#444;text-decoration:none}.bar-light .button.activated,.bar-light .button.active{border-color:#ccc;background-color:#fafafa;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-light .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#444;font-size:17px}.bar-light .button.button-icon{border-color:transparent;background:0 0}.bar-stable .button{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.bar-stable .button:hover{color:#444;text-decoration:none}.bar-stable .button.activated,.bar-stable .button.active{border-color:#a2a2a2;background-color:#e5e5e5;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-stable .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#444;font-size:17px}.bar-stable .button.button-icon{border-color:transparent;background:0 0}.bar-positive .button{border-color:#145fd7;background-color:#4a87ee;color:#fff}.bar-positive .button:hover{color:#fff;text-decoration:none}.bar-positive .button.activated,.bar-positive .button.active{border-color:#145fd7;background-color:#145fd7;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-positive .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-positive .button.button-icon{border-color:transparent;background:0 0}.bar-calm .button{border-color:#1aacc3;background-color:#43cee6;color:#fff}.bar-calm .button:hover{color:#fff;text-decoration:none}.bar-calm .button.activated,.bar-calm .button.active{border-color:#1aacc3;background-color:#1aacc3;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-calm .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-calm .button.button-icon{border-color:transparent;background:0 0}.bar-assertive .button{border-color:#cc2311;background-color:#ef4e3a;color:#fff}.bar-assertive .button:hover{color:#fff;text-decoration:none}.bar-assertive .button.activated,.bar-assertive .button.active{border-color:#cc2311;background-color:#cc2311;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-assertive .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-assertive .button.button-icon{border-color:transparent;background:0 0}.bar-balanced .button{border-color:#498f24;background-color:#6c3;color:#fff}.bar-balanced .button:hover{color:#fff;text-decoration:none}.bar-balanced .button.activated,.bar-balanced .button.active{border-color:#498f24;background-color:#498f24;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-balanced .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-balanced .button.button-icon{border-color:transparent;background:0 0}.bar-energized .button{border-color:#d39211;background-color:#f0b840;color:#fff}.bar-energized .button:hover{color:#fff;text-decoration:none}.bar-energized .button.activated,.bar-energized .button.active{border-color:#d39211;background-color:#d39211;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-energized .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-energized .button.button-icon{border-color:transparent;background:0 0}.bar-royal .button{border-color:#552bdf;background-color:#8a6de9;color:#fff}.bar-royal .button:hover{color:#fff;text-decoration:none}.bar-royal .button.activated,.bar-royal .button.active{border-color:#552bdf;background-color:#552bdf;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-royal .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-royal .button.button-icon{border-color:transparent;background:0 0}.bar-dark .button{border-color:#111;background-color:#444;color:#fff}.bar-dark .button:hover{color:#fff;text-decoration:none}.bar-dark .button.activated,.bar-dark .button.active{border-color:#000;background-color:#262626;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-dark .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-dark .button.button-icon{border-color:transparent;background:0 0}.bar-header{top:0;border-top-width:0;border-bottom-width:1px}.bar-footer{bottom:0;border-top-width:1px;border-bottom-width:0;background-position:top}.bar-footer.item-input-inset{position:absolute}.bar-tabs{padding:0}.bar-subheader{top:44px;display:block}.bar-subfooter{bottom:44px;display:block}.tabs{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:horizontal;-moz-flex-direction:horizontal;-ms-flex-direction:horizontal;flex-direction:horizontal;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444;position:absolute;bottom:0;z-index:5;width:100%;height:49px;border-style:solid;border-top-width:1px;background-size:0;line-height:49px}.tabs .tab-item .badge{background-color:#444;color:#f8f8f8}@media (min--moz-device-pixel-ratio:1.5),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:144dpi),(min-resolution:1.5dppx){.tabs{padding-top:2px;border-top:none!important;border-bottom:none!important;background-position:top;background-size:100% 1px;background-repeat:no-repeat}}.tabs-light>.tabs,.tabs.tabs-light{border-color:#ddd;background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);color:#444}.tabs-light>.tabs .tab-item .badge,.tabs.tabs-light .tab-item .badge{background-color:#444;color:#fff}.tabs-stable>.tabs,.tabs.tabs-stable{border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444}.tabs-stable>.tabs .tab-item .badge,.tabs.tabs-stable .tab-item .badge{background-color:#444;color:#f8f8f8}.tabs-positive>.tabs,.tabs.tabs-positive{border-color:#145fd7;background-color:#4a87ee;background-image:linear-gradient(0deg,#145fd7,#145fd7 50%,transparent 50%);color:#fff}.tabs-positive>.tabs .tab-item .badge,.tabs.tabs-positive .tab-item .badge{background-color:#fff;color:#4a87ee}.tabs-calm>.tabs,.tabs.tabs-calm{border-color:#1aacc3;background-color:#43cee6;background-image:linear-gradient(0deg,#1aacc3,#1aacc3 50%,transparent 50%);color:#fff}.tabs-calm>.tabs .tab-item .badge,.tabs.tabs-calm .tab-item .badge{background-color:#fff;color:#43cee6}.tabs-assertive>.tabs,.tabs.tabs-assertive{border-color:#cc2311;background-color:#ef4e3a;background-image:linear-gradient(0deg,#cc2311,#cc2311 50%,transparent 50%);color:#fff}.tabs-assertive>.tabs .tab-item .badge,.tabs.tabs-assertive .tab-item .badge{background-color:#fff;color:#ef4e3a}.tabs-balanced>.tabs,.tabs.tabs-balanced{border-color:#498f24;background-color:#6c3;background-image:linear-gradient(0deg,#498f24,#498f24 50%,transparent 50%);color:#fff}.tabs-balanced>.tabs .tab-item .badge,.tabs.tabs-balanced .tab-item .badge{background-color:#fff;color:#6c3}.tabs-energized>.tabs,.tabs.tabs-energized{border-color:#d39211;background-color:#f0b840;background-image:linear-gradient(0deg,#d39211,#d39211 50%,transparent 50%);color:#fff}.tabs-energized>.tabs .tab-item .badge,.tabs.tabs-energized .tab-item .badge{background-color:#fff;color:#f0b840}.tabs-royal>.tabs,.tabs.tabs-royal{border-color:#552bdf;background-color:#8a6de9;background-image:linear-gradient(0deg,#552bdf,#552bdf 50%,transparent 50%);color:#fff}.tabs-royal>.tabs .tab-item .badge,.tabs.tabs-royal .tab-item .badge{background-color:#fff;color:#8a6de9}.tabs-dark>.tabs,.tabs.tabs-dark{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%);color:#fff}.tabs-dark>.tabs .tab-item .badge,.tabs.tabs-dark .tab-item .badge{background-color:#fff;color:#444}.tabs-striped .tabs{background-color:#fff;background-image:none;border:none}.tabs-striped.tabs-light .tab-item.activated,.tabs-striped.tabs-light .tab-item.active,.tabs-striped.tabs-light .tab-item.tab-item-active{margin-top:-4px;color:#fff;border-style:solid;border-width:4px 0 0;border-color:#fff}.tabs-striped.tabs-stable .tab-item.activated,.tabs-striped.tabs-stable .tab-item.active,.tabs-striped.tabs-stable .tab-item.tab-item-active{margin-top:-4px;color:#f8f8f8;border-style:solid;border-width:4px 0 0;border-color:#f8f8f8}.tabs-striped.tabs-positive .tab-item.activated,.tabs-striped.tabs-positive .tab-item.active,.tabs-striped.tabs-positive .tab-item.tab-item-active{margin-top:-4px;color:#4a87ee;border-style:solid;border-width:4px 0 0;border-color:#4a87ee}.tabs-striped.tabs-calm .tab-item.activated,.tabs-striped.tabs-calm .tab-item.active,.tabs-striped.tabs-calm .tab-item.tab-item-active{margin-top:-4px;color:#43cee6;border-style:solid;border-width:4px 0 0;border-color:#43cee6}.tabs-striped.tabs-assertive .tab-item.activated,.tabs-striped.tabs-assertive .tab-item.active,.tabs-striped.tabs-assertive .tab-item.tab-item-active{margin-top:-4px;color:#ef4e3a;border-style:solid;border-width:4px 0 0;border-color:#ef4e3a}.tabs-striped.tabs-balanced .tab-item.activated,.tabs-striped.tabs-balanced .tab-item.active,.tabs-striped.tabs-balanced .tab-item.tab-item-active{margin-top:-4px;color:#6c3;border-style:solid;border-width:4px 0 0;border-color:#6c3}.tabs-striped.tabs-energized .tab-item.activated,.tabs-striped.tabs-energized .tab-item.active,.tabs-striped.tabs-energized .tab-item.tab-item-active{margin-top:-4px;color:#f0b840;border-style:solid;border-width:4px 0 0;border-color:#f0b840}.tabs-striped.tabs-royal .tab-item.activated,.tabs-striped.tabs-royal .tab-item.active,.tabs-striped.tabs-royal .tab-item.tab-item-active{margin-top:-4px;color:#8a6de9;border-style:solid;border-width:4px 0 0;border-color:#8a6de9}.tabs-striped.tabs-dark .tab-item.activated,.tabs-striped.tabs-dark .tab-item.active,.tabs-striped.tabs-dark .tab-item.tab-item-active{margin-top:-4px;color:#444;border-style:solid;border-width:4px 0 0;border-color:#444}.tabs-striped .tab-item{color:#000;opacity:.4}.tabs-striped .tab-item+.tab-item:before{border-left:1px solid #ccc;display:block;float:left;width:2px;height:26px;margin:11px auto;content:" "}.tabs-top.tabs-striped .tab-item.activated,.tabs-top.tabs-striped .tab-item.active,.tabs-top.tabs-striped .tab-item.tab-item-active{margin-top:0;margin-bottom:-4px;border-width:0 0 4px!important}.tabs-top>.tabs,.tabs.tabs-top{top:44px;padding-top:0;padding-bottom:2px;background-position:bottom}.tab-item{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;overflow:hidden;max-width:150px;height:100%;color:inherit;text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;font-weight:400;font-size:14px;font-family:"Helvetica Neue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;opacity:.7}.tab-item:hover{cursor:pointer}.tabs-item-hide>.tabs,.tabs.tabs-item-hide{display:none}.tabs-icon-bottom.tabs .tab-item,.tabs-icon-bottom>.tabs .tab-item,.tabs-icon-top.tabs .tab-item,.tabs-icon-top>.tabs .tab-item{font-size:12px;line-height:14px}.tab-item .icon{display:block;margin:0 auto;height:32px;font-size:32px}.tabs-icon-left.tabs .tab-item,.tabs-icon-left>.tabs .tab-item,.tabs-icon-right.tabs .tab-item,.tabs-icon-right>.tabs .tab-item{font-size:12px}.tabs-icon-left.tabs .tab-item .icon,.tabs-icon-left>.tabs .tab-item .icon,.tabs-icon-right.tabs .tab-item .icon,.tabs-icon-right>.tabs .tab-item .icon{display:inline-block;vertical-align:top}.tabs-icon-left.tabs .tab-item .icon:before,.tabs-icon-left>.tabs .tab-item .icon:before,.tabs-icon-right.tabs .tab-item .icon:before,.tabs-icon-right>.tabs .tab-item .icon:before{font-size:24px;line-height:49px}.tabs-icon-left.tabs .tab-item .icon,.tabs-icon-left>.tabs .tab-item .icon{padding-right:3px}.tabs-icon-right.tabs .tab-item .icon,.tabs-icon-right>.tabs .tab-item .icon{padding-left:3px}.tabs-icon-only.tabs .icon,.tabs-icon-only>.tabs .icon{line-height:inherit}.tab-item.has-badge{position:relative}.tab-item .badge{position:absolute;top:4%;right:33%;right:calc(50% - 26px);padding:1px 6px;height:auto;font-size:12px;line-height:16px}.tab-item.activated,.tab-item.active,.tab-item.tab-item-active{opacity:1}.tab-item.activated.tab-item-light,.tab-item.active.tab-item-light,.tab-item.tab-item-active.tab-item-light{color:#fff}.tab-item.activated.tab-item-stable,.tab-item.active.tab-item-stable,.tab-item.tab-item-active.tab-item-stable{color:#f8f8f8}.tab-item.activated.tab-item-positive,.tab-item.active.tab-item-positive,.tab-item.tab-item-active.tab-item-positive{color:#4a87ee}.tab-item.activated.tab-item-calm,.tab-item.active.tab-item-calm,.tab-item.tab-item-active.tab-item-calm{color:#43cee6}.tab-item.activated.tab-item-assertive,.tab-item.active.tab-item-assertive,.tab-item.tab-item-active.tab-item-assertive{color:#ef4e3a}.tab-item.activated.tab-item-balanced,.tab-item.active.tab-item-balanced,.tab-item.tab-item-active.tab-item-balanced{color:#6c3}.tab-item.activated.tab-item-energized,.tab-item.active.tab-item-energized,.tab-item.tab-item-active.tab-item-energized{color:#f0b840}.tab-item.activated.tab-item-royal,.tab-item.active.tab-item-royal,.tab-item.tab-item-active.tab-item-royal{color:#8a6de9}.tab-item.activated.tab-item-dark,.tab-item.active.tab-item-dark,.tab-item.tab-item-active.tab-item-dark{color:#444}.item.tabs{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;padding:0}.item.tabs .icon:before{position:relative}.tab-item.disabled,.tab-item[disabled]{opacity:.4;cursor:default;pointer-events:none}.tab-item.tab-item-android{border-top:2px solid inherit}.menu{position:absolute;top:0;bottom:0;z-index:0;overflow:hidden;min-height:100%;max-height:100%;width:275px;background-color:#fff}.menu-content{-webkit-transform:none;-moz-transform:none;transform:none;box-shadow:-1px 0 2px rgba(0,0,0,.2),1px 0 2px rgba(0,0,0,.2)}.menu-open .menu-content .pane,.menu-open .menu-content .scroll-content{pointer-events:none}.grade-b .menu-content,.grade-c .menu-content{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;right:-1px;left:-1px;border-right:1px solid #ccc;border-left:1px solid #ccc;box-shadow:none}.menu-left{left:0}.menu-right{right:0}.menu-animated{-webkit-transition:-webkit-transform 200ms ease;-moz-transition:-moz-transform 200ms ease;transition:transform 200ms ease}.modal-backdrop{-webkit-transition:background-color 300ms ease-in-out;-moz-transition:background-color 300ms ease-in-out;transition:background-color 300ms ease-in-out;position:fixed;top:0;left:0;z-index:10;width:100%;height:100%;background-color:rgba(0,0,0,0)}.modal-backdrop.active{background-color:rgba(0,0,0,.5)}.modal{position:absolute;top:0;z-index:10;overflow:hidden;min-height:100%;width:100%;background-color:#fff}@media (min-width:680px){.modal{top:20%;right:20%;bottom:20%;left:20%;overflow:visible;min-height:240px;width:60%}.modal.ng-leave-active{bottom:0}}.modal-open{pointer-events:none}.modal-open .modal,.modal-open .modal-backdrop{pointer-events:auto}.popup{position:fixed;top:50%;left:50%;z-index:12;visibility:hidden;width:250px;max-width:100%;border-radius:0;background-color:rgba(255,255,255,.9)}.popup.popup-hidden{-webkit-animation-name:scaleOut;-moz-animation-name:scaleOut;animation-name:scaleOut;-webkit-animation-duration:.1s;-moz-animation-duration:.1s;animation-duration:.1s;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.popup.popup-showing{visibility:visible}.popup.active{-webkit-animation-name:superScaleIn;-moz-animation-name:superScaleIn;animation-name:superScaleIn;-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.popup-head{padding:15px 0;border-bottom:1px solid #eee;text-align:center}.popup-title{margin:0;padding:0;font-size:15px}.popup-sub-title{margin:5px 0 0;padding:0;font-weight:400;font-size:11px}.popup-body,.popup-buttons.row{padding:10px}.popup-buttons .button{margin:0 5px;min-height:45px;border-radius:2px;line-height:20px}.popup-buttons .button:first-child{margin-left:0}.popup-buttons .button:last-child{margin-right:0}.popup-open,.popup-open.modal-open .modal{pointer-events:none}.popup-open .popup,.popup-open .popup-backdrop{pointer-events:auto}.loading{-webkit-transition:.2s opacity linear;-moz-transition:.2s opacity linear;transition:.2s opacity linear;visibility:hidden;opacity:0;position:fixed;top:50%;left:50%;z-index:13;padding:20px;border-radius:5px;background-color:rgba(0,0,0,.7);color:#fff;text-align:center;text-overflow:ellipsis;font-size:15px}.loading.visible{visibility:visible}.loading.active{opacity:1}.loading h1,.loading h2,.loading h3,.loading h4,.loading h5,.loading h6{color:#fff}.item{border-color:#ddd;background-color:#fff;color:#444;position:relative;z-index:2;display:block;margin:-1px;padding:15px;border-width:1px;border-style:solid;font-size:16px}.item h2{margin:0 0 4px;font-size:16px}.item h3{margin:0 0 4px;font-size:14px}.item h4{margin:0 0 4px;font-size:12px}.item h5,.item h6{margin:0 0 3px;font-size:10px}.item p{color:#666;font-size:14px}.item h1:last-child,.item h2:last-child,.item h3:last-child,.item h4:last-child,.item h5:last-child,.item h6:last-child,.item p:last-child{margin-bottom:0}.item .badge{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;position:absolute;top:15px;right:30px}.item.item-button-right .badge{right:65px}.item.item-divider .badge{top:8px}.item .badge+.badge{margin-right:5px}.item.item-light{border-color:#ddd;background-color:#fff;color:#444}.item.item-stable{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.item.item-positive{border-color:#145fd7;background-color:#4a87ee;color:#fff}.item.item-calm{border-color:#1aacc3;background-color:#43cee6;color:#fff}.item.item-assertive{border-color:#cc2311;background-color:#ef4e3a;color:#fff}.item.item-balanced{border-color:#498f24;background-color:#6c3;color:#fff}.item.item-energized{border-color:#d39211;background-color:#f0b840;color:#fff}.item.item-royal{border-color:#552bdf;background-color:#8a6de9;color:#fff}.item.item-dark{border-color:#111;background-color:#444;color:#fff}.item[ng-click]:hover{cursor:pointer}.item .item-content.activated,.item .item-content.active,.item-complex.activated .item-content,.item-complex.active .item-content,.item.activated,.item.active{border-color:#ccc;background-color:#D9D9D9}.item .item-content.activated.item-light,.item .item-content.active.item-light,.item-complex.activated .item-content.item-light,.item-complex.active .item-content.item-light,.item.activated.item-light,.item.active.item-light{border-color:#ccc;background-color:#fafafa}.item .item-content.activated.item-stable,.item .item-content.active.item-stable,.item-complex.activated .item-content.item-stable,.item-complex.active .item-content.item-stable,.item.activated.item-stable,.item.active.item-stable{border-color:#a2a2a2;background-color:#e5e5e5}.item .item-content.activated.item-positive,.item .item-content.active.item-positive,.item-complex.activated .item-content.item-positive,.item-complex.active .item-content.item-positive,.item.activated.item-positive,.item.active.item-positive{border-color:#145fd7;background-color:#145fd7}.item .item-content.activated.item-calm,.item .item-content.active.item-calm,.item-complex.activated .item-content.item-calm,.item-complex.active .item-content.item-calm,.item.activated.item-calm,.item.active.item-calm{border-color:#1aacc3;background-color:#1aacc3}.item .item-content.activated.item-assertive,.item .item-content.active.item-assertive,.item-complex.activated .item-content.item-assertive,.item-complex.active .item-content.item-assertive,.item.activated.item-assertive,.item.active.item-assertive{border-color:#cc2311;background-color:#cc2311}.item .item-content.activated.item-balanced,.item .item-content.active.item-balanced,.item-complex.activated .item-content.item-balanced,.item-complex.active .item-content.item-balanced,.item.activated.item-balanced,.item.active.item-balanced{border-color:#498f24;background-color:#498f24}.item .item-content.activated.item-energized,.item .item-content.active.item-energized,.item-complex.activated .item-content.item-energized,.item-complex.active .item-content.item-energized,.item.activated.item-energized,.item.active.item-energized{border-color:#d39211;background-color:#d39211}.item .item-content.activated.item-royal,.item .item-content.active.item-royal,.item-complex.activated .item-content.item-royal,.item-complex.active .item-content.item-royal,.item.activated.item-royal,.item.active.item-royal{border-color:#552bdf;background-color:#552bdf}.item .item-content.activated.item-dark,.item .item-content.active.item-dark,.item-complex.activated .item-content.item-dark,.item-complex.active .item-content.item-dark,.item.activated.item-dark,.item.active.item-dark{border-color:#000;background-color:#262626}.item,.item h1,.item h2,.item h3,.item h4,.item h5,.item h6,.item p,.item-content,.item-content h1,.item-content h2,.item-content h3,.item-content h4,.item-content h5,.item-content h6,.item-content p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.item{color:inherit;text-decoration:none}a.item:focus,a.item:hover{text-decoration:none}.item-complex,a.item.item-complex,button.item.item-complex{padding:0}.item-complex .item-content,.item-radio .item-content{position:relative;z-index:2;padding:15px 45px 15px 15px;border:none;background-color:#fff}a.item-content{display:block;color:inherit;text-decoration:none}.item-body h1,.item-body h2,.item-body h3,.item-body h4,.item-body h5,.item-body h6,.item-body p,.item-complex.item-text-wrap,.item-complex.item-text-wrap .item-content,.item-complex.item-text-wrap h1,.item-complex.item-text-wrap h2,.item-complex.item-text-wrap h3,.item-complex.item-text-wrap h4,.item-complex.item-text-wrap h5,.item-complex.item-text-wrap h6,.item-complex.item-text-wrap p,.item-text-wrap,.item-text-wrap .item,.item-text-wrap .item-content,.item-text-wrap h1,.item-text-wrap h2,.item-text-wrap h3,.item-text-wrap h4,.item-text-wrap h5,.item-text-wrap h6,.item-text-wrap p{overflow:visible;white-space:normal}.item-icon-left .icon,.item-icon-right .icon{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px}.item-icon-left .icon:before,.item-icon-right .icon:before{display:block;width:32px;text-align:center}.item .fill-icon{min-width:30px;min-height:30px;font-size:28px}.item-icon-left{padding-left:50px}.item-icon-left .icon{left:10px}.item-complex.item-icon-left{padding-left:0}.item-complex.item-icon-left .item-content{padding-left:50px}.item-icon-right{padding-right:50px}.item-icon-right .icon{right:10px}.item-complex.item-icon-right{padding-right:0}.item-complex.item-icon-right .item-content{padding-right:50px}.item-icon-left.item-icon-right .icon:first-child{right:auto}.item-icon-left .item-delete .icon,.item-icon-left.item-icon-right .icon:last-child{left:auto}.item-icon-left .icon-accessory,.item-icon-right .icon-accessory{color:#ccc;font-size:16px}.item-icon-left .icon-accessory{left:3px}.item-icon-right .icon-accessory{right:3px}.item-button-left{padding-left:68px}.item-button-left .item-content>.button,.item-button-left>.button{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:8px;left:10px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}.item-button-left .item-content>.button .icon:before,.item-button-left>.button .icon:before{position:relative;left:auto;width:auto;line-height:31px}.item-button-left .item-content>.button>.button,.item-button-left>.button>.button{margin:0 2px;min-height:34px;font-size:18px;line-height:32px}.item-button-right,a.item.item-button-right,button.item.item-button-right{padding-right:75px}.item-button-right .item-content>.button,.item-button-right .item-content>.buttons,.item-button-right>.button,.item-button-right>.buttons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:8px;right:15px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}.item-button-right .item-content>.button .icon:before,.item-button-right .item-content>.buttons .icon:before,.item-button-right>.button .icon:before,.item-button-right>.buttons .icon:before{position:relative;left:auto;width:auto;line-height:31px}.item-button-right .item-content>.button>.button,.item-button-right .item-content>.buttons>.button,.item-button-right>.button>.button,.item-button-right>.buttons>.button{margin:0 2px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}.item-avatar,.item-avatar .item-content,.item-avatar-left,.item-avatar-left .item-content{padding-left:70px;min-height:70px}.item-avatar .item-content .item-image,.item-avatar .item-content>img:first-child,.item-avatar .item-image,.item-avatar-left .item-content .item-image,.item-avatar-left .item-content>img:first-child,.item-avatar-left .item-image,.item-avatar-left>img:first-child,.item-avatar>img:first-child{position:absolute;top:15px;left:15px;max-width:40px;max-height:40px;width:100%;border-radius:4px}.item-avatar-right,.item-avatar-right .item-content{padding-right:70px;min-height:70px}.item-avatar-right .item-content .item-image,.item-avatar-right .item-content>img:first-child,.item-avatar-right .item-image,.item-avatar-right>img:first-child{position:absolute;top:15px;right:15px;max-width:40px;max-height:40px;width:100%;border-radius:4px}.item-thumbnail-left,.item-thumbnail-left .item-content{padding-left:105px;min-height:100px}.item-thumbnail-left .item-content .item-image,.item-thumbnail-left .item-content>img:first-child,.item-thumbnail-left .item-image,.item-thumbnail-left>img:first-child{position:absolute;top:10px;left:10px;max-width:80px;max-height:80px;width:100%}.item-avatar-left.item-complex,.item-avatar.item-complex,.item-thumbnail-left.item-complex{padding-left:0}.item-thumbnail-right,.item-thumbnail-right .item-content{padding-right:105px;min-height:100px}.item-thumbnail-right .item-content .item-image,.item-thumbnail-right .item-content>img:first-child,.item-thumbnail-right .item-image,.item-thumbnail-right>img:first-child{position:absolute;top:10px;right:10px;max-width:80px;max-height:80px;width:100%}.item-avatar-right.item-complex,.item-thumbnail-right.item-complex{padding-right:0}.item-image{padding:0;text-align:center}.item-image .list-img,.item-image img:first-child{width:100%;vertical-align:middle}.item-body{overflow:auto;padding:15px;text-overflow:inherit;white-space:normal}.item-body h1,.item-body h2,.item-body h3,.item-body h4,.item-body h5,.item-body h6,.item-body p{margin-top:15px;margin-bottom:15px}.item-divider{padding-top:8px;padding-bottom:8px;min-height:30px;background-color:#f5f5f5;color:#222;font-weight:700}.item-note{float:right;color:#aaa;font-size:14px}.item-left-editable .item-content,.item-right-editable .item-content{-webkit-transition-duration:250ms;-moz-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:ease-in-out;-moz-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.item-left-editable .item-content{-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;transition-property:transform}.item-right-editable .item-content{-webkit-transition-property:margin-right;-moz-transition-property:margin-right;transition-property:margin-right}.item-left-editable.item-right-editable .item-content{-webkit-transition-property:-webkit-transform,margin-right;-moz-transition-property:-moz-transform,margin-right;transition-property:transform,margin-right}.item-left-editing.item-left-editable .item-content,.list-left-editing .item-left-editable .item-content{-webkit-transform:translate3d(50px,0,0);-moz-transform:translate3d(50px,0,0);transform:translate3d(50px,0,0)}.item-right-editing.item-right-editable .item-content,.list-right-editing .item-right-editable .item-content{margin-right:50px}.item-left-edit{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;-webkit-transform:translate3d(-42px,0,0);-moz-transform:translate3d(-42px,0,0);transform:translate3d(-42px,0,0);position:absolute;top:0;left:0;z-index:0;width:50px;height:100%;line-height:100%}.item-left-edit .button{height:100%}.item-left-edit .button.icon{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%}.item-left-editing .item-left-edit,.list-left-editing .item-left-edit{-webkit-transform:translate3d(8px,0,0);-moz-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}.item-delete .button.icon{color:#ef4e3a;font-size:24px}.item-delete .button.icon:hover{opacity:.7}.item-right-edit{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;position:absolute;top:0;right:0;z-index:0;width:50px;height:100%;background:inherit}.item-right-edit .button{min-width:50px;height:100%}.item-right-edit .button.icon{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px}.item-reorder .button.icon{color:#444;font-size:32px}.item-reordering{position:absolute;left:0;top:0;z-index:9;width:100%;box-shadow:0 0 10px 0 #aaa}.item-reordering .item-reorder{z-index:1}.item-placeholder{opacity:.7}.item-left-edit.item-delete,.item-right-edit.item-reorder{opacity:1}.item-left-edit.item-delete.ng-hide,.item-right-edit.item-reorder.ng-hide{opacity:0}.item-left-edit.item-delete.ng-hide-add,.item-left-edit.item-delete.ng-hide-remove,.item-right-edit.item-reorder.ng-hide-add,.item-right-edit.item-reorder.ng-hide-remove{display:block!important}.item-options{position:absolute;top:0;right:0;z-index:1;height:100%}.item-options .button{height:100%;border:none;border-radius:0}.list{position:relative;padding-top:1px;padding-bottom:1px;padding-left:0;margin-bottom:20px}.list:last-child{margin-bottom:0}.list-header{margin-top:20px;padding:5px 15px;background-color:transparent;color:#222;font-weight:700}.card.list .list-item{padding-right:1px;padding-left:1px}.card,.list-inset{overflow:hidden;margin:20px 10px;border-radius:2px;background-color:#fff}.card{padding-top:1px;padding-bottom:1px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.card .item:first-child,.card .item:first-child .item-content,.list-inset .item:first-child,.list-inset .item:first-child .item-content,.padding>.list .item:first-child,.padding>.list .item:first-child .item-content{border-top-left-radius:2px;border-top-right-radius:2px}.card .item:last-child,.card .item:last-child .item-content,.list-inset .item:last-child,.list-inset .item:last-child .item-content,.padding>.list .item:last-child,.padding>.list .item:last-child .item-content{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.card .item:last-child,.list-inset .item:last-child{margin-bottom:-1px}.card .item,.list-inset .item,.padding-horizontal>.list .item,.padding>.list .item{margin-right:0;margin-left:0}.card .item.item-input input,.list-inset .item.item-input input,.padding-horizontal>.list .item.item-input input,.padding>.list .item.item-input input{padding-right:44px}.padding-left>.list .item{margin-left:0}.padding-right>.list .item{margin-right:0}.badge{background-color:transparent;color:#AAA;z-index:1;display:inline-block;padding:3px 8px;min-width:10px;border-radius:10px;vertical-align:baseline;text-align:center;white-space:nowrap;font-weight:700;font-size:14px;line-height:16px}.badge:empty{display:none}.badge.badge-light,.tabs .tab-item .badge.badge-light{background-color:#fff;color:#444}.badge.badge-stable,.tabs .tab-item .badge.badge-stable{background-color:#f8f8f8;color:#444}.badge.badge-positive,.tabs .tab-item .badge.badge-positive{background-color:#4a87ee;color:#fff}.badge.badge-calm,.tabs .tab-item .badge.badge-calm{background-color:#43cee6;color:#fff}.badge.badge-assertive,.tabs .tab-item .badge.badge-assertive{background-color:#ef4e3a;color:#fff}.badge.badge-balanced,.tabs .tab-item .badge.badge-balanced{background-color:#6c3;color:#fff}.badge.badge-energized,.tabs .tab-item .badge.badge-energized{background-color:#f0b840;color:#fff}.badge.badge-royal,.tabs .tab-item .badge.badge-royal{background-color:#8a6de9;color:#fff}.badge.badge-dark,.tabs .tab-item .badge.badge-dark{background-color:#444;color:#fff}.button .badge{position:relative;top:-1px}.slider{position:relative;visibility:hidden;overflow:hidden}.slider-slides{position:relative;height:100%}.slider-slide{position:relative;display:block;float:left;width:100%;height:100%;vertical-align:top}.slider-slide-image>img{width:100%}.slider-pager{position:absolute;bottom:20px;z-index:1;width:100%;height:15px;text-align:center}.slider-pager .slider-pager-page{display:inline-block;margin:0 3px;width:15px;color:#000;text-decoration:none;opacity:.3}.slider-pager .slider-pager-page.active{-webkit-transition:opacity .4s ease-in;-moz-transition:opacity .4s ease-in;transition:opacity .4s ease-in;opacity:1}.split-pane{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;align-items:stretch;width:100%;height:100%}.split-pane-menu{-webkit-box-flex:0;-webkit-flex:0 0 320px;-moz-box-flex:0;-moz-flex:0 0 320px;-ms-flex:0 0 320px;flex:0 0 320px;overflow-y:auto;width:320px;height:100%;border-right:1px solid #eee}@media all and (max-width:568px){.split-pane-menu{border-right:none}}.split-pane-content{-webkit-box-flex:1;-webkit-flex:1 0 auto;-moz-box-flex:1;-moz-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}form{margin:0 0 1.42857}legend{display:block;margin-bottom:1.42857;padding:0;width:100%;border:1px solid #ddd;color:#444;font-size:21px;line-height:2.85714}legend small{color:#f8f8f8;font-size:1.07143}button,input,label,select,textarea{font-weight:400;font-size:14px;line-height:1.42857}button,input,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif}.item-input{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:relative;overflow:hidden;padding:6px 0 5px 8px}.item-input input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-flex:1;-webkit-flex:1 0 220px;-moz-box-flex:1;-moz-flex:1 0 220px;-ms-flex:1 0 220px;flex:1 0 220px;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;padding-right:24px;background-color:transparent}.item-input .button .icon{-webkit-box-flex:0;-webkit-flex:0 0 24px;-moz-box-flex:0;-moz-flex:0 0 24px;-ms-flex:0 0 24px;flex:0 0 24px;position:static;display:inline-block;height:auto;text-align:center;font-size:16px}.item-input .button-bar{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-flex:1;-webkit-flex:1 0 220px;-moz-box-flex:1;-moz-flex:1 0 220px;-ms-flex:1 0 220px;flex:1 0 220px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.item-input .icon{min-width:14px}.item-input-inset{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:relative;overflow:hidden;padding:10px}.item-input-wrapper{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1 0;-moz-box-flex:1;-moz-flex:1 0;-ms-flex:1 0;flex:1 0;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;padding-right:8px;padding-left:8px;background:#eee}.item-input-inset .item-input-wrapper input{padding-left:4px;height:29px;background:0 0;line-height:18px}.item-input-wrapper~.button{margin-left:10px}.input-label{-webkit-box-flex:1;-webkit-flex:1 0 100px;-moz-box-flex:1;-moz-flex:1 0 100px;-ms-flex:1 0 100px;flex:1 0 100px;display:table;padding:7px 10px 7px 3px;max-width:200px;width:35%;color:#444;font-weight:700;font-size:14px}.placeholder-icon{color:#aaa}.placeholder-icon:first-child{padding-right:6px}.placeholder-icon:last-child{padding-left:6px}.item-stacked-label{display:block;background-color:transparent;box-shadow:none}.item-stacked-label .icon,.item-stacked-label .input-label{display:inline-block;padding:4px 0;vertical-align:middle}.item-stacked-label input,.item-stacked-label textarea{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;padding:4px 8px 3px;border:none;background-color:#fff}.item-stacked-label input{overflow:hidden;height:46px}.item-floating-label{display:block;background-color:transparent;box-shadow:none}.item-floating-label .input-label{position:relative;padding:5px 0 0;opacity:0;top:10px;-webkit-transition:opacity .15s ease-in,top .2s linear;-moz-transition:opacity .15s ease-in,top .2s linear;transition:opacity .15s ease-in,top .2s linear}.item-floating-label .input-label.has-input{opacity:1;top:0;-webkit-transition:opacity .15s ease-in,top .2s linear;-moz-transition:opacity .15s ease-in,top .2s linear;transition:opacity .15s ease-in,top .2s linear}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{display:block;padding-top:2px;height:34px;color:#111;vertical-align:middle;font-size:14px;line-height:16px}.platform-android input[type=date],.platform-android input[type=datetime-local],.platform-android input[type=month],.platform-android input[type=time],.platform-android input[type=week],.platform-ios input[type=date],.platform-ios input[type=datetime-local],.platform-ios input[type=month],.platform-ios input[type=time],.platform-ios input[type=week]{padding-top:8px}input,textarea{width:100%}textarea{height:auto}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{border:0}input[type=checkbox],input[type=radio]{margin:0;line-height:normal}input[type=button],input[type=checkbox],input[type=file],input[type=image],input[type=radio],input[type=reset],input[type=submit]{width:auto}input[type=file]{line-height:34px}.cloned-text-input+input,.cloned-text-input+textarea,.previous-input-focus{position:absolute;left:-9999px;width:200px}input::-moz-placeholder,textarea::-moz-placeholder{color:#aaa}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#aaa}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#aaa}input[disabled],input[readonly]:not(.cloned-text-input),select[disabled],select[readonly],textarea[disabled],textarea[readonly]:not(.cloned-text-input){background-color:#f8f8f8;cursor:not-allowed}input[type=checkbox][disabled],input[type=checkbox][readonly],input[type=radio][disabled],input[type=radio][readonly]{background-color:transparent}.checkbox{position:relative;display:inline-block;padding:7px;cursor:pointer}.checkbox .checkbox-icon:before,.checkbox input:before{border-color:#4a87ee}.checkbox input:checked+.checkbox-icon:before,.checkbox input:checked:before{background:#4a87ee}.checkbox.checkbox-light .checkbox-icon:before,.checkbox.checkbox-light input:before{border-color:#ddd}.checkbox.checkbox-light input:checked+.checkbox-icon:before,.checkbox.checkbox-light input:checked:before{background:#ddd}.checkbox.checkbox-stable .checkbox-icon:before,.checkbox.checkbox-stable input:before{border-color:#b2b2b2}.checkbox.checkbox-stable input:checked+.checkbox-icon:before,.checkbox.checkbox-stable input:checked:before{background:#b2b2b2}.checkbox.checkbox-positive .checkbox-icon:before,.checkbox.checkbox-positive input:before{border-color:#4a87ee}.checkbox.checkbox-positive input:checked+.checkbox-icon:before,.checkbox.checkbox-positive input:checked:before{background:#4a87ee}.checkbox.checkbox-calm .checkbox-icon:before,.checkbox.checkbox-calm input:before{border-color:#43cee6}.checkbox.checkbox-calm input:checked+.checkbox-icon:before,.checkbox.checkbox-calm input:checked:before{background:#43cee6}.checkbox.checkbox-assertive .checkbox-icon:before,.checkbox.checkbox-assertive input:before{border-color:#ef4e3a}.checkbox.checkbox-assertive input:checked+.checkbox-icon:before,.checkbox.checkbox-assertive input:checked:before{background:#ef4e3a}.checkbox.checkbox-balanced .checkbox-icon:before,.checkbox.checkbox-balanced input:before{border-color:#6c3}.checkbox.checkbox-balanced input:checked+.checkbox-icon:before,.checkbox.checkbox-balanced input:checked:before{background:#6c3}.checkbox.checkbox-energized .checkbox-icon:before,.checkbox.checkbox-energized input:before{border-color:#f0b840}.checkbox.checkbox-energized input:checked+.checkbox-icon:before,.checkbox.checkbox-energized input:checked:before{background:#f0b840}.checkbox.checkbox-royal .checkbox-icon:before,.checkbox.checkbox-royal input:before{border-color:#8a6de9}.checkbox.checkbox-royal input:checked+.checkbox-icon:before,.checkbox.checkbox-royal input:checked:before{background:#8a6de9}.checkbox.checkbox-dark .checkbox-icon:before,.checkbox.checkbox-dark input:before{border-color:#444}.checkbox.checkbox-dark input:checked+.checkbox-icon:before,.checkbox.checkbox-dark input:checked:before{background:#444}.checkbox.checkbox-input-hidden input{display:none!important}.checkbox input,.checkbox-icon{position:relative;width:28px;height:28px;display:block;border:0;background:0 0;cursor:pointer;-webkit-appearance:none}.checkbox input:before,.checkbox-icon:before{display:table;width:100%;height:100%;border-width:1px;border-style:solid;border-radius:28px;background:#fff;content:' ';transition:background-color 20ms ease-in-out}.checkbox input:checked:before,input:checked+.checkbox-icon:before{border-width:2px}.checkbox input:after,.checkbox-icon:after{-webkit-transition:opacity .05s ease-in-out;-moz-transition:opacity .05s ease-in-out;transition:opacity .05s ease-in-out;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);transform:rotate(-45deg);position:absolute;top:30%;left:26%;display:table;width:15px;height:10.33px;border:3px solid #fff;border-top:0;border-right:0;content:' ';opacity:0}.grade-c .checkbox input:after,.grade-c .checkbox-icon:after{-webkit-transform:rotate(0);-moz-transform:rotate(0);transform:rotate(0);top:3px;left:4px;border:none;color:#fff;content:'\2713';font-weight:700;font-size:20px}.checkbox input:checked:after,input:checked+.checkbox-icon:after{opacity:1}.item-checkbox{padding-left:58px}.item-checkbox.active{box-shadow:none}.item-checkbox .checkbox{position:absolute;top:50%;right:7.5px;left:7.5px;z-index:3;margin-top:-21px}.item-checkbox.item-checkbox-right{padding-right:58px;padding-left:15px}.item-checkbox-right .checkbox input,.item-checkbox-right .checkbox-icon{float:right}.item-toggle{pointer-events:none}.toggle{position:relative;display:inline-block;pointer-events:auto;margin:-5px;padding:5px}.toggle input:checked+.track{border-color:#4a87ee;background-color:#4a87ee}.toggle.dragging .handle{background-color:#f2f2f2!important}.toggle.toggle-light input:checked+.track{border-color:#ddd;background-color:#ddd}.toggle.toggle-stable input:checked+.track{border-color:#b2b2b2;background-color:#b2b2b2}.toggle.toggle-positive input:checked+.track{border-color:#4a87ee;background-color:#4a87ee}.toggle.toggle-calm input:checked+.track{border-color:#43cee6;background-color:#43cee6}.toggle.toggle-assertive input:checked+.track{border-color:#ef4e3a;background-color:#ef4e3a}.toggle.toggle-balanced input:checked+.track{border-color:#6c3;background-color:#6c3}.toggle.toggle-energized input:checked+.track{border-color:#f0b840;background-color:#f0b840}.toggle.toggle-royal input:checked+.track{border-color:#8a6de9;background-color:#8a6de9}.toggle.toggle-dark input:checked+.track{border-color:#444;background-color:#444}.toggle input{display:none}.toggle .track{-webkit-transition-timing-function:ease-in-out;-moz-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:background-color,border;-moz-transition-property:background-color,border;transition-property:background-color,border;display:inline-block;box-sizing:border-box;width:54px;height:32px;border:solid 2px #E5E5E5;border-radius:20px;background-color:#E5E5E5;content:' ';cursor:pointer;pointer-events:none}.platform-android4_2 .toggle .track{-webkit-background-clip:padding-box}.toggle .handle{-webkit-transition:.2s ease-in-out;-moz-transition:.2s ease-in-out;transition:.2s ease-in-out;position:absolute;display:block;width:28px;height:28px;border-radius:28px;background-color:#fff;top:7px;left:7px}.toggle .handle:before{position:absolute;top:-4px;left:-22px;padding:19px 35px;content:" "}.toggle input:checked+.track .handle{-webkit-transform:translate3d(22px,0,0);-moz-transform:translate3d(22px,0,0);transform:translate3d(22px,0,0);background-color:#fff}.item-toggle.active{box-shadow:none}.item-toggle,.item-toggle.item-complex .item-content{padding-right:99px}.item-toggle.item-complex{padding-right:0}.item-toggle .toggle{position:absolute;top:7.5px;right:15px;z-index:3}.toggle input:disabled+.track{opacity:.6}.item-radio{padding:0}.item-radio:hover{cursor:pointer}.item-radio .item-content{padding-right:60px}.item-radio .radio-icon{position:absolute;top:0;right:0;z-index:3;visibility:hidden;padding:13px;height:100%;font-size:24px}.item-radio input{position:absolute;left:-9999px}.item-radio input:checked~.item-content{background:#f7f7f7}.item-radio input:checked~.radio-icon{visibility:visible}.platform-android.grade-b .item-radio,.platform-android.grade-c .item-radio{-webkit-animation:androidCheckedbugfix infinite 1s}@-webkit-keyframes androidCheckedbugfix{from,to{padding:0}}input[type=range]{display:inline-block;overflow:hidden;margin-top:5px;margin-bottom:5px;padding-right:2px;padding-left:1px;width:auto;height:35px;outline:0;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#ccc),color-stop(100%,#ccc));background:linear-gradient(to right,#ccc 0,#ccc 100%);background-position:center;background-size:99% 4px;background-repeat:no-repeat;-webkit-appearance:none}input[type=range]::-webkit-slider-thumb{position:relative;width:20px;height:20px;border-radius:10px;background-color:#fff;box-shadow:0 0 2px rgba(0,0,0,.5),1px 3px 5px rgba(0,0,0,.25);cursor:pointer;-webkit-appearance:none}input[type=range]::-webkit-slider-thumb:before{position:absolute;top:8px;left:-2001px;width:2000px;height:4px;background:#444;content:' '}input[type=range]::-webkit-slider-thumb:after{position:absolute;top:-20px;left:-20px;padding:30px;content:' '}.range{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;padding:2px 4px}.range.range-light input::-webkit-slider-thumb:before{background:#ddd}.range.range-stable input::-webkit-slider-thumb:before{background:#b2b2b2}.range.range-positive input::-webkit-slider-thumb:before{background:#4a87ee}.range.range-calm input::-webkit-slider-thumb:before{background:#43cee6}.range.range-balanced input::-webkit-slider-thumb:before{background:#6c3}.range.range-assertive input::-webkit-slider-thumb:before{background:#ef4e3a}.range.range-energized input::-webkit-slider-thumb:before{background:#f0b840}.range.range-royal input::-webkit-slider-thumb:before{background:#8a6de9}.range.range-dark input::-webkit-slider-thumb:before{background:#444}.range .icon{-webkit-box-flex:0;-webkit-flex:0;-moz-box-flex:0;-moz-flex:0;-ms-flex:0;flex:0;display:block;min-width:24px;text-align:center;font-size:24px}.range input{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;margin-right:10px;margin-left:10px}.range-label{-webkit-box-flex:0;-webkit-flex:0 0 auto;-moz-box-flex:0;-moz-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;display:block;white-space:nowrap}.range-label:first-child{padding-left:5px}.range input+.range-label{padding-right:5px;padding-left:0}.item-select{position:relative}.item-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;top:0;right:0;padding:13px 45px 15px 15px;max-width:65%;border:none;background:0 0;color:#333;text-indent:.01px;text-overflow:'';white-space:nowrap;font-size:14px;cursor:pointer;direction:rtl}.item-select select::-ms-expand{display:none}.item-select option{direction:ltr}.item-select:after{position:absolute;top:50%;right:15px;margin-top:-3px;width:0;height:0;border-top:5px solid;border-right:5px solid rgba(0,0,0,0);border-left:5px solid rgba(0,0,0,0);color:#999;content:"";pointer-events:none}select[multiple],select[size]{height:auto}progress{display:block;margin:15px auto;width:100%}.button{border-color:#b2b2b2;background-color:#f8f8f8;color:#444;position:relative;display:inline-block;margin:0;padding:0 12px;min-width:52px;min-height:47px;border-width:1px;border-style:solid;border-radius:2px;vertical-align:top;text-align:center;text-overflow:ellipsis;font-size:16px;line-height:42px;cursor:pointer}.button:hover{color:#444;text-decoration:none}.button.activated,.button.active{border-color:#a2a2a2;background-color:#e5e5e5;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button:after{position:absolute;top:-6px;right:-8px;bottom:-6px;left:-8px;content:' '}.button .icon{vertical-align:top;pointer-events:none}.button .icon:before,.button.icon-left:before,.button.icon-right:before,.button.icon:before{display:inline-block;padding:0 0 1px;vertical-align:inherit;font-size:24px;line-height:41px;pointer-events:none}.button.icon-left:before{float:left;padding-right:.2em;padding-left:0}.button.icon-right:before{float:right;padding-right:0;padding-left:.2em}.button.button-block,.button.button-full{margin-top:10px;margin-bottom:10px}.button.button-light{border-color:#ddd;background-color:#fff;color:#444}.button.button-light:hover{color:#444;text-decoration:none}.button.button-light.activated,.button.button-light.active{border-color:#ccc;background-color:#fafafa;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-light.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#ddd}.button.button-light.button-icon{border-color:transparent;background:0 0}.button.button-light.button-outline{border-color:#ddd;background:0 0;color:#ddd}.button.button-light.button-outline.activated,.button.button-light.button-outline.active{background-color:#ddd;box-shadow:none;color:#fff}.button.button-stable{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.button.button-stable:hover{color:#444;text-decoration:none}.button.button-stable.activated,.button.button-stable.active{border-color:#a2a2a2;background-color:#e5e5e5;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-stable.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#b2b2b2}.button.button-stable.button-icon{border-color:transparent;background:0 0}.button.button-stable.button-outline{border-color:#b2b2b2;background:0 0;color:#b2b2b2}.button.button-stable.button-outline.activated,.button.button-stable.button-outline.active{background-color:#b2b2b2;box-shadow:none;color:#fff}.button.button-positive{border-color:#145fd7;background-color:#4a87ee;color:#fff}.button.button-positive:hover{color:#fff;text-decoration:none}.button.button-positive.activated,.button.button-positive.active{border-color:#145fd7;background-color:#145fd7;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-positive.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#4a87ee}.button.button-positive.button-icon{border-color:transparent;background:0 0}.button.button-positive.button-outline{border-color:#4a87ee;background:0 0;color:#4a87ee}.button.button-positive.button-outline.activated,.button.button-positive.button-outline.active{background-color:#4a87ee;box-shadow:none;color:#fff}.button.button-calm{border-color:#1aacc3;background-color:#43cee6;color:#fff}.button.button-calm:hover{color:#fff;text-decoration:none}.button.button-calm.activated,.button.button-calm.active{border-color:#1aacc3;background-color:#1aacc3;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-calm.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#43cee6}.button.button-calm.button-icon{border-color:transparent;background:0 0}.button.button-calm.button-outline{border-color:#43cee6;background:0 0;color:#43cee6}.button.button-calm.button-outline.activated,.button.button-calm.button-outline.active{background-color:#43cee6;box-shadow:none;color:#fff}.button.button-assertive{border-color:#cc2311;background-color:#ef4e3a;color:#fff}.button.button-assertive:hover{color:#fff;text-decoration:none}.button.button-assertive.activated,.button.button-assertive.active{border-color:#cc2311;background-color:#cc2311;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-assertive.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#ef4e3a}.button.button-assertive.button-icon{border-color:transparent;background:0 0}.button.button-assertive.button-outline{border-color:#ef4e3a;background:0 0;color:#ef4e3a}.button.button-assertive.button-outline.activated,.button.button-assertive.button-outline.active{background-color:#ef4e3a;box-shadow:none;color:#fff}.button.button-balanced{border-color:#498f24;background-color:#6c3;color:#fff}.button.button-balanced:hover{color:#fff;text-decoration:none}.button.button-balanced.activated,.button.button-balanced.active{border-color:#498f24;background-color:#498f24;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-balanced.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#6c3}.button.button-balanced.button-icon{border-color:transparent;background:0 0}.button.button-balanced.button-outline{border-color:#6c3;background:0 0;color:#6c3}.button.button-balanced.button-outline.activated,.button.button-balanced.button-outline.active{background-color:#6c3;box-shadow:none;color:#fff}.button.button-energized{border-color:#d39211;background-color:#f0b840;color:#fff}.button.button-energized:hover{color:#fff;text-decoration:none}.button.button-energized.activated,.button.button-energized.active{border-color:#d39211;background-color:#d39211;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-energized.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#f0b840}.button.button-energized.button-icon{border-color:transparent;background:0 0}.button.button-energized.button-outline{border-color:#f0b840;background:0 0;color:#f0b840}.button.button-energized.button-outline.activated,.button.button-energized.button-outline.active{background-color:#f0b840;box-shadow:none;color:#fff}.button.button-royal{border-color:#552bdf;background-color:#8a6de9;color:#fff}.button.button-royal:hover{color:#fff;text-decoration:none}.button.button-royal.activated,.button.button-royal.active{border-color:#552bdf;background-color:#552bdf;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-royal.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#8a6de9}.button.button-royal.button-icon{border-color:transparent;background:0 0}.button.button-royal.button-outline{border-color:#8a6de9;background:0 0;color:#8a6de9}.button.button-royal.button-outline.activated,.button.button-royal.button-outline.active{background-color:#8a6de9;box-shadow:none;color:#fff}.button.button-dark{border-color:#111;background-color:#444;color:#fff}.button.button-dark:hover{color:#fff;text-decoration:none}.button.button-dark.activated,.button.button-dark.active{border-color:#000;background-color:#262626;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-dark.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#444}.button.button-dark.button-icon{border-color:transparent;background:0 0}.button.button-dark.button-outline{border-color:#444;background:0 0;color:#444}.button.button-dark.button-outline.activated,.button.button-dark.button-outline.active{background-color:#444;box-shadow:none;color:#fff}.button-small{padding:2px 4px 1px;min-width:28px;min-height:30px;font-size:12px;line-height:26px}.button-small .icon:before,.button-small.icon-left:before,.button-small.icon-right:before,.button-small.icon:before{font-size:16px;line-height:19px;margin-top:3px}.button-large{padding:0 16px;min-width:68px;min-height:59px;font-size:20px;line-height:53px}.button-large .icon:before,.button-large.icon-left:before,.button-large.icon-right:before,.button-large.icon:before{padding-bottom:2px;font-size:32px;line-height:51px}.button-icon{-webkit-transition:opacity .1s;-moz-transition:opacity .1s;transition:opacity .1s;padding:0 6px;min-width:initial;border-color:transparent;background:0 0}.button-icon.button.activated,.button-icon.button.active{border-color:transparent;background:0 0;box-shadow:none;opacity:.3}.button-icon .icon:before,.button-icon.icon:before{font-size:32px}.button-clear{-webkit-transition:opacity .1s;-moz-transition:opacity .1s;transition:opacity .1s;padding:0 6px;max-height:42px;border-color:transparent;background:0 0;box-shadow:none}.button-clear.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#b2b2b2}.button-clear.button-icon{border-color:transparent;background:0 0}.button-clear.activated,.button-clear.active{opacity:.3}.button-outline{-webkit-transition:opacity .1s;-moz-transition:opacity .1s;transition:opacity .1s;background:0 0;box-shadow:none}.button-outline.button-outline{border-color:#b2b2b2;background:0 0;color:#b2b2b2}.button-outline.button-outline.activated,.button-outline.button-outline.active{background-color:#b2b2b2;box-shadow:none;color:#fff}.padding>.button.button-block:first-child{margin-top:0}.button-block{display:block;clear:both}.button-block:after{clear:both}.button-full,.button-full>.button{display:block;margin-right:0;margin-left:0;border-right-width:0;border-left-width:0;border-radius:0}.button-full>button.button,button.button-block,button.button-full,input.button.button-block{width:100%}a.button{text-decoration:none}.button.disabled,.button[disabled]{opacity:.4;cursor:default!important;pointer-events:none}.button-bar{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;width:100%}.button-bar.button-bar-inline{display:block;width:auto;*zoom:1}.button-bar.button-bar-inline:after,.button-bar.button-bar-inline:before{display:table;content:"";line-height:0}.button-bar.button-bar-inline:after{clear:both}.button-bar.button-bar-inline>.button{width:auto;display:inline-block;float:left}.button-bar>.button{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;overflow:hidden;padding:0 16px;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.button-bar>.button .icon:before,.button-bar>.button:before{line-height:44px}.button-bar>.button:first-child{border-radius:2px 0 0 2px}.button-bar>.button:last-child{border-right-width:1px;border-radius:0 2px 2px 0}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0)}100%{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideInUp{0%{-moz-transform:translate3d(0,100%,0)}100%{-moz-transform:translate3d(0,0,0)}}@keyframes slideInUp{0%{transform:translate3d(0,100%,0)}100%{transform:translate3d(0,0,0)}}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translate3d(0,0,0)}100%{-webkit-transform:translate3d(0,100%,0)}}@-moz-keyframes slideOutUp{0%{-moz-transform:translate3d(0,0,0)}100%{-moz-transform:translate3d(0,100%,0)}}@keyframes slideOutUp{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(0,100%,0)}}@-webkit-keyframes slideInFromLeft{from{-webkit-transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideInFromLeft{from{-moz-transform:translateX(-100%)}to{-moz-transform:translateX(0)}}@keyframes slideInFromLeft{from{transform:translateX(-100%)}to{transform:translateX(0)}}@-webkit-keyframes slideInFromRight{from{-webkit-transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideInFromRight{from{-moz-transform:translateX(100%)}to{-moz-transform:translateX(0)}}@keyframes slideInFromRight{from{transform:translateX(100%)}to{transform:translateX(0)}}@-webkit-keyframes slideOutToLeft{from{-webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-100%,0,0)}}@-moz-keyframes slideOutToLeft{from{-moz-transform:translateX(0)}to{-moz-transform:translateX(-100%)}}@keyframes slideOutToLeft{from{transform:translateX(0)}to{transform:translateX(-100%)}}@-webkit-keyframes slideOutToRight{from{-webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(100%,0,0)}}@-moz-keyframes slideOutToRight{from{-moz-transform:translateX(0)}to{-moz-transform:translateX(100%)}}@keyframes slideOutToRight{from{transform:translateX(0)}to{transform:translateX(100%)}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@-moz-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@-moz-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInHalf{from{background-color:rgba(0,0,0,0)}to{background-color:rgba(0,0,0,.5)}}@-moz-keyframes fadeInHalf{from{background-color:rgba(0,0,0,0)}to{background-color:rgba(0,0,0,.5)}}@keyframes fadeInHalf{from{background-color:rgba(0,0,0,0)}to{background-color:rgba(0,0,0,.5)}}@-webkit-keyframes fadeOutHalf{from{background-color:rgba(0,0,0,.5)}to{background-color:rgba(0,0,0,0)}}@-moz-keyframes fadeOutHalf{from{background-color:rgba(0,0,0,.5)}to{background-color:rgba(0,0,0,0)}}@keyframes fadeOutHalf{from{background-color:rgba(0,0,0,.5)}to{background-color:rgba(0,0,0,0)}}@-webkit-keyframes scaleOut{from{-webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(0.8);opacity:0}}@-moz-keyframes scaleOut{from{-moz-transform:scale(1);opacity:1}to{-moz-transform:scale(0.8);opacity:0}}@keyframes scaleOut{from{transform:scale(1);opacity:1}to{transform:scale(0.8);opacity:0}}@-webkit-keyframes scaleIn{from{-webkit-transform:scale(0)}to{-webkit-transform:scale(1)}}@-moz-keyframes scaleIn{from{-moz-transform:scale(0)}to{-moz-transform:scale(1)}}@keyframes scaleIn{from{transform:scale(0)}to{transform:scale(1)}}@-webkit-keyframes superScaleIn{from{-webkit-transform:scale(1.2);opacity:0}to{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes superScaleIn{from{-moz-transform:scale(1.2);opacity:0}to{-moz-transform:scale(1);opacity:1}}@keyframes superScaleIn{from{transform:scale(1.2);opacity:0}to{transform:scale(1);opacity:1}}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@keyframes spin{100%{transform:rotate(360deg)}}.no-animation.ng-enter,.no-animation.ng-leave,.no-animation>.ng-enter,.no-animation>.ng-leave{-webkit-transition:none;-moz-transition:none;transition:none}.noop-animation.ng-enter,.noop-animation.ng-leave,.noop-animation>.ng-enter,.noop-animation>.ng-leave{-webkit-transition:all cubic-bezier(0.25,.46,.45,.94) 250ms;-moz-transition:all cubic-bezier(0.25,.46,.45,.94) 250ms;transition:all cubic-bezier(0.25,.46,.45,.94) 250ms;position:absolute;top:0;right:0;bottom:0;left:0}.ng-animate .pane{position:absolute}.slide-left-right.ng-enter,.slide-left-right.ng-leave,.slide-left-right>.ng-enter,.slide-left-right>.ng-leave,.slide-right-left.reverse.ng-enter,.slide-right-left.reverse.ng-leave,.slide-right-left.reverse>.ng-enter,.slide-right-left.reverse>.ng-leave{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;position:absolute;top:0;right:0;bottom:0;left:0}.slide-left-right.ng-enter,.slide-left-right>.ng-enter,.slide-right-left.reverse.ng-enter,.slide-right-left.reverse>.ng-enter{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.slide-left-right.ng-enter.ng-enter-active,.slide-left-right>.ng-enter.ng-enter-active,.slide-right-left.reverse.ng-enter.ng-enter-active,.slide-right-left.reverse>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-left-right.ng-leave.ng-leave-active,.slide-left-right>.ng-leave.ng-leave-active,.slide-right-left.reverse.ng-leave.ng-leave-active,.slide-right-left.reverse>.ng-leave.ng-leave-active{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.slide-left-right.reverse.ng-enter,.slide-left-right.reverse.ng-leave,.slide-left-right.reverse>.ng-enter,.slide-left-right.reverse>.ng-leave,.slide-right-left.ng-enter,.slide-right-left.ng-leave,.slide-right-left>.ng-enter,.slide-right-left>.ng-leave{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;position:absolute;top:0;right:0;bottom:0;left:0}.slide-left-right.reverse.ng-enter,.slide-left-right.reverse>.ng-enter,.slide-right-left.ng-enter,.slide-right-left>.ng-enter{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.slide-left-right.reverse.ng-enter.ng-enter-active,.slide-left-right.reverse>.ng-enter.ng-enter-active,.slide-right-left.ng-enter.ng-enter-active,.slide-right-left>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-left-right.reverse.ng-leave.ng-leave-active,.slide-left-right.reverse>.ng-leave.ng-leave-active,.slide-right-left.ng-leave.ng-leave-active,.slide-right-left>.ng-leave.ng-leave-active{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.slide-left-right-ios7.ng-enter,.slide-left-right-ios7.ng-leave,.slide-left-right-ios7>.ng-enter,.slide-left-right-ios7>.ng-leave,.slide-right-left-ios7.reverse.ng-enter,.slide-right-left-ios7.reverse.ng-leave,.slide-right-left-ios7.reverse>.ng-enter,.slide-right-left-ios7.reverse>.ng-leave{-webkit-transition:all cubic-bezier(0.4,.6,.2,1) 340ms;-moz-transition:all cubic-bezier(0.4,.6,.2,1) 340ms;transition:all cubic-bezier(0.4,.6,.2,1) 340ms;position:absolute;top:0;right:-1px;bottom:0;left:-1px;width:auto;border-right:none;border-left:none}.slide-left-right-ios7.ng-enter:not(.bar),.slide-left-right-ios7.ng-leave:not(.bar),.slide-left-right-ios7>.ng-enter:not(.bar),.slide-left-right-ios7>.ng-leave:not(.bar),.slide-right-left-ios7.reverse.ng-enter:not(.bar),.slide-right-left-ios7.reverse.ng-leave:not(.bar),.slide-right-left-ios7.reverse>.ng-enter:not(.bar),.slide-right-left-ios7.reverse>.ng-leave:not(.bar){border-right:1px solid transparent;border-left:1px solid transparent}.slide-left-right-ios7.ng-enter,.slide-left-right-ios7>.ng-enter,.slide-right-left-ios7.reverse.ng-enter,.slide-right-left-ios7.reverse>.ng-enter{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.slide-left-right-ios7.ng-leave,.slide-left-right-ios7>.ng-leave,.slide-right-left-ios7.reverse.ng-leave,.slide-right-left-ios7.reverse>.ng-leave{z-index:1}.slide-left-right-ios7.ng-enter.ng-enter-active,.slide-left-right-ios7>.ng-enter.ng-enter-active,.slide-right-left-ios7.reverse.ng-enter.ng-enter-active,.slide-right-left-ios7.reverse>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-left-right-ios7.ng-leave.ng-leave-active,.slide-left-right-ios7>.ng-leave.ng-leave-active,.slide-right-left-ios7.reverse.ng-leave.ng-leave-active,.slide-right-left-ios7.reverse>.ng-leave.ng-leave-active{-webkit-transform:translate3d(-15%,0,0);-moz-transform:translate3d(-15%,0,0);transform:translate3d(-15%,0,0)}.slide-left-right-ios7.reverse.ng-enter,.slide-left-right-ios7.reverse.ng-leave,.slide-left-right-ios7.reverse>.ng-enter,.slide-left-right-ios7.reverse>.ng-leave,.slide-right-left-ios7.ng-enter,.slide-right-left-ios7.ng-leave,.slide-right-left-ios7>.ng-enter,.slide-right-left-ios7>.ng-leave{-webkit-transition:all cubic-bezier(0.4,.6,.2,1) 340ms;-moz-transition:all cubic-bezier(0.4,.6,.2,1) 340ms;transition:all cubic-bezier(0.4,.6,.2,1) 340ms;position:absolute;top:0;right:-1px;bottom:0;left:-1px;width:auto;border-right:1px solid transparent;border-left:1px solid transparent}.slide-left-right-ios7.reverse.ng-enter,.slide-left-right-ios7.reverse>.ng-enter,.slide-right-left-ios7.ng-enter,.slide-right-left-ios7>.ng-enter{-webkit-transform:translate3d(-15%,0,0);-moz-transform:translate3d(-15%,0,0);transform:translate3d(-15%,0,0)}.slide-left-right-ios7.reverse.ng-leave,.slide-left-right-ios7.reverse>.ng-leave,.slide-right-left-ios7.ng-leave,.slide-right-left-ios7>.ng-leave{z-index:2}.slide-left-right-ios7.reverse.ng-enter.ng-enter-active,.slide-left-right-ios7.reverse>.ng-enter.ng-enter-active,.slide-right-left-ios7.ng-enter.ng-enter-active,.slide-right-left-ios7>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-left-right-ios7.reverse.ng-leave.ng-leave-active,.slide-left-right-ios7.reverse>.ng-leave.ng-leave-active,.slide-right-left-ios7.ng-leave.ng-leave-active,.slide-right-left-ios7>.ng-leave.ng-leave-active{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.grade-a:not(.platform-ipad) .slide-left-right-ios7.ng-enter,.grade-a:not(.platform-ipad) .slide-left-right-ios7>.ng-enter,.grade-a:not(.platform-ipad) .slide-right-left-ios7.reverse.ng-enter,.grade-a:not(.platform-ipad) .slide-right-left-ios7.reverse>.ng-enter{box-shadow:-200px 0 200px rgba(0,0,0,0),-5px 0 5px rgba(0,0,0,.01)}.grade-a:not(.platform-ipad) .slide-left-right-ios7.ng-enter.ng-enter-active,.grade-a:not(.platform-ipad) .slide-left-right-ios7>.ng-enter.ng-enter-active,.grade-a:not(.platform-ipad) .slide-right-left-ios7.reverse.ng-enter.ng-enter-active,.grade-a:not(.platform-ipad) .slide-right-left-ios7.reverse>.ng-enter.ng-enter-active{box-shadow:-200px 0 200px rgba(0,0,0,.15),-5px 0 5px rgba(0,0,0,.18)}.grade-a.platform-ipad .slide-left-right-ios7.ng-enter,.grade-a.platform-ipad .slide-left-right-ios7.reverse.ng-leave,.grade-a.platform-ipad .slide-left-right-ios7.reverse>.ng-leave,.grade-a.platform-ipad .slide-left-right-ios7>.ng-enter,.grade-a.platform-ipad .slide-right-left-ios7.ng-leave,.grade-a.platform-ipad .slide-right-left-ios7.reverse.ng-enter,.grade-a.platform-ipad .slide-right-left-ios7.reverse>.ng-enter,.grade-a.platform-ipad .slide-right-left-ios7>.ng-leave{border-left:1px solid #ddd}.fade-explode.ng-enter,.fade-explode.ng-leave,.fade-explode>.ng-enter,.fade-explode>.ng-leave{-webkit-transition:all ease-out 300ms;-moz-transition:all ease-out 300ms;transition:all ease-out 300ms;position:absolute;top:0;right:-1px;bottom:0;left:-1px;width:auto}.fade-explode.ng-enter:not(.bar),.fade-explode.ng-leave:not(.bar),.fade-explode>.ng-enter:not(.bar),.fade-explode>.ng-leave:not(.bar){border-right:1px solid #ddd;border-left:1px solid #ddd}.fade-explode.ng-enter,.fade-explode>.ng-enter{-webkit-transform:scale(1.6);-moz-transform:scale(1.6);transform:scale(1.6);opacity:0;z-index:2}.fade-explode.ng-leave,.fade-explode>.ng-leave{z-index:1}.fade-explode.ng-enter.ng-enter-active,.fade-explode>.ng-enter.ng-enter-active{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1}.fade-explode.ng-leave.ng-leave-active,.fade-explode>.ng-leave.ng-leave-active{-webkit-transform:scale(0.95);-moz-transform:scale(0.95);transform:scale(0.95)}.fade-explode.reverse.ng-enter,.fade-explode.reverse.ng-leave,.fade-explode.reverse>.ng-enter,.fade-explode.reverse>.ng-leave{-webkit-transition:all ease-out 300ms;-moz-transition:all ease-out 300ms;transition:all ease-out 300ms;position:absolute;top:0;right:-1px;bottom:0;left:-1px;width:auto}.fade-explode.reverse.ng-enter:not(.bar),.fade-explode.reverse.ng-leave:not(.bar),.fade-explode.reverse>.ng-enter:not(.bar),.fade-explode.reverse>.ng-leave:not(.bar){border-right:1px solid #ddd;border-left:1px solid #ddd}.fade-explode.reverse.ng-enter,.fade-explode.reverse>.ng-enter{-webkit-transform:scale(0.95);-moz-transform:scale(0.95);transform:scale(0.95);opacity:0;z-index:1}.fade-explode.reverse.ng-leave,.fade-explode.reverse>.ng-leave{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1;z-index:2}.fade-explode.reverse.ng-enter.ng-enter-active,.fade-explode.reverse>.ng-enter.ng-enter-active{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1}.fade-explode.reverse.ng-leave.ng-leave-active,.fade-explode.reverse>.ng-leave.ng-leave-active{-webkit-transform:scale(1.6);-moz-transform:scale(1.6);transform:scale(1.6);opacity:0}.fade-implode.ng-enter,.fade-implode.ng-leave,.fade-implode>.ng-enter,.fade-implode>.ng-leave{-webkit-transition:all ease-out 200ms;-moz-transition:all ease-out 200ms;transition:all ease-out 200ms;position:absolute;top:0;right:-1px;bottom:0;left:-1px;width:auto}.fade-implode.ng-enter:not(.bar),.fade-implode.ng-leave:not(.bar),.fade-implode>.ng-enter:not(.bar),.fade-implode>.ng-leave:not(.bar){border-right:1px solid #ddd;border-left:1px solid #ddd}.fade-implode.ng-enter,.fade-implode>.ng-enter{-webkit-transform:scale(0.8);-moz-transform:scale(0.8);transform:scale(0.8);opacity:0;z-index:2}.fade-implode.ng-leave,.fade-implode>.ng-leave{z-index:1}.fade-implode.ng-enter.ng-enter-active,.fade-implode>.ng-enter.ng-enter-active{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1}.fade-implode.reverse.ng-enter,.fade-implode.reverse.ng-leave,.fade-implode.reverse>.ng-enter,.fade-implode.reverse>.ng-leave{-webkit-transition:all ease-out 200ms;-moz-transition:all ease-out 200ms;transition:all ease-out 200ms;position:absolute;top:0;right:-1px;bottom:0;left:-1px;width:auto;border-right:1px solid #ddd;border-left:1px solid #ddd}.fade-implode.reverse.ng-enter,.fade-implode.reverse>.ng-enter{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1;z-index:1}.fade-implode.reverse.ng-leave,.fade-implode.reverse>.ng-leave{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1;z-index:2}.fade-implode.reverse.ng-enter.ng-enter-active,.fade-implode.reverse>.ng-enter.ng-enter-active{opacity:1}.fade-implode.reverse.ng-leave.ng-leave-active,.fade-implode.reverse>.ng-leave.ng-leave-active{-webkit-transform:scale(0.8);-moz-transform:scale(0.8);transform:scale(0.8);opacity:0}.slide-in-left{-webkit-transform:translate3d(0%,0,0);-moz-transform:translate3d(0%,0,0);transform:translate3d(0%,0,0)}.slide-in-left.ng-enter,.slide-in-left>.ng-enter{-webkit-animation-name:slideInFromLeft;-moz-animation-name:slideInFromLeft;animation-name:slideInFromLeft;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-left.ng-leave,.slide-in-left>.ng-leave{-webkit-animation-name:slideOutToLeft;-moz-animation-name:slideOutToLeft;animation-name:slideOutToLeft;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-left-add{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-left-add-active{-webkit-animation-name:slideInFromLeft;-moz-animation-name:slideInFromLeft;animation-name:slideInFromLeft}.slide-out-left{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.slide-out-left.ng-enter,.slide-out-left.ng-leave,.slide-out-left>.ng-enter,.slide-out-left>.ng-leave{-webkit-animation-name:slideOutToLeft;-moz-animation-name:slideOutToLeft;animation-name:slideOutToLeft;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-out-left-add{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-out-left-add-active{-webkit-animation-name:slideOutToLeft;-moz-animation-name:slideOutToLeft;animation-name:slideOutToLeft}.slide-in-right{-webkit-transform:translate3d(0%,0,0);-moz-transform:translate3d(0%,0,0);transform:translate3d(0%,0,0)}.slide-in-right.ng-enter,.slide-in-right>.ng-enter{-webkit-animation-name:slideInFromRight;-moz-animation-name:slideInFromRight;animation-name:slideInFromRight;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-right.ng-leave,.slide-in-right>.ng-leave{-webkit-animation-name:slideOutToRight;-moz-animation-name:slideOutToRight;animation-name:slideOutToRight;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-right-add{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-right-add-active{-webkit-animation-name:slideInFromRight;-moz-animation-name:slideInFromRight;animation-name:slideInFromRight}.slide-out-right{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.slide-out-right.ng-enter,.slide-out-right.ng-leave,.slide-out-right>.ng-enter,.slide-out-right>.ng-leave{-webkit-animation-name:slideOutToRight;-moz-animation-name:slideOutToRight;animation-name:slideOutToRight;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-out-right-add{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-out-right-add-active{-webkit-animation-name:slideOutToRight;-moz-animation-name:slideOutToRight;animation-name:slideOutToRight}.slide-in-up{-webkit-transform:translate3d(0,100%,0);-moz-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.slide-in-up.ng-enter,.slide-in-up>.ng-enter{-webkit-transition:all cubic-bezier(0.1,.7,.1,1) 400ms;-moz-transition:all cubic-bezier(0.1,.7,.1,1) 400ms;transition:all cubic-bezier(0.1,.7,.1,1) 400ms}.slide-in-up.ng-enter-active,.slide-in-up>.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-in-up.ng-leave,.slide-in-up>.ng-leave{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms}.fade-in{-webkit-animation:fadeOut .3s;-moz-animation:fadeOut .3s;animation:fadeOut .3s}.fade-in.active{-webkit-animation:fadeIn .3s;-moz-animation:fadeIn .3s;animation:fadeIn .3s}.fade-in-not-out .ng-enter,.fade-in-not-out.ng-enter{-webkit-animation:fadeIn .3s;-moz-animation:fadeIn .3s;animation:fadeIn .3s;position:relative}.fade-in-not-out .ng-leave,.fade-in-not-out.ng-leave{display:none}.nav-title-slide-ios7:not(.no-animation) .button.back-button{-webkit-transition:all 340ms;-moz-transition:all 340ms;transition:all 340ms;-webkit-transition-timing-function:cubic-bezier(0.4,.6,.2,1);-moz-transition-timing-function:cubic-bezier(0.4,.6,.2,1);transition-timing-function:cubic-bezier(0.4,.6,.2,1);-webkit-transform:translate3d(0%,0,0);-moz-transform:translate3d(0%,0,0);transform:translate3d(0%,0,0);opacity:1}.nav-title-slide-ios7:not(.no-animation) .button.back-button.activated,.nav-title-slide-ios7:not(.no-animation) .button.back-button.active{opacity:.5}.nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide{opacity:0;-webkit-transform:translate3d(30%,0,0);-moz-transform:translate3d(30%,0,0);transform:translate3d(30%,0,0)}.nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide-add,.nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide-remove{display:block!important}.nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide-add{position:absolute}.nav-title-slide-ios7.ng-enter,.nav-title-slide-ios7.ng-leave,.nav-title-slide-ios7>.ng-enter,.nav-title-slide-ios7>.ng-leave{-webkit-transition:all 340ms;-moz-transition:all 340ms;transition:all 340ms;-webkit-transition-timing-function:cubic-bezier(0.4,.6,.2,1);-moz-transition-timing-function:cubic-bezier(0.4,.6,.2,1);transition-timing-function:cubic-bezier(0.4,.6,.2,1);opacity:1}.nav-title-slide-ios7.ng-enter,.nav-title-slide-ios7>.ng-enter{-webkit-transform:translate3d(30%,0,0);-moz-transform:translate3d(30%,0,0);transform:translate3d(30%,0,0);opacity:0}.nav-title-slide-ios7.ng-enter.title,.nav-title-slide-ios7>.ng-enter.title{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.nav-title-slide-ios7.ng-enter.ng-enter-active,.nav-title-slide-ios7>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.nav-title-slide-ios7.ng-leave.ng-leave-active,.nav-title-slide-ios7>.ng-leave.ng-leave-active{-webkit-transform:translate3d(-30%,0,0);-moz-transform:translate3d(-30%,0,0);transform:translate3d(-30%,0,0);opacity:0}.nav-title-slide-ios7.reverse.ng-enter,.nav-title-slide-ios7.reverse.ng-leave,.nav-title-slide-ios7.reverse>.ng-enter,.nav-title-slide-ios7.reverse>.ng-leave{-webkit-transition:all 340ms;-moz-transition:all 340ms;transition:all 340ms;-webkit-transition-timing-function:cubic-bezier(0.4,.6,.2,1);-moz-transition-timing-function:cubic-bezier(0.4,.6,.2,1);transition-timing-function:cubic-bezier(0.4,.6,.2,1);opacity:1}.nav-title-slide-ios7.reverse.ng-enter,.nav-title-slide-ios7.reverse>.ng-enter{-webkit-transform:translate3d(-30%,0,0);-moz-transform:translate3d(-30%,0,0);transform:translate3d(-30%,0,0);opacity:0}.nav-title-slide-ios7.reverse.ng-enter.ng-enter-active,.nav-title-slide-ios7.reverse>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.nav-title-slide-ios7.reverse.ng-leave.ng-leave-active,.nav-title-slide-ios7.reverse>.ng-leave.ng-leave-active{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);opacity:0}.nav-title-android:not(.no-animation) .button.back-button{-webkit-transition:all 200ms;-moz-transition:all 200ms;transition:all 200ms;-webkit-transition-timing-function:linear;-moz-transition-timing-function:linear;transition-timing-function:linear;opacity:1}.nav-title-android:not(.no-animation) .button.back-button.ng-hide{opacity:0}.nav-title-android:not(.no-animation) .button.back-button.ng-hide-add,.nav-title-android:not(.no-animation) .button.back-button.ng-hide-remove{display:block!important}.nav-title-android:not(.no-animation) .button.back-button.ng-hide-add{position:absolute}.nav-title-android.ng-enter,.nav-title-android.ng-leave,.nav-title-android>.ng-enter,.nav-title-android>.ng-leave{-webkit-transition:all 200ms;-moz-transition:all 200ms;transition:all 200ms;-webkit-transition-timing-function:linear;-moz-transition-timing-function:linear;transition-timing-function:linear}.nav-title-android.ng-enter,.nav-title-android>.ng-enter{opacity:0}.nav-title-android.ng-enter.ng-enter-active,.nav-title-android>.ng-enter.ng-enter-active{opacity:1}.nav-title-android.ng-leave.ng-leave-active,.nav-title-android>.ng-leave.ng-leave-active{opacity:0}.row{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;padding:5px;width:100%}.row+.row{margin-top:-5px;padding-top:0}.col{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;padding:5px;width:100%}.row-top{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;-moz-align-items:flex-start;align-items:flex-start}.row-bottom{-webkit-box-align:end;-ms-flex-align:end;-webkit-align-items:flex-end;-moz-align-items:flex-end;align-items:flex-end}.row-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center}.row-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;align-items:stretch}.row-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;-webkit-align-items:baseline;-moz-align-items:baseline;align-items:baseline}.col-top{-webkit-align-self:flex-start;-moz-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.col-bottom{-webkit-align-self:flex-end;-moz-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.col-center{-webkit-align-self:center;-moz-align-self:center;-ms-flex-item-align:center;align-self:center}.col-offset-10{margin-left:10%}.col-offset-20{margin-left:20%}.col-offset-25{margin-left:25%}.col-offset-33,.col-offset-34{margin-left:33.3333%}.col-offset-50{margin-left:50%}.col-offset-66,.col-offset-67{margin-left:66.6666%}.col-offset-75{margin-left:75%}.col-offset-80{margin-left:80%}.col-offset-90{margin-left:90%}.col-10{-webkit-box-flex:0;-webkit-flex:0 0 10%;-moz-box-flex:0;-moz-flex:0 0 10%;-ms-flex:0 0 10%;flex:0 0 10%;max-width:10%}.col-20{-webkit-box-flex:0;-webkit-flex:0 0 20%;-moz-box-flex:0;-moz-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.col-25{-webkit-box-flex:0;-webkit-flex:0 0 25%;-moz-box-flex:0;-moz-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-33,.col-34{-webkit-box-flex:0;-webkit-flex:0 0 33.3333%;-moz-box-flex:0;-moz-flex:0 0 33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%;max-width:33.3333%}.col-50{-webkit-box-flex:0;-webkit-flex:0 0 50%;-moz-box-flex:0;-moz-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-66,.col-67{-webkit-box-flex:0;-webkit-flex:0 0 66.6666%;-moz-box-flex:0;-moz-flex:0 0 66.6666%;-ms-flex:0 0 66.6666%;flex:0 0 66.6666%;max-width:66.6666%}.col-75{-webkit-box-flex:0;-webkit-flex:0 0 75%;-moz-box-flex:0;-moz-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-80{-webkit-box-flex:0;-webkit-flex:0 0 80%;-moz-box-flex:0;-moz-flex:0 0 80%;-ms-flex:0 0 80%;flex:0 0 80%;max-width:80%}.col-90{-webkit-box-flex:0;-webkit-flex:0 0 90%;-moz-box-flex:0;-moz-flex:0 0 90%;-ms-flex:0 0 90%;flex:0 0 90%;max-width:90%}@media (max-width:567px){.responsive-sm{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-sm .col,.responsive-sm .col-10,.responsive-sm .col-20,.responsive-sm .col-25,.responsive-sm .col-33,.responsive-sm .col-34,.responsive-sm .col-50,.responsive-sm .col-66,.responsive-sm .col-67,.responsive-sm .col-75,.responsive-sm .col-80,.responsive-sm .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}@media (max-width:767px){.responsive-md{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-md .col,.responsive-md .col-10,.responsive-md .col-20,.responsive-md .col-25,.responsive-md .col-33,.responsive-md .col-34,.responsive-md .col-50,.responsive-md .col-66,.responsive-md .col-67,.responsive-md .col-75,.responsive-md .col-80,.responsive-md .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}@media (max-width:1023px){.responsive-lg{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-lg .col,.responsive-lg .col-10,.responsive-lg .col-20,.responsive-lg .col-25,.responsive-lg .col-33,.responsive-lg .col-34,.responsive-lg .col-50,.responsive-lg .col-66,.responsive-lg .col-67,.responsive-lg .col-75,.responsive-lg .col-80,.responsive-lg .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}.hide{display:none}.opacity-hide{opacity:0}.grade-b .opacity-hide,.grade-c .opacity-hide{opacity:1;display:none}.show{display:block}.opacity-show{opacity:1}.invisible{visibility:hidden}.keyboard-open .hide-on-keyboard-open{display:none}.keyboard-open .bar-footer.hide-on-keyboard-open+.pane .has-footer,.keyboard-open .tabs.hide-on-keyboard-open+.pane .has-tabs{bottom:0}.inline{display:inline-block}.disable-pointer-events{pointer-events:none}.enable-pointer-events{pointer-events:auto}.disable-user-behavior{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-user-drag:none;-ms-touch-action:none;-ms-content-zooming:none}.no-resize{resize:none}.block{display:block;clear:both}.block:after{display:block;visibility:hidden;clear:both;height:0;content:"."}.full-image{width:100%}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:"";line-height:0}.clearfix:after{clear:both}.padding{padding:10px}.padding-top,.padding-vertical{padding-top:10px}.padding-horizontal,.padding-right{padding-right:10px}.padding-bottom,.padding-vertical{padding-bottom:10px}.padding-horizontal,.padding-left{padding-left:10px}.rounded{border-radius:4px}.light,a.light{color:#fff}.light-bg{background-color:#fff}.light-border{border-color:#ddd}.stable,a.stable{color:#f8f8f8}.stable-bg{background-color:#f8f8f8}.stable-border{border-color:#b2b2b2}.positive,a.positive{color:#4a87ee}.positive-bg{background-color:#4a87ee}.positive-border{border-color:#145fd7}.calm,a.calm{color:#43cee6}.calm-bg{background-color:#43cee6}.calm-border{border-color:#1aacc3}.assertive,a.assertive{color:#ef4e3a}.assertive-bg{background-color:#ef4e3a}.assertive-border{border-color:#cc2311}.balanced,a.balanced{color:#6c3}.balanced-bg{background-color:#6c3}.balanced-border{border-color:#498f24}.energized,a.energized{color:#f0b840}.energized-bg{background-color:#f0b840}.energized-border{border-color:#d39211}.royal,a.royal{color:#8a6de9}.royal-bg{background-color:#8a6de9}.royal-border{border-color:#552bdf}.dark,a.dark{color:#444}.dark-bg{background-color:#444}.dark-border{border-color:#111}.roboto,.roboto input{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif}.platform-ios7.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader){height:64px}.platform-ios7.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader).item-input-inset .item-input-wrapper{margin-top:19px!important}.platform-ios7.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader)>*{margin-top:20px}.platform-ios7.platform-cordova:not(.fullscreen) .bar-subheader,.platform-ios7.platform-cordova:not(.fullscreen) .has-header,.platform-ios7.platform-cordova:not(.fullscreen) .tabs-top>.tabs,.platform-ios7.platform-cordova:not(.fullscreen) .tabs.tabs-top{top:64px}.platform-ios7.platform-cordova:not(.fullscreen) .has-subheader{top:108px}.platform-ios7.platform-cordova:not(.fullscreen) .has-tabs-top{top:113px}.platform-ios7.platform-cordova:not(.fullscreen) .has-header.has-subheader.has-tabs-top{top:157px}.platform-ios7.platform-cordova.status-bar-hide{margin-bottom:20px}@media (orientation:landscape){.platform-ios7.platform-browser.platform-ipad{position:fixed}}.platform-c:not(.enable-transitions) *{-webkit-transition:none!important;transition:none!important} \ No newline at end of file diff --git a/release/js/angular/angular-animate.js b/release/js/angular/angular-animate.js index 38af3f0f908..865174d3637 100644 --- a/release/js/angular/angular-animate.js +++ b/release/js/angular/angular-animate.js @@ -1,5 +1,5 @@ /** - * @license AngularJS v1.2.12 + * @license AngularJS v1.2.17 * (c) 2010-2014 Google, Inc. http://angularjs.org * License: MIT */ @@ -8,7 +8,7 @@ /* jshint maxlen: false */ /** - * @ngdoc overview + * @ngdoc module * @name ngAnimate * @description * @@ -16,7 +16,6 @@ * * The `ngAnimate` module provides support for JavaScript, CSS3 transition and CSS3 keyframe animation hooks within existing core and custom directives. * - * {@installModule animate} * *
* @@ -38,12 +37,14 @@ * | {@link ng.directive:ngIf#usage_animations ngIf} | enter and leave | * | {@link ng.directive:ngClass#usage_animations ngClass} | add and remove | * | {@link ng.directive:ngShow#usage_animations ngShow & ngHide} | add and remove (the ng-hide class value) | + * | {@link ng.directive:form#usage_animations form} | add and remove (dirty, pristine, valid, invalid & all other validations) | + * | {@link ng.directive:ngModel#usage_animations ngModel} | add and remove (dirty, pristine, valid, invalid & all other validations) | * * You can find out more information about animations upon visiting each directive page. * * Below is an example of how to apply animations to a directive that supports animation hooks: * - *
+ * ```html
  * 
+       
userType: Required!
userType = {{userType}}
@@ -15583,8 +16228,8 @@ function FormController(element, attrs) { myForm.$valid = {{myForm.$valid}}
myForm.$error.required = {{!!myForm.$error.required}}
- - + + it('should initialize to model', function() { var userType = element(by.binding('userType')); var valid = element(by.binding('myForm.input.$valid')); @@ -15604,8 +16249,9 @@ function FormController(element, attrs) { expect(userType.getText()).toEqual('userType ='); expect(valid.getText()).toContain('false'); }); - - + + + * */ var formDirectiveFactory = function(isNgForm) { return ['$timeout', function($timeout) { @@ -15682,8 +16328,8 @@ var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/; var inputType = { /** - * @ngdoc inputType - * @name ng.directive:input.text + * @ngdoc input + * @name input[text] * * @description * Standard HTML text input with angular data binding. @@ -15706,8 +16352,8 @@ var inputType = { * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. * * @example - - + + + + Update input to see transitions when valid/invalid. + Integer is a valid value. +
+ +
+
+ *
*/ var ngModelDirective = function() { return { @@ -16913,7 +17662,7 @@ var ngModelDirective = function() { /** * @ngdoc directive - * @name ng.directive:ngChange + * @name ngChange * * @description * Evaluate the given expression when the user changes the input. @@ -16929,8 +17678,8 @@ var ngModelDirective = function() { * in input value. * * @example - * - * + * + * * -
- Name: - [ greet ]
- Contact: -
    -
  • - - - [ clear - | X ] -
  • -
  • [ add ]
  • -
-
-
- - it('should check controller as', function() { - var container = element(by.id('ctrl-as-exmpl')); - - expect(container.findElement(by.model('settings.name')) - .getAttribute('value')).toBe('John Smith'); - - var firstRepeat = - container.findElement(by.repeater('contact in settings.contacts').row(0)); - var secondRepeat = - container.findElement(by.repeater('contact in settings.contacts').row(1)); - - expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) - .toBe('408 555 1212'); - expect(secondRepeat.findElement(by.model('contact.value')).getAttribute('value')) - .toBe('john.smith@example.org'); - - firstRepeat.findElement(by.linkText('clear')).click() - - expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) - .toBe(''); - - container.findElement(by.linkText('add')).click(); - - expect(container.findElement(by.repeater('contact in settings.contacts').row(2)) - .findElement(by.model('contact.value')) - .getAttribute('value')) - .toBe('yourname@example.org'); - }); - -
- - - -
- Name: - [ greet ]
- Contact: -
    -
  • - - - [ clear - | X ] -
  • -
  • [ add ]
  • -
-
-
- - it('should check controller', function() { - var container = element(by.id('ctrl-exmpl')); - - expect(container.findElement(by.model('name')) - .getAttribute('value')).toBe('John Smith'); - - var firstRepeat = - container.findElement(by.repeater('contact in contacts').row(0)); - var secondRepeat = - container.findElement(by.repeater('contact in contacts').row(1)); - - expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) - .toBe('408 555 1212'); - expect(secondRepeat.findElement(by.model('contact.value')).getAttribute('value')) - .toBe('john.smith@example.org'); - - firstRepeat.findElement(by.linkText('clear')).click() - - expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) - .toBe(''); - - container.findElement(by.linkText('add')).click(); - - expect(container.findElement(by.repeater('contact in contacts').row(2)) - .findElement(by.model('contact.value')) - .getAttribute('value')) - .toBe('yourname@example.org'); - }); - -
+ * easily be called from the angular markup. Any changes to the data are automatically reflected + * in the View without the need for a manual update. + * + * Two different declaration styles are included below: + * + * * one binds methods and properties directly onto the controller using `this`: + * `ng-controller="SettingsController1 as settings"` + * * one injects `$scope` into the controller: + * `ng-controller="SettingsController2"` + * + * The second option is more common in the Angular community, and is generally used in boilerplates + * and in this guide. However, there are advantages to binding properties directly to the controller + * and avoiding scope. + * + * * Using `controller as` makes it obvious which controller you are accessing in the template when + * multiple controllers apply to an element. + * * If you are writing your controllers as classes you have easier access to the properties and + * methods, which will appear on the scope, from inside the controller code. + * * Since there is always a `.` in the bindings, you don't have to worry about prototypal + * inheritance masking primitives. + * + * This example demonstrates the `controller as` syntax. + * + * + * + *
+ * Name: + * [ greet ]
+ * Contact: + *
    + *
  • + * + * + * [ clear + * | X ] + *
  • + *
  • [ add ]
  • + *
+ *
+ *
+ * + * function SettingsController1() { + * this.name = "John Smith"; + * this.contacts = [ + * {type: 'phone', value: '408 555 1212'}, + * {type: 'email', value: 'john.smith@example.org'} ]; + * } + * + * SettingsController1.prototype.greet = function() { + * alert(this.name); + * }; + * + * SettingsController1.prototype.addContact = function() { + * this.contacts.push({type: 'email', value: 'yourname@example.org'}); + * }; + * + * SettingsController1.prototype.removeContact = function(contactToRemove) { + * var index = this.contacts.indexOf(contactToRemove); + * this.contacts.splice(index, 1); + * }; + * + * SettingsController1.prototype.clearContact = function(contact) { + * contact.type = 'phone'; + * contact.value = ''; + * }; + * + * + * it('should check controller as', function() { + * var container = element(by.id('ctrl-as-exmpl')); + * expect(container.findElement(by.model('settings.name')) + * .getAttribute('value')).toBe('John Smith'); + * + * var firstRepeat = + * container.findElement(by.repeater('contact in settings.contacts').row(0)); + * var secondRepeat = + * container.findElement(by.repeater('contact in settings.contacts').row(1)); + * + * expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) + * .toBe('408 555 1212'); + * + * expect(secondRepeat.findElement(by.model('contact.value')).getAttribute('value')) + * .toBe('john.smith@example.org'); + * + * firstRepeat.findElement(by.linkText('clear')).click(); + * + * expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) + * .toBe(''); + * + * container.findElement(by.linkText('add')).click(); + * + * expect(container.findElement(by.repeater('contact in settings.contacts').row(2)) + * .findElement(by.model('contact.value')) + * .getAttribute('value')) + * .toBe('yourname@example.org'); + * }); + * + *
+ * + * This example demonstrates the "attach to `$scope`" style of controller. + * + * + * + *
+ * Name: + * [ greet ]
+ * Contact: + *
    + *
  • + * + * + * [ clear + * | X ] + *
  • + *
  • [ add ]
  • + *
+ *
+ *
+ * + * function SettingsController2($scope) { + * $scope.name = "John Smith"; + * $scope.contacts = [ + * {type:'phone', value:'408 555 1212'}, + * {type:'email', value:'john.smith@example.org'} ]; + * + * $scope.greet = function() { + * alert($scope.name); + * }; + * + * $scope.addContact = function() { + * $scope.contacts.push({type:'email', value:'yourname@example.org'}); + * }; + * + * $scope.removeContact = function(contactToRemove) { + * var index = $scope.contacts.indexOf(contactToRemove); + * $scope.contacts.splice(index, 1); + * }; + * + * $scope.clearContact = function(contact) { + * contact.type = 'phone'; + * contact.value = ''; + * }; + * } + * + * + * it('should check controller', function() { + * var container = element(by.id('ctrl-exmpl')); + * + * expect(container.findElement(by.model('name')) + * .getAttribute('value')).toBe('John Smith'); + * + * var firstRepeat = + * container.findElement(by.repeater('contact in contacts').row(0)); + * var secondRepeat = + * container.findElement(by.repeater('contact in contacts').row(1)); + * + * expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) + * .toBe('408 555 1212'); + * expect(secondRepeat.findElement(by.model('contact.value')).getAttribute('value')) + * .toBe('john.smith@example.org'); + * + * firstRepeat.findElement(by.linkText('clear')).click(); + * + * expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) + * .toBe(''); + * + * container.findElement(by.linkText('add')).click(); + * + * expect(container.findElement(by.repeater('contact in contacts').row(2)) + * .findElement(by.model('contact.value')) + * .getAttribute('value')) + * .toBe('yourname@example.org'); + * }); + * + *
*/ var ngControllerDirective = [function() { @@ -17912,7 +18747,7 @@ var ngControllerDirective = [function() { /** * @ngdoc directive - * @name ng.directive:ngCsp + * @name ngCsp * * @element html * @description @@ -17939,13 +18774,13 @@ var ngControllerDirective = [function() { * * @example * This example shows how to apply the `ngCsp` directive to the `html` tag. -
+   ```html
      
      
      ...
      ...
      
-   
+ ``` */ // ngCsp is not implemented as a proper directive any more, because we need it be processed while we bootstrap @@ -17954,7 +18789,7 @@ var ngControllerDirective = [function() { /** * @ngdoc directive - * @name ng.directive:ngClick + * @name ngClick * * @description * The ngClick directive allows you to specify custom behavior when @@ -17963,24 +18798,24 @@ var ngControllerDirective = [function() { * @element ANY * @priority 0 * @param {expression} ngClick {@link guide/expression Expression} to evaluate upon - * click. (Event object is available as `$event`) + * click. ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + count: {{count}} - - + + it('should check ng-click', function() { expect(element(by.binding('count')).getText()).toMatch('0'); - element(by.css('.doc-example-live button')).click(); + element(by.css('button')).click(); expect(element(by.binding('count')).getText()).toMatch('1'); }); - - + + */ /* * A directive that allows creation of custom onclick handlers that are defined as angular @@ -18012,7 +18847,7 @@ forEach( /** * @ngdoc directive - * @name ng.directive:ngDblclick + * @name ngDblclick * * @description * The `ngDblclick` directive allows you to specify custom behavior on a dblclick event. @@ -18023,20 +18858,20 @@ forEach( * a dblclick. (The Event object is available as `$event`) * * @example - - + + count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngMousedown + * @name ngMousedown * * @description * The ngMousedown directive allows you to specify custom behavior on mousedown event. @@ -18044,23 +18879,23 @@ forEach( * @element ANY * @priority 0 * @param {expression} ngMousedown {@link guide/expression Expression} to evaluate upon - * mousedown. (Event object is available as `$event`) + * mousedown. ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngMouseup + * @name ngMouseup * * @description * Specify custom behavior on mouseup event. @@ -18068,22 +18903,22 @@ forEach( * @element ANY * @priority 0 * @param {expression} ngMouseup {@link guide/expression Expression} to evaluate upon - * mouseup. (Event object is available as `$event`) + * mouseup. ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngMouseover + * @name ngMouseover * * @description * Specify custom behavior on mouseover event. @@ -18091,23 +18926,23 @@ forEach( * @element ANY * @priority 0 * @param {expression} ngMouseover {@link guide/expression Expression} to evaluate upon - * mouseover. (Event object is available as `$event`) + * mouseover. ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngMouseenter + * @name ngMouseenter * * @description * Specify custom behavior on mouseenter event. @@ -18115,23 +18950,23 @@ forEach( * @element ANY * @priority 0 * @param {expression} ngMouseenter {@link guide/expression Expression} to evaluate upon - * mouseenter. (Event object is available as `$event`) + * mouseenter. ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngMouseleave + * @name ngMouseleave * * @description * Specify custom behavior on mouseleave event. @@ -18139,23 +18974,23 @@ forEach( * @element ANY * @priority 0 * @param {expression} ngMouseleave {@link guide/expression Expression} to evaluate upon - * mouseleave. (Event object is available as `$event`) + * mouseleave. ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngMousemove + * @name ngMousemove * * @description * Specify custom behavior on mousemove event. @@ -18163,23 +18998,23 @@ forEach( * @element ANY * @priority 0 * @param {expression} ngMousemove {@link guide/expression Expression} to evaluate upon - * mousemove. (Event object is available as `$event`) + * mousemove. ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngKeydown + * @name ngKeydown * * @description * Specify custom behavior on keydown event. @@ -18190,18 +19025,18 @@ forEach( * keydown. (Event object is available as `$event` and can be interrogated for keyCode, altKey, etc.) * * @example - - + + key down count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngKeyup + * @name ngKeyup * * @description * Specify custom behavior on keyup event. @@ -18212,62 +19047,69 @@ forEach( * keyup. (Event object is available as `$event` and can be interrogated for keyCode, altKey, etc.) * * @example - - - - key up count: {{count}} - - + + +

Typing in the input box below updates the key count

+ key up count: {{count}} + +

Typing in the input box below updates the keycode

+ +

event keyCode: {{ event.keyCode }}

+

event altKey: {{ event.altKey }}

+
+
*/ /** * @ngdoc directive - * @name ng.directive:ngKeypress + * @name ngKeypress * * @description * Specify custom behavior on keypress event. * * @element ANY * @param {expression} ngKeypress {@link guide/expression Expression} to evaluate upon - * keypress. (Event object is available as `$event` and can be interrogated for keyCode, altKey, etc.) + * keypress. ({@link guide/expression#-event- Event object is available as `$event`} + * and can be interrogated for keyCode, altKey, etc.) * * @example - - + + key press count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngSubmit + * @name ngSubmit * * @description * Enables binding angular expressions to onsubmit events. * * Additionally it prevents the default action (which for form means sending the request to the - * server and reloading the current page) **but only if the form does not contain an `action` - * attribute**. + * server and reloading the current page), but only if the form does not contain `action`, + * `data-action`, or `x-action` attributes. * * @element form * @priority 0 - * @param {expression} ngSubmit {@link guide/expression Expression} to eval. (Event object is available as `$event`) + * @param {expression} ngSubmit {@link guide/expression Expression} to eval. + * ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + Load inlined template
-
- + + it('should load template defined inside script tag', function() { element(by.css('#tpl-link')).click(); expect(element(by.css('#tpl-content')).getText()).toMatch(/Content of the template/); }); - -
+ + */ var scriptDirective = ['$templateCache', function($templateCache) { return { @@ -20151,7 +21015,7 @@ var scriptDirective = ['$templateCache', function($templateCache) { var ngOptionsMinErr = minErr('ngOptions'); /** * @ngdoc directive - * @name ng.directive:select + * @name select * @restrict E * * @description @@ -20169,7 +21033,7 @@ var ngOptionsMinErr = minErr('ngOptions'); * *
* **Note:** `ngModel` compares by reference, not value. This is important when binding to an - * array of objects. See an example {@link http://jsfiddle.net/qWzTb/ in this jsfiddle}. + * array of objects. See an example [in this jsfiddle](http://jsfiddle.net/qWzTb/). *
* * Optionally, a single hard-coded `
+ * ``` * * * @param {string} expression String expression to compile. @@ -19498,9 +20004,9 @@ function getterFn(path, options, fullExp) { /** - * @ngdoc object - * @name ng.$parseProvider - * @function + * @ngdoc provider + * @name $parseProvider + * @kind function * * @description * `$parseProvider` can be used for configuring the default behavior of the {@link ng.$parse $parse} @@ -19520,8 +20026,7 @@ function $ParseProvider() { * @deprecated Promise unwrapping via $parse is deprecated and will be removed in the future. * * @ngdoc method - * @name ng.$parseProvider#unwrapPromises - * @methodOf ng.$parseProvider + * @name $parseProvider#unwrapPromises * @description * * **This feature is deprecated, see deprecation notes below for more info** @@ -19575,8 +20080,7 @@ function $ParseProvider() { * @deprecated Promise unwrapping via $parse is deprecated and will be removed in the future. * * @ngdoc method - * @name ng.$parseProvider#logPromiseWarnings - * @methodOf ng.$parseProvider + * @name $parseProvider#logPromiseWarnings * @description * * Controls whether Angular should log a warning on any encounter of a promise in an expression. @@ -19621,7 +20125,7 @@ function $ParseProvider() { var lexer = new Lexer($parseOptions); var parser = new Parser(lexer, $filter, $parseOptions); - parsedExpression = parser.parse(exp, false); + parsedExpression = parser.parse(exp); if (exp !== 'hasOwnProperty') { // Only cache the value if it's not going to mess up the cache object @@ -19643,7 +20147,7 @@ function $ParseProvider() { /** * @ngdoc service - * @name ng.$q + * @name $q * @requires $rootScope * * @description @@ -19656,10 +20160,10 @@ function $ParseProvider() { * From the perspective of dealing with error handling, deferred and promise APIs are to * asynchronous programming what `try`, `catch` and `throw` keywords are to synchronous programming. * - *
+ * ```js
  *   // for the purpose of this example let's assume that variables `$q`, `scope` and `okToGreet`
  *   // are available in the current lexical scope (they could have been injected or passed in).
- * 
+ *
  *   function asyncGreet(name) {
  *     var deferred = $q.defer();
  *
@@ -19688,7 +20192,7 @@ function $ParseProvider() {
  *   }, function(update) {
  *     alert('Got notification: ' + update);
  *   });
- * 
+ * ``` * * At first it might not be obvious why this extra complexity is worth the trouble. The payoff * comes in the way of guarantees that promise and deferred APIs make, see @@ -19753,21 +20257,21 @@ function $ParseProvider() { * * Because `finally` is a reserved word in JavaScript and reserved keywords are not supported as * property names by ES3, you'll need to invoke the method like `promise['finally'](callback)` to - * make your code IE8 compatible. + * make your code IE8 and Android 2.x compatible. * * # Chaining promises * * Because calling the `then` method of a promise returns a new derived promise, it is easily * possible to create a chain of promises: * - *
+ * ```js
  *   promiseB = promiseA.then(function(result) {
  *     return result + 1;
  *   });
  *
  *   // promiseB will be resolved immediately after promiseA is resolved and its value
  *   // will be the result of promiseA incremented by 1
- * 
+ * ``` * * It is possible to create chains of any length and since a promise can be resolved with another * promise (which will defer its resolution further), it is possible to pause/defer resolution of @@ -19787,7 +20291,7 @@ function $ParseProvider() { * * # Testing * - *
+ *  ```js
  *    it('should simulate promise', inject(function($q, $rootScope) {
  *      var deferred = $q.defer();
  *      var promise = deferred.promise;
@@ -19807,7 +20311,7 @@ function $ParseProvider() {
  *      $rootScope.$apply();
  *      expect(resolvedValue).toEqual(123);
  *    }));
- *  
+ * ``` */ function $QProvider() { @@ -19822,7 +20326,7 @@ function $QProvider() { /** * Constructs a promise manager. * - * @param {function(function)} nextTick Function for executing functions in the next turn. + * @param {function(Function)} nextTick Function for executing functions in the next turn. * @param {function(...*)} exceptionHandler Function into which unexpected exceptions are passed for * debugging purposes. * @returns {object} Promise manager. @@ -19830,9 +20334,10 @@ function $QProvider() { function qFactory(nextTick, exceptionHandler) { /** - * @ngdoc - * @name ng.$q#defer - * @methodOf ng.$q + * @ngdoc method + * @name $q#defer + * @kind function + * * @description * Creates a `Deferred` object which represents a task which will finish in the future. * @@ -19986,9 +20491,10 @@ function qFactory(nextTick, exceptionHandler) { /** - * @ngdoc - * @name ng.$q#reject - * @methodOf ng.$q + * @ngdoc method + * @name $q#reject + * @kind function + * * @description * Creates a promise that is resolved as rejected with the specified `reason`. This api should be * used to forward rejection in a chain of promises. If you are dealing with the last promise in @@ -20000,7 +20506,7 @@ function qFactory(nextTick, exceptionHandler) { * current promise, you have to "rethrow" the error by returning a rejection constructed via * `reject`. * - *
+   * ```js
    *   promiseB = promiseA.then(function(result) {
    *     // success: do something and resolve promiseB
    *     //          with the old or a new result
@@ -20015,7 +20521,7 @@ function qFactory(nextTick, exceptionHandler) {
    *     }
    *     return $q.reject(reason);
    *   });
-   * 
+ * ``` * * @param {*} reason Constant, message, exception or an object representing the rejection reason. * @returns {Promise} Returns a promise that was already resolved as rejected with the `reason`. @@ -20045,9 +20551,10 @@ function qFactory(nextTick, exceptionHandler) { /** - * @ngdoc - * @name ng.$q#when - * @methodOf ng.$q + * @ngdoc method + * @name $q#when + * @kind function + * * @description * Wraps an object that might be a value or a (3rd party) then-able promise into a $q promise. * This is useful when you are dealing with an object that might or might not be a promise, or if @@ -20116,9 +20623,10 @@ function qFactory(nextTick, exceptionHandler) { /** - * @ngdoc - * @name ng.$q#all - * @methodOf ng.$q + * @ngdoc method + * @name $q#all + * @kind function + * * @description * Combines multiple promises into a single promise that is resolved when all of the input * promises are resolved. @@ -20161,6 +20669,38 @@ function qFactory(nextTick, exceptionHandler) { }; } +function $$RAFProvider(){ //rAF + this.$get = ['$window', '$timeout', function($window, $timeout) { + var requestAnimationFrame = $window.requestAnimationFrame || + $window.webkitRequestAnimationFrame || + $window.mozRequestAnimationFrame; + + var cancelAnimationFrame = $window.cancelAnimationFrame || + $window.webkitCancelAnimationFrame || + $window.mozCancelAnimationFrame || + $window.webkitCancelRequestAnimationFrame; + + var rafSupported = !!requestAnimationFrame; + var raf = rafSupported + ? function(fn) { + var id = requestAnimationFrame(fn); + return function() { + cancelAnimationFrame(id); + }; + } + : function(fn) { + var timer = $timeout(fn, 16.66, false); // 1000 / 60 = 16.666 + return function() { + $timeout.cancel(timer); + }; + }; + + raf.supported = rafSupported; + + return raf; + }]; +} + /** * DESIGN NOTES * @@ -20176,7 +20716,7 @@ function qFactory(nextTick, exceptionHandler) { * * Loop operations are optimized by using while(count--) { ... } * - this means that in order to keep the same order of execution as addition we have to add - * items to the array at the beginning (shift) instead of at the end (push) + * items to the array at the beginning (unshift) instead of at the end (push) * * Child scopes are created and removed often * - Using an array would be slow since inserts in middle are expensive so we use linked list @@ -20188,17 +20728,16 @@ function qFactory(nextTick, exceptionHandler) { /** - * @ngdoc object - * @name ng.$rootScopeProvider + * @ngdoc provider + * @name $rootScopeProvider * @description * * Provider for the $rootScope service. */ /** - * @ngdoc function - * @name ng.$rootScopeProvider#digestTtl - * @methodOf ng.$rootScopeProvider + * @ngdoc method + * @name $rootScopeProvider#digestTtl * @description * * Sets the number of `$digest` iterations the scope should attempt to execute before giving up and @@ -20219,8 +20758,8 @@ function qFactory(nextTick, exceptionHandler) { /** - * @ngdoc object - * @name ng.$rootScope + * @ngdoc service + * @name $rootScope * @description * * Every application has a single root {@link ng.$rootScope.Scope scope}. @@ -20245,23 +20784,23 @@ function $RootScopeProvider(){ function( $injector, $exceptionHandler, $parse, $browser) { /** - * @ngdoc function - * @name ng.$rootScope.Scope + * @ngdoc type + * @name $rootScope.Scope * * @description * A root scope can be retrieved using the {@link ng.$rootScope $rootScope} key from the - * {@link AUTO.$injector $injector}. Child scopes are created using the - * {@link ng.$rootScope.Scope#methods_$new $new()} method. (Most scopes are created automatically when + * {@link auto.$injector $injector}. Child scopes are created using the + * {@link ng.$rootScope.Scope#$new $new()} method. (Most scopes are created automatically when * compiled HTML template is executed.) * * Here is a simple scope snippet to show how you can interact with the scope. - *
+     * ```html
      * 
-     * 
+ * ``` * * # Inheritance * A scope can inherit from a parent scope, as in this example: - *
+     * ```js
          var parent = $rootScope;
          var child = parent.$new();
 
@@ -20272,7 +20811,7 @@ function $RootScopeProvider(){
          child.salutation = "Welcome";
          expect(child.salutation).toEqual('Welcome');
          expect(parent.salutation).toEqual('Hello');
-     * 
+ * ``` * * * @param {Object.=} providers Map of service factory which need to be @@ -20300,8 +20839,7 @@ function $RootScopeProvider(){ /** * @ngdoc property - * @name ng.$rootScope.Scope#$id - * @propertyOf ng.$rootScope.Scope + * @name $rootScope.Scope#$id * @returns {number} Unique scope ID (monotonically increasing alphanumeric sequence) useful for * debugging. */ @@ -20310,19 +20848,18 @@ function $RootScopeProvider(){ Scope.prototype = { constructor: Scope, /** - * @ngdoc function - * @name ng.$rootScope.Scope#$new - * @methodOf ng.$rootScope.Scope - * @function + * @ngdoc method + * @name $rootScope.Scope#$new + * @kind function * * @description * Creates a new child {@link ng.$rootScope.Scope scope}. * - * The parent scope will propagate the {@link ng.$rootScope.Scope#methods_$digest $digest()} and - * {@link ng.$rootScope.Scope#methods_$digest $digest()} events. The scope can be removed from the - * scope hierarchy using {@link ng.$rootScope.Scope#methods_$destroy $destroy()}. + * The parent scope will propagate the {@link ng.$rootScope.Scope#$digest $digest()} and + * {@link ng.$rootScope.Scope#$digest $digest()} events. The scope can be removed from the + * scope hierarchy using {@link ng.$rootScope.Scope#$destroy $destroy()}. * - * {@link ng.$rootScope.Scope#methods_$destroy $destroy()} must be called on a scope when it is + * {@link ng.$rootScope.Scope#$destroy $destroy()} must be called on a scope when it is * desired for the scope and its child scopes to be permanently detached from the parent and * thus stop participating in model change detection and listener notification by invoking. * @@ -20345,18 +20882,23 @@ function $RootScopeProvider(){ child.$$asyncQueue = this.$$asyncQueue; child.$$postDigestQueue = this.$$postDigestQueue; } else { - ChildScope = function() {}; // should be anonymous; This is so that when the minifier munges - // the name it does not become random set of chars. This will then show up as class - // name in the web inspector. - ChildScope.prototype = this; - child = new ChildScope(); - child.$id = nextUid(); + // Only create a child scope class if somebody asks for one, + // but cache it to allow the VM to optimize lookups. + if (!this.$$childScopeClass) { + this.$$childScopeClass = function() { + this.$$watchers = this.$$nextSibling = + this.$$childHead = this.$$childTail = null; + this.$$listeners = {}; + this.$$listenerCount = {}; + this.$id = nextUid(); + this.$$childScopeClass = null; + }; + this.$$childScopeClass.prototype = this; + } + child = new this.$$childScopeClass(); } child['this'] = child; - child.$$listeners = {}; - child.$$listenerCount = {}; child.$parent = this; - child.$$watchers = child.$$nextSibling = child.$$childHead = child.$$childTail = null; child.$$prevSibling = this.$$childTail; if (this.$$childHead) { this.$$childTail.$$nextSibling = child; @@ -20368,37 +20910,40 @@ function $RootScopeProvider(){ }, /** - * @ngdoc function - * @name ng.$rootScope.Scope#$watch - * @methodOf ng.$rootScope.Scope - * @function + * @ngdoc method + * @name $rootScope.Scope#$watch + * @kind function * * @description * Registers a `listener` callback to be executed whenever the `watchExpression` changes. * - * - The `watchExpression` is called on every call to {@link ng.$rootScope.Scope#methods_$digest + * - The `watchExpression` is called on every call to {@link ng.$rootScope.Scope#$digest * $digest()} and should return the value that will be watched. (Since - * {@link ng.$rootScope.Scope#methods_$digest $digest()} reruns when it detects changes the + * {@link ng.$rootScope.Scope#$digest $digest()} reruns when it detects changes the * `watchExpression` can execute multiple times per - * {@link ng.$rootScope.Scope#methods_$digest $digest()} and should be idempotent.) + * {@link ng.$rootScope.Scope#$digest $digest()} and should be idempotent.) * - The `listener` is called only when the value from the current `watchExpression` and the * previous call to `watchExpression` are not equal (with the exception of the initial run, - * see below). The inequality is determined according to - * {@link angular.equals} function. To save the value of the object for later comparison, - * the {@link angular.copy} function is used. It also means that watching complex options - * will have adverse memory and performance implications. + * see below). Inequality is determined according to reference inequality, + * [strict comparison](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators) + * via the `!==` Javascript operator, unless `objectEquality == true` + * (see next point) + * - When `objectEquality == true`, inequality of the `watchExpression` is determined + * according to the {@link angular.equals} function. To save the value of the object for + * later comparison, the {@link angular.copy} function is used. This therefore means that + * watching complex objects will have adverse memory and performance implications. * - The watch `listener` may change the model, which may trigger other `listener`s to fire. * This is achieved by rerunning the watchers until no changes are detected. The rerun * iteration limit is 10 to prevent an infinite loop deadlock. * * - * If you want to be notified whenever {@link ng.$rootScope.Scope#methods_$digest $digest} is called, + * If you want to be notified whenever {@link ng.$rootScope.Scope#$digest $digest} is called, * you can register a `watchExpression` function with no `listener`. (Since `watchExpression` - * can execute multiple times per {@link ng.$rootScope.Scope#methods_$digest $digest} cycle when a + * can execute multiple times per {@link ng.$rootScope.Scope#$digest $digest} cycle when a * change is detected, be prepared for multiple calls to your listener.) * * After a watcher is registered with the scope, the `listener` fn is called asynchronously - * (via {@link ng.$rootScope.Scope#methods_$evalAsync $evalAsync}) to initialize the + * (via {@link ng.$rootScope.Scope#$evalAsync $evalAsync}) to initialize the * watcher. In rare cases, this is undesirable because the listener is called when the result * of `watchExpression` didn't change. To detect this scenario within the `listener` fn, you * can compare the `newVal` and `oldVal`. If these two values are identical (`===`) then the @@ -20408,7 +20953,7 @@ function $RootScopeProvider(){ * * * # Example - *
+       * ```js
            // let's assume that scope was dependency injected as the $rootScope
            var scope = $rootScope;
            scope.name = 'misko';
@@ -20421,13 +20966,17 @@ function $RootScopeProvider(){
            expect(scope.counter).toEqual(0);
 
            scope.$digest();
-           // no variable change
-           expect(scope.counter).toEqual(0);
+           // the listener is always called during the first $digest loop after it was registered
+           expect(scope.counter).toEqual(1);
 
-           scope.name = 'adam';
            scope.$digest();
+           // but now it will not be called unless the value changes
            expect(scope.counter).toEqual(1);
 
+           scope.name = 'adam';
+           scope.$digest();
+           expect(scope.counter).toEqual(2);
+
 
 
            // Using a listener function
@@ -20457,12 +21006,12 @@ function $RootScopeProvider(){
            scope.$digest();
            expect(scope.foodCounter).toEqual(1);
 
-       * 
+ * ``` * * * * @param {(function()|string)} watchExpression Expression that is evaluated on each - * {@link ng.$rootScope.Scope#methods_$digest $digest} cycle. A change in the return value triggers + * {@link ng.$rootScope.Scope#$digest $digest} cycle. A change in the return value triggers * a call to the `listener`. * * - `string`: Evaluated as {@link guide/expression expression} @@ -20474,7 +21023,8 @@ function $RootScopeProvider(){ * - `function(newValue, oldValue, scope)`: called with current and previous values as * parameters. * - * @param {boolean=} objectEquality Compare object for equality rather than for reference. + * @param {boolean=} objectEquality Compare for object equality using {@link angular.equals} instead of + * comparing for reference equality. * @returns {function()} Returns a deregistration function for this listener. */ $watch: function(watchExp, listener, objectEquality) { @@ -20512,7 +21062,7 @@ function $RootScopeProvider(){ // the while loop reads in reverse order. array.unshift(watcher); - return function() { + return function deregisterWatch() { arrayRemove(array, watcher); lastDirtyWatch = null; }; @@ -20520,10 +21070,9 @@ function $RootScopeProvider(){ /** - * @ngdoc function - * @name ng.$rootScope.Scope#$watchCollection - * @methodOf ng.$rootScope.Scope - * @function + * @ngdoc method + * @name $rootScope.Scope#$watchCollection + * @kind function * * @description * Shallow watches the properties of an object and fires whenever any of the properties change @@ -20537,7 +21086,7 @@ function $RootScopeProvider(){ * * * # Example - *
+       * ```js
           $scope.names = ['igor', 'matias', 'misko', 'james'];
           $scope.dataCount = 4;
 
@@ -20556,38 +21105,48 @@ function $RootScopeProvider(){
 
           //now there's been a change
           expect($scope.dataCount).toEqual(3);
-       * 
+ * ``` * * - * @param {string|Function(scope)} obj Evaluated as {@link guide/expression expression}. The + * @param {string|function(scope)} obj Evaluated as {@link guide/expression expression}. The * expression value should evaluate to an object or an array which is observed on each - * {@link ng.$rootScope.Scope#methods_$digest $digest} cycle. Any shallow change within the + * {@link ng.$rootScope.Scope#$digest $digest} cycle. Any shallow change within the * collection will trigger a call to the `listener`. * - * @param {function(newCollection, oldCollection, scope)} listener a callback function that is - * fired with both the `newCollection` and `oldCollection` as parameters. - * The `newCollection` object is the newly modified data obtained from the `obj` expression - * and the `oldCollection` object is a copy of the former collection data. - * The `scope` refers to the current scope. + * @param {function(newCollection, oldCollection, scope)} listener a callback function called + * when a change is detected. + * - The `newCollection` object is the newly modified data obtained from the `obj` expression + * - The `oldCollection` object is a copy of the former collection data. + * Due to performance considerations, the`oldCollection` value is computed only if the + * `listener` function declares two or more arguments. + * - The `scope` argument refers to the current scope. * * @returns {function()} Returns a de-registration function for this listener. When the * de-registration function is executed, the internal watch operation is terminated. */ $watchCollection: function(obj, listener) { var self = this; - var oldValue; + // the current value, updated on each dirty-check run var newValue; + // a shallow copy of the newValue from the last dirty-check run, + // updated to match newValue during dirty-check run + var oldValue; + // a shallow copy of the newValue from when the last change happened + var veryOldValue; + // only track veryOldValue if the listener is asking for it + var trackVeryOldValue = (listener.length > 1); var changeDetected = 0; var objGetter = $parse(obj); var internalArray = []; var internalObject = {}; + var initRun = true; var oldLength = 0; function $watchCollectionWatch() { newValue = objGetter(self); var newLength, key; - if (!isObject(newValue)) { + if (!isObject(newValue)) { // if primitive if (oldValue !== newValue) { oldValue = newValue; changeDetected++; @@ -20609,7 +21168,9 @@ function $RootScopeProvider(){ } // copy the items to oldValue and look for changes. for (var i = 0; i < newLength; i++) { - if (oldValue[i] !== newValue[i]) { + var bothNaN = (oldValue[i] !== oldValue[i]) && + (newValue[i] !== newValue[i]); + if (!bothNaN && (oldValue[i] !== newValue[i])) { changeDetected++; oldValue[i] = newValue[i]; } @@ -20653,40 +21214,64 @@ function $RootScopeProvider(){ } function $watchCollectionAction() { - listener(newValue, oldValue, self); + if (initRun) { + initRun = false; + listener(newValue, newValue, self); + } else { + listener(newValue, veryOldValue, self); + } + + // make a copy for the next time a collection is changed + if (trackVeryOldValue) { + if (!isObject(newValue)) { + //primitive + veryOldValue = newValue; + } else if (isArrayLike(newValue)) { + veryOldValue = new Array(newValue.length); + for (var i = 0; i < newValue.length; i++) { + veryOldValue[i] = newValue[i]; + } + } else { // if object + veryOldValue = {}; + for (var key in newValue) { + if (hasOwnProperty.call(newValue, key)) { + veryOldValue[key] = newValue[key]; + } + } + } + } } return this.$watch($watchCollectionWatch, $watchCollectionAction); }, /** - * @ngdoc function - * @name ng.$rootScope.Scope#$digest - * @methodOf ng.$rootScope.Scope - * @function + * @ngdoc method + * @name $rootScope.Scope#$digest + * @kind function * * @description - * Processes all of the {@link ng.$rootScope.Scope#methods_$watch watchers} of the current scope and - * its children. Because a {@link ng.$rootScope.Scope#methods_$watch watcher}'s listener can change - * the model, the `$digest()` keeps calling the {@link ng.$rootScope.Scope#methods_$watch watchers} + * Processes all of the {@link ng.$rootScope.Scope#$watch watchers} of the current scope and + * its children. Because a {@link ng.$rootScope.Scope#$watch watcher}'s listener can change + * the model, the `$digest()` keeps calling the {@link ng.$rootScope.Scope#$watch watchers} * until no more listeners are firing. This means that it is possible to get into an infinite * loop. This function will throw `'Maximum iteration limit exceeded.'` if the number of * iterations exceeds 10. * * Usually, you don't call `$digest()` directly in * {@link ng.directive:ngController controllers} or in - * {@link ng.$compileProvider#methods_directive directives}. - * Instead, you should call {@link ng.$rootScope.Scope#methods_$apply $apply()} (typically from within - * a {@link ng.$compileProvider#methods_directive directives}), which will force a `$digest()`. + * {@link ng.$compileProvider#directive directives}. + * Instead, you should call {@link ng.$rootScope.Scope#$apply $apply()} (typically from within + * a {@link ng.$compileProvider#directive directives}), which will force a `$digest()`. * * If you want to be notified whenever `$digest()` is called, * you can register a `watchExpression` function with - * {@link ng.$rootScope.Scope#methods_$watch $watch()} with no `listener`. + * {@link ng.$rootScope.Scope#$watch $watch()} with no `listener`. * * In unit tests, you may need to call `$digest()` to simulate the scope life cycle. * * # Example - *
+       * ```js
            var scope = ...;
            scope.name = 'misko';
            scope.counter = 0;
@@ -20698,13 +21283,17 @@ function $RootScopeProvider(){
            expect(scope.counter).toEqual(0);
 
            scope.$digest();
-           // no variable change
-           expect(scope.counter).toEqual(0);
+           // the listener is always called during the first $digest loop after it was registered
+           expect(scope.counter).toEqual(1);
 
-           scope.name = 'adam';
            scope.$digest();
+           // but now it will not be called unless the value changes
            expect(scope.counter).toEqual(1);
-       * 
+ + scope.name = 'adam'; + scope.$digest(); + expect(scope.counter).toEqual(2); + * ``` * */ $digest: function() { @@ -20755,7 +21344,7 @@ function $RootScopeProvider(){ && isNaN(value) && isNaN(last)))) { dirty = true; lastDirtyWatch = watch; - watch.last = watch.eq ? copy(value) : value; + watch.last = watch.eq ? copy(value, null) : value; watch.fn(value, ((last === initWatchVal) ? value : last), current); if (ttl < 5) { logIdx = 4 - ttl; @@ -20817,8 +21406,7 @@ function $RootScopeProvider(){ /** * @ngdoc event - * @name ng.$rootScope.Scope#$destroy - * @eventOf ng.$rootScope.Scope + * @name $rootScope.Scope#$destroy * @eventType broadcast on scope being destroyed * * @description @@ -20829,14 +21417,13 @@ function $RootScopeProvider(){ */ /** - * @ngdoc function - * @name ng.$rootScope.Scope#$destroy - * @methodOf ng.$rootScope.Scope - * @function + * @ngdoc method + * @name $rootScope.Scope#$destroy + * @kind function * * @description * Removes the current scope (and all of its children) from the parent scope. Removal implies - * that calls to {@link ng.$rootScope.Scope#methods_$digest $digest()} will no longer + * that calls to {@link ng.$rootScope.Scope#$digest $digest()} will no longer * propagate to the current scope and its children. Removal also implies that the current * scope is eligible for garbage collection. * @@ -20862,22 +21449,38 @@ function $RootScopeProvider(){ forEach(this.$$listenerCount, bind(null, decrementListenerCount, this)); + // sever all the references to parent scopes (after this cleanup, the current scope should + // not be retained by any of our references and should be eligible for garbage collection) if (parent.$$childHead == this) parent.$$childHead = this.$$nextSibling; if (parent.$$childTail == this) parent.$$childTail = this.$$prevSibling; if (this.$$prevSibling) this.$$prevSibling.$$nextSibling = this.$$nextSibling; if (this.$$nextSibling) this.$$nextSibling.$$prevSibling = this.$$prevSibling; - // This is bogus code that works around Chrome's GC leak - // see: https://github.com/angular/angular.js/issues/1313#issuecomment-10378451 + + // All of the code below is bogus code that works around V8's memory leak via optimized code + // and inline caches. + // + // see: + // - https://code.google.com/p/v8/issues/detail?id=2073#c26 + // - https://github.com/angular/angular.js/issues/6794#issuecomment-38648909 + // - https://github.com/angular/angular.js/issues/1313#issuecomment-10378451 + this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead = - this.$$childTail = null; + this.$$childTail = this.$root = null; + + // don't reset these to null in case some async task tries to register a listener/watch/task + this.$$listeners = {}; + this.$$watchers = this.$$asyncQueue = this.$$postDigestQueue = []; + + // prevent NPEs since these methods have references to properties we nulled out + this.$destroy = this.$digest = this.$apply = noop; + this.$on = this.$watch = function() { return noop; }; }, /** - * @ngdoc function - * @name ng.$rootScope.Scope#$eval - * @methodOf ng.$rootScope.Scope - * @function + * @ngdoc method + * @name $rootScope.Scope#$eval + * @kind function * * @description * Executes the `expression` on the current scope and returns the result. Any exceptions in @@ -20885,14 +21488,14 @@ function $RootScopeProvider(){ * expressions. * * # Example - *
+       * ```js
            var scope = ng.$rootScope.Scope();
            scope.a = 1;
            scope.b = 2;
 
            expect(scope.$eval('a+b')).toEqual(3);
            expect(scope.$eval(function(scope){ return scope.a + scope.b; })).toEqual(3);
-       * 
+ * ``` * * @param {(string|function())=} expression An angular expression to be executed. * @@ -20907,10 +21510,9 @@ function $RootScopeProvider(){ }, /** - * @ngdoc function - * @name ng.$rootScope.Scope#$evalAsync - * @methodOf ng.$rootScope.Scope - * @function + * @ngdoc method + * @name $rootScope.Scope#$evalAsync + * @kind function * * @description * Executes the expression on the current scope at a later point in time. @@ -20920,7 +21522,7 @@ function $RootScopeProvider(){ * * - it will execute after the function that scheduled the evaluation (preferably before DOM * rendering). - * - at least one {@link ng.$rootScope.Scope#methods_$digest $digest cycle} will be performed after + * - at least one {@link ng.$rootScope.Scope#$digest $digest cycle} will be performed after * `expression` execution. * * Any exceptions from the execution of the expression are forwarded to the @@ -20955,22 +21557,21 @@ function $RootScopeProvider(){ }, /** - * @ngdoc function - * @name ng.$rootScope.Scope#$apply - * @methodOf ng.$rootScope.Scope - * @function + * @ngdoc method + * @name $rootScope.Scope#$apply + * @kind function * * @description * `$apply()` is used to execute an expression in angular from outside of the angular * framework. (For example from browser DOM events, setTimeout, XHR or third party libraries). * Because we are calling into the angular framework we need to perform proper scope life * cycle of {@link ng.$exceptionHandler exception handling}, - * {@link ng.$rootScope.Scope#methods_$digest executing watches}. + * {@link ng.$rootScope.Scope#$digest executing watches}. * * ## Life cycle * * # Pseudo-Code of `$apply()` - *
+       * ```js
            function $apply(expr) {
              try {
                return $eval(expr);
@@ -20980,17 +21581,17 @@ function $RootScopeProvider(){
                $root.$digest();
              }
            }
-       * 
+ * ``` * * * Scope's `$apply()` method transitions through the following stages: * * 1. The {@link guide/expression expression} is executed using the - * {@link ng.$rootScope.Scope#methods_$eval $eval()} method. + * {@link ng.$rootScope.Scope#$eval $eval()} method. * 2. Any exceptions from the execution of the expression are forwarded to the * {@link ng.$exceptionHandler $exceptionHandler} service. - * 3. The {@link ng.$rootScope.Scope#methods_$watch watch} listeners are fired immediately after the - * expression was executed using the {@link ng.$rootScope.Scope#methods_$digest $digest()} method. + * 3. The {@link ng.$rootScope.Scope#$watch watch} listeners are fired immediately after the + * expression was executed using the {@link ng.$rootScope.Scope#$digest $digest()} method. * * * @param {(string|function())=} exp An angular expression to be executed. @@ -21018,13 +21619,12 @@ function $RootScopeProvider(){ }, /** - * @ngdoc function - * @name ng.$rootScope.Scope#$on - * @methodOf ng.$rootScope.Scope - * @function + * @ngdoc method + * @name $rootScope.Scope#$on + * @kind function * * @description - * Listens on events of a given type. See {@link ng.$rootScope.Scope#methods_$emit $emit} for + * Listens on events of a given type. See {@link ng.$rootScope.Scope#$emit $emit} for * discussion of event life cycle. * * The event listener function format is: `function(event, args...)`. The `event` object @@ -21041,7 +21641,7 @@ function $RootScopeProvider(){ * - `defaultPrevented` - `{boolean}`: true if `preventDefault` was called. * * @param {string} name Event name to listen on. - * @param {function(event, args...)} listener Function to call when the event is emitted. + * @param {function(event, ...args)} listener Function to call when the event is emitted. * @returns {function()} Returns a deregistration function for this listener. */ $on: function(name, listener) { @@ -21068,27 +21668,26 @@ function $RootScopeProvider(){ /** - * @ngdoc function - * @name ng.$rootScope.Scope#$emit - * @methodOf ng.$rootScope.Scope - * @function + * @ngdoc method + * @name $rootScope.Scope#$emit + * @kind function * * @description * Dispatches an event `name` upwards through the scope hierarchy notifying the - * registered {@link ng.$rootScope.Scope#methods_$on} listeners. + * registered {@link ng.$rootScope.Scope#$on} listeners. * * The event life cycle starts at the scope on which `$emit` was called. All - * {@link ng.$rootScope.Scope#methods_$on listeners} listening for `name` event on this scope get + * {@link ng.$rootScope.Scope#$on listeners} listening for `name` event on this scope get * notified. Afterwards, the event traverses upwards toward the root scope and calls all * registered listeners along the way. The event will stop propagating if one of the listeners * cancels it. * - * Any exception emitted from the {@link ng.$rootScope.Scope#methods_$on listeners} will be passed + * Any exception emitted from the {@link ng.$rootScope.Scope#$on listeners} will be passed * onto the {@link ng.$exceptionHandler $exceptionHandler} service. * * @param {string} name Event name to emit. * @param {...*} args Optional one or more arguments which will be passed onto the event listeners. - * @return {Object} Event object (see {@link ng.$rootScope.Scope#methods_$on}). + * @return {Object} Event object (see {@link ng.$rootScope.Scope#$on}). */ $emit: function(name, args) { var empty = [], @@ -21137,26 +21736,25 @@ function $RootScopeProvider(){ /** - * @ngdoc function - * @name ng.$rootScope.Scope#$broadcast - * @methodOf ng.$rootScope.Scope - * @function + * @ngdoc method + * @name $rootScope.Scope#$broadcast + * @kind function * * @description * Dispatches an event `name` downwards to all child scopes (and their children) notifying the - * registered {@link ng.$rootScope.Scope#methods_$on} listeners. + * registered {@link ng.$rootScope.Scope#$on} listeners. * * The event life cycle starts at the scope on which `$broadcast` was called. All - * {@link ng.$rootScope.Scope#methods_$on listeners} listening for `name` event on this scope get + * {@link ng.$rootScope.Scope#$on listeners} listening for `name` event on this scope get * notified. Afterwards, the event propagates to all direct and indirect scopes of the current * scope and calls all registered listeners along the way. The event cannot be canceled. * - * Any exception emitted from the {@link ng.$rootScope.Scope#methods_$on listeners} will be passed + * Any exception emitted from the {@link ng.$rootScope.Scope#$on listeners} will be passed * onto the {@link ng.$exceptionHandler $exceptionHandler} service. * * @param {string} name Event name to broadcast. * @param {...*} args Optional one or more arguments which will be passed onto the event listeners. - * @return {Object} Event object, see {@link ng.$rootScope.Scope#methods_$on} + * @return {Object} Event object, see {@link ng.$rootScope.Scope#$on} */ $broadcast: function(name, args) { var target = this, @@ -21387,8 +21985,8 @@ function adjustMatchers(matchers) { /** * @ngdoc service - * @name ng.$sceDelegate - * @function + * @name $sceDelegate + * @kind function * * @description * @@ -21407,21 +22005,21 @@ function adjustMatchers(matchers) { * can override it completely to change the behavior of `$sce`, the common case would * involve configuring the {@link ng.$sceDelegateProvider $sceDelegateProvider} instead by setting * your own whitelists and blacklists for trusting URLs used for loading AngularJS resources such as - * templates. Refer {@link ng.$sceDelegateProvider#methods_resourceUrlWhitelist + * templates. Refer {@link ng.$sceDelegateProvider#resourceUrlWhitelist * $sceDelegateProvider.resourceUrlWhitelist} and {@link - * ng.$sceDelegateProvider#methods_resourceUrlBlacklist $sceDelegateProvider.resourceUrlBlacklist} + * ng.$sceDelegateProvider#resourceUrlBlacklist $sceDelegateProvider.resourceUrlBlacklist} */ /** - * @ngdoc object - * @name ng.$sceDelegateProvider + * @ngdoc provider + * @name $sceDelegateProvider * @description * * The `$sceDelegateProvider` provider allows developers to configure the {@link ng.$sceDelegate * $sceDelegate} service. This allows one to get/set the whitelists and blacklists used to ensure * that the URLs used for sourcing Angular templates are safe. Refer {@link - * ng.$sceDelegateProvider#methods_resourceUrlWhitelist $sceDelegateProvider.resourceUrlWhitelist} and - * {@link ng.$sceDelegateProvider#methods_resourceUrlBlacklist $sceDelegateProvider.resourceUrlBlacklist} + * ng.$sceDelegateProvider#resourceUrlWhitelist $sceDelegateProvider.resourceUrlWhitelist} and + * {@link ng.$sceDelegateProvider#resourceUrlBlacklist $sceDelegateProvider.resourceUrlBlacklist} * * For the general details about this service in Angular, read the main page for {@link ng.$sce * Strict Contextual Escaping (SCE)}. @@ -21458,10 +22056,9 @@ function $SceDelegateProvider() { resourceUrlBlacklist = []; /** - * @ngdoc function - * @name ng.sceDelegateProvider#resourceUrlWhitelist - * @methodOf ng.$sceDelegateProvider - * @function + * @ngdoc method + * @name $sceDelegateProvider#resourceUrlWhitelist + * @kind function * * @param {Array=} whitelist When provided, replaces the resourceUrlWhitelist with the value * provided. This must be an array or null. A snapshot of this array is used so further @@ -21488,10 +22085,9 @@ function $SceDelegateProvider() { }; /** - * @ngdoc function - * @name ng.sceDelegateProvider#resourceUrlBlacklist - * @methodOf ng.$sceDelegateProvider - * @function + * @ngdoc method + * @name $sceDelegateProvider#resourceUrlBlacklist + * @kind function * * @param {Array=} blacklist When provided, replaces the resourceUrlBlacklist with the value * provided. This must be an array or null. A snapshot of this array is used so further @@ -21593,8 +22189,7 @@ function $SceDelegateProvider() { /** * @ngdoc method - * @name ng.$sceDelegate#trustAs - * @methodOf ng.$sceDelegate + * @name $sceDelegate#trustAs * * @description * Returns an object that is trusted by angular for use in specified strict @@ -21631,20 +22226,19 @@ function $SceDelegateProvider() { /** * @ngdoc method - * @name ng.$sceDelegate#valueOf - * @methodOf ng.$sceDelegate + * @name $sceDelegate#valueOf * * @description - * If the passed parameter had been returned by a prior call to {@link ng.$sceDelegate#methods_trustAs + * If the passed parameter had been returned by a prior call to {@link ng.$sceDelegate#trustAs * `$sceDelegate.trustAs`}, returns the value that had been passed to {@link - * ng.$sceDelegate#methods_trustAs `$sceDelegate.trustAs`}. + * ng.$sceDelegate#trustAs `$sceDelegate.trustAs`}. * * If the passed parameter is not a value that had been returned by {@link - * ng.$sceDelegate#methods_trustAs `$sceDelegate.trustAs`}, returns it as-is. + * ng.$sceDelegate#trustAs `$sceDelegate.trustAs`}, returns it as-is. * - * @param {*} value The result of a prior {@link ng.$sceDelegate#methods_trustAs `$sceDelegate.trustAs`} + * @param {*} value The result of a prior {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs`} * call or anything else. - * @returns {*} The `value` that was originally provided to {@link ng.$sceDelegate#methods_trustAs + * @returns {*} The `value` that was originally provided to {@link ng.$sceDelegate#trustAs * `$sceDelegate.trustAs`} if `value` is the result of such a call. Otherwise, returns * `value` unchanged. */ @@ -21658,18 +22252,17 @@ function $SceDelegateProvider() { /** * @ngdoc method - * @name ng.$sceDelegate#getTrusted - * @methodOf ng.$sceDelegate + * @name $sceDelegate#getTrusted * * @description - * Takes the result of a {@link ng.$sceDelegate#methods_trustAs `$sceDelegate.trustAs`} call and + * Takes the result of a {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs`} call and * returns the originally supplied value if the queried context type is a supertype of the * created type. If this condition isn't satisfied, throws an exception. * * @param {string} type The kind of context in which this value is to be used. - * @param {*} maybeTrusted The result of a prior {@link ng.$sceDelegate#methods_trustAs + * @param {*} maybeTrusted The result of a prior {@link ng.$sceDelegate#trustAs * `$sceDelegate.trustAs`} call. - * @returns {*} The value the was originally provided to {@link ng.$sceDelegate#methods_trustAs + * @returns {*} The value the was originally provided to {@link ng.$sceDelegate#trustAs * `$sceDelegate.trustAs`} if valid in this context. Otherwise, throws an exception. */ function getTrusted(type, maybeTrusted) { @@ -21705,8 +22298,8 @@ function $SceDelegateProvider() { /** - * @ngdoc object - * @name ng.$sceProvider + * @ngdoc provider + * @name $sceProvider * @description * * The $sceProvider provider allows developers to configure the {@link ng.$sce $sce} service. @@ -21720,8 +22313,8 @@ function $SceDelegateProvider() { /** * @ngdoc service - * @name ng.$sce - * @function + * @name $sce + * @kind function * * @description * @@ -21774,20 +22367,20 @@ function $SceDelegateProvider() { * allowing only the files in a specific directory to do this. Ensuring that the internal API * exposed by that code doesn't markup arbitrary values as safe then becomes a more manageable task. * - * In the case of AngularJS' SCE service, one uses {@link ng.$sce#methods_trustAs $sce.trustAs} - * (and shorthand methods such as {@link ng.$sce#methods_trustAsHtml $sce.trustAsHtml}, etc.) to + * In the case of AngularJS' SCE service, one uses {@link ng.$sce#trustAs $sce.trustAs} + * (and shorthand methods such as {@link ng.$sce#trustAsHtml $sce.trustAsHtml}, etc.) to * obtain values that will be accepted by SCE / privileged contexts. * * * ## How does it work? * - * In privileged contexts, directives and code will bind to the result of {@link ng.$sce#methods_getTrusted + * In privileged contexts, directives and code will bind to the result of {@link ng.$sce#getTrusted * $sce.getTrusted(context, value)} rather than to the value directly. Directives use {@link - * ng.$sce#methods_parse $sce.parseAs} rather than `$parse` to watch attribute bindings, which performs the - * {@link ng.$sce#methods_getTrusted $sce.getTrusted} behind the scenes on non-constant literals. + * ng.$sce#parse $sce.parseAs} rather than `$parse` to watch attribute bindings, which performs the + * {@link ng.$sce#getTrusted $sce.getTrusted} behind the scenes on non-constant literals. * * As an example, {@link ng.directive:ngBindHtml ngBindHtml} uses {@link - * ng.$sce#methods_parseAsHtml $sce.parseAsHtml(binding expression)}. Here's the actual code (slightly + * ng.$sce#parseAsHtml $sce.parseAsHtml(binding expression)}. Here's the actual code (slightly * simplified): * *
@@ -21806,15 +22399,15 @@ function $SceDelegateProvider() {
  * `templateUrl`'s specified by {@link guide/directive directives}.
  *
  * By default, Angular only loads templates from the same domain and protocol as the application
- * document.  This is done by calling {@link ng.$sce#methods_getTrustedResourceUrl
+ * document.  This is done by calling {@link ng.$sce#getTrustedResourceUrl
  * $sce.getTrustedResourceUrl} on the template URL.  To load templates from other domains and/or
- * protocols, you may either either {@link ng.$sceDelegateProvider#methods_resourceUrlWhitelist whitelist
- * them} or {@link ng.$sce#methods_trustAsResourceUrl wrap it} into a trusted value.
+ * protocols, you may either either {@link ng.$sceDelegateProvider#resourceUrlWhitelist whitelist
+ * them} or {@link ng.$sce#trustAsResourceUrl wrap it} into a trusted value.
  *
  * *Please note*:
  * The browser's
- * {@link https://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_XMLHttpRequest
- * Same Origin Policy} and {@link http://www.w3.org/TR/cors/ Cross-Origin Resource Sharing (CORS)}
+ * [Same Origin Policy](https://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_XMLHttpRequest)
+ * and [Cross-Origin Resource Sharing (CORS)](http://www.w3.org/TR/cors/)
  * policy apply in addition to this and may further restrict whether the template is successfully
  * loaded.  This means that without the right CORS policy, loading templates from a different domain
  * won't work on all browsers.  Also, loading templates from `file://` URL does not work on some
@@ -21829,14 +22422,14 @@ function $SceDelegateProvider() {
  * `
`) just works. * * Additionally, `a[href]` and `img[src]` automatically sanitize their URLs and do not pass them - * through {@link ng.$sce#methods_getTrusted $sce.getTrusted}. SCE doesn't play a role here. + * through {@link ng.$sce#getTrusted $sce.getTrusted}. SCE doesn't play a role here. * * The included {@link ng.$sceDelegate $sceDelegate} comes with sane defaults to allow you to load * templates in `ng-include` from your application's domain without having to even know about SCE. * It blocks loading templates from other domains or loading templates over http from an https * served document. You can change these by setting your own custom {@link - * ng.$sceDelegateProvider#methods_resourceUrlWhitelist whitelists} and {@link - * ng.$sceDelegateProvider#methods_resourceUrlBlacklist blacklists} for matching such URLs. + * ng.$sceDelegateProvider#resourceUrlWhitelist whitelists} and {@link + * ng.$sceDelegateProvider#resourceUrlBlacklist blacklists} for matching such URLs. * * This significantly reduces the overhead. It is far easier to pay the small overhead and have an * application that's secure and can be audited to verify that with much more ease than bolting @@ -21847,13 +22440,13 @@ function $SceDelegateProvider() { * * | Context | Notes | * |---------------------|----------------| - * | `$sce.HTML` | For HTML that's safe to source into the application. The {@link ng.directive:ngBindHtml ngBindHtml} directive uses this context for bindings. | + * | `$sce.HTML` | For HTML that's safe to source into the application. The {@link ng.directive:ngBindHtml ngBindHtml} directive uses this context for bindings. If an unsafe value is encountered and the {@link ngSanitize $sanitize} module is present this will sanitize the value instead of throwing an error. | * | `$sce.CSS` | For CSS that's safe to source into the application. Currently unused. Feel free to use it in your own directives. | - * | `$sce.URL` | For URLs that are safe to follow as links. Currently unused (`
Note that `$sce.RESOURCE_URL` makes a stronger statement about the URL than `$sce.URL` does and therefore contexts requiring values trusted for `$sce.RESOURCE_URL` can be used anywhere that values trusted for `$sce.URL` are required. | + * | `$sce.URL` | For URLs that are safe to follow as links. Currently unused (`

Note that `$sce.RESOURCE_URL` makes a stronger statement about the URL than `$sce.URL` does and therefore contexts requiring values trusted for `$sce.RESOURCE_URL` can be used anywhere that values trusted for `$sce.URL` are required. | * | `$sce.JS` | For JavaScript that is safe to execute in your application's context. Currently unused. Feel free to use it in your own directives. | * - * ## Format of items in {@link ng.$sceDelegateProvider#methods_resourceUrlWhitelist resourceUrlWhitelist}/{@link ng.$sceDelegateProvider#methods_resourceUrlBlacklist Blacklist}
+ * ## Format of items in {@link ng.$sceDelegateProvider#resourceUrlWhitelist resourceUrlWhitelist}/{@link ng.$sceDelegateProvider#resourceUrlBlacklist Blacklist} * * Each element in these arrays must be one of the following: * @@ -21865,13 +22458,13 @@ function $SceDelegateProvider() { * being tested (substring matches are not good enough.) * - There are exactly **two wildcard sequences** - `*` and `**`. All other characters * match themselves. - * - `*`: matches zero or more occurances of any character other than one of the following 6 + * - `*`: matches zero or more occurrences of any character other than one of the following 6 * characters: '`:`', '`/`', '`.`', '`?`', '`&`' and ';'. It's a useful wildcard for use * in a whitelist. - * - `**`: matches zero or more occurances of *any* character. As such, it's not + * - `**`: matches zero or more occurrences of *any* character. As such, it's not * not appropriate to use in for a scheme, domain, etc. as it would match too much. (e.g. * http://**.example.com/ would match http://evil.com/?ignore=.example.com/ and that might - * not have been the intention.) It's usage at the very end of the path is ok. (e.g. + * not have been the intention.) Its usage at the very end of the path is ok. (e.g. * http://foo.example.com/templates/**). * - **RegExp** (*see caveat below*) * - *Caveat*: While regular expressions are powerful and offer great flexibility, their syntax @@ -21947,7 +22540,7 @@ function $SceDelegateProvider() { ] - + describe('SCE doc demo', function() { it('should sanitize untrusted values', function() { expect(element(by.css('.htmlComment')).getInnerHtml()) @@ -21990,10 +22583,9 @@ function $SceProvider() { var enabled = true; /** - * @ngdoc function - * @name ng.sceProvider#enabled - * @methodOf ng.$sceProvider - * @function + * @ngdoc method + * @name $sceProvider#enabled + * @kind function * * @param {boolean=} value If provided, then enables/disables SCE. * @return {boolean} true if SCE is enabled, false otherwise. @@ -22066,13 +22658,12 @@ function $SceProvider() { 'document. See http://docs.angularjs.org/api/ng.$sce for more information.'); } - var sce = copy(SCE_CONTEXTS); + var sce = shallowCopy(SCE_CONTEXTS); /** - * @ngdoc function - * @name ng.sce#isEnabled - * @methodOf ng.$sce - * @function + * @ngdoc method + * @name $sce#isEnabled + * @kind function * * @return {Boolean} true if SCE is enabled, false otherwise. If you want to set the value, you * have to do it at module config time on {@link ng.$sceProvider $sceProvider}. @@ -22094,13 +22685,12 @@ function $SceProvider() { /** * @ngdoc method - * @name ng.$sce#parse - * @methodOf ng.$sce + * @name $sce#parse * * @description * Converts Angular {@link guide/expression expression} into a function. This is like {@link * ng.$parse $parse} and is identical when the expression is a literal constant. Otherwise, it - * wraps the expression in a call to {@link ng.$sce#methods_getTrusted $sce.getTrusted(*type*, + * wraps the expression in a call to {@link ng.$sce#getTrusted $sce.getTrusted(*type*, * *result*)} * * @param {string} type The kind of SCE context in which this result will be used. @@ -22125,11 +22715,10 @@ function $SceProvider() { /** * @ngdoc method - * @name ng.$sce#trustAs - * @methodOf ng.$sce + * @name $sce#trustAs * * @description - * Delegates to {@link ng.$sceDelegate#methods_trustAs `$sceDelegate.trustAs`}. As such, + * Delegates to {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs`}. As such, * returns an object that is trusted by angular for use in specified strict contextual * escaping contexts (such as ng-bind-html, ng-include, any src attribute * interpolation, any dom event binding attribute interpolation such as for onclick, etc.) @@ -22145,95 +22734,89 @@ function $SceProvider() { /** * @ngdoc method - * @name ng.$sce#trustAsHtml - * @methodOf ng.$sce + * @name $sce#trustAsHtml * * @description * Shorthand method. `$sce.trustAsHtml(value)` → - * {@link ng.$sceDelegate#methods_trustAs `$sceDelegate.trustAs($sce.HTML, value)`} + * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.HTML, value)`} * * @param {*} value The value to trustAs. - * @returns {*} An object that can be passed to {@link ng.$sce#methods_getTrustedHtml + * @returns {*} An object that can be passed to {@link ng.$sce#getTrustedHtml * $sce.getTrustedHtml(value)} to obtain the original value. (privileged directives * only accept expressions that are either literal constants or are the - * return value of {@link ng.$sce#methods_trustAs $sce.trustAs}.) + * return value of {@link ng.$sce#trustAs $sce.trustAs}.) */ /** * @ngdoc method - * @name ng.$sce#trustAsUrl - * @methodOf ng.$sce + * @name $sce#trustAsUrl * * @description * Shorthand method. `$sce.trustAsUrl(value)` → - * {@link ng.$sceDelegate#methods_trustAs `$sceDelegate.trustAs($sce.URL, value)`} + * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.URL, value)`} * * @param {*} value The value to trustAs. - * @returns {*} An object that can be passed to {@link ng.$sce#methods_getTrustedUrl + * @returns {*} An object that can be passed to {@link ng.$sce#getTrustedUrl * $sce.getTrustedUrl(value)} to obtain the original value. (privileged directives * only accept expressions that are either literal constants or are the - * return value of {@link ng.$sce#methods_trustAs $sce.trustAs}.) + * return value of {@link ng.$sce#trustAs $sce.trustAs}.) */ /** * @ngdoc method - * @name ng.$sce#trustAsResourceUrl - * @methodOf ng.$sce + * @name $sce#trustAsResourceUrl * * @description * Shorthand method. `$sce.trustAsResourceUrl(value)` → - * {@link ng.$sceDelegate#methods_trustAs `$sceDelegate.trustAs($sce.RESOURCE_URL, value)`} + * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.RESOURCE_URL, value)`} * * @param {*} value The value to trustAs. - * @returns {*} An object that can be passed to {@link ng.$sce#methods_getTrustedResourceUrl + * @returns {*} An object that can be passed to {@link ng.$sce#getTrustedResourceUrl * $sce.getTrustedResourceUrl(value)} to obtain the original value. (privileged directives * only accept expressions that are either literal constants or are the return - * value of {@link ng.$sce#methods_trustAs $sce.trustAs}.) + * value of {@link ng.$sce#trustAs $sce.trustAs}.) */ /** * @ngdoc method - * @name ng.$sce#trustAsJs - * @methodOf ng.$sce + * @name $sce#trustAsJs * * @description * Shorthand method. `$sce.trustAsJs(value)` → - * {@link ng.$sceDelegate#methods_trustAs `$sceDelegate.trustAs($sce.JS, value)`} + * {@link ng.$sceDelegate#trustAs `$sceDelegate.trustAs($sce.JS, value)`} * * @param {*} value The value to trustAs. - * @returns {*} An object that can be passed to {@link ng.$sce#methods_getTrustedJs + * @returns {*} An object that can be passed to {@link ng.$sce#getTrustedJs * $sce.getTrustedJs(value)} to obtain the original value. (privileged directives * only accept expressions that are either literal constants or are the - * return value of {@link ng.$sce#methods_trustAs $sce.trustAs}.) + * return value of {@link ng.$sce#trustAs $sce.trustAs}.) */ /** * @ngdoc method - * @name ng.$sce#getTrusted - * @methodOf ng.$sce + * @name $sce#getTrusted * * @description - * Delegates to {@link ng.$sceDelegate#methods_getTrusted `$sceDelegate.getTrusted`}. As such, - * takes the result of a {@link ng.$sce#methods_trustAs `$sce.trustAs`}() call and returns the + * Delegates to {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted`}. As such, + * takes the result of a {@link ng.$sce#trustAs `$sce.trustAs`}() call and returns the * originally supplied value if the queried context type is a supertype of the created type. * If this condition isn't satisfied, throws an exception. * * @param {string} type The kind of context in which this value is to be used. - * @param {*} maybeTrusted The result of a prior {@link ng.$sce#methods_trustAs `$sce.trustAs`} + * @param {*} maybeTrusted The result of a prior {@link ng.$sce#trustAs `$sce.trustAs`} * call. * @returns {*} The value the was originally provided to - * {@link ng.$sce#methods_trustAs `$sce.trustAs`} if valid in this context. + * {@link ng.$sce#trustAs `$sce.trustAs`} if valid in this context. * Otherwise, throws an exception. */ /** * @ngdoc method - * @name ng.$sce#getTrustedHtml - * @methodOf ng.$sce + * @name $sce#getTrustedHtml * * @description * Shorthand method. `$sce.getTrustedHtml(value)` → - * {@link ng.$sceDelegate#methods_getTrusted `$sceDelegate.getTrusted($sce.HTML, value)`} + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.HTML, value)`} * * @param {*} value The value to pass to `$sce.getTrusted`. * @returns {*} The return value of `$sce.getTrusted($sce.HTML, value)` @@ -22241,12 +22824,11 @@ function $SceProvider() { /** * @ngdoc method - * @name ng.$sce#getTrustedCss - * @methodOf ng.$sce + * @name $sce#getTrustedCss * * @description * Shorthand method. `$sce.getTrustedCss(value)` → - * {@link ng.$sceDelegate#methods_getTrusted `$sceDelegate.getTrusted($sce.CSS, value)`} + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.CSS, value)`} * * @param {*} value The value to pass to `$sce.getTrusted`. * @returns {*} The return value of `$sce.getTrusted($sce.CSS, value)` @@ -22254,12 +22836,11 @@ function $SceProvider() { /** * @ngdoc method - * @name ng.$sce#getTrustedUrl - * @methodOf ng.$sce + * @name $sce#getTrustedUrl * * @description * Shorthand method. `$sce.getTrustedUrl(value)` → - * {@link ng.$sceDelegate#methods_getTrusted `$sceDelegate.getTrusted($sce.URL, value)`} + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.URL, value)`} * * @param {*} value The value to pass to `$sce.getTrusted`. * @returns {*} The return value of `$sce.getTrusted($sce.URL, value)` @@ -22267,12 +22848,11 @@ function $SceProvider() { /** * @ngdoc method - * @name ng.$sce#getTrustedResourceUrl - * @methodOf ng.$sce + * @name $sce#getTrustedResourceUrl * * @description * Shorthand method. `$sce.getTrustedResourceUrl(value)` → - * {@link ng.$sceDelegate#methods_getTrusted `$sceDelegate.getTrusted($sce.RESOURCE_URL, value)`} + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.RESOURCE_URL, value)`} * * @param {*} value The value to pass to `$sceDelegate.getTrusted`. * @returns {*} The return value of `$sce.getTrusted($sce.RESOURCE_URL, value)` @@ -22280,12 +22860,11 @@ function $SceProvider() { /** * @ngdoc method - * @name ng.$sce#getTrustedJs - * @methodOf ng.$sce + * @name $sce#getTrustedJs * * @description * Shorthand method. `$sce.getTrustedJs(value)` → - * {@link ng.$sceDelegate#methods_getTrusted `$sceDelegate.getTrusted($sce.JS, value)`} + * {@link ng.$sceDelegate#getTrusted `$sceDelegate.getTrusted($sce.JS, value)`} * * @param {*} value The value to pass to `$sce.getTrusted`. * @returns {*} The return value of `$sce.getTrusted($sce.JS, value)` @@ -22293,12 +22872,11 @@ function $SceProvider() { /** * @ngdoc method - * @name ng.$sce#parseAsHtml - * @methodOf ng.$sce + * @name $sce#parseAsHtml * * @description * Shorthand method. `$sce.parseAsHtml(expression string)` → - * {@link ng.$sce#methods_parse `$sce.parseAs($sce.HTML, value)`} + * {@link ng.$sce#parse `$sce.parseAs($sce.HTML, value)`} * * @param {string} expression String expression to compile. * @returns {function(context, locals)} a function which represents the compiled expression: @@ -22311,12 +22889,11 @@ function $SceProvider() { /** * @ngdoc method - * @name ng.$sce#parseAsCss - * @methodOf ng.$sce + * @name $sce#parseAsCss * * @description * Shorthand method. `$sce.parseAsCss(value)` → - * {@link ng.$sce#methods_parse `$sce.parseAs($sce.CSS, value)`} + * {@link ng.$sce#parse `$sce.parseAs($sce.CSS, value)`} * * @param {string} expression String expression to compile. * @returns {function(context, locals)} a function which represents the compiled expression: @@ -22329,12 +22906,11 @@ function $SceProvider() { /** * @ngdoc method - * @name ng.$sce#parseAsUrl - * @methodOf ng.$sce + * @name $sce#parseAsUrl * * @description * Shorthand method. `$sce.parseAsUrl(value)` → - * {@link ng.$sce#methods_parse `$sce.parseAs($sce.URL, value)`} + * {@link ng.$sce#parse `$sce.parseAs($sce.URL, value)`} * * @param {string} expression String expression to compile. * @returns {function(context, locals)} a function which represents the compiled expression: @@ -22347,12 +22923,11 @@ function $SceProvider() { /** * @ngdoc method - * @name ng.$sce#parseAsResourceUrl - * @methodOf ng.$sce + * @name $sce#parseAsResourceUrl * * @description * Shorthand method. `$sce.parseAsResourceUrl(value)` → - * {@link ng.$sce#methods_parse `$sce.parseAs($sce.RESOURCE_URL, value)`} + * {@link ng.$sce#parse `$sce.parseAs($sce.RESOURCE_URL, value)`} * * @param {string} expression String expression to compile. * @returns {function(context, locals)} a function which represents the compiled expression: @@ -22365,12 +22940,11 @@ function $SceProvider() { /** * @ngdoc method - * @name ng.$sce#parseAsJs - * @methodOf ng.$sce + * @name $sce#parseAsJs * * @description * Shorthand method. `$sce.parseAsJs(value)` → - * {@link ng.$sce#methods_parse `$sce.parseAs($sce.JS, value)`} + * {@link ng.$sce#parse `$sce.parseAs($sce.JS, value)`} * * @param {string} expression String expression to compile. * @returns {function(context, locals)} a function which represents the compiled expression: @@ -22406,7 +22980,7 @@ function $SceProvider() { /** * !!! This is an undocumented "private" service !!! * - * @name ng.$sniffer + * @name $sniffer * @requires $window * @requires $document * @@ -22502,9 +23076,8 @@ function $TimeoutProvider() { /** - * @ngdoc function - * @name ng.$timeout - * @requires $browser + * @ngdoc service + * @name $timeout * * @description * Angular's wrapper for `window.setTimeout`. The `fn` function is wrapped into a try/catch @@ -22522,10 +23095,10 @@ function $TimeoutProvider() { * @param {function()} fn A function, whose execution should be delayed. * @param {number=} [delay=0] Delay in milliseconds. * @param {boolean=} [invokeApply=true] If set to `false` skips model dirty checking, otherwise - * will invoke `fn` within the {@link ng.$rootScope.Scope#methods_$apply $apply} block. + * will invoke `fn` within the {@link ng.$rootScope.Scope#$apply $apply} block. * @returns {Promise} Promise that will be resolved when the timeout is reached. The value this * promise will be resolved with is the return value of the `fn` function. - * + * */ function timeout(fn, delay, invokeApply) { var deferred = $q.defer(), @@ -22555,9 +23128,8 @@ function $TimeoutProvider() { /** - * @ngdoc function - * @name ng.$timeout#cancel - * @methodOf ng.$timeout + * @ngdoc method + * @name $timeout#cancel * * @description * Cancels a task associated with the `promise`. As a result of this, the promise will be @@ -22626,7 +23198,7 @@ var originUrl = urlResolve(window.location.href, true); * https://github.com/angular/angular.js/pull/2902 * http://james.padolsey.com/javascript/parsing-urls-with-the-dom/ * - * @function + * @kind function * @param {string} url The URL to be parsed. * @description Normalizes and parses a URL. * @returns {object} Returns the normalized URL as a dictionary. @@ -22684,8 +23256,8 @@ function urlIsSameOrigin(requestUrl) { } /** - * @ngdoc object - * @name ng.$window + * @ngdoc service + * @name $window * * @description * A reference to the browser's `window` object. While `window` @@ -22699,8 +23271,8 @@ function urlIsSameOrigin(requestUrl) { * expression. * * @example - - + + - + + userType: Required!
userType = {{userType}}
@@ -24512,8 +25219,8 @@ function FormController(element, attrs) { myForm.$valid = {{myForm.$valid}}
myForm.$error.required = {{!!myForm.$error.required}}
-
- +
+ it('should initialize to model', function() { var userType = element(by.binding('userType')); var valid = element(by.binding('myForm.input.$valid')); @@ -24533,8 +25240,9 @@ function FormController(element, attrs) { expect(userType.getText()).toEqual('userType ='); expect(valid.getText()).toContain('false'); }); - - + + + * */ var formDirectiveFactory = function(isNgForm) { return ['$timeout', function($timeout) { @@ -24611,8 +25319,8 @@ var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/; var inputType = { /** - * @ngdoc inputType - * @name ng.directive:input.text + * @ngdoc input + * @name input[text] * * @description * Standard HTML text input with angular data binding. @@ -24635,8 +25343,8 @@ var inputType = { * @param {boolean=} [ngTrim=true] If set to false Angular will not automatically trim the input. * * @example - - + + + + Update input to see transitions when valid/invalid. + Integer is a valid value. +
+ +
+
+ *
*/ var ngModelDirective = function() { return { @@ -25842,7 +26653,7 @@ var ngModelDirective = function() { /** * @ngdoc directive - * @name ng.directive:ngChange + * @name ngChange * * @description * Evaluate the given expression when the user changes the input. @@ -25858,8 +26669,8 @@ var ngModelDirective = function() { * in input value. * * @example - * - * + * + * * -
- Name: - [ greet ]
- Contact: -
    -
  • - - - [ clear - | X ] -
  • -
  • [ add ]
  • -
-
-
- - it('should check controller as', function() { - var container = element(by.id('ctrl-as-exmpl')); - - expect(container.findElement(by.model('settings.name')) - .getAttribute('value')).toBe('John Smith'); - - var firstRepeat = - container.findElement(by.repeater('contact in settings.contacts').row(0)); - var secondRepeat = - container.findElement(by.repeater('contact in settings.contacts').row(1)); - - expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) - .toBe('408 555 1212'); - expect(secondRepeat.findElement(by.model('contact.value')).getAttribute('value')) - .toBe('john.smith@example.org'); - - firstRepeat.findElement(by.linkText('clear')).click() - - expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) - .toBe(''); - - container.findElement(by.linkText('add')).click(); - - expect(container.findElement(by.repeater('contact in settings.contacts').row(2)) - .findElement(by.model('contact.value')) - .getAttribute('value')) - .toBe('yourname@example.org'); - }); - -
- - - -
- Name: - [ greet ]
- Contact: -
    -
  • - - - [ clear - | X ] -
  • -
  • [ add ]
  • -
-
-
- - it('should check controller', function() { - var container = element(by.id('ctrl-exmpl')); - - expect(container.findElement(by.model('name')) - .getAttribute('value')).toBe('John Smith'); - - var firstRepeat = - container.findElement(by.repeater('contact in contacts').row(0)); - var secondRepeat = - container.findElement(by.repeater('contact in contacts').row(1)); - - expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) - .toBe('408 555 1212'); - expect(secondRepeat.findElement(by.model('contact.value')).getAttribute('value')) - .toBe('john.smith@example.org'); - - firstRepeat.findElement(by.linkText('clear')).click() - - expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) - .toBe(''); - - container.findElement(by.linkText('add')).click(); - - expect(container.findElement(by.repeater('contact in contacts').row(2)) - .findElement(by.model('contact.value')) - .getAttribute('value')) - .toBe('yourname@example.org'); - }); - -
+ * easily be called from the angular markup. Any changes to the data are automatically reflected + * in the View without the need for a manual update. + * + * Two different declaration styles are included below: + * + * * one binds methods and properties directly onto the controller using `this`: + * `ng-controller="SettingsController1 as settings"` + * * one injects `$scope` into the controller: + * `ng-controller="SettingsController2"` + * + * The second option is more common in the Angular community, and is generally used in boilerplates + * and in this guide. However, there are advantages to binding properties directly to the controller + * and avoiding scope. + * + * * Using `controller as` makes it obvious which controller you are accessing in the template when + * multiple controllers apply to an element. + * * If you are writing your controllers as classes you have easier access to the properties and + * methods, which will appear on the scope, from inside the controller code. + * * Since there is always a `.` in the bindings, you don't have to worry about prototypal + * inheritance masking primitives. + * + * This example demonstrates the `controller as` syntax. + * + * + * + *
+ * Name: + * [ greet ]
+ * Contact: + *
    + *
  • + * + * + * [ clear + * | X ] + *
  • + *
  • [ add ]
  • + *
+ *
+ *
+ * + * function SettingsController1() { + * this.name = "John Smith"; + * this.contacts = [ + * {type: 'phone', value: '408 555 1212'}, + * {type: 'email', value: 'john.smith@example.org'} ]; + * } + * + * SettingsController1.prototype.greet = function() { + * alert(this.name); + * }; + * + * SettingsController1.prototype.addContact = function() { + * this.contacts.push({type: 'email', value: 'yourname@example.org'}); + * }; + * + * SettingsController1.prototype.removeContact = function(contactToRemove) { + * var index = this.contacts.indexOf(contactToRemove); + * this.contacts.splice(index, 1); + * }; + * + * SettingsController1.prototype.clearContact = function(contact) { + * contact.type = 'phone'; + * contact.value = ''; + * }; + * + * + * it('should check controller as', function() { + * var container = element(by.id('ctrl-as-exmpl')); + * expect(container.findElement(by.model('settings.name')) + * .getAttribute('value')).toBe('John Smith'); + * + * var firstRepeat = + * container.findElement(by.repeater('contact in settings.contacts').row(0)); + * var secondRepeat = + * container.findElement(by.repeater('contact in settings.contacts').row(1)); + * + * expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) + * .toBe('408 555 1212'); + * + * expect(secondRepeat.findElement(by.model('contact.value')).getAttribute('value')) + * .toBe('john.smith@example.org'); + * + * firstRepeat.findElement(by.linkText('clear')).click(); + * + * expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) + * .toBe(''); + * + * container.findElement(by.linkText('add')).click(); + * + * expect(container.findElement(by.repeater('contact in settings.contacts').row(2)) + * .findElement(by.model('contact.value')) + * .getAttribute('value')) + * .toBe('yourname@example.org'); + * }); + * + *
+ * + * This example demonstrates the "attach to `$scope`" style of controller. + * + * + * + *
+ * Name: + * [ greet ]
+ * Contact: + *
    + *
  • + * + * + * [ clear + * | X ] + *
  • + *
  • [ add ]
  • + *
+ *
+ *
+ * + * function SettingsController2($scope) { + * $scope.name = "John Smith"; + * $scope.contacts = [ + * {type:'phone', value:'408 555 1212'}, + * {type:'email', value:'john.smith@example.org'} ]; + * + * $scope.greet = function() { + * alert($scope.name); + * }; + * + * $scope.addContact = function() { + * $scope.contacts.push({type:'email', value:'yourname@example.org'}); + * }; + * + * $scope.removeContact = function(contactToRemove) { + * var index = $scope.contacts.indexOf(contactToRemove); + * $scope.contacts.splice(index, 1); + * }; + * + * $scope.clearContact = function(contact) { + * contact.type = 'phone'; + * contact.value = ''; + * }; + * } + * + * + * it('should check controller', function() { + * var container = element(by.id('ctrl-exmpl')); + * + * expect(container.findElement(by.model('name')) + * .getAttribute('value')).toBe('John Smith'); + * + * var firstRepeat = + * container.findElement(by.repeater('contact in contacts').row(0)); + * var secondRepeat = + * container.findElement(by.repeater('contact in contacts').row(1)); + * + * expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) + * .toBe('408 555 1212'); + * expect(secondRepeat.findElement(by.model('contact.value')).getAttribute('value')) + * .toBe('john.smith@example.org'); + * + * firstRepeat.findElement(by.linkText('clear')).click(); + * + * expect(firstRepeat.findElement(by.model('contact.value')).getAttribute('value')) + * .toBe(''); + * + * container.findElement(by.linkText('add')).click(); + * + * expect(container.findElement(by.repeater('contact in contacts').row(2)) + * .findElement(by.model('contact.value')) + * .getAttribute('value')) + * .toBe('yourname@example.org'); + * }); + * + *
*/ var ngControllerDirective = [function() { @@ -26841,7 +27738,7 @@ var ngControllerDirective = [function() { /** * @ngdoc directive - * @name ng.directive:ngCsp + * @name ngCsp * * @element html * @description @@ -26868,13 +27765,13 @@ var ngControllerDirective = [function() { * * @example * This example shows how to apply the `ngCsp` directive to the `html` tag. -
+   ```html
      
      
      ...
      ...
      
-   
+ ``` */ // ngCsp is not implemented as a proper directive any more, because we need it be processed while we bootstrap @@ -26883,7 +27780,7 @@ var ngControllerDirective = [function() { /** * @ngdoc directive - * @name ng.directive:ngClick + * @name ngClick * * @description * The ngClick directive allows you to specify custom behavior when @@ -26892,24 +27789,24 @@ var ngControllerDirective = [function() { * @element ANY * @priority 0 * @param {expression} ngClick {@link guide/expression Expression} to evaluate upon - * click. (Event object is available as `$event`) + * click. ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + count: {{count}} - - +
+ it('should check ng-click', function() { expect(element(by.binding('count')).getText()).toMatch('0'); - element(by.css('.doc-example-live button')).click(); + element(by.css('button')).click(); expect(element(by.binding('count')).getText()).toMatch('1'); }); - - + + */ /* * A directive that allows creation of custom onclick handlers that are defined as angular @@ -26941,7 +27838,7 @@ forEach( /** * @ngdoc directive - * @name ng.directive:ngDblclick + * @name ngDblclick * * @description * The `ngDblclick` directive allows you to specify custom behavior on a dblclick event. @@ -26952,20 +27849,20 @@ forEach( * a dblclick. (The Event object is available as `$event`) * * @example - - + + count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngMousedown + * @name ngMousedown * * @description * The ngMousedown directive allows you to specify custom behavior on mousedown event. @@ -26973,23 +27870,23 @@ forEach( * @element ANY * @priority 0 * @param {expression} ngMousedown {@link guide/expression Expression} to evaluate upon - * mousedown. (Event object is available as `$event`) + * mousedown. ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngMouseup + * @name ngMouseup * * @description * Specify custom behavior on mouseup event. @@ -26997,22 +27894,22 @@ forEach( * @element ANY * @priority 0 * @param {expression} ngMouseup {@link guide/expression Expression} to evaluate upon - * mouseup. (Event object is available as `$event`) + * mouseup. ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngMouseover + * @name ngMouseover * * @description * Specify custom behavior on mouseover event. @@ -27020,23 +27917,23 @@ forEach( * @element ANY * @priority 0 * @param {expression} ngMouseover {@link guide/expression Expression} to evaluate upon - * mouseover. (Event object is available as `$event`) + * mouseover. ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngMouseenter + * @name ngMouseenter * * @description * Specify custom behavior on mouseenter event. @@ -27044,23 +27941,23 @@ forEach( * @element ANY * @priority 0 * @param {expression} ngMouseenter {@link guide/expression Expression} to evaluate upon - * mouseenter. (Event object is available as `$event`) + * mouseenter. ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngMouseleave + * @name ngMouseleave * * @description * Specify custom behavior on mouseleave event. @@ -27068,23 +27965,23 @@ forEach( * @element ANY * @priority 0 * @param {expression} ngMouseleave {@link guide/expression Expression} to evaluate upon - * mouseleave. (Event object is available as `$event`) + * mouseleave. ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngMousemove + * @name ngMousemove * * @description * Specify custom behavior on mousemove event. @@ -27092,23 +27989,23 @@ forEach( * @element ANY * @priority 0 * @param {expression} ngMousemove {@link guide/expression Expression} to evaluate upon - * mousemove. (Event object is available as `$event`) + * mousemove. ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngKeydown + * @name ngKeydown * * @description * Specify custom behavior on keydown event. @@ -27119,18 +28016,18 @@ forEach( * keydown. (Event object is available as `$event` and can be interrogated for keyCode, altKey, etc.) * * @example - - + + key down count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngKeyup + * @name ngKeyup * * @description * Specify custom behavior on keyup event. @@ -27141,62 +28038,69 @@ forEach( * keyup. (Event object is available as `$event` and can be interrogated for keyCode, altKey, etc.) * * @example - - - - key up count: {{count}} - - + + +

Typing in the input box below updates the key count

+ key up count: {{count}} + +

Typing in the input box below updates the keycode

+ +

event keyCode: {{ event.keyCode }}

+

event altKey: {{ event.altKey }}

+
+
*/ /** * @ngdoc directive - * @name ng.directive:ngKeypress + * @name ngKeypress * * @description * Specify custom behavior on keypress event. * * @element ANY * @param {expression} ngKeypress {@link guide/expression Expression} to evaluate upon - * keypress. (Event object is available as `$event` and can be interrogated for keyCode, altKey, etc.) + * keypress. ({@link guide/expression#-event- Event object is available as `$event`} + * and can be interrogated for keyCode, altKey, etc.) * * @example - - + + key press count: {{count}} - - + + */ /** * @ngdoc directive - * @name ng.directive:ngSubmit + * @name ngSubmit * * @description * Enables binding angular expressions to onsubmit events. * * Additionally it prevents the default action (which for form means sending the request to the - * server and reloading the current page) **but only if the form does not contain an `action` - * attribute**. + * server and reloading the current page), but only if the form does not contain `action`, + * `data-action`, or `x-action` attributes. * * @element form * @priority 0 - * @param {expression} ngSubmit {@link guide/expression Expression} to eval. (Event object is available as `$event`) + * @param {expression} ngSubmit {@link guide/expression Expression} to eval. + * ({@link guide/expression#-event- Event object is available as `$event`}) * * @example - - + + Load inlined template
-
- + + it('should load template defined inside script tag', function() { element(by.css('#tpl-link')).click(); expect(element(by.css('#tpl-content')).getText()).toMatch(/Content of the template/); }); - -
+ + */ var scriptDirective = ['$templateCache', function($templateCache) { return { @@ -29080,7 +30006,7 @@ var scriptDirective = ['$templateCache', function($templateCache) { var ngOptionsMinErr = minErr('ngOptions'); /** * @ngdoc directive - * @name ng.directive:select + * @name select * @restrict E * * @description @@ -29098,7 +30024,7 @@ var ngOptionsMinErr = minErr('ngOptions'); * *
* **Note:** `ngModel` compares by reference, not value. This is important when binding to an - * array of objects. See an example {@link http://jsfiddle.net/qWzTb/ in this jsfiddle}. + * array of objects. See an example [in this jsfiddle](http://jsfiddle.net/qWzTb/). *
* * Optionally, a single hard-coded `