├── assets ├── img │ ├── IDM_Logo.png │ ├── chatIcon.png │ ├── botAvatar.png │ ├── userAvatar.jpg │ ├── userAvatar.png │ ├── botAvatar_BOT.png │ ├── botAvatar_old.png │ ├── botAvatar_Sara.png │ ├── botAvatar_chef.png │ ├── botAvatar_rasa.png │ └── userAvatar_blond.png ├── css │ ├── main.css │ ├── style.css │ ├── style_full.css │ └── materialize.min.css └── js │ ├── script.js │ └── script_full.js ├── .gitignore ├── README.md └── index.html /assets/img/IDM_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ChrisRahme/FYP-Webapp/HEAD/assets/img/IDM_Logo.png -------------------------------------------------------------------------------- /assets/img/chatIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ChrisRahme/FYP-Webapp/HEAD/assets/img/chatIcon.png -------------------------------------------------------------------------------- /assets/img/botAvatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ChrisRahme/FYP-Webapp/HEAD/assets/img/botAvatar.png -------------------------------------------------------------------------------- /assets/img/userAvatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ChrisRahme/FYP-Webapp/HEAD/assets/img/userAvatar.jpg -------------------------------------------------------------------------------- /assets/img/userAvatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ChrisRahme/FYP-Webapp/HEAD/assets/img/userAvatar.png -------------------------------------------------------------------------------- /assets/img/botAvatar_BOT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ChrisRahme/FYP-Webapp/HEAD/assets/img/botAvatar_BOT.png -------------------------------------------------------------------------------- /assets/img/botAvatar_old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ChrisRahme/FYP-Webapp/HEAD/assets/img/botAvatar_old.png -------------------------------------------------------------------------------- /assets/img/botAvatar_Sara.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ChrisRahme/FYP-Webapp/HEAD/assets/img/botAvatar_Sara.png -------------------------------------------------------------------------------- /assets/img/botAvatar_chef.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ChrisRahme/FYP-Webapp/HEAD/assets/img/botAvatar_chef.png -------------------------------------------------------------------------------- /assets/img/botAvatar_rasa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ChrisRahme/FYP-Webapp/HEAD/assets/img/botAvatar_rasa.png -------------------------------------------------------------------------------- /assets/img/userAvatar_blond.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ChrisRahme/FYP-Webapp/HEAD/assets/img/userAvatar_blond.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Folders 2 | .old/ 3 | #chat/lib/config.php 4 | nbproject/* 5 | __pycache__/ 6 | 7 | # Files in folders 8 | 9 | # Files 10 | .cache 11 | .DS_store 12 | .vscode 13 | yarn-error.log 14 | 15 | # 16 | dist 17 | node_modules 18 | package.json 19 | package-lock.json 20 | .eslintrc.json 21 | .prettierrc 22 | -------------------------------------------------------------------------------- /assets/css/main.css: -------------------------------------------------------------------------------- 1 | html { 2 | font-size: 14px; 3 | font-family: sans-serif; 4 | display: block; 5 | 6 | -webkit-text-size-adjust: 100%; 7 | -ms-text-size-adjust: 100%; 8 | -webkit-font-smoothing: antialiased; 9 | -moz-osx-font-smoothing: grayscale; 10 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 11 | } 12 | 13 | body { 14 | font-family: "Open Sans", sans-serif; 15 | font-size: 14px; 16 | color: #4d4b4b; 17 | line-height: 1.6; 18 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![CodeFactor](https://www.codefactor.io/repository/github/chrisrahme/fyp-webapp/badge)](https://www.codefactor.io/repository/github/chrisrahme/fyp-webapp) 2 | ![Size](https://img.shields.io/github/languages/code-size/chrisrahme/fyp-webapp) 3 | 4 | [Chatbot](https://github.com/ChrisRahme/fyp-chatbot) | [Web Widget](https://github.com/ChrisRahme/fyp-webapp) | [Mobile App](https://github.com/ChrisRahme/fyp-mobapp) 5 | 6 | Based on [JiteshGaikwad/ChatbotWidget](https://github.com/JiteshGaikwad/ChatbotWidget). 7 | 8 | This is a web widget used to communicate with a Rasa Server. 9 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Chatbot Widget 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |

rasa run actions --cors "*"

32 |

rasa run --enable-api --cors "*" --debug

