├── README.md ├── app.js ├── contact.html ├── css ├── app.css └── app.less ├── index.html ├── js ├── contact │ ├── contact.hbs │ ├── contactController.js │ └── contactView.js ├── contactModel.js ├── list │ ├── contact-list-item.hbs │ ├── listController.js │ └── listView.js └── router.js └── lib ├── css ├── framework7.css ├── framework7.min.css ├── framework7.rtl.css ├── framework7.rtl.min.css └── ionicons.css ├── fonts ├── ionicons.eot ├── ionicons.svg ├── ionicons.ttf └── ionicons.woff ├── framework7.js ├── framework7.min.js ├── handlebars.js ├── hbs.js ├── require.js └── text.js /README.md: -------------------------------------------------------------------------------- 1 | Framework7-MVC-base 2 | ======================== 3 | 4 | This app shows you example of using beautiful mobile framework - Framework7 in MVC way for building data-driven contacts application. 5 | 6 | ##### Additional js libraries: 7 | - Handlebars - templating library (http://handlebarsjs.com/) 8 | - RequireJS - for asynchronous javascript modules loading (http://requirejs.org/) 9 | - Additional RequireJS plugins for handlebars templates loading: 10 | - text (https://github.com/requirejs/text) 11 | - hbs (https://github.com/epeli/requirejs-hbs) 12 | 13 | And amazing mobile-icons library: 14 | - ionicons (http://ionicons.com/) 15 | 16 | 17 | Some notes about "how it works". 18 | ----- 19 | 20 | Application entry point: app.js file. 21 | It's used for RequireJs and Framework7 initial configuration. 22 | Also it starts application routing. 23 | 24 | Router has two methods: 25 | + ```Router.init()``` - initialize routing - handle Framework7 page events - pageBeforeInit and pageBeforeAnimation. 26 | More about Framework7 page events here: 27 | http://www.idangero.us/framework7/docs/pages.html#page-events 28 | 29 | + ```Router.load(contollerName, query)``` - load selected controller, query - optional object with some parameters 30 | This method is useful for loading in already rendered page (for example popup) 31 | 32 | 33 | Suggested application code structure is convenient, especially for large projects: 34 | ``` js/moduleName1/moduleName1View.js 35 | js/moduleName1/moduleName1Controller.js 36 | js/moduleName1/some_templates.hbs 37 | js/router.js 38 | js/model.js 39 | ``` 40 | 41 | License 42 | ---- 43 | 44 | MIT 45 | -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | require.config({ 2 | paths: { 3 | handlebars: "lib/handlebars", 4 | text: "lib/text", 5 | hbs: "lib/hbs" 6 | }, 7 | shim: { 8 | handlebars: { 9 | exports: "Handlebars" 10 | } 11 | } 12 | }); 13 | define('app', ['js/router'], function(Router) { 14 | Router.init(); 15 | var f7 = new Framework7({ 16 | modalTitle: 'F7-MVC-Base', 17 | animateNavBackIcon: true 18 | }); 19 | var mainView = f7.addView('.view-main', { 20 | dynamicNavbar: true 21 | }); 22 | return { 23 | f7: f7, 24 | mainView: mainView, 25 | router: Router 26 | }; 27 | }); -------------------------------------------------------------------------------- /contact.html: -------------------------------------------------------------------------------- 1 | 17 |
18 |
19 | 20 |
21 |
22 | -------------------------------------------------------------------------------- /css/app.css: -------------------------------------------------------------------------------- 1 | .navbar { 2 | border-bottom: none; 3 | background: #74baee; 4 | color: #ffffff; 5 | } 6 | .navbar a.link { 7 | color: #ffffff; 8 | } 9 | .contacts-list { 10 | margin: 0px; 11 | } 12 | i.icon-plus { 13 | height: 25px; 14 | font-size: 31px; 15 | line-height: 20px; 16 | font-weight: 100; 17 | } 18 | .ion-ios7-person { 19 | color: #74baee; 20 | font-size: 25px; 21 | line-height: 20px; 22 | } 23 | .ion-ios7-football-outline { 24 | color: #74baee; 25 | font-size: 22px; 26 | line-height: 20px; 27 | } 28 | .ion-ios7-telephone-outline { 29 | color: #74baee; 30 | font-size: 24px; 31 | line-height: 20px; 32 | padding-left: 2px; 33 | } 34 | /* 35 | Android optimization hacks 36 | */ 37 | html.android .navbar-from-right-to-center .left.sliding .back.link .icon, 38 | html.android .navbar-from-center-to-right .left.sliding .back.link .icon, 39 | html.android .navbar-from-center-to-left .left.sliding .back.link .icon, 40 | html.android .navbar-from-left-to-center .left.sliding .back.link .icon { 41 | -webkit-transition-duration: 200ms; 42 | transition-duration: 200ms; 43 | } 44 | html.android .navbar-from-right-to-center .sliding, 45 | html.android .navbar-from-center-to-right .sliding, 46 | html.android .navbar-from-center-to-left .sliding, 47 | html.android .navbar-from-left-to-center .sliding { 48 | -webkit-transition-duration: 200ms; 49 | transition-duration: 200ms; 50 | } 51 | html.android .page-from-right-to-center { 52 | -webkit-animation: pageFromRightToCenterDegrade 200ms forwards; 53 | animation: pageFromRightToCenterDegrade 200ms forwards; 54 | } 55 | html.android .page-from-center-to-right { 56 | -webkit-animation: pageFromCenterToRightDegrade 200ms forwards; 57 | animation: pageFromCenterToRightDegrade 200ms forwards; 58 | } 59 | html.android .page-on-left { 60 | opacity: 1; 61 | -webkit-transform: translate3d(0, 0, 0); 62 | -ms-transform: translate3d(0, 0, 0); 63 | transform: translate3d(0, 0, 0); 64 | } 65 | html.android .page-from-center-to-left { 66 | -webkit-animation: emptyAnimation 50ms forwards; 67 | animation: emptyAnimation 50ms forwards; 68 | } 69 | html.android .page-from-left-to-center { 70 | -webkit-animation: emptyAnimation 50ms forwards; 71 | animation: emptyAnimation 50ms forwards; 72 | } 73 | @-webkit-keyframes emptyAnimation { 74 | to { 75 | opacity: 1; 76 | } 77 | } 78 | @keyframes emptyAnimation { 79 | to { 80 | opacity: 1; 81 | } 82 | } 83 | html.android .list-block .list-group-title { 84 | display: none; 85 | } 86 | html.android .label-switch input[type="checkbox"] + .checkbox { 87 | -webkit-transition-duration: 0ms; 88 | transition-duration: 0ms; 89 | } 90 | html.android .label-switch input[type="checkbox"] + .checkbox:before { 91 | -webkit-transition-duration: 0ms; 92 | transition-duration: 0ms; 93 | } 94 | html.android .label-switch input[type="checkbox"] + .checkbox:after { 95 | -webkit-transition-duration: 0ms; 96 | transition-duration: 0ms; 97 | } 98 | -------------------------------------------------------------------------------- /css/app.less: -------------------------------------------------------------------------------- 1 | @white: #ffffff; 2 | @blue: #74baee; 3 | 4 | .navbar { 5 | border-bottom: none; 6 | background: @blue; 7 | color: @white; 8 | a.link { 9 | color: @white; 10 | } 11 | } 12 | .contacts-list { 13 | margin: 0px; 14 | } 15 | i.icon-plus { 16 | height: 25px; 17 | font-size: 31px; 18 | line-height: 20px; 19 | font-weight: 100; 20 | } 21 | .ion-ios7-person { 22 | color: @blue; 23 | font-size: 25px; 24 | line-height: 20px; 25 | } 26 | .ion-ios7-football-outline { 27 | color: @blue; 28 | font-size: 22px; 29 | line-height: 20px; 30 | } 31 | .ion-ios7-telephone-outline { 32 | color: @blue; 33 | font-size: 24px; 34 | line-height: 20px; 35 | padding-left: 2px; 36 | } 37 | 38 | /* 39 | Android optimization hacks 40 | */ 41 | // Navbar animation 42 | html.android .navbar-from-right-to-center .left.sliding .back.link .icon, 43 | html.android .navbar-from-center-to-right .left.sliding .back.link .icon, 44 | html.android .navbar-from-center-to-left .left.sliding .back.link .icon, 45 | html.android .navbar-from-left-to-center .left.sliding .back.link .icon { 46 | -webkit-transition-duration: 200ms; 47 | transition-duration: 200ms; 48 | } 49 | html.android .navbar-from-right-to-center .sliding, 50 | html.android .navbar-from-center-to-right .sliding, 51 | html.android .navbar-from-center-to-left .sliding, 52 | html.android .navbar-from-left-to-center .sliding { 53 | -webkit-transition-duration: 200ms; 54 | transition-duration: 200ms; 55 | } 56 | // Page Animations 57 | html.android .page-from-right-to-center { 58 | -webkit-animation: pageFromRightToCenterDegrade 200ms forwards; 59 | animation: pageFromRightToCenterDegrade 200ms forwards; 60 | } 61 | html.android .page-from-center-to-right { 62 | -webkit-animation: pageFromCenterToRightDegrade 200ms forwards; 63 | animation: pageFromCenterToRightDegrade 200ms forwards; 64 | } 65 | html.android .page-on-left { 66 | opacity: 1; 67 | -webkit-transform: translate3d(0, 0, 0); 68 | -ms-transform: translate3d(0, 0, 0); 69 | transform: translate3d(0, 0, 0); 70 | } 71 | html.android .page-from-center-to-left { 72 | -webkit-animation: emptyAnimation 50ms forwards; 73 | animation: emptyAnimation 50ms forwards; 74 | } 75 | html.android .page-from-left-to-center { 76 | -webkit-animation: emptyAnimation 50ms forwards; 77 | animation: emptyAnimation 50ms forwards; 78 | } 79 | @-webkit-keyframes emptyAnimation { 80 | from {} 81 | to { 82 | opacity: 1; 83 | } 84 | } 85 | @keyframes emptyAnimation { 86 | from {} 87 | to { 88 | opacity: 1; 89 | } 90 | } 91 | // Remove sticky notes if android 92 | html.android .list-block .list-group-title { 93 | display: none; 94 | } 95 | // Switch 96 | html.android .label-switch input[type="checkbox"] + .checkbox { 97 | -webkit-transition-duration: 0ms; 98 | transition-duration: 0ms; 99 | } 100 | html.android .label-switch input[type="checkbox"] + .checkbox:before { 101 | -webkit-transition-duration: 0ms; 102 | transition-duration: 0ms; 103 | } 104 | html.android .label-switch input[type="checkbox"] + .checkbox:after { 105 | -webkit-transition-duration: 0ms; 106 | transition-duration: 0ms; 107 | } -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | F7 Contacts MVC 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 36 |
37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /js/contact/contact.hbs: -------------------------------------------------------------------------------- 1 |
2 |
3 | 36 |
37 |
-------------------------------------------------------------------------------- /js/contact/contactController.js: -------------------------------------------------------------------------------- 1 | define(["app","js/contact/contactView", "js/contactModel"], function(app, ContactView, Contact) { 2 | 3 | var state = {isNew: false}; 4 | var contact = null; 5 | var bindings = [{ 6 | element: '.contact-save-link', 7 | event: 'click', 8 | handler: saveContact 9 | }]; 10 | 11 | function init(query){ 12 | if (query && query.id) { 13 | var contacts = JSON.parse(localStorage.getItem("f7Base")); 14 | for (var i = 0; i< contacts.length; i++) { 15 | if (contacts[i].id === query.id) { 16 | contact = new Contact(contacts[i]); 17 | state.isNew = false; 18 | break; 19 | } 20 | } 21 | } 22 | else { 23 | contact = new Contact(); 24 | state.isNew = true; 25 | } 26 | ContactView.render({ 27 | model: contact, 28 | state: state, 29 | bindings: bindings 30 | }); 31 | } 32 | 33 | function saveContact() { 34 | var formInput = app.f7.formToJSON('#contactEdit'); 35 | contact.setValues(formInput); 36 | if (!contact.validate()) { 37 | app.f7.alert("First name and last name are empty"); 38 | return; 39 | } 40 | var contacts = JSON.parse(localStorage.getItem("f7Base")); 41 | if (state.isNew) { 42 | contacts.push(contact); 43 | } 44 | else { 45 | for (var i = 0; i< contacts.length; i++) { 46 | if (contacts[i].id === contact.id) { 47 | contacts[i] = contact; 48 | break; 49 | } 50 | } 51 | } 52 | localStorage.setItem("f7Base", JSON.stringify(contacts)); 53 | app.router.load('list'); 54 | app.mainView.goBack(); 55 | } 56 | 57 | return { 58 | init: init 59 | }; 60 | }); -------------------------------------------------------------------------------- /js/contact/contactView.js: -------------------------------------------------------------------------------- 1 | define(['hbs!js/contact/contact'], function(viewTemplate) { 2 | var $ = Framework7.$; 3 | 4 | function render(params) { 5 | $('.contact-page').html(viewTemplate({ model: params.model })); 6 | $('.contacts-header').text(params.state.isNew ? "New contact" : "Contact"); 7 | bindEvents(params.bindings); 8 | } 9 | 10 | function bindEvents(bindings) { 11 | for (var i in bindings) { 12 | $(bindings[i].element).on(bindings[i].event, bindings[i].handler); 13 | } 14 | } 15 | 16 | return { 17 | render: render 18 | } 19 | }); -------------------------------------------------------------------------------- /js/contactModel.js: -------------------------------------------------------------------------------- 1 | define(['app'],function(app) { 2 | 3 | function Contact(values) { 4 | values = values || {}; 5 | this.id = values['id'] || Math.floor((Math.random() * 100000) + 5).toString(); 6 | 7 | this.firstName = values['firstName'] || ''; 8 | this.lastName = values['lastName'] || ''; 9 | this.phone = values['phone'] || ''; 10 | } 11 | 12 | Contact.prototype.setValues = function(formInput) { 13 | for(var field in formInput){ 14 | if (this[field] !== undefined) { 15 | this[field] = formInput[field]; 16 | } 17 | } 18 | }; 19 | 20 | Contact.prototype.validate = function() { 21 | var result = true; 22 | if (!this.firstName && !this.lastName) { 23 | result = false; 24 | } 25 | return result; 26 | }; 27 | 28 | return Contact; 29 | }); -------------------------------------------------------------------------------- /js/list/contact-list-item.hbs: -------------------------------------------------------------------------------- 1 | {{#.}} 2 |
  • 3 | 4 |
    5 |
    6 |
    {{firstName}} {{lastName}}
    7 |
    8 |
    9 |
    10 |
    11 | Delete 12 |
    13 |
    14 |
  • 15 | {{/.}} -------------------------------------------------------------------------------- /js/list/listController.js: -------------------------------------------------------------------------------- 1 | define(["js/list/listView", "js/contactModel"], function(ListView, Contact) { 2 | 3 | var bindings = [{ 4 | element: '.swipeout', 5 | event: 'deleted', 6 | handler: itemDeleted 7 | }]; 8 | 9 | function init() { 10 | var contacts = loadContacts(); 11 | ListView.render({ model: contacts, bindings: bindings }); 12 | } 13 | 14 | function loadContacts() { 15 | var f7Base = localStorage.getItem("f7Base"); 16 | var contacts = f7Base ? JSON.parse(f7Base) : tempInitializeStorage(); 17 | return contacts; 18 | } 19 | 20 | function tempInitializeStorage() { 21 | var contacts = [ 22 | new Contact({id: "1", firstName: "Alex", lastName: "Black", phone: "+380501234567" }), 23 | new Contact({id: "2", firstName: "Kate", lastName: "White", phone: "+380507654321" }) 24 | ]; 25 | localStorage.setItem("f7Base", JSON.stringify(contacts)); 26 | return JSON.parse(localStorage.getItem("f7Base")); 27 | } 28 | 29 | function itemDeleted(e) { 30 | var id = e.srcElement.id; 31 | var contacts = JSON.parse(localStorage.getItem("f7Base")); 32 | for (var i = 0; i < contacts.length; i++) { 33 | if (contacts[i].id === id) { 34 | contacts.splice(i, 1); 35 | } 36 | } 37 | localStorage.setItem("f7Base", JSON.stringify(contacts)); 38 | } 39 | 40 | return { 41 | init: init 42 | }; 43 | }); -------------------------------------------------------------------------------- /js/list/listView.js: -------------------------------------------------------------------------------- 1 | define(['hbs!js/list/contact-list-item'], function(template) { 2 | var $ = Framework7.$; 3 | 4 | function render(params) { 5 | $('.contacts-list ul').html(template(params.model)); 6 | bindEvents(params.bindings); 7 | } 8 | 9 | function bindEvents(bindings) { 10 | for (var i in bindings) { 11 | $(bindings[i].element).on(bindings[i].event, bindings[i].handler); 12 | } 13 | } 14 | 15 | return { 16 | render: render 17 | }; 18 | }); -------------------------------------------------------------------------------- /js/router.js: -------------------------------------------------------------------------------- 1 | define(function() { 2 | var $ = Framework7.$; 3 | 4 | /** 5 | * Init router, that handle page events 6 | */ 7 | function init() { 8 | $(document).on('pageBeforeInit', function (e) { 9 | var page = e.detail.page; 10 | load(page.name, page.query); 11 | }); 12 | } 13 | 14 | /** 15 | * Load (or reload) controller from js code (another controller) - call it's init function 16 | * @param controllerName 17 | * @param query 18 | */ 19 | function load(controllerName, query) { 20 | require(['js/' + controllerName + '/'+ controllerName + 'Controller'], function(controller) { 21 | controller.init(query); 22 | }); 23 | } 24 | 25 | return { 26 | init: init, 27 | load: load 28 | }; 29 | }); -------------------------------------------------------------------------------- /lib/css/framework7.min.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Framework7 0.9.0 3 | * Full Featured HTML Framework For Building iOS 7 Apps 4 | * 5 | * http://www.idangero.us/framework7 6 | * 7 | * Copyright 2014, Vladimir Kharlampidi 8 | * The iDangero.us 9 | * http://www.idangero.us/ 10 | * 11 | * Licensed under MIT 12 | * 13 | * Released on: June 28, 2014 14 | */ 15 | html,body{position:relative;height:100%;width:100%;overflow-x:hidden}body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;margin:0;padding:0;color:#000;font-size:14px;line-height:1.4;width:100%;-webkit-text-size-adjust:100%;background:#fff;overflow:hidden}@media all and (width:1024px) and (height:691px) and (orientation:landscape){html,body{height:671px}}@media all and (width:1024px) and (height:692px) and (orientation:landscape){html,body{height:672px}}*{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-touch-callout:none}a,input,textarea,select{outline:0}a{text-decoration:none;color:#007aff}p{margin:1em 0}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.row>[class*=col-]{float:left;margin-left:15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row>[class*=col-]:first-child{margin-left:0}.no-gutter.row>[class*=col-]{margin-left:0}.row .col-100{width:100%;width:-webkit-calc((100% - 15px*0) / 1);width:-moz-calc((100% - 15px*0) / 1);width:calc((100% - 15px*0) / 1)}.row.no-gutter .col-100{width:100%}.row .col-95{width:95%;width:-webkit-calc((100% - 15px*0.05263157894736836) / 1.0526315789473684);width:-moz-calc((100% - 15px*0.05263157894736836) / 1.0526315789473684);width:calc((100% - 15px*0.05263157894736836) / 1.0526315789473684)}.row.no-gutter .col-95{width:95%}.row .col-90{width:90%;width:-webkit-calc((100% - 15px*0.11111111111111116) / 1.1111111111111112);width:-moz-calc((100% - 15px*0.11111111111111116) / 1.1111111111111112);width:calc((100% - 15px*0.11111111111111116) / 1.1111111111111112)}.row.no-gutter .col-90{width:90%}.row .col-85{width:85%;width:-webkit-calc((100% - 15px*0.17647058823529416) / 1.1764705882352942);width:-moz-calc((100% - 15px*0.17647058823529416) / 1.1764705882352942);width:calc((100% - 15px*0.17647058823529416) / 1.1764705882352942)}.row.no-gutter .col-85{width:85%}.row .col-80{width:80%;width:-webkit-calc((100% - 15px*0.25) / 1.25);width:-moz-calc((100% - 15px*0.25) / 1.25);width:calc((100% - 15px*0.25) / 1.25)}.row.no-gutter .col-80{width:80%}.row .col-75{width:75%;width:-webkit-calc((100% - 15px*0.33333333333333326) / 1.3333333333333333);width:-moz-calc((100% - 15px*0.33333333333333326) / 1.3333333333333333);width:calc((100% - 15px*0.33333333333333326) / 1.3333333333333333)}.row.no-gutter .col-75{width:75%}.row .col-66{width:66.66666666666666%;width:-webkit-calc((100% - 15px*0.5000000000000002) / 1.5000000000000002);width:-moz-calc((100% - 15px*0.5000000000000002) / 1.5000000000000002);width:calc((100% - 15px*0.5000000000000002) / 1.5000000000000002)}.row.no-gutter .col-66{width:66.66666666666666%}.row .col-60{width:60%;width:-webkit-calc((100% - 15px*0.6666666666666667) / 1.6666666666666667);width:-moz-calc((100% - 15px*0.6666666666666667) / 1.6666666666666667);width:calc((100% - 15px*0.6666666666666667) / 1.6666666666666667)}.row.no-gutter .col-60{width:60%}.row .col-50{width:50%;width:-webkit-calc((100% - 15px*1) / 2);width:-moz-calc((100% - 15px*1) / 2);width:calc((100% - 15px*1) / 2)}.row.no-gutter .col-50{width:50%}.row .col-40{width:40%;width:-webkit-calc((100% - 15px*1.5) / 2.5);width:-moz-calc((100% - 15px*1.5) / 2.5);width:calc((100% - 15px*1.5) / 2.5)}.row.no-gutter .col-40{width:40%}.row .col-33{width:33.333333333333336%;width:-webkit-calc((100% - 15px*2) / 3);width:-moz-calc((100% - 15px*2) / 3);width:calc((100% - 15px*2) / 3)}.row.no-gutter .col-33{width:33.333333333333336%}.row .col-25{width:25%;width:-webkit-calc((100% - 15px*3) / 4);width:-moz-calc((100% - 15px*3) / 4);width:calc((100% - 15px*3) / 4)}.row.no-gutter .col-25{width:25%}.row .col-20{width:20%;width:-webkit-calc((100% - 15px*4) / 5);width:-moz-calc((100% - 15px*4) / 5);width:calc((100% - 15px*4) / 5)}.row.no-gutter .col-20{width:20%}.row .col-15{width:15%;width:-webkit-calc((100% - 15px*5.666666666666667) / 6.666666666666667);width:-moz-calc((100% - 15px*5.666666666666667) / 6.666666666666667);width:calc((100% - 15px*5.666666666666667) / 6.666666666666667)}.row.no-gutter .col-15{width:15%}.row .col-10{width:10%;width:-webkit-calc((100% - 15px*9) / 10);width:-moz-calc((100% - 15px*9) / 10);width:calc((100% - 15px*9) / 10)}.row.no-gutter .col-10{width:10%}.row .col-5{width:5%;width:-webkit-calc((100% - 15px*19) / 20);width:-moz-calc((100% - 15px*19) / 20);width:calc((100% - 15px*19) / 20)}.row.no-gutter .col-5{width:5%}.views,.view{position:relative;width:100%;height:100%;z-index:5000}.views{overflow:auto;-webkit-overflow-scrolling:touch}.view{overflow:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.pages{position:relative;width:100%;height:100%;overflow:hidden;background:#000}.page{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;background:#efeff4;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1;-webkit-box-shadow:none;box-shadow:none}.page.cached{display:none}.page-on-left{opacity:.9;-webkit-box-shadow:0 0 12px rgba(0,0,0,.5);box-shadow:0 0 12px rgba(0,0,0,.5);-webkit-transform:translate3d(-20%,0,0);-ms-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0)}.page-on-center{opacity:1;-webkit-box-shadow:0 0 12px rgba(0,0,0,.5);box-shadow:0 0 12px rgba(0,0,0,.5);-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.page-on-right{-webkit-box-shadow:none;box-shadow:none;opacity:1;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.page-content{overflow:auto;-webkit-overflow-scrolling:touch;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;height:100%}.page-transitioning{-webkit-transition-duration:400ms;transition-duration:400ms}.page-from-right-to-center{-webkit-animation:pageFromRightToCenter 400ms forwards;animation:pageFromRightToCenter 400ms forwards}.page-from-center-to-right{-webkit-animation:pageFromCenterToRight 400ms forwards;animation:pageFromCenterToRight 400ms forwards}@-webkit-keyframes pageFromRightToCenter{from{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:translate3d(100%,0,0)}to{-webkit-box-shadow:0 0 12px rgba(0,0,0,.5);box-shadow:0 0 12px rgba(0,0,0,.5);-webkit-transform:translate3d(0,0,0)}}@-webkit-keyframes pageFromCenterToRight{from{-webkit-box-shadow:0 0 12px rgba(0,0,0,.5);box-shadow:0 0 12px rgba(0,0,0,.5);-webkit-transform:translate3d(0,0,0)}to{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:translate3d(100%,0,0)}}@keyframes pageFromRightToCenter{from{-webkit-box-shadow:none;box-shadow:none;transform:translate3d(100%,0,0)}to{-webkit-box-shadow:0 0 12px rgba(0,0,0,.5);box-shadow:0 0 12px rgba(0,0,0,.5);transform:translate3d(0,0,0)}}@keyframes pageFromCenterToRight{from{-webkit-box-shadow:0 0 12px rgba(0,0,0,.5);box-shadow:0 0 12px rgba(0,0,0,.5);transform:translate3d(0,0,0)}to{-webkit-box-shadow:none;box-shadow:none;transform:translate3d(100%,0,0)}}.page-from-center-to-left{-webkit-animation:pageFromCenterToLeft 400ms forwards;animation:pageFromCenterToLeft 400ms forwards}.page-from-left-to-center{-webkit-animation:pageFromLeftToCenter 400ms forwards;animation:pageFromLeftToCenter 400ms forwards}@-webkit-keyframes pageFromCenterToLeft{from{opacity:1;-webkit-transform:translate3d(0,0,0)}to{opacity:.9;-webkit-transform:translate3d(-20%,0,0)}}@-webkit-keyframes pageFromLeftToCenter{from{opacity:.9;-webkit-transform:translate3d(-20%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0)}}@keyframes pageFromCenterToLeft{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:.9;transform:translate3d(-20%,0,0)}}@keyframes pageFromLeftToCenter{from{opacity:.9;transform:translate3d(-20%,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}html.android .page{box-shadow:none!important}html.android .page-from-right-to-center{-webkit-animation:pageFromRightToCenterDegrade 400ms forwards;animation:pageFromRightToCenterDegrade 400ms forwards}html.android .page-from-center-to-right{-webkit-animation:pageFromCenterToRightDegrade 400ms forwards;animation:pageFromCenterToRightDegrade 400ms forwards}@-webkit-keyframes pageFromRightToCenterDegrade{from{-webkit-transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-webkit-keyframes pageFromCenterToRightDegrade{from{-webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(100%,0,0)}}@keyframes pageFromRightToCenterDegrade{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0,0,0)}}@keyframes pageFromCenterToRightDegrade{from{transform:translate3d(0,0,0)}to{transform:translate3d(100%,0,0)}}.navbar-inner,.toolbar-inner{position:absolute;left:0;top:0;width:100%;height:100%;padding:0 8px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.navbar,.toolbar{height:44px;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:17px;position:relative;margin:0;z-index:500;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.navbar b,.toolbar b{font-weight:500}.navbar a.link,.toolbar a.link{line-height:44px;height:44px;color:#007aff;text-decoration:none;position:relative;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-transition-duration:300ms;transition-duration:300ms}.navbar a.link:active,.toolbar a.link:active{opacity:.3;-webkit-transition-duration:0ms;transition-duration:0ms}.navbar a.link i+span,.toolbar a.link i+span,.navbar a.link i+i,.toolbar a.link i+i,.navbar a.link span+i,.toolbar a.link span+i,.navbar a.link span+span,.toolbar a.link span+span{margin-left:7px}.navbar a.icon-only,.toolbar a.icon-only{min-width:44px;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;margin:0}.navbar i.icon,.toolbar i.icon{display:block}.navbar{left:0;top:0;background:#f7f7f8;border-bottom:1px solid #c4c4c4}.navbar .center{font-size:17px;font-weight:500;text-align:center;margin:0;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:44px;-webkit-flex-shrink:10;-ms-flex:0 10 auto;flex-shrink:10;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.navbar .left,.navbar .right{-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.navbar .left a+a,.navbar .right a+a{margin-left:15px}.navbar .left{margin-right:10px}.navbar .right{margin-left:10px}.navbar .right:first-child{position:absolute;right:8px;height:100%}.toolbar{left:0;bottom:0;background:#f7f7f8;border-top:1px solid #c4c4c4}.toolbar a{-webkit-flex-shrink:1;-ms-flex:0 1 auto;flex-shrink:1;position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tabbar{color:#929292;z-index:5001}.tabbar a{color:#929292}.tabbar a.active{color:#007aff}.tabbar a.tab-link,.tabbar a.link{height:100%;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;overflow:visible;-webkit-box-flex:1;-ms-flex:1;-webkit-box-orient:vertical;-moz-box-orient:vertical;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.tabbar-labels{height:50px}.tabbar-labels a.tab-link,.tabbar-labels a.link{padding-top:4px;padding-bottom:4px;height:100%;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.tabbar-labels span.tabbar-label{line-height:1;display:block;letter-spacing:.01em;font-size:10px;position:relative;text-overflow:ellipsis;white-space:nowrap}@media all and (min-width:768px){.tabbar .toolbar-inner{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.tabbar a.tab-link,.tabbar a.link{width:auto;min-width:105px}.tabbar-labels{height:55px}.tabbar-labels span.tabbar-label{font-size:14px}}.navbar-from-right-to-center .left,.navbar-from-right-to-center .right,.navbar-from-right-to-center .center{-webkit-animation:navbarElementFadeIn 400ms forwards;animation:navbarElementFadeIn 400ms forwards}.navbar-from-right-to-center .sliding{opacity:1}.navbar-from-center-to-right .left,.navbar-from-center-to-right .right,.navbar-from-center-to-right .center{-webkit-animation:navbarElementFadeOut 400ms forwards;animation:navbarElementFadeOut 400ms forwards}.navbar-from-center-to-right .sliding{opacity:0}@-webkit-keyframes navbarElementFadeIn{from{opacity:0}to{opacity:1}}@keyframes navbarElementFadeIn{from{opacity:0}to{opacity:1}}.navbar-from-center-to-left .left,.navbar-from-center-to-left .right,.navbar-from-center-to-left .center{-webkit-animation:navbarElementFadeOut 400ms forwards;animation:navbarElementFadeOut 400ms forwards}.navbar-from-center-to-left .sliding{opacity:0}.navbar-from-left-to-center .left,.navbar-from-left-to-center .right,.navbar-from-left-to-center .center{-webkit-animation:navbarElementFadeIn 400ms forwards;animation:navbarElementFadeIn 400ms forwards}.navbar-from-left-to-center .sliding{opacity:1}.navbar-on-left .left,.navbar-on-left .right,.navbar-on-left .center{opacity:0}.navbar-on-left .sliding{opacity:0}.navbar-on-right .left,.navbar-on-right .right,.navbar-on-right .center{opacity:0}.navbar-on-right .sliding{opacity:0}@-webkit-keyframes navbarElementFadeOut{from{opacity:1}to{opacity:0}}@keyframes navbarElementFadeOut{from{opacity:1}to{opacity:0}}.navbar-from-right-to-center .left.sliding .back.link .icon,.navbar-from-center-to-right .left.sliding .back.link .icon,.navbar-from-center-to-left .left.sliding .back.link .icon,.navbar-from-left-to-center .left.sliding .back.link .icon{-webkit-transition-duration:400ms;transition-duration:400ms}.navbar-from-right-to-center .sliding,.navbar-from-center-to-right .sliding,.navbar-from-center-to-left .sliding,.navbar-from-left-to-center .sliding{-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-animation:none;animation:none}.page>.navbar,.view>.navbar,.views>.navbar,.page>.toolbar,.view>.toolbar,.views>.toolbar{position:absolute}.navbar-through .page-content{padding-top:44px}.toolbar-through .page-content{padding-bottom:44px}.navbar-fixed .page-content{padding-top:44px}.toolbar-fixed .page-content{padding-bottom:44px}.hidden-navbar .navbar{-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.hiding-navbar .navbar{-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.page.no-navbar .page-content{padding-top:0}.hidden-toolbar .toolbar{-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.hiding-toolbar .toolbar{-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.page.no-toolbar .page-content{padding-bottom:0}.searchbar{height:44px;background:#c9c9ce;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #b4b4b4;padding:0 8px;overflow:hidden;position:relative;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.searchbar .searchbar-input{width:100%;height:28px;position:relative;-webkit-flex-shrink:1;-ms-flex:0 1 auto;flex-shrink:1}.searchbar input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;display:block;border:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;border-radius:5px;font-family:inherit;color:#000;font-size:14px;font-weight:400;padding:0 28px;background:#fff url("data:image/svg+xml;charset=utf-8,") no-repeat 8px center;-webkit-background-size:13px 13px;background-size:13px 13px}.searchbar input[type=search]::-webkit-input-placeholder{color:#939398;opacity:1}.searchbar input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.searchbar .searchbar-clear{position:absolute;width:28px;height:28px;right:0;top:0;opacity:0;pointer-events:none;background:url("data:image/svg+xml;charset=utf-8,") no-repeat center;-webkit-background-size:14px 14px;background-size:14px 14px;-webkit-transition-duration:300ms;transition-duration:300ms;cursor:pointer}.searchbar .searchbar-cancel{-webkit-transition-duration:300ms;transition-duration:300ms;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);color:#007aff;font-size:17px;cursor:pointer;opacity:0;-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0;margin-left:0;pointer-events:none}.searchbar.searchbar-active .searchbar-cancel{margin-left:8px;opacity:1;pointer-events:auto}.searchbar.searchbar-active .searchbar-cancel:active{opacity:.3;-webkit-transition-duration:0ms;transition-duration:0ms}.searchbar.searchbar-not-empty .searchbar-clear{pointer-events:auto;opacity:1}.searchbar-overlay{position:absolute;left:0;top:0;width:100%;height:100%;z-index:100;opacity:0;pointer-events:none;background:rgba(0,0,0,.4);-webkit-transition-duration:300ms;transition-duration:300ms;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.searchbar-overlay.searchbar-overlay-active{opacity:1;pointer-events:auto}.searchbar-not-found{display:none}.page>.searchbar{position:absolute;width:100%;left:0;top:0;z-index:200}.page>.searchbar~.page-content{padding-top:44px}.navbar-fixed .page>.searchbar,.navbar-through .page>.searchbar,.navbar-fixed>.searchbar,.navbar-through>.searchbar{top:44px}.navbar-fixed .page>.searchbar~.page-content,.navbar-through .page>.searchbar~.page-content,.navbar-fixed>.searchbar~.page-content,.navbar-through>.searchbar~.page-content{padding-top:88px}i.icon{display:inline-block;vertical-align:middle;background-size:100% auto;background-position:center;background-repeat:no-repeat;font-style:normal;position:relative}i.icon.icon-back-blue{width:12px;height:20px;background-image:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-back-white{width:12px;height:20px;background-image:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-back-black{width:12px;height:20px;background-image:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-bars-blue{width:21px;height:13px;background-image:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-bars-white{width:21px;height:13px;background-image:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-bars-black{width:21px;height:13px;background-image:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-f7{width:29px;height:29px;background-image:url(../img/i-f7.png)}i.icon.icon-form-name{width:29px;height:29px;background-image:url(../img/i-form-name.png)}i.icon.icon-form-password{width:29px;height:29px;background-image:url(../img/i-form-password.png)}i.icon.icon-form-email{width:29px;height:29px;background-image:url(../img/i-form-email.png)}i.icon.icon-form-calendar{width:29px;height:29px;background-image:url(../img/i-form-calendar.png)}i.icon.icon-form-tel{width:29px;height:29px;background-image:url(../img/i-form-tel.png)}i.icon.icon-form-gender{width:29px;height:29px;background-image:url(../img/i-form-gender.png)}i.icon.icon-form-toggle{width:29px;height:29px;background-image:url(../img/i-form-toggle.png)}i.icon.icon-form-comment{width:29px;height:29px;background-image:url(../img/i-form-comment.png)}i.icon.icon-form-settings{width:29px;height:29px;background-image:url(../img/i-form-settings.png)}i.icon.icon-form-url{width:29px;height:29px;background-image:url(../img/i-form-url.png)}i.icon.icon-next-blue,i.icon.icon-prev-blue,i.icon.icon-next-white,i.icon.icon-prev-white{width:15px;height:15px}i.icon.icon-next-blue{background:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-prev-blue{background:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-next-white{background:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-prev-white{background:url("data:image/svg+xml;charset=utf-8,")}.badge{font-size:13px;display:inline-block;color:#000;background:#ddd;border-radius:20px;padding:1px 7px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.badge.badge-red{background:#ff3b30;color:#fff}.badge.badge-green{background:#4cd964;color:#fff}.badge.badge-black{background:#000;color:#fff}.icon .badge{position:absolute;left:100%;margin-left:-10px;top:-2px;font-size:10px;padding:1px 5px}.content-block{margin:35px 0;padding:0 15px;color:#6d6d72}.content-block-title{position:relative;overflow:hidden;margin:0;white-space:nowrap;text-overflow:ellipsis;font-size:14px;text-transform:uppercase;line-height:1;color:#6d6d72;margin:35px 15px -25px}.content-block-inner{background:#fff;padding:10px 15px;margin-left:-15px;width:100%;border-bottom:1px solid #c8c7cc;border-top:1px solid #c8c7cc;color:#000}.list-block{margin:35px 0;font-size:17px}.list-block ul{background:#fff;list-style:none;padding:0;margin:0;border-top:1px solid #c8c7cc;border-bottom:1px solid #c8c7cc;position:relative}.list-block ul ul{border-top:none;border-bottom:none;padding-left:45px}.list-block ul ul li:last-child .item-inner{border-bottom:1px solid #c8c7cc}.list-block .align-top,.list-block .align-top .item-content,.list-block .align-top .item-inner{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}.list-block.inset{margin-left:15px;margin-right:15px;border-radius:7px}.list-block.inset .content-block-title{margin-left:0;margin-right:0}.list-block.inset ul{border-radius:7px;border-top:none;border-bottom:none}.list-block.inset li:first-child>a{border-radius:7px 7px 0 0}.list-block.inset li:last-child>a{border-radius:0 0 7px 7px}.list-block.inset li:first-child:last-child>a{border-radius:7px}@media all and (min-width:768px){.list-block.tablet-inset{margin-left:15px;margin-right:15px;border-radius:7px}.list-block.tablet-inset .content-block-title{margin-left:0;margin-right:0}.list-block.tablet-inset ul{border-radius:7px;border-top:none;border-bottom:none}.list-block.tablet-inset li:first-child>a{border-radius:7px 7px 0 0}.list-block.tablet-inset li:last-child>a{border-radius:0 0 7px 7px}.list-block.tablet-inset li:first-child:last-child>a{border-radius:7px}.list-block.tablet-inset .content-block-title{margin-left:0;margin-right:0}.list-block.tablet-inset ul{border-radius:7px;border-top:none;border-bottom:none}.list-block.tablet-inset li:first-child>a{border-radius:7px 7px 0 0}.list-block.tablet-inset li:last-child>a{border-radius:0 0 7px 7px}.list-block.tablet-inset li:first-child:last-child>a{border-radius:7px}}.list-block li{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative}.list-block li:last-child .item-inner{border-bottom:1px solid transparent}.list-block .item-media{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;padding-top:7px;padding-bottom:8px}.list-block .item-media i+i{margin-left:5px}.list-block .item-media i+img{margin-left:5px}.list-block .item-media+.item-inner{margin-left:15px}.list-block .item-inner{padding-right:15px;border-bottom:1px solid #c8c7cc;width:100%;padding-top:8px;padding-bottom:7px;min-height:44px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-flex:1;-ms-flex:1;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.list-block .item-title{font-size:17px;-webkit-flex-shrink:1;-ms-flex:0 1 auto;flex-shrink:1;white-space:nowrap;position:relative;overflow:hidden;text-overflow:ellipsis;max-width:100%}.list-block .item-title.label{width:35%;-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0}.list-block .item-input{width:100%;margin-top:-8px;margin-bottom:-7px;-webkit-box-flex:1;-ms-flex:1;-webkit-flex-shrink:1;-ms-flex:0 1 auto;flex-shrink:1}.list-block .item-after{white-space:nowrap;color:#8e8e93;-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0;margin-left:5px;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;max-height:28px}.list-block .item-link{-webkit-transition-duration:300ms;transition-duration:300ms;display:block;color:inherit}.list-block .item-link .item-inner{padding-right:35px;background:no-repeat -webkit-calc(100% - 15px) center;background:no-repeat -moz-calc(100% - 15px) center;background:no-repeat calc(100% - 15px) center;background-image:url("data:image/svg+xml;charset=utf-8,");background-size:10px 20px}.list-block .item-link:active{-webkit-transition-duration:0ms;transition-duration:0ms;background-color:#d9d9d9}.list-block .item-link:active .item-inner{border-bottom:1px solid transparent}.list-block .item-link.list-button{padding:0 15px;text-align:center;color:#007aff;display:block;border-bottom:1px solid #c8c7cc;line-height:43px}.list-block .item-link.list-button.button-red{color:#fc3e39}.list-block li:last-child .list-button{border-bottom:none}.list-block .item-content{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding-left:15px;min-height:44px;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.list-block .list-block-label{margin:10px 0 35px;padding:0 15px;font-size:14px;color:#8f8f94}.list-block .swipeout.deleting{overflow:hidden;-webkit-transition-duration:300ms;transition-duration:300ms}.list-block .swipeout.deleting .swipeout-content{-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.list-block .swipeout.transitioning .swipeout-content{-webkit-transition-duration:300ms;transition-duration:300ms}.list-block .swipeout-content{position:relative;z-index:10;background:#fff;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.list-block .swipeout-actions{border-bottom:1px solid #c8c7cc;position:absolute;z-index:0;right:0;top:0;width:100%;height:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.list-block li:last-child .swipeout-actions{border-bottom:none}.list-block .swipeout-actions-inner{position:absolute;right:0;top:0;height:100%;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.list-block .swipeout-actions-inner a{padding:0 30px;color:#fff;background:#c7c7cc;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.list-block .swipeout-actions-inner a.swipeout-delete{background:#fc3e39}.list-block .item-subtitle{font-size:15px;position:relative;overflow:hidden;white-space:nowrap;max-width:100%;text-overflow:ellipsis}.list-block .item-text{font-size:15px;color:#8e8e93;line-height:21px;position:relative;overflow:hidden;height:42px;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.list-block.media-list .item-title,.list-block li.media-item .item-title{font-weight:500}.list-block.media-list .item-inner,.list-block li.media-item .item-inner{display:block;padding-top:10px;padding-bottom:9px;-ms-flex-item-align:stretch;-webkit-align-self:stretch;align-self:stretch}.list-block.media-list .item-link .item-inner,.list-block li.media-item .item-link .item-inner{background:0 0;padding-right:15px}.list-block.media-list .item-link .item-title-row,.list-block li.media-item .item-link .item-title-row{padding-right:20px;background:no-repeat right center;background-image:url("data:image/svg+xml;charset=utf-8,");background-size:10px 20px}.list-block.media-list .item-media,.list-block li.media-item .item-media{padding-top:9px;padding-bottom:10px}.list-block.media-list .item-media img,.list-block li.media-item .item-media img{display:block}.list-block.media-list .item-title-row,.list-block li.media-item .item-title-row{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.list-block .list-group:nth-child(n+2) ul{border-top:none}.list-block .item-divider,.list-block .list-group-title{background:#f7f7f7;border-top:1px solid #c8c7cc;margin-top:-1px;padding:4px 15px;white-space:nowrap;position:relative;max-width:100%;text-overflow:ellipsis;overflow:hidden;color:#8e8e93}.list-block .list-group-title{position:relative;position:-webkit-sticky;position:-moz-sticky;position:sticky;top:0;z-index:10;margin-top:0;border-top:none}.list-block .sortable-handler{position:absolute;right:0;top:0;height:-webkit-calc(100% - 1px);height:-moz-calc(100% - 1px);height:-ms-calc(100% - 1px);height:calc(100% - 1px);z-index:10;background-repeat:no-repeat;background-size:18px 12px;background-position:center;width:35px;background-image:url("data:image/svg+xml;charset=utf-8,");opacity:0;visibility:hidden;cursor:pointer;-webkit-transition-duration:300ms;transition-duration:300ms}.list-block.sortable .item-inner{-webkit-transition-duration:300ms;transition-duration:300ms}.list-block.sortable-opened .sortable-handler{visibility:visible;opacity:1}.list-block.sortable-opened .item-inner,.list-block.sortable-opened .item-link .item-inner{padding-right:35px}.list-block.sortable-opened .item-link .item-inner,.list-block.sortable-opened .item-link .item-title-row{background-image:none}.list-block.sortable-sorting li{-webkit-transition-duration:300ms;transition-duration:300ms}.list-block li.sorting{z-index:50;background:rgba(255,255,255,.8);box-shadow:0 2px 8px rgba(0,0,0,.6);-webkit-transition-duration:0ms;transition-duration:0ms}.list-block li.sorting .item-inner{border-bottom:none}.contacts-content{background:#fff}.contacts-block{margin:0}.contacts-block .list-group-title{padding:0 15px;background:#f7f7f7;color:#000;font-weight:500;line-height:22px;height:22px}.contacts-block .list-group:first-child ul{border-top:none}.contacts-block .list-group:last-child ul{border-bottom:none}.list-block input[type=text],.list-block input[type=password],.list-block input[type=email],.list-block input[type=tel],.list-block input[type=url],.list-block input[type=date],.list-block input[type=datetime-local],.list-block input[type=number],.list-block select,.list-block textarea{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border:none;background:0 0;border-radius:0;-webkit-box-shadow:none;box-shadow:none;display:block;padding:0 0 0 5px;margin:0;width:100%;height:43px;color:#000;font-size:17px;font-family:inherit}.list-block input[type=date],.list-block input[type=datetime-local]{line-height:44px}.list-block select{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none}.list-block .lable{vertical-align:top}.list-block textarea{height:100px;resize:none;line-height:1.4;padding-top:8px;padding-bottom:7px}.label-switch{display:inline-block;vertical-align:middle;width:52px;border-radius:16px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;height:32px;position:relative;cursor:pointer;-ms-flex-item-align:center;-webkit-align-self:center;align-self:center}.label-switch input[type=checkbox]{display:none}.label-switch input[type=checkbox]+.checkbox{width:52px;border-radius:16px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;height:32px;background:#e5e5e5;z-index:0;margin:0;padding:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;border:none;cursor:pointer;position:relative;-webkit-transition-duration:300ms;transition-duration:300ms}.label-switch input[type=checkbox]+.checkbox:before{content:' ';position:absolute;left:2px;top:2px;width:48px;border-radius:16px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;height:28px;background:#fff;z-index:1;-webkit-transition-duration:300ms;transition-duration:300ms;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.label-switch input[type=checkbox]+.checkbox:after{content:' ';height:28px;width:28px;border-radius:28px;background:#fff;position:absolute;z-index:2;top:2px;left:2px;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.4);box-shadow:0 2px 5px rgba(0,0,0,.4);-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition-duration:300ms;transition-duration:300ms}.label-switch input[type=checkbox]:checked+.checkbox{background:#4cd964}.label-switch input[type=checkbox]:checked+.checkbox:before{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.label-switch input[type=checkbox]:checked+.checkbox:after{left:22px}.button{border:1px solid #007aff;color:#007aff;text-decoration:none;text-align:center;display:block;border-radius:5px;line-height:27px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;padding:0 10px;margin:0;height:29px;white-space:nowrap;position:relative;overflow:hidden;text-overflow:ellipsis;font-size:14px;font-family:inherit;cursor:pointer}input[type=submit].button,input[type=button].button{width:100%}.button:active{background:rgba(0,122,255,.15)}.button.button-round{border-radius:27px}.button.active{background:#007aff;color:#fff}.button.button-big{font-size:17px;height:44px;line-height:42px}.button.button-submit,.button.button-cancel{color:#fff}.button.button-submit:active,.button.button-cancel:active{opacity:.6}.button.button-submit{border-color:#4cd964;background:#4cd964}.button.button-cancel{border-color:#ff3b30;background:#ff3b30}.buttons-row{-ms-flex-item-align:center;-webkit-align-self:center;align-self:center;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.buttons-row .button{border-radius:0;border-left-width:0;width:100%;-webkit-box-flex:1;-ms-flex:1}.buttons-row .button:first-child{border-radius:5px 0 0 5px;border-left-width:1px;border-left-style:solid}.buttons-row .button:last-child{border-radius:0 5px 5px 0}.buttons-row .button.button-round:first-child{border-radius:27px 0 0 27px}.buttons-row .button.button-round:last-child{border-radius:0 27px 27px 0}.range-slider{width:100%;position:relative;overflow:hidden;padding-left:3px;padding-right:3px;margin-left:-1px;-ms-flex-item-align:center;-webkit-align-self:center;align-self:center}.range-slider input[type=range]{position:relative;height:28px;width:100%;margin:4px 0 5px;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0,#b7b8b7),color-stop(100%,#b7b8b7));background:linear-gradient(to right,#b7b8b7 0,#b7b8b7 100%);background-position:center;background-size:100% 2px;background-repeat:no-repeat;outline:0}.range-slider input[type=range]:after{height:2px;background:#fff;content:' ';width:5px;top:50%;margin-top:-1px;left:-5px;z-index:1;position:absolute}.range-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;border:none;height:28px;width:28px;position:relative;background:0 0}.range-slider input[type=range]::-webkit-slider-thumb:after{height:28px;width:28px;border-radius:28px;background:#fff;z-index:10;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.4);box-shadow:0 2px 4px rgba(0,0,0,.4);position:absolute;left:0;top:0;content:' '}.range-slider input[type=range]::-webkit-slider-thumb:before{position:absolute;top:50%;right:100%;width:2000px;height:2px;margin-top:-1px;z-index:1;background:#007aff;content:' '}label.label-checkbox{cursor:pointer}label.label-checkbox i.icon-form-checkbox{width:29px;height:29px;position:relative}label.label-checkbox i.icon-form-checkbox:after{content:' ';position:absolute;left:50%;margin-left:-11px;top:50%;margin-top:-11px;width:22px;height:22px;border-radius:22px;border:1px solid #c7c7cc;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}label.label-checkbox input[type=checkbox],label.label-checkbox input[type=radio]{display:none}label.label-checkbox input[type=checkbox]:checked+.item-media i.icon-form-checkbox:after,label.label-checkbox input[type=radio]:checked+.item-media i.icon-form-checkbox:after{border:none;background:#007aff url(../img/i-form-checkbox-white.png) no-repeat center;-webkit-background-size:auto 9px;background-size:auto 9px}label.label-radio{cursor:pointer}label.label-radio input[type=checkbox],label.label-radio input[type=radio]{display:none}label.label-radio input[type=checkbox]~.item-inner,label.label-radio input[type=radio]~.item-inner{padding-right:35px}label.label-radio input[type=checkbox]:checked~.item-inner,label.label-radio input[type=radio]:checked~.item-inner{background:url(../img/i-form-radio-blue.png) no-repeat center;background-position:-webkit-calc(100% - 15px) center;background-position:-moz-calc(100% - 15px) center;background-position:-ms-calc(100% - 15px) center;background-position:calc(100% - 15px) center;-webkit-background-size:auto 10px;background-size:auto 10px}label.label-checkbox,label.label-radio{-webkit-transition-duration:300ms;transition-duration:300ms}label.label-checkbox:active,label.label-radio:active{-webkit-transition-duration:0ms;transition-duration:0ms;background-color:#d9d9d9}label.label-checkbox:active .item-inner,label.label-radio:active .item-inner{border-bottom:1px solid transparent}.smart-select select{display:none}.modal-overlay,.preloader-indicator-overlay,.popup-overlay{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:10000;visibility:hidden;opacity:0;-webkit-transition-duration:400ms;transition-duration:400ms}.modal-overlay.modal-overlay-visible,.preloader-indicator-overlay.modal-overlay-visible,.popup-overlay.modal-overlay-visible{visibility:visible;opacity:1}.popup-overlay{z-index:9990}.modal{width:270px;position:absolute;z-index:11000;left:50%;margin-left:-135px;margin-top:0;top:50%;text-align:center;border-radius:7px;opacity:0;-webkit-transform:translate3d(0,0,0) scale(1.185);-ms-transform:translate3d(0,0,0) scale(1.185);transform:translate3d(0,0,0) scale(1.185);-webkit-transition-property:-webkit-transform,opacity;-moz-transition-property:-moz-transform,opacity;-ms-transition-property:-ms-transform,opacity;-o-transition-property:-o-transform,opacity;transition-property:transform,opacity}.modal.modal-in{opacity:1;-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(0,0,0) scale(1);-ms-transform:translate3d(0,0,0) scale(1);transform:translate3d(0,0,0) scale(1)}.modal.modal-out{opacity:0;z-index:10999;-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(0,0,0) scale(0.815);-ms-transform:translate3d(0,0,0) scale(0.815);transform:translate3d(0,0,0) scale(0.815)}.modal-inner{padding:15px;border-bottom:1px solid #b5b5b5;border-radius:7px 7px 0 0;background:#e8e8e8}.modal-title{font-weight:500;font-size:18px;text-align:center}.modal-title+.modal-text{margin-top:5px}.modal-buttons{height:44px;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.modal-button{width:100%;padding:0 5px;height:44px;font-size:17px;line-height:44px;text-align:center;color:#007aff;background:#e8e8e8;display:block;position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;cursor:pointer;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-right:1px solid #b5b5b5;-webkit-box-flex:1;-ms-flex:1}.modal-button:first-child{border-radius:0 0 0 7px}.modal-button:last-child{border-right:none;border-radius:0 0 7px}.modal-button:first-child:last-child{border-radius:0 0 7px 7px}.modal-button.modal-button-bold{font-weight:500}.modal-button:active{background:#d4d4d4}.modal-no-buttons .modal-inner{border-radius:7px;border-bottom:none}.modal-no-buttons .modal-buttons{display:none}.actions-modal{position:absolute;left:0;bottom:0;z-index:11000;width:100%;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.actions-modal.modal-in{-webkit-transition-duration:300ms;transition-duration:300ms;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.actions-modal.modal-out{z-index:10999;-webkit-transition-duration:300ms;transition-duration:300ms;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.actions-modal-group{margin:8px}.actions-modal-button,.actions-modal-label{width:100%;text-align:center;font-weight:400;margin:0;background:rgba(243,243,243,.95);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;border-bottom:1px solid #d2d2d6}.actions-modal-button a,.actions-modal-label a{text-decoration:none;color:inherit}.actions-modal-button b,.actions-modal-label b{font-weight:500}.actions-modal-button.actions-modal-button-bold,.actions-modal-label.actions-modal-button-bold{font-weight:500}.actions-modal-button.actions-modal-button-red,.actions-modal-label.actions-modal-button-red{color:#fc3e39}.actions-modal-button:first-child,.actions-modal-label:first-child{border-radius:4px 4px 0 0}.actions-modal-button:last-child,.actions-modal-label:last-child{border:none;border-radius:0 0 4px 4px}.actions-modal-button:first-child:last-child,.actions-modal-label:first-child:last-child{border-radius:4px}.actions-modal-button{cursor:pointer;line-height:43px;font-size:20px;color:#007aff}.actions-modal-button:active{background:#dcdcdc}.actions-modal-label{font-size:13px;line-height:1.3;min-height:44px;padding:8px 10px;color:#8a8a8a;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}input.modal-prompt-input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;height:30px;background:#fff;margin:0;margin-top:15px;padding:0 5px;border:1px solid #a0a0a0;border-radius:5px;width:100%;font-size:14px;font-family:inherit;display:block;-webkit-box-shadow:0 0 0 rgba(0,0,0,0);box-shadow:0 0 0 rgba(0,0,0,0);-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none}.popover{width:320px;background:rgba(255,255,255,.95);z-index:11000;margin:0;top:0;opacity:0;left:0;border-radius:7px;position:absolute;display:none;-webkit-transform:none;-ms-transform:none;transform:none;-webkit-transition-property:opacity;-moz-transition-property:opacity;-ms-transition-property:opacity;-o-transition-property:opacity;transition-property:opacity}.popover.modal-in{-webkit-transition-duration:300ms;transition-duration:300ms;opacity:1}.popover-angle{width:26px;height:26px;position:absolute;left:-26px;top:0;z-index:100;overflow:hidden}.popover-angle:after{content:' ';background:rgba(255,255,255,.95);width:26px;height:26px;position:absolute;left:0;top:0;border-radius:3px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.popover-angle.on-left{left:-26px}.popover-angle.on-left:after{left:19px;top:0}.popover-angle.on-right{left:100%}.popover-angle.on-right:after{left:-19px;top:0}.popover-angle.on-top{left:0;top:-26px}.popover-angle.on-top:after{left:0;top:19px}.popover-angle.on-bottom{left:0;top:100%}.popover-angle.on-bottom:after{left:0;top:-19px}.popover-inner{overflow:auto;-webkit-overflow-scrolling:touch}.popover-inner .list-block{margin:0}.popover-inner .list-block ul{border:none;background:0 0}.popover-inner .list-block li:first-child a{border-radius:7px 7px 0 0}.popover-inner .list-block li:last-child a{border-radius:0 0 7px 7px}.popover-inner .list-block li:first-child:last-child a{border-radius:7px}.popup{position:absolute;left:0;top:0;width:100%;height:100%;z-index:9999;background:#fff;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:none;overflow:auto;-webkit-overflow-scrolling:touch;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-ms-transition-property:-ms-transform;-o-transition-property:-o-transform;transition-property:transform;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.popup.modal-in,.popup.modal-out{-webkit-transition-duration:400ms;transition-duration:400ms}.popup.modal-in{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.popup.modal-out{-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}@media all and (min-width:630px) and (min-height:630px){.popup{width:630px;height:630px;left:50%;top:50%;margin-left:-315px;margin-top:-315px;-webkit-transform:translate3d(0,1024px,0);-ms-transform:translate3d(0,1024px,0);transform:translate3d(0,1024px,0)}.popup.modal-in{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.popup.modal-out{-webkit-transform:translate3d(0,1024px,0);-ms-transform:translate3d(0,1024px,0);transform:translate3d(0,1024px,0)}}@media all and (max-width:629px) and (max-height:629px){html.with-statusbar-overlay .popup{height:-webkit-calc(100% - 20px);height:-moz-calc(100% - 20px);height:-ms-calc(100% - 20px);height:calc(100% - 20px);top:20px}}.modal .preloader{width:34px;height:34px}.preloader-indicator-overlay{visibility:visible;opacity:0;background:0 0}.preloader-indicator-modal{position:absolute;left:50%;top:50%;padding:8px;margin-left:-25px;margin-top:-25px;background:rgba(0,0,0,.8);z-index:11000;border-radius:5px}.preloader-indicator-modal .preloader{display:block;width:34px;height:34px}.panel-overlay{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,0);opacity:0;z-index:5999;display:none}.panel{z-index:1000;display:none;background:#111;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;overflow:auto;-webkit-overflow-scrolling:touch;position:absolute;width:260px;top:0;height:100%;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition-duration:400ms;transition-duration:400ms}.panel.panel-left.panel-cover{z-index:6000;left:-260px}.panel.panel-left.panel-reveal{left:0}.panel.panel-right.panel-cover{z-index:6000;right:-260px}.panel.panel-right.panel-reveal{right:0}body.with-panel-left-cover .views,body.with-panel-right-cover .views{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}body.with-panel-left-cover .panel-overlay,body.with-panel-right-cover .panel-overlay{display:block}body.with-panel-left-reveal .views,body.with-panel-right-reveal .views{-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;transition-property:transform}body.with-panel-left-reveal .panel-overlay,body.with-panel-right-reveal .panel-overlay{display:block}body.with-panel-left-reveal .views{-webkit-transform:translate3d(260px,0,0);-ms-transform:translate3d(260px,0,0);transform:translate3d(260px,0,0)}body.with-panel-left-reveal .panel-overlay{margin-left:260px}body.with-panel-left-cover .panel-left{-webkit-transform:translate3d(260px,0,0);-ms-transform:translate3d(260px,0,0);transform:translate3d(260px,0,0)}body.with-panel-right-reveal .views{-webkit-transform:translate3d(-260px,0,0);-ms-transform:translate3d(-260px,0,0);transform:translate3d(-260px,0,0)}body.with-panel-right-reveal .panel-overlay{margin-left:-260px}body.with-panel-right-cover .panel-right{-webkit-transform:translate3d(-260px,0,0);-ms-transform:translate3d(-260px,0,0);transform:translate3d(-260px,0,0)}body.panel-closing .views{-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;transition-property:transform}.tabs .tab{display:none}.tabs .tab.active{display:block}.tabs-animated-wrap{position:relative;width:100%;overflow:hidden;height:100%}.tabs-animated-wrap>.tabs{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;height:100%;-webkit-transition-duration:300ms;transition-duration:300ms}.tabs-animated-wrap>.tabs>.tab{width:100%;display:block;-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0}.messages-content{background:#fff}.messages{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-moz-box-orient:vertical;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.messages-date{text-align:center;font-weight:500;font-size:11px;line-height:1;margin:10px 15px;color:#8e8e93}.messages-date span{font-weight:400}.message{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:17px;line-height:1.2;margin:1px 10px 0;padding:6px 16px 9px;min-width:48px;min-height:35px;max-width:60%;border-radius:16px}.message:first-child{margin-top:10px}.message.message-pic{padding:0;background:0 0}.message.message-pic img{display:block;height:auto;max-width:100%;border-radius:16px}.message-sent{padding-right:22px;-ms-flex-item-align:end;-webkit-align-self:flex-end;align-self:flex-end;background-color:#00d449;color:#fff;margin-left:auto;-webkit-mask-box-image:url("data:image/svg+xml;charset=utf-8,") 49.5% 55.75% 49.5% 43.25%}.message-sent.message-last{border-radius:16px 16px 0;margin-bottom:8px;-webkit-mask-box-image:url("data:image/svg+xml;charset=utf-8,") 49.5% 55.75% 49.5% 43.25%}.message-sent.message-last.message-pic img{border-radius:16px 16px 0}.message-received{padding-left:22px;-ms-flex-item-align:start;-webkit-align-self:flex-start;align-self:flex-start;background-color:#e5e5ea;color:#000;-webkit-mask-box-image:url("data:image/svg+xml;charset=utf-8,") 49.5% 43.25% 49.5% 55.75%}.message-received.message-last{margin-bottom:8px;border-radius:16px 16px 16px 0;-webkit-mask-box-image:url("data:image/svg+xml;charset=utf-8,") 49.5% 43.25% 49.5% 55.75%}.message-received.message-last.message-pic img{border-radius:16px 16px 16px 0}.message-appear{-webkit-animation:messageAppearFromBottom 400ms;animation:messageAppearFromBottom 400ms}.new-messages-first .message-appear{-webkit-animation:messageAppearFromTop 400ms;animation:messageAppearFromTop 400ms}html.ios-6 .message,html.ios-6 .message.message-pic img{-webkit-mask-box-image:none;border-radius:16px}@-webkit-keyframes messageAppearFromBottom{from{-webkit-transform:translate3d(0,100%,0)}to{-webkit-transform:translate3d(0,0,0)}}@keyframes messageAppearFromBottom{from{transform:translate3d(0,100%,0)}to{transform:translate3d(0,0,0)}}@-webkit-keyframes messageAppearFromTop{from{-webkit-transform:translate3d(0,-100%,0)}to{-webkit-transform:translate3d(0,0,0)}}@keyframes messageAppearFromTop{from{transform:translate3d(0,-100%,0)}to{transform:translate3d(0,0,0)}}html.with-statusbar-overlay body{padding-top:20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html.with-statusbar-overlay body .statusbar-overlay{display:block}html.with-statusbar-overlay body .panel{padding-top:20px}.statusbar-overlay{background:#f7f7f8;z-index:9999;position:absolute;left:0;top:0;height:20px;width:100%;display:none;-webkit-transition-duration:400ms;transition-duration:400ms}.preloader{display:inline-block;width:20px;height:20px;-webkit-transform-origin:50%;transform-origin:50%;-webkit-animation:preloader-spin 1s step-end infinite;animation:preloader-spin 1s step-end infinite}.preloader:after{display:block;content:"";width:100%;height:100%;background-image:url("data:image/svg+xml;charset=utf-8,");background-position:50%;background-size:100%;background-repeat:no-repeat}.preloader-white:after{background-image:url("data:image/svg+xml;charset=utf-8,")}@-webkit-keyframes preloader-spin{0%{-webkit-transform:rotate(0deg)}8.33333333%{-webkit-transform:rotate(30deg)}16.66666667%{-webkit-transform:rotate(60deg)}25%{-webkit-transform:rotate(90deg)}33.33333333%{-webkit-transform:rotate(120deg)}41.66666667%{-webkit-transform:rotate(150deg)}50%{-webkit-transform:rotate(180deg)}58.33333333%{-webkit-transform:rotate(210deg)}66.66666667%{-webkit-transform:rotate(240deg)}75%{-webkit-transform:rotate(270deg)}83.33333333%{-webkit-transform:rotate(300deg)}91.66666667%{-webkit-transform:rotate(330deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes preloader-spin{0%{transform:rotate(0deg)}8.33333333%{transform:rotate(30deg)}16.66666667%{transform:rotate(60deg)}25%{transform:rotate(90deg)}33.33333333%{transform:rotate(120deg)}41.66666667%{transform:rotate(150deg)}50%{transform:rotate(180deg)}58.33333333%{transform:rotate(210deg)}66.66666667%{transform:rotate(240deg)}75%{transform:rotate(270deg)}83.33333333%{transform:rotate(300deg)}91.66666667%{transform:rotate(330deg)}100%{transform:rotate(360deg)}}.pull-to-refresh-layer{position:absolute;position:relative;margin-top:-44px;left:0;top:0;width:100%;height:44px}.pull-to-refresh-layer .preloader{position:absolute;left:50%;top:50%;margin-left:-10px;margin-top:-10px;visibility:hidden}.pull-to-refresh-layer .pull-to-refresh-arrow{width:13px;height:20px;position:absolute;left:50%;top:50%;margin-left:-6px;margin-top:-10px;background:no-repeat center;background-image:url("data:image/svg+xml;charset=utf-8,");background-size:13px 20px;z-index:10;-webkit-transform:rotate(0deg) translate3d(0,0,0);-ms-transform:rotate(0deg) translate3d(0,0,0);transform:rotate(0deg) translate3d(0,0,0);-webkit-transition-duration:300ms;transition-duration:300ms}.pull-to-refresh-content.transitioning{-webkit-transition-duration:400ms;transition-duration:400ms}.pull-to-refresh-content.refreshing{-webkit-transform:translate3d(0,44px,0);-ms-transform:translate3d(0,44px,0);transform:translate3d(0,44px,0)}.pull-to-refresh-content.refreshing .pull-to-refresh-arrow{visibility:hidden;-webkit-transition-duration:0ms;transition-duration:0ms}.pull-to-refresh-content.refreshing .preloader{visibility:visible}.pull-to-refresh-content.pull-up .pull-to-refresh-arrow{-webkit-transform:rotate(180deg) translate3d(0,0,0);-ms-transform:rotate(180deg) translate3d(0,0,0);transform:rotate(180deg) translate3d(0,0,0)}.slider-container{position:relative;overflow:hidden;width:100%;height:100%}.slider-wrapper{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;width:100%;height:100%;position:relative;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;transition-property:transform}.slider-container-vertical>.slider-wrapper{-webkit-box-orient:vertical;-moz-box-orient:vertical;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.slider-slide{-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0;width:100%;height:100%}.slider-pagination{position:absolute;z-index:10;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);left:0;bottom:10px;width:100%;text-align:center;-webkit-transition-duration:300ms;transition-duration:300ms;opacity:1;-webkit-transition-property:opacity;-moz-transition-property:opacity;transition-property:opacity}.slider-pagination.slider-pagination-hidden{opacity:0;pointer-events:none}.slider-container-vertical>.slider-pagination{right:10px;left:auto;top:50%;bottom:auto;width:auto;height:auto;-webkit-transform:translate3d(0,-50%,0);-ms-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.slider-container-vertical>.slider-pagination .slider-pagination-bullet{display:block;margin:5px 0}.slider-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2;margin:0 5px}.slider-pagination-active{opacity:1;background:#007aff}.photo-browser{position:absolute;left:0;top:0;width:100%;height:100%;z-index:9000}body>.photo-browser{opacity:0;display:none;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}body>.photo-browser.photo-browser-in{display:block;-webkit-animation:photoBrowserIn 400ms forwards;animation:photoBrowserIn 400ms forwards}body>.photo-browser.photo-browser-out{display:block;-webkit-animation:photoBrowserOut 400ms forwards;animation:photoBrowserOut 400ms forwards}html.with-statusbar-overlay body>.photo-browser{height:-webkit-calc(100% - 20px);height:-moz-calc(100% - 20px);height:-ms-calc(100% - 20px);height:calc(100% - 20px);top:20px}.popup>.photo-browser .navbar,body>.photo-browser .navbar,.popup>.photo-browser .toolbar,body>.photo-browser .toolbar{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.photo-browser .navbar,.view[data-page=photo-browser-slides] .navbar,.photo-browser .toolbar,.view[data-page=photo-browser-slides] .toolbar{background:rgba(247,247,247,.95);-webkit-transition-duration:400ms;transition-duration:400ms}.view[data-page=photo-browser-slides] .page[data-page=photo-browser-slides] .navbar,.view[data-page=photo-browser-slides] .page[data-page=photo-browser-slides] .toolbar{-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.photo-browser-exposed .navbar,.photo-browser-exposed .toolbar{opacity:0;visibility:hidden;pointer-events:none}.photo-browser-exposed .photo-browser-slider-container{background:#000}.photo-browser-slider-container{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;background:#fff;-webkit-transition-duration:400ms;transition-duration:400ms}.photo-browser-slider-wrapper{position:absolute;left:0;top:0;width:100%;height:100%;padding:0;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.photo-browser-link-inactive{opacity:.3}.photo-browser-slide{width:100%;height:100%;position:relative;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0}.photo-browser-slide span{width:100%;text-align:center;display:none}.photo-browser-slide img{width:auto;height:auto;max-width:100%;max-height:100%;display:none}.photo-browser-slide.slider-slide-active span,.photo-browser-slide.slider-slide-next span,.photo-browser-slide.slider-slide-prev span{display:block}.photo-browser-slide.slider-slide-active img,.photo-browser-slide.slider-slide-next img,.photo-browser-slide.slider-slide-prev img{display:inline}.photo-browser-dark .navbar,.photo-browser-dark .toolbar{background:rgba(30,30,30,.8);border:none;color:#fff}.photo-browser-dark .navbar a,.photo-browser-dark .toolbar a{color:#fff}.photo-browser-dark .photo-browser-slider-container{background:#000}@-webkit-keyframes photoBrowserIn{0%{-webkit-transform:translate3d(0,0,0) scale(0.5);opacity:0}100%{-webkit-transform:translate3d(0,0,0) scale(1);opacity:1}}@keyframes photoBrowserIn{0%{transform:translate3d(0,0,0) scale(0.5);opacity:0}100%{transform:translate3d(0,0,0) scale(1);opacity:1}}@-webkit-keyframes photoBrowserOut{0%{-webkit-transform:translate3d(0,0,0) scale(1);opacity:1}100%{-webkit-transform:translate3d(0,0,0) scale(0.5);opacity:0}}@keyframes photoBrowserOut{0%{transform:translate3d(0,0,0) scale(1);opacity:1}100%{transform:translate3d(0,0,0) scale(0.5);opacity:0}}.notifications{position:absolute;left:0;top:0;width:100%;z-index:20000;color:#fff;font-size:14px;margin:0;border:none;display:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;max-height:100%;overflow:auto;-webkit-overflow-scrolling:touch;-webkit-transition-duration:450ms;transition-duration:450ms;background:rgba(0,0,0,.85);-webkit-perspective:1200px;perspective:1200px}.notifications ul{border:none;background:0 0;margin:0}.with-statusbar-overlay .notifications{padding-top:20px;-webkit-transform:translate3d(0,-20px,0);-ms-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}.notifications .item-content{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}.notifications .item-text,.notifications .item-subtitle,.notifications .item-title{font-size:14px}.notifications .item-title{font-weight:500}.notifications .item-text{height:auto;color:#d2d2d2;line-height:inherit}.notifications .item-text,.notifications .item-subtitle{font-weight:300}.notifications .item-inner{border-bottom-color:rgba(255,255,255,.2)}.notifications .item-media i.icon{width:20px;height:20px;-webkit-background-size:cover;background-size:cover;background-position:center;background-repeat:no-repeat}.notifications li.notification-item .item-media{padding-top:13px}.notifications .close-notification{width:19px;height:19px;background:url("data:image/svg+xml;charset=utf-8,");-webkit-background-size:19px 19px;background-size:19px 19px;position:relative}.notifications .close-notification span{position:absolute;width:44px;height:44px;left:50%;top:50%;margin-left:-22px;margin-top:-22px}.notifications .notification-item{max-width:568px;margin:0 auto;-webkit-transition-duration:450ms;transition-duration:450ms;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.notifications .notification-hidden{opacity:0;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)} -------------------------------------------------------------------------------- /lib/css/framework7.rtl.css: -------------------------------------------------------------------------------- 1 | /*============= 2 | Framework 7 RTL Additions 3 | =============*/ 4 | html { 5 | direction: rtl; 6 | } 7 | /* === Lists === */ 8 | .list-block ul ul { 9 | padding-left: 0; 10 | padding-right: 45px; 11 | } 12 | .list-block .item-content { 13 | padding-left: 0; 14 | padding-right: 15px; 15 | } 16 | .list-block .item-inner { 17 | padding-right: 0; 18 | padding-left: 15px; 19 | } 20 | .list-block .item-after { 21 | margin-left: 0; 22 | margin-right: 5px; 23 | } 24 | .list-block .item-media i + i, 25 | .list-block .item-media i + img { 26 | margin-left: 0; 27 | margin-right: 5px; 28 | } 29 | .list-block .item-media + .item-inner { 30 | margin-left: 0; 31 | margin-right: 15px; 32 | } 33 | .list-block .item-link .item-inner { 34 | padding-right: 0; 35 | padding-left: 35px; 36 | background-position: 15px center; 37 | background-image: url("data:image/svg+xml;charset=utf-8,"); 38 | } 39 | .list-block.media-list .item-link .item-inner, 40 | .list-block li.media-item .item-link .item-inner { 41 | padding-right: 0; 42 | padding-left: 15px; 43 | } 44 | .list-block.media-list .item-link .item-title-row, 45 | .list-block li.media-item .item-link .item-title-row { 46 | padding-right: 0; 47 | padding-left: 20px; 48 | background-position: center left; 49 | background-image: url("data:image/svg+xml;charset=utf-8,"); 50 | } 51 | .list-block .sortable-handler { 52 | right: auto; 53 | left: 0; 54 | } 55 | .list-block.sortable-opened .item-inner, 56 | .list-block.sortable-opened .item-link .item-inner { 57 | padding-right: 0; 58 | padding-left: 35px; 59 | } 60 | .list-block.sortable-opened .item-link .item-inner, 61 | .list-block.sortable-opened .item-link .item-title-row { 62 | background-image: none; 63 | } 64 | .list-block .swipeout-actions-inner { 65 | -webkit-box-direction: reverse; 66 | -moz-box-direction: reverse; 67 | -ms-flex-direction: row-reverse; 68 | -webkit-flex-direction: row-reverse; 69 | flex-direction: row-reverse; 70 | } 71 | /* === Toolbars === */ 72 | .navbar a.link i + span, 73 | .toolbar a.link i + span, 74 | .navbar a.link i + i, 75 | .toolbar a.link i + i, 76 | .navbar a.link span + i, 77 | .toolbar a.link span + i, 78 | .navbar a.link span + span, 79 | .toolbar a.link span + span { 80 | margin-left: 0; 81 | margin-right: 7px; 82 | } 83 | .navbar .left a + a, 84 | .navbar .right a + a { 85 | margin-left: 0; 86 | margin-right: 15px; 87 | } 88 | .navbar .left { 89 | margin-right: 0px; 90 | margin-left: 10px; 91 | } 92 | .navbar .right { 93 | margin-left: 0px; 94 | margin-right: 10px; 95 | } 96 | .navbar .right:first-child { 97 | right: auto; 98 | left: 8px; 99 | } 100 | /* === Forms === */ 101 | .list-block input[type="text"], 102 | .list-block input[type="password"], 103 | .list-block input[type="email"], 104 | .list-block input[type="tel"], 105 | .list-block input[type="url"], 106 | .list-block input[type="date"], 107 | .list-block input[type="datetime-local"], 108 | .list-block input[type="number"], 109 | .list-block select, 110 | .list-block textarea { 111 | padding-left: 0; 112 | padding-right: 5px; 113 | } 114 | .buttons-row .button:first-child { 115 | border-radius: 0 5px 5px 0; 116 | border-left: none; 117 | } 118 | .buttons-row .button:last-child { 119 | border-radius: 5px 0 0 5px; 120 | border-left-width: 1px; 121 | border-left-style: solid; 122 | } 123 | .buttons-row .button.button-round:first-child { 124 | border-radius: 0 27px 27px 0; 125 | } 126 | .buttons-row .button.button-round:last-child { 127 | border-radius: 27px 0 0 27px; 128 | } 129 | .label-switch input[type="checkbox"] + .checkbox:before { 130 | left: auto; 131 | right: 2px; 132 | } 133 | .label-switch input[type="checkbox"] + .checkbox:after { 134 | right: 2px; 135 | left: auto; 136 | -webkit-transform: translate3d(0, 0, 0); 137 | -ms-transform: translate3d(0, 0, 0); 138 | transform: translate3d(0, 0, 0); 139 | } 140 | .label-switch input[type="checkbox"]:checked + .checkbox:after { 141 | left: auto; 142 | right: 22px; 143 | } 144 | .range-slider { 145 | padding-left: 0; 146 | padding-right: 0; 147 | margin-left: 0; 148 | padding-right: 3px; 149 | padding-left: 3px; 150 | margin-right: -1px; 151 | } 152 | .range-slider input[type="range"]:after { 153 | left: auto; 154 | right: -5px; 155 | } 156 | .range-slider input[type="range"]::-webkit-slider-thumb:after { 157 | left: auto; 158 | right: 0; 159 | } 160 | .range-slider input[type="range"]::-webkit-slider-thumb:before { 161 | right: auto; 162 | left: 100%; 163 | } 164 | label.label-radio input[type="checkbox"] ~ .item-inner, 165 | label.label-radio input[type="radio"] ~ .item-inner { 166 | padding-left: 35px; 167 | padding-right: 0; 168 | } 169 | label.label-radio input[type="checkbox"]:checked ~ .item-inner, 170 | label.label-radio input[type="radio"]:checked ~ .item-inner { 171 | background-position: 15px center; 172 | } 173 | /* === Grid === */ 174 | .row:before, 175 | .row:after { 176 | content: " "; 177 | display: table; 178 | } 179 | .row:after { 180 | clear: both; 181 | } 182 | .row > [class*="col-"] { 183 | float: right; 184 | margin-left: 0; 185 | margin-right: 15px; 186 | -webkit-box-sizing: border-box; 187 | -moz-box-sizing: border-box; 188 | box-sizing: border-box; 189 | } 190 | .row > [class*="col-"]:first-child { 191 | margin-right: 0; 192 | } 193 | .no-gutter.row > [class*="col-"] { 194 | margin-right: 0; 195 | } 196 | /* === Search Bar === */ 197 | .searchbar input[type="search"] { 198 | background-position: right center; 199 | background-position: -webkit-calc(100% - 8px) center; 200 | background-position: -moz-calc(100% - 8px) center; 201 | background-position: calc(100% - 8px) center; 202 | } 203 | .searchbar .searchbar-clear { 204 | right: auto; 205 | left: 0; 206 | } 207 | .searchbar.searchbar-active .searchbar-cancel { 208 | margin-left: 0; 209 | margin-right: 8px; 210 | } 211 | /* === Modals === */ 212 | .modal-button:first-child { 213 | border-radius: 0 0 7px 0; 214 | border-right: none; 215 | } 216 | .modal-button:last-child { 217 | border-right: 1px solid #b5b5b5; 218 | border-radius: 0 0 0 7px; 219 | } 220 | .modal-button:first-child:last-child { 221 | border-radius: 0 0 7px 7px; 222 | } 223 | /* === Content Block === */ 224 | .content-block-inner { 225 | margin-left: 0; 226 | margin-right: -15px; 227 | } 228 | /* === Pages === */ 229 | .page-on-left { 230 | -webkit-transform: translate3d(20%, 0, 0); 231 | -ms-transform: translate3d(20%, 0, 0); 232 | transform: translate3d(20%, 0, 0); 233 | } 234 | .page-on-right { 235 | -webkit-transform: translate3d(-100%, 0, 0); 236 | -ms-transform: translate3d(-100%, 0, 0); 237 | transform: translate3d(-100%, 0, 0); 238 | } 239 | @-webkit-keyframes pageFromRightToCenter { 240 | from { 241 | -webkit-box-shadow: none; 242 | box-shadow: none; 243 | -webkit-transform: translate3d(-100%, 0, 0); 244 | } 245 | to { 246 | -webkit-box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 247 | box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 248 | -webkit-transform: translate3d(0, 0, 0); 249 | } 250 | } 251 | @-webkit-keyframes pageFromCenterToRight { 252 | from { 253 | -webkit-box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 254 | box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 255 | -webkit-transform: translate3d(0, 0, 0); 256 | } 257 | to { 258 | -webkit-box-shadow: none; 259 | box-shadow: none; 260 | -webkit-transform: translate3d(-100%, 0, 0); 261 | } 262 | } 263 | @keyframes pageFromRightToCenter { 264 | from { 265 | -webkit-box-shadow: none; 266 | box-shadow: none; 267 | transform: translate3d(-100%, 0, 0); 268 | } 269 | to { 270 | -webkit-box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 271 | box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 272 | transform: translate3d(0, 0, 0); 273 | } 274 | } 275 | @keyframes pageFromCenterToRight { 276 | from { 277 | -webkit-box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 278 | box-shadow: 0 0 12px rgba(0, 0, 0, 0.5); 279 | transform: translate3d(0, 0, 0); 280 | } 281 | to { 282 | -webkit-box-shadow: none; 283 | box-shadow: none; 284 | transform: translate3d(100%, 0, 0); 285 | } 286 | } 287 | @-webkit-keyframes pageFromCenterToLeft { 288 | from { 289 | opacity: 1; 290 | -webkit-transform: translate3d(0, 0, 0); 291 | } 292 | to { 293 | opacity: 0.9; 294 | -webkit-transform: translate3d(20%, 0, 0); 295 | } 296 | } 297 | @-webkit-keyframes pageFromLeftToCenter { 298 | from { 299 | opacity: 0.9; 300 | -webkit-transform: translate3d(20%, 0, 0); 301 | } 302 | to { 303 | opacity: 1; 304 | -webkit-transform: translate3d(0, 0, 0); 305 | } 306 | } 307 | @keyframes pageFromCenterToLeft { 308 | from { 309 | opacity: 1; 310 | transform: translate3d(0, 0, 0); 311 | } 312 | to { 313 | opacity: 0.9; 314 | transform: translate3d(20%, 0, 0); 315 | } 316 | } 317 | @keyframes pageFromLeftToCenter { 318 | from { 319 | opacity: 0.9; 320 | transform: translate3d(20%, 0, 0); 321 | } 322 | to { 323 | opacity: 1; 324 | transform: translate3d(0, 0, 0); 325 | } 326 | } 327 | @-webkit-keyframes pageFromRightToCenterDegrade { 328 | from { 329 | -webkit-transform: translate3d(-100%, 0, 0); 330 | } 331 | to { 332 | -webkit-transform: translate3d(0, 0, 0); 333 | } 334 | } 335 | @-webkit-keyframes pageFromCenterToRightDegrade { 336 | from { 337 | -webkit-transform: translate3d(0, 0, 0); 338 | } 339 | to { 340 | -webkit-transform: translate3d(-100%, 0, 0); 341 | } 342 | } 343 | @keyframes pageFromRightToCenterDegrade { 344 | from { 345 | transform: translate3d(-100%, 0, 0); 346 | } 347 | to { 348 | transform: translate3d(0, 0, 0); 349 | } 350 | } 351 | @keyframes pageFromCenterToRightDegrade { 352 | from { 353 | transform: translate3d(0, 0, 0); 354 | } 355 | to { 356 | transform: translate3d(-100%, 0, 0); 357 | } 358 | } 359 | /* === Messages === */ 360 | .message-received { 361 | -ms-flex-item-align: end; 362 | -webkit-align-self: flex-end; 363 | align-self: flex-end; 364 | } 365 | /* === Icons === */ 366 | i.icon.icon-back-blue { 367 | background-image: url("data:image/svg+xml;charset=utf-8,"); 368 | } 369 | i.icon.icon-back-white { 370 | background-image: url("data:image/svg+xml;charset=utf-8,"); 371 | } 372 | i.icon.icon-back-black { 373 | background-image: url("data:image/svg+xml;charset=utf-8,"); 374 | } 375 | i.icon.icon-next-blue { 376 | background: url("data:image/svg+xml;charset=utf-8,"); 377 | } 378 | i.icon.icon-prev-blue { 379 | background: url("data:image/svg+xml;charset=utf-8,"); 380 | } 381 | i.icon.icon-next-white { 382 | background: url("data:image/svg+xml;charset=utf-8,"); 383 | } 384 | i.icon.icon-prev-white { 385 | background: url("data:image/svg+xml;charset=utf-8,"); 386 | } 387 | -------------------------------------------------------------------------------- /lib/css/framework7.rtl.min.css: -------------------------------------------------------------------------------- 1 | html{direction:rtl}.list-block ul ul{padding-left:0;padding-right:45px}.list-block .item-content{padding-left:0;padding-right:15px}.list-block .item-inner{padding-right:0;padding-left:15px}.list-block .item-after{margin-left:0;margin-right:5px}.list-block .item-media i+i,.list-block .item-media i+img{margin-left:0;margin-right:5px}.list-block .item-media+.item-inner{margin-left:0;margin-right:15px}.list-block .item-link .item-inner{padding-right:0;padding-left:35px;background-position:15px center;background-image:url("data:image/svg+xml;charset=utf-8,")}.list-block.media-list .item-link .item-inner,.list-block li.media-item .item-link .item-inner{padding-right:0;padding-left:15px}.list-block.media-list .item-link .item-title-row,.list-block li.media-item .item-link .item-title-row{padding-right:0;padding-left:20px;background-position:center left;background-image:url("data:image/svg+xml;charset=utf-8,")}.list-block .sortable-handler{right:auto;left:0}.list-block.sortable-opened .item-inner,.list-block.sortable-opened .item-link .item-inner{padding-right:0;padding-left:35px}.list-block.sortable-opened .item-link .item-inner,.list-block.sortable-opened .item-link .item-title-row{background-image:none}.list-block .swipeout-actions-inner{-webkit-box-direction:reverse;-moz-box-direction:reverse;-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.navbar a.link i+span,.toolbar a.link i+span,.navbar a.link i+i,.toolbar a.link i+i,.navbar a.link span+i,.toolbar a.link span+i,.navbar a.link span+span,.toolbar a.link span+span{margin-left:0;margin-right:7px}.navbar .left a+a,.navbar .right a+a{margin-left:0;margin-right:15px}.navbar .left{margin-right:0;margin-left:10px}.navbar .right{margin-left:0;margin-right:10px}.navbar .right:first-child{right:auto;left:8px}.list-block input[type=text],.list-block input[type=password],.list-block input[type=email],.list-block input[type=tel],.list-block input[type=url],.list-block input[type=date],.list-block input[type=datetime-local],.list-block input[type=number],.list-block select,.list-block textarea{padding-left:0;padding-right:5px}.buttons-row .button:first-child{border-radius:0 5px 5px 0;border-left:none}.buttons-row .button:last-child{border-radius:5px 0 0 5px;border-left-width:1px;border-left-style:solid}.buttons-row .button.button-round:first-child{border-radius:0 27px 27px 0}.buttons-row .button.button-round:last-child{border-radius:27px 0 0 27px}.label-switch input[type=checkbox]+.checkbox:before{left:auto;right:2px}.label-switch input[type=checkbox]+.checkbox:after{right:2px;left:auto;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.label-switch input[type=checkbox]:checked+.checkbox:after{left:auto;right:22px}.range-slider{padding-left:0;padding-right:0;margin-left:0;padding-right:3px;padding-left:3px;margin-right:-1px}.range-slider input[type=range]:after{left:auto;right:-5px}.range-slider input[type=range]::-webkit-slider-thumb:after{left:auto;right:0}.range-slider input[type=range]::-webkit-slider-thumb:before{right:auto;left:100%}label.label-radio input[type=checkbox]~.item-inner,label.label-radio input[type=radio]~.item-inner{padding-left:35px;padding-right:0}label.label-radio input[type=checkbox]:checked~.item-inner,label.label-radio input[type=radio]:checked~.item-inner{background-position:15px center}.row:before,.row:after{content:" ";display:table}.row:after{clear:both}.row>[class*=col-]{float:right;margin-left:0;margin-right:15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row>[class*=col-]:first-child{margin-right:0}.no-gutter.row>[class*=col-]{margin-right:0}.searchbar input[type=search]{background-position:right center;background-position:-webkit-calc(100% - 8px) center;background-position:-moz-calc(100% - 8px) center;background-position:calc(100% - 8px) center}.searchbar .searchbar-clear{right:auto;left:0}.searchbar.searchbar-active .searchbar-cancel{margin-left:0;margin-right:8px}.modal-button:first-child{border-radius:0 0 7px;border-right:none}.modal-button:last-child{border-right:1px solid #b5b5b5;border-radius:0 0 0 7px}.modal-button:first-child:last-child{border-radius:0 0 7px 7px}.content-block-inner{margin-left:0;margin-right:-15px}.page-on-left{-webkit-transform:translate3d(20%,0,0);-ms-transform:translate3d(20%,0,0);transform:translate3d(20%,0,0)}.page-on-right{-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}@-webkit-keyframes pageFromRightToCenter{from{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:translate3d(-100%,0,0)}to{-webkit-box-shadow:0 0 12px rgba(0,0,0,.5);box-shadow:0 0 12px rgba(0,0,0,.5);-webkit-transform:translate3d(0,0,0)}}@-webkit-keyframes pageFromCenterToRight{from{-webkit-box-shadow:0 0 12px rgba(0,0,0,.5);box-shadow:0 0 12px rgba(0,0,0,.5);-webkit-transform:translate3d(0,0,0)}to{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:translate3d(-100%,0,0)}}@keyframes pageFromRightToCenter{from{-webkit-box-shadow:none;box-shadow:none;transform:translate3d(-100%,0,0)}to{-webkit-box-shadow:0 0 12px rgba(0,0,0,.5);box-shadow:0 0 12px rgba(0,0,0,.5);transform:translate3d(0,0,0)}}@keyframes pageFromCenterToRight{from{-webkit-box-shadow:0 0 12px rgba(0,0,0,.5);box-shadow:0 0 12px rgba(0,0,0,.5);transform:translate3d(0,0,0)}to{-webkit-box-shadow:none;box-shadow:none;transform:translate3d(100%,0,0)}}@-webkit-keyframes pageFromCenterToLeft{from{opacity:1;-webkit-transform:translate3d(0,0,0)}to{opacity:.9;-webkit-transform:translate3d(20%,0,0)}}@-webkit-keyframes pageFromLeftToCenter{from{opacity:.9;-webkit-transform:translate3d(20%,0,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0)}}@keyframes pageFromCenterToLeft{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:.9;transform:translate3d(20%,0,0)}}@keyframes pageFromLeftToCenter{from{opacity:.9;transform:translate3d(20%,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}@-webkit-keyframes pageFromRightToCenterDegrade{from{-webkit-transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-webkit-keyframes pageFromCenterToRightDegrade{from{-webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-100%,0,0)}}@keyframes pageFromRightToCenterDegrade{from{transform:translate3d(-100%,0,0)}to{transform:translate3d(0,0,0)}}@keyframes pageFromCenterToRightDegrade{from{transform:translate3d(0,0,0)}to{transform:translate3d(-100%,0,0)}}.message-received{-ms-flex-item-align:end;-webkit-align-self:flex-end;align-self:flex-end}i.icon.icon-back-blue{background-image:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-back-white{background-image:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-back-black{background-image:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-next-blue{background:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-prev-blue{background:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-next-white{background:url("data:image/svg+xml;charset=utf-8,")}i.icon.icon-prev-white{background:url("data:image/svg+xml;charset=utf-8,")} -------------------------------------------------------------------------------- /lib/css/ionicons.css: -------------------------------------------------------------------------------- 1 | /*! 2 | Ionicons, v1.5.2 3 | Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ 4 | https://twitter.com/benjsperry https://twitter.com/ionicframework 5 | MIT License: https://github.com/driftyco/ionicons 6 | */ 7 | @font-face { font-family: "Ionicons"; src: url("../fonts/ionicons.eot?v=1.5.2"); src: url("../fonts/ionicons.eot?v=1.5.2#iefix") format("embedded-opentype"), url("../fonts/ionicons.ttf?v=1.5.2") format("truetype"), url("../fonts/ionicons.woff?v=1.5.2") format("woff"), url("../fonts/ionicons.svg?v=1.5.2#Ionicons") format("svg"); font-weight: normal; font-style: normal; } 8 | .ion, .ion-loading-a, .ion-loading-b, .ion-loading-c, .ion-loading-d, .ion-looping, .ion-refreshing, .ion-ios7-reloading, .ionicons, .ion-alert:before, .ion-alert-circled:before, .ion-android-add:before, .ion-android-add-contact: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-forward: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-drawer: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:before, .ion-android-social-user:before, .ion-android-sort:before, .ion-android-stair-drawer: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-user-menu:before, .ion-android-volume:before, .ion-android-wifi:before, .ion-aperture: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-asterisk: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-bonfire:before, .ion-bookmark:before, .ion-briefcase:before, .ion-bug:before, .ion-calculator:before, .ion-calendar:before, .ion-camera:before, .ion-card:before, .ion-cash:before, .ion-chatbox:before, .ion-chatbox-working:before, .ion-chatboxes:before, .ion-chatbubble:before, .ion-chatbubble-working:before, .ion-chatbubbles:before, .ion-checkmark:before, .ion-checkmark-circled:before, .ion-checkmark-round: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:before, .ion-close-circled:before, .ion-close-round:before, .ion-closed-captioning:before, .ion-cloud:before, .ion-code:before, .ion-code-download:before, .ion-code-working:before, .ion-coffee:before, .ion-compass:before, .ion-compose:before, .ion-connection-bars:before, .ion-contrast:before, .ion-cube:before, .ion-disc:before, .ion-document:before, .ion-document-text:before, .ion-drag:before, .ion-earth:before, .ion-edit:before, .ion-egg:before, .ion-eject:before, .ion-email:before, .ion-eye:before, .ion-eye-disabled:before, .ion-female:before, .ion-filing:before, .ion-film-marker:before, .ion-fireball:before, .ion-flag:before, .ion-flame:before, .ion-flash:before, .ion-flash-off:before, .ion-flask:before, .ion-folder:before, .ion-fork:before, .ion-fork-repo:before, .ion-forward:before, .ion-funnel: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-happy:before, .ion-headphone:before, .ion-heart:before, .ion-heart-broken:before, .ion-help:before, .ion-help-buoy:before, .ion-help-circled:before, .ion-home:before, .ion-icecream:before, .ion-icon-social-google-plus:before, .ion-icon-social-google-plus-outline:before, .ion-image:before, .ion-images:before, .ion-information:before, .ion-information-circled:before, .ion-ionic:before, .ion-ios7-alarm:before, .ion-ios7-alarm-outline:before, .ion-ios7-albums:before, .ion-ios7-albums-outline:before, .ion-ios7-americanfootball:before, .ion-ios7-americanfootball-outline:before, .ion-ios7-analytics:before, .ion-ios7-analytics-outline: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:before, .ion-ios7-at-outline:before, .ion-ios7-barcode:before, .ion-ios7-barcode-outline:before, .ion-ios7-baseball:before, .ion-ios7-baseball-outline:before, .ion-ios7-basketball:before, .ion-ios7-basketball-outline:before, .ion-ios7-bell:before, .ion-ios7-bell-outline:before, .ion-ios7-bolt:before, .ion-ios7-bolt-outline:before, .ion-ios7-bookmarks:before, .ion-ios7-bookmarks-outline:before, .ion-ios7-box:before, .ion-ios7-box-outline:before, .ion-ios7-briefcase:before, .ion-ios7-briefcase-outline:before, .ion-ios7-browsers:before, .ion-ios7-browsers-outline:before, .ion-ios7-calculator:before, .ion-ios7-calculator-outline:before, .ion-ios7-calendar:before, .ion-ios7-calendar-outline:before, .ion-ios7-camera:before, .ion-ios7-camera-outline:before, .ion-ios7-cart:before, .ion-ios7-cart-outline:before, .ion-ios7-chatboxes:before, .ion-ios7-chatboxes-outline:before, .ion-ios7-chatbubble:before, .ion-ios7-chatbubble-outline:before, .ion-ios7-checkmark:before, .ion-ios7-checkmark-empty:before, .ion-ios7-checkmark-outline:before, .ion-ios7-circle-filled:before, .ion-ios7-circle-outline:before, .ion-ios7-clock:before, .ion-ios7-clock-outline:before, .ion-ios7-close:before, .ion-ios7-close-empty:before, .ion-ios7-close-outline:before, .ion-ios7-cloud:before, .ion-ios7-cloud-download:before, .ion-ios7-cloud-download-outline:before, .ion-ios7-cloud-outline:before, .ion-ios7-cloud-upload:before, .ion-ios7-cloud-upload-outline:before, .ion-ios7-cloudy:before, .ion-ios7-cloudy-night:before, .ion-ios7-cloudy-night-outline:before, .ion-ios7-cloudy-outline:before, .ion-ios7-cog:before, .ion-ios7-cog-outline:before, .ion-ios7-compose:before, .ion-ios7-compose-outline:before, .ion-ios7-contact:before, .ion-ios7-contact-outline:before, .ion-ios7-copy:before, .ion-ios7-copy-outline:before, .ion-ios7-download:before, .ion-ios7-download-outline:before, .ion-ios7-drag:before, .ion-ios7-email:before, .ion-ios7-email-outline:before, .ion-ios7-expand:before, .ion-ios7-eye:before, .ion-ios7-eye-outline:before, .ion-ios7-fastforward:before, .ion-ios7-fastforward-outline:before, .ion-ios7-filing:before, .ion-ios7-filing-outline:before, .ion-ios7-film:before, .ion-ios7-film-outline:before, .ion-ios7-flag:before, .ion-ios7-flag-outline:before, .ion-ios7-folder:before, .ion-ios7-folder-outline:before, .ion-ios7-football:before, .ion-ios7-football-outline:before, .ion-ios7-gear:before, .ion-ios7-gear-outline:before, .ion-ios7-glasses:before, .ion-ios7-glasses-outline:before, .ion-ios7-heart:before, .ion-ios7-heart-outline:before, .ion-ios7-help:before, .ion-ios7-help-empty:before, .ion-ios7-help-outline:before, .ion-ios7-home:before, .ion-ios7-home-outline:before, .ion-ios7-infinite:before, .ion-ios7-infinite-outline:before, .ion-ios7-information:before, .ion-ios7-information-empty:before, .ion-ios7-information-outline:before, .ion-ios7-ionic-outline:before, .ion-ios7-keypad:before, .ion-ios7-keypad-outline:before, .ion-ios7-lightbulb:before, .ion-ios7-lightbulb-outline:before, .ion-ios7-location:before, .ion-ios7-location-outline:before, .ion-ios7-locked:before, .ion-ios7-locked-outline:before, .ion-ios7-loop:before, .ion-ios7-loop-strong:before, .ion-ios7-medkit:before, .ion-ios7-medkit-outline:before, .ion-ios7-mic:before, .ion-ios7-mic-off:before, .ion-ios7-mic-outline:before, .ion-ios7-minus:before, .ion-ios7-minus-empty:before, .ion-ios7-minus-outline:before, .ion-ios7-monitor:before, .ion-ios7-monitor-outline:before, .ion-ios7-moon:before, .ion-ios7-moon-outline:before, .ion-ios7-more:before, .ion-ios7-more-outline:before, .ion-ios7-musical-note:before, .ion-ios7-musical-notes:before, .ion-ios7-navigate:before, .ion-ios7-navigate-outline:before, .ion-ios7-paper:before, .ion-ios7-paper-outline:before, .ion-ios7-paperplane:before, .ion-ios7-paperplane-outline:before, .ion-ios7-partlysunny:before, .ion-ios7-partlysunny-outline:before, .ion-ios7-pause:before, .ion-ios7-pause-outline:before, .ion-ios7-paw:before, .ion-ios7-paw-outline:before, .ion-ios7-people:before, .ion-ios7-people-outline:before, .ion-ios7-person:before, .ion-ios7-person-outline:before, .ion-ios7-personadd:before, .ion-ios7-personadd-outline:before, .ion-ios7-photos:before, .ion-ios7-photos-outline:before, .ion-ios7-pie:before, .ion-ios7-pie-outline:before, .ion-ios7-play:before, .ion-ios7-play-outline:before, .ion-ios7-plus:before, .ion-ios7-plus-empty:before, .ion-ios7-plus-outline:before, .ion-ios7-pricetag:before, .ion-ios7-pricetag-outline:before, .ion-ios7-pricetags:before, .ion-ios7-pricetags-outline:before, .ion-ios7-printer:before, .ion-ios7-printer-outline:before, .ion-ios7-pulse:before, .ion-ios7-pulse-strong:before, .ion-ios7-rainy:before, .ion-ios7-rainy-outline:before, .ion-ios7-recording:before, .ion-ios7-recording-outline:before, .ion-ios7-redo:before, .ion-ios7-redo-outline:before, .ion-ios7-refresh:before, .ion-ios7-refresh-empty:before, .ion-ios7-refresh-outline:before, .ion-ios7-reload:before, .ion-ios7-reloading:before, .ion-ios7-reverse-camera:before, .ion-ios7-reverse-camera-outline:before, .ion-ios7-rewind:before, .ion-ios7-rewind-outline:before, .ion-ios7-search:before, .ion-ios7-search-strong:before, .ion-ios7-settings:before, .ion-ios7-settings-strong:before, .ion-ios7-shrink:before, .ion-ios7-skipbackward:before, .ion-ios7-skipbackward-outline:before, .ion-ios7-skipforward:before, .ion-ios7-skipforward-outline:before, .ion-ios7-snowy:before, .ion-ios7-speedometer:before, .ion-ios7-speedometer-outline:before, .ion-ios7-star:before, .ion-ios7-star-half:before, .ion-ios7-star-outline:before, .ion-ios7-stopwatch:before, .ion-ios7-stopwatch-outline:before, .ion-ios7-sunny:before, .ion-ios7-sunny-outline:before, .ion-ios7-telephone:before, .ion-ios7-telephone-outline:before, .ion-ios7-tennisball:before, .ion-ios7-tennisball-outline:before, .ion-ios7-thunderstorm:before, .ion-ios7-thunderstorm-outline:before, .ion-ios7-time:before, .ion-ios7-time-outline:before, .ion-ios7-timer:before, .ion-ios7-timer-outline:before, .ion-ios7-toggle:before, .ion-ios7-toggle-outline:before, .ion-ios7-trash:before, .ion-ios7-trash-outline:before, .ion-ios7-undo:before, .ion-ios7-undo-outline:before, .ion-ios7-unlocked:before, .ion-ios7-unlocked-outline:before, .ion-ios7-upload:before, .ion-ios7-upload-outline:before, .ion-ios7-videocam:before, .ion-ios7-videocam-outline:before, .ion-ios7-volume-high:before, .ion-ios7-volume-low:before, .ion-ios7-wineglass:before, .ion-ios7-wineglass-outline:before, .ion-ios7-world:before, .ion-ios7-world-outline: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-loading-a:before, .ion-load-b:before, .ion-loading-b:before, .ion-load-c:before, .ion-loading-c:before, .ion-load-d:before, .ion-loading-d:before, .ion-location:before, .ion-locked:before, .ion-log-in:before, .ion-log-out:before, .ion-loop:before, .ion-looping:before, .ion-magnet:before, .ion-male:before, .ion-man:before, .ion-map:before, .ion-medkit:before, .ion-merge:before, .ion-mic-a:before, .ion-mic-b:before, .ion-mic-c:before, .ion-minus:before, .ion-minus-circled:before, .ion-minus-round:before, .ion-model-s:before, .ion-monitor:before, .ion-more:before, .ion-mouse:before, .ion-music-note:before, .ion-navicon:before, .ion-navicon-round:before, .ion-navigate:before, .ion-network:before, .ion-no-smoking:before, .ion-nuclear:before, .ion-outlet:before, .ion-paper-airplane:before, .ion-paperclip:before, .ion-pause:before, .ion-person:before, .ion-person-add:before, .ion-person-stalker:before, .ion-pie-graph:before, .ion-pin:before, .ion-pinpoint:before, .ion-pizza:before, .ion-plane:before, .ion-planet:before, .ion-play:before, .ion-playstation:before, .ion-plus:before, .ion-plus-circled:before, .ion-plus-round:before, .ion-podium:before, .ion-pound:before, .ion-power:before, .ion-pricetag:before, .ion-pricetags:before, .ion-printer:before, .ion-pull-request:before, .ion-qr-scanner:before, .ion-quote:before, .ion-radio-waves:before, .ion-record:before, .ion-refresh:before, .ion-refreshing:before, .ion-reply:before, .ion-reply-all:before, .ion-ribbon-a:before, .ion-ribbon-b:before, .ion-sad:before, .ion-scissors:before, .ion-search:before, .ion-settings:before, .ion-share:before, .ion-shuffle:before, .ion-skip-backward:before, .ion-skip-forward:before, .ion-social-android:before, .ion-social-android-outline:before, .ion-social-apple:before, .ion-social-apple-outline:before, .ion-social-bitcoin:before, .ion-social-bitcoin-outline:before, .ion-social-buffer:before, .ion-social-buffer-outline:before, .ion-social-designernews:before, .ion-social-designernews-outline:before, .ion-social-dribbble:before, .ion-social-dribbble-outline:before, .ion-social-dropbox:before, .ion-social-dropbox-outline:before, .ion-social-facebook:before, .ion-social-facebook-outline:before, .ion-social-foursquare:before, .ion-social-foursquare-outline:before, .ion-social-freebsd-devil:before, .ion-social-github:before, .ion-social-github-outline:before, .ion-social-google:before, .ion-social-google-outline:before, .ion-social-googleplus:before, .ion-social-googleplus-outline:before, .ion-social-hackernews:before, .ion-social-hackernews-outline:before, .ion-social-instagram:before, .ion-social-instagram-outline:before, .ion-social-linkedin:before, .ion-social-linkedin-outline:before, .ion-social-pinterest:before, .ion-social-pinterest-outline:before, .ion-social-reddit:before, .ion-social-reddit-outline:before, .ion-social-rss:before, .ion-social-rss-outline:before, .ion-social-skype:before, .ion-social-skype-outline:before, .ion-social-tumblr:before, .ion-social-tumblr-outline:before, .ion-social-tux:before, .ion-social-twitter:before, .ion-social-twitter-outline:before, .ion-social-usd:before, .ion-social-usd-outline:before, .ion-social-vimeo:before, .ion-social-vimeo-outline:before, .ion-social-windows:before, .ion-social-windows-outline:before, .ion-social-wordpress:before, .ion-social-wordpress-outline:before, .ion-social-yahoo:before, .ion-social-yahoo-outline:before, .ion-social-youtube:before, .ion-social-youtube-outline: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-toggle:before, .ion-toggle-filled:before, .ion-trash-a:before, .ion-trash-b:before, .ion-trophy:before, .ion-umbrella:before, .ion-university: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-wand:before, .ion-waterdrop:before, .ion-wifi:before, .ion-wineglass:before, .ion-woman:before, .ion-wrench:before, .ion-xbox:before { display: inline-block; font-family: "Ionicons"; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; text-rendering: auto; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } 9 | 10 | .ion-spin, .ion-loading-a, .ion-loading-b, .ion-loading-c, .ion-loading-d, .ion-looping, .ion-refreshing, .ion-ios7-reloading { -webkit-animation: spin 1s infinite linear; -moz-animation: spin 1s infinite linear; -o-animation: spin 1s infinite linear; animation: spin 1s infinite linear; } 11 | 12 | @-moz-keyframes spin { 0% { -moz-transform: rotate(0deg); } 13 | 100% { -moz-transform: rotate(359deg); } } 14 | @-webkit-keyframes spin { 0% { -webkit-transform: rotate(0deg); } 15 | 100% { -webkit-transform: rotate(359deg); } } 16 | @-o-keyframes spin { 0% { -o-transform: rotate(0deg); } 17 | 100% { -o-transform: rotate(359deg); } } 18 | @-ms-keyframes spin { 0% { -ms-transform: rotate(0deg); } 19 | 100% { -ms-transform: rotate(359deg); } } 20 | @keyframes spin { 0% { transform: rotate(0deg); } 21 | 100% { transform: rotate(359deg); } } 22 | .ion-loading-a { -webkit-animation-timing-function: steps(8, start); -moz-animation-timing-function: steps(8, start); animation-timing-function: steps(8, start); } 23 | 24 | .ion-alert:before { content: "\f101"; } 25 | 26 | .ion-alert-circled:before { content: "\f100"; } 27 | 28 | .ion-android-add:before { content: "\f2c7"; } 29 | 30 | .ion-android-add-contact:before { content: "\f2c6"; } 31 | 32 | .ion-android-alarm:before { content: "\f2c8"; } 33 | 34 | .ion-android-archive:before { content: "\f2c9"; } 35 | 36 | .ion-android-arrow-back:before { content: "\f2ca"; } 37 | 38 | .ion-android-arrow-down-left:before { content: "\f2cb"; } 39 | 40 | .ion-android-arrow-down-right:before { content: "\f2cc"; } 41 | 42 | .ion-android-arrow-forward:before { content: "\f30f"; } 43 | 44 | .ion-android-arrow-up-left:before { content: "\f2cd"; } 45 | 46 | .ion-android-arrow-up-right:before { content: "\f2ce"; } 47 | 48 | .ion-android-battery:before { content: "\f2cf"; } 49 | 50 | .ion-android-book:before { content: "\f2d0"; } 51 | 52 | .ion-android-calendar:before { content: "\f2d1"; } 53 | 54 | .ion-android-call:before { content: "\f2d2"; } 55 | 56 | .ion-android-camera:before { content: "\f2d3"; } 57 | 58 | .ion-android-chat:before { content: "\f2d4"; } 59 | 60 | .ion-android-checkmark:before { content: "\f2d5"; } 61 | 62 | .ion-android-clock:before { content: "\f2d6"; } 63 | 64 | .ion-android-close:before { content: "\f2d7"; } 65 | 66 | .ion-android-contact:before { content: "\f2d8"; } 67 | 68 | .ion-android-contacts:before { content: "\f2d9"; } 69 | 70 | .ion-android-data:before { content: "\f2da"; } 71 | 72 | .ion-android-developer:before { content: "\f2db"; } 73 | 74 | .ion-android-display:before { content: "\f2dc"; } 75 | 76 | .ion-android-download:before { content: "\f2dd"; } 77 | 78 | .ion-android-drawer:before { content: "\f310"; } 79 | 80 | .ion-android-dropdown:before { content: "\f2de"; } 81 | 82 | .ion-android-earth:before { content: "\f2df"; } 83 | 84 | .ion-android-folder:before { content: "\f2e0"; } 85 | 86 | .ion-android-forums:before { content: "\f2e1"; } 87 | 88 | .ion-android-friends:before { content: "\f2e2"; } 89 | 90 | .ion-android-hand:before { content: "\f2e3"; } 91 | 92 | .ion-android-image:before { content: "\f2e4"; } 93 | 94 | .ion-android-inbox:before { content: "\f2e5"; } 95 | 96 | .ion-android-information:before { content: "\f2e6"; } 97 | 98 | .ion-android-keypad:before { content: "\f2e7"; } 99 | 100 | .ion-android-lightbulb:before { content: "\f2e8"; } 101 | 102 | .ion-android-locate:before { content: "\f2e9"; } 103 | 104 | .ion-android-location:before { content: "\f2ea"; } 105 | 106 | .ion-android-mail:before { content: "\f2eb"; } 107 | 108 | .ion-android-microphone:before { content: "\f2ec"; } 109 | 110 | .ion-android-mixer:before { content: "\f2ed"; } 111 | 112 | .ion-android-more:before { content: "\f2ee"; } 113 | 114 | .ion-android-note:before { content: "\f2ef"; } 115 | 116 | .ion-android-playstore:before { content: "\f2f0"; } 117 | 118 | .ion-android-printer:before { content: "\f2f1"; } 119 | 120 | .ion-android-promotion:before { content: "\f2f2"; } 121 | 122 | .ion-android-reminder:before { content: "\f2f3"; } 123 | 124 | .ion-android-remove:before { content: "\f2f4"; } 125 | 126 | .ion-android-search:before { content: "\f2f5"; } 127 | 128 | .ion-android-send:before { content: "\f2f6"; } 129 | 130 | .ion-android-settings:before { content: "\f2f7"; } 131 | 132 | .ion-android-share:before { content: "\f2f8"; } 133 | 134 | .ion-android-social:before { content: "\f2fa"; } 135 | 136 | .ion-android-social-user:before { content: "\f2f9"; } 137 | 138 | .ion-android-sort:before { content: "\f2fb"; } 139 | 140 | .ion-android-stair-drawer:before { content: "\f311"; } 141 | 142 | .ion-android-star:before { content: "\f2fc"; } 143 | 144 | .ion-android-stopwatch:before { content: "\f2fd"; } 145 | 146 | .ion-android-storage:before { content: "\f2fe"; } 147 | 148 | .ion-android-system-back:before { content: "\f2ff"; } 149 | 150 | .ion-android-system-home:before { content: "\f300"; } 151 | 152 | .ion-android-system-windows:before { content: "\f301"; } 153 | 154 | .ion-android-timer:before { content: "\f302"; } 155 | 156 | .ion-android-trash:before { content: "\f303"; } 157 | 158 | .ion-android-user-menu:before { content: "\f312"; } 159 | 160 | .ion-android-volume:before { content: "\f304"; } 161 | 162 | .ion-android-wifi:before { content: "\f305"; } 163 | 164 | .ion-aperture:before { content: "\f313"; } 165 | 166 | .ion-archive:before { content: "\f102"; } 167 | 168 | .ion-arrow-down-a:before { content: "\f103"; } 169 | 170 | .ion-arrow-down-b:before { content: "\f104"; } 171 | 172 | .ion-arrow-down-c:before { content: "\f105"; } 173 | 174 | .ion-arrow-expand:before { content: "\f25e"; } 175 | 176 | .ion-arrow-graph-down-left:before { content: "\f25f"; } 177 | 178 | .ion-arrow-graph-down-right:before { content: "\f260"; } 179 | 180 | .ion-arrow-graph-up-left:before { content: "\f261"; } 181 | 182 | .ion-arrow-graph-up-right:before { content: "\f262"; } 183 | 184 | .ion-arrow-left-a:before { content: "\f106"; } 185 | 186 | .ion-arrow-left-b:before { content: "\f107"; } 187 | 188 | .ion-arrow-left-c:before { content: "\f108"; } 189 | 190 | .ion-arrow-move:before { content: "\f263"; } 191 | 192 | .ion-arrow-resize:before { content: "\f264"; } 193 | 194 | .ion-arrow-return-left:before { content: "\f265"; } 195 | 196 | .ion-arrow-return-right:before { content: "\f266"; } 197 | 198 | .ion-arrow-right-a:before { content: "\f109"; } 199 | 200 | .ion-arrow-right-b:before { content: "\f10a"; } 201 | 202 | .ion-arrow-right-c:before { content: "\f10b"; } 203 | 204 | .ion-arrow-shrink:before { content: "\f267"; } 205 | 206 | .ion-arrow-swap:before { content: "\f268"; } 207 | 208 | .ion-arrow-up-a:before { content: "\f10c"; } 209 | 210 | .ion-arrow-up-b:before { content: "\f10d"; } 211 | 212 | .ion-arrow-up-c:before { content: "\f10e"; } 213 | 214 | .ion-asterisk:before { content: "\f314"; } 215 | 216 | .ion-at:before { content: "\f10f"; } 217 | 218 | .ion-bag:before { content: "\f110"; } 219 | 220 | .ion-battery-charging:before { content: "\f111"; } 221 | 222 | .ion-battery-empty:before { content: "\f112"; } 223 | 224 | .ion-battery-full:before { content: "\f113"; } 225 | 226 | .ion-battery-half:before { content: "\f114"; } 227 | 228 | .ion-battery-low:before { content: "\f115"; } 229 | 230 | .ion-beaker:before { content: "\f269"; } 231 | 232 | .ion-beer:before { content: "\f26a"; } 233 | 234 | .ion-bluetooth:before { content: "\f116"; } 235 | 236 | .ion-bonfire:before { content: "\f315"; } 237 | 238 | .ion-bookmark:before { content: "\f26b"; } 239 | 240 | .ion-briefcase:before { content: "\f26c"; } 241 | 242 | .ion-bug:before { content: "\f2be"; } 243 | 244 | .ion-calculator:before { content: "\f26d"; } 245 | 246 | .ion-calendar:before { content: "\f117"; } 247 | 248 | .ion-camera:before { content: "\f118"; } 249 | 250 | .ion-card:before { content: "\f119"; } 251 | 252 | .ion-cash:before { content: "\f316"; } 253 | 254 | .ion-chatbox:before { content: "\f11b"; } 255 | 256 | .ion-chatbox-working:before { content: "\f11a"; } 257 | 258 | .ion-chatboxes:before { content: "\f11c"; } 259 | 260 | .ion-chatbubble:before { content: "\f11e"; } 261 | 262 | .ion-chatbubble-working:before { content: "\f11d"; } 263 | 264 | .ion-chatbubbles:before { content: "\f11f"; } 265 | 266 | .ion-checkmark:before { content: "\f122"; } 267 | 268 | .ion-checkmark-circled:before { content: "\f120"; } 269 | 270 | .ion-checkmark-round:before { content: "\f121"; } 271 | 272 | .ion-chevron-down:before { content: "\f123"; } 273 | 274 | .ion-chevron-left:before { content: "\f124"; } 275 | 276 | .ion-chevron-right:before { content: "\f125"; } 277 | 278 | .ion-chevron-up:before { content: "\f126"; } 279 | 280 | .ion-clipboard:before { content: "\f127"; } 281 | 282 | .ion-clock:before { content: "\f26e"; } 283 | 284 | .ion-close:before { content: "\f12a"; } 285 | 286 | .ion-close-circled:before { content: "\f128"; } 287 | 288 | .ion-close-round:before { content: "\f129"; } 289 | 290 | .ion-closed-captioning:before { content: "\f317"; } 291 | 292 | .ion-cloud:before { content: "\f12b"; } 293 | 294 | .ion-code:before { content: "\f271"; } 295 | 296 | .ion-code-download:before { content: "\f26f"; } 297 | 298 | .ion-code-working:before { content: "\f270"; } 299 | 300 | .ion-coffee:before { content: "\f272"; } 301 | 302 | .ion-compass:before { content: "\f273"; } 303 | 304 | .ion-compose:before { content: "\f12c"; } 305 | 306 | .ion-connection-bars:before { content: "\f274"; } 307 | 308 | .ion-contrast:before { content: "\f275"; } 309 | 310 | .ion-cube:before { content: "\f318"; } 311 | 312 | .ion-disc:before { content: "\f12d"; } 313 | 314 | .ion-document:before { content: "\f12f"; } 315 | 316 | .ion-document-text:before { content: "\f12e"; } 317 | 318 | .ion-drag:before { content: "\f130"; } 319 | 320 | .ion-earth:before { content: "\f276"; } 321 | 322 | .ion-edit:before { content: "\f2bf"; } 323 | 324 | .ion-egg:before { content: "\f277"; } 325 | 326 | .ion-eject:before { content: "\f131"; } 327 | 328 | .ion-email:before { content: "\f132"; } 329 | 330 | .ion-eye:before { content: "\f133"; } 331 | 332 | .ion-eye-disabled:before { content: "\f306"; } 333 | 334 | .ion-female:before { content: "\f278"; } 335 | 336 | .ion-filing:before { content: "\f134"; } 337 | 338 | .ion-film-marker:before { content: "\f135"; } 339 | 340 | .ion-fireball:before { content: "\f319"; } 341 | 342 | .ion-flag:before { content: "\f279"; } 343 | 344 | .ion-flame:before { content: "\f31a"; } 345 | 346 | .ion-flash:before { content: "\f137"; } 347 | 348 | .ion-flash-off:before { content: "\f136"; } 349 | 350 | .ion-flask:before { content: "\f138"; } 351 | 352 | .ion-folder:before { content: "\f139"; } 353 | 354 | .ion-fork:before { content: "\f27a"; } 355 | 356 | .ion-fork-repo:before { content: "\f2c0"; } 357 | 358 | .ion-forward:before { content: "\f13a"; } 359 | 360 | .ion-funnel:before { content: "\f31b"; } 361 | 362 | .ion-game-controller-a:before { content: "\f13b"; } 363 | 364 | .ion-game-controller-b:before { content: "\f13c"; } 365 | 366 | .ion-gear-a:before { content: "\f13d"; } 367 | 368 | .ion-gear-b:before { content: "\f13e"; } 369 | 370 | .ion-grid:before { content: "\f13f"; } 371 | 372 | .ion-hammer:before { content: "\f27b"; } 373 | 374 | .ion-happy:before { content: "\f31c"; } 375 | 376 | .ion-headphone:before { content: "\f140"; } 377 | 378 | .ion-heart:before { content: "\f141"; } 379 | 380 | .ion-heart-broken:before { content: "\f31d"; } 381 | 382 | .ion-help:before { content: "\f143"; } 383 | 384 | .ion-help-buoy:before { content: "\f27c"; } 385 | 386 | .ion-help-circled:before { content: "\f142"; } 387 | 388 | .ion-home:before { content: "\f144"; } 389 | 390 | .ion-icecream:before { content: "\f27d"; } 391 | 392 | .ion-icon-social-google-plus:before { content: "\f146"; } 393 | 394 | .ion-icon-social-google-plus-outline:before { content: "\f145"; } 395 | 396 | .ion-image:before { content: "\f147"; } 397 | 398 | .ion-images:before { content: "\f148"; } 399 | 400 | .ion-information:before { content: "\f14a"; } 401 | 402 | .ion-information-circled:before { content: "\f149"; } 403 | 404 | .ion-ionic:before { content: "\f14b"; } 405 | 406 | .ion-ios7-alarm:before { content: "\f14d"; } 407 | 408 | .ion-ios7-alarm-outline:before { content: "\f14c"; } 409 | 410 | .ion-ios7-albums:before { content: "\f14f"; } 411 | 412 | .ion-ios7-albums-outline:before { content: "\f14e"; } 413 | 414 | .ion-ios7-americanfootball:before { content: "\f31f"; } 415 | 416 | .ion-ios7-americanfootball-outline:before { content: "\f31e"; } 417 | 418 | .ion-ios7-analytics:before { content: "\f321"; } 419 | 420 | .ion-ios7-analytics-outline:before { content: "\f320"; } 421 | 422 | .ion-ios7-arrow-back:before { content: "\f150"; } 423 | 424 | .ion-ios7-arrow-down:before { content: "\f151"; } 425 | 426 | .ion-ios7-arrow-forward:before { content: "\f152"; } 427 | 428 | .ion-ios7-arrow-left:before { content: "\f153"; } 429 | 430 | .ion-ios7-arrow-right:before { content: "\f154"; } 431 | 432 | .ion-ios7-arrow-thin-down:before { content: "\f27e"; } 433 | 434 | .ion-ios7-arrow-thin-left:before { content: "\f27f"; } 435 | 436 | .ion-ios7-arrow-thin-right:before { content: "\f280"; } 437 | 438 | .ion-ios7-arrow-thin-up:before { content: "\f281"; } 439 | 440 | .ion-ios7-arrow-up:before { content: "\f155"; } 441 | 442 | .ion-ios7-at:before { content: "\f157"; } 443 | 444 | .ion-ios7-at-outline:before { content: "\f156"; } 445 | 446 | .ion-ios7-barcode:before { content: "\f323"; } 447 | 448 | .ion-ios7-barcode-outline:before { content: "\f322"; } 449 | 450 | .ion-ios7-baseball:before { content: "\f325"; } 451 | 452 | .ion-ios7-baseball-outline:before { content: "\f324"; } 453 | 454 | .ion-ios7-basketball:before { content: "\f327"; } 455 | 456 | .ion-ios7-basketball-outline:before { content: "\f326"; } 457 | 458 | .ion-ios7-bell:before { content: "\f159"; } 459 | 460 | .ion-ios7-bell-outline:before { content: "\f158"; } 461 | 462 | .ion-ios7-bolt:before { content: "\f15b"; } 463 | 464 | .ion-ios7-bolt-outline:before { content: "\f15a"; } 465 | 466 | .ion-ios7-bookmarks:before { content: "\f15d"; } 467 | 468 | .ion-ios7-bookmarks-outline:before { content: "\f15c"; } 469 | 470 | .ion-ios7-box:before { content: "\f15f"; } 471 | 472 | .ion-ios7-box-outline:before { content: "\f15e"; } 473 | 474 | .ion-ios7-briefcase:before { content: "\f283"; } 475 | 476 | .ion-ios7-briefcase-outline:before { content: "\f282"; } 477 | 478 | .ion-ios7-browsers:before { content: "\f161"; } 479 | 480 | .ion-ios7-browsers-outline:before { content: "\f160"; } 481 | 482 | .ion-ios7-calculator:before { content: "\f285"; } 483 | 484 | .ion-ios7-calculator-outline:before { content: "\f284"; } 485 | 486 | .ion-ios7-calendar:before { content: "\f163"; } 487 | 488 | .ion-ios7-calendar-outline:before { content: "\f162"; } 489 | 490 | .ion-ios7-camera:before { content: "\f165"; } 491 | 492 | .ion-ios7-camera-outline:before { content: "\f164"; } 493 | 494 | .ion-ios7-cart:before { content: "\f167"; } 495 | 496 | .ion-ios7-cart-outline:before { content: "\f166"; } 497 | 498 | .ion-ios7-chatboxes:before { content: "\f169"; } 499 | 500 | .ion-ios7-chatboxes-outline:before { content: "\f168"; } 501 | 502 | .ion-ios7-chatbubble:before { content: "\f16b"; } 503 | 504 | .ion-ios7-chatbubble-outline:before { content: "\f16a"; } 505 | 506 | .ion-ios7-checkmark:before { content: "\f16e"; } 507 | 508 | .ion-ios7-checkmark-empty:before { content: "\f16c"; } 509 | 510 | .ion-ios7-checkmark-outline:before { content: "\f16d"; } 511 | 512 | .ion-ios7-circle-filled:before { content: "\f16f"; } 513 | 514 | .ion-ios7-circle-outline:before { content: "\f170"; } 515 | 516 | .ion-ios7-clock:before { content: "\f172"; } 517 | 518 | .ion-ios7-clock-outline:before { content: "\f171"; } 519 | 520 | .ion-ios7-close:before { content: "\f2bc"; } 521 | 522 | .ion-ios7-close-empty:before { content: "\f2bd"; } 523 | 524 | .ion-ios7-close-outline:before { content: "\f2bb"; } 525 | 526 | .ion-ios7-cloud:before { content: "\f178"; } 527 | 528 | .ion-ios7-cloud-download:before { content: "\f174"; } 529 | 530 | .ion-ios7-cloud-download-outline:before { content: "\f173"; } 531 | 532 | .ion-ios7-cloud-outline:before { content: "\f175"; } 533 | 534 | .ion-ios7-cloud-upload:before { content: "\f177"; } 535 | 536 | .ion-ios7-cloud-upload-outline:before { content: "\f176"; } 537 | 538 | .ion-ios7-cloudy:before { content: "\f17a"; } 539 | 540 | .ion-ios7-cloudy-night:before { content: "\f308"; } 541 | 542 | .ion-ios7-cloudy-night-outline:before { content: "\f307"; } 543 | 544 | .ion-ios7-cloudy-outline:before { content: "\f179"; } 545 | 546 | .ion-ios7-cog:before { content: "\f17c"; } 547 | 548 | .ion-ios7-cog-outline:before { content: "\f17b"; } 549 | 550 | .ion-ios7-compose:before { content: "\f17e"; } 551 | 552 | .ion-ios7-compose-outline:before { content: "\f17d"; } 553 | 554 | .ion-ios7-contact:before { content: "\f180"; } 555 | 556 | .ion-ios7-contact-outline:before { content: "\f17f"; } 557 | 558 | .ion-ios7-copy:before { content: "\f182"; } 559 | 560 | .ion-ios7-copy-outline:before { content: "\f181"; } 561 | 562 | .ion-ios7-download:before { content: "\f184"; } 563 | 564 | .ion-ios7-download-outline:before { content: "\f183"; } 565 | 566 | .ion-ios7-drag:before { content: "\f185"; } 567 | 568 | .ion-ios7-email:before { content: "\f187"; } 569 | 570 | .ion-ios7-email-outline:before { content: "\f186"; } 571 | 572 | .ion-ios7-expand:before { content: "\f30d"; } 573 | 574 | .ion-ios7-eye:before { content: "\f189"; } 575 | 576 | .ion-ios7-eye-outline:before { content: "\f188"; } 577 | 578 | .ion-ios7-fastforward:before { content: "\f18b"; } 579 | 580 | .ion-ios7-fastforward-outline:before { content: "\f18a"; } 581 | 582 | .ion-ios7-filing:before { content: "\f18d"; } 583 | 584 | .ion-ios7-filing-outline:before { content: "\f18c"; } 585 | 586 | .ion-ios7-film:before { content: "\f18f"; } 587 | 588 | .ion-ios7-film-outline:before { content: "\f18e"; } 589 | 590 | .ion-ios7-flag:before { content: "\f191"; } 591 | 592 | .ion-ios7-flag-outline:before { content: "\f190"; } 593 | 594 | .ion-ios7-folder:before { content: "\f193"; } 595 | 596 | .ion-ios7-folder-outline:before { content: "\f192"; } 597 | 598 | .ion-ios7-football:before { content: "\f329"; } 599 | 600 | .ion-ios7-football-outline:before { content: "\f328"; } 601 | 602 | .ion-ios7-gear:before { content: "\f195"; } 603 | 604 | .ion-ios7-gear-outline:before { content: "\f194"; } 605 | 606 | .ion-ios7-glasses:before { content: "\f197"; } 607 | 608 | .ion-ios7-glasses-outline:before { content: "\f196"; } 609 | 610 | .ion-ios7-heart:before { content: "\f199"; } 611 | 612 | .ion-ios7-heart-outline:before { content: "\f198"; } 613 | 614 | .ion-ios7-help:before { content: "\f19c"; } 615 | 616 | .ion-ios7-help-empty:before { content: "\f19a"; } 617 | 618 | .ion-ios7-help-outline:before { content: "\f19b"; } 619 | 620 | .ion-ios7-home:before { content: "\f32b"; } 621 | 622 | .ion-ios7-home-outline:before { content: "\f32a"; } 623 | 624 | .ion-ios7-infinite:before { content: "\f19e"; } 625 | 626 | .ion-ios7-infinite-outline:before { content: "\f19d"; } 627 | 628 | .ion-ios7-information:before { content: "\f1a1"; } 629 | 630 | .ion-ios7-information-empty:before { content: "\f19f"; } 631 | 632 | .ion-ios7-information-outline:before { content: "\f1a0"; } 633 | 634 | .ion-ios7-ionic-outline:before { content: "\f1a2"; } 635 | 636 | .ion-ios7-keypad:before { content: "\f1a4"; } 637 | 638 | .ion-ios7-keypad-outline:before { content: "\f1a3"; } 639 | 640 | .ion-ios7-lightbulb:before { content: "\f287"; } 641 | 642 | .ion-ios7-lightbulb-outline:before { content: "\f286"; } 643 | 644 | .ion-ios7-location:before { content: "\f1a6"; } 645 | 646 | .ion-ios7-location-outline:before { content: "\f1a5"; } 647 | 648 | .ion-ios7-locked:before { content: "\f1a8"; } 649 | 650 | .ion-ios7-locked-outline:before { content: "\f1a7"; } 651 | 652 | .ion-ios7-loop:before { content: "\f32d"; } 653 | 654 | .ion-ios7-loop-strong:before { content: "\f32c"; } 655 | 656 | .ion-ios7-medkit:before { content: "\f289"; } 657 | 658 | .ion-ios7-medkit-outline:before { content: "\f288"; } 659 | 660 | .ion-ios7-mic:before { content: "\f1ab"; } 661 | 662 | .ion-ios7-mic-off:before { content: "\f1a9"; } 663 | 664 | .ion-ios7-mic-outline:before { content: "\f1aa"; } 665 | 666 | .ion-ios7-minus:before { content: "\f1ae"; } 667 | 668 | .ion-ios7-minus-empty:before { content: "\f1ac"; } 669 | 670 | .ion-ios7-minus-outline:before { content: "\f1ad"; } 671 | 672 | .ion-ios7-monitor:before { content: "\f1b0"; } 673 | 674 | .ion-ios7-monitor-outline:before { content: "\f1af"; } 675 | 676 | .ion-ios7-moon:before { content: "\f1b2"; } 677 | 678 | .ion-ios7-moon-outline:before { content: "\f1b1"; } 679 | 680 | .ion-ios7-more:before { content: "\f1b4"; } 681 | 682 | .ion-ios7-more-outline:before { content: "\f1b3"; } 683 | 684 | .ion-ios7-musical-note:before { content: "\f1b5"; } 685 | 686 | .ion-ios7-musical-notes:before { content: "\f1b6"; } 687 | 688 | .ion-ios7-navigate:before { content: "\f1b8"; } 689 | 690 | .ion-ios7-navigate-outline:before { content: "\f1b7"; } 691 | 692 | .ion-ios7-paper:before { content: "\f32f"; } 693 | 694 | .ion-ios7-paper-outline:before { content: "\f32e"; } 695 | 696 | .ion-ios7-paperplane:before { content: "\f1ba"; } 697 | 698 | .ion-ios7-paperplane-outline:before { content: "\f1b9"; } 699 | 700 | .ion-ios7-partlysunny:before { content: "\f1bc"; } 701 | 702 | .ion-ios7-partlysunny-outline:before { content: "\f1bb"; } 703 | 704 | .ion-ios7-pause:before { content: "\f1be"; } 705 | 706 | .ion-ios7-pause-outline:before { content: "\f1bd"; } 707 | 708 | .ion-ios7-paw:before { content: "\f331"; } 709 | 710 | .ion-ios7-paw-outline:before { content: "\f330"; } 711 | 712 | .ion-ios7-people:before { content: "\f1c0"; } 713 | 714 | .ion-ios7-people-outline:before { content: "\f1bf"; } 715 | 716 | .ion-ios7-person:before { content: "\f1c2"; } 717 | 718 | .ion-ios7-person-outline:before { content: "\f1c1"; } 719 | 720 | .ion-ios7-personadd:before { content: "\f1c4"; } 721 | 722 | .ion-ios7-personadd-outline:before { content: "\f1c3"; } 723 | 724 | .ion-ios7-photos:before { content: "\f1c6"; } 725 | 726 | .ion-ios7-photos-outline:before { content: "\f1c5"; } 727 | 728 | .ion-ios7-pie:before { content: "\f28b"; } 729 | 730 | .ion-ios7-pie-outline:before { content: "\f28a"; } 731 | 732 | .ion-ios7-play:before { content: "\f1c8"; } 733 | 734 | .ion-ios7-play-outline:before { content: "\f1c7"; } 735 | 736 | .ion-ios7-plus:before { content: "\f1cb"; } 737 | 738 | .ion-ios7-plus-empty:before { content: "\f1c9"; } 739 | 740 | .ion-ios7-plus-outline:before { content: "\f1ca"; } 741 | 742 | .ion-ios7-pricetag:before { content: "\f28d"; } 743 | 744 | .ion-ios7-pricetag-outline:before { content: "\f28c"; } 745 | 746 | .ion-ios7-pricetags:before { content: "\f333"; } 747 | 748 | .ion-ios7-pricetags-outline:before { content: "\f332"; } 749 | 750 | .ion-ios7-printer:before { content: "\f1cd"; } 751 | 752 | .ion-ios7-printer-outline:before { content: "\f1cc"; } 753 | 754 | .ion-ios7-pulse:before { content: "\f335"; } 755 | 756 | .ion-ios7-pulse-strong:before { content: "\f334"; } 757 | 758 | .ion-ios7-rainy:before { content: "\f1cf"; } 759 | 760 | .ion-ios7-rainy-outline:before { content: "\f1ce"; } 761 | 762 | .ion-ios7-recording:before { content: "\f1d1"; } 763 | 764 | .ion-ios7-recording-outline:before { content: "\f1d0"; } 765 | 766 | .ion-ios7-redo:before { content: "\f1d3"; } 767 | 768 | .ion-ios7-redo-outline:before { content: "\f1d2"; } 769 | 770 | .ion-ios7-refresh:before { content: "\f1d6"; } 771 | 772 | .ion-ios7-refresh-empty:before { content: "\f1d4"; } 773 | 774 | .ion-ios7-refresh-outline:before { content: "\f1d5"; } 775 | 776 | .ion-ios7-reload:before, .ion-ios7-reloading:before { content: "\f28e"; } 777 | 778 | .ion-ios7-reverse-camera:before { content: "\f337"; } 779 | 780 | .ion-ios7-reverse-camera-outline:before { content: "\f336"; } 781 | 782 | .ion-ios7-rewind:before { content: "\f1d8"; } 783 | 784 | .ion-ios7-rewind-outline:before { content: "\f1d7"; } 785 | 786 | .ion-ios7-search:before { content: "\f1da"; } 787 | 788 | .ion-ios7-search-strong:before { content: "\f1d9"; } 789 | 790 | .ion-ios7-settings:before { content: "\f339"; } 791 | 792 | .ion-ios7-settings-strong:before { content: "\f338"; } 793 | 794 | .ion-ios7-shrink:before { content: "\f30e"; } 795 | 796 | .ion-ios7-skipbackward:before { content: "\f1dc"; } 797 | 798 | .ion-ios7-skipbackward-outline:before { content: "\f1db"; } 799 | 800 | .ion-ios7-skipforward:before { content: "\f1de"; } 801 | 802 | .ion-ios7-skipforward-outline:before { content: "\f1dd"; } 803 | 804 | .ion-ios7-snowy:before { content: "\f309"; } 805 | 806 | .ion-ios7-speedometer:before { content: "\f290"; } 807 | 808 | .ion-ios7-speedometer-outline:before { content: "\f28f"; } 809 | 810 | .ion-ios7-star:before { content: "\f1e0"; } 811 | 812 | .ion-ios7-star-half:before { content: "\f33a"; } 813 | 814 | .ion-ios7-star-outline:before { content: "\f1df"; } 815 | 816 | .ion-ios7-stopwatch:before { content: "\f1e2"; } 817 | 818 | .ion-ios7-stopwatch-outline:before { content: "\f1e1"; } 819 | 820 | .ion-ios7-sunny:before { content: "\f1e4"; } 821 | 822 | .ion-ios7-sunny-outline:before { content: "\f1e3"; } 823 | 824 | .ion-ios7-telephone:before { content: "\f1e6"; } 825 | 826 | .ion-ios7-telephone-outline:before { content: "\f1e5"; } 827 | 828 | .ion-ios7-tennisball:before { content: "\f33c"; } 829 | 830 | .ion-ios7-tennisball-outline:before { content: "\f33b"; } 831 | 832 | .ion-ios7-thunderstorm:before { content: "\f1e8"; } 833 | 834 | .ion-ios7-thunderstorm-outline:before { content: "\f1e7"; } 835 | 836 | .ion-ios7-time:before { content: "\f292"; } 837 | 838 | .ion-ios7-time-outline:before { content: "\f291"; } 839 | 840 | .ion-ios7-timer:before { content: "\f1ea"; } 841 | 842 | .ion-ios7-timer-outline:before { content: "\f1e9"; } 843 | 844 | .ion-ios7-toggle:before { content: "\f33e"; } 845 | 846 | .ion-ios7-toggle-outline:before { content: "\f33d"; } 847 | 848 | .ion-ios7-trash:before { content: "\f1ec"; } 849 | 850 | .ion-ios7-trash-outline:before { content: "\f1eb"; } 851 | 852 | .ion-ios7-undo:before { content: "\f1ee"; } 853 | 854 | .ion-ios7-undo-outline:before { content: "\f1ed"; } 855 | 856 | .ion-ios7-unlocked:before { content: "\f1f0"; } 857 | 858 | .ion-ios7-unlocked-outline:before { content: "\f1ef"; } 859 | 860 | .ion-ios7-upload:before { content: "\f1f2"; } 861 | 862 | .ion-ios7-upload-outline:before { content: "\f1f1"; } 863 | 864 | .ion-ios7-videocam:before { content: "\f1f4"; } 865 | 866 | .ion-ios7-videocam-outline:before { content: "\f1f3"; } 867 | 868 | .ion-ios7-volume-high:before { content: "\f1f5"; } 869 | 870 | .ion-ios7-volume-low:before { content: "\f1f6"; } 871 | 872 | .ion-ios7-wineglass:before { content: "\f294"; } 873 | 874 | .ion-ios7-wineglass-outline:before { content: "\f293"; } 875 | 876 | .ion-ios7-world:before { content: "\f1f8"; } 877 | 878 | .ion-ios7-world-outline:before { content: "\f1f7"; } 879 | 880 | .ion-ipad:before { content: "\f1f9"; } 881 | 882 | .ion-iphone:before { content: "\f1fa"; } 883 | 884 | .ion-ipod:before { content: "\f1fb"; } 885 | 886 | .ion-jet:before { content: "\f295"; } 887 | 888 | .ion-key:before { content: "\f296"; } 889 | 890 | .ion-knife:before { content: "\f297"; } 891 | 892 | .ion-laptop:before { content: "\f1fc"; } 893 | 894 | .ion-leaf:before { content: "\f1fd"; } 895 | 896 | .ion-levels:before { content: "\f298"; } 897 | 898 | .ion-lightbulb:before { content: "\f299"; } 899 | 900 | .ion-link:before { content: "\f1fe"; } 901 | 902 | .ion-load-a:before, .ion-loading-a:before { content: "\f29a"; } 903 | 904 | .ion-load-b:before, .ion-loading-b:before { content: "\f29b"; } 905 | 906 | .ion-load-c:before, .ion-loading-c:before { content: "\f29c"; } 907 | 908 | .ion-load-d:before, .ion-loading-d:before { content: "\f29d"; } 909 | 910 | .ion-location:before { content: "\f1ff"; } 911 | 912 | .ion-locked:before { content: "\f200"; } 913 | 914 | .ion-log-in:before { content: "\f29e"; } 915 | 916 | .ion-log-out:before { content: "\f29f"; } 917 | 918 | .ion-loop:before, .ion-looping:before { content: "\f201"; } 919 | 920 | .ion-magnet:before { content: "\f2a0"; } 921 | 922 | .ion-male:before { content: "\f2a1"; } 923 | 924 | .ion-man:before { content: "\f202"; } 925 | 926 | .ion-map:before { content: "\f203"; } 927 | 928 | .ion-medkit:before { content: "\f2a2"; } 929 | 930 | .ion-merge:before { content: "\f33f"; } 931 | 932 | .ion-mic-a:before { content: "\f204"; } 933 | 934 | .ion-mic-b:before { content: "\f205"; } 935 | 936 | .ion-mic-c:before { content: "\f206"; } 937 | 938 | .ion-minus:before { content: "\f209"; } 939 | 940 | .ion-minus-circled:before { content: "\f207"; } 941 | 942 | .ion-minus-round:before { content: "\f208"; } 943 | 944 | .ion-model-s:before { content: "\f2c1"; } 945 | 946 | .ion-monitor:before { content: "\f20a"; } 947 | 948 | .ion-more:before { content: "\f20b"; } 949 | 950 | .ion-mouse:before { content: "\f340"; } 951 | 952 | .ion-music-note:before { content: "\f20c"; } 953 | 954 | .ion-navicon:before { content: "\f20e"; } 955 | 956 | .ion-navicon-round:before { content: "\f20d"; } 957 | 958 | .ion-navigate:before { content: "\f2a3"; } 959 | 960 | .ion-network:before { content: "\f341"; } 961 | 962 | .ion-no-smoking:before { content: "\f2c2"; } 963 | 964 | .ion-nuclear:before { content: "\f2a4"; } 965 | 966 | .ion-outlet:before { content: "\f342"; } 967 | 968 | .ion-paper-airplane:before { content: "\f2c3"; } 969 | 970 | .ion-paperclip:before { content: "\f20f"; } 971 | 972 | .ion-pause:before { content: "\f210"; } 973 | 974 | .ion-person:before { content: "\f213"; } 975 | 976 | .ion-person-add:before { content: "\f211"; } 977 | 978 | .ion-person-stalker:before { content: "\f212"; } 979 | 980 | .ion-pie-graph:before { content: "\f2a5"; } 981 | 982 | .ion-pin:before { content: "\f2a6"; } 983 | 984 | .ion-pinpoint:before { content: "\f2a7"; } 985 | 986 | .ion-pizza:before { content: "\f2a8"; } 987 | 988 | .ion-plane:before { content: "\f214"; } 989 | 990 | .ion-planet:before { content: "\f343"; } 991 | 992 | .ion-play:before { content: "\f215"; } 993 | 994 | .ion-playstation:before { content: "\f30a"; } 995 | 996 | .ion-plus:before { content: "\f218"; } 997 | 998 | .ion-plus-circled:before { content: "\f216"; } 999 | 1000 | .ion-plus-round:before { content: "\f217"; } 1001 | 1002 | .ion-podium:before { content: "\f344"; } 1003 | 1004 | .ion-pound:before { content: "\f219"; } 1005 | 1006 | .ion-power:before { content: "\f2a9"; } 1007 | 1008 | .ion-pricetag:before { content: "\f2aa"; } 1009 | 1010 | .ion-pricetags:before { content: "\f2ab"; } 1011 | 1012 | .ion-printer:before { content: "\f21a"; } 1013 | 1014 | .ion-pull-request:before { content: "\f345"; } 1015 | 1016 | .ion-qr-scanner:before { content: "\f346"; } 1017 | 1018 | .ion-quote:before { content: "\f347"; } 1019 | 1020 | .ion-radio-waves:before { content: "\f2ac"; } 1021 | 1022 | .ion-record:before { content: "\f21b"; } 1023 | 1024 | .ion-refresh:before, .ion-refreshing:before { content: "\f21c"; } 1025 | 1026 | .ion-reply:before { content: "\f21e"; } 1027 | 1028 | .ion-reply-all:before { content: "\f21d"; } 1029 | 1030 | .ion-ribbon-a:before { content: "\f348"; } 1031 | 1032 | .ion-ribbon-b:before { content: "\f349"; } 1033 | 1034 | .ion-sad:before { content: "\f34a"; } 1035 | 1036 | .ion-scissors:before { content: "\f34b"; } 1037 | 1038 | .ion-search:before { content: "\f21f"; } 1039 | 1040 | .ion-settings:before { content: "\f2ad"; } 1041 | 1042 | .ion-share:before { content: "\f220"; } 1043 | 1044 | .ion-shuffle:before { content: "\f221"; } 1045 | 1046 | .ion-skip-backward:before { content: "\f222"; } 1047 | 1048 | .ion-skip-forward:before { content: "\f223"; } 1049 | 1050 | .ion-social-android:before { content: "\f225"; } 1051 | 1052 | .ion-social-android-outline:before { content: "\f224"; } 1053 | 1054 | .ion-social-apple:before { content: "\f227"; } 1055 | 1056 | .ion-social-apple-outline:before { content: "\f226"; } 1057 | 1058 | .ion-social-bitcoin:before { content: "\f2af"; } 1059 | 1060 | .ion-social-bitcoin-outline:before { content: "\f2ae"; } 1061 | 1062 | .ion-social-buffer:before { content: "\f229"; } 1063 | 1064 | .ion-social-buffer-outline:before { content: "\f228"; } 1065 | 1066 | .ion-social-designernews:before { content: "\f22b"; } 1067 | 1068 | .ion-social-designernews-outline:before { content: "\f22a"; } 1069 | 1070 | .ion-social-dribbble:before { content: "\f22d"; } 1071 | 1072 | .ion-social-dribbble-outline:before { content: "\f22c"; } 1073 | 1074 | .ion-social-dropbox:before { content: "\f22f"; } 1075 | 1076 | .ion-social-dropbox-outline:before { content: "\f22e"; } 1077 | 1078 | .ion-social-facebook:before { content: "\f231"; } 1079 | 1080 | .ion-social-facebook-outline:before { content: "\f230"; } 1081 | 1082 | .ion-social-foursquare:before { content: "\f34d"; } 1083 | 1084 | .ion-social-foursquare-outline:before { content: "\f34c"; } 1085 | 1086 | .ion-social-freebsd-devil:before { content: "\f2c4"; } 1087 | 1088 | .ion-social-github:before { content: "\f233"; } 1089 | 1090 | .ion-social-github-outline:before { content: "\f232"; } 1091 | 1092 | .ion-social-google:before { content: "\f34f"; } 1093 | 1094 | .ion-social-google-outline:before { content: "\f34e"; } 1095 | 1096 | .ion-social-googleplus:before { content: "\f235"; } 1097 | 1098 | .ion-social-googleplus-outline:before { content: "\f234"; } 1099 | 1100 | .ion-social-hackernews:before { content: "\f237"; } 1101 | 1102 | .ion-social-hackernews-outline:before { content: "\f236"; } 1103 | 1104 | .ion-social-instagram:before { content: "\f351"; } 1105 | 1106 | .ion-social-instagram-outline:before { content: "\f350"; } 1107 | 1108 | .ion-social-linkedin:before { content: "\f239"; } 1109 | 1110 | .ion-social-linkedin-outline:before { content: "\f238"; } 1111 | 1112 | .ion-social-pinterest:before { content: "\f2b1"; } 1113 | 1114 | .ion-social-pinterest-outline:before { content: "\f2b0"; } 1115 | 1116 | .ion-social-reddit:before { content: "\f23b"; } 1117 | 1118 | .ion-social-reddit-outline:before { content: "\f23a"; } 1119 | 1120 | .ion-social-rss:before { content: "\f23d"; } 1121 | 1122 | .ion-social-rss-outline:before { content: "\f23c"; } 1123 | 1124 | .ion-social-skype:before { content: "\f23f"; } 1125 | 1126 | .ion-social-skype-outline:before { content: "\f23e"; } 1127 | 1128 | .ion-social-tumblr:before { content: "\f241"; } 1129 | 1130 | .ion-social-tumblr-outline:before { content: "\f240"; } 1131 | 1132 | .ion-social-tux:before { content: "\f2c5"; } 1133 | 1134 | .ion-social-twitter:before { content: "\f243"; } 1135 | 1136 | .ion-social-twitter-outline:before { content: "\f242"; } 1137 | 1138 | .ion-social-usd:before { content: "\f353"; } 1139 | 1140 | .ion-social-usd-outline:before { content: "\f352"; } 1141 | 1142 | .ion-social-vimeo:before { content: "\f245"; } 1143 | 1144 | .ion-social-vimeo-outline:before { content: "\f244"; } 1145 | 1146 | .ion-social-windows:before { content: "\f247"; } 1147 | 1148 | .ion-social-windows-outline:before { content: "\f246"; } 1149 | 1150 | .ion-social-wordpress:before { content: "\f249"; } 1151 | 1152 | .ion-social-wordpress-outline:before { content: "\f248"; } 1153 | 1154 | .ion-social-yahoo:before { content: "\f24b"; } 1155 | 1156 | .ion-social-yahoo-outline:before { content: "\f24a"; } 1157 | 1158 | .ion-social-youtube:before { content: "\f24d"; } 1159 | 1160 | .ion-social-youtube-outline:before { content: "\f24c"; } 1161 | 1162 | .ion-speakerphone:before { content: "\f2b2"; } 1163 | 1164 | .ion-speedometer:before { content: "\f2b3"; } 1165 | 1166 | .ion-spoon:before { content: "\f2b4"; } 1167 | 1168 | .ion-star:before { content: "\f24e"; } 1169 | 1170 | .ion-stats-bars:before { content: "\f2b5"; } 1171 | 1172 | .ion-steam:before { content: "\f30b"; } 1173 | 1174 | .ion-stop:before { content: "\f24f"; } 1175 | 1176 | .ion-thermometer:before { content: "\f2b6"; } 1177 | 1178 | .ion-thumbsdown:before { content: "\f250"; } 1179 | 1180 | .ion-thumbsup:before { content: "\f251"; } 1181 | 1182 | .ion-toggle:before { content: "\f355"; } 1183 | 1184 | .ion-toggle-filled:before { content: "\f354"; } 1185 | 1186 | .ion-trash-a:before { content: "\f252"; } 1187 | 1188 | .ion-trash-b:before { content: "\f253"; } 1189 | 1190 | .ion-trophy:before { content: "\f356"; } 1191 | 1192 | .ion-umbrella:before { content: "\f2b7"; } 1193 | 1194 | .ion-university:before { content: "\f357"; } 1195 | 1196 | .ion-unlocked:before { content: "\f254"; } 1197 | 1198 | .ion-upload:before { content: "\f255"; } 1199 | 1200 | .ion-usb:before { content: "\f2b8"; } 1201 | 1202 | .ion-videocamera:before { content: "\f256"; } 1203 | 1204 | .ion-volume-high:before { content: "\f257"; } 1205 | 1206 | .ion-volume-low:before { content: "\f258"; } 1207 | 1208 | .ion-volume-medium:before { content: "\f259"; } 1209 | 1210 | .ion-volume-mute:before { content: "\f25a"; } 1211 | 1212 | .ion-wand:before { content: "\f358"; } 1213 | 1214 | .ion-waterdrop:before { content: "\f25b"; } 1215 | 1216 | .ion-wifi:before { content: "\f25c"; } 1217 | 1218 | .ion-wineglass:before { content: "\f2b9"; } 1219 | 1220 | .ion-woman:before { content: "\f25d"; } 1221 | 1222 | .ion-wrench:before { content: "\f2ba"; } 1223 | 1224 | .ion-xbox:before { content: "\f30c"; } 1225 | -------------------------------------------------------------------------------- /lib/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipshurpik/Framework7-MVC-base/0d0058e7cf75a312f724ccb693febf5683ace1dd/lib/fonts/ionicons.eot -------------------------------------------------------------------------------- /lib/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipshurpik/Framework7-MVC-base/0d0058e7cf75a312f724ccb693febf5683ace1dd/lib/fonts/ionicons.ttf -------------------------------------------------------------------------------- /lib/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/philipshurpik/Framework7-MVC-base/0d0058e7cf75a312f724ccb693febf5683ace1dd/lib/fonts/ionicons.woff -------------------------------------------------------------------------------- /lib/hbs.js: -------------------------------------------------------------------------------- 1 | define(["handlebars"], function (Handlebars) { 2 | Handlebars = Handlebars || this.Handlebars; 3 | var templateExtension = ".hbs"; 4 | 5 | return { 6 | 7 | pluginBuilder: "./hbs-builder", 8 | 9 | // http://requirejs.org/docs/plugins.html#apiload 10 | load: function (name, parentRequire, onload, config) { 11 | 12 | // Get the template extension. 13 | var ext = (config.hbs && config.hbs.templateExtension ? config.hbs.templateExtension : templateExtension); 14 | 15 | // In browsers use the text-plugin to the load template. This way we 16 | // don't have to deal with ajax stuff 17 | parentRequire(["text!" + name + ext], function (raw) { 18 | // Just return the compiled template 19 | onload(Handlebars.compile(raw)); 20 | }); 21 | 22 | } 23 | 24 | }; 25 | }); 26 | -------------------------------------------------------------------------------- /lib/text.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license RequireJS text 2.0.12 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved. 3 | * Available via the MIT or new BSD license. 4 | * see: http://github.com/requirejs/text for details 5 | */ 6 | /*jslint regexp: true */ 7 | /*global require, XMLHttpRequest, ActiveXObject, 8 | define, window, process, Packages, 9 | java, location, Components, FileUtils */ 10 | 11 | define(['module'], function (module) { 12 | 'use strict'; 13 | 14 | var text, fs, Cc, Ci, xpcIsWindows, 15 | progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'], 16 | xmlRegExp = /^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im, 17 | bodyRegExp = /]*>\s*([\s\S]+)\s*<\/body>/im, 18 | hasLocation = typeof location !== 'undefined' && location.href, 19 | defaultProtocol = hasLocation && location.protocol && location.protocol.replace(/\:/, ''), 20 | defaultHostName = hasLocation && location.hostname, 21 | defaultPort = hasLocation && (location.port || undefined), 22 | buildMap = {}, 23 | masterConfig = (module.config && module.config()) || {}; 24 | 25 | text = { 26 | version: '2.0.12', 27 | 28 | strip: function (content) { 29 | //Strips declarations so that external SVG and XML 30 | //documents can be added to a document without worry. Also, if the string 31 | //is an HTML document, only the part inside the body tag is returned. 32 | if (content) { 33 | content = content.replace(xmlRegExp, ""); 34 | var matches = content.match(bodyRegExp); 35 | if (matches) { 36 | content = matches[1]; 37 | } 38 | } else { 39 | content = ""; 40 | } 41 | return content; 42 | }, 43 | 44 | jsEscape: function (content) { 45 | return content.replace(/(['\\])/g, '\\$1') 46 | .replace(/[\f]/g, "\\f") 47 | .replace(/[\b]/g, "\\b") 48 | .replace(/[\n]/g, "\\n") 49 | .replace(/[\t]/g, "\\t") 50 | .replace(/[\r]/g, "\\r") 51 | .replace(/[\u2028]/g, "\\u2028") 52 | .replace(/[\u2029]/g, "\\u2029"); 53 | }, 54 | 55 | createXhr: masterConfig.createXhr || function () { 56 | //Would love to dump the ActiveX crap in here. Need IE 6 to die first. 57 | var xhr, i, progId; 58 | if (typeof XMLHttpRequest !== "undefined") { 59 | return new XMLHttpRequest(); 60 | } else if (typeof ActiveXObject !== "undefined") { 61 | for (i = 0; i < 3; i += 1) { 62 | progId = progIds[i]; 63 | try { 64 | xhr = new ActiveXObject(progId); 65 | } catch (e) {} 66 | 67 | if (xhr) { 68 | progIds = [progId]; // so faster next time 69 | break; 70 | } 71 | } 72 | } 73 | 74 | return xhr; 75 | }, 76 | 77 | /** 78 | * Parses a resource name into its component parts. Resource names 79 | * look like: module/name.ext!strip, where the !strip part is 80 | * optional. 81 | * @param {String} name the resource name 82 | * @returns {Object} with properties "moduleName", "ext" and "strip" 83 | * where strip is a boolean. 84 | */ 85 | parseName: function (name) { 86 | var modName, ext, temp, 87 | strip = false, 88 | index = name.indexOf("."), 89 | isRelative = name.indexOf('./') === 0 || 90 | name.indexOf('../') === 0; 91 | 92 | if (index !== -1 && (!isRelative || index > 1)) { 93 | modName = name.substring(0, index); 94 | ext = name.substring(index + 1, name.length); 95 | } else { 96 | modName = name; 97 | } 98 | 99 | temp = ext || modName; 100 | index = temp.indexOf("!"); 101 | if (index !== -1) { 102 | //Pull off the strip arg. 103 | strip = temp.substring(index + 1) === "strip"; 104 | temp = temp.substring(0, index); 105 | if (ext) { 106 | ext = temp; 107 | } else { 108 | modName = temp; 109 | } 110 | } 111 | 112 | return { 113 | moduleName: modName, 114 | ext: ext, 115 | strip: strip 116 | }; 117 | }, 118 | 119 | xdRegExp: /^((\w+)\:)?\/\/([^\/\\]+)/, 120 | 121 | /** 122 | * Is an URL on another domain. Only works for browser use, returns 123 | * false in non-browser environments. Only used to know if an 124 | * optimized .js version of a text resource should be loaded 125 | * instead. 126 | * @param {String} url 127 | * @returns Boolean 128 | */ 129 | useXhr: function (url, protocol, hostname, port) { 130 | var uProtocol, uHostName, uPort, 131 | match = text.xdRegExp.exec(url); 132 | if (!match) { 133 | return true; 134 | } 135 | uProtocol = match[2]; 136 | uHostName = match[3]; 137 | 138 | uHostName = uHostName.split(':'); 139 | uPort = uHostName[1]; 140 | uHostName = uHostName[0]; 141 | 142 | return (!uProtocol || uProtocol === protocol) && 143 | (!uHostName || uHostName.toLowerCase() === hostname.toLowerCase()) && 144 | ((!uPort && !uHostName) || uPort === port); 145 | }, 146 | 147 | finishLoad: function (name, strip, content, onLoad) { 148 | content = strip ? text.strip(content) : content; 149 | if (masterConfig.isBuild) { 150 | buildMap[name] = content; 151 | } 152 | onLoad(content); 153 | }, 154 | 155 | load: function (name, req, onLoad, config) { 156 | //Name has format: some.module.filext!strip 157 | //The strip part is optional. 158 | //if strip is present, then that means only get the string contents 159 | //inside a body tag in an HTML string. For XML/SVG content it means 160 | //removing the declarations so the content can be inserted 161 | //into the current doc without problems. 162 | 163 | // Do not bother with the work if a build and text will 164 | // not be inlined. 165 | if (config && config.isBuild && !config.inlineText) { 166 | onLoad(); 167 | return; 168 | } 169 | 170 | masterConfig.isBuild = config && config.isBuild; 171 | 172 | var parsed = text.parseName(name), 173 | nonStripName = parsed.moduleName + 174 | (parsed.ext ? '.' + parsed.ext : ''), 175 | url = req.toUrl(nonStripName), 176 | useXhr = (masterConfig.useXhr) || 177 | text.useXhr; 178 | 179 | // Do not load if it is an empty: url 180 | if (url.indexOf('empty:') === 0) { 181 | onLoad(); 182 | return; 183 | } 184 | 185 | //Load the text. Use XHR if possible and in a browser. 186 | if (!hasLocation || useXhr(url, defaultProtocol, defaultHostName, defaultPort)) { 187 | text.get(url, function (content) { 188 | text.finishLoad(name, parsed.strip, content, onLoad); 189 | }, function (err) { 190 | if (onLoad.error) { 191 | onLoad.error(err); 192 | } 193 | }); 194 | } else { 195 | //Need to fetch the resource across domains. Assume 196 | //the resource has been optimized into a JS module. Fetch 197 | //by the module name + extension, but do not include the 198 | //!strip part to avoid file system issues. 199 | req([nonStripName], function (content) { 200 | text.finishLoad(parsed.moduleName + '.' + parsed.ext, 201 | parsed.strip, content, onLoad); 202 | }); 203 | } 204 | }, 205 | 206 | write: function (pluginName, moduleName, write, config) { 207 | if (buildMap.hasOwnProperty(moduleName)) { 208 | var content = text.jsEscape(buildMap[moduleName]); 209 | write.asModule(pluginName + "!" + moduleName, 210 | "define(function () { return '" + 211 | content + 212 | "';});\n"); 213 | } 214 | }, 215 | 216 | writeFile: function (pluginName, moduleName, req, write, config) { 217 | var parsed = text.parseName(moduleName), 218 | extPart = parsed.ext ? '.' + parsed.ext : '', 219 | nonStripName = parsed.moduleName + extPart, 220 | //Use a '.js' file name so that it indicates it is a 221 | //script that can be loaded across domains. 222 | fileName = req.toUrl(parsed.moduleName + extPart) + '.js'; 223 | 224 | //Leverage own load() method to load plugin value, but only 225 | //write out values that do not have the strip argument, 226 | //to avoid any potential issues with ! in file names. 227 | text.load(nonStripName, req, function (value) { 228 | //Use own write() method to construct full module value. 229 | //But need to create shell that translates writeFile's 230 | //write() to the right interface. 231 | var textWrite = function (contents) { 232 | return write(fileName, contents); 233 | }; 234 | textWrite.asModule = function (moduleName, contents) { 235 | return write.asModule(moduleName, fileName, contents); 236 | }; 237 | 238 | text.write(pluginName, nonStripName, textWrite, config); 239 | }, config); 240 | } 241 | }; 242 | 243 | if (masterConfig.env === 'node' || (!masterConfig.env && 244 | typeof process !== "undefined" && 245 | process.versions && 246 | !!process.versions.node && 247 | !process.versions['node-webkit'])) { 248 | //Using special require.nodeRequire, something added by r.js. 249 | fs = require.nodeRequire('fs'); 250 | 251 | text.get = function (url, callback, errback) { 252 | try { 253 | var file = fs.readFileSync(url, 'utf8'); 254 | //Remove BOM (Byte Mark Order) from utf8 files if it is there. 255 | if (file.indexOf('\uFEFF') === 0) { 256 | file = file.substring(1); 257 | } 258 | callback(file); 259 | } catch (e) { 260 | if (errback) { 261 | errback(e); 262 | } 263 | } 264 | }; 265 | } else if (masterConfig.env === 'xhr' || (!masterConfig.env && 266 | text.createXhr())) { 267 | text.get = function (url, callback, errback, headers) { 268 | var xhr = text.createXhr(), header; 269 | xhr.open('GET', url, true); 270 | 271 | //Allow plugins direct access to xhr headers 272 | if (headers) { 273 | for (header in headers) { 274 | if (headers.hasOwnProperty(header)) { 275 | xhr.setRequestHeader(header.toLowerCase(), headers[header]); 276 | } 277 | } 278 | } 279 | 280 | //Allow overrides specified in config 281 | if (masterConfig.onXhr) { 282 | masterConfig.onXhr(xhr, url); 283 | } 284 | 285 | xhr.onreadystatechange = function (evt) { 286 | var status, err; 287 | //Do not explicitly handle errors, those should be 288 | //visible via console output in the browser. 289 | if (xhr.readyState === 4) { 290 | status = xhr.status || 0; 291 | if (status > 399 && status < 600) { 292 | //An http 4xx or 5xx error. Signal an error. 293 | err = new Error(url + ' HTTP status: ' + status); 294 | err.xhr = xhr; 295 | if (errback) { 296 | errback(err); 297 | } 298 | } else { 299 | callback(xhr.responseText); 300 | } 301 | 302 | if (masterConfig.onXhrComplete) { 303 | masterConfig.onXhrComplete(xhr, url); 304 | } 305 | } 306 | }; 307 | xhr.send(null); 308 | }; 309 | } else if (masterConfig.env === 'rhino' || (!masterConfig.env && 310 | typeof Packages !== 'undefined' && typeof java !== 'undefined')) { 311 | //Why Java, why is this so awkward? 312 | text.get = function (url, callback) { 313 | var stringBuffer, line, 314 | encoding = "utf-8", 315 | file = new java.io.File(url), 316 | lineSeparator = java.lang.System.getProperty("line.separator"), 317 | input = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(file), encoding)), 318 | content = ''; 319 | try { 320 | stringBuffer = new java.lang.StringBuffer(); 321 | line = input.readLine(); 322 | 323 | // Byte Order Mark (BOM) - The Unicode Standard, version 3.0, page 324 324 | // http://www.unicode.org/faq/utf_bom.html 325 | 326 | // Note that when we use utf-8, the BOM should appear as "EF BB BF", but it doesn't due to this bug in the JDK: 327 | // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4508058 328 | if (line && line.length() && line.charAt(0) === 0xfeff) { 329 | // Eat the BOM, since we've already found the encoding on this file, 330 | // and we plan to concatenating this buffer with others; the BOM should 331 | // only appear at the top of a file. 332 | line = line.substring(1); 333 | } 334 | 335 | if (line !== null) { 336 | stringBuffer.append(line); 337 | } 338 | 339 | while ((line = input.readLine()) !== null) { 340 | stringBuffer.append(lineSeparator); 341 | stringBuffer.append(line); 342 | } 343 | //Make sure we return a JavaScript string and not a Java string. 344 | content = String(stringBuffer.toString()); //String 345 | } finally { 346 | input.close(); 347 | } 348 | callback(content); 349 | }; 350 | } else if (masterConfig.env === 'xpconnect' || (!masterConfig.env && 351 | typeof Components !== 'undefined' && Components.classes && 352 | Components.interfaces)) { 353 | //Avert your gaze! 354 | Cc = Components.classes; 355 | Ci = Components.interfaces; 356 | Components.utils['import']('resource://gre/modules/FileUtils.jsm'); 357 | xpcIsWindows = ('@mozilla.org/windows-registry-key;1' in Cc); 358 | 359 | text.get = function (url, callback) { 360 | var inStream, convertStream, fileObj, 361 | readData = {}; 362 | 363 | if (xpcIsWindows) { 364 | url = url.replace(/\//g, '\\'); 365 | } 366 | 367 | fileObj = new FileUtils.File(url); 368 | 369 | //XPCOM, you so crazy 370 | try { 371 | inStream = Cc['@mozilla.org/network/file-input-stream;1'] 372 | .createInstance(Ci.nsIFileInputStream); 373 | inStream.init(fileObj, 1, 0, false); 374 | 375 | convertStream = Cc['@mozilla.org/intl/converter-input-stream;1'] 376 | .createInstance(Ci.nsIConverterInputStream); 377 | convertStream.init(inStream, "utf-8", inStream.available(), 378 | Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER); 379 | 380 | convertStream.readString(inStream.available(), readData); 381 | convertStream.close(); 382 | inStream.close(); 383 | callback(readData.value); 384 | } catch (e) { 385 | throw new Error((fileObj && fileObj.path || '') + ': ' + e); 386 | } 387 | }; 388 | } 389 | return text; 390 | }); 391 | --------------------------------------------------------------------------------