33 | 34 |
35 | 36 | 39 | 40 | 41 |
42 |
43 | 44 | 45 | close 46 | 47 | IDM Chatbot 48 | 49 | menu 50 | 51 | 52 | 53 | 59 |
60 | 61 | 62 |
63 |
64 |
65 | 66 | 67 |
68 | 69 |
70 |
71 |
72 |
73 | 74 | 75 |
76 | 77 |
78 |
79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /assets/css/style.css: -------------------------------------------------------------------------------- 1 | /* =============== Chats =============== */ 2 | 3 | .chat_widget { 4 | display: none; 5 | width: 25vw; 6 | height: 80vh; 7 | min-height: 300px; 8 | min-width: 400px; 9 | right: 15px; 10 | bottom: 15px; 11 | position: fixed; 12 | background: #FFFFFF; 13 | border-radius: 10px; 14 | box-shadow: 0 0px 1px 0 rgba(0, 0, 0, 0.16), 0 0px 5px 0 #00000096; 15 | } 16 | 17 | .chat_header { 18 | height: 60px; 19 | background: #060DCF; 20 | text-align: center; 21 | border-radius: 10px 10px 0px 0px; 22 | padding: 10px; 23 | font-size: 20px; 24 | } 25 | 26 | .chat_header_title { 27 | position: absolute; 28 | margin: 0; 29 | color: white; 30 | -ms-transform: translate(-65%, 15%); 31 | transform: translate(-65%, 15%); 32 | } 33 | 34 | .chats { 35 | height: calc(80vh - 110px); /* = chat_widget.height - 110 */ 36 | min-height: calc(300px - 110px); 37 | padding: 5px 5px 0px 5px; 38 | overflow-y: scroll; 39 | transition: 0.2s; 40 | } 41 | 42 | div.chats::-webkit-scrollbar { 43 | overflow-y: hidden; 44 | width: 2px; 45 | /*background: transparent;*/ 46 | } 47 | 48 | .chat_widget .clearfix { 49 | margin-top: 2px; 50 | margin-bottom: 2px; 51 | } 52 | 53 | .chat_widget textarea { 54 | box-shadow: none; 55 | resize: none; 56 | outline: none; 57 | overflow: hidden; 58 | } 59 | 60 | .chat_widget textarea-webkit-scrollbar { 61 | width: 0 !important; 62 | } 63 | 64 | .botAvatar, .userAvatar { 65 | border-radius: 50%; 66 | width: 1.5em; 67 | height: 1.5em; 68 | } 69 | 70 | .botAvatar { 71 | float: left; 72 | margin-left: 5px; 73 | } 74 | 75 | .userAvatar { 76 | float: right; 77 | margin-right: 5px; 78 | animation: animateElement linear 0.2s; 79 | animation-iteration-count: 1; 80 | } 81 | 82 | .botMsg, .userMsg, .botTyping { 83 | padding: 10px; 84 | margin: 5px; 85 | word-wrap: break-word; 86 | font-size: 13px; 87 | max-width: 85%; 88 | min-width: 5%; 89 | } 90 | 91 | .botMsg, .botTyping { 92 | float: left; 93 | background: #E3E7EE; 94 | color: #000000; 95 | margin-left: 0.5em; 96 | border-radius: 5px 20px 20px 20px; 97 | } 98 | 99 | .userMsg { 100 | float: right; 101 | background: #060DCF; 102 | color: #FFFFFF; 103 | margin-right: 0.5em; 104 | border-radius: 20px 5px 20px 20px; 105 | animation: animateElement linear 0.2s; 106 | animation-iteration-count: 1; 107 | } 108 | 109 | .usrInput { 110 | padding: 0.8em 0em; 111 | font-size: 1em; 112 | width: 85%; 113 | margin: 0 0 0 2%; 114 | border: 0; 115 | height: 40px; 116 | } 117 | 118 | .keypad { 119 | background: white; 120 | height: 50px; 121 | position: absolute; 122 | bottom: 0px; 123 | width: 100%; 124 | padding: 5px; 125 | border-radius: 0px 0px 10px 10px; 126 | border-top: 1px solid #E3E7EE; 127 | } 128 | 129 | #sendButton { 130 | float: right; 131 | margin-right: 2%; 132 | border-radius: 100%; 133 | text-align: center; 134 | font-size: 25px; 135 | cursor: pointer; 136 | color: #060DCF; 137 | transform: translate(0, 25%); 138 | } 139 | 140 | .imgProfile { 141 | float: right; 142 | box-shadow: 0 0px 1px 0 rgba(0, 0, 0, 0.16), 0 0px 10px 0 #00000096; 143 | border-radius: 100%; 144 | width: 4vw; 145 | } 146 | 147 | .profile_div { 148 | position: fixed; 149 | padding: 15px; 150 | bottom: 0; 151 | right: 0; 152 | cursor: pointer; 153 | } 154 | 155 | /* Dropdown menu */ 156 | 157 | .close-trigger { 158 | cursor: pointer; 159 | color: white; 160 | margin-left: 5px; 161 | float: left; 162 | transform: translate(0, 35%); 163 | } 164 | 165 | .dropdown-trigger { 166 | cursor: pointer; 167 | color: white; 168 | margin-right: 5px; 169 | float: right; 170 | transform: translate(0, 35%); 171 | } 172 | 173 | #dropdown1 { 174 | width: 140px !important; 175 | } 176 | 177 | .dropdown-content li > a, 178 | .dropdown-content li > span { 179 | cursor: pointer; 180 | color: #060DCF; 181 | } 182 | 183 | @keyframes animateElement { 184 | 0% { 185 | opacity: 0; 186 | transform: translate(0px, 10px); 187 | } 100% { 188 | opacity: 1; 189 | transform: translate(0px, 0px); 190 | } 191 | } 192 | 193 | /* ============= Chat elements ============= */ 194 | 195 | /* Single card */ 196 | 197 | .singleCard { 198 | padding-left: calc(12px + 1.5em); 199 | padding-right: calc(12px + 1.5em); 200 | margin-bottom: 5px; 201 | } 202 | 203 | /* Image card */ 204 | 205 | .imgcard { 206 | object-fit: cover; 207 | width: 85%; 208 | border-radius: 10px; 209 | margin-bottom: 5px; 210 | } 211 | 212 | /* Suggestion buttons */ 213 | 214 | .menu { 215 | display: flex; 216 | flex-wrap: wrap; 217 | } 218 | 219 | .suggestions { 220 | background: #FFFFFF; 221 | } 222 | 223 | .menuTitle { 224 | padding: 5px; 225 | margin-top: 5px; 226 | margin-bottom: 5px; 227 | } 228 | 229 | .menuChips { 230 | display: block; 231 | background: #A0B4D5; 232 | color: #FFFFFF; 233 | padding: 5px; 234 | margin-bottom: 6px; 235 | border-radius: 15px; 236 | text-align: center; 237 | font-size: 14px; 238 | cursor: pointer; 239 | word-wrap: break-word; 240 | flex: 45%; 241 | } 242 | 243 | .menuChips:hover { 244 | background: #6888bc; 245 | } 246 | 247 | .menuChips:active { 248 | background: #3961a2; 249 | } 250 | 251 | .menu > .menuChips:nth-child(2n) { 252 | margin-left: 3px; 253 | } 254 | 255 | .menu > .menuChips:nth-child(2n+1) { 256 | margin-right: 3px; 257 | } 258 | 259 | .menu > .menuChips:last-child, .menu > .menuChips:nth-last-child(2):nth-child(2n+1) { 260 | margin-bottom: 0; 261 | } 262 | 263 | /* Bot typing */ 264 | 265 | .botTyping { /* Same as .botMsg above */ 266 | color: #000000 267 | } 268 | 269 | .botTyping > div { 270 | width: 10px; 271 | height: 10px; 272 | background-color: #060dcf; 273 | border-radius: 100%; 274 | display: inline-block; 275 | -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both; 276 | animation: sk-bouncedelay 1.4s infinite ease-in-out both; 277 | margin-right: 5px; 278 | } 279 | 280 | .botTyping .bounce1 { 281 | -webkit-animation-delay: -0.32s; 282 | animation-delay: -0.32s; 283 | } 284 | 285 | .botTyping .bounce2 { 286 | -webkit-animation-delay: -0.16s; 287 | animation-delay: -0.16s; 288 | } 289 | 290 | @-webkit-keyframes sk-bouncedelay { 291 | 0%, 292 | 80%, 293 | 100% { 294 | -webkit-transform: scale(0); 295 | } 296 | 40% { 297 | -webkit-transform: scale(1); 298 | } 299 | } 300 | 301 | @keyframes sk-bouncedelay { 302 | 0%, 303 | 80%, 304 | 100% { 305 | -webkit-transform: scale(0); 306 | transform: scale(0); 307 | } 308 | 40% { 309 | -webkit-transform: scale(1); 310 | transform: scale(1); 311 | } 312 | } -------------------------------------------------------------------------------- /assets/js/script.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable max-len */ 2 | /* eslint-disable linebreak-style */ 3 | /* eslint-disable no-undef */ 4 | /* eslint-disable operator-linebreak */ 5 | /* eslint-disable no-console */ 6 | /* eslint-disable camelcase */ 7 | 8 | const rasa_action_endpoint_url = "http://localhost:5055/webhook"; 9 | const rasa_server_url = "http://localhost:5005/webhooks/rest/webhook"; 10 | //const IP = "194.126.17.114"; 11 | //const rasa_action_endpoint_url = `http://${IP}/webhook`; 12 | //const rasa_server_url = `http://${IP}/webhooks/rest/webhook`; 13 | //const handoff_server_url = `http://${IP}/webhooks/rest/webhook`; // UNUSED Human handoff 14 | 15 | const botPic = "./assets/img/botAvatar.png"; 16 | const userPic = "./assets/img/userAvatar.png"; 17 | 18 | const action_name = "action_utter_greet"; 19 | const sender_id = "W-" + uuidv4(); 20 | 21 | // var handoff = false; UNUSED Human handoff 22 | 23 | 24 | 25 | // Initialization 26 | $(document).ready(() => { 27 | // Dropdown menu 28 | $(".dropdown-trigger").dropdown(); 29 | 30 | // If the bot starts the conversation 31 | showBotTyping(); 32 | $("#userInput").prop("disabled", true); 33 | customActionTrigger(); 34 | }); 35 | 36 | 37 | 38 | /** 39 | * Scrolls to the bottom of the conversation after new message 40 | */ 41 | function scrollToBottomOfChat() { 42 | const chats = document.getElementById("chats"); 43 | chats.scrollTop = chats.scrollHeight; 44 | } 45 | 46 | /** 47 | * Removes the bot typing indicator from the chat screen 48 | */ 49 | function hideBotTyping() { 50 | $("#botAvatar").remove(); 51 | $(".botTyping").remove(); 52 | } 53 | 54 | /** 55 | * Adds the bot typing indicator to the chat screen 56 | */ 57 | function showBotTyping() { 58 | const botTyping = ` 59 | 60 |
61 |
62 |
63 |
64 |
`; 65 | $(botTyping).appendTo(".chats"); 66 | $(".botTyping").show(); 67 | scrollToBottomOfChat(); 68 | } 69 | 70 | /** 71 | * Sets user response on the chat screen 72 | * @param {String} message user message 73 | */ 74 | function setUserResponse(message) { 75 | const user_response = ` 76 | 77 |

${message}

78 |
`; 79 | $(user_response).appendTo(".chats").show("fast"); 80 | 81 | $(".usrInput").val(""); '' 82 | scrollToBottomOfChat(); 83 | showBotTyping(); 84 | //$(".suggestions").remove(); 85 | } 86 | 87 | /** 88 | * Adds buttons as a bot response 89 | * @param {Array} suggestions buttons json array 90 | */ 91 | function addSuggestion(suggestions) { 92 | setTimeout(() => { 93 | $('
') 94 | .appendTo(".chats").hide().fadeIn(500); 95 | 96 | for (let i = 0; i < suggestions.length; i += 1) { 97 | $(``) 98 | .appendTo("#chats .singleCard:last-of-type .suggestions .menu"); 99 | } 100 | 101 | //$("#userInput").prop('disabled', true); 102 | scrollToBottomOfChat(); 103 | }, 500); 104 | } 105 | 106 | /** 107 | * Renders bot response on to the chat screen (https://rasa.com/docs/rasa/connectors/your-own-website#request-and-response-format) 108 | * @param {Array} response json array containing different types of bot response 109 | */ 110 | function setBotResponse(response) { 111 | console.log(response); 112 | const fadeTime = 500; 113 | const timeoutTime = 1500; 114 | 115 | setTimeout(() => { 116 | hideBotTyping(); 117 | 118 | if (response.length < 1) { // There is no response from Rasa 119 | const fallbackMsg = "I am facing some issues, please try again later."; 120 | const BotResponse = ` 121 | 122 |

${fallbackMsg}

123 |
`; 124 | 125 | $(BotResponse).appendTo(".chats").hide().fadeIn(fadeTime); 126 | scrollToBottomOfChat(); 127 | } else { // Response received from Rasa 128 | for (let i = 0; i < response.length; i += 1) { 129 | if (Object.hasOwnProperty.call(response[i], "text")) { // Response contains "text" 130 | if (response[i].text != null) { 131 | var formatted_text = response[i].text.replace(/(?:\r\n|\r|\n)/g, '
') 132 | const BotResponse = ` 133 | 134 |

${formatted_text}

135 |
`; 136 | $(BotResponse).appendTo(".chats").hide().fadeIn(fadeTime); 137 | } 138 | } 139 | 140 | if (Object.hasOwnProperty.call(response[i], "image")) { // Response contains "images" 141 | if (response[i].image !== null) { 142 | const BotResponse = ` 143 |
144 | 145 |
`; 146 | $(BotResponse).appendTo(".chats").hide().fadeIn(fadeTime); 147 | } 148 | } 149 | 150 | if (Object.hasOwnProperty.call(response[i], "buttons")) { // Response contains "buttons" 151 | if (response[i].buttons.length > 0) { 152 | addSuggestion(response[i].buttons); 153 | } 154 | } 155 | } 156 | scrollToBottomOfChat(); 157 | } 158 | }, timeoutTime); 159 | } 160 | 161 | /** 162 | * Sends an event to the bot, so that bot can start the conversation with it 163 | */ 164 | // eslint-disable-next-line no-unused-vars 165 | function customActionTrigger() { 166 | send("Hello"); 167 | $("#userInput").prop('disabled', false); 168 | /*$.ajax({ 169 | url: rasa_action_endpoint_url, 170 | type: "POST", 171 | contentType: "application/json", 172 | data: JSON.stringify({next_action: action_name, tracker: {sender_id}}), 173 | success(botResponse, status) { 174 | if (Object.hasOwnProperty.call(botResponse, "responses")) { 175 | setBotResponse(botResponse.responses); 176 | console.log(JSON.stringify(botResponse)); 177 | } 178 | $("#userInput").prop("disabled", false); 179 | }, 180 | error(xhr, textStatus) { 181 | setBotResponse(""); 182 | console.log("Error from bot end: ", textStatus); 183 | $("#userInput").prop("disabled", false); 184 | }, 185 | });*/ 186 | } 187 | 188 | /** 189 | * Sends the user message to the Rasa server 190 | * @param {String} message user message 191 | */ 192 | function send(message) { 193 | // server_url = handoff ? handoff_server_url : rasa_server_url; // UNUSED Human handoff 194 | server_url = rasa_server_url; 195 | 196 | $.ajax({ 197 | url: server_url, 198 | type: "POST", 199 | contentType: "application/json", 200 | data: JSON.stringify({message, sender: sender_id}), 201 | success(botResponse, status) { 202 | if (message.toLowerCase() === "/restart") { // Restart and clear chat 203 | $("#userInput").prop("disabled", false); 204 | customActionTrigger(); 205 | return; 206 | } /*else if (message.toLowerCase() === "/handoff") { // UNUSED Human handoff 207 | handoff = true; 208 | setBotResponse([{"text": "A human will be with you shortly."}]) 209 | return; 210 | }*/ 211 | setBotResponse(botResponse); 212 | console.log("Success from bot's end:"); 213 | }, 214 | error(xhr, textStatus) { 215 | setBotResponse(''); 216 | console.log("Error from bot's end: " + textStatus); 217 | }, 218 | }); 219 | } 220 | 221 | /** 222 | * Clears the conversation from the chat screen and sends the `/restart` event to the Rasa server 223 | */ 224 | function restartConversation() { 225 | $("#userInput").prop("disabled", true); 226 | $(".collapsible").remove(); 227 | 228 | $(".chats").html(""); 229 | $(".usrInput").val(""); 230 | send("/restart"); 231 | } 232 | 233 | /** 234 | * Sends the `/request_human` intent to the Rasa server 235 | */ 236 | function requestHuman() { 237 | setUserResponse("I request human assistance.") 238 | send("/request_human"); 239 | } 240 | 241 | 242 | 243 | // User presses Enter key 244 | $(".usrInput").on("keyup keypress", (e) => { 245 | const keyCode = e.keyCode || e.which; 246 | const text = $(".usrInput").val(); 247 | 248 | if (keyCode === 13) { 249 | if (text === "" || $.trim(text) === "") { 250 | e.preventDefault(); 251 | return false; 252 | } 253 | 254 | //$(".suggestions").remove(); 255 | $(".usrInput").blur(); 256 | 257 | setUserResponse(text); 258 | send(text); 259 | e.preventDefault(); 260 | return false; 261 | } 262 | return true; 263 | }); 264 | 265 | // User presses the "Send" button 266 | $("#sendButton").on("click", (e) => { 267 | const text = $(".usrInput").val(); 268 | 269 | if (text === "" || $.trim(text) === "") { 270 | e.preventDefault(); 271 | return false; 272 | } 273 | 274 | //$(".suggestions").remove(); 275 | $(".usrInput").blur(); 276 | 277 | setUserResponse(text); 278 | send(text); 279 | e.preventDefault(); 280 | return false; 281 | }); 282 | 283 | 284 | 285 | // Toggle the chatbot screen 286 | $("#profile_div").click(() => { 287 | $(".profile_div").toggle(); 288 | $(".chat_widget").toggle(); 289 | }); 290 | 291 | // "Clear" button clears the chat contents 292 | $("#clear-chat").click(() => { 293 | $(".chats").fadeOut("normal", () => { 294 | $(".chats").html(""); 295 | $(".chats").fadeIn(); 296 | }); 297 | }); 298 | 299 | // "Close" button closes the widget 300 | $("#close-chat").click(() => { 301 | $(".profile_div").toggle(); 302 | $(".chat_widget").toggle(); 303 | scrollToBottomOfChat(); 304 | }); 305 | 306 | // "Close" arrow closes the widget 307 | $("#close-chat-arrow").click(() => { 308 | $(".profile_div").toggle(); 309 | $(".chat_widget").toggle(); 310 | scrollToBottomOfChat(); 311 | }); 312 | 313 | // "Restart" button triggers restartConversation function 314 | $("#restart-chat").click(() => { 315 | restartConversation(); 316 | }); 317 | 318 | // "Request Human" button triggers requestHuman function 319 | $("#handoff-chat").click(() => { 320 | requestHuman(); 321 | }); 322 | 323 | 324 | 325 | // On click of the suggestion button, get the title value and send it to Rasa 326 | $(document).on("click", ".menu .menuChips", function () { 327 | const text = this.innerText; 328 | const payload = this.getAttribute("data-payload"); 329 | setUserResponse(text); 330 | send(payload); 331 | //$(".suggestions").remove(); 332 | }); -------------------------------------------------------------------------------- /assets/css/style_full.css: -------------------------------------------------------------------------------- 1 | /* =============== Chats =============== */ 2 | 3 | .chat_widget { 4 | display: none; 5 | width: 25vw; 6 | height: 80vh; 7 | min-height: 300px; 8 | min-width: 400px; 9 | right: 15px; 10 | bottom: 15px; 11 | position: fixed; 12 | background: #FFFFFF; 13 | border-radius: 10px; 14 | box-shadow: 0 0px 1px 0 rgba(0, 0, 0, 0.16), 0 0px 5px 0 #00000096; 15 | } 16 | 17 | .chat_header { 18 | height: 60px; 19 | background: #060DCF; 20 | text-align: center; 21 | border-radius: 10px 10px 0px 0px; 22 | padding: 10px; 23 | font-size: 20px; 24 | } 25 | 26 | .chat_header_title { 27 | position: absolute; 28 | margin: 0; 29 | color: white; 30 | -ms-transform: translate(-65%, 15%); 31 | transform: translate(-65%, 15%); 32 | } 33 | 34 | .chats { 35 | height: calc(80vh - 110px); /* = chat_widget.height - 110 */ 36 | min-height: calc(300px - 110px); 37 | padding: 5px 5px 0px 5px; 38 | overflow-y: scroll; 39 | transition: 0.2s; 40 | } 41 | 42 | div.chats::-webkit-scrollbar { 43 | overflow-y: hidden; 44 | width: 2px; 45 | /*background: transparent;*/ 46 | } 47 | 48 | .chat_widget .clearfix { 49 | margin-top: 2px; 50 | margin-bottom: 2px; 51 | } 52 | 53 | .chat_widget textarea { 54 | box-shadow: none; 55 | resize: none; 56 | outline: none; 57 | overflow: hidden; 58 | } 59 | 60 | .chat_widget textarea-webkit-scrollbar { 61 | width: 0 !important; 62 | } 63 | 64 | .botAvatar, .userAvatar { 65 | border-radius: 50%; 66 | width: 1.5em; 67 | height: 1.5em; 68 | } 69 | 70 | .botAvatar { 71 | float: left; 72 | margin-left: 5px; 73 | } 74 | 75 | .userAvatar { 76 | float: right; 77 | margin-right: 5px; 78 | animation: animateElement linear 0.2s; 79 | animation-iteration-count: 1; 80 | } 81 | 82 | .botMsg, .userMsg, .botTyping { 83 | padding: 10px; 84 | margin: 5px; 85 | word-wrap: break-word; 86 | font-size: 13px; 87 | max-width: 85%; 88 | min-width: 5%; 89 | } 90 | 91 | .botMsg, .botTyping { 92 | float: left; 93 | background: #E3E7EE; 94 | color: #000000; 95 | margin-left: 0.5em; 96 | border-radius: 5px 20px 20px 20px; 97 | } 98 | 99 | .userMsg { 100 | float: right; 101 | background: #060DCF; 102 | color: #FFFFFF; 103 | margin-right: 0.5em; 104 | border-radius: 20px 5px 20px 20px; 105 | animation: animateElement linear 0.2s; 106 | animation-iteration-count: 1; 107 | } 108 | 109 | .usrInput { 110 | padding: 0.8em 0em; 111 | font-size: 1em; 112 | width: 85%; 113 | margin: 0 0 0 2%; 114 | border: 0; 115 | height: 40px; 116 | } 117 | 118 | .keypad { 119 | background: white; 120 | height: 50px; 121 | position: absolute; 122 | bottom: 0px; 123 | width: 100%; 124 | padding: 5px; 125 | border-radius: 0px 0px 10px 10px; 126 | border-top: 1px solid #E3E7EE; 127 | } 128 | 129 | #sendButton { 130 | float: right; 131 | margin-right: 2%; 132 | border-radius: 100%; 133 | text-align: center; 134 | font-size: 25px; 135 | cursor: pointer; 136 | color: #060DCF; 137 | transform: translate(0, 25%); 138 | } 139 | 140 | .imgProfile { 141 | float: right; 142 | box-shadow: 0 0px 1px 0 rgba(0, 0, 0, 0.16), 0 0px 10px 0 #00000096; 143 | border-radius: 100%; 144 | width: 4vw; 145 | } 146 | 147 | .profile_div { 148 | position: fixed; 149 | padding: 15px; 150 | bottom: 0; 151 | right: 0; 152 | cursor: pointer; 153 | } 154 | 155 | /* Dropdown menu */ 156 | 157 | .close-trigger { 158 | cursor: pointer; 159 | color: white; 160 | margin-left: 5px; 161 | float: left; 162 | transform: translate(0, 35%); 163 | } 164 | 165 | .dropdown-trigger { 166 | cursor: pointer; 167 | color: white; 168 | margin-right: 5px; 169 | float: right; 170 | transform: translate(0, 35%); 171 | } 172 | 173 | #dropdown1 { 174 | width: 140px !important; 175 | } 176 | 177 | .dropdown-content li > a, 178 | .dropdown-content li > span { 179 | cursor: pointer; 180 | color: #060DCF; 181 | } 182 | 183 | @keyframes animateElement { 184 | 0% { 185 | opacity: 0; 186 | transform: translate(0px, 10px); 187 | } 100% { 188 | opacity: 1; 189 | transform: translate(0px, 0px); 190 | } 191 | } 192 | 193 | /* ============= Chat elements ============= */ 194 | 195 | /* Card details of carousel cards */ 196 | 197 | .content { 198 | transition: 0.2s; 199 | display: none; 200 | width: 350px; 201 | right: 15px; 202 | height: 500px; 203 | bottom: 5%; 204 | position: fixed; 205 | background: white; 206 | border-radius: 10px 10px 10px 10px; 207 | box-shadow: 0px 2px 10px 1px #b5b5b5; 208 | } 209 | 210 | .content_header { 211 | object-fit: cover; 212 | width: 100%; 213 | height: 40%; 214 | border-radius: 10px 10px 0px 0px; 215 | } 216 | 217 | .content_data { 218 | overflow-y: scroll; 219 | height: 70%; 220 | position: absolute; 221 | left: 0px; 222 | width: 100%; 223 | top: 30%; 224 | z-index: 1000; 225 | border-radius: 10px; 226 | background: white; 227 | padding: 5px; 228 | box-shadow: 0px -1px 20px 3px #9c9393ba; 229 | } 230 | 231 | .content_title { 232 | color: black; 233 | font-weight: 600; 234 | word-wrap: break-word; 235 | padding-left: 5px; 236 | font-size: 1.2em; 237 | width: 80%; 238 | border-radius: 0.28571429rem; 239 | } 240 | 241 | .votes { 242 | font-size: 12px; 243 | color: lightslategray; 244 | } 245 | 246 | .ratings { 247 | margin-top: 5px; 248 | background: #9acd32; 249 | padding: 5px; 250 | color: white; 251 | border-radius: 5px; 252 | } 253 | 254 | .user_ratings { 255 | border-radius: 0.28571429rem; 256 | color: #fff; 257 | font-weight: 600; 258 | font-size: 15px; 259 | } 260 | 261 | .total_ratings { 262 | font-size: 12px; 263 | opacity: 0.5; 264 | margin-left: 5px; 265 | } 266 | 267 | .content_data > .row .col { 268 | padding: 5px; 269 | } 270 | 271 | .metadata_1, .metadata_2, .metadata_3, .metadata_4, .row { 272 | margin-bottom: 0px; 273 | } 274 | 275 | .metadata_1, .metadata_2, .metadata_3, .metadata_4, .metadata_5, .metadata_6 { 276 | color: lightslategrey; 277 | padding: 5px; 278 | } 279 | 280 | .order, #closeContents { 281 | color: #060DCF; 282 | } 283 | 284 | .average_cost, .timings, .location, .cuisines { 285 | width: 70%; 286 | float: right; 287 | margin-right: 25%; 288 | } 289 | 290 | .fa .fa-user-o { 291 | font-size: 15px; 292 | } 293 | 294 | .stars-outer { 295 | display: inline-block; 296 | position: relative; 297 | font-family: FontAwesome; 298 | } 299 | 300 | .stars-outer::before { 301 | content: "\f006 \f006 \f006 \f006 \f006"; 302 | } 303 | 304 | .stars-inner { 305 | position: absolute; 306 | top: 0; 307 | left: 0; 308 | white-space: nowrap; 309 | overflow: hidden; 310 | width: 0; 311 | } 312 | 313 | .stars-inner::before { 314 | content: "\f005 \f005 \f005 \f005 \f005"; 315 | color: #f8ce0b; 316 | } 317 | 318 | div.content::-webkit-scrollbar { 319 | width: 0 !important; 320 | } 321 | 322 | div.content_data::-webkit-scrollbar { 323 | overflow-y: hidden; 324 | width: 0px; 325 | } 326 | 327 | /* Single card */ 328 | 329 | .singleCard { 330 | padding-left: calc(12px + 1.5em); 331 | padding-right: calc(12px + 1.5em); 332 | margin-bottom: 5px; 333 | } 334 | 335 | /* Image card */ 336 | 337 | .imgcard { 338 | object-fit: cover; 339 | width: 85%; 340 | border-radius: 10px; 341 | margin-bottom: 5px; 342 | } 343 | 344 | /* Suggestion buttons */ 345 | 346 | .menu { 347 | display: flex; 348 | flex-wrap: wrap; 349 | } 350 | 351 | .suggestions { 352 | background: #FFFFFF; 353 | } 354 | 355 | .menuTitle { 356 | padding: 5px; 357 | margin-top: 5px; 358 | margin-bottom: 5px; 359 | } 360 | 361 | .menuChips { 362 | display: block; 363 | background: #A0B4D5; 364 | color: #FFFFFF; 365 | padding: 5px; 366 | margin-bottom: 6px; 367 | border-radius: 15px; 368 | text-align: center; 369 | font-size: 14px; 370 | cursor: pointer; 371 | word-wrap: break-word; 372 | flex: 45%; 373 | } 374 | 375 | .menuChips:hover { 376 | background: #6888bc; 377 | } 378 | 379 | .menuChips:active { 380 | background: #3961a2; 381 | } 382 | 383 | .menu > .menuChips:nth-child(2n) { 384 | margin-left: 3px; 385 | } 386 | 387 | .menu > .menuChips:nth-child(2n+1) { 388 | margin-right: 3px; 389 | } 390 | 391 | .menu > .menuChips:last-child, .menu > .menuChips:nth-last-child(2):nth-child(2n+1) { 392 | margin-bottom: 0; 393 | } 394 | 395 | /* Cards carousels */ 396 | 397 | .cards { 398 | display: none; 399 | position: relative; 400 | max-width: 300px; 401 | } 402 | 403 | .cards_scroller { 404 | overflow-x: scroll; 405 | overflow-y: hidden; 406 | display: flex; 407 | height: 210px; 408 | width: 300px; 409 | transition: width 0.5s ease; 410 | margin-left: 5px; 411 | -webkit-overflow-scrolling: touch; 412 | } 413 | 414 | .cards_scroller img { 415 | border-radius: 10px; 416 | } 417 | 418 | .cards div.note, .cards .arrow { 419 | position: absolute; 420 | top: 50%; 421 | transform: translateY(-50%); 422 | } 423 | 424 | .cards div.note { 425 | left: 0; 426 | right: 0; 427 | background: rgba(0, 0, 0, 0.6); 428 | padding: 20px; 429 | font-size: 4em; 430 | color: #FFFFFF; 431 | } 432 | 433 | .cards .arrow { 434 | height: 30px; 435 | width: 30px; 436 | border-radius: 2px; 437 | background-position: 50% 50%; 438 | background-repeat: no-repeat; 439 | z-index: 1; 440 | } 441 | 442 | .cards .arrow.next, .cards .arrow.prev { 443 | display: none; 444 | font-size: 2em; 445 | color: #FFFFFF; 446 | } 447 | 448 | .cards .arrow.next { 449 | right: 10px; 450 | } 451 | 452 | .cards .arrow.prev { 453 | left: 10px; 454 | } 455 | 456 | .cards_scroller::-webkit-scrollbar { 457 | width: 0 !important; 458 | } 459 | 460 | .cards_scroller > div.carousel_cards { 461 | margin: 5px; 462 | scroll-snap-align: center; 463 | position: relative; 464 | scroll-behavior: smooth; 465 | } 466 | 467 | .cards_scroller div.carousel_cards { 468 | min-width: 50%; 469 | min-height: 70%; 470 | background: #B5B5B5; 471 | border-radius: 10px; 472 | } 473 | 474 | @-webkit-keyframes fadeInLeft { 475 | from { 476 | opacity: 0; 477 | -webkit-transform: translatex(-10px); 478 | -moz-transform: translatex(-10px); 479 | -o-transform: translatex(-10px); 480 | transform: translatex(-10px); 481 | } to { 482 | opacity: 1; 483 | -webkit-transform: translatex(0); 484 | -moz-transform: translatex(0); 485 | -o-transform: translatex(0); 486 | transform: translatex(0); 487 | } 488 | } 489 | 490 | .in-left { 491 | -webkit-animation-name: fadeInLeft; 492 | -moz-animation-name: fadeInLeft; 493 | -o-animation-name: fadeInLeft; 494 | animation-name: fadeInLeft; 495 | -webkit-animation-fill-mode: both; 496 | -moz-animation-fill-mode: both; 497 | -o-animation-fill-mode: both; 498 | animation-fill-mode: both; 499 | -webkit-animation-duration: 0.2s; 500 | -moz-animation-duration: 0.2s; 501 | -o-animation-duration: 0.2s; 502 | animation-duration: 0.2s; 503 | } 504 | 505 | /* Cards within the cards carousels */ 506 | 507 | .cardBackgroundImage { 508 | width: 100%; 509 | border-radius: 5px; 510 | height: 100%; 511 | position: absolute; 512 | object-fit: cover; 513 | } 514 | 515 | .cardFooter { 516 | background: rgba(56, 53, 60, 0.86); 517 | border-radius: 0px 0px 5px 5px; 518 | position: absolute; 519 | z-index: 3; 520 | color: white; 521 | bottom: 0; 522 | width: 100%; 523 | height: 30%; 524 | word-wrap: break-word; 525 | padding: 1px; 526 | } 527 | 528 | .cardTitle { 529 | overflow: hidden; 530 | white-space: nowrap; 531 | text-overflow: ellipsis; 532 | width: 90%; 533 | height: 40%; 534 | display: inline-block; 535 | margin-bottom: 1px; 536 | font-size: 15px; 537 | padding: 5px; 538 | color: #FFFFFF; 539 | cursor: pointer; 540 | } 541 | 542 | .cardDescription { 543 | padding: 5px; 544 | font-size: 13px; 545 | color: FFFFFF; 546 | line-height: 15px; 547 | } 548 | 549 | /* Dropdown messages*/ 550 | 551 | .dropDownMsg { 552 | float: left; 553 | margin-top: 5px; 554 | background: #FFFFFF; 555 | color: #000000; 556 | box-shadow: 2px 3px 9px 0px #9A82842E; 557 | margin-left: 0.5em; 558 | padding: 10px; 559 | border-radius: 1.5em; 560 | max-width: 60%; 561 | min-width: 25%; 562 | font-size: 13px; 563 | word-wrap: break-word; 564 | } 565 | 566 | .dropDownMsg > select { 567 | border: 0px solid #F2F2F2; 568 | } 569 | 570 | /* Quick replies */ 571 | 572 | .quickReplies { 573 | padding: 5px; 574 | position: relative; 575 | width: 100%; 576 | overflow-x: scroll; 577 | overflow-y: hidden; 578 | white-space: nowrap; 579 | transition: all 0.2s; 580 | transform: scale(0.98); 581 | will-change: transform; 582 | user-select: none; 583 | cursor: pointer; 584 | scroll-behavior: smooth; 585 | } 586 | 587 | .quickReplies::-webkit-scrollbar { 588 | width: 0 !important; 589 | } 590 | 591 | .quickReplies.active { 592 | cursor: grabbing; 593 | cursor: -webkit-grabbing; 594 | transform: scale(1); 595 | } 596 | 597 | .chip { 598 | background-color: #FFFFFF; 599 | color: #060DCF; 600 | border: 1px solid #060DCF; 601 | font-weight: bolder; 602 | text-align: center; 603 | } 604 | 605 | .chip:hover { 606 | background-color: #060DCF; 607 | color: #FFFFFF; 608 | border: 1px solid #FFFFFF; 609 | } 610 | 611 | /* Charts */ 612 | 613 | #expand { 614 | position: absolute; 615 | right: 10px; 616 | top: 10px; 617 | } 618 | 619 | #expand:hover { 620 | font-size: 18px; 621 | } 622 | 623 | .modal { 624 | height: 60%; 625 | border-radius: 10px; 626 | } 627 | 628 | .chart-container { 629 | position: relative; 630 | margin: auto; 631 | height: 25vh; 632 | width: 20vw; 633 | border-radius: 10px 10px 10px 10px; 634 | margin-left: 5%; 635 | background: #FFFFFF; 636 | box-shadow: 2px 3px 9px 0px #9A82847A; 637 | margin-top: 5px; 638 | } 639 | 640 | /* Collapsible */ 641 | 642 | .collapsible { 643 | margin-top: 5px; 644 | margin-left: 5%; 645 | max-width: 60%; 646 | min-width: 25%; 647 | font-size: 13px; 648 | word-wrap: break-word; 649 | border-radius: 20px; 650 | background: #FFFFFF; 651 | } 652 | 653 | .collapsible-body { 654 | padding: 15px; 655 | } 656 | 657 | .collapsible-header { 658 | padding: 10px; 659 | font-weight: bold; 660 | color: #060DCF; 661 | } 662 | 663 | ul.collapsible > li:first-child .collapsible-header { 664 | border-radius: 20px 20px 0px 0px; 665 | } 666 | 667 | ul.collapsible > li:last-child .collapsible-header { 668 | color: #060DCF; 669 | border-radius: 0px 0px 20px 20px; 670 | } 671 | 672 | ul.collapsible > li:last-child .collapsible-body { 673 | border-bottom: none; 674 | } 675 | 676 | /* Bot typing */ 677 | 678 | .botTyping { /* Same as .botMsg above */ 679 | color: #000000 680 | } 681 | 682 | .botTyping > div { 683 | width: 10px; 684 | height: 10px; 685 | background-color: #060dcf; 686 | border-radius: 100%; 687 | display: inline-block; 688 | -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both; 689 | animation: sk-bouncedelay 1.4s infinite ease-in-out both; 690 | margin-right: 5px; 691 | } 692 | 693 | .botTyping .bounce1 { 694 | -webkit-animation-delay: -0.32s; 695 | animation-delay: -0.32s; 696 | } 697 | 698 | .botTyping .bounce2 { 699 | -webkit-animation-delay: -0.16s; 700 | animation-delay: -0.16s; 701 | } 702 | 703 | @-webkit-keyframes sk-bouncedelay { 704 | 0%, 705 | 80%, 706 | 100% { 707 | -webkit-transform: scale(0); 708 | } 709 | 40% { 710 | -webkit-transform: scale(1); 711 | } 712 | } 713 | 714 | @keyframes sk-bouncedelay { 715 | 0%, 716 | 80%, 717 | 100% { 718 | -webkit-transform: scale(0); 719 | transform: scale(0); 720 | } 721 | 40% { 722 | -webkit-transform: scale(1); 723 | transform: scale(1); 724 | } 725 | } 726 | 727 | input:focus, video:focus { 728 | outline: none; 729 | } 730 | 731 | .video-container iframe, .video-container object, .video-container embed { 732 | position: absolute; 733 | top: 0; 734 | left: 0; 735 | width: 90%; 736 | height: 100%; 737 | margin-left: 5%; 738 | border-radius: 10px; 739 | border-style: none; 740 | } 741 | 742 | /* Bot pop-up intro */ 743 | 744 | .tap-target { 745 | color: #FFFFFF; 746 | background: #060DCF; 747 | } 748 | 749 | /* PDF */ 750 | 751 | .pdf_attachment { 752 | border: 0.5px solid #00000014; 753 | width: 60%; 754 | height: 14%; 755 | border-radius: 10px; 756 | margin-left: 10%; 757 | box-shadow: 2px 3px 9px 0px #9A82842E; 758 | } 759 | 760 | .pdf_icon { 761 | border-radius: 10px 0px 0px 10px; 762 | height: 100%; 763 | font-size: 25px; 764 | padding: 7% !important; 765 | background-color: #060DCF; 766 | color: #FFFFFF; 767 | } 768 | 769 | .pdf_link { 770 | padding: 5% !important; 771 | white-space: nowrap; 772 | overflow: hidden; 773 | text-overflow: ellipsis; 774 | } 775 | 776 | .pdf_link a { 777 | color: #060DCF; 778 | } 779 | -------------------------------------------------------------------------------- /assets/js/script_full.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable max-len */ 2 | /* eslint-disable linebreak-style */ 3 | /* eslint-disable no-undef */ 4 | /* eslint-disable operator-linebreak */ 5 | /* eslint-disable no-console */ 6 | /* eslint-disable camelcase */ 7 | 8 | const rasa_action_endpoint_url = "http://localhost:5055/webhook"; 9 | const rasa_server_url = "http://localhost:5005/webhooks/rest/webhook"; 10 | //const IP = "194.126.17.114"; 11 | //const rasa_action_endpoint_url = `http://${IP}/webhook`; 12 | //const rasa_server_url = `http://${IP}/webhooks/rest/webhook`; 13 | //const handoff_server_url = `http://${IP}/webhooks/rest/webhook`; // UNUSED Human handoff 14 | 15 | const botPic = "./assets/img/botAvatar.png"; 16 | const userPic = "./assets/img/userAvatar.png"; 17 | 18 | const action_name = "action_utter_greet"; 19 | const sender_id = "W-" + uuidv4(); 20 | 21 | // var handoff = false; UNUSED Human handoff 22 | 23 | 24 | 25 | // Initialization 26 | $(document).ready(() => { 27 | // Dropdown menu 28 | $(".dropdown-trigger").dropdown(); 29 | 30 | // Initiate the modal for displaying charts 31 | $(".modal").modal(); 32 | 33 | // If the bot starts the conversation 34 | showBotTyping(); 35 | $("#userInput").prop('disabled', true); 36 | customActionTrigger(); 37 | }); 38 | 39 | 40 | 41 | /** 42 | * Scrolls to the bottom of the conversation after new message 43 | */ 44 | function scrollToBottomOfChat() { 45 | const terminalResultsDiv = document.getElementById("chats"); 46 | terminalResultsDiv.scrollTop = terminalResultsDiv.scrollHeight; 47 | } 48 | 49 | /** 50 | * Removes the bot typing indicator from the chat screen 51 | */ 52 | function hideBotTyping() { 53 | $("#botAvatar").remove(); 54 | $(".botTyping").remove(); 55 | } 56 | 57 | /** 58 | * Adds the bot typing indicator to the chat screen 59 | */ 60 | function showBotTyping() { 61 | const botTyping = ` 62 | 63 |
64 |
65 |
66 |
67 |
`; 68 | $(botTyping).appendTo(".chats"); 69 | $(".botTyping").show(); 70 | scrollToBottomOfChat(); 71 | } 72 | 73 | /** 74 | * Sets user response on the chat screen 75 | * @param {String} message user message 76 | */ 77 | function setUserResponse(message) { 78 | const user_response = ` 79 | 80 |

${message}

81 |
`; 82 | $(user_response).appendTo(".chats").show("fast"); 83 | 84 | $(".usrInput").val(""); 85 | scrollToBottomOfChat(); 86 | showBotTyping(); 87 | //$(".suggestions").remove(); 88 | } 89 | 90 | /** 91 | * Adds buttons as a bot response 92 | * @param {Array} suggestions buttons json array 93 | */ 94 | function addSuggestion(suggestions) { 95 | setTimeout(() => { 96 | $('
') 97 | .appendTo(".chats").hide().fadeIn(500); 98 | 99 | for (let i = 0; i < suggestions.length; i += 1) { 100 | $(``) 101 | .appendTo("#chats .singleCard:last-of-type .suggestions .menu"); 102 | } 103 | 104 | //$("#userInput").prop('disabled', true); 105 | scrollToBottomOfChat(); 106 | }, 500); 107 | } 108 | 109 | /** 110 | * UNUSED Creates horizontally placed cards carousel 111 | * @param {Array} cardsData json array 112 | */ 113 | function createCardsCarousel(cardsData) { 114 | let cards = ""; 115 | for (let i = 0; i < cardsData.length; i += 1) { 116 | const title = cardsData[i].name; 117 | const ratings = `${Math.round((cardsData[i].ratings / 5) * 100)}%`; 118 | const item = ` 119 | `; 131 | 132 | cards += item; 133 | } 134 | const cardContents = ` 135 |
136 |
137 | ${cards} 138 | 139 | 140 |
141 |
`; 142 | return cardContents; 143 | } 144 | 145 | /** 146 | * UNUSED Appends cards carousel on to the chat screen 147 | * @param {Array} cardsToAdd json array 148 | */ 149 | function showCardsCarousel(cardsToAdd) { 150 | const cards = createCardsCarousel(cardsToAdd); 151 | 152 | $(cards).appendTo(".chats").show(); 153 | 154 | if (cardsToAdd.length <= 2) { 155 | $(`.cards_scroller 0 > div.carousel_cards:nth-of-type(${i})`).fadeIn(3000); 156 | } else { 157 | for (let i = 0; i < cardsToAdd.length; i += 1) { 158 | $(`.cards_scroller > div.carousel_cards:nth-of-type(${i})`).fadeIn(3000); 159 | } 160 | $(".cards .arrow.prev").fadeIn("3000"); 161 | $(".cards .arrow.next").fadeIn("3000"); 162 | } 163 | 164 | scrollToBottomOfChat(); 165 | 166 | const card = document.querySelector("#paginated_cards"); 167 | const card_scroller = card.querySelector(".cards_scroller"); 168 | const card_item_size = 225; 169 | 170 | /** 171 | * For paginated scrolling, simply scroll the card one item in the given 172 | * direction and let CSS scroll snaping handle the specific alignment. 173 | */ 174 | function scrollToNextPage() { 175 | card_scroller.scrollBy(card_item_size, 0); 176 | } 177 | 178 | function scrollToPrevPage() { 179 | card_scroller.scrollBy(-card_item_size, 0); 180 | } 181 | 182 | card.querySelector(".arrow.next").addEventListener("click", scrollToNextPage); 183 | card.querySelector(".arrow.prev").addEventListener("click", scrollToPrevPage); 184 | } 185 | 186 | /** 187 | * Appends horizontally placed buttons carousel to the chat screen 188 | * @param {Array} quickRepliesData json array 189 | */ 190 | function showQuickReplies(quickRepliesData) { 191 | let chips = ""; 192 | for (let i = 0; i < quickRepliesData.length; i += 1) { 193 | const chip = ` 194 |
195 | ${quickRepliesData[i].title} 196 |
`; 197 | chips += chip; 198 | } 199 | 200 | const quickReplies = `
${chips}
`; 201 | $(quickReplies).appendTo(".chats").fadeIn(1000); 202 | scrollToBottomOfChat(); 203 | 204 | const slider = document.querySelector(".quickReplies"); 205 | let isDown = false; 206 | let startX; 207 | let scrollLeft; 208 | 209 | slider.addEventListener("mousedown", (e) => { 210 | isDown = true; 211 | slider.classList.add("active"); 212 | startX = e.pageX - slider.offsetLeft; 213 | scrollLeft = slider.scrollLeft; 214 | }); 215 | slider.addEventListener("mouseleave", () => { 216 | isDown = false; 217 | slider.classList.remove("active"); 218 | }); 219 | slider.addEventListener("mouseup", () => { 220 | isDown = false; 221 | slider.classList.remove("active"); 222 | }); 223 | slider.addEventListener("mousemove", (e) => { 224 | if (!isDown) return; 225 | e.preventDefault(); 226 | const x = e.pageX - slider.offsetLeft; 227 | const walk = (x - startX) * 3; // scroll-fast 228 | slider.scrollLeft = scrollLeft - walk; 229 | }); 230 | } 231 | 232 | /** 233 | * UNUSED Renders PDF attachment on the chat screen 234 | * @param {Object} pdf_data json object 235 | */ 236 | function renderPdfAttachment(pdf_data) { 237 | const {url: pdf_url} = pdf_data.custom; 238 | const {title: pdf_title} = pdf_data.custom; 239 | const pdf_attachment = ` 240 |
241 |
242 |
243 | 244 |
245 | 248 |
249 |
`; 250 | 251 | $(".chats").append(pdf_attachment); 252 | scrollToBottomOfChat(); 253 | } 254 | 255 | /** 256 | * UNUSED Renders the dropdown message and handles the user selection 257 | * @param {Array} drop_down_data json array 258 | */ 259 | function renderDropDwon(drop_down_data) { 260 | let drop_down_options = ""; 261 | for (let i = 0; i < drop_down_data.length; i += 1) { 262 | drop_down_options += ` 263 | `; 266 | } 267 | const drop_down_select = ` 268 | `; 274 | 275 | $(".chats").append(drop_down_select); 276 | scrollToBottomOfChat(); 277 | 278 | // Add event handler if user selects a option 279 | // eslint-disable-next-line func-names 280 | $("select").on("change", function () { 281 | let value = ""; 282 | let label = ""; 283 | $("select option:selected").each(() => { 284 | label += $(this).val(); 285 | value += $(this).val(); 286 | }); 287 | 288 | setUserResponse(label); 289 | // eslint-disable-next-line no-use-before-define 290 | send(value); 291 | $(".dropDownMsg").remove(); 292 | }); 293 | } 294 | 295 | /** 296 | * UNUSED Sends the user location to Rasa 297 | * @param {Object} position json object 298 | */ 299 | function getUserPosition(position) { 300 | // Add the intent to trigger 301 | const response = `/inform{"latitude":${position.coords.latitude},"longitude":${position.coords.longitude}}`; 302 | $("#userInput").prop("disabled", false); 303 | // eslint-disable-next-line no-use-before-define 304 | send(response); 305 | showBotTyping(); 306 | } 307 | 308 | /** 309 | * UNUSED Handles error while accessing the user's geolocation 310 | * @param {Object} error json object 311 | */ 312 | function handleLocationAccessError(error) { 313 | switch (error.code) { 314 | case error.PERMISSION_DENIED: 315 | console.log("User denied the request for Geolocation."); 316 | break; 317 | case error.POSITION_UNAVAILABLE: 318 | console.log("Location information is unavailable."); 319 | break; 320 | case error.TIMEOUT: 321 | console.log("The request to get user location timed out."); 322 | break; 323 | case error.UNKNOWN_ERROR: 324 | console.log("An unknown error occurred."); 325 | break; 326 | default: 327 | break; 328 | } 329 | 330 | const response = '/inform{"user_location":"deny"}'; 331 | // eslint-disable-next-line no-use-before-define 332 | send(response); 333 | showBotTyping(); 334 | $(".usrInput").val(""); 335 | $("#userInput").prop("disabled", false); 336 | } 337 | 338 | /** 339 | * UNUSED Fetches the user location from the browser 340 | */ 341 | function getLocation() { 342 | if (navigator.geolocation) { 343 | navigator.geolocation.getCurrentPosition( 344 | getUserPosition, 345 | handleLocationAccessError 346 | ); 347 | } else { 348 | console.log("Geolocation is not supported by this browser."); 349 | } 350 | } 351 | 352 | /** 353 | * UNUSED Creates collapsible (https://materializecss.com/collapsible.html) 354 | * @param {Array} collapsible_date json array 355 | */ 356 | function createCollapsible(collapsible_data) { 357 | // Sample data format: 358 | // var collapsible_data = [{"title":"abc","description":"xyz"},{"title":"pqr","description":"jkl"}] 359 | let collapsible_list = ""; 360 | for (let i = 0; i < collapsible_data.length; i += 1) { 361 | const collapsible_item = ` 362 |
  • 363 |
    364 | ${collapsible_data[i].title} 365 |
    366 |
    367 | ${collapsible_data[i].description} 368 |
    369 |
  • `; 370 | 371 | collapsible_list += collapsible_item; 372 | } 373 | const collapsible_contents = ``; 374 | $(collapsible_contents).appendTo(".chats"); 375 | 376 | // Initialize the collapsible 377 | $(".collapsible").collapsible(); 378 | scrollToBottomOfChat(); 379 | } 380 | 381 | /** 382 | * UNUSED Creates a div that will render the charts in canvas as required by charts.js (https://chartjs.org/docs/latest/getting-started/usage.html) 383 | * @param {String} title chart title 384 | * @param {Array} labels chart label 385 | * @param {Array} backgroundColor chart's background color 386 | * @param {Object} chartsData chart's data 387 | * @param {String} chartType chart type 388 | * @param {String} displayLegend chart's legend 389 | */ 390 | function createChart(title, labels, backgroundColor, chartsData, chartType, displayLegend) { 391 | const html = ` 392 |
    393 | 394 | 395 | 396 | 397 |
    398 |
    `; 399 | $(html).appendTo(".chats"); 400 | 401 | // Context that will draw the charts over the canvas in the ".chart-container" div 402 | const ctx = $("#chat-chart"); 403 | 404 | // Instantiate chart-type by passing the configuration (https://chartjs.org/docs/latest/configuration) 405 | const data = { 406 | labels, 407 | datasets: [ 408 | { 409 | label: title, 410 | backgroundColor, 411 | data: chartsData, 412 | fill: false, 413 | }, 414 | ], 415 | }; 416 | const options = { 417 | title: { 418 | display: true, 419 | text: title, 420 | }, 421 | layout: { 422 | padding: { 423 | left: 5, 424 | right: 0, 425 | top: 0, 426 | bottom: 0, 427 | }, 428 | }, 429 | legend: { 430 | display: displayLegend, 431 | position: "right", 432 | labels: { 433 | boxWidth: 5, 434 | fontSize: 10, 435 | }, 436 | }, 437 | }; 438 | 439 | // Draw the chart by passing the configuration 440 | // eslint-disable-next-line no-undef 441 | chatChart = new Chart(ctx, {type: chartType, data, options}); 442 | 443 | scrollToBottomOfChat(); 444 | } 445 | 446 | /** 447 | * UNUSED Creates a modal that will render the charts in canvas as required by charts.js (https://www.chartjs.org/docs/latest/getting-started/usage.html) 448 | * If you want to display the charts in modal, make sure you have configured the modal in `index.html` 449 | * @param {String} title chart title 450 | * @param {Array} labels chart label 451 | * @param {Array} backgroundColor chart's background color 452 | * @param {Object} chartsData chart's data 453 | * @param {String} chartType chart type 454 | * @param {String} displayLegend chart's legend 455 | */ 456 | function createChartinModal(title, labels, backgroundColor, chartsData, chartType, displayLegend) { 457 | // Context that will draw the charts over the canvas in the ".chart-container" div 458 | const ctx = $("#modal-chart"); 459 | 460 | // Instantiate chart-type by passing the configuration (https://chartjs.org/docs/latest/configuration) 461 | const data = { 462 | labels, 463 | datasets: [ 464 | { 465 | label: title, 466 | backgroundColor, 467 | data: chartsData, 468 | fill: false, 469 | }, 470 | ], 471 | }; 472 | const options = { 473 | title: { 474 | display: true, 475 | text: title, 476 | }, 477 | layout: { 478 | padding: { 479 | left: 5, 480 | right: 0, 481 | top: 0, 482 | bottom: 0, 483 | }, 484 | }, 485 | legend: { 486 | display: displayLegend, 487 | position: "right", 488 | }, 489 | }; 490 | 491 | // eslint-disable-next-line no-undef 492 | modalChart = new Chart(ctx, {type: chartType, data, options}); 493 | } 494 | 495 | /** 496 | * Renders bot response on to the chat screen (https://rasa.com/docs/rasa/connectors/your-own-website#request-and-response-format) 497 | * @param {Array} response json array containing different types of bot response 498 | */ 499 | function setBotResponse(response) { 500 | console.log(response); 501 | const fadeTime = 500; 502 | const timeoutTime = 1500; 503 | 504 | setTimeout(() => { 505 | hideBotTyping(); 506 | 507 | if (response.length < 1) { // There is no response from Rasa or human 508 | const fallbackMsg = "I am facing some issues, please try again later."; 509 | const BotResponse = ` 510 | 511 |

    ${fallbackMsg}

    512 |
    `; 513 | 514 | $(BotResponse).appendTo(".chats").hide().fadeIn(fadeTime); 515 | scrollToBottomOfChat(); 516 | } else { // Response received from Rasa or human 517 | for (let i = 0; i < response.length; i += 1) { 518 | if (Object.hasOwnProperty.call(response[i], "text")) { // Response contains "text" 519 | if (response[i].text != null) { 520 | var formatted_text = response[i].text.replace(/(?:\r\n|\r|\n)/g, '
    ') 521 | const BotResponse = ` 522 | 523 |

    ${formatted_text}

    524 |
    `; 525 | $(BotResponse).appendTo(".chats").hide().fadeIn(fadeTime); 526 | } 527 | } 528 | 529 | /*if (Object.hasOwnProperty.call(response[i], "response")) { // Response contains "response" 530 | if (response[i].response != null) { 531 | var formatted_text = response[i].response.replace(/(?:\r\n|\r|\n)/g, '
    ') // TODO Now only prints response name 532 | const BotResponse = ` 533 | 534 |

    ${formatted_text}

    535 |
    `; 536 | $(BotResponse).appendTo(".chats").hide().fadeIn(fadeTime); 537 | } 538 | }*/ 539 | 540 | if (Object.hasOwnProperty.call(response[i], "image")) { // Response contains "images" 541 | if (response[i].image !== null) { 542 | const BotResponse = ` 543 |
    544 | 545 |
    `; 546 | $(BotResponse).appendTo(".chats").hide().fadeIn(fadeTime); 547 | } 548 | } 549 | 550 | if (Object.hasOwnProperty.call(response[i], "buttons")) { // Response contains "buttons" 551 | if (response[i].buttons.length > 0) { 552 | addSuggestion(response[i].buttons); 553 | } 554 | } 555 | 556 | if (Object.hasOwnProperty.call(response[i], "attachment")) { // Response contains "attachment" 557 | if (response[i].attachment != null) { 558 | if (response[i].attachment.type === "video") { // Attachment type is "video" 559 | const BotResponse = ` 560 |
    561 | 562 |
    `; 563 | $(BotResponse).appendTo(".chats").hide().fadeIn(fadeTime); 564 | } 565 | } 566 | } 567 | 568 | if (Object.hasOwnProperty.call(response[i], "custom")) { // Response contains "custom" 569 | const { payload } = response[i].custom; 570 | if (payload === "quickReplies") { // Custom payload type is "quickReplies" 571 | const quickRepliesData = response[i].custom.data; 572 | showQuickReplies(quickRepliesData); 573 | return; 574 | } 575 | 576 | if (payload === "pdf_attachment") { // Custom payload type is "pdf_attachment" 577 | renderPdfAttachment(response[i]); 578 | return; 579 | } 580 | 581 | if (payload === "dropDown") { // Custom payload type is "dropDown" 582 | const dropDownData = response[i].custom.data; 583 | renderDropDwon(dropDownData); 584 | return; 585 | } 586 | 587 | if (payload === "location") { // Custom payload type is "location" 588 | $("#userInput").prop("disabled", true); 589 | getLocation(); 590 | scrollToBottomOfChat(); 591 | return; 592 | } 593 | 594 | if (payload === "cardsCarousel") { // Custom payload type is "cardsCarousel" 595 | const restaurantsData = response[i].custom.data; 596 | showCardsCarousel(restaurantsData); 597 | return; 598 | } 599 | 600 | if (payload === "chart") { // Custom payload type is "chart" 601 | // Sample format of the charts data: 602 | // var chartData = { 603 | // "title": "Leaves", 604 | // "labels": ["Sick Leave", "Casual Leave", "Earned Leave", "Flexi Leave"], 605 | // "backgroundColor": ["#36a2eb", "#ffcd56", "#ff6384", "#009688", "#c45850"], 606 | // "chartsData": [5, 10, 22, 3], 607 | // "chartType": "pie", 608 | // "displayLegend": "true"} 609 | 610 | const chartData = response[i].custom.data; 611 | const {title, labels, backgroundColor, chartsData, chartType, displayLegend} = chartData; 612 | 613 | createChart(title, labels, backgroundColor, chartsData, chartType, displayLegend); 614 | 615 | // On click of the expand button, render the chart in the charts modal 616 | $(document).on("click", "#expand", () => { 617 | createChartinModal(title, labels, backgroundColor, chartsData, chartType, displayLegend); 618 | }); 619 | return; 620 | } 621 | 622 | if (payload === "collapsible") { // Custom payload type is "collapsible" 623 | const {data} = response[i].custom; 624 | createCollapsible(data); 625 | } 626 | } 627 | } 628 | scrollToBottomOfChat(); 629 | } 630 | }, timeoutTime); 631 | } 632 | 633 | /** 634 | * Sends an event to the bot, so that bot can start the conversation with it 635 | */ 636 | // eslint-disable-next-line no-unused-vars 637 | function customActionTrigger() { 638 | send("Hello"); 639 | $("#userInput").prop('disabled', false); 640 | /*$.ajax({ 641 | url: rasa_action_endpoint_url, 642 | type: "POST", 643 | contentType: "application/json", 644 | data: JSON.stringify({next_action: action_name, tracker: {sender_id}}), 645 | success(botResponse, status) { 646 | if (Object.hasOwnProperty.call(botResponse, "responses")) { 647 | setBotResponse(botResponse.responses); 648 | console.log(JSON.stringify(botResponse)); 649 | } 650 | $("#userInput").prop("disabled", false); 651 | }, 652 | error(xhr, textStatus) { 653 | setBotResponse(""); 654 | console.log("Error from bot end: ", textStatus); 655 | $("#userInput").prop("disabled", false); 656 | }, 657 | });*/ 658 | } 659 | 660 | /** 661 | * Sends the user message to the Rasa server 662 | * @param {String} message user message 663 | */ 664 | function send(message) { 665 | // server_url = handoff ? handoff_server_url : rasa_server_url; // UNUSED Human handoff 666 | server_url = rasa_server_url; 667 | 668 | $.ajax({ 669 | url: server_url, 670 | type: "POST", 671 | contentType: "application/json", 672 | data: JSON.stringify({ message, sender: sender_id }), 673 | success(botResponse, status) { 674 | if (message.toLowerCase() === "/restart") { // Restart and clear chat 675 | $("#userInput").prop("disabled", false); 676 | customActionTrigger(); 677 | return; 678 | } /*else if (message.toLowerCase() === "/handoff") { // UNUSED Human handoff 679 | handoff = true; 680 | setBotResponse([{"text": "A human will be with you shortly."}]) 681 | return; 682 | }*/ 683 | setBotResponse(botResponse); 684 | console.log("Success from bot's end:"); 685 | }, 686 | error(xhr, textStatus) { 687 | setBotResponse(''); 688 | console.log("Error from bot's end: " + textStatus); 689 | }, 690 | }); 691 | } 692 | 693 | /** 694 | * Clears the conversation from the chat screen and sends the `/restart` event to the Rasa server 695 | */ 696 | function restartConversation() { 697 | $("#userInput").prop("disabled", true); 698 | $(".collapsible").remove(); 699 | 700 | if (typeof chatChart !== "undefined") { 701 | chatChart.destroy(); 702 | } 703 | 704 | $(".chart-container").remove(); 705 | 706 | if (typeof modalChart !== "undefined") { 707 | modalChart.destroy(); 708 | } 709 | 710 | $(".chats").html(""); 711 | $(".usrInput").val(""); 712 | send("/restart"); 713 | } 714 | 715 | /** 716 | * Sends the `/request_human` intent to the Rasa server 717 | */ 718 | function requestHuman() { 719 | setUserResponse("I request human assistance.") 720 | send("/request_human"); 721 | } 722 | 723 | // User presses Enter key 724 | $(".usrInput").on("keyup keypress", (e) => { 725 | const keyCode = e.keyCode || e.which; 726 | 727 | const text = $(".usrInput").val(); 728 | if (keyCode === 13) { 729 | if (text === "" || $.trim(text) === "") { 730 | e.preventDefault(); 731 | return false; 732 | } 733 | // Destroy the existing chart; if you are not using charts, comment the below lines 734 | $(".collapsible").remove(); 735 | $(".dropDownMsg").remove(); 736 | if (typeof chatChart !== "undefined") { 737 | chatChart.destroy(); 738 | } 739 | 740 | $(".chart-container").remove(); 741 | if (typeof modalChart !== "undefined") { 742 | modalChart.destroy(); 743 | } 744 | 745 | $("#paginated_cards").remove(); 746 | //$(".suggestions").remove(); 747 | $(".quickReplies").remove(); 748 | $(".usrInput").blur(); 749 | setUserResponse(text); 750 | send(text); 751 | e.preventDefault(); 752 | return false; 753 | } 754 | return true; 755 | }); 756 | 757 | // User presses the "Send" button 758 | $("#sendButton").on("click", (e) => { 759 | const text = $(".usrInput").val(); 760 | if (text === "" || $.trim(text) === "") { 761 | e.preventDefault(); 762 | return false; 763 | } 764 | // Destroy the existing chart; if you are not using charts, comment the below lines 765 | if (typeof chatChart !== "undefined") { 766 | chatChart.destroy(); 767 | } 768 | 769 | $(".chart-container").remove(); 770 | if (typeof modalChart !== "undefined") { 771 | modalChart.destroy(); 772 | } 773 | 774 | //$(".suggestions").remove(); 775 | $("#paginated_cards").remove(); 776 | $(".quickReplies").remove(); 777 | $(".usrInput").blur(); 778 | $(".dropDownMsg").remove(); 779 | setUserResponse(text); 780 | send(text); 781 | e.preventDefault(); 782 | return false; 783 | }); 784 | 785 | // Toggle the chatbot screen 786 | $("#profile_div").click(() => { 787 | $(".profile_div").toggle(); 788 | $(".chat_widget").toggle(); 789 | }); 790 | 791 | // "Clear" button clears the chat contents 792 | $("#clear-chat").click(() => { 793 | $(".chats").fadeOut("normal", () => { 794 | $(".chats").html(""); 795 | $(".chats").fadeIn(); 796 | }); 797 | }); 798 | 799 | // "Close" button closes the widget 800 | $("#close-chat").click(() => { 801 | $(".profile_div").toggle(); 802 | $(".chat_widget").toggle(); 803 | scrollToBottomOfChat(); 804 | }); 805 | 806 | // "Close" arrow closes the widget 807 | $("#close-chat-arrow").click(() => { 808 | $(".profile_div").toggle(); 809 | $(".chat_widget").toggle(); 810 | scrollToBottomOfChat(); 811 | }); 812 | 813 | // "Restart" button triggers restartConversation function 814 | $("#restart-chat").click(() => { 815 | restartConversation(); 816 | }); 817 | 818 | // "Request Human" button triggers requestHuman function 819 | $("#handoff-chat").click(() => { 820 | requestHuman(); 821 | }); 822 | 823 | // On click of quickReplies, get the payload value and send it to Rasa 824 | $(document).on("click", ".quickReplies .chip", function () { 825 | const text = this.innerText; 826 | const payload = this.getAttribute("data-payload"); 827 | setUserResponse(text); 828 | send(payload); 829 | $(".quickReplies").remove(); 830 | }); 831 | 832 | // On click of the suggestion button, get the title value and send it to Rasa 833 | $(document).on("click", ".menu .menuChips", function () { 834 | const text = this.innerText; 835 | const payload = this.getAttribute("data-payload"); 836 | setUserResponse(text); 837 | send(payload); 838 | //$(".suggestions").remove(); 839 | }); -------------------------------------------------------------------------------- /assets/css/materialize.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Materialize v1.0.0 (http://materializecss.com) 3 | * Copyright 2014-2017 Materialize 4 | * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE) 5 | */ 6 | .materialize-red{background-color:#e51c23 !important}.materialize-red-text{color:#e51c23 !important}.materialize-red.lighten-5{background-color:#fdeaeb !important}.materialize-red-text.text-lighten-5{color:#fdeaeb !important}.materialize-red.lighten-4{background-color:#f8c1c3 !important}.materialize-red-text.text-lighten-4{color:#f8c1c3 !important}.materialize-red.lighten-3{background-color:#f3989b !important}.materialize-red-text.text-lighten-3{color:#f3989b !important}.materialize-red.lighten-2{background-color:#ee6e73 !important}.materialize-red-text.text-lighten-2{color:#ee6e73 !important}.materialize-red.lighten-1{background-color:#ea454b !important}.materialize-red-text.text-lighten-1{color:#ea454b !important}.materialize-red.darken-1{background-color:#d0181e !important}.materialize-red-text.text-darken-1{color:#d0181e !important}.materialize-red.darken-2{background-color:#b9151b !important}.materialize-red-text.text-darken-2{color:#b9151b !important}.materialize-red.darken-3{background-color:#a21318 !important}.materialize-red-text.text-darken-3{color:#a21318 !important}.materialize-red.darken-4{background-color:#8b1014 !important}.materialize-red-text.text-darken-4{color:#8b1014 !important}.red{background-color:#F44336 !important}.red-text{color:#F44336 !important}.red.lighten-5{background-color:#FFEBEE !important}.red-text.text-lighten-5{color:#FFEBEE !important}.red.lighten-4{background-color:#FFCDD2 !important}.red-text.text-lighten-4{color:#FFCDD2 !important}.red.lighten-3{background-color:#EF9A9A !important}.red-text.text-lighten-3{color:#EF9A9A !important}.red.lighten-2{background-color:#E57373 !important}.red-text.text-lighten-2{color:#E57373 !important}.red.lighten-1{background-color:#EF5350 !important}.red-text.text-lighten-1{color:#EF5350 !important}.red.darken-1{background-color:#E53935 !important}.red-text.text-darken-1{color:#E53935 !important}.red.darken-2{background-color:#D32F2F !important}.red-text.text-darken-2{color:#D32F2F !important}.red.darken-3{background-color:#C62828 !important}.red-text.text-darken-3{color:#C62828 !important}.red.darken-4{background-color:#B71C1C !important}.red-text.text-darken-4{color:#B71C1C !important}.red.accent-1{background-color:#FF8A80 !important}.red-text.text-accent-1{color:#FF8A80 !important}.red.accent-2{background-color:#FF5252 !important}.red-text.text-accent-2{color:#FF5252 !important}.red.accent-3{background-color:#FF1744 !important}.red-text.text-accent-3{color:#FF1744 !important}.red.accent-4{background-color:#D50000 !important}.red-text.text-accent-4{color:#D50000 !important}.pink{background-color:#e91e63 !important}.pink-text{color:#e91e63 !important}.pink.lighten-5{background-color:#fce4ec !important}.pink-text.text-lighten-5{color:#fce4ec !important}.pink.lighten-4{background-color:#f8bbd0 !important}.pink-text.text-lighten-4{color:#f8bbd0 !important}.pink.lighten-3{background-color:#f48fb1 !important}.pink-text.text-lighten-3{color:#f48fb1 !important}.pink.lighten-2{background-color:#f06292 !important}.pink-text.text-lighten-2{color:#f06292 !important}.pink.lighten-1{background-color:#ec407a !important}.pink-text.text-lighten-1{color:#ec407a !important}.pink.darken-1{background-color:#d81b60 !important}.pink-text.text-darken-1{color:#d81b60 !important}.pink.darken-2{background-color:#c2185b !important}.pink-text.text-darken-2{color:#c2185b !important}.pink.darken-3{background-color:#ad1457 !important}.pink-text.text-darken-3{color:#ad1457 !important}.pink.darken-4{background-color:#880e4f !important}.pink-text.text-darken-4{color:#880e4f !important}.pink.accent-1{background-color:#ff80ab !important}.pink-text.text-accent-1{color:#ff80ab !important}.pink.accent-2{background-color:#ff4081 !important}.pink-text.text-accent-2{color:#ff4081 !important}.pink.accent-3{background-color:#f50057 !important}.pink-text.text-accent-3{color:#f50057 !important}.pink.accent-4{background-color:#c51162 !important}.pink-text.text-accent-4{color:#c51162 !important}.purple{background-color:#9c27b0 !important}.purple-text{color:#9c27b0 !important}.purple.lighten-5{background-color:#f3e5f5 !important}.purple-text.text-lighten-5{color:#f3e5f5 !important}.purple.lighten-4{background-color:#e1bee7 !important}.purple-text.text-lighten-4{color:#e1bee7 !important}.purple.lighten-3{background-color:#ce93d8 !important}.purple-text.text-lighten-3{color:#ce93d8 !important}.purple.lighten-2{background-color:#ba68c8 !important}.purple-text.text-lighten-2{color:#ba68c8 !important}.purple.lighten-1{background-color:#ab47bc !important}.purple-text.text-lighten-1{color:#ab47bc !important}.purple.darken-1{background-color:#8e24aa !important}.purple-text.text-darken-1{color:#8e24aa !important}.purple.darken-2{background-color:#7b1fa2 !important}.purple-text.text-darken-2{color:#7b1fa2 !important}.purple.darken-3{background-color:#6a1b9a !important}.purple-text.text-darken-3{color:#6a1b9a !important}.purple.darken-4{background-color:#4a148c !important}.purple-text.text-darken-4{color:#4a148c !important}.purple.accent-1{background-color:#ea80fc !important}.purple-text.text-accent-1{color:#ea80fc !important}.purple.accent-2{background-color:#e040fb !important}.purple-text.text-accent-2{color:#e040fb !important}.purple.accent-3{background-color:#d500f9 !important}.purple-text.text-accent-3{color:#d500f9 !important}.purple.accent-4{background-color:#a0f !important}.purple-text.text-accent-4{color:#a0f !important}.deep-purple{background-color:#673ab7 !important}.deep-purple-text{color:#673ab7 !important}.deep-purple.lighten-5{background-color:#ede7f6 !important}.deep-purple-text.text-lighten-5{color:#ede7f6 !important}.deep-purple.lighten-4{background-color:#d1c4e9 !important}.deep-purple-text.text-lighten-4{color:#d1c4e9 !important}.deep-purple.lighten-3{background-color:#b39ddb !important}.deep-purple-text.text-lighten-3{color:#b39ddb !important}.deep-purple.lighten-2{background-color:#9575cd !important}.deep-purple-text.text-lighten-2{color:#9575cd !important}.deep-purple.lighten-1{background-color:#7e57c2 !important}.deep-purple-text.text-lighten-1{color:#7e57c2 !important}.deep-purple.darken-1{background-color:#5e35b1 !important}.deep-purple-text.text-darken-1{color:#5e35b1 !important}.deep-purple.darken-2{background-color:#512da8 !important}.deep-purple-text.text-darken-2{color:#512da8 !important}.deep-purple.darken-3{background-color:#4527a0 !important}.deep-purple-text.text-darken-3{color:#4527a0 !important}.deep-purple.darken-4{background-color:#311b92 !important}.deep-purple-text.text-darken-4{color:#311b92 !important}.deep-purple.accent-1{background-color:#b388ff !important}.deep-purple-text.text-accent-1{color:#b388ff !important}.deep-purple.accent-2{background-color:#7c4dff !important}.deep-purple-text.text-accent-2{color:#7c4dff !important}.deep-purple.accent-3{background-color:#651fff !important}.deep-purple-text.text-accent-3{color:#651fff !important}.deep-purple.accent-4{background-color:#6200ea !important}.deep-purple-text.text-accent-4{color:#6200ea !important}.indigo{background-color:#3f51b5 !important}.indigo-text{color:#3f51b5 !important}.indigo.lighten-5{background-color:#e8eaf6 !important}.indigo-text.text-lighten-5{color:#e8eaf6 !important}.indigo.lighten-4{background-color:#c5cae9 !important}.indigo-text.text-lighten-4{color:#c5cae9 !important}.indigo.lighten-3{background-color:#9fa8da !important}.indigo-text.text-lighten-3{color:#9fa8da !important}.indigo.lighten-2{background-color:#7986cb !important}.indigo-text.text-lighten-2{color:#7986cb !important}.indigo.lighten-1{background-color:#5c6bc0 !important}.indigo-text.text-lighten-1{color:#5c6bc0 !important}.indigo.darken-1{background-color:#3949ab !important}.indigo-text.text-darken-1{color:#3949ab !important}.indigo.darken-2{background-color:#303f9f !important}.indigo-text.text-darken-2{color:#303f9f !important}.indigo.darken-3{background-color:#283593 !important}.indigo-text.text-darken-3{color:#283593 !important}.indigo.darken-4{background-color:#1a237e !important}.indigo-text.text-darken-4{color:#1a237e !important}.indigo.accent-1{background-color:#8c9eff !important}.indigo-text.text-accent-1{color:#8c9eff !important}.indigo.accent-2{background-color:#536dfe !important}.indigo-text.text-accent-2{color:#536dfe !important}.indigo.accent-3{background-color:#3d5afe !important}.indigo-text.text-accent-3{color:#3d5afe !important}.indigo.accent-4{background-color:#304ffe !important}.indigo-text.text-accent-4{color:#304ffe !important}.blue{background-color:#2196F3 !important}.blue-text{color:#2196F3 !important}.blue.lighten-5{background-color:#E3F2FD !important}.blue-text.text-lighten-5{color:#E3F2FD !important}.blue.lighten-4{background-color:#BBDEFB !important}.blue-text.text-lighten-4{color:#BBDEFB !important}.blue.lighten-3{background-color:#90CAF9 !important}.blue-text.text-lighten-3{color:#90CAF9 !important}.blue.lighten-2{background-color:#64B5F6 !important}.blue-text.text-lighten-2{color:#64B5F6 !important}.blue.lighten-1{background-color:#42A5F5 !important}.blue-text.text-lighten-1{color:#42A5F5 !important}.blue.darken-1{background-color:#1E88E5 !important}.blue-text.text-darken-1{color:#1E88E5 !important}.blue.darken-2{background-color:#1976D2 !important}.blue-text.text-darken-2{color:#1976D2 !important}.blue.darken-3{background-color:#1565C0 !important}.blue-text.text-darken-3{color:#1565C0 !important}.blue.darken-4{background-color:#0D47A1 !important}.blue-text.text-darken-4{color:#0D47A1 !important}.blue.accent-1{background-color:#82B1FF !important}.blue-text.text-accent-1{color:#82B1FF !important}.blue.accent-2{background-color:#448AFF !important}.blue-text.text-accent-2{color:#448AFF !important}.blue.accent-3{background-color:#2979FF !important}.blue-text.text-accent-3{color:#2979FF !important}.blue.accent-4{background-color:#2962FF !important}.blue-text.text-accent-4{color:#2962FF !important}.light-blue{background-color:#03a9f4 !important}.light-blue-text{color:#03a9f4 !important}.light-blue.lighten-5{background-color:#e1f5fe !important}.light-blue-text.text-lighten-5{color:#e1f5fe !important}.light-blue.lighten-4{background-color:#b3e5fc !important}.light-blue-text.text-lighten-4{color:#b3e5fc !important}.light-blue.lighten-3{background-color:#81d4fa !important}.light-blue-text.text-lighten-3{color:#81d4fa !important}.light-blue.lighten-2{background-color:#4fc3f7 !important}.light-blue-text.text-lighten-2{color:#4fc3f7 !important}.light-blue.lighten-1{background-color:#29b6f6 !important}.light-blue-text.text-lighten-1{color:#29b6f6 !important}.light-blue.darken-1{background-color:#039be5 !important}.light-blue-text.text-darken-1{color:#039be5 !important}.light-blue.darken-2{background-color:#0288d1 !important}.light-blue-text.text-darken-2{color:#0288d1 !important}.light-blue.darken-3{background-color:#0277bd !important}.light-blue-text.text-darken-3{color:#0277bd !important}.light-blue.darken-4{background-color:#01579b !important}.light-blue-text.text-darken-4{color:#01579b !important}.light-blue.accent-1{background-color:#80d8ff !important}.light-blue-text.text-accent-1{color:#80d8ff !important}.light-blue.accent-2{background-color:#40c4ff !important}.light-blue-text.text-accent-2{color:#40c4ff !important}.light-blue.accent-3{background-color:#00b0ff !important}.light-blue-text.text-accent-3{color:#00b0ff !important}.light-blue.accent-4{background-color:#0091ea !important}.light-blue-text.text-accent-4{color:#0091ea !important}.cyan{background-color:#00bcd4 !important}.cyan-text{color:#00bcd4 !important}.cyan.lighten-5{background-color:#e0f7fa !important}.cyan-text.text-lighten-5{color:#e0f7fa !important}.cyan.lighten-4{background-color:#b2ebf2 !important}.cyan-text.text-lighten-4{color:#b2ebf2 !important}.cyan.lighten-3{background-color:#80deea !important}.cyan-text.text-lighten-3{color:#80deea !important}.cyan.lighten-2{background-color:#4dd0e1 !important}.cyan-text.text-lighten-2{color:#4dd0e1 !important}.cyan.lighten-1{background-color:#26c6da !important}.cyan-text.text-lighten-1{color:#26c6da !important}.cyan.darken-1{background-color:#00acc1 !important}.cyan-text.text-darken-1{color:#00acc1 !important}.cyan.darken-2{background-color:#0097a7 !important}.cyan-text.text-darken-2{color:#0097a7 !important}.cyan.darken-3{background-color:#00838f !important}.cyan-text.text-darken-3{color:#00838f !important}.cyan.darken-4{background-color:#006064 !important}.cyan-text.text-darken-4{color:#006064 !important}.cyan.accent-1{background-color:#84ffff !important}.cyan-text.text-accent-1{color:#84ffff !important}.cyan.accent-2{background-color:#18ffff !important}.cyan-text.text-accent-2{color:#18ffff !important}.cyan.accent-3{background-color:#00e5ff !important}.cyan-text.text-accent-3{color:#00e5ff !important}.cyan.accent-4{background-color:#00b8d4 !important}.cyan-text.text-accent-4{color:#00b8d4 !important}.teal{background-color:#009688 !important}.teal-text{color:#009688 !important}.teal.lighten-5{background-color:#e0f2f1 !important}.teal-text.text-lighten-5{color:#e0f2f1 !important}.teal.lighten-4{background-color:#b2dfdb !important}.teal-text.text-lighten-4{color:#b2dfdb !important}.teal.lighten-3{background-color:#80cbc4 !important}.teal-text.text-lighten-3{color:#80cbc4 !important}.teal.lighten-2{background-color:#4db6ac !important}.teal-text.text-lighten-2{color:#4db6ac !important}.teal.lighten-1{background-color:#26a69a !important}.teal-text.text-lighten-1{color:#26a69a !important}.teal.darken-1{background-color:#00897b !important}.teal-text.text-darken-1{color:#00897b !important}.teal.darken-2{background-color:#00796b !important}.teal-text.text-darken-2{color:#00796b !important}.teal.darken-3{background-color:#00695c !important}.teal-text.text-darken-3{color:#00695c !important}.teal.darken-4{background-color:#004d40 !important}.teal-text.text-darken-4{color:#004d40 !important}.teal.accent-1{background-color:#a7ffeb !important}.teal-text.text-accent-1{color:#a7ffeb !important}.teal.accent-2{background-color:#64ffda !important}.teal-text.text-accent-2{color:#64ffda !important}.teal.accent-3{background-color:#1de9b6 !important}.teal-text.text-accent-3{color:#1de9b6 !important}.teal.accent-4{background-color:#00bfa5 !important}.teal-text.text-accent-4{color:#00bfa5 !important}.green{background-color:#4CAF50 !important}.green-text{color:#4CAF50 !important}.green.lighten-5{background-color:#E8F5E9 !important}.green-text.text-lighten-5{color:#E8F5E9 !important}.green.lighten-4{background-color:#C8E6C9 !important}.green-text.text-lighten-4{color:#C8E6C9 !important}.green.lighten-3{background-color:#A5D6A7 !important}.green-text.text-lighten-3{color:#A5D6A7 !important}.green.lighten-2{background-color:#81C784 !important}.green-text.text-lighten-2{color:#81C784 !important}.green.lighten-1{background-color:#66BB6A !important}.green-text.text-lighten-1{color:#66BB6A !important}.green.darken-1{background-color:#43A047 !important}.green-text.text-darken-1{color:#43A047 !important}.green.darken-2{background-color:#388E3C !important}.green-text.text-darken-2{color:#388E3C !important}.green.darken-3{background-color:#2E7D32 !important}.green-text.text-darken-3{color:#2E7D32 !important}.green.darken-4{background-color:#1B5E20 !important}.green-text.text-darken-4{color:#1B5E20 !important}.green.accent-1{background-color:#B9F6CA !important}.green-text.text-accent-1{color:#B9F6CA !important}.green.accent-2{background-color:#69F0AE !important}.green-text.text-accent-2{color:#69F0AE !important}.green.accent-3{background-color:#00E676 !important}.green-text.text-accent-3{color:#00E676 !important}.green.accent-4{background-color:#00C853 !important}.green-text.text-accent-4{color:#00C853 !important}.light-green{background-color:#8bc34a !important}.light-green-text{color:#8bc34a !important}.light-green.lighten-5{background-color:#f1f8e9 !important}.light-green-text.text-lighten-5{color:#f1f8e9 !important}.light-green.lighten-4{background-color:#dcedc8 !important}.light-green-text.text-lighten-4{color:#dcedc8 !important}.light-green.lighten-3{background-color:#c5e1a5 !important}.light-green-text.text-lighten-3{color:#c5e1a5 !important}.light-green.lighten-2{background-color:#aed581 !important}.light-green-text.text-lighten-2{color:#aed581 !important}.light-green.lighten-1{background-color:#9ccc65 !important}.light-green-text.text-lighten-1{color:#9ccc65 !important}.light-green.darken-1{background-color:#7cb342 !important}.light-green-text.text-darken-1{color:#7cb342 !important}.light-green.darken-2{background-color:#689f38 !important}.light-green-text.text-darken-2{color:#689f38 !important}.light-green.darken-3{background-color:#558b2f !important}.light-green-text.text-darken-3{color:#558b2f !important}.light-green.darken-4{background-color:#33691e !important}.light-green-text.text-darken-4{color:#33691e !important}.light-green.accent-1{background-color:#ccff90 !important}.light-green-text.text-accent-1{color:#ccff90 !important}.light-green.accent-2{background-color:#b2ff59 !important}.light-green-text.text-accent-2{color:#b2ff59 !important}.light-green.accent-3{background-color:#76ff03 !important}.light-green-text.text-accent-3{color:#76ff03 !important}.light-green.accent-4{background-color:#64dd17 !important}.light-green-text.text-accent-4{color:#64dd17 !important}.lime{background-color:#cddc39 !important}.lime-text{color:#cddc39 !important}.lime.lighten-5{background-color:#f9fbe7 !important}.lime-text.text-lighten-5{color:#f9fbe7 !important}.lime.lighten-4{background-color:#f0f4c3 !important}.lime-text.text-lighten-4{color:#f0f4c3 !important}.lime.lighten-3{background-color:#e6ee9c !important}.lime-text.text-lighten-3{color:#e6ee9c !important}.lime.lighten-2{background-color:#dce775 !important}.lime-text.text-lighten-2{color:#dce775 !important}.lime.lighten-1{background-color:#d4e157 !important}.lime-text.text-lighten-1{color:#d4e157 !important}.lime.darken-1{background-color:#c0ca33 !important}.lime-text.text-darken-1{color:#c0ca33 !important}.lime.darken-2{background-color:#afb42b !important}.lime-text.text-darken-2{color:#afb42b !important}.lime.darken-3{background-color:#9e9d24 !important}.lime-text.text-darken-3{color:#9e9d24 !important}.lime.darken-4{background-color:#827717 !important}.lime-text.text-darken-4{color:#827717 !important}.lime.accent-1{background-color:#f4ff81 !important}.lime-text.text-accent-1{color:#f4ff81 !important}.lime.accent-2{background-color:#eeff41 !important}.lime-text.text-accent-2{color:#eeff41 !important}.lime.accent-3{background-color:#c6ff00 !important}.lime-text.text-accent-3{color:#c6ff00 !important}.lime.accent-4{background-color:#aeea00 !important}.lime-text.text-accent-4{color:#aeea00 !important}.yellow{background-color:#ffeb3b !important}.yellow-text{color:#ffeb3b !important}.yellow.lighten-5{background-color:#fffde7 !important}.yellow-text.text-lighten-5{color:#fffde7 !important}.yellow.lighten-4{background-color:#fff9c4 !important}.yellow-text.text-lighten-4{color:#fff9c4 !important}.yellow.lighten-3{background-color:#fff59d !important}.yellow-text.text-lighten-3{color:#fff59d !important}.yellow.lighten-2{background-color:#fff176 !important}.yellow-text.text-lighten-2{color:#fff176 !important}.yellow.lighten-1{background-color:#ffee58 !important}.yellow-text.text-lighten-1{color:#ffee58 !important}.yellow.darken-1{background-color:#fdd835 !important}.yellow-text.text-darken-1{color:#fdd835 !important}.yellow.darken-2{background-color:#fbc02d !important}.yellow-text.text-darken-2{color:#fbc02d !important}.yellow.darken-3{background-color:#f9a825 !important}.yellow-text.text-darken-3{color:#f9a825 !important}.yellow.darken-4{background-color:#f57f17 !important}.yellow-text.text-darken-4{color:#f57f17 !important}.yellow.accent-1{background-color:#ffff8d !important}.yellow-text.text-accent-1{color:#ffff8d !important}.yellow.accent-2{background-color:#ff0 !important}.yellow-text.text-accent-2{color:#ff0 !important}.yellow.accent-3{background-color:#ffea00 !important}.yellow-text.text-accent-3{color:#ffea00 !important}.yellow.accent-4{background-color:#ffd600 !important}.yellow-text.text-accent-4{color:#ffd600 !important}.amber{background-color:#ffc107 !important}.amber-text{color:#ffc107 !important}.amber.lighten-5{background-color:#fff8e1 !important}.amber-text.text-lighten-5{color:#fff8e1 !important}.amber.lighten-4{background-color:#ffecb3 !important}.amber-text.text-lighten-4{color:#ffecb3 !important}.amber.lighten-3{background-color:#ffe082 !important}.amber-text.text-lighten-3{color:#ffe082 !important}.amber.lighten-2{background-color:#ffd54f !important}.amber-text.text-lighten-2{color:#ffd54f !important}.amber.lighten-1{background-color:#ffca28 !important}.amber-text.text-lighten-1{color:#ffca28 !important}.amber.darken-1{background-color:#ffb300 !important}.amber-text.text-darken-1{color:#ffb300 !important}.amber.darken-2{background-color:#ffa000 !important}.amber-text.text-darken-2{color:#ffa000 !important}.amber.darken-3{background-color:#ff8f00 !important}.amber-text.text-darken-3{color:#ff8f00 !important}.amber.darken-4{background-color:#ff6f00 !important}.amber-text.text-darken-4{color:#ff6f00 !important}.amber.accent-1{background-color:#ffe57f !important}.amber-text.text-accent-1{color:#ffe57f !important}.amber.accent-2{background-color:#ffd740 !important}.amber-text.text-accent-2{color:#ffd740 !important}.amber.accent-3{background-color:#ffc400 !important}.amber-text.text-accent-3{color:#ffc400 !important}.amber.accent-4{background-color:#ffab00 !important}.amber-text.text-accent-4{color:#ffab00 !important}.orange{background-color:#ff9800 !important}.orange-text{color:#ff9800 !important}.orange.lighten-5{background-color:#fff3e0 !important}.orange-text.text-lighten-5{color:#fff3e0 !important}.orange.lighten-4{background-color:#ffe0b2 !important}.orange-text.text-lighten-4{color:#ffe0b2 !important}.orange.lighten-3{background-color:#ffcc80 !important}.orange-text.text-lighten-3{color:#ffcc80 !important}.orange.lighten-2{background-color:#ffb74d !important}.orange-text.text-lighten-2{color:#ffb74d !important}.orange.lighten-1{background-color:#ffa726 !important}.orange-text.text-lighten-1{color:#ffa726 !important}.orange.darken-1{background-color:#fb8c00 !important}.orange-text.text-darken-1{color:#fb8c00 !important}.orange.darken-2{background-color:#f57c00 !important}.orange-text.text-darken-2{color:#f57c00 !important}.orange.darken-3{background-color:#ef6c00 !important}.orange-text.text-darken-3{color:#ef6c00 !important}.orange.darken-4{background-color:#e65100 !important}.orange-text.text-darken-4{color:#e65100 !important}.orange.accent-1{background-color:#ffd180 !important}.orange-text.text-accent-1{color:#ffd180 !important}.orange.accent-2{background-color:#ffab40 !important}.orange-text.text-accent-2{color:#ffab40 !important}.orange.accent-3{background-color:#ff9100 !important}.orange-text.text-accent-3{color:#ff9100 !important}.orange.accent-4{background-color:#ff6d00 !important}.orange-text.text-accent-4{color:#ff6d00 !important}.deep-orange{background-color:#ff5722 !important}.deep-orange-text{color:#ff5722 !important}.deep-orange.lighten-5{background-color:#fbe9e7 !important}.deep-orange-text.text-lighten-5{color:#fbe9e7 !important}.deep-orange.lighten-4{background-color:#ffccbc !important}.deep-orange-text.text-lighten-4{color:#ffccbc !important}.deep-orange.lighten-3{background-color:#ffab91 !important}.deep-orange-text.text-lighten-3{color:#ffab91 !important}.deep-orange.lighten-2{background-color:#ff8a65 !important}.deep-orange-text.text-lighten-2{color:#ff8a65 !important}.deep-orange.lighten-1{background-color:#ff7043 !important}.deep-orange-text.text-lighten-1{color:#ff7043 !important}.deep-orange.darken-1{background-color:#f4511e !important}.deep-orange-text.text-darken-1{color:#f4511e !important}.deep-orange.darken-2{background-color:#e64a19 !important}.deep-orange-text.text-darken-2{color:#e64a19 !important}.deep-orange.darken-3{background-color:#d84315 !important}.deep-orange-text.text-darken-3{color:#d84315 !important}.deep-orange.darken-4{background-color:#bf360c !important}.deep-orange-text.text-darken-4{color:#bf360c !important}.deep-orange.accent-1{background-color:#ff9e80 !important}.deep-orange-text.text-accent-1{color:#ff9e80 !important}.deep-orange.accent-2{background-color:#ff6e40 !important}.deep-orange-text.text-accent-2{color:#ff6e40 !important}.deep-orange.accent-3{background-color:#ff3d00 !important}.deep-orange-text.text-accent-3{color:#ff3d00 !important}.deep-orange.accent-4{background-color:#dd2c00 !important}.deep-orange-text.text-accent-4{color:#dd2c00 !important}.brown{background-color:#795548 !important}.brown-text{color:#795548 !important}.brown.lighten-5{background-color:#efebe9 !important}.brown-text.text-lighten-5{color:#efebe9 !important}.brown.lighten-4{background-color:#d7ccc8 !important}.brown-text.text-lighten-4{color:#d7ccc8 !important}.brown.lighten-3{background-color:#bcaaa4 !important}.brown-text.text-lighten-3{color:#bcaaa4 !important}.brown.lighten-2{background-color:#a1887f !important}.brown-text.text-lighten-2{color:#a1887f !important}.brown.lighten-1{background-color:#8d6e63 !important}.brown-text.text-lighten-1{color:#8d6e63 !important}.brown.darken-1{background-color:#6d4c41 !important}.brown-text.text-darken-1{color:#6d4c41 !important}.brown.darken-2{background-color:#5d4037 !important}.brown-text.text-darken-2{color:#5d4037 !important}.brown.darken-3{background-color:#4e342e !important}.brown-text.text-darken-3{color:#4e342e !important}.brown.darken-4{background-color:#3e2723 !important}.brown-text.text-darken-4{color:#3e2723 !important}.blue-grey{background-color:#607d8b !important}.blue-grey-text{color:#607d8b !important}.blue-grey.lighten-5{background-color:#eceff1 !important}.blue-grey-text.text-lighten-5{color:#eceff1 !important}.blue-grey.lighten-4{background-color:#cfd8dc !important}.blue-grey-text.text-lighten-4{color:#cfd8dc !important}.blue-grey.lighten-3{background-color:#b0bec5 !important}.blue-grey-text.text-lighten-3{color:#b0bec5 !important}.blue-grey.lighten-2{background-color:#90a4ae !important}.blue-grey-text.text-lighten-2{color:#90a4ae !important}.blue-grey.lighten-1{background-color:#78909c !important}.blue-grey-text.text-lighten-1{color:#78909c !important}.blue-grey.darken-1{background-color:#546e7a !important}.blue-grey-text.text-darken-1{color:#546e7a !important}.blue-grey.darken-2{background-color:#455a64 !important}.blue-grey-text.text-darken-2{color:#455a64 !important}.blue-grey.darken-3{background-color:#37474f !important}.blue-grey-text.text-darken-3{color:#37474f !important}.blue-grey.darken-4{background-color:#263238 !important}.blue-grey-text.text-darken-4{color:#263238 !important}.grey{background-color:#9e9e9e !important}.grey-text{color:#9e9e9e !important}.grey.lighten-5{background-color:#fafafa !important}.grey-text.text-lighten-5{color:#fafafa !important}.grey.lighten-4{background-color:#f5f5f5 !important}.grey-text.text-lighten-4{color:#f5f5f5 !important}.grey.lighten-3{background-color:#eee !important}.grey-text.text-lighten-3{color:#eee !important}.grey.lighten-2{background-color:#e0e0e0 !important}.grey-text.text-lighten-2{color:#e0e0e0 !important}.grey.lighten-1{background-color:#bdbdbd !important}.grey-text.text-lighten-1{color:#bdbdbd !important}.grey.darken-1{background-color:#757575 !important}.grey-text.text-darken-1{color:#757575 !important}.grey.darken-2{background-color:#616161 !important}.grey-text.text-darken-2{color:#616161 !important}.grey.darken-3{background-color:#424242 !important}.grey-text.text-darken-3{color:#424242 !important}.grey.darken-4{background-color:#212121 !important}.grey-text.text-darken-4{color:#212121 !important}.black{background-color:#000 !important}.black-text{color:#000 !important}.white{background-color:#fff !important}.white-text{color:#fff !important}.transparent{background-color:rgba(0,0,0,0) !important}.transparent-text{color:rgba(0,0,0,0) !important}/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:0.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-cancel-button,[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,*:before,*:after{-webkit-box-sizing:inherit;box-sizing:inherit}button,input,optgroup,select,textarea{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}ul:not(.browser-default){padding-left:0;list-style-type:none}ul:not(.browser-default)>li{list-style-type:none}a{color:#039be5;text-decoration:none;-webkit-tap-highlight-color:transparent}.valign-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.clearfix{clear:both}.z-depth-0{-webkit-box-shadow:none !important;box-shadow:none !important}.z-depth-1,nav,.card-panel,.card,.toast,.btn,.btn-large,.btn-small,.btn-floating,.dropdown-content,.collapsible,.sidenav{-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2)}.z-depth-1-half,.btn:hover,.btn-large:hover,.btn-small:hover,.btn-floating:hover{-webkit-box-shadow:0 3px 3px 0 rgba(0,0,0,0.14),0 1px 7px 0 rgba(0,0,0,0.12),0 3px 1px -1px rgba(0,0,0,0.2);box-shadow:0 3px 3px 0 rgba(0,0,0,0.14),0 1px 7px 0 rgba(0,0,0,0.12),0 3px 1px -1px rgba(0,0,0,0.2)}.z-depth-2{-webkit-box-shadow:0 4px 5px 0 rgba(0,0,0,0.14),0 1px 10px 0 rgba(0,0,0,0.12),0 2px 4px -1px rgba(0,0,0,0.3);box-shadow:0 4px 5px 0 rgba(0,0,0,0.14),0 1px 10px 0 rgba(0,0,0,0.12),0 2px 4px -1px rgba(0,0,0,0.3)}.z-depth-3{-webkit-box-shadow:0 8px 17px 2px rgba(0,0,0,0.14),0 3px 14px 2px rgba(0,0,0,0.12),0 5px 5px -3px rgba(0,0,0,0.2);box-shadow:0 8px 17px 2px rgba(0,0,0,0.14),0 3px 14px 2px rgba(0,0,0,0.12),0 5px 5px -3px rgba(0,0,0,0.2)}.z-depth-4{-webkit-box-shadow:0 16px 24px 2px rgba(0,0,0,0.14),0 6px 30px 5px rgba(0,0,0,0.12),0 8px 10px -7px rgba(0,0,0,0.2);box-shadow:0 16px 24px 2px rgba(0,0,0,0.14),0 6px 30px 5px rgba(0,0,0,0.12),0 8px 10px -7px rgba(0,0,0,0.2)}.z-depth-5,.modal{-webkit-box-shadow:0 24px 38px 3px rgba(0,0,0,0.14),0 9px 46px 8px rgba(0,0,0,0.12),0 11px 15px -7px rgba(0,0,0,0.2);box-shadow:0 24px 38px 3px rgba(0,0,0,0.14),0 9px 46px 8px rgba(0,0,0,0.12),0 11px 15px -7px rgba(0,0,0,0.2)}.hoverable{-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s, -webkit-box-shadow .25s}.hoverable:hover{-webkit-box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}.divider{height:1px;overflow:hidden;background-color:#e0e0e0}blockquote{margin:20px 0;padding-left:1.5rem;border-left:5px solid #ee6e73}i{line-height:inherit}i.left{float:left;margin-right:15px}i.right{float:right;margin-left:15px}i.tiny{font-size:1rem}i.small{font-size:2rem}i.medium{font-size:4rem}i.large{font-size:6rem}img.responsive-img,video.responsive-video{max-width:100%;height:auto}.pagination li{display:inline-block;border-radius:2px;text-align:center;vertical-align:top;height:30px}.pagination li a{color:#444;display:inline-block;font-size:1.2rem;padding:0 10px;line-height:30px}.pagination li.active a{color:#fff}.pagination li.active{background-color:#ee6e73}.pagination li.disabled a{cursor:default;color:#999}.pagination li i{font-size:2rem}.pagination li.pages ul li{display:inline-block;float:none}@media only screen and (max-width: 992px){.pagination{width:100%}.pagination li.prev,.pagination li.next{width:10%}.pagination li.pages{width:80%;overflow:hidden;white-space:nowrap}}.breadcrumb{font-size:18px;color:rgba(255,255,255,0.7)}.breadcrumb i,.breadcrumb [class^="mdi-"],.breadcrumb [class*="mdi-"],.breadcrumb i.material-icons{display:inline-block;float:left;font-size:24px}.breadcrumb:before{content:'\E5CC';color:rgba(255,255,255,0.7);vertical-align:top;display:inline-block;font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:25px;margin:0 10px 0 8px;-webkit-font-smoothing:antialiased}.breadcrumb:first-child:before{display:none}.breadcrumb:last-child{color:#fff}.parallax-container{position:relative;overflow:hidden;height:500px}.parallax-container .parallax{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1}.parallax-container .parallax img{opacity:0;position:absolute;left:50%;bottom:0;min-width:100%;min-height:100%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transform:translateX(-50%);transform:translateX(-50%)}.pin-top,.pin-bottom{position:relative}.pinned{position:fixed !important}ul.staggered-list li{opacity:0}.fade-in{opacity:0;-webkit-transform-origin:0 50%;transform-origin:0 50%}@media only screen and (max-width: 600px){.hide-on-small-only,.hide-on-small-and-down{display:none !important}}@media only screen and (max-width: 992px){.hide-on-med-and-down{display:none !important}}@media only screen and (min-width: 601px){.hide-on-med-and-up{display:none !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.hide-on-med-only{display:none !important}}@media only screen and (min-width: 993px){.hide-on-large-only{display:none !important}}@media only screen and (min-width: 1201px){.hide-on-extra-large-only{display:none !important}}@media only screen and (min-width: 1201px){.show-on-extra-large{display:block !important}}@media only screen and (min-width: 993px){.show-on-large{display:block !important}}@media only screen and (min-width: 600px) and (max-width: 992px){.show-on-medium{display:block !important}}@media only screen and (max-width: 600px){.show-on-small{display:block !important}}@media only screen and (min-width: 601px){.show-on-medium-and-up{display:block !important}}@media only screen and (max-width: 992px){.show-on-medium-and-down{display:block !important}}@media only screen and (max-width: 600px){.center-on-small-only{text-align:center}}.page-footer{padding-top:20px;color:#fff;background-color:#ee6e73}.page-footer .footer-copyright{overflow:hidden;min-height:50px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:10px 0px;color:rgba(255,255,255,0.8);background-color:rgba(51,51,51,0.08)}table,th,td{border:none}table{width:100%;display:table;border-collapse:collapse;border-spacing:0}table.striped tr{border-bottom:none}table.striped>tbody>tr:nth-child(odd){background-color:rgba(242,242,242,0.5)}table.striped>tbody>tr>td{border-radius:0}table.highlight>tbody>tr{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}table.highlight>tbody>tr:hover{background-color:rgba(242,242,242,0.5)}table.centered thead tr th,table.centered tbody tr td{text-align:center}tr{border-bottom:1px solid rgba(0,0,0,0.12)}td,th{padding:15px 5px;display:table-cell;text-align:left;vertical-align:middle;border-radius:2px}@media only screen and (max-width: 992px){table.responsive-table{width:100%;border-collapse:collapse;border-spacing:0;display:block;position:relative}table.responsive-table td:empty:before{content:'\00a0'}table.responsive-table th,table.responsive-table td{margin:0;vertical-align:top}table.responsive-table th{text-align:left}table.responsive-table thead{display:block;float:left}table.responsive-table thead tr{display:block;padding:0 10px 0 0}table.responsive-table thead tr th::before{content:"\00a0"}table.responsive-table tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}table.responsive-table tbody tr{display:inline-block;vertical-align:top}table.responsive-table th{display:block;text-align:right}table.responsive-table td{display:block;min-height:1.25em;text-align:left}table.responsive-table tr{border-bottom:none;padding:0 10px}table.responsive-table thead{border:0;border-right:1px solid rgba(0,0,0,0.12)}}.collection{margin:.5rem 0 1rem 0;border:1px solid #e0e0e0;border-radius:2px;overflow:hidden;position:relative}.collection .collection-item{background-color:#fff;line-height:1.5rem;padding:10px 20px;margin:0;border-bottom:1px solid #e0e0e0}.collection .collection-item.avatar{min-height:84px;padding-left:72px;position:relative}.collection .collection-item.avatar:not(.circle-clipper)>.circle,.collection .collection-item.avatar :not(.circle-clipper)>.circle{position:absolute;width:42px;height:42px;overflow:hidden;left:15px;display:inline-block;vertical-align:middle}.collection .collection-item.avatar i.circle{font-size:18px;line-height:42px;color:#fff;background-color:#999;text-align:center}.collection .collection-item.avatar .title{font-size:16px}.collection .collection-item.avatar p{margin:0}.collection .collection-item.avatar .secondary-content{position:absolute;top:16px;right:16px}.collection .collection-item:last-child{border-bottom:none}.collection .collection-item.active{background-color:#26a69a;color:#eafaf9}.collection .collection-item.active .secondary-content{color:#fff}.collection a.collection-item{display:block;-webkit-transition:.25s;transition:.25s;color:#26a69a}.collection a.collection-item:not(.active):hover{background-color:#ddd}.collection.with-header .collection-header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:10px 20px}.collection.with-header .collection-item{padding-left:30px}.collection.with-header .collection-item.avatar{padding-left:72px}.secondary-content{float:right;color:#26a69a}.collapsible .collection{margin:0;border:none}.video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden}.video-container iframe,.video-container object,.video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}.progress{position:relative;height:4px;display:block;width:100%;background-color:#acece6;border-radius:2px;margin:.5rem 0 1rem 0;overflow:hidden}.progress .determinate{position:absolute;top:0;left:0;bottom:0;background-color:#26a69a;-webkit-transition:width .3s linear;transition:width .3s linear}.progress .indeterminate{background-color:#26a69a}.progress .indeterminate:before{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;animation:indeterminate 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite}.progress .indeterminate:after{content:'';position:absolute;background-color:inherit;top:0;left:0;bottom:0;will-change:left, right;-webkit-animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;animation:indeterminate-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;-webkit-animation-delay:1.15s;animation-delay:1.15s}@-webkit-keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@keyframes indeterminate{0%{left:-35%;right:100%}60%{left:100%;right:-90%}100%{left:100%;right:-90%}}@-webkit-keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}100%{left:107%;right:-8%}}.hide{display:none !important}.left-align{text-align:left}.right-align{text-align:right}.center,.center-align{text-align:center}.left{float:left !important}.right{float:right !important}.no-select,input[type=range],input[type=range]+.thumb{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.circle{border-radius:50%}.center-block{display:block;margin-left:auto;margin-right:auto}.truncate{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-padding{padding:0 !important}span.badge{min-width:3rem;padding:0 6px;margin-left:14px;text-align:center;font-size:1rem;line-height:22px;height:22px;color:#757575;float:right;-webkit-box-sizing:border-box;box-sizing:border-box}span.badge.new{font-weight:300;font-size:0.8rem;color:#fff;background-color:#26a69a;border-radius:2px}span.badge.new:after{content:" new"}span.badge[data-badge-caption]::after{content:" " attr(data-badge-caption)}nav ul a span.badge{display:inline-block;float:none;margin-left:4px;line-height:22px;height:22px;-webkit-font-smoothing:auto}.collection-item span.badge{margin-top:calc(.75rem - 11px)}.collapsible span.badge{margin-left:auto}.sidenav span.badge{margin-top:calc(24px - 11px)}table span.badge{display:inline-block;float:none;margin-left:auto}.material-icons{text-rendering:optimizeLegibility;-webkit-font-feature-settings:'liga';-moz-font-feature-settings:'liga';font-feature-settings:'liga'}.container{margin:0 auto;max-width:1280px;width:90%}@media only screen and (min-width: 601px){.container{width:85%}}@media only screen and (min-width: 993px){.container{width:70%}}.col .row{margin-left:-.75rem;margin-right:-.75rem}.section{padding-top:1rem;padding-bottom:1rem}.section.no-pad{padding:0}.section.no-pad-bot{padding-bottom:0}.section.no-pad-top{padding-top:0}.row{margin-left:auto;margin-right:auto;margin-bottom:20px}.row:after{content:"";display:table;clear:both}.row .col{float:left;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 .75rem;min-height:1px}.row .col[class*="push-"],.row .col[class*="pull-"]{position:relative}.row .col.s1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.s4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.s7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.s10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.s11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.s12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-s1{margin-left:8.3333333333%}.row .col.pull-s1{right:8.3333333333%}.row .col.push-s1{left:8.3333333333%}.row .col.offset-s2{margin-left:16.6666666667%}.row .col.pull-s2{right:16.6666666667%}.row .col.push-s2{left:16.6666666667%}.row .col.offset-s3{margin-left:25%}.row .col.pull-s3{right:25%}.row .col.push-s3{left:25%}.row .col.offset-s4{margin-left:33.3333333333%}.row .col.pull-s4{right:33.3333333333%}.row .col.push-s4{left:33.3333333333%}.row .col.offset-s5{margin-left:41.6666666667%}.row .col.pull-s5{right:41.6666666667%}.row .col.push-s5{left:41.6666666667%}.row .col.offset-s6{margin-left:50%}.row .col.pull-s6{right:50%}.row .col.push-s6{left:50%}.row .col.offset-s7{margin-left:58.3333333333%}.row .col.pull-s7{right:58.3333333333%}.row .col.push-s7{left:58.3333333333%}.row .col.offset-s8{margin-left:66.6666666667%}.row .col.pull-s8{right:66.6666666667%}.row .col.push-s8{left:66.6666666667%}.row .col.offset-s9{margin-left:75%}.row .col.pull-s9{right:75%}.row .col.push-s9{left:75%}.row .col.offset-s10{margin-left:83.3333333333%}.row .col.pull-s10{right:83.3333333333%}.row .col.push-s10{left:83.3333333333%}.row .col.offset-s11{margin-left:91.6666666667%}.row .col.pull-s11{right:91.6666666667%}.row .col.push-s11{left:91.6666666667%}.row .col.offset-s12{margin-left:100%}.row .col.pull-s12{right:100%}.row .col.push-s12{left:100%}@media only screen and (min-width: 601px){.row .col.m1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.m4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.m7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.m10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.m11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.m12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-m1{margin-left:8.3333333333%}.row .col.pull-m1{right:8.3333333333%}.row .col.push-m1{left:8.3333333333%}.row .col.offset-m2{margin-left:16.6666666667%}.row .col.pull-m2{right:16.6666666667%}.row .col.push-m2{left:16.6666666667%}.row .col.offset-m3{margin-left:25%}.row .col.pull-m3{right:25%}.row .col.push-m3{left:25%}.row .col.offset-m4{margin-left:33.3333333333%}.row .col.pull-m4{right:33.3333333333%}.row .col.push-m4{left:33.3333333333%}.row .col.offset-m5{margin-left:41.6666666667%}.row .col.pull-m5{right:41.6666666667%}.row .col.push-m5{left:41.6666666667%}.row .col.offset-m6{margin-left:50%}.row .col.pull-m6{right:50%}.row .col.push-m6{left:50%}.row .col.offset-m7{margin-left:58.3333333333%}.row .col.pull-m7{right:58.3333333333%}.row .col.push-m7{left:58.3333333333%}.row .col.offset-m8{margin-left:66.6666666667%}.row .col.pull-m8{right:66.6666666667%}.row .col.push-m8{left:66.6666666667%}.row .col.offset-m9{margin-left:75%}.row .col.pull-m9{right:75%}.row .col.push-m9{left:75%}.row .col.offset-m10{margin-left:83.3333333333%}.row .col.pull-m10{right:83.3333333333%}.row .col.push-m10{left:83.3333333333%}.row .col.offset-m11{margin-left:91.6666666667%}.row .col.pull-m11{right:91.6666666667%}.row .col.push-m11{left:91.6666666667%}.row .col.offset-m12{margin-left:100%}.row .col.pull-m12{right:100%}.row .col.push-m12{left:100%}}@media only screen and (min-width: 993px){.row .col.l1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.l4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.l7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.l10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.l11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.l12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-l1{margin-left:8.3333333333%}.row .col.pull-l1{right:8.3333333333%}.row .col.push-l1{left:8.3333333333%}.row .col.offset-l2{margin-left:16.6666666667%}.row .col.pull-l2{right:16.6666666667%}.row .col.push-l2{left:16.6666666667%}.row .col.offset-l3{margin-left:25%}.row .col.pull-l3{right:25%}.row .col.push-l3{left:25%}.row .col.offset-l4{margin-left:33.3333333333%}.row .col.pull-l4{right:33.3333333333%}.row .col.push-l4{left:33.3333333333%}.row .col.offset-l5{margin-left:41.6666666667%}.row .col.pull-l5{right:41.6666666667%}.row .col.push-l5{left:41.6666666667%}.row .col.offset-l6{margin-left:50%}.row .col.pull-l6{right:50%}.row .col.push-l6{left:50%}.row .col.offset-l7{margin-left:58.3333333333%}.row .col.pull-l7{right:58.3333333333%}.row .col.push-l7{left:58.3333333333%}.row .col.offset-l8{margin-left:66.6666666667%}.row .col.pull-l8{right:66.6666666667%}.row .col.push-l8{left:66.6666666667%}.row .col.offset-l9{margin-left:75%}.row .col.pull-l9{right:75%}.row .col.push-l9{left:75%}.row .col.offset-l10{margin-left:83.3333333333%}.row .col.pull-l10{right:83.3333333333%}.row .col.push-l10{left:83.3333333333%}.row .col.offset-l11{margin-left:91.6666666667%}.row .col.pull-l11{right:91.6666666667%}.row .col.push-l11{left:91.6666666667%}.row .col.offset-l12{margin-left:100%}.row .col.pull-l12{right:100%}.row .col.push-l12{left:100%}}@media only screen and (min-width: 1201px){.row .col.xl1{width:8.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl2{width:16.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl3{width:25%;margin-left:auto;left:auto;right:auto}.row .col.xl4{width:33.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl5{width:41.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl6{width:50%;margin-left:auto;left:auto;right:auto}.row .col.xl7{width:58.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl8{width:66.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl9{width:75%;margin-left:auto;left:auto;right:auto}.row .col.xl10{width:83.3333333333%;margin-left:auto;left:auto;right:auto}.row .col.xl11{width:91.6666666667%;margin-left:auto;left:auto;right:auto}.row .col.xl12{width:100%;margin-left:auto;left:auto;right:auto}.row .col.offset-xl1{margin-left:8.3333333333%}.row .col.pull-xl1{right:8.3333333333%}.row .col.push-xl1{left:8.3333333333%}.row .col.offset-xl2{margin-left:16.6666666667%}.row .col.pull-xl2{right:16.6666666667%}.row .col.push-xl2{left:16.6666666667%}.row .col.offset-xl3{margin-left:25%}.row .col.pull-xl3{right:25%}.row .col.push-xl3{left:25%}.row .col.offset-xl4{margin-left:33.3333333333%}.row .col.pull-xl4{right:33.3333333333%}.row .col.push-xl4{left:33.3333333333%}.row .col.offset-xl5{margin-left:41.6666666667%}.row .col.pull-xl5{right:41.6666666667%}.row .col.push-xl5{left:41.6666666667%}.row .col.offset-xl6{margin-left:50%}.row .col.pull-xl6{right:50%}.row .col.push-xl6{left:50%}.row .col.offset-xl7{margin-left:58.3333333333%}.row .col.pull-xl7{right:58.3333333333%}.row .col.push-xl7{left:58.3333333333%}.row .col.offset-xl8{margin-left:66.6666666667%}.row .col.pull-xl8{right:66.6666666667%}.row .col.push-xl8{left:66.6666666667%}.row .col.offset-xl9{margin-left:75%}.row .col.pull-xl9{right:75%}.row .col.push-xl9{left:75%}.row .col.offset-xl10{margin-left:83.3333333333%}.row .col.pull-xl10{right:83.3333333333%}.row .col.push-xl10{left:83.3333333333%}.row .col.offset-xl11{margin-left:91.6666666667%}.row .col.pull-xl11{right:91.6666666667%}.row .col.push-xl11{left:91.6666666667%}.row .col.offset-xl12{margin-left:100%}.row .col.pull-xl12{right:100%}.row .col.push-xl12{left:100%}}nav{color:#fff;background-color:#ee6e73;width:100%;height:56px;line-height:56px}nav.nav-extended{height:auto}nav.nav-extended .nav-wrapper{min-height:56px;height:auto}nav.nav-extended .nav-content{position:relative;line-height:normal}nav a{color:#fff}nav i,nav [class^="mdi-"],nav [class*="mdi-"],nav i.material-icons{display:block;font-size:24px;height:56px;line-height:56px}nav .nav-wrapper{position:relative;height:100%}@media only screen and (min-width: 993px){nav a.sidenav-trigger{display:none}}nav .sidenav-trigger{float:left;position:relative;z-index:1;height:56px;margin:0 18px}nav .sidenav-trigger i{height:56px;line-height:56px}nav .brand-logo{position:absolute;color:#fff;display:inline-block;font-size:2.1rem;padding:0}nav .brand-logo.center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}@media only screen and (max-width: 992px){nav .brand-logo{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}nav .brand-logo.left,nav .brand-logo.right{padding:0;-webkit-transform:none;transform:none}nav .brand-logo.left{left:0.5rem}nav .brand-logo.right{right:0.5rem;left:auto}}nav .brand-logo.right{right:0.5rem;padding:0}nav .brand-logo i,nav .brand-logo [class^="mdi-"],nav .brand-logo [class*="mdi-"],nav .brand-logo i.material-icons{float:left;margin-right:15px}nav .nav-title{display:inline-block;font-size:32px;padding:28px 0}nav ul{margin:0}nav ul li{-webkit-transition:background-color .3s;transition:background-color .3s;float:left;padding:0}nav ul li.active{background-color:rgba(0,0,0,0.1)}nav ul a{-webkit-transition:background-color .3s;transition:background-color .3s;font-size:1rem;color:#fff;display:block;padding:0 15px;cursor:pointer}nav ul a.btn,nav ul a.btn-large,nav ul a.btn-small,nav ul a.btn-large,nav ul a.btn-flat,nav ul a.btn-floating{margin-top:-2px;margin-left:15px;margin-right:15px}nav ul a.btn>.material-icons,nav ul a.btn-large>.material-icons,nav ul a.btn-small>.material-icons,nav ul a.btn-large>.material-icons,nav ul a.btn-flat>.material-icons,nav ul a.btn-floating>.material-icons{height:inherit;line-height:inherit}nav ul a:hover{background-color:rgba(0,0,0,0.1)}nav ul.left{float:left}nav form{height:100%}nav .input-field{margin:0;height:100%}nav .input-field input{height:100%;font-size:1.2rem;border:none;padding-left:2rem}nav .input-field input:focus,nav .input-field input[type=text]:valid,nav .input-field input[type=password]:valid,nav .input-field input[type=email]:valid,nav .input-field input[type=url]:valid,nav .input-field input[type=date]:valid{border:none;-webkit-box-shadow:none;box-shadow:none}nav .input-field label{top:0;left:0}nav .input-field label i{color:rgba(255,255,255,0.7);-webkit-transition:color .3s;transition:color .3s}nav .input-field label.active i{color:#fff}.navbar-fixed{position:relative;height:56px;z-index:997}.navbar-fixed nav{position:fixed}@media only screen and (min-width: 601px){nav.nav-extended .nav-wrapper{min-height:64px}nav,nav .nav-wrapper i,nav a.sidenav-trigger,nav a.sidenav-trigger i{height:64px;line-height:64px}.navbar-fixed{height:64px}}a{text-decoration:none}html{line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-weight:normal;color:rgba(0,0,0,0.87)}@media only screen and (min-width: 0){html{font-size:14px}}@media only screen and (min-width: 992px){html{font-size:14.5px}}@media only screen and (min-width: 1200px){html{font-size:15px}}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:1.3}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{font-weight:inherit}h1{font-size:4.2rem;line-height:110%;margin:2.8rem 0 1.68rem 0}h2{font-size:3.56rem;line-height:110%;margin:2.3733333333rem 0 1.424rem 0}h3{font-size:2.92rem;line-height:110%;margin:1.9466666667rem 0 1.168rem 0}h4{font-size:2.28rem;line-height:110%;margin:1.52rem 0 .912rem 0}h5{font-size:1.64rem;line-height:110%;margin:1.0933333333rem 0 .656rem 0}h6{font-size:1.15rem;line-height:110%;margin:.7666666667rem 0 .46rem 0}em{font-style:italic}strong{font-weight:500}small{font-size:75%}.light{font-weight:300}.thin{font-weight:200}@media only screen and (min-width: 360px){.flow-text{font-size:1.2rem}}@media only screen and (min-width: 390px){.flow-text{font-size:1.224rem}}@media only screen and (min-width: 420px){.flow-text{font-size:1.248rem}}@media only screen and (min-width: 450px){.flow-text{font-size:1.272rem}}@media only screen and (min-width: 480px){.flow-text{font-size:1.296rem}}@media only screen and (min-width: 510px){.flow-text{font-size:1.32rem}}@media only screen and (min-width: 540px){.flow-text{font-size:1.344rem}}@media only screen and (min-width: 570px){.flow-text{font-size:1.368rem}}@media only screen and (min-width: 600px){.flow-text{font-size:1.392rem}}@media only screen and (min-width: 630px){.flow-text{font-size:1.416rem}}@media only screen and (min-width: 660px){.flow-text{font-size:1.44rem}}@media only screen and (min-width: 690px){.flow-text{font-size:1.464rem}}@media only screen and (min-width: 720px){.flow-text{font-size:1.488rem}}@media only screen and (min-width: 750px){.flow-text{font-size:1.512rem}}@media only screen and (min-width: 780px){.flow-text{font-size:1.536rem}}@media only screen and (min-width: 810px){.flow-text{font-size:1.56rem}}@media only screen and (min-width: 840px){.flow-text{font-size:1.584rem}}@media only screen and (min-width: 870px){.flow-text{font-size:1.608rem}}@media only screen and (min-width: 900px){.flow-text{font-size:1.632rem}}@media only screen and (min-width: 930px){.flow-text{font-size:1.656rem}}@media only screen and (min-width: 960px){.flow-text{font-size:1.68rem}}@media only screen and (max-width: 360px){.flow-text{font-size:1.2rem}}.scale-transition{-webkit-transition:-webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:-webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important;transition:transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63), -webkit-transform 0.3s cubic-bezier(0.53, 0.01, 0.36, 1.63) !important}.scale-transition.scale-out{-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform .2s !important;transition:-webkit-transform .2s !important;transition:transform .2s !important;transition:transform .2s, -webkit-transform .2s !important}.scale-transition.scale-in{-webkit-transform:scale(1);transform:scale(1)}.card-panel{-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s, -webkit-box-shadow .25s;padding:24px;margin:.5rem 0 1rem 0;border-radius:2px;background-color:#fff}.card{position:relative;margin:.5rem 0 1rem 0;background-color:#fff;-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s, -webkit-box-shadow .25s;border-radius:2px}.card .card-title{font-size:24px;font-weight:300}.card .card-title.activator{cursor:pointer}.card.small,.card.medium,.card.large{position:relative}.card.small .card-image,.card.medium .card-image,.card.large .card-image{max-height:60%;overflow:hidden}.card.small .card-image+.card-content,.card.medium .card-image+.card-content,.card.large .card-image+.card-content{max-height:40%}.card.small .card-content,.card.medium .card-content,.card.large .card-content{max-height:100%;overflow:hidden}.card.small .card-action,.card.medium .card-action,.card.large .card-action{position:absolute;bottom:0;left:0;right:0}.card.small{height:300px}.card.medium{height:400px}.card.large{height:500px}.card.horizontal{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.card.horizontal.small .card-image,.card.horizontal.medium .card-image,.card.horizontal.large .card-image{height:100%;max-height:none;overflow:visible}.card.horizontal.small .card-image img,.card.horizontal.medium .card-image img,.card.horizontal.large .card-image img{height:100%}.card.horizontal .card-image{max-width:50%}.card.horizontal .card-image img{border-radius:2px 0 0 2px;max-width:100%;width:auto}.card.horizontal .card-stacked{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;position:relative}.card.horizontal .card-stacked .card-content{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.card.sticky-action .card-action{z-index:2}.card.sticky-action .card-reveal{z-index:1;padding-bottom:64px}.card .card-image{position:relative}.card .card-image img{display:block;border-radius:2px 2px 0 0;position:relative;left:0;right:0;top:0;bottom:0;width:100%}.card .card-image .card-title{color:#fff;position:absolute;bottom:0;left:0;max-width:100%;padding:24px}.card .card-content{padding:24px;border-radius:0 0 2px 2px}.card .card-content p{margin:0}.card .card-content .card-title{display:block;line-height:32px;margin-bottom:8px}.card .card-content .card-title i{line-height:32px}.card .card-action{background-color:inherit;border-top:1px solid rgba(160,160,160,0.2);position:relative;padding:16px 24px}.card .card-action:last-child{border-radius:0 0 2px 2px}.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating){color:#ffab40;margin-right:24px;-webkit-transition:color .3s ease;transition:color .3s ease;text-transform:uppercase}.card .card-action a:not(.btn):not(.btn-large):not(.btn-small):not(.btn-large):not(.btn-floating):hover{color:#ffd8a6}.card .card-reveal{padding:24px;position:absolute;background-color:#fff;width:100%;overflow-y:auto;left:0;top:100%;height:100%;z-index:3;display:none}.card .card-reveal .card-title{cursor:pointer;display:block}#toast-container{display:block;position:fixed;z-index:10000}@media only screen and (max-width: 600px){#toast-container{min-width:100%;bottom:0%}}@media only screen and (min-width: 601px) and (max-width: 992px){#toast-container{left:5%;bottom:7%;max-width:90%}}@media only screen and (min-width: 993px){#toast-container{top:10%;right:7%;max-width:86%}}.toast{border-radius:2px;top:35px;width:auto;margin-top:10px;position:relative;max-width:100%;height:auto;min-height:48px;line-height:1.5em;background-color:#323232;padding:10px 25px;font-size:1.1rem;font-weight:300;color:#fff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;cursor:default}.toast .toast-action{color:#eeff41;font-weight:500;margin-right:-25px;margin-left:3rem}.toast.rounded{border-radius:24px}@media only screen and (max-width: 600px){.toast{width:100%;border-radius:0}}.tabs{position:relative;overflow-x:auto;overflow-y:hidden;height:48px;width:100%;background-color:#fff;margin:0 auto;white-space:nowrap}.tabs.tabs-transparent{background-color:transparent}.tabs.tabs-transparent .tab a,.tabs.tabs-transparent .tab.disabled a,.tabs.tabs-transparent .tab.disabled a:hover{color:rgba(255,255,255,0.7)}.tabs.tabs-transparent .tab a:hover,.tabs.tabs-transparent .tab a.active{color:#fff}.tabs.tabs-transparent .indicator{background-color:#fff}.tabs.tabs-fixed-width{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs.tabs-fixed-width .tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab{display:inline-block;text-align:center;line-height:48px;height:48px;padding:0;margin:0;text-transform:uppercase}.tabs .tab a{color:rgba(238,110,115,0.7);display:block;width:100%;height:100%;padding:0 24px;font-size:14px;text-overflow:ellipsis;overflow:hidden;-webkit-transition:color .28s ease, background-color .28s ease;transition:color .28s ease, background-color .28s ease}.tabs .tab a:focus,.tabs .tab a:focus.active{background-color:rgba(246,178,181,0.2);outline:none}.tabs .tab a:hover,.tabs .tab a.active{background-color:transparent;color:#ee6e73}.tabs .tab.disabled a,.tabs .tab.disabled a:hover{color:rgba(238,110,115,0.4);cursor:default}.tabs .indicator{position:absolute;bottom:0;height:2px;background-color:#f6b2b5;will-change:left, right}@media only screen and (max-width: 992px){.tabs{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.tabs .tab{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.tabs .tab a{padding:0 12px}}.material-tooltip{padding:10px 8px;font-size:1rem;z-index:2000;background-color:transparent;border-radius:2px;color:#fff;min-height:36px;line-height:120%;opacity:0;position:absolute;text-align:center;max-width:calc(100% - 4px);overflow:hidden;left:0;top:0;pointer-events:none;visibility:hidden;background-color:#323232}.backdrop{position:absolute;opacity:0;height:7px;width:14px;border-radius:0 0 50% 50%;background-color:#323232;z-index:-1;-webkit-transform-origin:50% 0%;transform-origin:50% 0%;visibility:hidden}.btn,.btn-large,.btn-small,.btn-flat{border:none;border-radius:2px;display:inline-block;height:36px;line-height:36px;padding:0 16px;text-transform:uppercase;vertical-align:middle;-webkit-tap-highlight-color:transparent}.btn.disabled,.disabled.btn-large,.disabled.btn-small,.btn-floating.disabled,.btn-large.disabled,.btn-small.disabled,.btn-flat.disabled,.btn:disabled,.btn-large:disabled,.btn-small:disabled,.btn-floating:disabled,.btn-large:disabled,.btn-small:disabled,.btn-flat:disabled,.btn[disabled],.btn-large[disabled],.btn-small[disabled],.btn-floating[disabled],.btn-large[disabled],.btn-small[disabled],.btn-flat[disabled]{pointer-events:none;background-color:#DFDFDF !important;-webkit-box-shadow:none;box-shadow:none;color:#9F9F9F !important;cursor:default}.btn.disabled:hover,.disabled.btn-large:hover,.disabled.btn-small:hover,.btn-floating.disabled:hover,.btn-large.disabled:hover,.btn-small.disabled:hover,.btn-flat.disabled:hover,.btn:disabled:hover,.btn-large:disabled:hover,.btn-small:disabled:hover,.btn-floating:disabled:hover,.btn-large:disabled:hover,.btn-small:disabled:hover,.btn-flat:disabled:hover,.btn[disabled]:hover,.btn-large[disabled]:hover,.btn-small[disabled]:hover,.btn-floating[disabled]:hover,.btn-large[disabled]:hover,.btn-small[disabled]:hover,.btn-flat[disabled]:hover{background-color:#DFDFDF !important;color:#9F9F9F !important}.btn,.btn-large,.btn-small,.btn-floating,.btn-large,.btn-small,.btn-flat{font-size:14px;outline:0}.btn i,.btn-large i,.btn-small i,.btn-floating i,.btn-large i,.btn-small i,.btn-flat i{font-size:1.3rem;line-height:inherit}.btn:focus,.btn-large:focus,.btn-small:focus,.btn-floating:focus{background-color:#1d7d74}.btn,.btn-large,.btn-small{text-decoration:none;color:#fff;background-color:#26a69a;text-align:center;letter-spacing:.5px;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;cursor:pointer}.btn:hover,.btn-large:hover,.btn-small:hover{background-color:#2bbbad}.btn-floating{display:inline-block;color:#fff;position:relative;overflow:hidden;z-index:1;width:40px;height:40px;line-height:40px;padding:0;background-color:#26a69a;border-radius:50%;-webkit-transition:background-color .3s;transition:background-color .3s;cursor:pointer;vertical-align:middle}.btn-floating:hover{background-color:#26a69a}.btn-floating:before{border-radius:0}.btn-floating.btn-large{width:56px;height:56px;padding:0}.btn-floating.btn-large.halfway-fab{bottom:-28px}.btn-floating.btn-large i{line-height:56px}.btn-floating.btn-small{width:32.4px;height:32.4px}.btn-floating.btn-small.halfway-fab{bottom:-16.2px}.btn-floating.btn-small i{line-height:32.4px}.btn-floating.halfway-fab{position:absolute;right:24px;bottom:-20px}.btn-floating.halfway-fab.left{right:auto;left:24px}.btn-floating i{width:inherit;display:inline-block;text-align:center;color:#fff;font-size:1.6rem;line-height:40px}button.btn-floating{border:none}.fixed-action-btn{position:fixed;right:23px;bottom:23px;padding-top:15px;margin-bottom:0;z-index:997}.fixed-action-btn.active ul{visibility:visible}.fixed-action-btn.direction-left,.fixed-action-btn.direction-right{padding:0 0 0 15px}.fixed-action-btn.direction-left ul,.fixed-action-btn.direction-right ul{text-align:right;right:64px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:100%;left:auto;width:500px}.fixed-action-btn.direction-left ul li,.fixed-action-btn.direction-right ul li{display:inline-block;margin:7.5px 15px 0 0}.fixed-action-btn.direction-right{padding:0 15px 0 0}.fixed-action-btn.direction-right ul{text-align:left;direction:rtl;left:64px;right:auto}.fixed-action-btn.direction-right ul li{margin:7.5px 0 0 15px}.fixed-action-btn.direction-bottom{padding:0 0 15px 0}.fixed-action-btn.direction-bottom ul{top:64px;bottom:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.fixed-action-btn.direction-bottom ul li{margin:15px 0 0 0}.fixed-action-btn.toolbar{padding:0;height:56px}.fixed-action-btn.toolbar.active>a i{opacity:0}.fixed-action-btn.toolbar ul{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;top:0;bottom:0;z-index:1}.fixed-action-btn.toolbar ul li{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:inline-block;margin:0;height:100%;-webkit-transition:none;transition:none}.fixed-action-btn.toolbar ul li a{display:block;overflow:hidden;position:relative;width:100%;height:100%;background-color:transparent;-webkit-box-shadow:none;box-shadow:none;color:#fff;line-height:56px;z-index:1}.fixed-action-btn.toolbar ul li a i{line-height:inherit}.fixed-action-btn ul{left:0;right:0;text-align:center;position:absolute;bottom:64px;margin:0;visibility:hidden}.fixed-action-btn ul li{margin-bottom:15px}.fixed-action-btn ul a.btn-floating{opacity:0}.fixed-action-btn .fab-backdrop{position:absolute;top:0;left:0;z-index:-1;width:40px;height:40px;background-color:#26a69a;border-radius:50%;-webkit-transform:scale(0);transform:scale(0)}.btn-flat{-webkit-box-shadow:none;box-shadow:none;background-color:transparent;color:#343434;cursor:pointer;-webkit-transition:background-color .2s;transition:background-color .2s}.btn-flat:focus,.btn-flat:hover{-webkit-box-shadow:none;box-shadow:none}.btn-flat:focus{background-color:rgba(0,0,0,0.1)}.btn-flat.disabled,.btn-flat.btn-flat[disabled]{background-color:transparent !important;color:#b3b2b2 !important;cursor:default}.btn-large{height:54px;line-height:54px;font-size:15px;padding:0 28px}.btn-large i{font-size:1.6rem}.btn-small{height:32.4px;line-height:32.4px;font-size:13px}.btn-small i{font-size:1.2rem}.btn-block{display:block}.dropdown-content{background-color:#fff;margin:0;display:none;min-width:100px;overflow-y:auto;opacity:0;position:absolute;left:0;top:0;z-index:9999;-webkit-transform-origin:0 0;transform-origin:0 0}.dropdown-content:focus{outline:0}.dropdown-content li{clear:both;color:rgba(0,0,0,0.87);cursor:pointer;min-height:50px;line-height:1.5rem;width:100%;text-align:left}.dropdown-content li:hover,.dropdown-content li.active{background-color:#eee}.dropdown-content li:focus{outline:none}.dropdown-content li.divider{min-height:0;height:1px}.dropdown-content li>a,.dropdown-content li>span{font-size:16px;color:#26a69a;display:block;line-height:22px;padding:14px 16px}.dropdown-content li>span>label{top:1px;left:0;height:18px}.dropdown-content li>a>i{height:inherit;line-height:inherit;float:left;margin:0 24px 0 0;width:24px}body.keyboard-focused .dropdown-content li:focus{background-color:#dadada}.input-field.col .dropdown-content [type="checkbox"]+label{top:1px;left:0;height:18px;-webkit-transform:none;transform:none}.dropdown-trigger{cursor:pointer}/*! 7 | * Waves v0.6.0 8 | * http://fian.my.id/Waves 9 | * 10 | * Copyright 2014 Alfiana E. Sibuea and other contributors 11 | * Released under the MIT license 12 | * https://github.com/fians/Waves/blob/master/LICENSE 13 | */.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;-webkit-transition:.3s ease-out;transition:.3s ease-out}.waves-effect .waves-ripple{position:absolute;border-radius:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;opacity:0;background:rgba(0,0,0,0.2);-webkit-transition:all 0.7s ease-out;transition:all 0.7s ease-out;-webkit-transition-property:opacity, -webkit-transform;transition-property:opacity, -webkit-transform;transition-property:transform, opacity;transition-property:transform, opacity, -webkit-transform;-webkit-transform:scale(0);transform:scale(0);pointer-events:none}.waves-effect.waves-light .waves-ripple{background-color:rgba(255,255,255,0.45)}.waves-effect.waves-red .waves-ripple{background-color:rgba(244,67,54,0.7)}.waves-effect.waves-yellow .waves-ripple{background-color:rgba(255,235,59,0.7)}.waves-effect.waves-orange .waves-ripple{background-color:rgba(255,152,0,0.7)}.waves-effect.waves-purple .waves-ripple{background-color:rgba(156,39,176,0.7)}.waves-effect.waves-green .waves-ripple{background-color:rgba(76,175,80,0.7)}.waves-effect.waves-teal .waves-ripple{background-color:rgba(0,150,136,0.7)}.waves-effect input[type="button"],.waves-effect input[type="reset"],.waves-effect input[type="submit"]{border:0;font-style:normal;font-size:inherit;text-transform:inherit;background:none}.waves-effect img{position:relative;z-index:-1}.waves-notransition{-webkit-transition:none !important;transition:none !important}.waves-circle{-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(circle, white 100%, black 100%)}.waves-input-wrapper{border-radius:0.2em;vertical-align:bottom}.waves-input-wrapper .waves-button-input{position:relative;top:0;left:0;z-index:1}.waves-circle{text-align:center;width:2.5em;height:2.5em;line-height:2.5em;border-radius:50%;-webkit-mask-image:none}.waves-block{display:block}.waves-effect .waves-ripple{z-index:-1}.modal{display:none;position:fixed;left:0;right:0;background-color:#fafafa;padding:0;max-height:70%;width:55%;margin:auto;overflow-y:auto;border-radius:2px;will-change:top, opacity}.modal:focus{outline:none}@media only screen and (max-width: 992px){.modal{width:80%}}.modal h1,.modal h2,.modal h3,.modal h4{margin-top:0}.modal .modal-content{padding:24px}.modal .modal-close{cursor:pointer}.modal .modal-footer{border-radius:0 0 2px 2px;background-color:#fafafa;padding:4px 6px;height:56px;width:100%;text-align:right}.modal .modal-footer .btn,.modal .modal-footer .btn-large,.modal .modal-footer .btn-small,.modal .modal-footer .btn-flat{margin:6px 0}.modal-overlay{position:fixed;z-index:999;top:-25%;left:0;bottom:0;right:0;height:125%;width:100%;background:#000;display:none;will-change:opacity}.modal.modal-fixed-footer{padding:0;height:70%}.modal.modal-fixed-footer .modal-content{position:absolute;height:calc(100% - 56px);max-height:100%;width:100%;overflow-y:auto}.modal.modal-fixed-footer .modal-footer{border-top:1px solid rgba(0,0,0,0.1);position:absolute;bottom:0}.modal.bottom-sheet{top:auto;bottom:-100%;margin:0;width:100%;max-height:45%;border-radius:0;will-change:bottom, opacity}.collapsible{border-top:1px solid #ddd;border-right:1px solid #ddd;border-left:1px solid #ddd;margin:.5rem 0 1rem 0}.collapsible-header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;cursor:pointer;-webkit-tap-highlight-color:transparent;line-height:1.5;padding:1rem;background-color:#fff;border-bottom:1px solid #ddd}.collapsible-header:focus{outline:0}.collapsible-header i{width:2rem;font-size:1.6rem;display:inline-block;text-align:center;margin-right:1rem}.keyboard-focused .collapsible-header:focus{background-color:#eee}.collapsible-body{display:none;border-bottom:1px solid #ddd;-webkit-box-sizing:border-box;box-sizing:border-box;padding:2rem}.sidenav .collapsible,.sidenav.fixed .collapsible{border:none;-webkit-box-shadow:none;box-shadow:none}.sidenav .collapsible li,.sidenav.fixed .collapsible li{padding:0}.sidenav .collapsible-header,.sidenav.fixed .collapsible-header{background-color:transparent;border:none;line-height:inherit;height:inherit;padding:0 16px}.sidenav .collapsible-header:hover,.sidenav.fixed .collapsible-header:hover{background-color:rgba(0,0,0,0.05)}.sidenav .collapsible-header i,.sidenav.fixed .collapsible-header i{line-height:inherit}.sidenav .collapsible-body,.sidenav.fixed .collapsible-body{border:0;background-color:#fff}.sidenav .collapsible-body li a,.sidenav.fixed .collapsible-body li a{padding:0 23.5px 0 31px}.collapsible.popout{border:none;-webkit-box-shadow:none;box-shadow:none}.collapsible.popout>li{-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);box-shadow:0 2px 5px 0 rgba(0,0,0,0.16),0 2px 10px 0 rgba(0,0,0,0.12);margin:0 24px;-webkit-transition:margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);transition:margin 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.collapsible.popout>li.active{-webkit-box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);box-shadow:0 5px 11px 0 rgba(0,0,0,0.18),0 4px 15px 0 rgba(0,0,0,0.15);margin:16px 0}.chip{display:inline-block;height:32px;font-size:13px;font-weight:500;color:rgba(0,0,0,0.6);line-height:32px;padding:0 12px;border-radius:16px;background-color:#e4e4e4;margin-bottom:5px;margin-right:5px}.chip:focus{outline:none;background-color:#26a69a;color:#fff}.chip>img{float:left;margin:0 8px 0 -12px;height:32px;width:32px;border-radius:50%}.chip .close{cursor:pointer;float:right;font-size:16px;line-height:32px;padding-left:8px}.chips{border:none;border-bottom:1px solid #9e9e9e;-webkit-box-shadow:none;box-shadow:none;margin:0 0 8px 0;min-height:45px;outline:none;-webkit-transition:all .3s;transition:all .3s}.chips.focus{border-bottom:1px solid #26a69a;-webkit-box-shadow:0 1px 0 0 #26a69a;box-shadow:0 1px 0 0 #26a69a}.chips:hover{cursor:text}.chips .input{background:none;border:0;color:rgba(0,0,0,0.6);display:inline-block;font-size:16px;height:3rem;line-height:32px;outline:0;margin:0;padding:0 !important;width:120px !important}.chips .input:focus{border:0 !important;-webkit-box-shadow:none !important;box-shadow:none !important}.chips .autocomplete-content{margin-top:0;margin-bottom:0}.prefix ~ .chips{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.chips:empty ~ label{font-size:0.8rem;-webkit-transform:translateY(-140%);transform:translateY(-140%)}.materialboxed{display:block;cursor:-webkit-zoom-in;cursor:zoom-in;position:relative;-webkit-transition:opacity .4s;transition:opacity .4s;-webkit-backface-visibility:hidden}.materialboxed:hover:not(.active){opacity:.8}.materialboxed.active{cursor:-webkit-zoom-out;cursor:zoom-out}#materialbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#292929;z-index:1000;will-change:opacity}.materialbox-caption{position:fixed;display:none;color:#fff;line-height:50px;bottom:0;left:0;width:100%;text-align:center;padding:0% 15%;height:50px;z-index:1000;-webkit-font-smoothing:antialiased}select:focus{outline:1px solid #c9f3ef}button:focus{outline:none;background-color:#2ab7a9}label{font-size:.8rem;color:#9e9e9e}::-webkit-input-placeholder{color:#d1d1d1}::-moz-placeholder{color:#d1d1d1}:-ms-input-placeholder{color:#d1d1d1}::-ms-input-placeholder{color:#d1d1d1}::placeholder{color:#d1d1d1}input:not([type]),input[type=text]:not(.browser-default),input[type=password]:not(.browser-default),input[type=email]:not(.browser-default),input[type=url]:not(.browser-default),input[type=time]:not(.browser-default),input[type=date]:not(.browser-default),input[type=datetime]:not(.browser-default),input[type=datetime-local]:not(.browser-default),input[type=tel]:not(.browser-default),input[type=number]:not(.browser-default),input[type=search]:not(.browser-default),textarea.materialize-textarea{background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;border-radius:0;outline:none;height:3rem;width:100%;font-size:16px;margin:0 0 8px 0;padding:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-transition:border .3s, -webkit-box-shadow .3s;transition:border .3s, -webkit-box-shadow .3s;transition:box-shadow .3s, border .3s;transition:box-shadow .3s, border .3s, -webkit-box-shadow .3s}input:not([type]):disabled,input:not([type])[readonly="readonly"],input[type=text]:not(.browser-default):disabled,input[type=text]:not(.browser-default)[readonly="readonly"],input[type=password]:not(.browser-default):disabled,input[type=password]:not(.browser-default)[readonly="readonly"],input[type=email]:not(.browser-default):disabled,input[type=email]:not(.browser-default)[readonly="readonly"],input[type=url]:not(.browser-default):disabled,input[type=url]:not(.browser-default)[readonly="readonly"],input[type=time]:not(.browser-default):disabled,input[type=time]:not(.browser-default)[readonly="readonly"],input[type=date]:not(.browser-default):disabled,input[type=date]:not(.browser-default)[readonly="readonly"],input[type=datetime]:not(.browser-default):disabled,input[type=datetime]:not(.browser-default)[readonly="readonly"],input[type=datetime-local]:not(.browser-default):disabled,input[type=datetime-local]:not(.browser-default)[readonly="readonly"],input[type=tel]:not(.browser-default):disabled,input[type=tel]:not(.browser-default)[readonly="readonly"],input[type=number]:not(.browser-default):disabled,input[type=number]:not(.browser-default)[readonly="readonly"],input[type=search]:not(.browser-default):disabled,input[type=search]:not(.browser-default)[readonly="readonly"],textarea.materialize-textarea:disabled,textarea.materialize-textarea[readonly="readonly"]{color:rgba(0,0,0,0.42);border-bottom:1px dotted rgba(0,0,0,0.42)}input:not([type]):disabled+label,input:not([type])[readonly="readonly"]+label,input[type=text]:not(.browser-default):disabled+label,input[type=text]:not(.browser-default)[readonly="readonly"]+label,input[type=password]:not(.browser-default):disabled+label,input[type=password]:not(.browser-default)[readonly="readonly"]+label,input[type=email]:not(.browser-default):disabled+label,input[type=email]:not(.browser-default)[readonly="readonly"]+label,input[type=url]:not(.browser-default):disabled+label,input[type=url]:not(.browser-default)[readonly="readonly"]+label,input[type=time]:not(.browser-default):disabled+label,input[type=time]:not(.browser-default)[readonly="readonly"]+label,input[type=date]:not(.browser-default):disabled+label,input[type=date]:not(.browser-default)[readonly="readonly"]+label,input[type=datetime]:not(.browser-default):disabled+label,input[type=datetime]:not(.browser-default)[readonly="readonly"]+label,input[type=datetime-local]:not(.browser-default):disabled+label,input[type=datetime-local]:not(.browser-default)[readonly="readonly"]+label,input[type=tel]:not(.browser-default):disabled+label,input[type=tel]:not(.browser-default)[readonly="readonly"]+label,input[type=number]:not(.browser-default):disabled+label,input[type=number]:not(.browser-default)[readonly="readonly"]+label,input[type=search]:not(.browser-default):disabled+label,input[type=search]:not(.browser-default)[readonly="readonly"]+label,textarea.materialize-textarea:disabled+label,textarea.materialize-textarea[readonly="readonly"]+label{color:rgba(0,0,0,0.42)}input:not([type]):focus:not([readonly]),input[type=text]:not(.browser-default):focus:not([readonly]),input[type=password]:not(.browser-default):focus:not([readonly]),input[type=email]:not(.browser-default):focus:not([readonly]),input[type=url]:not(.browser-default):focus:not([readonly]),input[type=time]:not(.browser-default):focus:not([readonly]),input[type=date]:not(.browser-default):focus:not([readonly]),input[type=datetime]:not(.browser-default):focus:not([readonly]),input[type=datetime-local]:not(.browser-default):focus:not([readonly]),input[type=tel]:not(.browser-default):focus:not([readonly]),input[type=number]:not(.browser-default):focus:not([readonly]),input[type=search]:not(.browser-default):focus:not([readonly]),textarea.materialize-textarea:focus:not([readonly]){border-bottom:1px solid #26a69a;-webkit-box-shadow:0 1px 0 0 #26a69a;box-shadow:0 1px 0 0 #26a69a}input:not([type]):focus:not([readonly])+label,input[type=text]:not(.browser-default):focus:not([readonly])+label,input[type=password]:not(.browser-default):focus:not([readonly])+label,input[type=email]:not(.browser-default):focus:not([readonly])+label,input[type=url]:not(.browser-default):focus:not([readonly])+label,input[type=time]:not(.browser-default):focus:not([readonly])+label,input[type=date]:not(.browser-default):focus:not([readonly])+label,input[type=datetime]:not(.browser-default):focus:not([readonly])+label,input[type=datetime-local]:not(.browser-default):focus:not([readonly])+label,input[type=tel]:not(.browser-default):focus:not([readonly])+label,input[type=number]:not(.browser-default):focus:not([readonly])+label,input[type=search]:not(.browser-default):focus:not([readonly])+label,textarea.materialize-textarea:focus:not([readonly])+label{color:#26a69a}input:not([type]):focus.valid ~ label,input[type=text]:not(.browser-default):focus.valid ~ label,input[type=password]:not(.browser-default):focus.valid ~ label,input[type=email]:not(.browser-default):focus.valid ~ label,input[type=url]:not(.browser-default):focus.valid ~ label,input[type=time]:not(.browser-default):focus.valid ~ label,input[type=date]:not(.browser-default):focus.valid ~ label,input[type=datetime]:not(.browser-default):focus.valid ~ label,input[type=datetime-local]:not(.browser-default):focus.valid ~ label,input[type=tel]:not(.browser-default):focus.valid ~ label,input[type=number]:not(.browser-default):focus.valid ~ label,input[type=search]:not(.browser-default):focus.valid ~ label,textarea.materialize-textarea:focus.valid ~ label{color:#4CAF50}input:not([type]):focus.invalid ~ label,input[type=text]:not(.browser-default):focus.invalid ~ label,input[type=password]:not(.browser-default):focus.invalid ~ label,input[type=email]:not(.browser-default):focus.invalid ~ label,input[type=url]:not(.browser-default):focus.invalid ~ label,input[type=time]:not(.browser-default):focus.invalid ~ label,input[type=date]:not(.browser-default):focus.invalid ~ label,input[type=datetime]:not(.browser-default):focus.invalid ~ label,input[type=datetime-local]:not(.browser-default):focus.invalid ~ label,input[type=tel]:not(.browser-default):focus.invalid ~ label,input[type=number]:not(.browser-default):focus.invalid ~ label,input[type=search]:not(.browser-default):focus.invalid ~ label,textarea.materialize-textarea:focus.invalid ~ label{color:#F44336}input:not([type]).validate+label,input[type=text]:not(.browser-default).validate+label,input[type=password]:not(.browser-default).validate+label,input[type=email]:not(.browser-default).validate+label,input[type=url]:not(.browser-default).validate+label,input[type=time]:not(.browser-default).validate+label,input[type=date]:not(.browser-default).validate+label,input[type=datetime]:not(.browser-default).validate+label,input[type=datetime-local]:not(.browser-default).validate+label,input[type=tel]:not(.browser-default).validate+label,input[type=number]:not(.browser-default).validate+label,input[type=search]:not(.browser-default).validate+label,textarea.materialize-textarea.validate+label{width:100%}input.valid:not([type]),input.valid:not([type]):focus,input.valid[type=text]:not(.browser-default),input.valid[type=text]:not(.browser-default):focus,input.valid[type=password]:not(.browser-default),input.valid[type=password]:not(.browser-default):focus,input.valid[type=email]:not(.browser-default),input.valid[type=email]:not(.browser-default):focus,input.valid[type=url]:not(.browser-default),input.valid[type=url]:not(.browser-default):focus,input.valid[type=time]:not(.browser-default),input.valid[type=time]:not(.browser-default):focus,input.valid[type=date]:not(.browser-default),input.valid[type=date]:not(.browser-default):focus,input.valid[type=datetime]:not(.browser-default),input.valid[type=datetime]:not(.browser-default):focus,input.valid[type=datetime-local]:not(.browser-default),input.valid[type=datetime-local]:not(.browser-default):focus,input.valid[type=tel]:not(.browser-default),input.valid[type=tel]:not(.browser-default):focus,input.valid[type=number]:not(.browser-default),input.valid[type=number]:not(.browser-default):focus,input.valid[type=search]:not(.browser-default),input.valid[type=search]:not(.browser-default):focus,textarea.materialize-textarea.valid,textarea.materialize-textarea.valid:focus,.select-wrapper.valid>input.select-dropdown{border-bottom:1px solid #4CAF50;-webkit-box-shadow:0 1px 0 0 #4CAF50;box-shadow:0 1px 0 0 #4CAF50}input.invalid:not([type]),input.invalid:not([type]):focus,input.invalid[type=text]:not(.browser-default),input.invalid[type=text]:not(.browser-default):focus,input.invalid[type=password]:not(.browser-default),input.invalid[type=password]:not(.browser-default):focus,input.invalid[type=email]:not(.browser-default),input.invalid[type=email]:not(.browser-default):focus,input.invalid[type=url]:not(.browser-default),input.invalid[type=url]:not(.browser-default):focus,input.invalid[type=time]:not(.browser-default),input.invalid[type=time]:not(.browser-default):focus,input.invalid[type=date]:not(.browser-default),input.invalid[type=date]:not(.browser-default):focus,input.invalid[type=datetime]:not(.browser-default),input.invalid[type=datetime]:not(.browser-default):focus,input.invalid[type=datetime-local]:not(.browser-default),input.invalid[type=datetime-local]:not(.browser-default):focus,input.invalid[type=tel]:not(.browser-default),input.invalid[type=tel]:not(.browser-default):focus,input.invalid[type=number]:not(.browser-default),input.invalid[type=number]:not(.browser-default):focus,input.invalid[type=search]:not(.browser-default),input.invalid[type=search]:not(.browser-default):focus,textarea.materialize-textarea.invalid,textarea.materialize-textarea.invalid:focus,.select-wrapper.invalid>input.select-dropdown,.select-wrapper.invalid>input.select-dropdown:focus{border-bottom:1px solid #F44336;-webkit-box-shadow:0 1px 0 0 #F44336;box-shadow:0 1px 0 0 #F44336}input:not([type]).valid ~ .helper-text[data-success],input:not([type]):focus.valid ~ .helper-text[data-success],input:not([type]).invalid ~ .helper-text[data-error],input:not([type]):focus.invalid ~ .helper-text[data-error],input[type=text]:not(.browser-default).valid ~ .helper-text[data-success],input[type=text]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=text]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=text]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=password]:not(.browser-default).valid ~ .helper-text[data-success],input[type=password]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=password]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=password]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=email]:not(.browser-default).valid ~ .helper-text[data-success],input[type=email]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=email]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=email]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=url]:not(.browser-default).valid ~ .helper-text[data-success],input[type=url]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=url]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=url]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=time]:not(.browser-default).valid ~ .helper-text[data-success],input[type=time]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=time]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=time]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=date]:not(.browser-default).valid ~ .helper-text[data-success],input[type=date]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=date]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=date]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=datetime]:not(.browser-default).valid ~ .helper-text[data-success],input[type=datetime]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=datetime]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=datetime-local]:not(.browser-default).valid ~ .helper-text[data-success],input[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=tel]:not(.browser-default).valid ~ .helper-text[data-success],input[type=tel]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=tel]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=tel]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=number]:not(.browser-default).valid ~ .helper-text[data-success],input[type=number]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=number]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=number]:not(.browser-default):focus.invalid ~ .helper-text[data-error],input[type=search]:not(.browser-default).valid ~ .helper-text[data-success],input[type=search]:not(.browser-default):focus.valid ~ .helper-text[data-success],input[type=search]:not(.browser-default).invalid ~ .helper-text[data-error],input[type=search]:not(.browser-default):focus.invalid ~ .helper-text[data-error],textarea.materialize-textarea.valid ~ .helper-text[data-success],textarea.materialize-textarea:focus.valid ~ .helper-text[data-success],textarea.materialize-textarea.invalid ~ .helper-text[data-error],textarea.materialize-textarea:focus.invalid ~ .helper-text[data-error],.select-wrapper.valid .helper-text[data-success],.select-wrapper.invalid ~ .helper-text[data-error]{color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}input:not([type]).valid ~ .helper-text:after,input:not([type]):focus.valid ~ .helper-text:after,input[type=text]:not(.browser-default).valid ~ .helper-text:after,input[type=text]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=password]:not(.browser-default).valid ~ .helper-text:after,input[type=password]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=email]:not(.browser-default).valid ~ .helper-text:after,input[type=email]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=url]:not(.browser-default).valid ~ .helper-text:after,input[type=url]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=time]:not(.browser-default).valid ~ .helper-text:after,input[type=time]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=date]:not(.browser-default).valid ~ .helper-text:after,input[type=date]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=datetime]:not(.browser-default).valid ~ .helper-text:after,input[type=datetime]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default).valid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=tel]:not(.browser-default).valid ~ .helper-text:after,input[type=tel]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=number]:not(.browser-default).valid ~ .helper-text:after,input[type=number]:not(.browser-default):focus.valid ~ .helper-text:after,input[type=search]:not(.browser-default).valid ~ .helper-text:after,input[type=search]:not(.browser-default):focus.valid ~ .helper-text:after,textarea.materialize-textarea.valid ~ .helper-text:after,textarea.materialize-textarea:focus.valid ~ .helper-text:after,.select-wrapper.valid ~ .helper-text:after{content:attr(data-success);color:#4CAF50}input:not([type]).invalid ~ .helper-text:after,input:not([type]):focus.invalid ~ .helper-text:after,input[type=text]:not(.browser-default).invalid ~ .helper-text:after,input[type=text]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=password]:not(.browser-default).invalid ~ .helper-text:after,input[type=password]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=email]:not(.browser-default).invalid ~ .helper-text:after,input[type=email]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=url]:not(.browser-default).invalid ~ .helper-text:after,input[type=url]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=time]:not(.browser-default).invalid ~ .helper-text:after,input[type=time]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=date]:not(.browser-default).invalid ~ .helper-text:after,input[type=date]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=datetime]:not(.browser-default).invalid ~ .helper-text:after,input[type=datetime]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default).invalid ~ .helper-text:after,input[type=datetime-local]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=tel]:not(.browser-default).invalid ~ .helper-text:after,input[type=tel]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=number]:not(.browser-default).invalid ~ .helper-text:after,input[type=number]:not(.browser-default):focus.invalid ~ .helper-text:after,input[type=search]:not(.browser-default).invalid ~ .helper-text:after,input[type=search]:not(.browser-default):focus.invalid ~ .helper-text:after,textarea.materialize-textarea.invalid ~ .helper-text:after,textarea.materialize-textarea:focus.invalid ~ .helper-text:after,.select-wrapper.invalid ~ .helper-text:after{content:attr(data-error);color:#F44336}input:not([type])+label:after,input[type=text]:not(.browser-default)+label:after,input[type=password]:not(.browser-default)+label:after,input[type=email]:not(.browser-default)+label:after,input[type=url]:not(.browser-default)+label:after,input[type=time]:not(.browser-default)+label:after,input[type=date]:not(.browser-default)+label:after,input[type=datetime]:not(.browser-default)+label:after,input[type=datetime-local]:not(.browser-default)+label:after,input[type=tel]:not(.browser-default)+label:after,input[type=number]:not(.browser-default)+label:after,input[type=search]:not(.browser-default)+label:after,textarea.materialize-textarea+label:after,.select-wrapper+label:after{display:block;content:"";position:absolute;top:100%;left:0;opacity:0;-webkit-transition:.2s opacity ease-out, .2s color ease-out;transition:.2s opacity ease-out, .2s color ease-out}.input-field{position:relative;margin-top:1rem;margin-bottom:1rem}.input-field.inline{display:inline-block;vertical-align:middle;margin-left:5px}.input-field.inline input,.input-field.inline .select-dropdown{margin-bottom:1rem}.input-field.col label{left:.75rem}.input-field.col .prefix ~ label,.input-field.col .prefix ~ .validate ~ label{width:calc(100% - 3rem - 1.5rem)}.input-field>label{color:#9e9e9e;position:absolute;top:0;left:0;font-size:1rem;cursor:text;-webkit-transition:color .2s ease-out, -webkit-transform .2s ease-out;transition:color .2s ease-out, -webkit-transform .2s ease-out;transition:transform .2s ease-out, color .2s ease-out;transition:transform .2s ease-out, color .2s ease-out, -webkit-transform .2s ease-out;-webkit-transform-origin:0% 100%;transform-origin:0% 100%;text-align:initial;-webkit-transform:translateY(12px);transform:translateY(12px)}.input-field>label:not(.label-icon).active{-webkit-transform:translateY(-14px) scale(0.8);transform:translateY(-14px) scale(0.8);-webkit-transform-origin:0 0;transform-origin:0 0}.input-field>input[type]:-webkit-autofill:not(.browser-default):not([type="search"])+label,.input-field>input[type=date]:not(.browser-default)+label,.input-field>input[type=time]:not(.browser-default)+label{-webkit-transform:translateY(-14px) scale(0.8);transform:translateY(-14px) scale(0.8);-webkit-transform-origin:0 0;transform-origin:0 0}.input-field .helper-text{position:relative;min-height:18px;display:block;font-size:12px;color:rgba(0,0,0,0.54)}.input-field .helper-text::after{opacity:1;position:absolute;top:0;left:0}.input-field .prefix{position:absolute;width:3rem;font-size:2rem;-webkit-transition:color .2s;transition:color .2s;top:.5rem}.input-field .prefix.active{color:#26a69a}.input-field .prefix ~ input,.input-field .prefix ~ textarea,.input-field .prefix ~ label,.input-field .prefix ~ .validate ~ label,.input-field .prefix ~ .helper-text,.input-field .prefix ~ .autocomplete-content{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.input-field .prefix ~ label{margin-left:3rem}@media only screen and (max-width: 992px){.input-field .prefix ~ input{width:86%;width:calc(100% - 3rem)}}@media only screen and (max-width: 600px){.input-field .prefix ~ input{width:80%;width:calc(100% - 3rem)}}.input-field input[type=search]{display:block;line-height:inherit;-webkit-transition:.3s background-color;transition:.3s background-color}.nav-wrapper .input-field input[type=search]{height:inherit;padding-left:4rem;width:calc(100% - 4rem);border:0;-webkit-box-shadow:none;box-shadow:none}.input-field input[type=search]:focus:not(.browser-default){background-color:#fff;border:0;-webkit-box-shadow:none;box-shadow:none;color:#444}.input-field input[type=search]:focus:not(.browser-default)+label i,.input-field input[type=search]:focus:not(.browser-default) ~ .mdi-navigation-close,.input-field input[type=search]:focus:not(.browser-default) ~ .material-icons{color:#444}.input-field input[type=search]+.label-icon{-webkit-transform:none;transform:none;left:1rem}.input-field input[type=search] ~ .mdi-navigation-close,.input-field input[type=search] ~ .material-icons{position:absolute;top:0;right:1rem;color:transparent;cursor:pointer;font-size:2rem;-webkit-transition:.3s color;transition:.3s color}textarea{width:100%;height:3rem;background-color:transparent}textarea.materialize-textarea{line-height:normal;overflow-y:hidden;padding:.8rem 0 .8rem 0;resize:none;min-height:3rem;-webkit-box-sizing:border-box;box-sizing:border-box}.hiddendiv{visibility:hidden;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;padding-top:1.2rem;position:absolute;top:0;z-index:-1}.autocomplete-content li .highlight{color:#444}.autocomplete-content li img{height:40px;width:40px;margin:5px 15px}.character-counter{min-height:18px}[type="radio"]:not(:checked),[type="radio"]:checked{position:absolute;opacity:0;pointer-events:none}[type="radio"]:not(:checked)+span,[type="radio"]:checked+span{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-transition:.28s ease;transition:.28s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type="radio"]+span:before,[type="radio"]+span:after{content:'';position:absolute;left:0;top:0;margin:4px;width:16px;height:16px;z-index:0;-webkit-transition:.28s ease;transition:.28s ease}[type="radio"]:not(:checked)+span:before,[type="radio"]:not(:checked)+span:after,[type="radio"]:checked+span:before,[type="radio"]:checked+span:after,[type="radio"].with-gap:checked+span:before,[type="radio"].with-gap:checked+span:after{border-radius:50%}[type="radio"]:not(:checked)+span:before,[type="radio"]:not(:checked)+span:after{border:2px solid #5a5a5a}[type="radio"]:not(:checked)+span:after{-webkit-transform:scale(0);transform:scale(0)}[type="radio"]:checked+span:before{border:2px solid transparent}[type="radio"]:checked+span:after,[type="radio"].with-gap:checked+span:before,[type="radio"].with-gap:checked+span:after{border:2px solid #26a69a}[type="radio"]:checked+span:after,[type="radio"].with-gap:checked+span:after{background-color:#26a69a}[type="radio"]:checked+span:after{-webkit-transform:scale(1.02);transform:scale(1.02)}[type="radio"].with-gap:checked+span:after{-webkit-transform:scale(0.5);transform:scale(0.5)}[type="radio"].tabbed:focus+span:before{-webkit-box-shadow:0 0 0 10px rgba(0,0,0,0.1);box-shadow:0 0 0 10px rgba(0,0,0,0.1)}[type="radio"].with-gap:disabled:checked+span:before{border:2px solid rgba(0,0,0,0.42)}[type="radio"].with-gap:disabled:checked+span:after{border:none;background-color:rgba(0,0,0,0.42)}[type="radio"]:disabled:not(:checked)+span:before,[type="radio"]:disabled:checked+span:before{background-color:transparent;border-color:rgba(0,0,0,0.42)}[type="radio"]:disabled+span{color:rgba(0,0,0,0.42)}[type="radio"]:disabled:not(:checked)+span:before{border-color:rgba(0,0,0,0.42)}[type="radio"]:disabled:checked+span:after{background-color:rgba(0,0,0,0.42);border-color:#949494}[type="checkbox"]:not(:checked),[type="checkbox"]:checked{position:absolute;opacity:0;pointer-events:none}[type="checkbox"]+span:not(.lever){position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type="checkbox"]+span:not(.lever):before,[type="checkbox"]:not(.filled-in)+span:not(.lever):after{content:'';position:absolute;top:0;left:0;width:18px;height:18px;z-index:0;border:2px solid #5a5a5a;border-radius:1px;margin-top:3px;-webkit-transition:.2s;transition:.2s}[type="checkbox"]:not(.filled-in)+span:not(.lever):after{border:0;-webkit-transform:scale(0);transform:scale(0)}[type="checkbox"]:not(:checked):disabled+span:not(.lever):before{border:none;background-color:rgba(0,0,0,0.42)}[type="checkbox"].tabbed:focus+span:not(.lever):after{-webkit-transform:scale(1);transform:scale(1);border:0;border-radius:50%;-webkit-box-shadow:0 0 0 10px rgba(0,0,0,0.1);box-shadow:0 0 0 10px rgba(0,0,0,0.1);background-color:rgba(0,0,0,0.1)}[type="checkbox"]:checked+span:not(.lever):before{top:-4px;left:-5px;width:12px;height:22px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #26a69a;border-bottom:2px solid #26a69a;-webkit-transform:rotate(40deg);transform:rotate(40deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:checked:disabled+span:before{border-right:2px solid rgba(0,0,0,0.42);border-bottom:2px solid rgba(0,0,0,0.42)}[type="checkbox"]:indeterminate+span:not(.lever):before{top:-11px;left:-12px;width:10px;height:22px;border-top:none;border-left:none;border-right:2px solid #26a69a;border-bottom:none;-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"]:indeterminate:disabled+span:not(.lever):before{border-right:2px solid rgba(0,0,0,0.42);background-color:transparent}[type="checkbox"].filled-in+span:not(.lever):after{border-radius:2px}[type="checkbox"].filled-in+span:not(.lever):before,[type="checkbox"].filled-in+span:not(.lever):after{content:'';left:0;position:absolute;-webkit-transition:border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;transition:border .25s, background-color .25s, width .20s .1s, height .20s .1s, top .20s .1s, left .20s .1s;z-index:1}[type="checkbox"].filled-in:not(:checked)+span:not(.lever):before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"].filled-in:not(:checked)+span:not(.lever):after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0px;z-index:0}[type="checkbox"].filled-in:checked+span:not(.lever):before{top:0;left:1px;width:8px;height:13px;border-top:2px solid transparent;border-left:2px solid transparent;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type="checkbox"].filled-in:checked+span:not(.lever):after{top:0;width:20px;height:20px;border:2px solid #26a69a;background-color:#26a69a;z-index:0}[type="checkbox"].filled-in.tabbed:focus+span:not(.lever):after{border-radius:2px;border-color:#5a5a5a;background-color:rgba(0,0,0,0.1)}[type="checkbox"].filled-in.tabbed:checked:focus+span:not(.lever):after{border-radius:2px;background-color:#26a69a;border-color:#26a69a}[type="checkbox"].filled-in:disabled:not(:checked)+span:not(.lever):before{background-color:transparent;border:2px solid transparent}[type="checkbox"].filled-in:disabled:not(:checked)+span:not(.lever):after{border-color:transparent;background-color:#949494}[type="checkbox"].filled-in:disabled:checked+span:not(.lever):before{background-color:transparent}[type="checkbox"].filled-in:disabled:checked+span:not(.lever):after{background-color:#949494;border-color:#949494}.switch,.switch *{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch label{cursor:pointer}.switch label input[type=checkbox]{opacity:0;width:0;height:0}.switch label input[type=checkbox]:checked+.lever{background-color:#84c7c1}.switch label input[type=checkbox]:checked+.lever:before,.switch label input[type=checkbox]:checked+.lever:after{left:18px}.switch label input[type=checkbox]:checked+.lever:after{background-color:#26a69a}.switch label .lever{content:"";display:inline-block;position:relative;width:36px;height:14px;background-color:rgba(0,0,0,0.38);border-radius:15px;margin-right:10px;-webkit-transition:background 0.3s ease;transition:background 0.3s ease;vertical-align:middle;margin:0 16px}.switch label .lever:before,.switch label .lever:after{content:"";position:absolute;display:inline-block;width:20px;height:20px;border-radius:50%;left:0;top:-3px;-webkit-transition:left 0.3s ease, background .3s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease;transition:left 0.3s ease, background .3s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease;transition:left 0.3s ease, background .3s ease, box-shadow 0.1s ease, transform .1s ease;transition:left 0.3s ease, background .3s ease, box-shadow 0.1s ease, transform .1s ease, -webkit-box-shadow 0.1s ease, -webkit-transform .1s ease}.switch label .lever:before{background-color:rgba(38,166,154,0.15)}.switch label .lever:after{background-color:#F1F1F1;-webkit-box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)}input[type=checkbox]:checked:not(:disabled) ~ .lever:active::before,input[type=checkbox]:checked:not(:disabled).tabbed:focus ~ .lever::before{-webkit-transform:scale(2.4);transform:scale(2.4);background-color:rgba(38,166,154,0.15)}input[type=checkbox]:not(:disabled) ~ .lever:active:before,input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before{-webkit-transform:scale(2.4);transform:scale(2.4);background-color:rgba(0,0,0,0.08)}.switch input[type=checkbox][disabled]+.lever{cursor:default;background-color:rgba(0,0,0,0.12)}.switch label input[type=checkbox][disabled]+.lever:after,.switch label input[type=checkbox][disabled]:checked+.lever:after{background-color:#949494}select{display:none}select.browser-default{display:block}select{background-color:rgba(255,255,255,0.9);width:100%;padding:5px;border:1px solid #f2f2f2;border-radius:2px;height:3rem}.select-label{position:absolute}.select-wrapper{position:relative}.select-wrapper.valid+label,.select-wrapper.invalid+label{width:100%;pointer-events:none}.select-wrapper input.select-dropdown{position:relative;cursor:pointer;background-color:transparent;border:none;border-bottom:1px solid #9e9e9e;outline:none;height:3rem;line-height:3rem;width:100%;font-size:16px;margin:0 0 8px 0;padding:0;display:block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1}.select-wrapper input.select-dropdown:focus{border-bottom:1px solid #26a69a}.select-wrapper .caret{position:absolute;right:0;top:0;bottom:0;margin:auto 0;z-index:0;fill:rgba(0,0,0,0.87)}.select-wrapper+label{position:absolute;top:-26px;font-size:.8rem}select:disabled{color:rgba(0,0,0,0.42)}.select-wrapper.disabled+label{color:rgba(0,0,0,0.42)}.select-wrapper.disabled .caret{fill:rgba(0,0,0,0.42)}.select-wrapper input.select-dropdown:disabled{color:rgba(0,0,0,0.42);cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select-wrapper i{color:rgba(0,0,0,0.3)}.select-dropdown li.disabled,.select-dropdown li.disabled>span,.select-dropdown li.optgroup{color:rgba(0,0,0,0.3);background-color:transparent}body.keyboard-focused .select-dropdown.dropdown-content li:focus{background-color:rgba(0,0,0,0.08)}.select-dropdown.dropdown-content li:hover{background-color:rgba(0,0,0,0.08)}.select-dropdown.dropdown-content li.selected{background-color:rgba(0,0,0,0.03)}.prefix ~ .select-wrapper{margin-left:3rem;width:92%;width:calc(100% - 3rem)}.prefix ~ label{margin-left:3rem}.select-dropdown li img{height:40px;width:40px;margin:5px 15px;float:right}.select-dropdown li.optgroup{border-top:1px solid #eee}.select-dropdown li.optgroup.selected>span{color:rgba(0,0,0,0.7)}.select-dropdown li.optgroup>span{color:rgba(0,0,0,0.4)}.select-dropdown li.optgroup ~ li.optgroup-option{padding-left:1rem}.file-field{position:relative}.file-field .file-path-wrapper{overflow:hidden;padding-left:10px}.file-field input.file-path{width:100%}.file-field .btn,.file-field .btn-large,.file-field .btn-small{float:left;height:3rem;line-height:3rem}.file-field span{cursor:pointer}.file-field input[type=file]{position:absolute;top:0;right:0;left:0;bottom:0;width:100%;margin:0;padding:0;font-size:20px;cursor:pointer;opacity:0;filter:alpha(opacity=0)}.file-field input[type=file]::-webkit-file-upload-button{display:none}.range-field{position:relative}input[type=range],input[type=range]+.thumb{cursor:pointer}input[type=range]{position:relative;background-color:transparent;border:none;outline:none;width:100%;margin:15px 0;padding:0}input[type=range]:focus{outline:none}input[type=range]+.thumb{position:absolute;top:10px;left:0;border:none;height:0;width:0;border-radius:50%;background-color:#26a69a;margin-left:7px;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}input[type=range]+.thumb .value{display:block;width:30px;text-align:center;color:#26a69a;font-size:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}input[type=range]+.thumb.active{border-radius:50% 50% 50% 0}input[type=range]+.thumb.active .value{color:#fff;margin-left:-1px;margin-top:8px;font-size:10px}input[type=range]{-webkit-appearance:none}input[type=range]::-webkit-slider-runnable-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-webkit-slider-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s, -webkit-box-shadow .3s;-webkit-appearance:none;background-color:#26a69a;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;margin:-5px 0 0 0}.keyboard-focused input[type=range]:focus:not(.active)::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 10px rgba(38,166,154,0.26);box-shadow:0 0 0 10px rgba(38,166,154,0.26)}input[type=range]{border:1px solid white}input[type=range]::-moz-range-track{height:3px;background:#c2c0c2;border:none}input[type=range]::-moz-focus-inner{border:0}input[type=range]::-moz-range-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s, -webkit-box-shadow .3s;margin-top:-5px}input[type=range]:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}.keyboard-focused input[type=range]:focus:not(.active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(38,166,154,0.26)}input[type=range]::-ms-track{height:3px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input[type=range]::-ms-fill-lower{background:#777}input[type=range]::-ms-fill-upper{background:#ddd}input[type=range]::-ms-thumb{border:none;height:14px;width:14px;border-radius:50%;background:#26a69a;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s, -webkit-box-shadow .3s}.keyboard-focused input[type=range]:focus:not(.active)::-ms-thumb{box-shadow:0 0 0 10px rgba(38,166,154,0.26)}.table-of-contents.fixed{position:fixed}.table-of-contents li{padding:2px 0}.table-of-contents a{display:inline-block;font-weight:300;color:#757575;padding-left:16px;height:1.5rem;line-height:1.5rem;letter-spacing:.4;display:inline-block}.table-of-contents a:hover{color:#a8a8a8;padding-left:15px;border-left:1px solid #ee6e73}.table-of-contents a.active{font-weight:500;padding-left:14px;border-left:2px solid #ee6e73}.sidenav{position:fixed;width:300px;left:0;top:0;margin:0;-webkit-transform:translateX(-100%);transform:translateX(-100%);height:100%;height:calc(100% + 60px);height:-moz-calc(100%);padding-bottom:60px;background-color:#fff;z-index:999;overflow-y:auto;will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateX(-105%);transform:translateX(-105%)}.sidenav.right-aligned{right:0;-webkit-transform:translateX(105%);transform:translateX(105%);left:auto;-webkit-transform:translateX(100%);transform:translateX(100%)}.sidenav .collapsible{margin:0}.sidenav li{float:none;line-height:48px}.sidenav li.active{background-color:rgba(0,0,0,0.05)}.sidenav li>a{color:rgba(0,0,0,0.87);display:block;font-size:14px;font-weight:500;height:48px;line-height:48px;padding:0 32px}.sidenav li>a:hover{background-color:rgba(0,0,0,0.05)}.sidenav li>a.btn,.sidenav li>a.btn-large,.sidenav li>a.btn-small,.sidenav li>a.btn-large,.sidenav li>a.btn-flat,.sidenav li>a.btn-floating{margin:10px 15px}.sidenav li>a.btn,.sidenav li>a.btn-large,.sidenav li>a.btn-small,.sidenav li>a.btn-large,.sidenav li>a.btn-floating{color:#fff}.sidenav li>a.btn-flat{color:#343434}.sidenav li>a.btn:hover,.sidenav li>a.btn-large:hover,.sidenav li>a.btn-small:hover,.sidenav li>a.btn-large:hover{background-color:#2bbbad}.sidenav li>a.btn-floating:hover{background-color:#26a69a}.sidenav li>a>i,.sidenav li>a>[class^="mdi-"],.sidenav li>a li>a>[class*="mdi-"],.sidenav li>a>i.material-icons{float:left;height:48px;line-height:48px;margin:0 32px 0 0;width:24px;color:rgba(0,0,0,0.54)}.sidenav .divider{margin:8px 0 0 0}.sidenav .subheader{cursor:initial;pointer-events:none;color:rgba(0,0,0,0.54);font-size:14px;font-weight:500;line-height:48px}.sidenav .subheader:hover{background-color:transparent}.sidenav .user-view{position:relative;padding:32px 32px 0;margin-bottom:8px}.sidenav .user-view>a{height:auto;padding:0}.sidenav .user-view>a:hover{background-color:transparent}.sidenav .user-view .background{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1}.sidenav .user-view .circle,.sidenav .user-view .name,.sidenav .user-view .email{display:block}.sidenav .user-view .circle{height:64px;width:64px}.sidenav .user-view .name,.sidenav .user-view .email{font-size:14px;line-height:24px}.sidenav .user-view .name{margin-top:16px;font-weight:500}.sidenav .user-view .email{padding-bottom:16px;font-weight:400}.drag-target{height:100%;width:10px;position:fixed;top:0;z-index:998}.drag-target.right-aligned{right:0}.sidenav.sidenav-fixed{left:0;-webkit-transform:translateX(0);transform:translateX(0);position:fixed}.sidenav.sidenav-fixed.right-aligned{right:0;left:auto}@media only screen and (max-width: 992px){.sidenav.sidenav-fixed{-webkit-transform:translateX(-105%);transform:translateX(-105%)}.sidenav.sidenav-fixed.right-aligned{-webkit-transform:translateX(105%);transform:translateX(105%)}.sidenav>a{padding:0 16px}.sidenav .user-view{padding:16px 16px 0}}.sidenav .collapsible-body>ul:not(.collapsible)>li.active,.sidenav.sidenav-fixed .collapsible-body>ul:not(.collapsible)>li.active{background-color:#ee6e73}.sidenav .collapsible-body>ul:not(.collapsible)>li.active a,.sidenav.sidenav-fixed .collapsible-body>ul:not(.collapsible)>li.active a{color:#fff}.sidenav .collapsible-body{padding:0}.sidenav-overlay{position:fixed;top:0;left:0;right:0;opacity:0;height:120vh;background-color:rgba(0,0,0,0.5);z-index:997;display:none}.preloader-wrapper{display:inline-block;position:relative;width:50px;height:50px}.preloader-wrapper.small{width:36px;height:36px}.preloader-wrapper.big{width:64px;height:64px}.preloader-wrapper.active{-webkit-animation:container-rotate 1568ms linear infinite;animation:container-rotate 1568ms linear infinite}@-webkit-keyframes container-rotate{to{-webkit-transform:rotate(360deg)}}@keyframes container-rotate{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-layer{position:absolute;width:100%;height:100%;opacity:0;border-color:#26a69a}.spinner-blue,.spinner-blue-only{border-color:#4285f4}.spinner-red,.spinner-red-only{border-color:#db4437}.spinner-yellow,.spinner-yellow-only{border-color:#f4b400}.spinner-green,.spinner-green-only{border-color:#0f9d58}.active .spinner-layer.spinner-blue{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,blue-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-red{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,red-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-yellow{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,yellow-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer.spinner-green{-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,green-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .spinner-layer,.active .spinner-layer.spinner-blue-only,.active .spinner-layer.spinner-red-only,.active .spinner-layer.spinner-yellow-only,.active .spinner-layer.spinner-green-only{opacity:1;-webkit-animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg)}}@keyframes fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@-webkit-keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@keyframes blue-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@-webkit-keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@keyframes red-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@-webkit-keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@keyframes yellow-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@-webkit-keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}@keyframes green-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}.gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.gap-patch .circle{width:1000%;left:-450%}.circle-clipper{display:inline-block;position:relative;width:50%;height:100%;overflow:hidden;border-color:inherit}.circle-clipper .circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent !important;border-radius:50%;-webkit-animation:none;animation:none;position:absolute;top:0;right:0;bottom:0}.circle-clipper.left .circle{left:0;border-right-color:transparent !important;-webkit-transform:rotate(129deg);transform:rotate(129deg)}.circle-clipper.right .circle{left:-100%;border-left-color:transparent !important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg)}.active .circle-clipper.left .circle{-webkit-animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.active .circle-clipper.right .circle{-webkit-animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;animation:right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@-webkit-keyframes left-spin{from{-webkit-transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg)}}@keyframes left-spin{from{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@-webkit-keyframes right-spin{from{-webkit-transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg)}}@keyframes right-spin{from{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}#spinnerContainer.cooldown{-webkit-animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1);animation:container-rotate 1568ms linear infinite,fade-out 400ms cubic-bezier(0.4, 0, 0.2, 1)}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}.slider{position:relative;height:400px;width:100%}.slider.fullscreen{height:100%;width:100%;position:absolute;top:0;left:0;right:0;bottom:0}.slider.fullscreen ul.slides{height:100%}.slider.fullscreen ul.indicators{z-index:2;bottom:30px}.slider .slides{background-color:#9e9e9e;margin:0;height:400px}.slider .slides li{opacity:0;position:absolute;top:0;left:0;z-index:1;width:100%;height:inherit;overflow:hidden}.slider .slides li img{height:100%;width:100%;background-size:cover;background-position:center}.slider .slides li .caption{color:#fff;position:absolute;top:15%;left:15%;width:70%;opacity:0}.slider .slides li .caption p{color:#e0e0e0}.slider .slides li.active{z-index:2}.slider .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.slider .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:16px;width:16px;margin:0 12px;background-color:#e0e0e0;-webkit-transition:background-color .3s;transition:background-color .3s;border-radius:50%}.slider .indicators .indicator-item.active{background-color:#4CAF50}.carousel{overflow:hidden;position:relative;width:100%;height:400px;-webkit-perspective:500px;perspective:500px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform-origin:0% 50%;transform-origin:0% 50%}.carousel.carousel-slider{top:0;left:0}.carousel.carousel-slider .carousel-fixed-item{position:absolute;left:0;right:0;bottom:20px;z-index:1}.carousel.carousel-slider .carousel-fixed-item.with-indicators{bottom:68px}.carousel.carousel-slider .carousel-item{width:100%;height:100%;min-height:400px;position:absolute;top:0;left:0}.carousel.carousel-slider .carousel-item h2{font-size:24px;font-weight:500;line-height:32px}.carousel.carousel-slider .carousel-item p{font-size:15px}.carousel .carousel-item{visibility:hidden;width:200px;height:200px;position:absolute;top:0;left:0}.carousel .carousel-item>img{width:100%}.carousel .indicators{position:absolute;text-align:center;left:0;right:0;bottom:0;margin:0}.carousel .indicators .indicator-item{display:inline-block;position:relative;cursor:pointer;height:8px;width:8px;margin:24px 4px;background-color:rgba(255,255,255,0.5);-webkit-transition:background-color .3s;transition:background-color .3s;border-radius:50%}.carousel .indicators .indicator-item.active{background-color:#fff}.carousel.scrolling .carousel-item .materialboxed,.carousel .carousel-item:not(.active) .materialboxed{pointer-events:none}.tap-target-wrapper{width:800px;height:800px;position:fixed;z-index:1000;visibility:hidden;-webkit-transition:visibility 0s .3s;transition:visibility 0s .3s}.tap-target-wrapper.open{visibility:visible;-webkit-transition:visibility 0s;transition:visibility 0s}.tap-target-wrapper.open .tap-target{-webkit-transform:scale(1);transform:scale(1);opacity:.95;-webkit-transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1)}.tap-target-wrapper.open .tap-target-wave::before{-webkit-transform:scale(1);transform:scale(1)}.tap-target-wrapper.open .tap-target-wave::after{visibility:visible;-webkit-animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;-webkit-transition:opacity .3s, visibility 0s 1s, -webkit-transform .3s;transition:opacity .3s, visibility 0s 1s, -webkit-transform .3s;transition:opacity .3s, transform .3s, visibility 0s 1s;transition:opacity .3s, transform .3s, visibility 0s 1s, -webkit-transform .3s}.tap-target{position:absolute;font-size:1rem;border-radius:50%;background-color:#ee6e73;-webkit-box-shadow:0 20px 20px 0 rgba(0,0,0,0.14),0 10px 50px 0 rgba(0,0,0,0.12),0 30px 10px -20px rgba(0,0,0,0.2);box-shadow:0 20px 20px 0 rgba(0,0,0,0.14),0 10px 50px 0 rgba(0,0,0,0.12),0 30px 10px -20px rgba(0,0,0,0.2);width:100%;height:100%;opacity:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1);transition:transform 0.3s cubic-bezier(0.42, 0, 0.58, 1),opacity 0.3s cubic-bezier(0.42, 0, 0.58, 1),-webkit-transform 0.3s cubic-bezier(0.42, 0, 0.58, 1)}.tap-target-content{position:relative;display:table-cell}.tap-target-wave{position:absolute;border-radius:50%;z-index:10001}.tap-target-wave::before,.tap-target-wave::after{content:'';display:block;position:absolute;width:100%;height:100%;border-radius:50%;background-color:#ffffff}.tap-target-wave::before{-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s, -webkit-transform .3s}.tap-target-wave::after{visibility:hidden;-webkit-transition:opacity .3s, visibility 0s, -webkit-transform .3s;transition:opacity .3s, visibility 0s, -webkit-transform .3s;transition:opacity .3s, transform .3s, visibility 0s;transition:opacity .3s, transform .3s, visibility 0s, -webkit-transform .3s;z-index:-1}.tap-target-origin{top:50%;left:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);z-index:10002;position:absolute !important}.tap-target-origin:not(.btn):not(.btn-large):not(.btn-small),.tap-target-origin:not(.btn):not(.btn-large):not(.btn-small):hover{background:none}@media only screen and (max-width: 600px){.tap-target,.tap-target-wrapper{width:600px;height:600px}}.pulse{overflow:visible;position:relative}.pulse::before{content:'';display:block;position:absolute;width:100%;height:100%;top:0;left:0;background-color:inherit;border-radius:inherit;-webkit-transition:opacity .3s, -webkit-transform .3s;transition:opacity .3s, -webkit-transform .3s;transition:opacity .3s, transform .3s;transition:opacity .3s, transform .3s, -webkit-transform .3s;-webkit-animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;animation:pulse-animation 1s cubic-bezier(0.24, 0, 0.38, 1) infinite;z-index:-1}@-webkit-keyframes pulse-animation{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}100%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}@keyframes pulse-animation{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}100%{opacity:0;-webkit-transform:scale(1.5);transform:scale(1.5)}}.datepicker-modal{max-width:325px;min-width:300px;max-height:none}.datepicker-container.modal-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:0}.datepicker-controls{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:280px;margin:0 auto}.datepicker-controls .selects-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.datepicker-controls .select-wrapper input{border-bottom:none;text-align:center;margin:0}.datepicker-controls .select-wrapper input:focus{border-bottom:none}.datepicker-controls .select-wrapper .caret{display:none}.datepicker-controls .select-year input{width:50px}.datepicker-controls .select-month input{width:70px}.month-prev,.month-next{margin-top:4px;cursor:pointer;background-color:transparent;border:none}.datepicker-date-display{-webkit-box-flex:1;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;background-color:#26a69a;color:#fff;padding:20px 22px;font-weight:500}.datepicker-date-display .year-text{display:block;font-size:1.5rem;line-height:25px;color:rgba(255,255,255,0.7)}.datepicker-date-display .date-text{display:block;font-size:2.8rem;line-height:47px;font-weight:500}.datepicker-calendar-container{-webkit-box-flex:2.5;-webkit-flex:2.5 auto;-ms-flex:2.5 auto;flex:2.5 auto}.datepicker-table{width:280px;font-size:1rem;margin:0 auto}.datepicker-table thead{border-bottom:none}.datepicker-table th{padding:10px 5px;text-align:center}.datepicker-table tr{border:none}.datepicker-table abbr{text-decoration:none;color:#999}.datepicker-table td{border-radius:50%;padding:0}.datepicker-table td.is-today{color:#26a69a}.datepicker-table td.is-selected{background-color:#26a69a;color:#fff}.datepicker-table td.is-outside-current-month,.datepicker-table td.is-disabled{color:rgba(0,0,0,0.3);pointer-events:none}.datepicker-day-button{background-color:transparent;border:none;line-height:38px;display:block;width:100%;border-radius:50%;padding:0 5px;cursor:pointer;color:inherit}.datepicker-day-button:focus{background-color:rgba(43,161,150,0.25)}.datepicker-footer{width:280px;margin:0 auto;padding-bottom:5px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.datepicker-cancel,.datepicker-clear,.datepicker-today,.datepicker-done{color:#26a69a;padding:0 1rem}.datepicker-clear{color:#F44336}@media only screen and (min-width: 601px){.datepicker-modal{max-width:625px}.datepicker-container.modal-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.datepicker-date-display{-webkit-box-flex:0;-webkit-flex:0 1 270px;-ms-flex:0 1 270px;flex:0 1 270px}.datepicker-controls,.datepicker-table,.datepicker-footer{width:320px}.datepicker-day-button{line-height:44px}}.timepicker-modal{max-width:325px;max-height:none}.timepicker-container.modal-content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:0}.text-primary{color:#fff}.timepicker-digital-display{-webkit-box-flex:1;-webkit-flex:1 auto;-ms-flex:1 auto;flex:1 auto;background-color:#26a69a;padding:10px;font-weight:300}.timepicker-text-container{font-size:4rem;font-weight:bold;text-align:center;color:rgba(255,255,255,0.6);font-weight:400;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.timepicker-span-hours,.timepicker-span-minutes,.timepicker-span-am-pm div{cursor:pointer}.timepicker-span-hours{margin-right:3px}.timepicker-span-minutes{margin-left:3px}.timepicker-display-am-pm{font-size:1.3rem;position:absolute;right:1rem;bottom:1rem;font-weight:400}.timepicker-analog-display{-webkit-box-flex:2.5;-webkit-flex:2.5 auto;-ms-flex:2.5 auto;flex:2.5 auto}.timepicker-plate{background-color:#eee;border-radius:50%;width:270px;height:270px;overflow:visible;position:relative;margin:auto;margin-top:25px;margin-bottom:5px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.timepicker-canvas,.timepicker-dial{position:absolute;left:0;right:0;top:0;bottom:0}.timepicker-minutes{visibility:hidden}.timepicker-tick{border-radius:50%;color:rgba(0,0,0,0.87);line-height:40px;text-align:center;width:40px;height:40px;position:absolute;cursor:pointer;font-size:15px}.timepicker-tick.active,.timepicker-tick:hover{background-color:rgba(38,166,154,0.25)}.timepicker-dial{-webkit-transition:opacity 350ms, -webkit-transform 350ms;transition:opacity 350ms, -webkit-transform 350ms;transition:transform 350ms, opacity 350ms;transition:transform 350ms, opacity 350ms, -webkit-transform 350ms}.timepicker-dial-out{opacity:0}.timepicker-dial-out.timepicker-hours{-webkit-transform:scale(1.1, 1.1);transform:scale(1.1, 1.1)}.timepicker-dial-out.timepicker-minutes{-webkit-transform:scale(0.8, 0.8);transform:scale(0.8, 0.8)}.timepicker-canvas{-webkit-transition:opacity 175ms;transition:opacity 175ms}.timepicker-canvas line{stroke:#26a69a;stroke-width:4;stroke-linecap:round}.timepicker-canvas-out{opacity:0.25}.timepicker-canvas-bearing{stroke:none;fill:#26a69a}.timepicker-canvas-bg{stroke:none;fill:#26a69a}.timepicker-footer{margin:0 auto;padding:5px 1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.timepicker-clear{color:#F44336}.timepicker-close{color:#26a69a}.timepicker-clear,.timepicker-close{padding:0 20px}@media only screen and (min-width: 601px){.timepicker-modal{max-width:600px}.timepicker-container.modal-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.timepicker-text-container{top:32%}.timepicker-display-am-pm{position:relative;right:auto;bottom:auto;text-align:center;margin-top:1.2rem}} 14 | --------------------------------------------------------------------------------