diff --git a/node_modules/material-design-lite/dist/material.min.css.map b/node_modules/material-design-lite/dist/material.min.css.map
new file mode 100644
index 0000000..7d44bde
--- /dev/null
+++ b/node_modules/material-design-lite/dist/material.min.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["material-design-lite.css","material-design-lite.scss","_variables.scss","_color-definitions.scss","_functions.scss","_mixins.scss","resets/_resets.scss","resets/_h5bp.scss","resets/_mobile.scss","typography/_typography.scss","palette/_palette.scss","ripple/_ripple.scss","animation/_animation.scss","badge/_badge.scss","button/_button.scss","card/_card.scss","checkbox/_checkbox.scss","chip/_chip.scss","data-table/_data-table.scss","dialog/_dialog.scss","footer/_mega_footer.scss","footer/_mini_footer.scss","icon-toggle/_icon-toggle.scss","list/_list.scss","menu/_menu.scss","progress/_progress.scss","layout/_layout.scss","radio/_radio.scss","slider/_slider.scss","snackbar/_snackbar.scss","spinner/_spinner.scss","switch/_switch.scss","tabs/_tabs.scss","textfield/_textfield.scss","tooltip/_tooltip.scss","shadow/_shadow.scss","grid/_grid.scss"],"names":[],"mappings":"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EACE,4CAAgE,EACjE;;AAED;EACE,iCAAqD,EACtD;;AAED;EACE,4CAAgE,EACjE;;AAED;EACE,iCAAqD,EACtD;;AAED;EACE,4CAAgE,EACjE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,+BAAsD,EACvD;;AAED;EACE,0CAAiE,EAClE;;AAID;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,mCAAqD,EACtD;;AAED;EACE,8CAAgE,EACjE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,kCAAuD,EACxD;;AAED;EACE,6CAAkE,EACnE;;AAED;EACE,gCAAuD,EACxD;;AAED;EACE,2CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAID;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,mCAAwD,EACzD;;AAED;EACE,8CAAmE,EACpE;;AAED;EACE,mCAAwD,EACzD;;AAED;EACE,8CAAmE,EACpE;;AAED;EACE,mCAAwD,EACzD;;AAED;EACE,8CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,mCAAyD,EAC1D;;AAED;EACE,8CAAoE,EACrE;;AAED;EACE,kCAAyD,EAC1D;;AAED;EACE,6CAAoE,EACrE;;AAED;EACE,iCAAyD,EAC1D;;AAED;EACE,4CAAoE,EACrE;;AAED;EACE,iCAAyD,EAC1D;;AAED;EACE,4CAAoE,EACrE;;AAID;EACE,kCAA6D,EAC9D;;AAED;EACE,6CAAwE,EACzE;;AAED;EACE,mCAA4D,EAC7D;;AAED;EACE,8CAAuE,EACxE;;AAED;EACE,mCAA6D,EAC9D;;AAED;EACE,8CAAwE,EACzE;;AAED;EACE,mCAA6D,EAC9D;;AAED;EACE,8CAAwE,EACzE;;AAED;EACE,mCAA6D,EAC9D;;AAED;EACE,8CAAwE,EACzE;;AAED;EACE,kCAA6D,EAC9D;;AAED;EACE,6CAAwE,EACzE;;AAED;EACE,kCAA6D,EAC9D;;AAED;EACE,6CAAwE,EACzE;;AAED;EACE,iCAA6D,EAC9D;;AAED;EACE,4CAAwE,EACzE;;AAED;EACE,iCAA6D,EAC9D;;AAED;EACE,4CAAwE,EACzE;;AAED;EACE,iCAA6D,EAC9D;;AAED;EACE,4CAAwE,EACzE;;AAED;EACE,iCAA6D,EAC9D;;AAED;EACE,4CAAwE,EACzE;;AAED;EACE,mCAA8D,EAC/D;;AAED;EACE,8CAAyE,EAC1E;;AAED;EACE,kCAA8D,EAC/D;;AAED;EACE,6CAAyE,EAC1E;;AAED;EACE,kCAA8D,EAC/D;;AAED;EACE,6CAAyE,EAC1E;;AAED;EACE,gCAA8D,EAC/D;;AAED;EACE,2CAAyE,EAC1E;;AAID;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,mCAAwD,EACzD;;AAED;EACE,8CAAmE,EACpE;;AAED;EACE,mCAAwD,EACzD;;AAED;EACE,8CAAmE,EACpE;;AAED;EACE,mCAAwD,EACzD;;AAED;EACE,8CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,mCAAyD,EAC1D;;AAED;EACE,8CAAoE,EACrE;;AAED;EACE,kCAAyD,EAC1D;;AAED;EACE,6CAAoE,EACrE;;AAED;EACE,iCAAyD,EAC1D;;AAED;EACE,4CAAoE,EACrE;;AAED;EACE,iCAAyD,EAC1D;;AAED;EACE,4CAAoE,EACrE;;AAID;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,mCAAqD,EACtD;;AAED;EACE,8CAAgE,EACjE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,kCAAuD,EACxD;;AAED;EACE,6CAAkE,EACnE;;AAED;EACE,kCAAuD,EACxD;;AAED;EACE,6CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAID;EACE,iCAA4D,EAC7D;;AAED;EACE,4CAAuE,EACxE;;AAED;EACE,mCAA2D,EAC5D;;AAED;EACE,8CAAsE,EACvE;;AAED;EACE,mCAA4D,EAC7D;;AAED;EACE,8CAAuE,EACxE;;AAED;EACE,mCAA4D,EAC7D;;AAED;EACE,8CAAuE,EACxE;;AAED;EACE,kCAA4D,EAC7D;;AAED;EACE,6CAAuE,EACxE;;AAED;EACE,kCAA4D,EAC7D;;AAED;EACE,6CAAuE,EACxE;;AAED;EACE,iCAA4D,EAC7D;;AAED;EACE,4CAAuE,EACxE;;AAED;EACE,iCAA4D,EAC7D;;AAED;EACE,4CAAuE,EACxE;;AAED;EACE,iCAA4D,EAC7D;;AAED;EACE,4CAAuE,EACxE;;AAED;EACE,iCAA4D,EAC7D;;AAED;EACE,4CAAuE,EACxE;;AAED;EACE,gCAA4D,EAC7D;;AAED;EACE,2CAAuE,EACxE;;AAED;EACE,mCAA6D,EAC9D;;AAED;EACE,8CAAwE,EACzE;;AAED;EACE,kCAA6D,EAC9D;;AAED;EACE,6CAAwE,EACzE;;AAED;EACE,iCAA6D,EAC9D;;AAED;EACE,4CAAwE,EACzE;;AAED;EACE,iCAA6D,EAC9D;;AAED;EACE,4CAAwE,EACzE;;AAID;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,mCAAqD,EACtD;;AAED;EACE,8CAAgE,EACjE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,gCAAsD,EACvD;;AAED;EACE,2CAAiE,EAClE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,kCAAuD,EACxD;;AAED;EACE,6CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAID;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,mCAAqD,EACtD;;AAED;EACE,8CAAgE,EACjE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,iCAAsD,EACvD;;AAED;EACE,4CAAiE,EAClE;;AAED;EACE,gCAAsD,EACvD;;AAED;EACE,2CAAiE,EAClE;;AAED;EACE,+BAAsD,EACvD;;AAED;EACE,0CAAiE,EAClE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,kCAAuD,EACxD;;AAED;EACE,6CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAID;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,gCAAuD,EACxD;;AAED;EACE,2CAAkE,EACnE;;AAED;EACE,mCAAwD,EACzD;;AAED;EACE,8CAAmE,EACpE;;AAED;EACE,mCAAwD,EACzD;;AAED;EACE,8CAAmE,EACpE;;AAED;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,gCAAwD,EACzD;;AAED;EACE,2CAAmE,EACpE;;AAID;EACE,kCAA6D,EAC9D;;AAED;EACE,6CAAwE,EACzE;;AAED;EACE,mCAA4D,EAC7D;;AAED;EACE,8CAAuE,EACxE;;AAED;EACE,mCAA6D,EAC9D;;AAED;EACE,8CAAwE,EACzE;;AAED;EACE,mCAA6D,EAC9D;;AAED;EACE,8CAAwE,EACzE;;AAED;EACE,mCAA6D,EAC9D;;AAED;EACE,8CAAwE,EACzE;;AAED;EACE,mCAA6D,EAC9D;;AAED;EACE,8CAAwE,EACzE;;AAED;EACE,kCAA6D,EAC9D;;AAED;EACE,6CAAwE,EACzE;;AAED;EACE,kCAA6D,EAC9D;;AAED;EACE,6CAAwE,EACzE;;AAED;EACE,kCAA6D,EAC9D;;AAED;EACE,6CAAwE,EACzE;;AAED;EACE,iCAA6D,EAC9D;;AAED;EACE,4CAAwE,EACzE;;AAED;EACE,iCAA6D,EAC9D;;AAED;EACE,4CAAwE,EACzE;;AAED;EACE,mCAA8D,EAC/D;;AAED;EACE,8CAAyE,EAC1E;;AAED;EACE,kCAA8D,EAC/D;;AAED;EACE,6CAAyE,EAC1E;;AAED;EACE,iCAA8D,EAC/D;;AAED;EACE,4CAAyE,EAC1E;;AAED;EACE,kCAA8D,EAC/D;;AAED;EACE,6CAAyE,EAC1E;;AAID;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,mCAAqD,EACtD;;AAED;EACE,8CAAgE,EACjE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,kCAAsD,EACvD;;AAED;EACE,6CAAiE,EAClE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,kCAAuD,EACxD;;AAED;EACE,6CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAID;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,mCAAwD,EACzD;;AAED;EACE,8CAAmE,EACpE;;AAED;EACE,mCAAwD,EACzD;;AAED;EACE,8CAAmE,EACpE;;AAED;EACE,mCAAwD,EACzD;;AAED;EACE,8CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,mCAAyD,EAC1D;;AAED;EACE,8CAAoE,EACrE;;AAED;EACE,iCAAyD,EAC1D;;AAED;EACE,4CAAoE,EACrE;;AAED;EACE,iCAAyD,EAC1D;;AAED;EACE,4CAAoE,EACrE;;AAED;EACE,iCAAyD,EAC1D;;AAED;EACE,4CAAoE,EACrE;;AAID;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,kCAAuD,EACxD;;AAED;EACE,6CAAkE,EACnE;;AAED;EACE,kCAAuD,EACxD;;AAED;EACE,6CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,mCAAwD,EACzD;;AAED;EACE,8CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAID;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,mCAAwD,EACzD;;AAED;EACE,8CAAmE,EACpE;;AAED;EACE,mCAAwD,EACzD;;AAED;EACE,8CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,kCAAwD,EACzD;;AAED;EACE,6CAAmE,EACpE;;AAED;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,iCAAwD,EACzD;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,gCAAwD,EACzD;;AAED;EACE,2CAAmE,EACpE;;AAED;EACE,mCAAyD,EAC1D;;AAED;EACE,8CAAoE,EACrE;;AAED;EACE,kCAAyD,EAC1D;;AAED;EACE,6CAAoE,EACrE;;AAED;EACE,iCAAyD,EAC1D;;AAED;EACE,4CAAoE,EACrE;;AAED;EACE,iCAAyD,EAC1D;;AAED;EACE,4CAAoE,EACrE;;AAID;EACE,iCAA6D,EAC9D;;AAED;EACE,4CAAwE,EACzE;;AAED;EACE,mCAA4D,EAC7D;;AAED;EACE,8CAAuE,EACxE;;AAED;EACE,mCAA6D,EAC9D;;AAED;EACE,8CAAwE,EACzE;;AAED;EACE,mCAA6D,EAC9D;;AAED;EACE,8CAAwE,EACzE;;AAED;EACE,mCAA6D,EAC9D;;AAED;EACE,8CAAwE,EACzE;;AAED;EACE,kCAA6D,EAC9D;;AAED;EACE,6CAAwE,EACzE;;AAED;EACE,iCAA6D,EAC9D;;AAED;EACE,4CAAwE,EACzE;;AAED;EACE,iCAA6D,EAC9D;;AAED;EACE,4CAAwE,EACzE;;AAED;EACE,iCAA6D,EAC9D;;AAED;EACE,4CAAwE,EACzE;;AAED;EACE,iCAA6D,EAC9D;;AAED;EACE,4CAAwE,EACzE;;AAED;EACE,iCAA6D,EAC9D;;AAED;EACE,4CAAwE,EACzE;;AAED;EACE,mCAA8D,EAC/D;;AAED;EACE,8CAAyE,EAC1E;;AAED;EACE,kCAA8D,EAC/D;;AAED;EACE,6CAAyE,EAC1E;;AAED;EACE,gCAA8D,EAC/D;;AAED;EACE,2CAAyE,EAC1E;;AAED;EACE,gCAA8D,EAC/D;;AAED;EACE,2CAAyE,EAC1E;;AAID;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,mCAAuD,EACxD;;AAED;EACE,8CAAkE,EACnE;;AAED;EACE,kCAAuD,EACxD;;AAED;EACE,6CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,iCAAuD,EACxD;;AAED;EACE,4CAAkE,EACnE;;AAED;EACE,gCAAuD,EACxD;;AAED;EACE,2CAAkE,EACnE;;AAED;EACE,gCAAuD,EACxD;;AAED;EACE,2CAAkE,EACnE;;AAED;EACE,gCAAuD,EACxD;;AAED;EACE,2CAAkE,EACnE;;AAID;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAqD,EACtD;;AAED;EACE,8CAAgE,EACjE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,mCAAsD,EACvD;;AAED;EACE,8CAAiE,EAClE;;AAED;EACE,gCAAsD,EACvD;;AAED;EACE,2CAAiE,EAClE;;AAED;EACE,gCAAsD,EACvD;;AAED;EACE,2CAAiE,EAClE;;AAED;EACE,gCAAsD,EACvD;;AAED;EACE,2CAAiE,EAClE;;AAID;EACE,kCAA2D,EAC5D;;AAED;EACE,6CAAsE,EACvE;;AAED;EACE,mCAA0D,EAC3D;;AAED;EACE,8CAAqE,EACtE;;AAED;EACE,mCAA2D,EAC5D;;AAED;EACE,8CAAsE,EACvE;;AAED;EACE,mCAA2D,EAC5D;;AAED;EACE,8CAAsE,EACvE;;AAED;EACE,mCAA2D,EAC5D;;AAED;EACE,8CAAsE,EACvE;;AAED;EACE,mCAA2D,EAC5D;;AAED;EACE,8CAAsE,EACvE;;AAED;EACE,kCAA2D,EAC5D;;AAED;EACE,6CAAsE,EACvE;;AAED;EACE,kCAA2D,EAC5D;;AAED;EACE,6CAAsE,EACvE;;AAED;EACE,iCAA2D,EAC5D;;AAED;EACE,4CAAsE,EACvE;;AAED;EACE,gCAA2D,EAC5D;;AAED;EACE,2CAAsE,EACvE;;AAED;EACE,gCAA2D,EAC5D;;AAED;EACE,2CAAsE,EACvE;;AAID;EACE,wCAA4D,EAC7D;;AAED;EACE,6BAAiD,EAClD;;AAID;EACE,8CAA4D,EAC7D;;AAED;EACE,mCAAiD,EAClD;;AAKH;EACE,4CAA8D,EAC/D;;AAED;EACE,8CAAuE,EACxE;;AAED;EACE,4CAAmE,EACpE;;AAED;EACE,6CAA6D,EAC9D;;AAED;EACE,8CAAsE,EACvE;;AAED;EACE,iCAAmD,EACpD;;AAED;EACE,mCAA4D,EAC7D;;AAED;EACE,iCAAwD,EACzD;;AAED;EACE,kCAAkD,EACnD;;AAED;EACE,mCAA2D,EAC5D;;AC9vED;;;;;;;;;;;;;;GAcG;ATdH;;;;;;;;;;;;;;GAcG;AAEH;wCAEwC;AACxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,wCAAwC;AAExC;;;;;;;;;EASE;AAIF,oCAAoC;AAEpC;;;;;GAKG;AC5EH;;;;;;;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","file":"material.min.css","sourcesContent":["@charset \"UTF-8\";\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Material Design Lite */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/*\n * What follows is the result of much research on cross-browser styling.\n * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,\n * Kroc Camen, and the H5BP dev community and team.\n */\n/* ==========================================================================\n   Base styles: opinionated defaults\n   ========================================================================== */\nhtml {\n  color: rgba(0,0,0, 0.87);\n  font-size: 1em;\n  line-height: 1.4; }\n\n/*\n * Remove text-shadow in selection highlight:\n * https://twitter.com/miketaylr/status/12228805301\n *\n * These selection rule sets have to be separate.\n * Customize the background color to match your design.\n */\n::selection {\n  background: #b3d4fc;\n  text-shadow: none; }\n\n/*\n * A better looking default horizontal rule\n */\nhr {\n  display: block;\n  height: 1px;\n  border: 0;\n  border-top: 1px solid #ccc;\n  margin: 1em 0;\n  padding: 0; }\n\n/*\n * Remove the gap between audio, canvas, iframes,\n * images, videos and the bottom of their containers:\n * https://github.com/h5bp/html5-boilerplate/issues/440\n */\naudio,\ncanvas,\niframe,\nimg,\nsvg,\nvideo {\n  vertical-align: middle; }\n\n/*\n * Remove default fieldset styles.\n */\nfieldset {\n  border: 0;\n  margin: 0;\n  padding: 0; }\n\n/*\n * Allow only vertical resizing of textareas.\n */\ntextarea {\n  resize: vertical; }\n\n/* ==========================================================================\n   Browser Upgrade Prompt\n   ========================================================================== */\n.browserupgrade {\n  margin: 0.2em 0;\n  background: #ccc;\n  color: #000;\n  padding: 0.2em 0; }\n\n/* ==========================================================================\n   Author's custom styles\n   ========================================================================== */\n/* ==========================================================================\n   Helper classes\n   ========================================================================== */\n/*\n * Hide visually and from screen readers:\n */\n.hidden {\n  display: none !important; }\n\n/*\n * Hide only visually, but have it available for screen readers:\n * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility\n */\n.visuallyhidden {\n  border: 0;\n  clip: rect(0 0 0 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px; }\n\n/*\n * Extends the .visuallyhidden class to allow the element\n * to be focusable when navigated to via the keyboard:\n * https://www.drupal.org/node/897638\n */\n.visuallyhidden.focusable:active,\n.visuallyhidden.focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto; }\n\n/*\n * Hide visually and from screen readers, but maintain layout\n */\n.invisible {\n  visibility: hidden; }\n\n/*\n * Clearfix: contain floats\n *\n * For modern browsers\n * 1. The space content is one way to avoid an Opera bug when the\n *    `contenteditable` attribute is included anywhere else in the document.\n *    Otherwise it causes space to appear at the top and bottom of elements\n *    that receive the `clearfix` class.\n * 2. The use of `table` rather than `block` is only necessary if using\n *    `:before` to contain the top-margins of child elements.\n */\n.clearfix:before,\n.clearfix:after {\n  content: \" \";\n  /* 1 */\n  display: table;\n  /* 2 */ }\n\n.clearfix:after {\n  clear: both; }\n\n/* ==========================================================================\n   EXAMPLE Media Queries for Responsive Design.\n   These examples override the primary ('mobile first') styles.\n   Modify as content requires.\n   ========================================================================== */\n@media only screen and (min-width: 35em) {\n  /* Style adjustments for viewports that meet the condition */ }\n\n@media print, (min-resolution: 1.25dppx), (min-resolution: 120dpi) {\n  /* Style adjustments for high resolution devices */ }\n\n/* ==========================================================================\n   Print styles.\n   Inlined to avoid the additional HTTP request:\n   http://www.phpied.com/delay-loading-your-print-css/\n   ========================================================================== */\n@media print {\n  *,\n  *:before,\n  *:after,\n  *:first-letter {\n    background: transparent !important;\n    color: #000 !important;\n    /* Black prints faster: http://www.sanbeiji.com/archives/953 */\n    box-shadow: none !important; }\n  a,\n  a:visited {\n    text-decoration: underline; }\n  a[href]:after {\n    content: \" (\" attr(href) \")\"; }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\"; }\n  /*\n     * Don't show links that are fragment identifiers,\n     * or use the `javascript:` pseudo protocol\n     */\n  a[href^=\"#\"]:after,\n  a[href^=\"javascript:\"]:after {\n    content: \"\"; }\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid; }\n  /*\n     * Printing Tables:\n     * http://css-discuss.incutio.com/wiki/Printing_Tables\n     */\n  thead {\n    display: table-header-group; }\n  tr,\n  img {\n    page-break-inside: avoid; }\n  img {\n    max-width: 100% !important; }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3; }\n  h2,\n  h3 {\n    page-break-after: avoid; } }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Remove the unwanted box around FAB buttons */\n/* More info: http://goo.gl/IPwKi */\na, .mdl-accordion, .mdl-button, .mdl-card, .mdl-checkbox, .mdl-dropdown-menu,\n.mdl-icon-toggle, .mdl-item, .mdl-radio, .mdl-slider, .mdl-switch, .mdl-tabs__tab {\n  -webkit-tap-highlight-color: transparent;\n  -webkit-tap-highlight-color: rgba(255, 255, 255, 0); }\n\n/*\n * Make html take up the entire screen\n * Then set touch-action to avoid touch delay on mobile IE\n */\nhtml {\n  width: 100%;\n  height: 100%;\n  -ms-touch-action: manipulation;\n  touch-action: manipulation; }\n\n/*\n* Make body take up the entire screen\n* Remove body margin so layout containers don't cause extra overflow.\n*/\nbody {\n  width: 100%;\n  min-height: 100%;\n  margin: 0; }\n\n/*\n * Main display reset for IE support.\n * Source: http://weblog.west-wind.com/posts/2015/Jan/12/main-HTML5-Tag-not-working-in-Internet-Explorer-91011\n */\nmain {\n  display: block; }\n\n/*\n* Apply no display to elements with the hidden attribute.\n* IE 9 and 10 support.\n*/\n*[hidden] {\n  display: none !important; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\nhtml, body {\n  font-family: \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 20px; }\n\nh1, h2, h3, h4, h5, h6, p {\n  margin: 0;\n  padding: 0; }\n\n/**\n  * Styles for HTML elements\n  */\nh1 small, h2 small, h3 small, h4 small, h5 small, h6 small {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 56px;\n  font-weight: 400;\n  line-height: 1.35;\n  letter-spacing: -0.02em;\n  opacity: 0.54;\n  font-size: 0.6em; }\n\nh1 {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 56px;\n  font-weight: 400;\n  line-height: 1.35;\n  letter-spacing: -0.02em;\n  margin-top: 24px;\n  margin-bottom: 24px; }\n\nh2 {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 45px;\n  font-weight: 400;\n  line-height: 48px;\n  margin-top: 24px;\n  margin-bottom: 24px; }\n\nh3 {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 34px;\n  font-weight: 400;\n  line-height: 40px;\n  margin-top: 24px;\n  margin-bottom: 24px; }\n\nh4 {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 24px;\n  font-weight: 400;\n  line-height: 32px;\n  -moz-osx-font-smoothing: grayscale;\n  margin-top: 24px;\n  margin-bottom: 16px; }\n\nh5 {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 20px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0.02em;\n  margin-top: 24px;\n  margin-bottom: 16px; }\n\nh6 {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0.04em;\n  margin-top: 24px;\n  margin-bottom: 16px; }\n\np {\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0;\n  margin-bottom: 16px; }\n\na {\n  color: rgb(255,64,129);\n  font-weight: 500; }\n\nblockquote {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  position: relative;\n  font-size: 24px;\n  font-weight: 300;\n  font-style: italic;\n  line-height: 1.35;\n  letter-spacing: 0.08em; }\n  blockquote:before {\n    position: absolute;\n    left: -0.5em;\n    content: '“'; }\n  blockquote:after {\n    content: '”';\n    margin-left: -0.05em; }\n\nmark {\n  background-color: #f4ff81; }\n\ndt {\n  font-weight: 700; }\n\naddress {\n  font-size: 12px;\n  font-weight: 400;\n  line-height: 1;\n  letter-spacing: 0;\n  font-style: normal; }\n\nul, ol {\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0; }\n\n/**\n * Class Name Styles\n */\n.mdl-typography--display-4 {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 112px;\n  font-weight: 300;\n  line-height: 1;\n  letter-spacing: -0.04em; }\n\n.mdl-typography--display-4-color-contrast {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 112px;\n  font-weight: 300;\n  line-height: 1;\n  letter-spacing: -0.04em;\n  opacity: 0.54; }\n\n.mdl-typography--display-3 {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 56px;\n  font-weight: 400;\n  line-height: 1.35;\n  letter-spacing: -0.02em; }\n\n.mdl-typography--display-3-color-contrast {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 56px;\n  font-weight: 400;\n  line-height: 1.35;\n  letter-spacing: -0.02em;\n  opacity: 0.54; }\n\n.mdl-typography--display-2 {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 45px;\n  font-weight: 400;\n  line-height: 48px; }\n\n.mdl-typography--display-2-color-contrast {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 45px;\n  font-weight: 400;\n  line-height: 48px;\n  opacity: 0.54; }\n\n.mdl-typography--display-1 {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 34px;\n  font-weight: 400;\n  line-height: 40px; }\n\n.mdl-typography--display-1-color-contrast {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 34px;\n  font-weight: 400;\n  line-height: 40px;\n  opacity: 0.54; }\n\n.mdl-typography--headline {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 24px;\n  font-weight: 400;\n  line-height: 32px;\n  -moz-osx-font-smoothing: grayscale; }\n\n.mdl-typography--headline-color-contrast {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 24px;\n  font-weight: 400;\n  line-height: 32px;\n  -moz-osx-font-smoothing: grayscale;\n  opacity: 0.87; }\n\n.mdl-typography--title {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 20px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0.02em; }\n\n.mdl-typography--title-color-contrast {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 20px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0.02em;\n  opacity: 0.87; }\n\n.mdl-typography--subhead {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0.04em; }\n\n.mdl-typography--subhead-color-contrast {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0.04em;\n  opacity: 0.87; }\n\n.mdl-typography--body-2 {\n  font-size: 14px;\n  font-weight: bold;\n  line-height: 24px;\n  letter-spacing: 0; }\n\n.mdl-typography--body-2-color-contrast {\n  font-size: 14px;\n  font-weight: bold;\n  line-height: 24px;\n  letter-spacing: 0;\n  opacity: 0.87; }\n\n.mdl-typography--body-1 {\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0; }\n\n.mdl-typography--body-1-color-contrast {\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0;\n  opacity: 0.87; }\n\n.mdl-typography--body-2-force-preferred-font {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 14px;\n  font-weight: 500;\n  line-height: 24px;\n  letter-spacing: 0; }\n\n.mdl-typography--body-2-force-preferred-font-color-contrast {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 14px;\n  font-weight: 500;\n  line-height: 24px;\n  letter-spacing: 0;\n  opacity: 0.87; }\n\n.mdl-typography--body-1-force-preferred-font {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0; }\n\n.mdl-typography--body-1-force-preferred-font-color-contrast {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0;\n  opacity: 0.87; }\n\n.mdl-typography--caption {\n  font-size: 12px;\n  font-weight: 400;\n  line-height: 1;\n  letter-spacing: 0; }\n\n.mdl-typography--caption-force-preferred-font {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 12px;\n  font-weight: 400;\n  line-height: 1;\n  letter-spacing: 0; }\n\n.mdl-typography--caption-color-contrast {\n  font-size: 12px;\n  font-weight: 400;\n  line-height: 1;\n  letter-spacing: 0;\n  opacity: 0.54; }\n\n.mdl-typography--caption-force-preferred-font-color-contrast {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 12px;\n  font-weight: 400;\n  line-height: 1;\n  letter-spacing: 0;\n  opacity: 0.54; }\n\n.mdl-typography--menu {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 14px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0; }\n\n.mdl-typography--menu-color-contrast {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 14px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0;\n  opacity: 0.87; }\n\n.mdl-typography--button {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 14px;\n  font-weight: 500;\n  text-transform: uppercase;\n  line-height: 1;\n  letter-spacing: 0; }\n\n.mdl-typography--button-color-contrast {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 14px;\n  font-weight: 500;\n  text-transform: uppercase;\n  line-height: 1;\n  letter-spacing: 0;\n  opacity: 0.87; }\n\n.mdl-typography--text-left {\n  text-align: left; }\n\n.mdl-typography--text-right {\n  text-align: right; }\n\n.mdl-typography--text-center {\n  text-align: center; }\n\n.mdl-typography--text-justify {\n  text-align: justify; }\n\n.mdl-typography--text-nowrap {\n  white-space: nowrap; }\n\n.mdl-typography--text-lowercase {\n  text-transform: lowercase; }\n\n.mdl-typography--text-uppercase {\n  text-transform: uppercase; }\n\n.mdl-typography--text-capitalize {\n  text-transform: capitalize; }\n\n.mdl-typography--font-thin {\n  font-weight: 200 !important; }\n\n.mdl-typography--font-light {\n  font-weight: 300 !important; }\n\n.mdl-typography--font-regular {\n  font-weight: 400 !important; }\n\n.mdl-typography--font-medium {\n  font-weight: 500 !important; }\n\n.mdl-typography--font-bold {\n  font-weight: 700 !important; }\n\n.mdl-typography--font-black {\n  font-weight: 900 !important; }\n\n.material-icons {\n  font-family: 'Material Icons';\n  font-weight: normal;\n  font-style: normal;\n  font-size: 24px;\n  line-height: 1;\n  letter-spacing: normal;\n  text-transform: none;\n  display: inline-block;\n  word-wrap: normal;\n  font-feature-settings: 'liga';\n  -webkit-font-feature-settings: 'liga';\n  -webkit-font-smoothing: antialiased; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n.mdl-color-text--red {\n  color: rgb(244,67,54) !important; }\n\n.mdl-color--red {\n  background-color: rgb(244,67,54) !important; }\n\n.mdl-color-text--red-50 {\n  color: rgb(255,235,238) !important; }\n\n.mdl-color--red-50 {\n  background-color: rgb(255,235,238) !important; }\n\n.mdl-color-text--red-100 {\n  color: rgb(255,205,210) !important; }\n\n.mdl-color--red-100 {\n  background-color: rgb(255,205,210) !important; }\n\n.mdl-color-text--red-200 {\n  color: rgb(239,154,154) !important; }\n\n.mdl-color--red-200 {\n  background-color: rgb(239,154,154) !important; }\n\n.mdl-color-text--red-300 {\n  color: rgb(229,115,115) !important; }\n\n.mdl-color--red-300 {\n  background-color: rgb(229,115,115) !important; }\n\n.mdl-color-text--red-400 {\n  color: rgb(239,83,80) !important; }\n\n.mdl-color--red-400 {\n  background-color: rgb(239,83,80) !important; }\n\n.mdl-color-text--red-500 {\n  color: rgb(244,67,54) !important; }\n\n.mdl-color--red-500 {\n  background-color: rgb(244,67,54) !important; }\n\n.mdl-color-text--red-600 {\n  color: rgb(229,57,53) !important; }\n\n.mdl-color--red-600 {\n  background-color: rgb(229,57,53) !important; }\n\n.mdl-color-text--red-700 {\n  color: rgb(211,47,47) !important; }\n\n.mdl-color--red-700 {\n  background-color: rgb(211,47,47) !important; }\n\n.mdl-color-text--red-800 {\n  color: rgb(198,40,40) !important; }\n\n.mdl-color--red-800 {\n  background-color: rgb(198,40,40) !important; }\n\n.mdl-color-text--red-900 {\n  color: rgb(183,28,28) !important; }\n\n.mdl-color--red-900 {\n  background-color: rgb(183,28,28) !important; }\n\n.mdl-color-text--red-A100 {\n  color: rgb(255,138,128) !important; }\n\n.mdl-color--red-A100 {\n  background-color: rgb(255,138,128) !important; }\n\n.mdl-color-text--red-A200 {\n  color: rgb(255,82,82) !important; }\n\n.mdl-color--red-A200 {\n  background-color: rgb(255,82,82) !important; }\n\n.mdl-color-text--red-A400 {\n  color: rgb(255,23,68) !important; }\n\n.mdl-color--red-A400 {\n  background-color: rgb(255,23,68) !important; }\n\n.mdl-color-text--red-A700 {\n  color: rgb(213,0,0) !important; }\n\n.mdl-color--red-A700 {\n  background-color: rgb(213,0,0) !important; }\n\n.mdl-color-text--pink {\n  color: rgb(233,30,99) !important; }\n\n.mdl-color--pink {\n  background-color: rgb(233,30,99) !important; }\n\n.mdl-color-text--pink-50 {\n  color: rgb(252,228,236) !important; }\n\n.mdl-color--pink-50 {\n  background-color: rgb(252,228,236) !important; }\n\n.mdl-color-text--pink-100 {\n  color: rgb(248,187,208) !important; }\n\n.mdl-color--pink-100 {\n  background-color: rgb(248,187,208) !important; }\n\n.mdl-color-text--pink-200 {\n  color: rgb(244,143,177) !important; }\n\n.mdl-color--pink-200 {\n  background-color: rgb(244,143,177) !important; }\n\n.mdl-color-text--pink-300 {\n  color: rgb(240,98,146) !important; }\n\n.mdl-color--pink-300 {\n  background-color: rgb(240,98,146) !important; }\n\n.mdl-color-text--pink-400 {\n  color: rgb(236,64,122) !important; }\n\n.mdl-color--pink-400 {\n  background-color: rgb(236,64,122) !important; }\n\n.mdl-color-text--pink-500 {\n  color: rgb(233,30,99) !important; }\n\n.mdl-color--pink-500 {\n  background-color: rgb(233,30,99) !important; }\n\n.mdl-color-text--pink-600 {\n  color: rgb(216,27,96) !important; }\n\n.mdl-color--pink-600 {\n  background-color: rgb(216,27,96) !important; }\n\n.mdl-color-text--pink-700 {\n  color: rgb(194,24,91) !important; }\n\n.mdl-color--pink-700 {\n  background-color: rgb(194,24,91) !important; }\n\n.mdl-color-text--pink-800 {\n  color: rgb(173,20,87) !important; }\n\n.mdl-color--pink-800 {\n  background-color: rgb(173,20,87) !important; }\n\n.mdl-color-text--pink-900 {\n  color: rgb(136,14,79) !important; }\n\n.mdl-color--pink-900 {\n  background-color: rgb(136,14,79) !important; }\n\n.mdl-color-text--pink-A100 {\n  color: rgb(255,128,171) !important; }\n\n.mdl-color--pink-A100 {\n  background-color: rgb(255,128,171) !important; }\n\n.mdl-color-text--pink-A200 {\n  color: rgb(255,64,129) !important; }\n\n.mdl-color--pink-A200 {\n  background-color: rgb(255,64,129) !important; }\n\n.mdl-color-text--pink-A400 {\n  color: rgb(245,0,87) !important; }\n\n.mdl-color--pink-A400 {\n  background-color: rgb(245,0,87) !important; }\n\n.mdl-color-text--pink-A700 {\n  color: rgb(197,17,98) !important; }\n\n.mdl-color--pink-A700 {\n  background-color: rgb(197,17,98) !important; }\n\n.mdl-color-text--purple {\n  color: rgb(156,39,176) !important; }\n\n.mdl-color--purple {\n  background-color: rgb(156,39,176) !important; }\n\n.mdl-color-text--purple-50 {\n  color: rgb(243,229,245) !important; }\n\n.mdl-color--purple-50 {\n  background-color: rgb(243,229,245) !important; }\n\n.mdl-color-text--purple-100 {\n  color: rgb(225,190,231) !important; }\n\n.mdl-color--purple-100 {\n  background-color: rgb(225,190,231) !important; }\n\n.mdl-color-text--purple-200 {\n  color: rgb(206,147,216) !important; }\n\n.mdl-color--purple-200 {\n  background-color: rgb(206,147,216) !important; }\n\n.mdl-color-text--purple-300 {\n  color: rgb(186,104,200) !important; }\n\n.mdl-color--purple-300 {\n  background-color: rgb(186,104,200) !important; }\n\n.mdl-color-text--purple-400 {\n  color: rgb(171,71,188) !important; }\n\n.mdl-color--purple-400 {\n  background-color: rgb(171,71,188) !important; }\n\n.mdl-color-text--purple-500 {\n  color: rgb(156,39,176) !important; }\n\n.mdl-color--purple-500 {\n  background-color: rgb(156,39,176) !important; }\n\n.mdl-color-text--purple-600 {\n  color: rgb(142,36,170) !important; }\n\n.mdl-color--purple-600 {\n  background-color: rgb(142,36,170) !important; }\n\n.mdl-color-text--purple-700 {\n  color: rgb(123,31,162) !important; }\n\n.mdl-color--purple-700 {\n  background-color: rgb(123,31,162) !important; }\n\n.mdl-color-text--purple-800 {\n  color: rgb(106,27,154) !important; }\n\n.mdl-color--purple-800 {\n  background-color: rgb(106,27,154) !important; }\n\n.mdl-color-text--purple-900 {\n  color: rgb(74,20,140) !important; }\n\n.mdl-color--purple-900 {\n  background-color: rgb(74,20,140) !important; }\n\n.mdl-color-text--purple-A100 {\n  color: rgb(234,128,252) !important; }\n\n.mdl-color--purple-A100 {\n  background-color: rgb(234,128,252) !important; }\n\n.mdl-color-text--purple-A200 {\n  color: rgb(224,64,251) !important; }\n\n.mdl-color--purple-A200 {\n  background-color: rgb(224,64,251) !important; }\n\n.mdl-color-text--purple-A400 {\n  color: rgb(213,0,249) !important; }\n\n.mdl-color--purple-A400 {\n  background-color: rgb(213,0,249) !important; }\n\n.mdl-color-text--purple-A700 {\n  color: rgb(170,0,255) !important; }\n\n.mdl-color--purple-A700 {\n  background-color: rgb(170,0,255) !important; }\n\n.mdl-color-text--deep-purple {\n  color: rgb(103,58,183) !important; }\n\n.mdl-color--deep-purple {\n  background-color: rgb(103,58,183) !important; }\n\n.mdl-color-text--deep-purple-50 {\n  color: rgb(237,231,246) !important; }\n\n.mdl-color--deep-purple-50 {\n  background-color: rgb(237,231,246) !important; }\n\n.mdl-color-text--deep-purple-100 {\n  color: rgb(209,196,233) !important; }\n\n.mdl-color--deep-purple-100 {\n  background-color: rgb(209,196,233) !important; }\n\n.mdl-color-text--deep-purple-200 {\n  color: rgb(179,157,219) !important; }\n\n.mdl-color--deep-purple-200 {\n  background-color: rgb(179,157,219) !important; }\n\n.mdl-color-text--deep-purple-300 {\n  color: rgb(149,117,205) !important; }\n\n.mdl-color--deep-purple-300 {\n  background-color: rgb(149,117,205) !important; }\n\n.mdl-color-text--deep-purple-400 {\n  color: rgb(126,87,194) !important; }\n\n.mdl-color--deep-purple-400 {\n  background-color: rgb(126,87,194) !important; }\n\n.mdl-color-text--deep-purple-500 {\n  color: rgb(103,58,183) !important; }\n\n.mdl-color--deep-purple-500 {\n  background-color: rgb(103,58,183) !important; }\n\n.mdl-color-text--deep-purple-600 {\n  color: rgb(94,53,177) !important; }\n\n.mdl-color--deep-purple-600 {\n  background-color: rgb(94,53,177) !important; }\n\n.mdl-color-text--deep-purple-700 {\n  color: rgb(81,45,168) !important; }\n\n.mdl-color--deep-purple-700 {\n  background-color: rgb(81,45,168) !important; }\n\n.mdl-color-text--deep-purple-800 {\n  color: rgb(69,39,160) !important; }\n\n.mdl-color--deep-purple-800 {\n  background-color: rgb(69,39,160) !important; }\n\n.mdl-color-text--deep-purple-900 {\n  color: rgb(49,27,146) !important; }\n\n.mdl-color--deep-purple-900 {\n  background-color: rgb(49,27,146) !important; }\n\n.mdl-color-text--deep-purple-A100 {\n  color: rgb(179,136,255) !important; }\n\n.mdl-color--deep-purple-A100 {\n  background-color: rgb(179,136,255) !important; }\n\n.mdl-color-text--deep-purple-A200 {\n  color: rgb(124,77,255) !important; }\n\n.mdl-color--deep-purple-A200 {\n  background-color: rgb(124,77,255) !important; }\n\n.mdl-color-text--deep-purple-A400 {\n  color: rgb(101,31,255) !important; }\n\n.mdl-color--deep-purple-A400 {\n  background-color: rgb(101,31,255) !important; }\n\n.mdl-color-text--deep-purple-A700 {\n  color: rgb(98,0,234) !important; }\n\n.mdl-color--deep-purple-A700 {\n  background-color: rgb(98,0,234) !important; }\n\n.mdl-color-text--indigo {\n  color: rgb(63,81,181) !important; }\n\n.mdl-color--indigo {\n  background-color: rgb(63,81,181) !important; }\n\n.mdl-color-text--indigo-50 {\n  color: rgb(232,234,246) !important; }\n\n.mdl-color--indigo-50 {\n  background-color: rgb(232,234,246) !important; }\n\n.mdl-color-text--indigo-100 {\n  color: rgb(197,202,233) !important; }\n\n.mdl-color--indigo-100 {\n  background-color: rgb(197,202,233) !important; }\n\n.mdl-color-text--indigo-200 {\n  color: rgb(159,168,218) !important; }\n\n.mdl-color--indigo-200 {\n  background-color: rgb(159,168,218) !important; }\n\n.mdl-color-text--indigo-300 {\n  color: rgb(121,134,203) !important; }\n\n.mdl-color--indigo-300 {\n  background-color: rgb(121,134,203) !important; }\n\n.mdl-color-text--indigo-400 {\n  color: rgb(92,107,192) !important; }\n\n.mdl-color--indigo-400 {\n  background-color: rgb(92,107,192) !important; }\n\n.mdl-color-text--indigo-500 {\n  color: rgb(63,81,181) !important; }\n\n.mdl-color--indigo-500 {\n  background-color: rgb(63,81,181) !important; }\n\n.mdl-color-text--indigo-600 {\n  color: rgb(57,73,171) !important; }\n\n.mdl-color--indigo-600 {\n  background-color: rgb(57,73,171) !important; }\n\n.mdl-color-text--indigo-700 {\n  color: rgb(48,63,159) !important; }\n\n.mdl-color--indigo-700 {\n  background-color: rgb(48,63,159) !important; }\n\n.mdl-color-text--indigo-800 {\n  color: rgb(40,53,147) !important; }\n\n.mdl-color--indigo-800 {\n  background-color: rgb(40,53,147) !important; }\n\n.mdl-color-text--indigo-900 {\n  color: rgb(26,35,126) !important; }\n\n.mdl-color--indigo-900 {\n  background-color: rgb(26,35,126) !important; }\n\n.mdl-color-text--indigo-A100 {\n  color: rgb(140,158,255) !important; }\n\n.mdl-color--indigo-A100 {\n  background-color: rgb(140,158,255) !important; }\n\n.mdl-color-text--indigo-A200 {\n  color: rgb(83,109,254) !important; }\n\n.mdl-color--indigo-A200 {\n  background-color: rgb(83,109,254) !important; }\n\n.mdl-color-text--indigo-A400 {\n  color: rgb(61,90,254) !important; }\n\n.mdl-color--indigo-A400 {\n  background-color: rgb(61,90,254) !important; }\n\n.mdl-color-text--indigo-A700 {\n  color: rgb(48,79,254) !important; }\n\n.mdl-color--indigo-A700 {\n  background-color: rgb(48,79,254) !important; }\n\n.mdl-color-text--blue {\n  color: rgb(33,150,243) !important; }\n\n.mdl-color--blue {\n  background-color: rgb(33,150,243) !important; }\n\n.mdl-color-text--blue-50 {\n  color: rgb(227,242,253) !important; }\n\n.mdl-color--blue-50 {\n  background-color: rgb(227,242,253) !important; }\n\n.mdl-color-text--blue-100 {\n  color: rgb(187,222,251) !important; }\n\n.mdl-color--blue-100 {\n  background-color: rgb(187,222,251) !important; }\n\n.mdl-color-text--blue-200 {\n  color: rgb(144,202,249) !important; }\n\n.mdl-color--blue-200 {\n  background-color: rgb(144,202,249) !important; }\n\n.mdl-color-text--blue-300 {\n  color: rgb(100,181,246) !important; }\n\n.mdl-color--blue-300 {\n  background-color: rgb(100,181,246) !important; }\n\n.mdl-color-text--blue-400 {\n  color: rgb(66,165,245) !important; }\n\n.mdl-color--blue-400 {\n  background-color: rgb(66,165,245) !important; }\n\n.mdl-color-text--blue-500 {\n  color: rgb(33,150,243) !important; }\n\n.mdl-color--blue-500 {\n  background-color: rgb(33,150,243) !important; }\n\n.mdl-color-text--blue-600 {\n  color: rgb(30,136,229) !important; }\n\n.mdl-color--blue-600 {\n  background-color: rgb(30,136,229) !important; }\n\n.mdl-color-text--blue-700 {\n  color: rgb(25,118,210) !important; }\n\n.mdl-color--blue-700 {\n  background-color: rgb(25,118,210) !important; }\n\n.mdl-color-text--blue-800 {\n  color: rgb(21,101,192) !important; }\n\n.mdl-color--blue-800 {\n  background-color: rgb(21,101,192) !important; }\n\n.mdl-color-text--blue-900 {\n  color: rgb(13,71,161) !important; }\n\n.mdl-color--blue-900 {\n  background-color: rgb(13,71,161) !important; }\n\n.mdl-color-text--blue-A100 {\n  color: rgb(130,177,255) !important; }\n\n.mdl-color--blue-A100 {\n  background-color: rgb(130,177,255) !important; }\n\n.mdl-color-text--blue-A200 {\n  color: rgb(68,138,255) !important; }\n\n.mdl-color--blue-A200 {\n  background-color: rgb(68,138,255) !important; }\n\n.mdl-color-text--blue-A400 {\n  color: rgb(41,121,255) !important; }\n\n.mdl-color--blue-A400 {\n  background-color: rgb(41,121,255) !important; }\n\n.mdl-color-text--blue-A700 {\n  color: rgb(41,98,255) !important; }\n\n.mdl-color--blue-A700 {\n  background-color: rgb(41,98,255) !important; }\n\n.mdl-color-text--light-blue {\n  color: rgb(3,169,244) !important; }\n\n.mdl-color--light-blue {\n  background-color: rgb(3,169,244) !important; }\n\n.mdl-color-text--light-blue-50 {\n  color: rgb(225,245,254) !important; }\n\n.mdl-color--light-blue-50 {\n  background-color: rgb(225,245,254) !important; }\n\n.mdl-color-text--light-blue-100 {\n  color: rgb(179,229,252) !important; }\n\n.mdl-color--light-blue-100 {\n  background-color: rgb(179,229,252) !important; }\n\n.mdl-color-text--light-blue-200 {\n  color: rgb(129,212,250) !important; }\n\n.mdl-color--light-blue-200 {\n  background-color: rgb(129,212,250) !important; }\n\n.mdl-color-text--light-blue-300 {\n  color: rgb(79,195,247) !important; }\n\n.mdl-color--light-blue-300 {\n  background-color: rgb(79,195,247) !important; }\n\n.mdl-color-text--light-blue-400 {\n  color: rgb(41,182,246) !important; }\n\n.mdl-color--light-blue-400 {\n  background-color: rgb(41,182,246) !important; }\n\n.mdl-color-text--light-blue-500 {\n  color: rgb(3,169,244) !important; }\n\n.mdl-color--light-blue-500 {\n  background-color: rgb(3,169,244) !important; }\n\n.mdl-color-text--light-blue-600 {\n  color: rgb(3,155,229) !important; }\n\n.mdl-color--light-blue-600 {\n  background-color: rgb(3,155,229) !important; }\n\n.mdl-color-text--light-blue-700 {\n  color: rgb(2,136,209) !important; }\n\n.mdl-color--light-blue-700 {\n  background-color: rgb(2,136,209) !important; }\n\n.mdl-color-text--light-blue-800 {\n  color: rgb(2,119,189) !important; }\n\n.mdl-color--light-blue-800 {\n  background-color: rgb(2,119,189) !important; }\n\n.mdl-color-text--light-blue-900 {\n  color: rgb(1,87,155) !important; }\n\n.mdl-color--light-blue-900 {\n  background-color: rgb(1,87,155) !important; }\n\n.mdl-color-text--light-blue-A100 {\n  color: rgb(128,216,255) !important; }\n\n.mdl-color--light-blue-A100 {\n  background-color: rgb(128,216,255) !important; }\n\n.mdl-color-text--light-blue-A200 {\n  color: rgb(64,196,255) !important; }\n\n.mdl-color--light-blue-A200 {\n  background-color: rgb(64,196,255) !important; }\n\n.mdl-color-text--light-blue-A400 {\n  color: rgb(0,176,255) !important; }\n\n.mdl-color--light-blue-A400 {\n  background-color: rgb(0,176,255) !important; }\n\n.mdl-color-text--light-blue-A700 {\n  color: rgb(0,145,234) !important; }\n\n.mdl-color--light-blue-A700 {\n  background-color: rgb(0,145,234) !important; }\n\n.mdl-color-text--cyan {\n  color: rgb(0,188,212) !important; }\n\n.mdl-color--cyan {\n  background-color: rgb(0,188,212) !important; }\n\n.mdl-color-text--cyan-50 {\n  color: rgb(224,247,250) !important; }\n\n.mdl-color--cyan-50 {\n  background-color: rgb(224,247,250) !important; }\n\n.mdl-color-text--cyan-100 {\n  color: rgb(178,235,242) !important; }\n\n.mdl-color--cyan-100 {\n  background-color: rgb(178,235,242) !important; }\n\n.mdl-color-text--cyan-200 {\n  color: rgb(128,222,234) !important; }\n\n.mdl-color--cyan-200 {\n  background-color: rgb(128,222,234) !important; }\n\n.mdl-color-text--cyan-300 {\n  color: rgb(77,208,225) !important; }\n\n.mdl-color--cyan-300 {\n  background-color: rgb(77,208,225) !important; }\n\n.mdl-color-text--cyan-400 {\n  color: rgb(38,198,218) !important; }\n\n.mdl-color--cyan-400 {\n  background-color: rgb(38,198,218) !important; }\n\n.mdl-color-text--cyan-500 {\n  color: rgb(0,188,212) !important; }\n\n.mdl-color--cyan-500 {\n  background-color: rgb(0,188,212) !important; }\n\n.mdl-color-text--cyan-600 {\n  color: rgb(0,172,193) !important; }\n\n.mdl-color--cyan-600 {\n  background-color: rgb(0,172,193) !important; }\n\n.mdl-color-text--cyan-700 {\n  color: rgb(0,151,167) !important; }\n\n.mdl-color--cyan-700 {\n  background-color: rgb(0,151,167) !important; }\n\n.mdl-color-text--cyan-800 {\n  color: rgb(0,131,143) !important; }\n\n.mdl-color--cyan-800 {\n  background-color: rgb(0,131,143) !important; }\n\n.mdl-color-text--cyan-900 {\n  color: rgb(0,96,100) !important; }\n\n.mdl-color--cyan-900 {\n  background-color: rgb(0,96,100) !important; }\n\n.mdl-color-text--cyan-A100 {\n  color: rgb(132,255,255) !important; }\n\n.mdl-color--cyan-A100 {\n  background-color: rgb(132,255,255) !important; }\n\n.mdl-color-text--cyan-A200 {\n  color: rgb(24,255,255) !important; }\n\n.mdl-color--cyan-A200 {\n  background-color: rgb(24,255,255) !important; }\n\n.mdl-color-text--cyan-A400 {\n  color: rgb(0,229,255) !important; }\n\n.mdl-color--cyan-A400 {\n  background-color: rgb(0,229,255) !important; }\n\n.mdl-color-text--cyan-A700 {\n  color: rgb(0,184,212) !important; }\n\n.mdl-color--cyan-A700 {\n  background-color: rgb(0,184,212) !important; }\n\n.mdl-color-text--teal {\n  color: rgb(0,150,136) !important; }\n\n.mdl-color--teal {\n  background-color: rgb(0,150,136) !important; }\n\n.mdl-color-text--teal-50 {\n  color: rgb(224,242,241) !important; }\n\n.mdl-color--teal-50 {\n  background-color: rgb(224,242,241) !important; }\n\n.mdl-color-text--teal-100 {\n  color: rgb(178,223,219) !important; }\n\n.mdl-color--teal-100 {\n  background-color: rgb(178,223,219) !important; }\n\n.mdl-color-text--teal-200 {\n  color: rgb(128,203,196) !important; }\n\n.mdl-color--teal-200 {\n  background-color: rgb(128,203,196) !important; }\n\n.mdl-color-text--teal-300 {\n  color: rgb(77,182,172) !important; }\n\n.mdl-color--teal-300 {\n  background-color: rgb(77,182,172) !important; }\n\n.mdl-color-text--teal-400 {\n  color: rgb(38,166,154) !important; }\n\n.mdl-color--teal-400 {\n  background-color: rgb(38,166,154) !important; }\n\n.mdl-color-text--teal-500 {\n  color: rgb(0,150,136) !important; }\n\n.mdl-color--teal-500 {\n  background-color: rgb(0,150,136) !important; }\n\n.mdl-color-text--teal-600 {\n  color: rgb(0,137,123) !important; }\n\n.mdl-color--teal-600 {\n  background-color: rgb(0,137,123) !important; }\n\n.mdl-color-text--teal-700 {\n  color: rgb(0,121,107) !important; }\n\n.mdl-color--teal-700 {\n  background-color: rgb(0,121,107) !important; }\n\n.mdl-color-text--teal-800 {\n  color: rgb(0,105,92) !important; }\n\n.mdl-color--teal-800 {\n  background-color: rgb(0,105,92) !important; }\n\n.mdl-color-text--teal-900 {\n  color: rgb(0,77,64) !important; }\n\n.mdl-color--teal-900 {\n  background-color: rgb(0,77,64) !important; }\n\n.mdl-color-text--teal-A100 {\n  color: rgb(167,255,235) !important; }\n\n.mdl-color--teal-A100 {\n  background-color: rgb(167,255,235) !important; }\n\n.mdl-color-text--teal-A200 {\n  color: rgb(100,255,218) !important; }\n\n.mdl-color--teal-A200 {\n  background-color: rgb(100,255,218) !important; }\n\n.mdl-color-text--teal-A400 {\n  color: rgb(29,233,182) !important; }\n\n.mdl-color--teal-A400 {\n  background-color: rgb(29,233,182) !important; }\n\n.mdl-color-text--teal-A700 {\n  color: rgb(0,191,165) !important; }\n\n.mdl-color--teal-A700 {\n  background-color: rgb(0,191,165) !important; }\n\n.mdl-color-text--green {\n  color: rgb(76,175,80) !important; }\n\n.mdl-color--green {\n  background-color: rgb(76,175,80) !important; }\n\n.mdl-color-text--green-50 {\n  color: rgb(232,245,233) !important; }\n\n.mdl-color--green-50 {\n  background-color: rgb(232,245,233) !important; }\n\n.mdl-color-text--green-100 {\n  color: rgb(200,230,201) !important; }\n\n.mdl-color--green-100 {\n  background-color: rgb(200,230,201) !important; }\n\n.mdl-color-text--green-200 {\n  color: rgb(165,214,167) !important; }\n\n.mdl-color--green-200 {\n  background-color: rgb(165,214,167) !important; }\n\n.mdl-color-text--green-300 {\n  color: rgb(129,199,132) !important; }\n\n.mdl-color--green-300 {\n  background-color: rgb(129,199,132) !important; }\n\n.mdl-color-text--green-400 {\n  color: rgb(102,187,106) !important; }\n\n.mdl-color--green-400 {\n  background-color: rgb(102,187,106) !important; }\n\n.mdl-color-text--green-500 {\n  color: rgb(76,175,80) !important; }\n\n.mdl-color--green-500 {\n  background-color: rgb(76,175,80) !important; }\n\n.mdl-color-text--green-600 {\n  color: rgb(67,160,71) !important; }\n\n.mdl-color--green-600 {\n  background-color: rgb(67,160,71) !important; }\n\n.mdl-color-text--green-700 {\n  color: rgb(56,142,60) !important; }\n\n.mdl-color--green-700 {\n  background-color: rgb(56,142,60) !important; }\n\n.mdl-color-text--green-800 {\n  color: rgb(46,125,50) !important; }\n\n.mdl-color--green-800 {\n  background-color: rgb(46,125,50) !important; }\n\n.mdl-color-text--green-900 {\n  color: rgb(27,94,32) !important; }\n\n.mdl-color--green-900 {\n  background-color: rgb(27,94,32) !important; }\n\n.mdl-color-text--green-A100 {\n  color: rgb(185,246,202) !important; }\n\n.mdl-color--green-A100 {\n  background-color: rgb(185,246,202) !important; }\n\n.mdl-color-text--green-A200 {\n  color: rgb(105,240,174) !important; }\n\n.mdl-color--green-A200 {\n  background-color: rgb(105,240,174) !important; }\n\n.mdl-color-text--green-A400 {\n  color: rgb(0,230,118) !important; }\n\n.mdl-color--green-A400 {\n  background-color: rgb(0,230,118) !important; }\n\n.mdl-color-text--green-A700 {\n  color: rgb(0,200,83) !important; }\n\n.mdl-color--green-A700 {\n  background-color: rgb(0,200,83) !important; }\n\n.mdl-color-text--light-green {\n  color: rgb(139,195,74) !important; }\n\n.mdl-color--light-green {\n  background-color: rgb(139,195,74) !important; }\n\n.mdl-color-text--light-green-50 {\n  color: rgb(241,248,233) !important; }\n\n.mdl-color--light-green-50 {\n  background-color: rgb(241,248,233) !important; }\n\n.mdl-color-text--light-green-100 {\n  color: rgb(220,237,200) !important; }\n\n.mdl-color--light-green-100 {\n  background-color: rgb(220,237,200) !important; }\n\n.mdl-color-text--light-green-200 {\n  color: rgb(197,225,165) !important; }\n\n.mdl-color--light-green-200 {\n  background-color: rgb(197,225,165) !important; }\n\n.mdl-color-text--light-green-300 {\n  color: rgb(174,213,129) !important; }\n\n.mdl-color--light-green-300 {\n  background-color: rgb(174,213,129) !important; }\n\n.mdl-color-text--light-green-400 {\n  color: rgb(156,204,101) !important; }\n\n.mdl-color--light-green-400 {\n  background-color: rgb(156,204,101) !important; }\n\n.mdl-color-text--light-green-500 {\n  color: rgb(139,195,74) !important; }\n\n.mdl-color--light-green-500 {\n  background-color: rgb(139,195,74) !important; }\n\n.mdl-color-text--light-green-600 {\n  color: rgb(124,179,66) !important; }\n\n.mdl-color--light-green-600 {\n  background-color: rgb(124,179,66) !important; }\n\n.mdl-color-text--light-green-700 {\n  color: rgb(104,159,56) !important; }\n\n.mdl-color--light-green-700 {\n  background-color: rgb(104,159,56) !important; }\n\n.mdl-color-text--light-green-800 {\n  color: rgb(85,139,47) !important; }\n\n.mdl-color--light-green-800 {\n  background-color: rgb(85,139,47) !important; }\n\n.mdl-color-text--light-green-900 {\n  color: rgb(51,105,30) !important; }\n\n.mdl-color--light-green-900 {\n  background-color: rgb(51,105,30) !important; }\n\n.mdl-color-text--light-green-A100 {\n  color: rgb(204,255,144) !important; }\n\n.mdl-color--light-green-A100 {\n  background-color: rgb(204,255,144) !important; }\n\n.mdl-color-text--light-green-A200 {\n  color: rgb(178,255,89) !important; }\n\n.mdl-color--light-green-A200 {\n  background-color: rgb(178,255,89) !important; }\n\n.mdl-color-text--light-green-A400 {\n  color: rgb(118,255,3) !important; }\n\n.mdl-color--light-green-A400 {\n  background-color: rgb(118,255,3) !important; }\n\n.mdl-color-text--light-green-A700 {\n  color: rgb(100,221,23) !important; }\n\n.mdl-color--light-green-A700 {\n  background-color: rgb(100,221,23) !important; }\n\n.mdl-color-text--lime {\n  color: rgb(205,220,57) !important; }\n\n.mdl-color--lime {\n  background-color: rgb(205,220,57) !important; }\n\n.mdl-color-text--lime-50 {\n  color: rgb(249,251,231) !important; }\n\n.mdl-color--lime-50 {\n  background-color: rgb(249,251,231) !important; }\n\n.mdl-color-text--lime-100 {\n  color: rgb(240,244,195) !important; }\n\n.mdl-color--lime-100 {\n  background-color: rgb(240,244,195) !important; }\n\n.mdl-color-text--lime-200 {\n  color: rgb(230,238,156) !important; }\n\n.mdl-color--lime-200 {\n  background-color: rgb(230,238,156) !important; }\n\n.mdl-color-text--lime-300 {\n  color: rgb(220,231,117) !important; }\n\n.mdl-color--lime-300 {\n  background-color: rgb(220,231,117) !important; }\n\n.mdl-color-text--lime-400 {\n  color: rgb(212,225,87) !important; }\n\n.mdl-color--lime-400 {\n  background-color: rgb(212,225,87) !important; }\n\n.mdl-color-text--lime-500 {\n  color: rgb(205,220,57) !important; }\n\n.mdl-color--lime-500 {\n  background-color: rgb(205,220,57) !important; }\n\n.mdl-color-text--lime-600 {\n  color: rgb(192,202,51) !important; }\n\n.mdl-color--lime-600 {\n  background-color: rgb(192,202,51) !important; }\n\n.mdl-color-text--lime-700 {\n  color: rgb(175,180,43) !important; }\n\n.mdl-color--lime-700 {\n  background-color: rgb(175,180,43) !important; }\n\n.mdl-color-text--lime-800 {\n  color: rgb(158,157,36) !important; }\n\n.mdl-color--lime-800 {\n  background-color: rgb(158,157,36) !important; }\n\n.mdl-color-text--lime-900 {\n  color: rgb(130,119,23) !important; }\n\n.mdl-color--lime-900 {\n  background-color: rgb(130,119,23) !important; }\n\n.mdl-color-text--lime-A100 {\n  color: rgb(244,255,129) !important; }\n\n.mdl-color--lime-A100 {\n  background-color: rgb(244,255,129) !important; }\n\n.mdl-color-text--lime-A200 {\n  color: rgb(238,255,65) !important; }\n\n.mdl-color--lime-A200 {\n  background-color: rgb(238,255,65) !important; }\n\n.mdl-color-text--lime-A400 {\n  color: rgb(198,255,0) !important; }\n\n.mdl-color--lime-A400 {\n  background-color: rgb(198,255,0) !important; }\n\n.mdl-color-text--lime-A700 {\n  color: rgb(174,234,0) !important; }\n\n.mdl-color--lime-A700 {\n  background-color: rgb(174,234,0) !important; }\n\n.mdl-color-text--yellow {\n  color: rgb(255,235,59) !important; }\n\n.mdl-color--yellow {\n  background-color: rgb(255,235,59) !important; }\n\n.mdl-color-text--yellow-50 {\n  color: rgb(255,253,231) !important; }\n\n.mdl-color--yellow-50 {\n  background-color: rgb(255,253,231) !important; }\n\n.mdl-color-text--yellow-100 {\n  color: rgb(255,249,196) !important; }\n\n.mdl-color--yellow-100 {\n  background-color: rgb(255,249,196) !important; }\n\n.mdl-color-text--yellow-200 {\n  color: rgb(255,245,157) !important; }\n\n.mdl-color--yellow-200 {\n  background-color: rgb(255,245,157) !important; }\n\n.mdl-color-text--yellow-300 {\n  color: rgb(255,241,118) !important; }\n\n.mdl-color--yellow-300 {\n  background-color: rgb(255,241,118) !important; }\n\n.mdl-color-text--yellow-400 {\n  color: rgb(255,238,88) !important; }\n\n.mdl-color--yellow-400 {\n  background-color: rgb(255,238,88) !important; }\n\n.mdl-color-text--yellow-500 {\n  color: rgb(255,235,59) !important; }\n\n.mdl-color--yellow-500 {\n  background-color: rgb(255,235,59) !important; }\n\n.mdl-color-text--yellow-600 {\n  color: rgb(253,216,53) !important; }\n\n.mdl-color--yellow-600 {\n  background-color: rgb(253,216,53) !important; }\n\n.mdl-color-text--yellow-700 {\n  color: rgb(251,192,45) !important; }\n\n.mdl-color--yellow-700 {\n  background-color: rgb(251,192,45) !important; }\n\n.mdl-color-text--yellow-800 {\n  color: rgb(249,168,37) !important; }\n\n.mdl-color--yellow-800 {\n  background-color: rgb(249,168,37) !important; }\n\n.mdl-color-text--yellow-900 {\n  color: rgb(245,127,23) !important; }\n\n.mdl-color--yellow-900 {\n  background-color: rgb(245,127,23) !important; }\n\n.mdl-color-text--yellow-A100 {\n  color: rgb(255,255,141) !important; }\n\n.mdl-color--yellow-A100 {\n  background-color: rgb(255,255,141) !important; }\n\n.mdl-color-text--yellow-A200 {\n  color: rgb(255,255,0) !important; }\n\n.mdl-color--yellow-A200 {\n  background-color: rgb(255,255,0) !important; }\n\n.mdl-color-text--yellow-A400 {\n  color: rgb(255,234,0) !important; }\n\n.mdl-color--yellow-A400 {\n  background-color: rgb(255,234,0) !important; }\n\n.mdl-color-text--yellow-A700 {\n  color: rgb(255,214,0) !important; }\n\n.mdl-color--yellow-A700 {\n  background-color: rgb(255,214,0) !important; }\n\n.mdl-color-text--amber {\n  color: rgb(255,193,7) !important; }\n\n.mdl-color--amber {\n  background-color: rgb(255,193,7) !important; }\n\n.mdl-color-text--amber-50 {\n  color: rgb(255,248,225) !important; }\n\n.mdl-color--amber-50 {\n  background-color: rgb(255,248,225) !important; }\n\n.mdl-color-text--amber-100 {\n  color: rgb(255,236,179) !important; }\n\n.mdl-color--amber-100 {\n  background-color: rgb(255,236,179) !important; }\n\n.mdl-color-text--amber-200 {\n  color: rgb(255,224,130) !important; }\n\n.mdl-color--amber-200 {\n  background-color: rgb(255,224,130) !important; }\n\n.mdl-color-text--amber-300 {\n  color: rgb(255,213,79) !important; }\n\n.mdl-color--amber-300 {\n  background-color: rgb(255,213,79) !important; }\n\n.mdl-color-text--amber-400 {\n  color: rgb(255,202,40) !important; }\n\n.mdl-color--amber-400 {\n  background-color: rgb(255,202,40) !important; }\n\n.mdl-color-text--amber-500 {\n  color: rgb(255,193,7) !important; }\n\n.mdl-color--amber-500 {\n  background-color: rgb(255,193,7) !important; }\n\n.mdl-color-text--amber-600 {\n  color: rgb(255,179,0) !important; }\n\n.mdl-color--amber-600 {\n  background-color: rgb(255,179,0) !important; }\n\n.mdl-color-text--amber-700 {\n  color: rgb(255,160,0) !important; }\n\n.mdl-color--amber-700 {\n  background-color: rgb(255,160,0) !important; }\n\n.mdl-color-text--amber-800 {\n  color: rgb(255,143,0) !important; }\n\n.mdl-color--amber-800 {\n  background-color: rgb(255,143,0) !important; }\n\n.mdl-color-text--amber-900 {\n  color: rgb(255,111,0) !important; }\n\n.mdl-color--amber-900 {\n  background-color: rgb(255,111,0) !important; }\n\n.mdl-color-text--amber-A100 {\n  color: rgb(255,229,127) !important; }\n\n.mdl-color--amber-A100 {\n  background-color: rgb(255,229,127) !important; }\n\n.mdl-color-text--amber-A200 {\n  color: rgb(255,215,64) !important; }\n\n.mdl-color--amber-A200 {\n  background-color: rgb(255,215,64) !important; }\n\n.mdl-color-text--amber-A400 {\n  color: rgb(255,196,0) !important; }\n\n.mdl-color--amber-A400 {\n  background-color: rgb(255,196,0) !important; }\n\n.mdl-color-text--amber-A700 {\n  color: rgb(255,171,0) !important; }\n\n.mdl-color--amber-A700 {\n  background-color: rgb(255,171,0) !important; }\n\n.mdl-color-text--orange {\n  color: rgb(255,152,0) !important; }\n\n.mdl-color--orange {\n  background-color: rgb(255,152,0) !important; }\n\n.mdl-color-text--orange-50 {\n  color: rgb(255,243,224) !important; }\n\n.mdl-color--orange-50 {\n  background-color: rgb(255,243,224) !important; }\n\n.mdl-color-text--orange-100 {\n  color: rgb(255,224,178) !important; }\n\n.mdl-color--orange-100 {\n  background-color: rgb(255,224,178) !important; }\n\n.mdl-color-text--orange-200 {\n  color: rgb(255,204,128) !important; }\n\n.mdl-color--orange-200 {\n  background-color: rgb(255,204,128) !important; }\n\n.mdl-color-text--orange-300 {\n  color: rgb(255,183,77) !important; }\n\n.mdl-color--orange-300 {\n  background-color: rgb(255,183,77) !important; }\n\n.mdl-color-text--orange-400 {\n  color: rgb(255,167,38) !important; }\n\n.mdl-color--orange-400 {\n  background-color: rgb(255,167,38) !important; }\n\n.mdl-color-text--orange-500 {\n  color: rgb(255,152,0) !important; }\n\n.mdl-color--orange-500 {\n  background-color: rgb(255,152,0) !important; }\n\n.mdl-color-text--orange-600 {\n  color: rgb(251,140,0) !important; }\n\n.mdl-color--orange-600 {\n  background-color: rgb(251,140,0) !important; }\n\n.mdl-color-text--orange-700 {\n  color: rgb(245,124,0) !important; }\n\n.mdl-color--orange-700 {\n  background-color: rgb(245,124,0) !important; }\n\n.mdl-color-text--orange-800 {\n  color: rgb(239,108,0) !important; }\n\n.mdl-color--orange-800 {\n  background-color: rgb(239,108,0) !important; }\n\n.mdl-color-text--orange-900 {\n  color: rgb(230,81,0) !important; }\n\n.mdl-color--orange-900 {\n  background-color: rgb(230,81,0) !important; }\n\n.mdl-color-text--orange-A100 {\n  color: rgb(255,209,128) !important; }\n\n.mdl-color--orange-A100 {\n  background-color: rgb(255,209,128) !important; }\n\n.mdl-color-text--orange-A200 {\n  color: rgb(255,171,64) !important; }\n\n.mdl-color--orange-A200 {\n  background-color: rgb(255,171,64) !important; }\n\n.mdl-color-text--orange-A400 {\n  color: rgb(255,145,0) !important; }\n\n.mdl-color--orange-A400 {\n  background-color: rgb(255,145,0) !important; }\n\n.mdl-color-text--orange-A700 {\n  color: rgb(255,109,0) !important; }\n\n.mdl-color--orange-A700 {\n  background-color: rgb(255,109,0) !important; }\n\n.mdl-color-text--deep-orange {\n  color: rgb(255,87,34) !important; }\n\n.mdl-color--deep-orange {\n  background-color: rgb(255,87,34) !important; }\n\n.mdl-color-text--deep-orange-50 {\n  color: rgb(251,233,231) !important; }\n\n.mdl-color--deep-orange-50 {\n  background-color: rgb(251,233,231) !important; }\n\n.mdl-color-text--deep-orange-100 {\n  color: rgb(255,204,188) !important; }\n\n.mdl-color--deep-orange-100 {\n  background-color: rgb(255,204,188) !important; }\n\n.mdl-color-text--deep-orange-200 {\n  color: rgb(255,171,145) !important; }\n\n.mdl-color--deep-orange-200 {\n  background-color: rgb(255,171,145) !important; }\n\n.mdl-color-text--deep-orange-300 {\n  color: rgb(255,138,101) !important; }\n\n.mdl-color--deep-orange-300 {\n  background-color: rgb(255,138,101) !important; }\n\n.mdl-color-text--deep-orange-400 {\n  color: rgb(255,112,67) !important; }\n\n.mdl-color--deep-orange-400 {\n  background-color: rgb(255,112,67) !important; }\n\n.mdl-color-text--deep-orange-500 {\n  color: rgb(255,87,34) !important; }\n\n.mdl-color--deep-orange-500 {\n  background-color: rgb(255,87,34) !important; }\n\n.mdl-color-text--deep-orange-600 {\n  color: rgb(244,81,30) !important; }\n\n.mdl-color--deep-orange-600 {\n  background-color: rgb(244,81,30) !important; }\n\n.mdl-color-text--deep-orange-700 {\n  color: rgb(230,74,25) !important; }\n\n.mdl-color--deep-orange-700 {\n  background-color: rgb(230,74,25) !important; }\n\n.mdl-color-text--deep-orange-800 {\n  color: rgb(216,67,21) !important; }\n\n.mdl-color--deep-orange-800 {\n  background-color: rgb(216,67,21) !important; }\n\n.mdl-color-text--deep-orange-900 {\n  color: rgb(191,54,12) !important; }\n\n.mdl-color--deep-orange-900 {\n  background-color: rgb(191,54,12) !important; }\n\n.mdl-color-text--deep-orange-A100 {\n  color: rgb(255,158,128) !important; }\n\n.mdl-color--deep-orange-A100 {\n  background-color: rgb(255,158,128) !important; }\n\n.mdl-color-text--deep-orange-A200 {\n  color: rgb(255,110,64) !important; }\n\n.mdl-color--deep-orange-A200 {\n  background-color: rgb(255,110,64) !important; }\n\n.mdl-color-text--deep-orange-A400 {\n  color: rgb(255,61,0) !important; }\n\n.mdl-color--deep-orange-A400 {\n  background-color: rgb(255,61,0) !important; }\n\n.mdl-color-text--deep-orange-A700 {\n  color: rgb(221,44,0) !important; }\n\n.mdl-color--deep-orange-A700 {\n  background-color: rgb(221,44,0) !important; }\n\n.mdl-color-text--brown {\n  color: rgb(121,85,72) !important; }\n\n.mdl-color--brown {\n  background-color: rgb(121,85,72) !important; }\n\n.mdl-color-text--brown-50 {\n  color: rgb(239,235,233) !important; }\n\n.mdl-color--brown-50 {\n  background-color: rgb(239,235,233) !important; }\n\n.mdl-color-text--brown-100 {\n  color: rgb(215,204,200) !important; }\n\n.mdl-color--brown-100 {\n  background-color: rgb(215,204,200) !important; }\n\n.mdl-color-text--brown-200 {\n  color: rgb(188,170,164) !important; }\n\n.mdl-color--brown-200 {\n  background-color: rgb(188,170,164) !important; }\n\n.mdl-color-text--brown-300 {\n  color: rgb(161,136,127) !important; }\n\n.mdl-color--brown-300 {\n  background-color: rgb(161,136,127) !important; }\n\n.mdl-color-text--brown-400 {\n  color: rgb(141,110,99) !important; }\n\n.mdl-color--brown-400 {\n  background-color: rgb(141,110,99) !important; }\n\n.mdl-color-text--brown-500 {\n  color: rgb(121,85,72) !important; }\n\n.mdl-color--brown-500 {\n  background-color: rgb(121,85,72) !important; }\n\n.mdl-color-text--brown-600 {\n  color: rgb(109,76,65) !important; }\n\n.mdl-color--brown-600 {\n  background-color: rgb(109,76,65) !important; }\n\n.mdl-color-text--brown-700 {\n  color: rgb(93,64,55) !important; }\n\n.mdl-color--brown-700 {\n  background-color: rgb(93,64,55) !important; }\n\n.mdl-color-text--brown-800 {\n  color: rgb(78,52,46) !important; }\n\n.mdl-color--brown-800 {\n  background-color: rgb(78,52,46) !important; }\n\n.mdl-color-text--brown-900 {\n  color: rgb(62,39,35) !important; }\n\n.mdl-color--brown-900 {\n  background-color: rgb(62,39,35) !important; }\n\n.mdl-color-text--grey {\n  color: rgb(158,158,158) !important; }\n\n.mdl-color--grey {\n  background-color: rgb(158,158,158) !important; }\n\n.mdl-color-text--grey-50 {\n  color: rgb(250,250,250) !important; }\n\n.mdl-color--grey-50 {\n  background-color: rgb(250,250,250) !important; }\n\n.mdl-color-text--grey-100 {\n  color: rgb(245,245,245) !important; }\n\n.mdl-color--grey-100 {\n  background-color: rgb(245,245,245) !important; }\n\n.mdl-color-text--grey-200 {\n  color: rgb(238,238,238) !important; }\n\n.mdl-color--grey-200 {\n  background-color: rgb(238,238,238) !important; }\n\n.mdl-color-text--grey-300 {\n  color: rgb(224,224,224) !important; }\n\n.mdl-color--grey-300 {\n  background-color: rgb(224,224,224) !important; }\n\n.mdl-color-text--grey-400 {\n  color: rgb(189,189,189) !important; }\n\n.mdl-color--grey-400 {\n  background-color: rgb(189,189,189) !important; }\n\n.mdl-color-text--grey-500 {\n  color: rgb(158,158,158) !important; }\n\n.mdl-color--grey-500 {\n  background-color: rgb(158,158,158) !important; }\n\n.mdl-color-text--grey-600 {\n  color: rgb(117,117,117) !important; }\n\n.mdl-color--grey-600 {\n  background-color: rgb(117,117,117) !important; }\n\n.mdl-color-text--grey-700 {\n  color: rgb(97,97,97) !important; }\n\n.mdl-color--grey-700 {\n  background-color: rgb(97,97,97) !important; }\n\n.mdl-color-text--grey-800 {\n  color: rgb(66,66,66) !important; }\n\n.mdl-color--grey-800 {\n  background-color: rgb(66,66,66) !important; }\n\n.mdl-color-text--grey-900 {\n  color: rgb(33,33,33) !important; }\n\n.mdl-color--grey-900 {\n  background-color: rgb(33,33,33) !important; }\n\n.mdl-color-text--blue-grey {\n  color: rgb(96,125,139) !important; }\n\n.mdl-color--blue-grey {\n  background-color: rgb(96,125,139) !important; }\n\n.mdl-color-text--blue-grey-50 {\n  color: rgb(236,239,241) !important; }\n\n.mdl-color--blue-grey-50 {\n  background-color: rgb(236,239,241) !important; }\n\n.mdl-color-text--blue-grey-100 {\n  color: rgb(207,216,220) !important; }\n\n.mdl-color--blue-grey-100 {\n  background-color: rgb(207,216,220) !important; }\n\n.mdl-color-text--blue-grey-200 {\n  color: rgb(176,190,197) !important; }\n\n.mdl-color--blue-grey-200 {\n  background-color: rgb(176,190,197) !important; }\n\n.mdl-color-text--blue-grey-300 {\n  color: rgb(144,164,174) !important; }\n\n.mdl-color--blue-grey-300 {\n  background-color: rgb(144,164,174) !important; }\n\n.mdl-color-text--blue-grey-400 {\n  color: rgb(120,144,156) !important; }\n\n.mdl-color--blue-grey-400 {\n  background-color: rgb(120,144,156) !important; }\n\n.mdl-color-text--blue-grey-500 {\n  color: rgb(96,125,139) !important; }\n\n.mdl-color--blue-grey-500 {\n  background-color: rgb(96,125,139) !important; }\n\n.mdl-color-text--blue-grey-600 {\n  color: rgb(84,110,122) !important; }\n\n.mdl-color--blue-grey-600 {\n  background-color: rgb(84,110,122) !important; }\n\n.mdl-color-text--blue-grey-700 {\n  color: rgb(69,90,100) !important; }\n\n.mdl-color--blue-grey-700 {\n  background-color: rgb(69,90,100) !important; }\n\n.mdl-color-text--blue-grey-800 {\n  color: rgb(55,71,79) !important; }\n\n.mdl-color--blue-grey-800 {\n  background-color: rgb(55,71,79) !important; }\n\n.mdl-color-text--blue-grey-900 {\n  color: rgb(38,50,56) !important; }\n\n.mdl-color--blue-grey-900 {\n  background-color: rgb(38,50,56) !important; }\n\n.mdl-color--black {\n  background-color: rgb(0,0,0) !important; }\n\n.mdl-color-text--black {\n  color: rgb(0,0,0) !important; }\n\n.mdl-color--white {\n  background-color: rgb(255,255,255) !important; }\n\n.mdl-color-text--white {\n  color: rgb(255,255,255) !important; }\n\n.mdl-color--primary {\n  background-color: rgb(63,81,181) !important; }\n\n.mdl-color--primary-contrast {\n  background-color: rgb(255,255,255) !important; }\n\n.mdl-color--primary-dark {\n  background-color: rgb(48,63,159) !important; }\n\n.mdl-color--accent {\n  background-color: rgb(255,64,129) !important; }\n\n.mdl-color--accent-contrast {\n  background-color: rgb(255,255,255) !important; }\n\n.mdl-color-text--primary {\n  color: rgb(63,81,181) !important; }\n\n.mdl-color-text--primary-contrast {\n  color: rgb(255,255,255) !important; }\n\n.mdl-color-text--primary-dark {\n  color: rgb(48,63,159) !important; }\n\n.mdl-color-text--accent {\n  color: rgb(255,64,129) !important; }\n\n.mdl-color-text--accent-contrast {\n  color: rgb(255,255,255) !important; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n.mdl-ripple {\n  background: rgb(0,0,0);\n  border-radius: 50%;\n  height: 50px;\n  left: 0;\n  opacity: 0;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  transform: translate(-50%, -50%);\n  width: 50px;\n  overflow: hidden; }\n  .mdl-ripple.is-animating {\n    transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1), width 0.3s cubic-bezier(0, 0, 0.2, 1), height 0.3s cubic-bezier(0, 0, 0.2, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1); }\n  .mdl-ripple.is-visible {\n    opacity: 0.3; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n.mdl-animation--default {\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }\n\n.mdl-animation--fast-out-slow-in {\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }\n\n.mdl-animation--linear-out-slow-in {\n  transition-timing-function: cubic-bezier(0, 0, 0.2, 1); }\n\n.mdl-animation--fast-out-linear-in {\n  transition-timing-function: cubic-bezier(0.4, 0, 1, 1); }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n.mdl-badge {\n  position: relative;\n  white-space: nowrap;\n  margin-right: 24px; }\n  .mdl-badge:not([data-badge]) {\n    margin-right: auto; }\n  .mdl-badge[data-badge]:after {\n    content: attr(data-badge);\n    display: flex;\n    flex-direction: row;\n    flex-wrap: wrap;\n    justify-content: center;\n    align-content: center;\n    align-items: center;\n    position: absolute;\n    top: -11px;\n    right: -24px;\n    font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n    font-weight: 600;\n    font-size: 12px;\n    width: 22px;\n    height: 22px;\n    border-radius: 50%;\n    background: rgb(255,64,129);\n    color: rgb(255,255,255); }\n    .mdl-button .mdl-badge[data-badge]:after {\n      top: -10px;\n      right: -5px; }\n  .mdl-badge.mdl-badge--no-background[data-badge]:after {\n    color: rgb(255,64,129);\n    background: rgba(255,255,255,0.2);\n    box-shadow: 0 0 1px gray; }\n  .mdl-badge.mdl-badge--overlap {\n    margin-right: 10px; }\n    .mdl-badge.mdl-badge--overlap:after {\n      right: -10px; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n.mdl-button {\n  background: transparent;\n  border: none;\n  border-radius: 2px;\n  color: rgb(0,0,0);\n  position: relative;\n  height: 36px;\n  margin: 0;\n  min-width: 64px;\n  padding: 0 16px;\n  display: inline-block;\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 14px;\n  font-weight: 500;\n  text-transform: uppercase;\n  line-height: 1;\n  letter-spacing: 0;\n  overflow: hidden;\n  will-change: box-shadow;\n  transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n  outline: none;\n  cursor: pointer;\n  text-decoration: none;\n  text-align: center;\n  line-height: 36px;\n  vertical-align: middle; }\n  .mdl-button::-moz-focus-inner {\n    border: 0; }\n  .mdl-button:hover {\n    background-color: rgba(158,158,158, 0.20); }\n  .mdl-button:focus:not(:active) {\n    background-color: rgba(0,0,0, 0.12); }\n  .mdl-button:active {\n    background-color: rgba(158,158,158, 0.40); }\n  .mdl-button.mdl-button--colored {\n    color: rgb(63,81,181); }\n    .mdl-button.mdl-button--colored:focus:not(:active) {\n      background-color: rgba(0,0,0, 0.12); }\n\ninput.mdl-button[type=\"submit\"] {\n  -webkit-appearance: none; }\n\n.mdl-button--raised {\n  background: rgba(158,158,158, 0.20);\n  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }\n  .mdl-button--raised:active {\n    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.2);\n    background-color: rgba(158,158,158, 0.40); }\n  .mdl-button--raised:focus:not(:active) {\n    box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);\n    background-color: rgba(158,158,158, 0.40); }\n  .mdl-button--raised.mdl-button--colored {\n    background: rgb(63,81,181);\n    color: rgb(255,255,255); }\n    .mdl-button--raised.mdl-button--colored:hover {\n      background-color: rgb(63,81,181); }\n    .mdl-button--raised.mdl-button--colored:active {\n      background-color: rgb(63,81,181); }\n    .mdl-button--raised.mdl-button--colored:focus:not(:active) {\n      background-color: rgb(63,81,181); }\n    .mdl-button--raised.mdl-button--colored .mdl-ripple {\n      background: rgb(255,255,255); }\n\n.mdl-button--fab {\n  border-radius: 50%;\n  font-size: 24px;\n  height: 56px;\n  margin: auto;\n  min-width: 56px;\n  width: 56px;\n  padding: 0;\n  overflow: hidden;\n  background: rgba(158,158,158, 0.20);\n  box-shadow: 0 1px 1.5px 0 rgba(0, 0, 0, 0.12), 0 1px 1px 0 rgba(0, 0, 0, 0.24);\n  position: relative;\n  line-height: normal; }\n  .mdl-button--fab .material-icons {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-12px, -12px);\n    line-height: 24px;\n    width: 24px; }\n  .mdl-button--fab.mdl-button--mini-fab {\n    height: 40px;\n    min-width: 40px;\n    width: 40px; }\n  .mdl-button--fab .mdl-button__ripple-container {\n    border-radius: 50%;\n    -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }\n  .mdl-button--fab:active {\n    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.2);\n    background-color: rgba(158,158,158, 0.40); }\n  .mdl-button--fab:focus:not(:active) {\n    box-shadow: 0 0 8px rgba(0, 0, 0, 0.18), 0 8px 16px rgba(0, 0, 0, 0.36);\n    background-color: rgba(158,158,158, 0.40); }\n  .mdl-button--fab.mdl-button--colored {\n    background: rgb(255,64,129);\n    color: rgb(255,255,255); }\n    .mdl-button--fab.mdl-button--colored:hover {\n      background-color: rgb(255,64,129); }\n    .mdl-button--fab.mdl-button--colored:focus:not(:active) {\n      background-color: rgb(255,64,129); }\n    .mdl-button--fab.mdl-button--colored:active {\n      background-color: rgb(255,64,129); }\n    .mdl-button--fab.mdl-button--colored .mdl-ripple {\n      background: rgb(255,255,255); }\n\n.mdl-button--icon {\n  border-radius: 50%;\n  font-size: 24px;\n  height: 32px;\n  margin-left: 0;\n  margin-right: 0;\n  min-width: 32px;\n  width: 32px;\n  padding: 0;\n  overflow: hidden;\n  color: inherit;\n  line-height: normal; }\n  .mdl-button--icon .material-icons {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translate(-12px, -12px);\n    line-height: 24px;\n    width: 24px; }\n  .mdl-button--icon.mdl-button--mini-icon {\n    height: 24px;\n    min-width: 24px;\n    width: 24px; }\n    .mdl-button--icon.mdl-button--mini-icon .material-icons {\n      top: 0px;\n      left: 0px; }\n  .mdl-button--icon .mdl-button__ripple-container {\n    border-radius: 50%;\n    -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }\n\n.mdl-button__ripple-container {\n  display: block;\n  height: 100%;\n  left: 0px;\n  position: absolute;\n  top: 0px;\n  width: 100%;\n  z-index: 0;\n  overflow: hidden; }\n  .mdl-button[disabled] .mdl-button__ripple-container .mdl-ripple,\n  .mdl-button.mdl-button--disabled .mdl-button__ripple-container .mdl-ripple {\n    background-color: transparent; }\n\n.mdl-button--primary.mdl-button--primary {\n  color: rgb(63,81,181); }\n  .mdl-button--primary.mdl-button--primary .mdl-ripple {\n    background: rgb(255,255,255); }\n  .mdl-button--primary.mdl-button--primary.mdl-button--raised, .mdl-button--primary.mdl-button--primary.mdl-button--fab {\n    color: rgb(255,255,255);\n    background-color: rgb(63,81,181); }\n\n.mdl-button--accent.mdl-button--accent {\n  color: rgb(255,64,129); }\n  .mdl-button--accent.mdl-button--accent .mdl-ripple {\n    background: rgb(255,255,255); }\n  .mdl-button--accent.mdl-button--accent.mdl-button--raised, .mdl-button--accent.mdl-button--accent.mdl-button--fab {\n    color: rgb(255,255,255);\n    background-color: rgb(255,64,129); }\n\n.mdl-button[disabled][disabled], .mdl-button.mdl-button--disabled.mdl-button--disabled {\n  color: rgba(0,0,0, 0.26);\n  cursor: default;\n  background-color: transparent; }\n\n.mdl-button--fab[disabled][disabled], .mdl-button--fab.mdl-button--disabled.mdl-button--disabled {\n  background-color: rgba(0,0,0, 0.12);\n  color: rgba(0,0,0, 0.26); }\n\n.mdl-button--raised[disabled][disabled], .mdl-button--raised.mdl-button--disabled.mdl-button--disabled {\n  background-color: rgba(0,0,0, 0.12);\n  color: rgba(0,0,0, 0.26);\n  box-shadow: none; }\n\n.mdl-button--colored[disabled][disabled], .mdl-button--colored.mdl-button--disabled.mdl-button--disabled {\n  color: rgba(0,0,0, 0.26); }\n\n.mdl-button .material-icons {\n  vertical-align: middle; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n.mdl-card {\n  display: flex;\n  flex-direction: column;\n  font-size: 16px;\n  font-weight: 400;\n  min-height: 200px;\n  overflow: hidden;\n  width: 330px;\n  z-index: 1;\n  position: relative;\n  background: rgb(255,255,255);\n  border-radius: 2px;\n  box-sizing: border-box; }\n\n.mdl-card__media {\n  background-color: rgb(255,64,129);\n  background-repeat: repeat;\n  background-position: 50% 50%;\n  background-size: cover;\n  background-origin: padding-box;\n  background-attachment: scroll;\n  box-sizing: border-box; }\n\n.mdl-card__title {\n  align-items: center;\n  color: rgb(0,0,0);\n  display: block;\n  display: flex;\n  justify-content: stretch;\n  line-height: normal;\n  padding: 16px 16px;\n  perspective-origin: 165px 56px;\n  transform-origin: 165px 56px;\n  box-sizing: border-box; }\n  .mdl-card__title.mdl-card--border {\n    border-bottom: 1px solid rgba(0, 0, 0, 0.1); }\n\n.mdl-card__title-text {\n  align-self: flex-end;\n  color: inherit;\n  display: block;\n  display: flex;\n  font-size: 24px;\n  font-weight: 300;\n  line-height: normal;\n  overflow: hidden;\n  transform-origin: 149px 48px;\n  margin: 0; }\n\n.mdl-card__subtitle-text {\n  font-size: 14px;\n  color: rgba(0,0,0, 0.54);\n  margin: 0; }\n\n.mdl-card__supporting-text {\n  color: rgba(0,0,0, 0.54);\n  font-size: 1rem;\n  line-height: 18px;\n  overflow: hidden;\n  padding: 16px 16px;\n  width: 90%; }\n  .mdl-card__supporting-text.mdl-card--border {\n    border-bottom: 1px solid rgba(0, 0, 0, 0.1); }\n\n.mdl-card__actions {\n  font-size: 16px;\n  line-height: normal;\n  width: 100%;\n  background-color: transparent;\n  padding: 8px;\n  box-sizing: border-box; }\n  .mdl-card__actions.mdl-card--border {\n    border-top: 1px solid rgba(0, 0, 0, 0.1); }\n\n.mdl-card--expand {\n  flex-grow: 1; }\n\n.mdl-card__menu {\n  position: absolute;\n  right: 16px;\n  top: 16px; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n.mdl-checkbox {\n  position: relative;\n  z-index: 1;\n  vertical-align: middle;\n  display: inline-block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 24px;\n  margin: 0;\n  padding: 0; }\n  .mdl-checkbox.is-upgraded {\n    padding-left: 24px; }\n\n.mdl-checkbox__input {\n  line-height: 24px; }\n  .mdl-checkbox.is-upgraded .mdl-checkbox__input {\n    position: absolute;\n    width: 0;\n    height: 0;\n    margin: 0;\n    padding: 0;\n    opacity: 0;\n    -ms-appearance: none;\n    -moz-appearance: none;\n    -webkit-appearance: none;\n    appearance: none;\n    border: none; }\n\n.mdl-checkbox__box-outline {\n  position: absolute;\n  top: 3px;\n  left: 0;\n  display: inline-block;\n  box-sizing: border-box;\n  width: 16px;\n  height: 16px;\n  margin: 0;\n  cursor: pointer;\n  overflow: hidden;\n  border: 2px solid rgba(0,0,0, 0.54);\n  border-radius: 2px;\n  z-index: 2; }\n  .mdl-checkbox.is-checked .mdl-checkbox__box-outline {\n    border: 2px solid rgb(63,81,181); }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,\n  .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {\n    border: 2px solid rgba(0,0,0, 0.26);\n    cursor: auto; }\n\n.mdl-checkbox__focus-helper {\n  position: absolute;\n  top: 3px;\n  left: 0;\n  display: inline-block;\n  box-sizing: border-box;\n  width: 16px;\n  height: 16px;\n  border-radius: 50%;\n  background-color: transparent; }\n  .mdl-checkbox.is-focused .mdl-checkbox__focus-helper {\n    box-shadow: 0 0 0px 8px rgba(0, 0, 0, 0.1);\n    background-color: rgba(0, 0, 0, 0.1); }\n  .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {\n    box-shadow: 0 0 0px 8px rgba(63,81,181, 0.26);\n    background-color: rgba(63,81,181, 0.26); }\n\n.mdl-checkbox__tick-outline {\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 100%;\n  width: 100%;\n  mask: url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg==\");\n  background: transparent;\n  transition-duration: 0.28s;\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n  transition-property: background; }\n  .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {\n    background: rgb(63,81,181) url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K\"); }\n  fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,\n  .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {\n    background: rgba(0,0,0, 0.26) url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K\"); }\n\n.mdl-checkbox__label {\n  position: relative;\n  cursor: pointer;\n  font-size: 16px;\n  line-height: 24px;\n  margin: 0; }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,\n  .mdl-checkbox.is-disabled .mdl-checkbox__label {\n    color: rgba(0,0,0, 0.26);\n    cursor: auto; }\n\n.mdl-checkbox__ripple-container {\n  position: absolute;\n  z-index: 2;\n  top: -6px;\n  left: -10px;\n  box-sizing: border-box;\n  width: 36px;\n  height: 36px;\n  border-radius: 50%;\n  cursor: pointer;\n  overflow: hidden;\n  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }\n  .mdl-checkbox__ripple-container .mdl-ripple {\n    background: rgb(63,81,181); }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container,\n  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container {\n    cursor: auto; }\n  fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,\n  .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {\n    background: transparent; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n.mdl-chip {\n  height: 32px;\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  line-height: 32px;\n  padding: 0 12px;\n  border: 0;\n  border-radius: 16px;\n  background-color: #dedede;\n  display: inline-block;\n  color: rgba(0,0,0, 0.87);\n  margin: 2px 0;\n  font-size: 0;\n  white-space: nowrap; }\n  .mdl-chip__text {\n    font-size: 13px;\n    vertical-align: middle;\n    display: inline-block; }\n  .mdl-chip__action {\n    height: 24px;\n    width: 24px;\n    background: transparent;\n    opacity: 0.54;\n    display: inline-block;\n    cursor: pointer;\n    text-align: center;\n    vertical-align: middle;\n    padding: 0;\n    margin: 0 0 0 4px;\n    font-size: 13px;\n    text-decoration: none;\n    color: rgba(0,0,0, 0.87);\n    border: none;\n    outline: none;\n    overflow: hidden; }\n  .mdl-chip__contact {\n    height: 32px;\n    width: 32px;\n    border-radius: 16px;\n    display: inline-block;\n    vertical-align: middle;\n    margin-right: 8px;\n    overflow: hidden;\n    text-align: center;\n    font-size: 18px;\n    line-height: 32px; }\n  .mdl-chip:focus {\n    outline: 0;\n    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }\n  .mdl-chip:active {\n    background-color: #d6d6d6; }\n  .mdl-chip--deletable {\n    padding-right: 4px; }\n  .mdl-chip--contact {\n    padding-left: 0; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n.mdl-data-table {\n  position: relative;\n  border: 1px solid rgba(0, 0, 0, 0.12);\n  border-collapse: collapse;\n  white-space: nowrap;\n  font-size: 13px;\n  background-color: rgb(255,255,255); }\n  .mdl-data-table thead {\n    padding-bottom: 3px; }\n    .mdl-data-table thead .mdl-data-table__select {\n      margin-top: 0; }\n  .mdl-data-table tbody tr {\n    position: relative;\n    height: 48px;\n    transition-duration: 0.28s;\n    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n    transition-property: background-color; }\n    .mdl-data-table tbody tr.is-selected {\n      background-color: #e0e0e0; }\n    .mdl-data-table tbody tr:hover {\n      background-color: #eeeeee; }\n  .mdl-data-table td, .mdl-data-table th {\n    padding: 0 18px 12px 18px;\n    text-align: right; }\n    .mdl-data-table td:first-of-type, .mdl-data-table th:first-of-type {\n      padding-left: 24px; }\n    .mdl-data-table td:last-of-type, .mdl-data-table th:last-of-type {\n      padding-right: 24px; }\n  .mdl-data-table td {\n    position: relative;\n    vertical-align: middle;\n    height: 48px;\n    border-top: 1px solid rgba(0, 0, 0, 0.12);\n    border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n    padding-top: 12px;\n    box-sizing: border-box; }\n    .mdl-data-table td .mdl-data-table__select {\n      vertical-align: middle; }\n  .mdl-data-table th {\n    position: relative;\n    vertical-align: bottom;\n    text-overflow: ellipsis;\n    font-size: 14px;\n    font-weight: bold;\n    line-height: 24px;\n    letter-spacing: 0;\n    height: 48px;\n    font-size: 12px;\n    color: rgba(0, 0, 0, 0.54);\n    padding-bottom: 8px;\n    box-sizing: border-box; }\n    .mdl-data-table th.mdl-data-table__header--sorted-ascending, .mdl-data-table th.mdl-data-table__header--sorted-descending {\n      color: rgba(0, 0, 0, 0.87); }\n      .mdl-data-table th.mdl-data-table__header--sorted-ascending:before, .mdl-data-table th.mdl-data-table__header--sorted-descending:before {\n        font-family: 'Material Icons';\n        font-weight: normal;\n        font-style: normal;\n        font-size: 24px;\n        line-height: 1;\n        letter-spacing: normal;\n        text-transform: none;\n        display: inline-block;\n        word-wrap: normal;\n        font-feature-settings: 'liga';\n        -webkit-font-feature-settings: 'liga';\n        -webkit-font-smoothing: antialiased;\n        font-size: 16px;\n        content: \"\\e5d8\";\n        margin-right: 5px;\n        vertical-align: sub; }\n      .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover, .mdl-data-table th.mdl-data-table__header--sorted-descending:hover {\n        cursor: pointer; }\n        .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover:before, .mdl-data-table th.mdl-data-table__header--sorted-descending:hover:before {\n          color: rgba(0, 0, 0, 0.26); }\n    .mdl-data-table th.mdl-data-table__header--sorted-descending:before {\n      content: \"\\e5db\"; }\n\n.mdl-data-table__select {\n  width: 16px; }\n\n.mdl-data-table__cell--non-numeric.mdl-data-table__cell--non-numeric {\n  text-align: left; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n.mdl-dialog {\n  border: none;\n  box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2);\n  width: 280px; }\n  .mdl-dialog__title {\n    padding: 24px 24px 0;\n    margin: 0;\n    font-size: 2.5rem; }\n  .mdl-dialog__actions {\n    padding: 8px 8px 8px 24px;\n    display: flex;\n    flex-direction: row-reverse;\n    flex-wrap: wrap; }\n    .mdl-dialog__actions > * {\n      margin-right: 8px;\n      height: 36px; }\n      .mdl-dialog__actions > *:first-child {\n        margin-right: 0; }\n    .mdl-dialog__actions--full-width {\n      padding: 0 0 8px 0; }\n      .mdl-dialog__actions--full-width > * {\n        height: 48px;\n        flex: 0 0 100%;\n        padding-right: 16px;\n        margin-right: 0;\n        text-align: right; }\n  .mdl-dialog__content {\n    padding: 20px 24px 24px 24px;\n    color: rgba(0,0,0, 0.54); }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n.mdl-mega-footer {\n  padding: 16px 40px;\n  color: rgb(158,158,158);\n  background-color: rgb(66,66,66); }\n\n.mdl-mega-footer--top-section:after,\n.mdl-mega-footer--middle-section:after,\n.mdl-mega-footer--bottom-section:after,\n.mdl-mega-footer__top-section:after,\n.mdl-mega-footer__middle-section:after,\n.mdl-mega-footer__bottom-section:after {\n  content: '';\n  display: block;\n  clear: both; }\n\n.mdl-mega-footer--left-section,\n.mdl-mega-footer__left-section {\n  margin-bottom: 16px; }\n\n.mdl-mega-footer--right-section,\n.mdl-mega-footer__right-section {\n  margin-bottom: 16px; }\n\n.mdl-mega-footer--right-section a,\n.mdl-mega-footer__right-section a {\n  display: block;\n  margin-bottom: 16px;\n  color: inherit;\n  text-decoration: none; }\n\n@media screen and (min-width: 760px) {\n  .mdl-mega-footer--left-section,\n  .mdl-mega-footer__left-section {\n    float: left; }\n  .mdl-mega-footer--right-section,\n  .mdl-mega-footer__right-section {\n    float: right; }\n  .mdl-mega-footer--right-section a,\n  .mdl-mega-footer__right-section a {\n    display: inline-block;\n    margin-left: 16px;\n    line-height: 36px;\n    vertical-align: middle; } }\n\n.mdl-mega-footer--social-btn,\n.mdl-mega-footer__social-btn {\n  width: 36px;\n  height: 36px;\n  padding: 0;\n  margin: 0;\n  background-color: rgb(158,158,158);\n  border: none; }\n\n.mdl-mega-footer--drop-down-section,\n.mdl-mega-footer__drop-down-section {\n  display: block;\n  position: relative; }\n\n@media screen and (min-width: 760px) {\n  .mdl-mega-footer--drop-down-section,\n  .mdl-mega-footer__drop-down-section {\n    width: 33%; }\n  .mdl-mega-footer--drop-down-section:nth-child(1),\n  .mdl-mega-footer--drop-down-section:nth-child(2),\n  .mdl-mega-footer__drop-down-section:nth-child(1),\n  .mdl-mega-footer__drop-down-section:nth-child(2) {\n    float: left; }\n  .mdl-mega-footer--drop-down-section:nth-child(3),\n  .mdl-mega-footer__drop-down-section:nth-child(3) {\n    float: right; }\n    .mdl-mega-footer--drop-down-section:nth-child(3):after,\n    .mdl-mega-footer__drop-down-section:nth-child(3):after {\n      clear: right; }\n  .mdl-mega-footer--drop-down-section:nth-child(4),\n  .mdl-mega-footer__drop-down-section:nth-child(4) {\n    clear: right;\n    float: right; }\n  .mdl-mega-footer--middle-section:after,\n  .mdl-mega-footer__middle-section:after {\n    content: '';\n    display: block;\n    clear: both; }\n  .mdl-mega-footer--bottom-section,\n  .mdl-mega-footer__bottom-section {\n    padding-top: 0; } }\n\n@media screen and (min-width: 1024px) {\n  .mdl-mega-footer--drop-down-section,\n  .mdl-mega-footer--drop-down-section:nth-child(3),\n  .mdl-mega-footer--drop-down-section:nth-child(4),\n  .mdl-mega-footer__drop-down-section,\n  .mdl-mega-footer__drop-down-section:nth-child(3),\n  .mdl-mega-footer__drop-down-section:nth-child(4) {\n    width: 24%;\n    float: left; } }\n\n.mdl-mega-footer--heading-checkbox,\n.mdl-mega-footer__heading-checkbox {\n  position: absolute;\n  width: 100%;\n  height: 55.8px;\n  padding: 32px;\n  margin: 0;\n  margin-top: -16px;\n  cursor: pointer;\n  z-index: 1;\n  opacity: 0; }\n  .mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after,\n  .mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after,\n  .mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after,\n  .mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after {\n    font-family: 'Material Icons';\n    content: '\\E5CE'; }\n\n.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list,\n.mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list,\n.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,\n.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,\n.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list,\n.mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list,\n.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,\n.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list {\n  display: none; }\n\n.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after,\n.mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after,\n.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after,\n.mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after {\n  font-family: 'Material Icons';\n  content: '\\E5CF'; }\n\n.mdl-mega-footer--heading,\n.mdl-mega-footer__heading {\n  position: relative;\n  width: 100%;\n  padding-right: 39.8px;\n  margin-bottom: 16px;\n  box-sizing: border-box;\n  font-size: 14px;\n  line-height: 23.8px;\n  font-weight: 500;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  overflow: hidden;\n  color: rgb(224,224,224); }\n\n.mdl-mega-footer--heading:after,\n.mdl-mega-footer__heading:after {\n  content: '';\n  position: absolute;\n  top: 0;\n  right: 0;\n  display: block;\n  width: 23.8px;\n  height: 23.8px;\n  background-size: cover; }\n\n.mdl-mega-footer--link-list,\n.mdl-mega-footer__link-list {\n  list-style: none;\n  margin: 0;\n  padding: 0;\n  margin-bottom: 32px; }\n  .mdl-mega-footer--link-list:after,\n  .mdl-mega-footer__link-list:after {\n    clear: both;\n    display: block;\n    content: ''; }\n\n.mdl-mega-footer--link-list li,\n.mdl-mega-footer__link-list li {\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0;\n  line-height: 20px; }\n\n.mdl-mega-footer--link-list a,\n.mdl-mega-footer__link-list a {\n  color: inherit;\n  text-decoration: none;\n  white-space: nowrap; }\n\n@media screen and (min-width: 760px) {\n  .mdl-mega-footer--heading-checkbox,\n  .mdl-mega-footer__heading-checkbox {\n    display: none; }\n    .mdl-mega-footer--heading-checkbox + .mdl-mega-footer--heading:after,\n    .mdl-mega-footer--heading-checkbox + .mdl-mega-footer__heading:after,\n    .mdl-mega-footer__heading-checkbox + .mdl-mega-footer--heading:after,\n    .mdl-mega-footer__heading-checkbox + .mdl-mega-footer__heading:after {\n      content: ''; }\n  .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer--link-list,\n  .mdl-mega-footer--heading-checkbox:checked ~ .mdl-mega-footer__link-list,\n  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,\n  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,\n  .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer--link-list,\n  .mdl-mega-footer__heading-checkbox:checked ~ .mdl-mega-footer__link-list,\n  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,\n  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading + .mdl-mega-footer--link-list {\n    display: block; }\n  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer--heading:after,\n  .mdl-mega-footer--heading-checkbox:checked + .mdl-mega-footer__heading:after,\n  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer--heading:after,\n  .mdl-mega-footer__heading-checkbox:checked + .mdl-mega-footer__heading:after {\n    content: ''; } }\n\n.mdl-mega-footer--bottom-section,\n.mdl-mega-footer__bottom-section {\n  padding-top: 16px;\n  margin-bottom: 16px; }\n\n.mdl-logo {\n  margin-bottom: 16px;\n  color: white; }\n\n.mdl-mega-footer--bottom-section .mdl-mega-footer--link-list li,\n.mdl-mega-footer__bottom-section .mdl-mega-footer__link-list li {\n  float: left;\n  margin-bottom: 0;\n  margin-right: 16px; }\n\n@media screen and (min-width: 760px) {\n  .mdl-logo {\n    float: left;\n    margin-bottom: 0;\n    margin-right: 16px; } }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n.mdl-mini-footer {\n  display: flex;\n  flex-flow: row wrap;\n  justify-content: space-between;\n  padding: 32px 16px;\n  color: rgb(158,158,158);\n  background-color: rgb(66,66,66); }\n  .mdl-mini-footer:after {\n    content: '';\n    display: block; }\n  .mdl-mini-footer .mdl-logo {\n    line-height: 36px; }\n\n.mdl-mini-footer--link-list,\n.mdl-mini-footer__link-list {\n  display: flex;\n  flex-flow: row nowrap;\n  list-style: none;\n  margin: 0;\n  padding: 0; }\n  .mdl-mini-footer--link-list li,\n  .mdl-mini-footer__link-list li {\n    margin-bottom: 0;\n    margin-right: 16px; }\n    @media screen and (min-width: 760px) {\n      .mdl-mini-footer--link-list li,\n      .mdl-mini-footer__link-list li {\n        line-height: 36px; } }\n  .mdl-mini-footer--link-list a,\n  .mdl-mini-footer__link-list a {\n    color: inherit;\n    text-decoration: none;\n    white-space: nowrap; }\n\n.mdl-mini-footer--left-section,\n.mdl-mini-footer__left-section {\n  display: inline-block;\n  order: 0; }\n\n.mdl-mini-footer--right-section,\n.mdl-mini-footer__right-section {\n  display: inline-block;\n  order: 1; }\n\n.mdl-mini-footer--social-btn,\n.mdl-mini-footer__social-btn {\n  width: 36px;\n  height: 36px;\n  padding: 0;\n  margin: 0;\n  background-color: rgb(158,158,158);\n  border: none; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n.mdl-icon-toggle {\n  position: relative;\n  z-index: 1;\n  vertical-align: middle;\n  display: inline-block;\n  height: 32px;\n  margin: 0;\n  padding: 0; }\n\n.mdl-icon-toggle__input {\n  line-height: 32px; }\n  .mdl-icon-toggle.is-upgraded .mdl-icon-toggle__input {\n    position: absolute;\n    width: 0;\n    height: 0;\n    margin: 0;\n    padding: 0;\n    opacity: 0;\n    -ms-appearance: none;\n    -moz-appearance: none;\n    -webkit-appearance: none;\n    appearance: none;\n    border: none; }\n\n.mdl-icon-toggle__label {\n  display: inline-block;\n  position: relative;\n  cursor: pointer;\n  height: 32px;\n  width: 32px;\n  min-width: 32px;\n  color: rgb(97,97,97);\n  border-radius: 50%;\n  padding: 0;\n  margin-left: 0;\n  margin-right: 0;\n  text-align: center;\n  background-color: transparent;\n  will-change: background-color;\n  transition: background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1); }\n  .mdl-icon-toggle__label.material-icons {\n    line-height: 32px;\n    font-size: 24px; }\n  .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {\n    color: rgb(63,81,181); }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {\n    color: rgba(0,0,0, 0.26);\n    cursor: auto;\n    transition: none; }\n  .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {\n    background-color: rgba(0,0,0, 0.12); }\n  .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {\n    background-color: rgba(63,81,181, 0.26); }\n\n.mdl-icon-toggle__ripple-container {\n  position: absolute;\n  z-index: 2;\n  top: -2px;\n  left: -2px;\n  box-sizing: border-box;\n  width: 36px;\n  height: 36px;\n  border-radius: 50%;\n  cursor: pointer;\n  overflow: hidden;\n  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }\n  .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: rgb(97,97,97); }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container {\n    cursor: auto; }\n  .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {\n    background: transparent; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n.mdl-list {\n  display: block;\n  padding: 8px 0;\n  list-style: none; }\n\n.mdl-list__item {\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0.04em;\n  line-height: 1;\n  display: flex;\n  min-height: 48px;\n  box-sizing: border-box;\n  flex-direction: row;\n  flex-wrap: nowrap;\n  align-items: center;\n  padding: 16px;\n  cursor: default;\n  color: rgba(0,0,0, 0.87);\n  overflow: hidden; }\n  .mdl-list__item .mdl-list__item-primary-content {\n    order: 0;\n    flex-grow: 2;\n    text-decoration: none;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center; }\n    .mdl-list__item .mdl-list__item-primary-content .mdl-list__item-icon {\n      margin-right: 32px; }\n    .mdl-list__item .mdl-list__item-primary-content .mdl-list__item-avatar {\n      margin-right: 16px; }\n  .mdl-list__item .mdl-list__item-secondary-content {\n    display: flex;\n    flex-flow: column;\n    align-items: flex-end;\n    margin-left: 16px; }\n    .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-action label {\n      display: inline; }\n    .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-secondary-info {\n      font-size: 12px;\n      font-weight: 400;\n      line-height: 1;\n      letter-spacing: 0;\n      color: rgba(0,0,0, 0.54); }\n    .mdl-list__item .mdl-list__item-secondary-content .mdl-list__item-sub-header {\n      padding: 0 0 0 16px; }\n\n.mdl-list__item-icon,\n.mdl-list__item-icon.material-icons {\n  height: 24px;\n  width: 24px;\n  font-size: 24px;\n  box-sizing: border-box;\n  color: rgb(117,117,117); }\n\n.mdl-list__item-avatar,\n.mdl-list__item-avatar.material-icons {\n  height: 40px;\n  width: 40px;\n  box-sizing: border-box;\n  border-radius: 50%;\n  background-color: rgb(117,117,117);\n  font-size: 40px;\n  color: white; }\n\n.mdl-list__item--two-line {\n  height: 72px; }\n  .mdl-list__item--two-line .mdl-list__item-primary-content {\n    height: 36px;\n    line-height: 20px;\n    display: block; }\n    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-avatar {\n      float: left; }\n    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-icon {\n      float: left;\n      margin-top: 6px; }\n    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-secondary-content {\n      height: 36px; }\n    .mdl-list__item--two-line .mdl-list__item-primary-content .mdl-list__item-sub-title {\n      font-size: 14px;\n      font-weight: 400;\n      line-height: 24px;\n      letter-spacing: 0;\n      line-height: 18px;\n      color: rgba(0,0,0, 0.54);\n      display: block;\n      padding: 0; }\n\n.mdl-list__item--three-line {\n  height: 88px; }\n  .mdl-list__item--three-line .mdl-list__item-primary-content {\n    height: 52px;\n    line-height: 20px;\n    display: block; }\n    .mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-avatar,\n    .mdl-list__item--three-line .mdl-list__item-primary-content .mdl-list__item-icon {\n      float: left; }\n  .mdl-list__item--three-line .mdl-list__item-secondary-content {\n    height: 52px; }\n  .mdl-list__item--three-line .mdl-list__item-text-body {\n    font-size: 14px;\n    font-weight: 400;\n    line-height: 24px;\n    letter-spacing: 0;\n    line-height: 18px;\n    height: 52px;\n    color: rgba(0,0,0, 0.54);\n    display: block;\n    padding: 0; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n.mdl-menu__container {\n  display: block;\n  margin: 0;\n  padding: 0;\n  border: none;\n  position: absolute;\n  overflow: visible;\n  height: 0;\n  width: 0;\n  visibility: hidden;\n  z-index: -1; }\n  .mdl-menu__container.is-visible, .mdl-menu__container.is-animating {\n    z-index: 999;\n    visibility: visible; }\n\n.mdl-menu__outline {\n  display: block;\n  background: rgb(255,255,255);\n  margin: 0;\n  padding: 0;\n  border: none;\n  border-radius: 2px;\n  position: absolute;\n  top: 0;\n  left: 0;\n  overflow: hidden;\n  opacity: 0;\n  transform: scale(0);\n  transform-origin: 0 0;\n  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n  will-change: transform;\n  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n  z-index: -1; }\n  .mdl-menu__container.is-visible .mdl-menu__outline {\n    opacity: 1;\n    transform: scale(1);\n    z-index: 999; }\n  .mdl-menu__outline.mdl-menu--bottom-right {\n    transform-origin: 100% 0; }\n  .mdl-menu__outline.mdl-menu--top-left {\n    transform-origin: 0 100%; }\n  .mdl-menu__outline.mdl-menu--top-right {\n    transform-origin: 100% 100%; }\n\n.mdl-menu {\n  position: absolute;\n  list-style: none;\n  top: 0;\n  left: 0;\n  height: auto;\n  width: auto;\n  min-width: 124px;\n  padding: 8px 0;\n  margin: 0;\n  opacity: 0;\n  clip: rect(0 0 0 0);\n  z-index: -1; }\n  .mdl-menu__container.is-visible .mdl-menu {\n    opacity: 1;\n    z-index: 999; }\n  .mdl-menu.is-animating {\n    transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), clip 0.3s cubic-bezier(0.4, 0, 0.2, 1); }\n  .mdl-menu.mdl-menu--bottom-right {\n    left: auto;\n    right: 0; }\n  .mdl-menu.mdl-menu--top-left {\n    top: auto;\n    bottom: 0; }\n  .mdl-menu.mdl-menu--top-right {\n    top: auto;\n    left: auto;\n    bottom: 0;\n    right: 0; }\n  .mdl-menu.mdl-menu--unaligned {\n    top: auto;\n    left: auto; }\n\n.mdl-menu__item {\n  display: block;\n  border: none;\n  color: rgba(0,0,0, 0.87);\n  background-color: transparent;\n  text-align: left;\n  margin: 0;\n  padding: 0 16px;\n  outline-color: rgb(189,189,189);\n  position: relative;\n  overflow: hidden;\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0;\n  text-decoration: none;\n  cursor: pointer;\n  height: 48px;\n  line-height: 48px;\n  white-space: nowrap;\n  opacity: 0;\n  transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n  user-select: none; }\n  .mdl-menu__container.is-visible .mdl-menu__item {\n    opacity: 1; }\n  .mdl-menu__item::-moz-focus-inner {\n    border: 0; }\n  .mdl-menu__item--full-bleed-divider {\n    border-bottom: 1px solid rgba(0,0,0, 0.12); }\n  .mdl-menu__item[disabled], .mdl-menu__item[data-mdl-disabled] {\n    color: rgb(189,189,189);\n    background-color: transparent;\n    cursor: auto; }\n    .mdl-menu__item[disabled]:hover, .mdl-menu__item[data-mdl-disabled]:hover {\n      background-color: transparent; }\n    .mdl-menu__item[disabled]:focus, .mdl-menu__item[data-mdl-disabled]:focus {\n      background-color: transparent; }\n    .mdl-menu__item[disabled] .mdl-ripple, .mdl-menu__item[data-mdl-disabled] .mdl-ripple {\n      background: transparent; }\n  .mdl-menu__item:hover {\n    background-color: rgb(238,238,238); }\n  .mdl-menu__item:focus {\n    outline: none;\n    background-color: rgb(238,238,238); }\n  .mdl-menu__item:active {\n    background-color: rgb(224,224,224); }\n\n.mdl-menu__item--ripple-container {\n  display: block;\n  height: 100%;\n  left: 0px;\n  position: absolute;\n  top: 0px;\n  width: 100%;\n  z-index: 0;\n  overflow: hidden; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n.mdl-progress {\n  display: block;\n  position: relative;\n  height: 4px;\n  width: 500px;\n  max-width: 100%; }\n\n.mdl-progress > .bar {\n  display: block;\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  width: 0%;\n  transition: width 0.2s cubic-bezier(0.4, 0, 0.2, 1); }\n\n.mdl-progress > .progressbar {\n  background-color: rgb(63,81,181);\n  z-index: 1;\n  left: 0; }\n\n.mdl-progress > .bufferbar {\n  background-image: linear-gradient(to right, rgba(255,255,255, 0.7), rgba(255,255,255, 0.7)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181));\n  z-index: 0;\n  left: 0; }\n\n.mdl-progress > .auxbar {\n  right: 0; }\n\n@supports (-webkit-appearance: none) {\n  .mdl-progress:not(.mdl-progress--indeterminate):not(.mdl-progress--indeterminate) > .auxbar,\n  .mdl-progress:not(.mdl-progress__indeterminate):not(.mdl-progress__indeterminate) > .auxbar {\n    background-image: linear-gradient(to right, rgba(255,255,255, 0.7), rgba(255,255,255, 0.7)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181));\n    mask: url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+Cjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjQiIHZpZXdQb3J0PSIwIDAgMTIgNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxlbGxpcHNlIGN4PSIyIiBjeT0iMiIgcng9IjIiIHJ5PSIyIj4KICAgIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9ImN4IiBmcm9tPSIyIiB0bz0iLTEwIiBkdXI9IjAuNnMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPgogIDwvZWxsaXBzZT4KICA8ZWxsaXBzZSBjeD0iMTQiIGN5PSIyIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJsb2FkZXIiPgogICAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0iY3giIGZyb209IjE0IiB0bz0iMiIgZHVyPSIwLjZzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KICA8L2VsbGlwc2U+Cjwvc3ZnPgo=\"); } }\n\n.mdl-progress:not(.mdl-progress--indeterminate) > .auxbar,\n.mdl-progress:not(.mdl-progress__indeterminate) > .auxbar {\n  background-image: linear-gradient(to right, rgba(255,255,255, 0.9), rgba(255,255,255, 0.9)), linear-gradient(to right, rgb(63,81,181), rgb(63,81,181)); }\n\n.mdl-progress.mdl-progress--indeterminate > .bar1,\n.mdl-progress.mdl-progress__indeterminate > .bar1 {\n  background-color: rgb(63,81,181);\n  animation-name: indeterminate1;\n  animation-duration: 2s;\n  animation-iteration-count: infinite;\n  animation-timing-function: linear; }\n\n.mdl-progress.mdl-progress--indeterminate > .bar3,\n.mdl-progress.mdl-progress__indeterminate > .bar3 {\n  background-image: none;\n  background-color: rgb(63,81,181);\n  animation-name: indeterminate2;\n  animation-duration: 2s;\n  animation-iteration-count: infinite;\n  animation-timing-function: linear; }\n\n@keyframes indeterminate1 {\n  0% {\n    left: 0%;\n    width: 0%; }\n  50% {\n    left: 25%;\n    width: 75%; }\n  75% {\n    left: 100%;\n    width: 0%; } }\n\n@keyframes indeterminate2 {\n  0% {\n    left: 0%;\n    width: 0%; }\n  50% {\n    left: 0%;\n    width: 0%; }\n  75% {\n    left: 0%;\n    width: 25%; }\n  100% {\n    left: 100%;\n    width: 0%; } }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n.mdl-navigation {\n  display: flex;\n  flex-wrap: nowrap;\n  box-sizing: border-box; }\n\n.mdl-navigation__link {\n  color: rgb(66,66,66);\n  text-decoration: none;\n  margin: 0;\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0;\n  opacity: 0.87; }\n  .mdl-navigation__link .material-icons {\n    vertical-align: middle; }\n\n.mdl-layout {\n  width: 100%;\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n  overflow-y: auto;\n  overflow-x: hidden;\n  position: relative;\n  -webkit-overflow-scrolling: touch; }\n\n.mdl-layout.is-small-screen .mdl-layout--large-screen-only {\n  display: none; }\n\n.mdl-layout:not(.is-small-screen) .mdl-layout--small-screen-only {\n  display: none; }\n\n.mdl-layout__container {\n  position: absolute;\n  width: 100%;\n  height: 100%; }\n\n.mdl-layout__title,\n.mdl-layout-title {\n  display: block;\n  position: relative;\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  font-size: 20px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0.02em;\n  font-weight: 400;\n  box-sizing: border-box; }\n\n.mdl-layout-spacer {\n  flex-grow: 1; }\n\n.mdl-layout__drawer {\n  display: flex;\n  flex-direction: column;\n  flex-wrap: nowrap;\n  width: 240px;\n  height: 100%;\n  max-height: 100%;\n  position: absolute;\n  top: 0;\n  left: 0;\n  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n  box-sizing: border-box;\n  border-right: 1px solid rgb(224,224,224);\n  background: rgb(250,250,250);\n  transform: translateX(-250px);\n  transform-style: preserve-3d;\n  will-change: transform;\n  transition-duration: 0.2s;\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n  transition-property: transform;\n  color: rgb(66,66,66);\n  overflow: visible;\n  overflow-y: auto;\n  z-index: 5; }\n  .mdl-layout__drawer.is-visible {\n    transform: translateX(0); }\n    .mdl-layout__drawer.is-visible ~ .mdl-layout__content.mdl-layout__content {\n      overflow: hidden; }\n  .mdl-layout__drawer > * {\n    flex-shrink: 0; }\n  .mdl-layout__drawer > .mdl-layout__title,\n  .mdl-layout__drawer > .mdl-layout-title {\n    line-height: 64px;\n    padding-left: 40px; }\n    @media screen and (max-width: 1024px) {\n      .mdl-layout__drawer > .mdl-layout__title,\n      .mdl-layout__drawer > .mdl-layout-title {\n        line-height: 56px;\n        padding-left: 16px; } }\n  .mdl-layout__drawer .mdl-navigation {\n    flex-direction: column;\n    align-items: stretch;\n    padding-top: 16px; }\n    .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {\n      display: block;\n      flex-shrink: 0;\n      padding: 16px 40px;\n      margin: 0;\n      color: #757575; }\n      @media screen and (max-width: 1024px) {\n        .mdl-layout__drawer .mdl-navigation .mdl-navigation__link {\n          padding: 16px 16px; } }\n      .mdl-layout__drawer .mdl-navigation .mdl-navigation__link:hover {\n        background-color: rgb(224,224,224); }\n      .mdl-layout__drawer .mdl-navigation .mdl-navigation__link--current {\n        background-color: rgb(224,224,224);\n        color: rgb(0,0,0); }\n  @media screen and (min-width: 1025px) {\n    .mdl-layout--fixed-drawer > .mdl-layout__drawer {\n      transform: translateX(0); } }\n\n.mdl-layout__drawer-button {\n  display: block;\n  position: absolute;\n  height: 48px;\n  width: 48px;\n  border: 0;\n  flex-shrink: 0;\n  overflow: hidden;\n  text-align: center;\n  cursor: pointer;\n  font-size: 26px;\n  line-height: 56px;\n  font-family: Helvetica, Arial, sans-serif;\n  margin: 8px 12px;\n  top: 0;\n  left: 0;\n  color: rgb(255,255,255);\n  z-index: 4; }\n  .mdl-layout__header .mdl-layout__drawer-button {\n    position: absolute;\n    color: rgb(255,255,255);\n    background-color: inherit; }\n    @media screen and (max-width: 1024px) {\n      .mdl-layout__header .mdl-layout__drawer-button {\n        margin: 4px; } }\n  @media screen and (max-width: 1024px) {\n    .mdl-layout__drawer-button {\n      margin: 4px;\n      color: rgba(0, 0, 0, 0.5); } }\n  @media screen and (min-width: 1025px) {\n    .mdl-layout__drawer-button {\n      line-height: 54px; }\n      .mdl-layout--no-desktop-drawer-button .mdl-layout__drawer-button,\n      .mdl-layout--fixed-drawer > .mdl-layout__drawer-button,\n      .mdl-layout--no-drawer-button .mdl-layout__drawer-button {\n        display: none; } }\n\n.mdl-layout__header {\n  display: flex;\n  flex-direction: column;\n  flex-wrap: nowrap;\n  justify-content: flex-start;\n  box-sizing: border-box;\n  flex-shrink: 0;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n  border: none;\n  min-height: 64px;\n  max-height: 1000px;\n  z-index: 3;\n  background-color: rgb(63,81,181);\n  color: rgb(255,255,255);\n  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n  transition-duration: 0.2s;\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n  transition-property: max-height, box-shadow; }\n  @media screen and (max-width: 1024px) {\n    .mdl-layout__header {\n      min-height: 56px; } }\n  .mdl-layout--fixed-drawer.is-upgraded:not(.is-small-screen) > .mdl-layout__header {\n    margin-left: 240px;\n    width: calc(100% - 240px); }\n  @media screen and (min-width: 1025px) {\n    .mdl-layout--fixed-drawer > .mdl-layout__header .mdl-layout__header-row {\n      padding-left: 40px; } }\n  .mdl-layout__header > .mdl-layout-icon {\n    position: absolute;\n    left: 40px;\n    top: 16px;\n    height: 32px;\n    width: 32px;\n    overflow: hidden;\n    z-index: 3;\n    display: block; }\n    @media screen and (max-width: 1024px) {\n      .mdl-layout__header > .mdl-layout-icon {\n        left: 16px;\n        top: 12px; } }\n  .mdl-layout.has-drawer .mdl-layout__header > .mdl-layout-icon {\n    display: none; }\n  .mdl-layout__header.is-compact {\n    max-height: 64px; }\n    @media screen and (max-width: 1024px) {\n      .mdl-layout__header.is-compact {\n        max-height: 56px; } }\n  .mdl-layout__header.is-compact.has-tabs {\n    height: 112px; }\n    @media screen and (max-width: 1024px) {\n      .mdl-layout__header.is-compact.has-tabs {\n        min-height: 104px; } }\n  @media screen and (max-width: 1024px) {\n    .mdl-layout__header {\n      display: none; }\n    .mdl-layout--fixed-header > .mdl-layout__header {\n      display: flex; } }\n\n.mdl-layout__header--transparent.mdl-layout__header--transparent {\n  background-color: transparent;\n  box-shadow: none; }\n\n.mdl-layout__header--seamed {\n  box-shadow: none; }\n\n.mdl-layout__header--scroll {\n  box-shadow: none; }\n\n.mdl-layout__header--waterfall {\n  box-shadow: none;\n  overflow: hidden; }\n  .mdl-layout__header--waterfall.is-casting-shadow {\n    box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }\n  .mdl-layout__header--waterfall.mdl-layout__header--waterfall-hide-top {\n    justify-content: flex-end; }\n\n.mdl-layout__header-row {\n  display: flex;\n  flex-direction: row;\n  flex-wrap: nowrap;\n  flex-shrink: 0;\n  box-sizing: border-box;\n  align-self: stretch;\n  align-items: center;\n  height: 64px;\n  margin: 0;\n  padding: 0 40px 0 80px; }\n  .mdl-layout--no-drawer-button .mdl-layout__header-row {\n    padding-left: 40px; }\n  @media screen and (min-width: 1025px) {\n    .mdl-layout--no-desktop-drawer-button .mdl-layout__header-row {\n      padding-left: 40px; } }\n  @media screen and (max-width: 1024px) {\n    .mdl-layout__header-row {\n      height: 56px;\n      padding: 0 16px 0 72px; }\n      .mdl-layout--no-drawer-button .mdl-layout__header-row {\n        padding-left: 16px; } }\n  .mdl-layout__header-row > * {\n    flex-shrink: 0; }\n  .mdl-layout__header--scroll .mdl-layout__header-row {\n    width: 100%; }\n  .mdl-layout__header-row .mdl-navigation {\n    margin: 0;\n    padding: 0;\n    height: 64px;\n    flex-direction: row;\n    align-items: center; }\n    @media screen and (max-width: 1024px) {\n      .mdl-layout__header-row .mdl-navigation {\n        height: 56px; } }\n  .mdl-layout__header-row .mdl-navigation__link {\n    display: block;\n    color: rgb(255,255,255);\n    line-height: 64px;\n    padding: 0 24px; }\n    @media screen and (max-width: 1024px) {\n      .mdl-layout__header-row .mdl-navigation__link {\n        line-height: 56px;\n        padding: 0 16px; } }\n\n.mdl-layout__obfuscator {\n  background-color: transparent;\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 100%;\n  width: 100%;\n  z-index: 4;\n  visibility: hidden;\n  transition-property: background-color;\n  transition-duration: 0.2s;\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }\n  .mdl-layout__obfuscator.is-visible {\n    background-color: rgba(0, 0, 0, 0.5);\n    visibility: visible; }\n  @supports (pointer-events: auto) {\n    .mdl-layout__obfuscator {\n      background-color: rgba(0, 0, 0, 0.5);\n      opacity: 0;\n      transition-property: opacity;\n      visibility: visible;\n      pointer-events: none; }\n      .mdl-layout__obfuscator.is-visible {\n        pointer-events: auto;\n        opacity: 1; } }\n\n.mdl-layout__content {\n  -ms-flex: 0 1 auto;\n  position: relative;\n  display: inline-block;\n  overflow-y: auto;\n  overflow-x: hidden;\n  flex-grow: 1;\n  z-index: 1;\n  -webkit-overflow-scrolling: touch; }\n  .mdl-layout--fixed-drawer > .mdl-layout__content {\n    margin-left: 240px; }\n  .mdl-layout__container.has-scrolling-header .mdl-layout__content {\n    overflow: visible; }\n  @media screen and (max-width: 1024px) {\n    .mdl-layout--fixed-drawer > .mdl-layout__content {\n      margin-left: 0; }\n    .mdl-layout__container.has-scrolling-header .mdl-layout__content {\n      overflow-y: auto;\n      overflow-x: hidden; } }\n\n.mdl-layout__tab-bar {\n  height: 96px;\n  margin: 0;\n  width: calc(100% - 112px);\n  padding: 0 0 0 56px;\n  display: flex;\n  background-color: rgb(63,81,181);\n  overflow-y: hidden;\n  overflow-x: scroll; }\n  .mdl-layout__tab-bar::-webkit-scrollbar {\n    display: none; }\n  .mdl-layout--no-drawer-button .mdl-layout__tab-bar {\n    padding-left: 16px;\n    width: calc(100% - 32px); }\n  @media screen and (min-width: 1025px) {\n    .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar {\n      padding-left: 16px;\n      width: calc(100% - 32px); } }\n  @media screen and (max-width: 1024px) {\n    .mdl-layout__tab-bar {\n      width: calc(100% - 60px);\n      padding: 0 0 0 60px; }\n      .mdl-layout--no-drawer-button .mdl-layout__tab-bar {\n        width: calc(100% - 8px);\n        padding-left: 4px; } }\n  .mdl-layout--fixed-tabs .mdl-layout__tab-bar {\n    padding: 0;\n    overflow: hidden;\n    width: 100%; }\n\n.mdl-layout__tab-bar-container {\n  position: relative;\n  height: 48px;\n  width: 100%;\n  border: none;\n  margin: 0;\n  z-index: 2;\n  flex-grow: 0;\n  flex-shrink: 0;\n  overflow: hidden; }\n  .mdl-layout__container > .mdl-layout__tab-bar-container {\n    position: absolute;\n    top: 0;\n    left: 0; }\n\n.mdl-layout__tab-bar-button {\n  display: inline-block;\n  position: absolute;\n  top: 0;\n  height: 48px;\n  width: 56px;\n  z-index: 4;\n  text-align: center;\n  background-color: rgb(63,81,181);\n  color: transparent;\n  cursor: pointer;\n  user-select: none; }\n  .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button,\n  .mdl-layout--no-drawer-button .mdl-layout__tab-bar-button {\n    width: 16px; }\n    .mdl-layout--no-desktop-drawer-button .mdl-layout__tab-bar-button .material-icons,\n    .mdl-layout--no-drawer-button .mdl-layout__tab-bar-button .material-icons {\n      position: relative;\n      left: -4px; }\n  @media screen and (max-width: 1024px) {\n    .mdl-layout__tab-bar-button {\n      width: 60px; } }\n  .mdl-layout--fixed-tabs .mdl-layout__tab-bar-button {\n    display: none; }\n  .mdl-layout__tab-bar-button .material-icons {\n    line-height: 48px; }\n  .mdl-layout__tab-bar-button.is-active {\n    color: rgb(255,255,255); }\n\n.mdl-layout__tab-bar-left-button {\n  left: 0; }\n\n.mdl-layout__tab-bar-right-button {\n  right: 0; }\n\n.mdl-layout__tab {\n  margin: 0;\n  border: none;\n  padding: 0 24px 0 24px;\n  float: left;\n  position: relative;\n  display: block;\n  flex-grow: 0;\n  flex-shrink: 0;\n  text-decoration: none;\n  height: 48px;\n  line-height: 48px;\n  text-align: center;\n  font-weight: 500;\n  font-size: 14px;\n  text-transform: uppercase;\n  color: rgba(255,255,255, 0.6);\n  overflow: hidden; }\n  @media screen and (max-width: 1024px) {\n    .mdl-layout__tab {\n      padding: 0 12px 0 12px; } }\n  .mdl-layout--fixed-tabs .mdl-layout__tab {\n    float: none;\n    flex-grow: 1;\n    padding: 0; }\n  .mdl-layout.is-upgraded .mdl-layout__tab.is-active {\n    color: rgb(255,255,255); }\n  .mdl-layout.is-upgraded .mdl-layout__tab.is-active::after {\n    height: 2px;\n    width: 100%;\n    display: block;\n    content: \" \";\n    bottom: 0;\n    left: 0;\n    position: absolute;\n    background: rgb(255,64,129);\n    animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;\n    transition: all 1s cubic-bezier(0.4, 0, 1, 1); }\n  .mdl-layout__tab .mdl-layout__tab-ripple-container {\n    display: block;\n    position: absolute;\n    height: 100%;\n    width: 100%;\n    left: 0;\n    top: 0;\n    z-index: 1;\n    overflow: hidden; }\n    .mdl-layout__tab .mdl-layout__tab-ripple-container .mdl-ripple {\n      background-color: rgb(255,255,255); }\n\n.mdl-layout__tab-panel {\n  display: block; }\n  .mdl-layout.is-upgraded .mdl-layout__tab-panel {\n    display: none; }\n  .mdl-layout.is-upgraded .mdl-layout__tab-panel.is-active {\n    display: block; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n.mdl-radio {\n  position: relative;\n  font-size: 16px;\n  line-height: 24px;\n  display: inline-block;\n  vertical-align: middle;\n  box-sizing: border-box;\n  height: 24px;\n  margin: 0;\n  padding-left: 0; }\n  .mdl-radio.is-upgraded {\n    padding-left: 24px; }\n\n.mdl-radio__button {\n  line-height: 24px; }\n  .mdl-radio.is-upgraded .mdl-radio__button {\n    position: absolute;\n    width: 0;\n    height: 0;\n    margin: 0;\n    padding: 0;\n    opacity: 0;\n    -ms-appearance: none;\n    -moz-appearance: none;\n    -webkit-appearance: none;\n    appearance: none;\n    border: none; }\n\n.mdl-radio__outer-circle {\n  position: absolute;\n  top: 4px;\n  left: 0;\n  display: inline-block;\n  box-sizing: border-box;\n  width: 16px;\n  height: 16px;\n  margin: 0;\n  cursor: pointer;\n  border: 2px solid rgba(0,0,0, 0.54);\n  border-radius: 50%;\n  z-index: 2; }\n  .mdl-radio.is-checked .mdl-radio__outer-circle {\n    border: 2px solid rgb(63,81,181); }\n  .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,\n  .mdl-radio.is-disabled .mdl-radio__outer-circle {\n    border: 2px solid rgba(0,0,0, 0.26);\n    cursor: auto; }\n\n.mdl-radio__inner-circle {\n  position: absolute;\n  z-index: 1;\n  margin: 0;\n  top: 8px;\n  left: 4px;\n  box-sizing: border-box;\n  width: 8px;\n  height: 8px;\n  cursor: pointer;\n  transition-duration: 0.28s;\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n  transition-property: transform;\n  transform: scale(0, 0);\n  border-radius: 50%;\n  background: rgb(63,81,181); }\n  .mdl-radio.is-checked .mdl-radio__inner-circle {\n    transform: scale(1, 1); }\n  fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,\n  .mdl-radio.is-disabled .mdl-radio__inner-circle {\n    background: rgba(0,0,0, 0.26);\n    cursor: auto; }\n  .mdl-radio.is-focused .mdl-radio__inner-circle {\n    box-shadow: 0 0 0px 10px rgba(0, 0, 0, 0.1); }\n\n.mdl-radio__label {\n  cursor: pointer; }\n  fieldset[disabled] .mdl-radio .mdl-radio__label,\n  .mdl-radio.is-disabled .mdl-radio__label {\n    color: rgba(0,0,0, 0.26);\n    cursor: auto; }\n\n.mdl-radio__ripple-container {\n  position: absolute;\n  z-index: 2;\n  top: -9px;\n  left: -13px;\n  box-sizing: border-box;\n  width: 42px;\n  height: 42px;\n  border-radius: 50%;\n  cursor: pointer;\n  overflow: hidden;\n  -webkit-mask-image: -webkit-radial-gradient(circle, white, black); }\n  .mdl-radio__ripple-container .mdl-ripple {\n    background: rgb(63,81,181); }\n  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container,\n  .mdl-radio.is-disabled .mdl-radio__ripple-container {\n    cursor: auto; }\n  fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,\n  .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {\n    background: transparent; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n_:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded {\n  -ms-appearance: none;\n  height: 32px;\n  margin: 0; }\n\n.mdl-slider {\n  width: calc(100% - 40px);\n  margin: 0 20px; }\n  .mdl-slider.is-upgraded {\n    -webkit-appearance: none;\n    -moz-appearance: none;\n    appearance: none;\n    height: 2px;\n    background: transparent;\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    user-select: none;\n    outline: 0;\n    padding: 0;\n    color: rgb(63,81,181);\n    align-self: center;\n    z-index: 1;\n    cursor: pointer;\n    /**************************** Tracks ****************************/\n    /**************************** Thumbs ****************************/\n    /**************************** 0-value ****************************/\n    /**************************** Disabled ****************************/ }\n    .mdl-slider.is-upgraded::-moz-focus-outer {\n      border: 0; }\n    .mdl-slider.is-upgraded::-ms-tooltip {\n      display: none; }\n    .mdl-slider.is-upgraded::-webkit-slider-runnable-track {\n      background: transparent; }\n    .mdl-slider.is-upgraded::-moz-range-track {\n      background: transparent;\n      border: none; }\n    .mdl-slider.is-upgraded::-ms-track {\n      background: none;\n      color: transparent;\n      height: 2px;\n      width: 100%;\n      border: none; }\n    .mdl-slider.is-upgraded::-ms-fill-lower {\n      padding: 0;\n      background: linear-gradient(to right, transparent, transparent 16px, rgb(63,81,181) 16px, rgb(63,81,181) 0); }\n    .mdl-slider.is-upgraded::-ms-fill-upper {\n      padding: 0;\n      background: linear-gradient(to left, transparent, transparent 16px, rgba(0,0,0, 0.26) 16px, rgba(0,0,0, 0.26) 0); }\n    .mdl-slider.is-upgraded::-webkit-slider-thumb {\n      -webkit-appearance: none;\n      width: 12px;\n      height: 12px;\n      box-sizing: border-box;\n      border-radius: 50%;\n      background: rgb(63,81,181);\n      border: none;\n      transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); }\n    .mdl-slider.is-upgraded::-moz-range-thumb {\n      -moz-appearance: none;\n      width: 12px;\n      height: 12px;\n      box-sizing: border-box;\n      border-radius: 50%;\n      background-image: none;\n      background: rgb(63,81,181);\n      border: none; }\n    .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {\n      box-shadow: 0 0 0 10px rgba(63,81,181, 0.26); }\n    .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {\n      box-shadow: 0 0 0 10px rgba(63,81,181, 0.26); }\n    .mdl-slider.is-upgraded:active::-webkit-slider-thumb {\n      background-image: none;\n      background: rgb(63,81,181);\n      transform: scale(1.5); }\n    .mdl-slider.is-upgraded:active::-moz-range-thumb {\n      background-image: none;\n      background: rgb(63,81,181);\n      transform: scale(1.5); }\n    .mdl-slider.is-upgraded::-ms-thumb {\n      width: 32px;\n      height: 32px;\n      border: none;\n      border-radius: 50%;\n      background: rgb(63,81,181);\n      transform: scale(0.375);\n      transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); }\n    .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {\n      background: radial-gradient(circle closest-side, rgb(63,81,181) 0%, rgb(63,81,181) 37.5%, rgba(63,81,181, 0.26) 37.5%, rgba(63,81,181, 0.26) 100%);\n      transform: scale(1); }\n    .mdl-slider.is-upgraded:active::-ms-thumb {\n      background: rgb(63,81,181);\n      transform: scale(0.5625); }\n    .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb {\n      border: 2px solid rgba(0,0,0, 0.26);\n      background: transparent; }\n    .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb {\n      border: 2px solid rgba(0,0,0, 0.26);\n      background: transparent; }\n    .mdl-slider.is-upgraded.is-lowest-value +\n.mdl-slider__background-flex > .mdl-slider__background-upper {\n      left: 6px; }\n    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {\n      box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);\n      background: rgba(0,0,0, 0.12); }\n    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb {\n      box-shadow: 0 0 0 10px rgba(0,0,0, 0.12);\n      background: rgba(0,0,0, 0.12); }\n    .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb {\n      border: 1.6px solid rgba(0,0,0, 0.26);\n      transform: scale(1.5); }\n    .mdl-slider.is-upgraded.is-lowest-value:active +\n.mdl-slider__background-flex > .mdl-slider__background-upper {\n      left: 9px; }\n    .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb {\n      border: 1.5px solid rgba(0,0,0, 0.26);\n      transform: scale(1.5); }\n    .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb {\n      background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(0,0,0, 0.26) 66.67%, rgba(0,0,0, 0.26) 100%); }\n    .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb {\n      background: radial-gradient(circle closest-side, rgba(0,0,0, 0.12) 0%, rgba(0,0,0, 0.12) 25%, rgba(0,0,0, 0.26) 25%, rgba(0,0,0, 0.26) 37.5%, rgba(0,0,0, 0.12) 37.5%, rgba(0,0,0, 0.12) 100%);\n      transform: scale(1); }\n    .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb {\n      transform: scale(0.5625);\n      background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(0,0,0, 0.26) 77.78%, rgba(0,0,0, 0.26) 100%); }\n    .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower {\n      background: transparent; }\n    .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-upper {\n      margin-left: 6px; }\n    .mdl-slider.is-upgraded.is-lowest-value:active::-ms-fill-upper {\n      margin-left: 9px; }\n    .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb, .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb {\n      transform: scale(0.667);\n      background: rgba(0,0,0, 0.26); }\n    .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb, .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb, .mdl-slider.is-upgraded:disabled::-moz-range-thumb {\n      transform: scale(0.667);\n      background: rgba(0,0,0, 0.26); }\n    .mdl-slider.is-upgraded:disabled +\n.mdl-slider__background-flex > .mdl-slider__background-lower {\n      background-color: rgba(0,0,0, 0.26);\n      left: -6px; }\n    .mdl-slider.is-upgraded:disabled +\n.mdl-slider__background-flex > .mdl-slider__background-upper {\n      left: 6px; }\n    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb {\n      border: 3px solid rgba(0,0,0, 0.26);\n      background: transparent;\n      transform: scale(0.667); }\n    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb {\n      border: 3px solid rgba(0,0,0, 0.26);\n      background: transparent;\n      transform: scale(0.667); }\n    .mdl-slider.is-upgraded.is-lowest-value:disabled:active +\n.mdl-slider__background-flex > .mdl-slider__background-upper {\n      left: 6px; }\n    .mdl-slider.is-upgraded:disabled:focus::-ms-thumb, .mdl-slider.is-upgraded:disabled:active::-ms-thumb, .mdl-slider.is-upgraded:disabled::-ms-thumb {\n      transform: scale(0.25);\n      background: rgba(0,0,0, 0.26); }\n    .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb, .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb {\n      transform: scale(0.25);\n      background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(0,0,0, 0.26) 50%, rgba(0,0,0, 0.26) 100%); }\n    .mdl-slider.is-upgraded:disabled::-ms-fill-lower {\n      margin-right: 6px;\n      background: linear-gradient(to right, transparent, transparent 25px, rgba(0,0,0, 0.26) 25px, rgba(0,0,0, 0.26) 0); }\n    .mdl-slider.is-upgraded:disabled::-ms-fill-upper {\n      margin-left: 6px; }\n    .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-fill-upper {\n      margin-left: 6px; }\n\n.mdl-slider__ie-container {\n  height: 18px;\n  overflow: visible;\n  border: none;\n  margin: none;\n  padding: none; }\n\n.mdl-slider__container {\n  height: 18px;\n  position: relative;\n  background: none;\n  display: flex;\n  flex-direction: row; }\n\n.mdl-slider__background-flex {\n  background: transparent;\n  position: absolute;\n  height: 2px;\n  width: calc(100% - 52px);\n  top: 50%;\n  left: 0;\n  margin: 0 26px;\n  display: flex;\n  overflow: hidden;\n  border: 0;\n  padding: 0;\n  transform: translate(0, -1px); }\n\n.mdl-slider__background-lower {\n  background: rgb(63,81,181);\n  flex: 0;\n  position: relative;\n  border: 0;\n  padding: 0; }\n\n.mdl-slider__background-upper {\n  background: rgba(0,0,0, 0.26);\n  flex: 0;\n  position: relative;\n  border: 0;\n  padding: 0;\n  transition: left 0.18s cubic-bezier(0.4, 0, 0.2, 1); }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n.mdl-snackbar {\n  position: fixed;\n  bottom: 0;\n  left: 50%;\n  cursor: default;\n  background-color: #323232;\n  z-index: 3;\n  display: block;\n  display: flex;\n  justify-content: space-between;\n  font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n  will-change: transform;\n  transform: translate(0, 80px);\n  transition: transform 0.25s cubic-bezier(0.4, 0, 1, 1);\n  pointer-events: none; }\n  @media (max-width: 479px) {\n    .mdl-snackbar {\n      width: 100%;\n      left: 0;\n      min-height: 48px;\n      max-height: 80px; } }\n  @media (min-width: 480px) {\n    .mdl-snackbar {\n      min-width: 288px;\n      max-width: 568px;\n      border-radius: 2px;\n      transform: translate(-50%, 80px); } }\n  .mdl-snackbar--active {\n    transform: translate(0, 0);\n    pointer-events: auto;\n    transition: transform 0.25s cubic-bezier(0, 0, 0.2, 1); }\n    @media (min-width: 480px) {\n      .mdl-snackbar--active {\n        transform: translate(-50%, 0); } }\n  .mdl-snackbar__text {\n    padding: 14px 12px 14px 24px;\n    vertical-align: middle;\n    color: white;\n    float: left; }\n  .mdl-snackbar__action {\n    background: transparent;\n    border: none;\n    color: rgb(255,64,129);\n    float: right;\n    text-transform: uppercase;\n    padding: 14px 24px 14px 12px;\n    font-family: \"Roboto\", \"Helvetica\", \"Arial\", sans-serif;\n    font-size: 14px;\n    font-weight: 500;\n    text-transform: uppercase;\n    line-height: 1;\n    letter-spacing: 0;\n    overflow: hidden;\n    outline: none;\n    opacity: 0;\n    pointer-events: none;\n    cursor: pointer;\n    text-decoration: none;\n    text-align: center;\n    align-self: center; }\n    .mdl-snackbar__action::-moz-focus-inner {\n      border: 0; }\n    .mdl-snackbar__action:not([aria-hidden]) {\n      opacity: 1;\n      pointer-events: auto; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n.mdl-spinner {\n  display: inline-block;\n  position: relative;\n  width: 28px;\n  height: 28px; }\n  .mdl-spinner:not(.is-upgraded).is-active:after {\n    content: \"Loading...\"; }\n  .mdl-spinner.is-upgraded.is-active {\n    animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite; }\n\n@keyframes mdl-spinner__container-rotate {\n  to {\n    transform: rotate(360deg); } }\n\n.mdl-spinner__layer {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  opacity: 0; }\n\n.mdl-spinner__layer-1 {\n  border-color: rgb(66,165,245); }\n  .mdl-spinner--single-color .mdl-spinner__layer-1 {\n    border-color: rgb(63,81,181); }\n  .mdl-spinner.is-active .mdl-spinner__layer-1 {\n    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }\n\n.mdl-spinner__layer-2 {\n  border-color: rgb(244,67,54); }\n  .mdl-spinner--single-color .mdl-spinner__layer-2 {\n    border-color: rgb(63,81,181); }\n  .mdl-spinner.is-active .mdl-spinner__layer-2 {\n    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }\n\n.mdl-spinner__layer-3 {\n  border-color: rgb(253,216,53); }\n  .mdl-spinner--single-color .mdl-spinner__layer-3 {\n    border-color: rgb(63,81,181); }\n  .mdl-spinner.is-active .mdl-spinner__layer-3 {\n    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }\n\n.mdl-spinner__layer-4 {\n  border-color: rgb(76,175,80); }\n  .mdl-spinner--single-color .mdl-spinner__layer-4 {\n    border-color: rgb(63,81,181); }\n  .mdl-spinner.is-active .mdl-spinner__layer-4 {\n    animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }\n\n@keyframes mdl-spinner__fill-unfill-rotate {\n  12.5% {\n    transform: rotate(135deg); }\n  25% {\n    transform: rotate(270deg); }\n  37.5% {\n    transform: rotate(405deg); }\n  50% {\n    transform: rotate(540deg); }\n  62.5% {\n    transform: rotate(675deg); }\n  75% {\n    transform: rotate(810deg); }\n  87.5% {\n    transform: rotate(945deg); }\n  to {\n    transform: rotate(1080deg); } }\n\n/**\n* HACK: Even though the intention is to have the current .mdl-spinner__layer-N\n* at `opacity: 1`, we set it to `opacity: 0.99` instead since this forces Chrome\n* to do proper subpixel rendering for the elements being animated. This is\n* especially visible in Chrome 39 on Ubuntu 14.04. See:\n*\n* - https://github.com/Polymer/paper-spinner/issues/9\n* - https://code.google.com/p/chromium/issues/detail?id=436255\n*/\n@keyframes mdl-spinner__layer-1-fade-in-out {\n  from {\n    opacity: 0.99; }\n  25% {\n    opacity: 0.99; }\n  26% {\n    opacity: 0; }\n  89% {\n    opacity: 0; }\n  90% {\n    opacity: 0.99; }\n  100% {\n    opacity: 0.99; } }\n\n@keyframes mdl-spinner__layer-2-fade-in-out {\n  from {\n    opacity: 0; }\n  15% {\n    opacity: 0; }\n  25% {\n    opacity: 0.99; }\n  50% {\n    opacity: 0.99; }\n  51% {\n    opacity: 0; } }\n\n@keyframes mdl-spinner__layer-3-fade-in-out {\n  from {\n    opacity: 0; }\n  40% {\n    opacity: 0; }\n  50% {\n    opacity: 0.99; }\n  75% {\n    opacity: 0.99; }\n  76% {\n    opacity: 0; } }\n\n@keyframes mdl-spinner__layer-4-fade-in-out {\n  from {\n    opacity: 0; }\n  65% {\n    opacity: 0; }\n  75% {\n    opacity: 0.99; }\n  90% {\n    opacity: 0.99; }\n  100% {\n    opacity: 0; } }\n\n/**\n* Patch the gap that appear between the two adjacent\n* div.mdl-spinner__circle-clipper while the spinner is rotating\n* (appears on Chrome 38, Safari 7.1, and IE 11).\n*\n* Update: the gap no longer appears on Chrome when .mdl-spinner__layer-N's\n* opacity is 0.99, but still does on Safari and IE.\n*/\n.mdl-spinner__gap-patch {\n  position: absolute;\n  box-sizing: border-box;\n  top: 0;\n  left: 45%;\n  width: 10%;\n  height: 100%;\n  overflow: hidden;\n  border-color: inherit; }\n  .mdl-spinner__gap-patch .mdl-spinner__circle {\n    width: 1000%;\n    left: -450%; }\n\n.mdl-spinner__circle-clipper {\n  display: inline-block;\n  position: relative;\n  width: 50%;\n  height: 100%;\n  overflow: hidden;\n  border-color: inherit; }\n  .mdl-spinner__circle-clipper.mdl-spinner__left {\n    float: left; }\n  .mdl-spinner__circle-clipper.mdl-spinner__right {\n    float: right; }\n  .mdl-spinner__circle-clipper .mdl-spinner__circle {\n    width: 200%; }\n\n.mdl-spinner__circle {\n  box-sizing: border-box;\n  height: 100%;\n  border-width: 3px;\n  border-style: solid;\n  border-color: inherit;\n  border-bottom-color: transparent !important;\n  border-radius: 50%;\n  animation: none;\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0; }\n  .mdl-spinner__left .mdl-spinner__circle {\n    border-right-color: transparent !important;\n    transform: rotate(129deg); }\n    .mdl-spinner.is-active .mdl-spinner__left .mdl-spinner__circle {\n      animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }\n  .mdl-spinner__right .mdl-spinner__circle {\n    left: -100%;\n    border-left-color: transparent !important;\n    transform: rotate(-129deg); }\n    .mdl-spinner.is-active .mdl-spinner__right .mdl-spinner__circle {\n      animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; }\n\n@keyframes mdl-spinner__left-spin {\n  from {\n    transform: rotate(130deg); }\n  50% {\n    transform: rotate(-5deg); }\n  to {\n    transform: rotate(130deg); } }\n\n@keyframes mdl-spinner__right-spin {\n  from {\n    transform: rotate(-130deg); }\n  50% {\n    transform: rotate(5deg); }\n  to {\n    transform: rotate(-130deg); } }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n.mdl-switch {\n  position: relative;\n  z-index: 1;\n  vertical-align: middle;\n  display: inline-block;\n  box-sizing: border-box;\n  width: 100%;\n  height: 24px;\n  margin: 0;\n  padding: 0;\n  overflow: visible;\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none; }\n  .mdl-switch.is-upgraded {\n    padding-left: 28px; }\n\n.mdl-switch__input {\n  line-height: 24px; }\n  .mdl-switch.is-upgraded .mdl-switch__input {\n    position: absolute;\n    width: 0;\n    height: 0;\n    margin: 0;\n    padding: 0;\n    opacity: 0;\n    -ms-appearance: none;\n    -moz-appearance: none;\n    -webkit-appearance: none;\n    appearance: none;\n    border: none; }\n\n.mdl-switch__track {\n  background: rgba(0,0,0, 0.26);\n  position: absolute;\n  left: 0;\n  top: 5px;\n  height: 14px;\n  width: 36px;\n  border-radius: 14px;\n  cursor: pointer; }\n  .mdl-switch.is-checked .mdl-switch__track {\n    background: rgba(63,81,181, 0.5); }\n  .mdl-switch__track fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__track {\n    background: rgba(0,0,0, 0.12);\n    cursor: auto; }\n\n.mdl-switch__thumb {\n  background: rgb(250,250,250);\n  position: absolute;\n  left: 0;\n  top: 2px;\n  height: 20px;\n  width: 20px;\n  border-radius: 50%;\n  cursor: pointer;\n  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n  transition-duration: 0.28s;\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n  transition-property: left; }\n  .mdl-switch.is-checked .mdl-switch__thumb {\n    background: rgb(63,81,181);\n    left: 16px;\n    box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12); }\n  .mdl-switch__thumb fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__thumb {\n    background: rgb(189,189,189);\n    cursor: auto; }\n\n.mdl-switch__focus-helper {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  transform: translate(-4px, -4px);\n  display: inline-block;\n  box-sizing: border-box;\n  width: 8px;\n  height: 8px;\n  border-radius: 50%;\n  background-color: transparent; }\n  .mdl-switch.is-focused .mdl-switch__focus-helper {\n    box-shadow: 0 0 0px 20px rgba(0, 0, 0, 0.1);\n    background-color: rgba(0, 0, 0, 0.1); }\n  .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {\n    box-shadow: 0 0 0px 20px rgba(63,81,181, 0.26);\n    background-color: rgba(63,81,181, 0.26); }\n\n.mdl-switch__label {\n  position: relative;\n  cursor: pointer;\n  font-size: 16px;\n  line-height: 24px;\n  margin: 0;\n  left: 24px; }\n  .mdl-switch__label fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__label {\n    color: rgb(189,189,189);\n    cursor: auto; }\n\n.mdl-switch__ripple-container {\n  position: absolute;\n  z-index: 2;\n  top: -12px;\n  left: -14px;\n  box-sizing: border-box;\n  width: 48px;\n  height: 48px;\n  border-radius: 50%;\n  cursor: pointer;\n  overflow: hidden;\n  -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\n  transition-duration: 0.40s;\n  transition-timing-function: step-end;\n  transition-property: left; }\n  .mdl-switch__ripple-container .mdl-ripple {\n    background: rgb(63,81,181); }\n  .mdl-switch__ripple-container fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled .mdl-switch__ripple-container {\n    cursor: auto; }\n  fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,\n  .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {\n    background: transparent; }\n  .mdl-switch.is-checked .mdl-switch__ripple-container {\n    left: 2px; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n.mdl-tabs {\n  display: block;\n  width: 100%; }\n\n.mdl-tabs__tab-bar {\n  display: flex;\n  flex-direction: row;\n  justify-content: center;\n  align-content: space-between;\n  align-items: flex-start;\n  height: 48px;\n  padding: 0 0 0 0;\n  margin: 0;\n  border-bottom: 1px solid rgb(224,224,224); }\n\n.mdl-tabs__tab {\n  margin: 0;\n  border: none;\n  padding: 0 24px 0 24px;\n  float: left;\n  position: relative;\n  display: block;\n  text-decoration: none;\n  height: 48px;\n  line-height: 48px;\n  text-align: center;\n  font-weight: 500;\n  font-size: 14px;\n  text-transform: uppercase;\n  color: rgba(0,0,0, 0.54);\n  overflow: hidden; }\n  .mdl-tabs.is-upgraded .mdl-tabs__tab.is-active {\n    color: rgba(0,0,0, 0.87); }\n  .mdl-tabs.is-upgraded .mdl-tabs__tab.is-active:after {\n    height: 2px;\n    width: 100%;\n    display: block;\n    content: \" \";\n    bottom: 0px;\n    left: 0px;\n    position: absolute;\n    background: rgb(63,81,181);\n    animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;\n    transition: all 1s cubic-bezier(0.4, 0, 1, 1); }\n  .mdl-tabs__tab .mdl-tabs__ripple-container {\n    display: block;\n    position: absolute;\n    height: 100%;\n    width: 100%;\n    left: 0px;\n    top: 0px;\n    z-index: 1;\n    overflow: hidden; }\n    .mdl-tabs__tab .mdl-tabs__ripple-container .mdl-ripple {\n      background: rgb(63,81,181); }\n\n.mdl-tabs__panel {\n  display: block; }\n  .mdl-tabs.is-upgraded .mdl-tabs__panel {\n    display: none; }\n  .mdl-tabs.is-upgraded .mdl-tabs__panel.is-active {\n    display: block; }\n\n@keyframes border-expand {\n  0% {\n    opacity: 0;\n    width: 0; }\n  100% {\n    opacity: 1;\n    width: 100%; } }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n.mdl-textfield {\n  position: relative;\n  font-size: 16px;\n  display: inline-block;\n  box-sizing: border-box;\n  width: 300px;\n  max-width: 100%;\n  margin: 0;\n  padding: 20px 0; }\n  .mdl-textfield .mdl-button {\n    position: absolute;\n    bottom: 20px; }\n\n.mdl-textfield--align-right {\n  text-align: right; }\n\n.mdl-textfield--full-width {\n  width: 100%; }\n\n.mdl-textfield--expandable {\n  min-width: 32px;\n  width: auto;\n  min-height: 32px; }\n  .mdl-textfield--expandable .mdl-button--icon {\n    top: 16px; }\n\n.mdl-textfield__input {\n  border: none;\n  border-bottom: 1px solid rgba(0,0,0, 0.12);\n  display: block;\n  font-size: 16px;\n  font-family: \"Helvetica\", \"Arial\", sans-serif;\n  margin: 0;\n  padding: 4px 0;\n  width: 100%;\n  background: none;\n  text-align: left;\n  color: inherit; }\n  .mdl-textfield__input[type=\"number\"] {\n    -moz-appearance: textfield; }\n  .mdl-textfield__input[type=\"number\"]::-webkit-inner-spin-button, .mdl-textfield__input[type=\"number\"]::-webkit-outer-spin-button {\n    -webkit-appearance: none;\n    margin: 0; }\n  .mdl-textfield.is-focused .mdl-textfield__input {\n    outline: none; }\n  .mdl-textfield.is-invalid .mdl-textfield__input {\n    border-color: rgb(213,0,0);\n    box-shadow: none; }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__input,\n  .mdl-textfield.is-disabled .mdl-textfield__input {\n    background-color: transparent;\n    border-bottom: 1px dotted rgba(0,0,0, 0.12);\n    color: rgba(0,0,0, 0.26); }\n\n.mdl-textfield textarea.mdl-textfield__input {\n  display: block; }\n\n.mdl-textfield__label {\n  bottom: 0;\n  color: rgba(0,0,0, 0.26);\n  font-size: 16px;\n  left: 0;\n  right: 0;\n  pointer-events: none;\n  position: absolute;\n  display: block;\n  top: 24px;\n  width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-align: left; }\n  .mdl-textfield.is-dirty .mdl-textfield__label,\n  .mdl-textfield.has-placeholder .mdl-textfield__label {\n    visibility: hidden; }\n  .mdl-textfield--floating-label .mdl-textfield__label {\n    transition-duration: 0.2s;\n    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }\n  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\n    transition: none; }\n  fieldset[disabled] .mdl-textfield .mdl-textfield__label,\n  .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {\n    color: rgba(0,0,0, 0.26); }\n  .mdl-textfield--floating-label.is-focused .mdl-textfield__label,\n  .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,\n  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {\n    color: rgb(63,81,181);\n    font-size: 12px;\n    top: 4px;\n    visibility: visible; }\n  .mdl-textfield--floating-label.is-focused .mdl-textfield__expandable-holder .mdl-textfield__label,\n  .mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder .mdl-textfield__label,\n  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__expandable-holder .mdl-textfield__label {\n    top: -16px; }\n  .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {\n    color: rgb(213,0,0);\n    font-size: 12px; }\n  .mdl-textfield__label:after {\n    background-color: rgb(63,81,181);\n    bottom: 20px;\n    content: '';\n    height: 2px;\n    left: 45%;\n    position: absolute;\n    transition-duration: 0.2s;\n    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n    visibility: hidden;\n    width: 10px; }\n  .mdl-textfield.is-focused .mdl-textfield__label:after {\n    left: 0;\n    visibility: visible;\n    width: 100%; }\n  .mdl-textfield.is-invalid .mdl-textfield__label:after {\n    background-color: rgb(213,0,0); }\n\n.mdl-textfield__error {\n  color: rgb(213,0,0);\n  position: absolute;\n  font-size: 12px;\n  margin-top: 3px;\n  visibility: hidden;\n  display: block; }\n  .mdl-textfield.is-invalid .mdl-textfield__error {\n    visibility: visible; }\n\n.mdl-textfield__expandable-holder {\n  display: inline-block;\n  position: relative;\n  margin-left: 32px;\n  transition-duration: 0.2s;\n  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n  display: inline-block;\n  max-width: 0.1px; }\n  .mdl-textfield.is-focused .mdl-textfield__expandable-holder, .mdl-textfield.is-dirty .mdl-textfield__expandable-holder {\n    max-width: 600px; }\n  .mdl-textfield__expandable-holder .mdl-textfield__label:after {\n    bottom: 0; }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n.mdl-tooltip {\n  transform: scale(0);\n  transform-origin: top center;\n  z-index: 999;\n  background: rgba(97,97,97, 0.9);\n  border-radius: 2px;\n  color: rgb(255,255,255);\n  display: inline-block;\n  font-size: 10px;\n  font-weight: 500;\n  line-height: 14px;\n  max-width: 170px;\n  position: fixed;\n  top: -500px;\n  left: -500px;\n  padding: 8px;\n  text-align: center; }\n\n.mdl-tooltip.is-active {\n  animation: pulse 200ms cubic-bezier(0, 0, 0.2, 1) forwards; }\n\n.mdl-tooltip--large {\n  line-height: 14px;\n  font-size: 14px;\n  padding: 16px; }\n\n@keyframes pulse {\n  0% {\n    transform: scale(0);\n    opacity: 0; }\n  50% {\n    transform: scale(0.99); }\n  100% {\n    transform: scale(1);\n    opacity: 1;\n    visibility: visible; } }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Typography */\n/* Shadows */\n/* Animations */\n/* Dialog */\n.mdl-shadow--2dp {\n  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); }\n\n.mdl-shadow--3dp {\n  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12); }\n\n.mdl-shadow--4dp {\n  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.2); }\n\n.mdl-shadow--6dp {\n  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.2); }\n\n.mdl-shadow--8dp {\n  box-shadow: 0 8px 10px 1px 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); }\n\n.mdl-shadow--16dp {\n  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 -5px rgba(0, 0, 0, 0.2); }\n\n.mdl-shadow--24dp {\n  box-shadow: 0 9px 46px 8px rgba(0, 0, 0, 0.14), 0 11px 15px -7px rgba(0, 0, 0, 0.12), 0 24px 38px 3px rgba(0, 0, 0, 0.2); }\n\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*\n* NOTE: Some rules here are applied using duplicate selectors.\n* This is on purpose to increase their specificity when applied.\n* For example: `.mdl-cell--1-col-phone.mdl-cell--1-col-phone`\n*/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*------------------------------------*    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n/* ==========  TYPOGRAPHY  ========== */\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n/* ==========  COLORS  ========== */\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  Color Palettes  ========== */\n/* colors.scss */\n/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* ==========  IMAGES  ========== */\n/* ==========  Color & Themes  ========== */\n/* ==========  Typography  ========== */\n/* ==========  Components  ========== */\n/* ==========  Standard Buttons  ========== */\n/* ==========  Icon Toggles  ========== */\n/* ==========  Radio Buttons  ========== */\n/* ==========  Ripple effect  ========== */\n/* ==========  Layout  ========== */\n/* ==========  Content Tabs  ========== */\n/* ==========  Checkboxes  ========== */\n/* ==========  Switches  ========== */\n/* ==========  Spinner  ========== */\n/* ==========  Text fields  ========== */\n/* ==========  Card  ========== */\n/* ==========  Sliders ========== */\n/* ========== Progress ========== */\n/* ==========  List ========== */\n/* ==========  Item ========== */\n/* ==========  Dropdown menu ========== */\n/* ==========  Tooltips  ========== */\n/* ==========  Footer  ========== */\n/* TEXTFIELD */\n/* SWITCH */\n/* SPINNER */\n/* RADIO */\n/* MENU */\n/* LIST */\n/* LAYOUT */\n/* ICON TOGGLE */\n/* FOOTER */\n/*mega-footer*/\n/*mini-footer*/\n/* CHECKBOX */\n/* CARD */\n/* Card dimensions */\n/* Cover image */\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n/* ANIMATION */\n/* PROGRESS */\n/* BADGE */\n/* SHADOWS */\n/* GRID */\n/* DATA TABLE */\n/* DIALOG */\n/* SNACKBAR */\n/* TOOLTIP */\n/* CHIP */\n.mdl-grid {\n  display: flex;\n  flex-flow: row wrap;\n  margin: 0 auto 0 auto;\n  align-items: stretch; }\n  .mdl-grid.mdl-grid--no-spacing {\n    padding: 0; }\n\n.mdl-cell {\n  box-sizing: border-box; }\n\n.mdl-cell--top {\n  align-self: flex-start; }\n\n.mdl-cell--middle {\n  align-self: center; }\n\n.mdl-cell--bottom {\n  align-self: flex-end; }\n\n.mdl-cell--stretch {\n  align-self: stretch; }\n\n.mdl-grid.mdl-grid--no-spacing > .mdl-cell {\n  margin: 0; }\n\n.mdl-cell--order-1 {\n  order: 1; }\n\n.mdl-cell--order-2 {\n  order: 2; }\n\n.mdl-cell--order-3 {\n  order: 3; }\n\n.mdl-cell--order-4 {\n  order: 4; }\n\n.mdl-cell--order-5 {\n  order: 5; }\n\n.mdl-cell--order-6 {\n  order: 6; }\n\n.mdl-cell--order-7 {\n  order: 7; }\n\n.mdl-cell--order-8 {\n  order: 8; }\n\n.mdl-cell--order-9 {\n  order: 9; }\n\n.mdl-cell--order-10 {\n  order: 10; }\n\n.mdl-cell--order-11 {\n  order: 11; }\n\n.mdl-cell--order-12 {\n  order: 12; }\n\n@media (max-width: 479px) {\n  .mdl-grid {\n    padding: 8px; }\n  .mdl-cell {\n    margin: 8px;\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell {\n      width: 100%; }\n  .mdl-cell--hide-phone {\n    display: none !important; }\n  .mdl-cell--order-1-phone.mdl-cell--order-1-phone {\n    order: 1; }\n  .mdl-cell--order-2-phone.mdl-cell--order-2-phone {\n    order: 2; }\n  .mdl-cell--order-3-phone.mdl-cell--order-3-phone {\n    order: 3; }\n  .mdl-cell--order-4-phone.mdl-cell--order-4-phone {\n    order: 4; }\n  .mdl-cell--order-5-phone.mdl-cell--order-5-phone {\n    order: 5; }\n  .mdl-cell--order-6-phone.mdl-cell--order-6-phone {\n    order: 6; }\n  .mdl-cell--order-7-phone.mdl-cell--order-7-phone {\n    order: 7; }\n  .mdl-cell--order-8-phone.mdl-cell--order-8-phone {\n    order: 8; }\n  .mdl-cell--order-9-phone.mdl-cell--order-9-phone {\n    order: 9; }\n  .mdl-cell--order-10-phone.mdl-cell--order-10-phone {\n    order: 10; }\n  .mdl-cell--order-11-phone.mdl-cell--order-11-phone {\n    order: 11; }\n  .mdl-cell--order-12-phone.mdl-cell--order-12-phone {\n    order: 12; }\n  .mdl-cell--1-col,\n  .mdl-cell--1-col-phone.mdl-cell--1-col-phone {\n    width: calc(25% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >\n    .mdl-cell--1-col-phone.mdl-cell--1-col-phone {\n      width: 25%; }\n  .mdl-cell--2-col,\n  .mdl-cell--2-col-phone.mdl-cell--2-col-phone {\n    width: calc(50% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >\n    .mdl-cell--2-col-phone.mdl-cell--2-col-phone {\n      width: 50%; }\n  .mdl-cell--3-col,\n  .mdl-cell--3-col-phone.mdl-cell--3-col-phone {\n    width: calc(75% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >\n    .mdl-cell--3-col-phone.mdl-cell--3-col-phone {\n      width: 75%; }\n  .mdl-cell--4-col,\n  .mdl-cell--4-col-phone.mdl-cell--4-col-phone {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >\n    .mdl-cell--4-col-phone.mdl-cell--4-col-phone {\n      width: 100%; }\n  .mdl-cell--5-col,\n  .mdl-cell--5-col-phone.mdl-cell--5-col-phone {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >\n    .mdl-cell--5-col-phone.mdl-cell--5-col-phone {\n      width: 100%; }\n  .mdl-cell--6-col,\n  .mdl-cell--6-col-phone.mdl-cell--6-col-phone {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >\n    .mdl-cell--6-col-phone.mdl-cell--6-col-phone {\n      width: 100%; }\n  .mdl-cell--7-col,\n  .mdl-cell--7-col-phone.mdl-cell--7-col-phone {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >\n    .mdl-cell--7-col-phone.mdl-cell--7-col-phone {\n      width: 100%; }\n  .mdl-cell--8-col,\n  .mdl-cell--8-col-phone.mdl-cell--8-col-phone {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >\n    .mdl-cell--8-col-phone.mdl-cell--8-col-phone {\n      width: 100%; }\n  .mdl-cell--9-col,\n  .mdl-cell--9-col-phone.mdl-cell--9-col-phone {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >\n    .mdl-cell--9-col-phone.mdl-cell--9-col-phone {\n      width: 100%; }\n  .mdl-cell--10-col,\n  .mdl-cell--10-col-phone.mdl-cell--10-col-phone {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >\n    .mdl-cell--10-col-phone.mdl-cell--10-col-phone {\n      width: 100%; }\n  .mdl-cell--11-col,\n  .mdl-cell--11-col-phone.mdl-cell--11-col-phone {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >\n    .mdl-cell--11-col-phone.mdl-cell--11-col-phone {\n      width: 100%; }\n  .mdl-cell--12-col,\n  .mdl-cell--12-col-phone.mdl-cell--12-col-phone {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >\n    .mdl-cell--12-col-phone.mdl-cell--12-col-phone {\n      width: 100%; }\n  .mdl-cell--1-offset,\n  .mdl-cell--1-offset-phone.mdl-cell--1-offset-phone {\n    margin-left: calc(25% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--1-offset-phone.mdl-cell--1-offset-phone {\n      margin-left: 25%; }\n  .mdl-cell--2-offset,\n  .mdl-cell--2-offset-phone.mdl-cell--2-offset-phone {\n    margin-left: calc(50% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--2-offset-phone.mdl-cell--2-offset-phone {\n      margin-left: 50%; }\n  .mdl-cell--3-offset,\n  .mdl-cell--3-offset-phone.mdl-cell--3-offset-phone {\n    margin-left: calc(75% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--3-offset-phone.mdl-cell--3-offset-phone {\n      margin-left: 75%; } }\n\n@media (min-width: 480px) and (max-width: 839px) {\n  .mdl-grid {\n    padding: 8px; }\n  .mdl-cell {\n    margin: 8px;\n    width: calc(50% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell {\n      width: 50%; }\n  .mdl-cell--hide-tablet {\n    display: none !important; }\n  .mdl-cell--order-1-tablet.mdl-cell--order-1-tablet {\n    order: 1; }\n  .mdl-cell--order-2-tablet.mdl-cell--order-2-tablet {\n    order: 2; }\n  .mdl-cell--order-3-tablet.mdl-cell--order-3-tablet {\n    order: 3; }\n  .mdl-cell--order-4-tablet.mdl-cell--order-4-tablet {\n    order: 4; }\n  .mdl-cell--order-5-tablet.mdl-cell--order-5-tablet {\n    order: 5; }\n  .mdl-cell--order-6-tablet.mdl-cell--order-6-tablet {\n    order: 6; }\n  .mdl-cell--order-7-tablet.mdl-cell--order-7-tablet {\n    order: 7; }\n  .mdl-cell--order-8-tablet.mdl-cell--order-8-tablet {\n    order: 8; }\n  .mdl-cell--order-9-tablet.mdl-cell--order-9-tablet {\n    order: 9; }\n  .mdl-cell--order-10-tablet.mdl-cell--order-10-tablet {\n    order: 10; }\n  .mdl-cell--order-11-tablet.mdl-cell--order-11-tablet {\n    order: 11; }\n  .mdl-cell--order-12-tablet.mdl-cell--order-12-tablet {\n    order: 12; }\n  .mdl-cell--1-col,\n  .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {\n    width: calc(12.5% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >\n    .mdl-cell--1-col-tablet.mdl-cell--1-col-tablet {\n      width: 12.5%; }\n  .mdl-cell--2-col,\n  .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {\n    width: calc(25% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >\n    .mdl-cell--2-col-tablet.mdl-cell--2-col-tablet {\n      width: 25%; }\n  .mdl-cell--3-col,\n  .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {\n    width: calc(37.5% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >\n    .mdl-cell--3-col-tablet.mdl-cell--3-col-tablet {\n      width: 37.5%; }\n  .mdl-cell--4-col,\n  .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {\n    width: calc(50% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >\n    .mdl-cell--4-col-tablet.mdl-cell--4-col-tablet {\n      width: 50%; }\n  .mdl-cell--5-col,\n  .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {\n    width: calc(62.5% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >\n    .mdl-cell--5-col-tablet.mdl-cell--5-col-tablet {\n      width: 62.5%; }\n  .mdl-cell--6-col,\n  .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {\n    width: calc(75% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >\n    .mdl-cell--6-col-tablet.mdl-cell--6-col-tablet {\n      width: 75%; }\n  .mdl-cell--7-col,\n  .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {\n    width: calc(87.5% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >\n    .mdl-cell--7-col-tablet.mdl-cell--7-col-tablet {\n      width: 87.5%; }\n  .mdl-cell--8-col,\n  .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >\n    .mdl-cell--8-col-tablet.mdl-cell--8-col-tablet {\n      width: 100%; }\n  .mdl-cell--9-col,\n  .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >\n    .mdl-cell--9-col-tablet.mdl-cell--9-col-tablet {\n      width: 100%; }\n  .mdl-cell--10-col,\n  .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >\n    .mdl-cell--10-col-tablet.mdl-cell--10-col-tablet {\n      width: 100%; }\n  .mdl-cell--11-col,\n  .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >\n    .mdl-cell--11-col-tablet.mdl-cell--11-col-tablet {\n      width: 100%; }\n  .mdl-cell--12-col,\n  .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >\n    .mdl-cell--12-col-tablet.mdl-cell--12-col-tablet {\n      width: 100%; }\n  .mdl-cell--1-offset,\n  .mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet {\n    margin-left: calc(12.5% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--1-offset-tablet.mdl-cell--1-offset-tablet {\n      margin-left: 12.5%; }\n  .mdl-cell--2-offset,\n  .mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet {\n    margin-left: calc(25% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--2-offset-tablet.mdl-cell--2-offset-tablet {\n      margin-left: 25%; }\n  .mdl-cell--3-offset,\n  .mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet {\n    margin-left: calc(37.5% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--3-offset-tablet.mdl-cell--3-offset-tablet {\n      margin-left: 37.5%; }\n  .mdl-cell--4-offset,\n  .mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet {\n    margin-left: calc(50% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--4-offset-tablet.mdl-cell--4-offset-tablet {\n      margin-left: 50%; }\n  .mdl-cell--5-offset,\n  .mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet {\n    margin-left: calc(62.5% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--5-offset-tablet.mdl-cell--5-offset-tablet {\n      margin-left: 62.5%; }\n  .mdl-cell--6-offset,\n  .mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet {\n    margin-left: calc(75% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--6-offset-tablet.mdl-cell--6-offset-tablet {\n      margin-left: 75%; }\n  .mdl-cell--7-offset,\n  .mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet {\n    margin-left: calc(87.5% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--7-offset-tablet.mdl-cell--7-offset-tablet {\n      margin-left: 87.5%; } }\n\n@media (min-width: 840px) {\n  .mdl-grid {\n    padding: 8px; }\n  .mdl-cell {\n    margin: 8px;\n    width: calc(33.3333333333% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell {\n      width: 33.3333333333%; }\n  .mdl-cell--hide-desktop {\n    display: none !important; }\n  .mdl-cell--order-1-desktop.mdl-cell--order-1-desktop {\n    order: 1; }\n  .mdl-cell--order-2-desktop.mdl-cell--order-2-desktop {\n    order: 2; }\n  .mdl-cell--order-3-desktop.mdl-cell--order-3-desktop {\n    order: 3; }\n  .mdl-cell--order-4-desktop.mdl-cell--order-4-desktop {\n    order: 4; }\n  .mdl-cell--order-5-desktop.mdl-cell--order-5-desktop {\n    order: 5; }\n  .mdl-cell--order-6-desktop.mdl-cell--order-6-desktop {\n    order: 6; }\n  .mdl-cell--order-7-desktop.mdl-cell--order-7-desktop {\n    order: 7; }\n  .mdl-cell--order-8-desktop.mdl-cell--order-8-desktop {\n    order: 8; }\n  .mdl-cell--order-9-desktop.mdl-cell--order-9-desktop {\n    order: 9; }\n  .mdl-cell--order-10-desktop.mdl-cell--order-10-desktop {\n    order: 10; }\n  .mdl-cell--order-11-desktop.mdl-cell--order-11-desktop {\n    order: 11; }\n  .mdl-cell--order-12-desktop.mdl-cell--order-12-desktop {\n    order: 12; }\n  .mdl-cell--1-col,\n  .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {\n    width: calc(8.3333333333% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--1-col, .mdl-grid--no-spacing >\n    .mdl-cell--1-col-desktop.mdl-cell--1-col-desktop {\n      width: 8.3333333333%; }\n  .mdl-cell--2-col,\n  .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {\n    width: calc(16.6666666667% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--2-col, .mdl-grid--no-spacing >\n    .mdl-cell--2-col-desktop.mdl-cell--2-col-desktop {\n      width: 16.6666666667%; }\n  .mdl-cell--3-col,\n  .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {\n    width: calc(25% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--3-col, .mdl-grid--no-spacing >\n    .mdl-cell--3-col-desktop.mdl-cell--3-col-desktop {\n      width: 25%; }\n  .mdl-cell--4-col,\n  .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {\n    width: calc(33.3333333333% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--4-col, .mdl-grid--no-spacing >\n    .mdl-cell--4-col-desktop.mdl-cell--4-col-desktop {\n      width: 33.3333333333%; }\n  .mdl-cell--5-col,\n  .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {\n    width: calc(41.6666666667% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--5-col, .mdl-grid--no-spacing >\n    .mdl-cell--5-col-desktop.mdl-cell--5-col-desktop {\n      width: 41.6666666667%; }\n  .mdl-cell--6-col,\n  .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {\n    width: calc(50% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--6-col, .mdl-grid--no-spacing >\n    .mdl-cell--6-col-desktop.mdl-cell--6-col-desktop {\n      width: 50%; }\n  .mdl-cell--7-col,\n  .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {\n    width: calc(58.3333333333% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--7-col, .mdl-grid--no-spacing >\n    .mdl-cell--7-col-desktop.mdl-cell--7-col-desktop {\n      width: 58.3333333333%; }\n  .mdl-cell--8-col,\n  .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {\n    width: calc(66.6666666667% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--8-col, .mdl-grid--no-spacing >\n    .mdl-cell--8-col-desktop.mdl-cell--8-col-desktop {\n      width: 66.6666666667%; }\n  .mdl-cell--9-col,\n  .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {\n    width: calc(75% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--9-col, .mdl-grid--no-spacing >\n    .mdl-cell--9-col-desktop.mdl-cell--9-col-desktop {\n      width: 75%; }\n  .mdl-cell--10-col,\n  .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {\n    width: calc(83.3333333333% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--10-col, .mdl-grid--no-spacing >\n    .mdl-cell--10-col-desktop.mdl-cell--10-col-desktop {\n      width: 83.3333333333%; }\n  .mdl-cell--11-col,\n  .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {\n    width: calc(91.6666666667% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--11-col, .mdl-grid--no-spacing >\n    .mdl-cell--11-col-desktop.mdl-cell--11-col-desktop {\n      width: 91.6666666667%; }\n  .mdl-cell--12-col,\n  .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {\n    width: calc(100% - 16px); }\n    .mdl-grid--no-spacing > .mdl-cell--12-col, .mdl-grid--no-spacing >\n    .mdl-cell--12-col-desktop.mdl-cell--12-col-desktop {\n      width: 100%; }\n  .mdl-cell--1-offset,\n  .mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop {\n    margin-left: calc(8.3333333333% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--1-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--1-offset-desktop.mdl-cell--1-offset-desktop {\n      margin-left: 8.3333333333%; }\n  .mdl-cell--2-offset,\n  .mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop {\n    margin-left: calc(16.6666666667% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--2-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--2-offset-desktop.mdl-cell--2-offset-desktop {\n      margin-left: 16.6666666667%; }\n  .mdl-cell--3-offset,\n  .mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop {\n    margin-left: calc(25% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--3-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--3-offset-desktop.mdl-cell--3-offset-desktop {\n      margin-left: 25%; }\n  .mdl-cell--4-offset,\n  .mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop {\n    margin-left: calc(33.3333333333% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--4-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--4-offset-desktop.mdl-cell--4-offset-desktop {\n      margin-left: 33.3333333333%; }\n  .mdl-cell--5-offset,\n  .mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop {\n    margin-left: calc(41.6666666667% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--5-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--5-offset-desktop.mdl-cell--5-offset-desktop {\n      margin-left: 41.6666666667%; }\n  .mdl-cell--6-offset,\n  .mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop {\n    margin-left: calc(50% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--6-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--6-offset-desktop.mdl-cell--6-offset-desktop {\n      margin-left: 50%; }\n  .mdl-cell--7-offset,\n  .mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop {\n    margin-left: calc(58.3333333333% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--7-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--7-offset-desktop.mdl-cell--7-offset-desktop {\n      margin-left: 58.3333333333%; }\n  .mdl-cell--8-offset,\n  .mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop {\n    margin-left: calc(66.6666666667% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--8-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--8-offset-desktop.mdl-cell--8-offset-desktop {\n      margin-left: 66.6666666667%; }\n  .mdl-cell--9-offset,\n  .mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop {\n    margin-left: calc(75% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--9-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--9-offset-desktop.mdl-cell--9-offset-desktop {\n      margin-left: 75%; }\n  .mdl-cell--10-offset,\n  .mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop {\n    margin-left: calc(83.3333333333% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--10-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--10-offset-desktop.mdl-cell--10-offset-desktop {\n      margin-left: 83.3333333333%; }\n  .mdl-cell--11-offset,\n  .mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop {\n    margin-left: calc(91.6666666667% + 8px); }\n    .mdl-grid.mdl-grid--no-spacing > .mdl-cell--11-offset, .mdl-grid.mdl-grid--no-spacing >\n    .mdl-cell--11-offset-desktop.mdl-cell--11-offset-desktop {\n      margin-left: 91.6666666667%; } }\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* Material Design Lite */\n\n// Variables and mixins\n@import \"variables\";\n@import \"mixins\";\n\n// Resets and dependencies\n@import \"resets/resets\";\n@import \"typography/typography\";\n\n// Components\n@import \"palette/palette\";\n@import \"ripple/ripple\";\n@import \"animation/animation\";\n@import \"badge/badge\";\n@import \"button/button\";\n@import \"card/card\";\n@import \"checkbox/checkbox\";\n@import \"chip/chip\";\n@import \"data-table/data-table\";\n@import \"dialog/dialog\";\n@import \"footer/mega_footer\";\n@import \"footer/mini_footer\";\n@import \"icon-toggle/icon-toggle\";\n@import \"list/list\";\n@import \"menu/menu\";\n@import \"progress/progress\";\n@import \"layout/layout\";\n@import \"radio/radio\";\n@import \"slider/slider\";\n@import \"snackbar/snackbar\";\n@import \"spinner/spinner\";\n@import \"switch/switch\";\n@import \"tabs/tabs\";\n@import \"textfield/textfield\";\n@import \"tooltip/tooltip\";\n@import \"shadow/shadow\";\n@import \"grid/grid\";\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*------------------------------------*\\\n    $CONTENTS\n\\*------------------------------------*/\n/**\n * STYLE GUIDE VARIABLES------------------Declarations of Sass variables\n * -----Typography\n * -----Colors\n * -----Textfield\n * -----Switch\n * -----Spinner\n * -----Radio\n * -----Menu\n * -----List\n * -----Layout\n * -----Icon toggles\n * -----Footer\n * -----Column\n * -----Checkbox\n * -----Card\n * -----Button\n * -----Animation\n * -----Progress\n * -----Badge\n * -----Shadows\n * -----Grid\n * -----Data table\n * -----Dialog\n * -----Snackbar\n * -----Tooltip\n * -----Chip\n *\n * Even though all variables have the `!default` directive, most of them\n * should not be changed as they are dependent one another. This can cause\n * visual distortions (like alignment issues) that are hard to track down\n * and fix.\n */\n\n\n/* ==========  TYPOGRAPHY  ========== */\n\n/* We're splitting fonts into \"preferred\" and \"performance\" in order to optimize\n   page loading. For important text, such as the body, we want it to load\n   immediately and not wait for the web font load, whereas for other sections,\n   such as headers and titles, we're OK with things taking a bit longer to load.\n   We do have some optional classes and parameters in the mixins, in case you\n   definitely want to make sure you're using the preferred font and don't mind\n   the performance hit.\n   We should be able to improve on this once CSS Font Loading L3 becomes more\n   widely available.\n*/\n$preferred_font: 'Roboto', 'Helvetica', 'Arial', sans-serif !default;\n$performance_font: 'Helvetica', 'Arial', sans-serif !default;\n\n/* ==========  COLORS  ========== */\n\n/**\n*\n* Material design color palettes.\n* @see http://www.google.com/design/spec/style/color.html\n*\n**/\n\n@import \"color-definitions\";\n@import \"functions\";\n\n/* ==========  IMAGES  ========== */\n$image_path: '/images' !default;\n\n/* ==========  Color & Themes  ========== */\n\n// Define whether individual color palette items should have classes created.\n// Setting this to true will remove individual color classes for each color in the palettes.\n// To improve overall performance (assuming they aren't used) by:\n// * Saving server bandwidth sending the extra classes\n// * Save client computation against the classes\n// it is RECOMMENDED you set this to true.\n$trim-color-classes: false !default;\n\n// Use color primarily for emphasis. Choose colors that fit with\n// your brand and provide good contrast between visual components.\n$color-primary: $palette-indigo-500 !default;\n$color-primary-dark: $palette-indigo-700 !default;\n$color-accent: $palette-pink-A200 !default;\n\n// Our primary is dark, so use $color-dark-contrast for overlaid text.\n$color-primary-contrast: $color-dark-contrast !default;\n// Our accent is dark, so use $color-dark-contrast for overlaid text.\n$color-accent-contrast: $color-dark-contrast !default;\n\n// Replace all colors with placeholders if we're generating a template.\n@if $styleguide-generate-template == true {\n  $color-primary: '$color-primary';\n  $color-primary-dark: '$color-primary-dark';\n  $color-accent: '$color-accent';\n  $color-primary-contrast: '$color-primary-contrast';\n  $color-accent-contrast: '$color-accent-contrast';\n}\n\n/* ==========  Typography  ========== */\n\n// We use the following default color styles: text-color-primary and\n// text-color-secondary. For light themes, use text-color-primary-inverse\n// and text-color-secondary-inverse.\n\n$text-color-primary: unquote(\"rgba(#{$color-black}, 0.87)\") !default;\n$text-link-color: unquote(\"rgb(#{$color-accent})\") !default;\n\n// Define whether to target elements directly for typographic enhancements.\n// Turning this off means you need to use mdl-* classes more often.\n// Other components may also fail to adhere to MD without these rules.\n// It is strongly recommended you leave this as true.\n\n$target-elements-directly: true !default;\n\n/* ==========  Components  ========== */\n\n/* ==========  Standard Buttons  ========== */\n\n// Default button colors.\n$button-primary-color: unquote(\"rgba(#{$palette-grey-500}, 0.20)\") !default;\n$button-secondary-color: unquote(\"rgb(#{$color-black})\") !default;\n$button-hover-color: $button-primary-color !default;\n$button-active-color: unquote(\"rgba(#{$palette-grey-500}, 0.40)\") !default;\n$button-focus-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n\n// Colored button colors.\n$button-primary-color-alt: unquote(\"rgb(#{$color-primary})\") !default;\n$button-secondary-color-alt: unquote(\"rgb(#{$color-primary-contrast})\") !default;\n$button-hover-color-alt: unquote(\"rgb(#{$color-primary})\") !default;\n$button-active-color-alt: unquote(\"rgb(#{$color-primary})\") !default;\n$button-focus-color-alt: $button-focus-color !default;\n\n// Ripple color for colored raised buttons.\n$button-ripple-color-alt: unquote(\"rgb(#{$color-primary-contrast})\") !default;\n\n// Disabled button colors.\n$button-primary-color-disabled: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n$button-secondary-color-disabled: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n\n// FAB colors and sizes.\n$button-fab-color-alt: unquote(\"rgb(#{$color-accent})\") !default;\n$button-fab-hover-color-alt: unquote(\"rgb(#{$color-accent})\") !default;\n$button-fab-active-color-alt: unquote(\"rgb(#{$color-accent})\") !default;\n$button-fab-text-color-alt: unquote(\"rgb(#{$color-accent-contrast})\") !default;\n$button-fab-ripple-color-alt: unquote(\"rgb(#{$color-accent-contrast})\") !default;\n\n// Icon button colors and sizes.\n$button-icon-color: unquote(\"rgb(#{$palette-grey-700})\") !default;\n$button-icon-focus-color: $button-focus-color !default;\n\n/* ==========  Icon Toggles  ========== */\n\n$icon-toggle-color: unquote(\"rgb(#{$palette-grey-700})\") !default;\n$icon-toggle-focus-color: $button-focus-color !default;\n$icon-toggle-checked-color: unquote(\"rgb(#{$color-primary})\") !default;\n$icon-toggle-checked-focus-color: unquote(\"rgba(#{$color-primary}, 0.26)\") !default;\n$icon-toggle-disabled-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n\n/* ==========  Radio Buttons  ========== */\n\n$radio-color: unquote(\"rgb(#{$color-primary})\") !default;\n$radio-off-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$radio-disabled-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n\n/* ==========  Ripple effect  ========== */\n\n$ripple-bg-color: unquote(\"rgb(#{$color-light-contrast})\") !default;\n\n/* ==========  Layout  ========== */\n\n$layout-nav-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n\n// Drawer\n$layout-drawer-bg-color: unquote(\"rgb(#{$palette-grey-50})\") !default;\n$layout-drawer-border-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n$layout-text-color: unquote(\"rgb(#{$palette-grey-800})\") !default;\n$layout-drawer-navigation-color: #757575 !default;\n$layout-drawer-navigation-link-active-background: unquote(\"rgb(#{$palette-grey-300})\") !default;\n$layout-drawer-navigation-link-active-color: unquote(\"rgb(#{$color-light-contrast})\") !default;\n\n// Header\n$layout-header-bg-color: unquote(\"rgb(#{$color-primary})\") !default;\n$layout-header-text-color: unquote(\"rgb(#{$color-primary-contrast})\") !default;\n$layout-header-nav-hover-color: unquote(\"rgba(#{$palette-grey-700}, 0.6)\") !default;\n$layout-header-tab-text-color: unquote(\"rgba(#{$color-primary-contrast}, 0.6)\") !default;\n\n// Tabs\n$layout-header-tab-highlight: unquote(\"rgb(#{$color-accent})\") !default;\n\n/* ==========  Content Tabs  ========== */\n\n$tab-highlight-color: unquote(\"rgb(#{$color-primary})\") !default;\n$tab-text-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$tab-active-text-color: unquote(\"rgba(#{$color-black}, 0.87)\") !default;\n$tab-border-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n\n/* ==========  Checkboxes  ========== */\n\n$checkbox-color: unquote(\"rgb(#{$color-primary})\") !default;\n$checkbox-off-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$checkbox-disabled-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n$checkbox-focus-color: unquote(\"rgba(#{$color-primary}, 0.26)\") !default;\n$checkbox-image-path: $image_path;\n\n/* ==========  Switches  ========== */\n\n$switch-color: unquote(\"rgb(#{$color-primary})\") !default;\n$switch-faded-color: unquote(\"rgba(#{$color-primary}, 0.26)\") !default;\n$switch-thumb-color: $switch-color !default;\n$switch-track-color: unquote(\"rgba(#{$color-primary}, 0.5)\") !default;\n\n$switch-off-thumb-color: unquote(\"rgb(#{$palette-grey-50})\") !default;\n$switch-off-track-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n$switch-disabled-thumb-color: unquote(\"rgb(#{$palette-grey-400})\") !default;\n$switch-disabled-track-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n\n/* ==========  Spinner  ========== */\n\n$spinner-color-1: unquote(\"rgb(#{$palette-blue-400})\") !default;\n$spinner-color-2: unquote(\"rgb(#{$palette-red-500})\") !default;\n$spinner-color-3: unquote(\"rgb(#{$palette-yellow-600})\") !default;\n$spinner-color-4: unquote(\"rgb(#{$palette-green-500})\") !default;\n\n$spinner-single-color: unquote(\"rgb(#{$color-primary})\") !default;\n\n/* ==========  Text fields  ========== */\n\n$input-text-background-color: transparent !default;\n$input-text-label-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n$input-text-bottom-border-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n$input-text-highlight-color: unquote(\"rgb(#{$color-primary})\") !default;\n$input-text-disabled-color: $input-text-bottom-border-color !default;\n$input-text-disabled-text-color: $input-text-label-color !default;\n$input-text-error-color: unquote(\"rgb(#{$palette-red-A700})\") !default;\n\n/* ==========  Card  ========== */\n\n$card-background-color: unquote(\"rgb(#{$color-white})\") !default;\n$card-text-color: unquote(\"rgb(#{$color-black})\") !default;\n$card-image-placeholder-color: unquote(\"rgb(#{$color-accent})\") !default;\n$card-supporting-text-text-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$card-border-color: rgba(0,0,0,0.1) !default;\n$card-subtitle-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n\n/* ==========  Sliders ========== */\n\n$range-bg-color: unquote(\"rgba(#{$color-black}, 0.26)\") !default;\n$range-color: unquote(\"rgb(#{$color-primary})\") !default;\n$range-faded-color: unquote(\"rgba(#{$color-primary}, 0.26)\") !default;\n$range-bg-focus-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n\n/* ========== Progress ========== */\n$progress-main-color: unquote(\"rgb(#{$color-primary})\") !default;\n$progress-secondary-color: unquote(\"rgba(#{$color-primary-contrast}, 0.7)\") !default;\n$progress-fallback-buffer-color: unquote(\"rgba(#{$color-primary-contrast}, 0.9)\") !default;\n$progress-image-path: $image_path;\n\n/* ==========  List ========== */\n\n$list-main-text-text-color: unquote(\"rgba(#{$color-black}, 0.87)\") !default;\n$list-supporting-text-text-color: unquote(\"rgba(#{$color-black}, 0.54)\") !default;\n$list-icon-color: unquote(\"rgb(#{$palette-grey-600})\") !default;\n$list-avatar-color: white !default;\n\n/* ==========  Item ========== */\n\n// Default Item Colors\n$default-item-text-color: unquote(\"rgba(#{$color-black}, 0.87)\") !default;\n$default-item-outline-color: unquote(\"rgb(#{$palette-grey-400})\") !default;\n$default-item-hover-bg-color: unquote(\"rgb(#{$palette-grey-200})\") !default;\n$default-item-focus-bg-color: unquote(\"rgb(#{$palette-grey-200})\") !default;\n$default-item-active-bg-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n$default-item-divider-color: unquote(\"rgba(#{$color-black}, 0.12)\") !default;\n\n// Disabled Button Colors\n$disabled-item-text-color: unquote(\"rgb(#{$palette-grey-400})\") !default;\n\n/* ==========  Dropdown menu ========== */\n\n$default-dropdown-bg-color: unquote(\"rgb(#{$color-white})\") !default;\n\n/* ==========  Tooltips  ========== */\n\n$tooltip-text-color: unquote(\"rgb(#{$color-white})\") !default;\n$tooltip-background-color: unquote(\"rgba(#{$palette-grey-700}, 0.9)\") !default;\n\n/* ==========  Footer  ========== */\n\n$footer-bg-color: unquote(\"rgb(#{$palette-grey-800})\") !default;\n$footer-color: unquote(\"rgb(#{$palette-grey-500})\") !default;\n$footer-heading-color: unquote(\"rgb(#{$palette-grey-300})\") !default;\n$footer-button-fill-color: $footer-color !default;\n$footer-underline-color: $footer-color !default;\n\n\n/* TEXTFIELD */\n\n$input-text-font-size: 16px !default;\n$input-text-width: 100% !default;\n$input-text-padding: 4px !default;\n$input-text-vertical-spacing: 20px !default;\n\n$input-text-button-size: 32px !default;\n$input-text-floating-label-fontsize: 12px !default;\n$input-text-expandable-icon-top: 16px !default;\n\n\n/* SWITCH */\n\n$switch-label-font-size: 16px !default;\n$switch-label-height: 24px !default;\n$switch-track-height: 14px !default;\n$switch-track-length: 36px !default;\n$switch-thumb-size: 20px !default;\n$switch-track-top: ($switch-label-height - $switch-track-height) / 2 !default;\n$switch-thumb-top: ($switch-label-height - $switch-thumb-size) / 2 !default;\n$switch-ripple-size: $switch-label-height * 2 !default;\n$switch-helper-size: 8px !default;\n\n/* SPINNER */\n\n$spinner-size: 28px !default;\n$spinner-stroke-width: 3px !default;\n\n// Amount of circle the arc takes up.\n$spinner-arc-size: 270deg !default;\n// Time it takes to expand and contract arc.\n$spinner-arc-time: 1333ms !default;\n// How much the start location of the arc should rotate each time.\n$spinner-arc-start-rot: 216deg !default;\n\n$spinner-duration: 360 * $spinner-arc-time / (\n    strip-units($spinner-arc-start-rot + (360deg - $spinner-arc-size)));\n\n\n/* RADIO */\n\n$radio-label-font-size: 16px !default;\n$radio-label-height: 24px !default;\n$radio-button-size: 16px !default;\n$radio-inner-margin: $radio-button-size / 4;\n$radio-padding: 8px !default;\n$radio-top-offset: ($radio-label-height - $radio-button-size) / 2;\n$radio-ripple-size: 42px !default;\n\n\n/* MENU */\n\n$menu-expand-duration: 0.3s !default;\n$menu-fade-duration: 0.2s !default;\n\n/* LIST */\n\n$list-border: 8px !default;\n$list-min-height: 48px !default;\n$list-min-padding: 16px !default;\n$list-bottom-padding: 20px !default;\n$list-avatar-text-left-distance: 72px !default;\n$list-icon-text-left-distance: 72px !default;\n\n$list-avatar-size: 40px !default;\n$list-icon-size: 24px !default;\n\n$list-two-line-height: 72px !default;\n$list-three-line-height: 88px !default;\n\n/* LAYOUT */\n\n$layout-drawer-narrow: 240px !default;\n$layout-drawer-wide: 456px !default;\n$layout-drawer-width: $layout-drawer-narrow !default;\n\n$layout-header-icon-size: 32px !default;\n$layout-screen-size-threshold: 1024px !default;\n$layout-header-icon-margin: 24px !default;\n$layout-drawer-button-mobile-size: 32px !default;\n$layout-drawer-button-desktop-size: 48px !default;\n\n$layout-header-mobile-row-height: 56px !default;\n$layout-mobile-header-height: $layout-header-mobile-row-height;\n$layout-header-desktop-row-height: 64px !default;\n$layout-desktop-header-height: $layout-header-desktop-row-height;\n\n$layout-header-desktop-baseline: 80px !default;\n$layout-header-mobile-baseline: 72px !default;\n$layout-header-mobile-indent: 16px !default;\n$layout-header-desktop-indent: 40px !default;\n\n$layout-tab-font-size: 14px !default;\n$layout-tab-bar-height: 48px !default;\n$layout-tab-mobile-padding: 12px !default;\n$layout-tab-desktop-padding: 24px !default;\n$layout-tab-highlight-thickness: 2px !default;\n\n\n/* ICON TOGGLE */\n\n$icon-toggle-size: 32px !default;\n$icon-toggle-font-size: 24px !default;\n$icon-toggle-ripple-size: 36px !default;\n\n/* FOOTER */\n\n/*mega-footer*/\n$footer-min-padding: 16px !default;\n$footer-padding-sides: 40px !default;\n$footer-heading-font-size: 14px !default;\n$footer-heading-line-height: (1.7 * $footer-heading-font-size) !default;\n$footer-btn-size: 36px  !default;\n\n/*mini-footer*/\n$padding: 16px !default;\n$footer-heading-font-size: 24px !default;\n$footer-heading-line-height: (1.5 * $footer-heading-font-size) !default;\n$footer-btn-size: 36px !default;\n\n/* CHECKBOX */\n\n$checkbox-label-font-size: 16px !default;\n$checkbox-label-height: 24px !default;\n$checkbox-button-size: 16px !default;\n$checkbox-inner-margin: 2px !default;\n$checkbox-padding: 8px !default;\n$checkbox-top-offset:\n($checkbox-label-height - $checkbox-button-size - $checkbox-inner-margin) / 2;\n$checkbox-ripple-size: $checkbox-label-height * 1.5;\n\n/* CARD */\n\n/* Card dimensions */\n$card-width: 330px !default;\n$card-height: 200px !default;\n$card-font-size: 16px !default;\n$card-title-font-size: 24px !default;\n$card-subtitle-font-size: 14px !default;\n$card-horizontal-padding: 16px !default;\n$card-vertical-padding: 16px !default;\n\n$card-title-perspective-origin-x: 165px !default;\n$card-title-perspective-origin-y: 56px !default;\n\n$card-title-transform-origin-x: 165px !default;\n$card-title-transform-origin-y: 56px !default;\n\n$card-title-text-transform-origin-x: 149px !default;\n$card-title-text-transform-origin-y: 48px !default;\n\n$card-supporting-text-font-size: 1rem !default;\n$card-supporting-text-line-height: 18px !default;\n\n$card-actions-font-size: 16px !default;\n\n$card-title-text-font-weight: 300 !default;\n$card-z-index: 1 !default;\n\n/* Cover image */\n$card-cover-image-height: 186px !default;\n$card-background-image-url: '' !default;\n\n\n/* BUTTON */\n/**\n *\n * Dimensions\n *\n */\n$button-min-width: 64px !default;\n$button-height: 36px !default;\n$button-padding: 16px !default;\n$button-margin: 4px !default;\n$button-border-radius: 2px !default;\n\n$button-fab-size: 56px !default;\n$button-fab-size-mini: 40px !default;\n$button-fab-font-size: 24px !default;\n\n$button-icon-size: 32px !default;\n$button-icon-size-mini: 24px !default;\n\n\n/* ANIMATION */\n$animation-curve-fast-out-slow-in: cubic-bezier(0.4, 0, 0.2, 1) !default;\n$animation-curve-linear-out-slow-in: cubic-bezier(0, 0, 0.2, 1) !default;\n$animation-curve-fast-out-linear-in: cubic-bezier(0.4, 0, 1, 1) !default;\n\n$animation-curve-default: $animation-curve-fast-out-slow-in !default;\n\n\n/* PROGRESS */\n$bar-height: 4px !default;\n\n/* BADGE */\n$badge-font-size: 12px !default;\n$badge-color: unquote(\"rgb(#{$color-accent-contrast})\") !default;\n$badge-color-inverse: unquote(\"rgb(#{$color-accent})\") !default;\n$badge-background: unquote(\"rgb(#{$color-accent})\") !default;\n$badge-background-inverse: unquote(\"rgba(#{$color-accent-contrast},0.2)\") !default;\n$badge-size : 22px !default;\n$badge-padding: 2px !default;\n$badge-overlap: 12px !default;\n\n/* SHADOWS */\n\n$shadow-key-umbra-opacity: 0.2 !default;\n$shadow-key-penumbra-opacity: 0.14 !default;\n$shadow-ambient-shadow-opacity: 0.12 !default;\n\n/* GRID */\n\n$grid-desktop-columns: 12 !default;\n$grid-desktop-gutter: 16px !default;\n$grid-desktop-margin: 16px !default;\n\n$grid-desktop-breakpoint: 840px !default;\n\n$grid-tablet-columns: 8 !default;\n$grid-tablet-gutter: $grid-desktop-gutter !default;\n$grid-tablet-margin: $grid-desktop-margin !default;\n\n$grid-tablet-breakpoint: 480px !default;\n\n$grid-phone-columns: 4 !default;\n$grid-phone-gutter: $grid-desktop-gutter !default;\n$grid-phone-margin: $grid-desktop-margin !default;\n\n$grid-cell-default-columns: $grid-phone-columns !default;\n$grid-max-columns: $grid-desktop-columns !default;\n\n/* DATA TABLE */\n\n$data-table-font-size: 13px !default;\n$data-table-header-font-size: 12px !default;\n$data-table-header-sort-icon-size: 16px !default;\n\n$data-table-header-color: rgba(#000, 0.54) !default;\n$data-table-header-sorted-color: rgba(#000, 0.87) !default;\n$data-table-header-sorted-icon-hover-color: rgba(#000, 0.26) !default;\n$data-table-divider-color: rgba(#000, 0.12) !default;\n\n$data-table-hover-color: #eeeeee !default;\n$data-table-selection-color: #e0e0e0 !default;\n\n$data-table-dividers: 1px solid $data-table-divider-color !default;\n\n$data-table-row-height: 48px !default;\n$data-table-last-row-height: 56px !default;\n$data-table-header-height: 56px !default;\n\n$data-table-column-spacing: 36px !default;\n$data-table-column-padding: $data-table-column-spacing / 2;\n\n$data-table-card-header-height: 64px !default;\n$data-table-card-title-top: 20px !default;\n$data-table-card-padding: 24px !default;\n$data-table-button-padding-right: 16px !default;\n$data-table-cell-top: $data-table-card-padding / 2;\n\n/* DIALOG */\n$dialog-content-color: $card-supporting-text-text-color;\n\n/* SNACKBAR */\n\n// Hard coded since the color is not present in any palette.\n$snackbar-background-color: #323232 !default;\n$snackbar-tablet-breakpoint: $grid-tablet-breakpoint;\n$snackbar-action-color: unquote(\"rgb(#{$color-accent})\") !default;\n\n/* TOOLTIP */\n$tooltip-font-size: 10px !default;\n$tooltip-font-size-large: 14px !default;\n\n/* CHIP */\n$chip-bg-color: rgb(222, 222, 222) !default;\n$chip-bg-active-color: rgb(214, 214, 214) !default;\n$chip-height: 32px !default;\n$chip-font-size: 13px !default; \n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* ==========  Color Palettes  ========== */\n\n// Color order: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, A100, A200,\n// A400, A700.\n\n$palette-red:\n\"255,235,238\"\n\"255,205,210\"\n\"239,154,154\"\n\"229,115,115\"\n\"239,83,80\"\n\"244,67,54\"\n\"229,57,53\"\n\"211,47,47\"\n\"198,40,40\"\n\"183,28,28\"\n\"255,138,128\"\n\"255,82,82\"\n\"255,23,68\"\n\"213,0,0\";\n\n$palette-red-50: nth($palette-red, 1);\n$palette-red-100: nth($palette-red, 2);\n$palette-red-200: nth($palette-red, 3);\n$palette-red-300: nth($palette-red, 4);\n$palette-red-400: nth($palette-red, 5);\n$palette-red-500: nth($palette-red, 6);\n$palette-red-600: nth($palette-red, 7);\n$palette-red-700: nth($palette-red, 8);\n$palette-red-800: nth($palette-red, 9);\n$palette-red-900: nth($palette-red, 10);\n$palette-red-A100: nth($palette-red, 11);\n$palette-red-A200: nth($palette-red, 12);\n$palette-red-A400: nth($palette-red, 13);\n$palette-red-A700: nth($palette-red, 14);\n\n$palette-pink:\n\"252,228,236\"\n\"248,187,208\"\n\"244,143,177\"\n\"240,98,146\"\n\"236,64,122\"\n\"233,30,99\"\n\"216,27,96\"\n\"194,24,91\"\n\"173,20,87\"\n\"136,14,79\"\n\"255,128,171\"\n\"255,64,129\"\n\"245,0,87\"\n\"197,17,98\";\n\n$palette-pink-50: nth($palette-pink, 1);\n$palette-pink-100: nth($palette-pink, 2);\n$palette-pink-200: nth($palette-pink, 3);\n$palette-pink-300: nth($palette-pink, 4);\n$palette-pink-400: nth($palette-pink, 5);\n$palette-pink-500: nth($palette-pink, 6);\n$palette-pink-600: nth($palette-pink, 7);\n$palette-pink-700: nth($palette-pink, 8);\n$palette-pink-800: nth($palette-pink, 9);\n$palette-pink-900: nth($palette-pink, 10);\n$palette-pink-A100: nth($palette-pink, 11);\n$palette-pink-A200: nth($palette-pink, 12);\n$palette-pink-A400: nth($palette-pink, 13);\n$palette-pink-A700: nth($palette-pink, 14);\n\n$palette-purple:\n\"243,229,245\"\n\"225,190,231\"\n\"206,147,216\"\n\"186,104,200\"\n\"171,71,188\"\n\"156,39,176\"\n\"142,36,170\"\n\"123,31,162\"\n\"106,27,154\"\n\"74,20,140\"\n\"234,128,252\"\n\"224,64,251\"\n\"213,0,249\"\n\"170,0,255\";\n\n$palette-purple-50: nth($palette-purple, 1);\n$palette-purple-100: nth($palette-purple, 2);\n$palette-purple-200: nth($palette-purple, 3);\n$palette-purple-300: nth($palette-purple, 4);\n$palette-purple-400: nth($palette-purple, 5);\n$palette-purple-500: nth($palette-purple, 6);\n$palette-purple-600: nth($palette-purple, 7);\n$palette-purple-700: nth($palette-purple, 8);\n$palette-purple-800: nth($palette-purple, 9);\n$palette-purple-900: nth($palette-purple, 10);\n$palette-purple-A100: nth($palette-purple, 11);\n$palette-purple-A200: nth($palette-purple, 12);\n$palette-purple-A400: nth($palette-purple, 13);\n$palette-purple-A700: nth($palette-purple, 14);\n\n$palette-deep-purple:\n\"237,231,246\"\n\"209,196,233\"\n\"179,157,219\"\n\"149,117,205\"\n\"126,87,194\"\n\"103,58,183\"\n\"94,53,177\"\n\"81,45,168\"\n\"69,39,160\"\n\"49,27,146\"\n\"179,136,255\"\n\"124,77,255\"\n\"101,31,255\"\n\"98,0,234\";\n\n$palette-deep-purple-50: nth($palette-deep-purple, 1);\n$palette-deep-purple-100: nth($palette-deep-purple, 2);\n$palette-deep-purple-200: nth($palette-deep-purple, 3);\n$palette-deep-purple-300: nth($palette-deep-purple, 4);\n$palette-deep-purple-400: nth($palette-deep-purple, 5);\n$palette-deep-purple-500: nth($palette-deep-purple, 6);\n$palette-deep-purple-600: nth($palette-deep-purple, 7);\n$palette-deep-purple-700: nth($palette-deep-purple, 8);\n$palette-deep-purple-800: nth($palette-deep-purple, 9);\n$palette-deep-purple-900: nth($palette-deep-purple, 10);\n$palette-deep-purple-A100: nth($palette-deep-purple, 11);\n$palette-deep-purple-A200: nth($palette-deep-purple, 12);\n$palette-deep-purple-A400: nth($palette-deep-purple, 13);\n$palette-deep-purple-A700: nth($palette-deep-purple, 14);\n\n$palette-indigo:\n\"232,234,246\"\n\"197,202,233\"\n\"159,168,218\"\n\"121,134,203\"\n\"92,107,192\"\n\"63,81,181\"\n\"57,73,171\"\n\"48,63,159\"\n\"40,53,147\"\n\"26,35,126\"\n\"140,158,255\"\n\"83,109,254\"\n\"61,90,254\"\n\"48,79,254\";\n\n$palette-indigo-50: nth($palette-indigo, 1);\n$palette-indigo-100: nth($palette-indigo, 2);\n$palette-indigo-200: nth($palette-indigo, 3);\n$palette-indigo-300: nth($palette-indigo, 4);\n$palette-indigo-400: nth($palette-indigo, 5);\n$palette-indigo-500: nth($palette-indigo, 6);\n$palette-indigo-600: nth($palette-indigo, 7);\n$palette-indigo-700: nth($palette-indigo, 8);\n$palette-indigo-800: nth($palette-indigo, 9);\n$palette-indigo-900: nth($palette-indigo, 10);\n$palette-indigo-A100: nth($palette-indigo, 11);\n$palette-indigo-A200: nth($palette-indigo, 12);\n$palette-indigo-A400: nth($palette-indigo, 13);\n$palette-indigo-A700: nth($palette-indigo, 14);\n\n$palette-blue:\n\"227,242,253\"\n\"187,222,251\"\n\"144,202,249\"\n\"100,181,246\"\n\"66,165,245\"\n\"33,150,243\"\n\"30,136,229\"\n\"25,118,210\"\n\"21,101,192\"\n\"13,71,161\"\n\"130,177,255\"\n\"68,138,255\"\n\"41,121,255\"\n\"41,98,255\";\n\n$palette-blue-50: nth($palette-blue, 1);\n$palette-blue-100: nth($palette-blue, 2);\n$palette-blue-200: nth($palette-blue, 3);\n$palette-blue-300: nth($palette-blue, 4);\n$palette-blue-400: nth($palette-blue, 5);\n$palette-blue-500: nth($palette-blue, 6);\n$palette-blue-600: nth($palette-blue, 7);\n$palette-blue-700: nth($palette-blue, 8);\n$palette-blue-800: nth($palette-blue, 9);\n$palette-blue-900: nth($palette-blue, 10);\n$palette-blue-A100: nth($palette-blue, 11);\n$palette-blue-A200: nth($palette-blue, 12);\n$palette-blue-A400: nth($palette-blue, 13);\n$palette-blue-A700: nth($palette-blue, 14);\n\n$palette-light-blue:\n\"225,245,254\"\n\"179,229,252\"\n\"129,212,250\"\n\"79,195,247\"\n\"41,182,246\"\n\"3,169,244\"\n\"3,155,229\"\n\"2,136,209\"\n\"2,119,189\"\n\"1,87,155\"\n\"128,216,255\"\n\"64,196,255\"\n\"0,176,255\"\n\"0,145,234\";\n\n$palette-light-blue-50: nth($palette-light-blue, 1);\n$palette-light-blue-100: nth($palette-light-blue, 2);\n$palette-light-blue-200: nth($palette-light-blue, 3);\n$palette-light-blue-300: nth($palette-light-blue, 4);\n$palette-light-blue-400: nth($palette-light-blue, 5);\n$palette-light-blue-500: nth($palette-light-blue, 6);\n$palette-light-blue-600: nth($palette-light-blue, 7);\n$palette-light-blue-700: nth($palette-light-blue, 8);\n$palette-light-blue-800: nth($palette-light-blue, 9);\n$palette-light-blue-900: nth($palette-light-blue, 10);\n$palette-light-blue-A100: nth($palette-light-blue, 11);\n$palette-light-blue-A200: nth($palette-light-blue, 12);\n$palette-light-blue-A400: nth($palette-light-blue, 13);\n$palette-light-blue-A700: nth($palette-light-blue, 14);\n\n$palette-cyan:\n\"224,247,250\"\n\"178,235,242\"\n\"128,222,234\"\n\"77,208,225\"\n\"38,198,218\"\n\"0,188,212\"\n\"0,172,193\"\n\"0,151,167\"\n\"0,131,143\"\n\"0,96,100\"\n\"132,255,255\"\n\"24,255,255\"\n\"0,229,255\"\n\"0,184,212\";\n\n$palette-cyan-50: nth($palette-cyan, 1);\n$palette-cyan-100: nth($palette-cyan, 2);\n$palette-cyan-200: nth($palette-cyan, 3);\n$palette-cyan-300: nth($palette-cyan, 4);\n$palette-cyan-400: nth($palette-cyan, 5);\n$palette-cyan-500: nth($palette-cyan, 6);\n$palette-cyan-600: nth($palette-cyan, 7);\n$palette-cyan-700: nth($palette-cyan, 8);\n$palette-cyan-800: nth($palette-cyan, 9);\n$palette-cyan-900: nth($palette-cyan, 10);\n$palette-cyan-A100: nth($palette-cyan, 11);\n$palette-cyan-A200: nth($palette-cyan, 12);\n$palette-cyan-A400: nth($palette-cyan, 13);\n$palette-cyan-A700: nth($palette-cyan, 14);\n\n$palette-teal:\n\"224,242,241\"\n\"178,223,219\"\n\"128,203,196\"\n\"77,182,172\"\n\"38,166,154\"\n\"0,150,136\"\n\"0,137,123\"\n\"0,121,107\"\n\"0,105,92\"\n\"0,77,64\"\n\"167,255,235\"\n\"100,255,218\"\n\"29,233,182\"\n\"0,191,165\";\n\n$palette-teal-50: nth($palette-teal, 1);\n$palette-teal-100: nth($palette-teal, 2);\n$palette-teal-200: nth($palette-teal, 3);\n$palette-teal-300: nth($palette-teal, 4);\n$palette-teal-400: nth($palette-teal, 5);\n$palette-teal-500: nth($palette-teal, 6);\n$palette-teal-600: nth($palette-teal, 7);\n$palette-teal-700: nth($palette-teal, 8);\n$palette-teal-800: nth($palette-teal, 9);\n$palette-teal-900: nth($palette-teal, 10);\n$palette-teal-A100: nth($palette-teal, 11);\n$palette-teal-A200: nth($palette-teal, 12);\n$palette-teal-A400: nth($palette-teal, 13);\n$palette-teal-A700: nth($palette-teal, 14);\n\n$palette-green:\n\"232,245,233\"\n\"200,230,201\"\n\"165,214,167\"\n\"129,199,132\"\n\"102,187,106\"\n\"76,175,80\"\n\"67,160,71\"\n\"56,142,60\"\n\"46,125,50\"\n\"27,94,32\"\n\"185,246,202\"\n\"105,240,174\"\n\"0,230,118\"\n\"0,200,83\";\n\n$palette-green-50: nth($palette-green, 1);\n$palette-green-100: nth($palette-green, 2);\n$palette-green-200: nth($palette-green, 3);\n$palette-green-300: nth($palette-green, 4);\n$palette-green-400: nth($palette-green, 5);\n$palette-green-500: nth($palette-green, 6);\n$palette-green-600: nth($palette-green, 7);\n$palette-green-700: nth($palette-green, 8);\n$palette-green-800: nth($palette-green, 9);\n$palette-green-900: nth($palette-green, 10);\n$palette-green-A100: nth($palette-green, 11);\n$palette-green-A200: nth($palette-green, 12);\n$palette-green-A400: nth($palette-green, 13);\n$palette-green-A700: nth($palette-green, 14);\n\n$palette-light-green:\n\"241,248,233\"\n\"220,237,200\"\n\"197,225,165\"\n\"174,213,129\"\n\"156,204,101\"\n\"139,195,74\"\n\"124,179,66\"\n\"104,159,56\"\n\"85,139,47\"\n\"51,105,30\"\n\"204,255,144\"\n\"178,255,89\"\n\"118,255,3\"\n\"100,221,23\";\n\n$palette-light-green-50: nth($palette-light-green, 1);\n$palette-light-green-100: nth($palette-light-green, 2);\n$palette-light-green-200: nth($palette-light-green, 3);\n$palette-light-green-300: nth($palette-light-green, 4);\n$palette-light-green-400: nth($palette-light-green, 5);\n$palette-light-green-500: nth($palette-light-green, 6);\n$palette-light-green-600: nth($palette-light-green, 7);\n$palette-light-green-700: nth($palette-light-green, 8);\n$palette-light-green-800: nth($palette-light-green, 9);\n$palette-light-green-900: nth($palette-light-green, 10);\n$palette-light-green-A100: nth($palette-light-green, 11);\n$palette-light-green-A200: nth($palette-light-green, 12);\n$palette-light-green-A400: nth($palette-light-green, 13);\n$palette-light-green-A700: nth($palette-light-green, 14);\n\n$palette-lime:\n\"249,251,231\"\n\"240,244,195\"\n\"230,238,156\"\n\"220,231,117\"\n\"212,225,87\"\n\"205,220,57\"\n\"192,202,51\"\n\"175,180,43\"\n\"158,157,36\"\n\"130,119,23\"\n\"244,255,129\"\n\"238,255,65\"\n\"198,255,0\"\n\"174,234,0\";\n\n$palette-lime-50: nth($palette-lime, 1);\n$palette-lime-100: nth($palette-lime, 2);\n$palette-lime-200: nth($palette-lime, 3);\n$palette-lime-300: nth($palette-lime, 4);\n$palette-lime-400: nth($palette-lime, 5);\n$palette-lime-500: nth($palette-lime, 6);\n$palette-lime-600: nth($palette-lime, 7);\n$palette-lime-700: nth($palette-lime, 8);\n$palette-lime-800: nth($palette-lime, 9);\n$palette-lime-900: nth($palette-lime, 10);\n$palette-lime-A100: nth($palette-lime, 11);\n$palette-lime-A200: nth($palette-lime, 12);\n$palette-lime-A400: nth($palette-lime, 13);\n$palette-lime-A700: nth($palette-lime, 14);\n\n$palette-yellow:\n\"255,253,231\"\n\"255,249,196\"\n\"255,245,157\"\n\"255,241,118\"\n\"255,238,88\"\n\"255,235,59\"\n\"253,216,53\"\n\"251,192,45\"\n\"249,168,37\"\n\"245,127,23\"\n\"255,255,141\"\n\"255,255,0\"\n\"255,234,0\"\n\"255,214,0\";\n\n$palette-yellow-50: nth($palette-yellow, 1);\n$palette-yellow-100: nth($palette-yellow, 2);\n$palette-yellow-200: nth($palette-yellow, 3);\n$palette-yellow-300: nth($palette-yellow, 4);\n$palette-yellow-400: nth($palette-yellow, 5);\n$palette-yellow-500: nth($palette-yellow, 6);\n$palette-yellow-600: nth($palette-yellow, 7);\n$palette-yellow-700: nth($palette-yellow, 8);\n$palette-yellow-800: nth($palette-yellow, 9);\n$palette-yellow-900: nth($palette-yellow, 10);\n$palette-yellow-A100: nth($palette-yellow, 11);\n$palette-yellow-A200: nth($palette-yellow, 12);\n$palette-yellow-A400: nth($palette-yellow, 13);\n$palette-yellow-A700: nth($palette-yellow, 14);\n\n$palette-amber:\n\"255,248,225\"\n\"255,236,179\"\n\"255,224,130\"\n\"255,213,79\"\n\"255,202,40\"\n\"255,193,7\"\n\"255,179,0\"\n\"255,160,0\"\n\"255,143,0\"\n\"255,111,0\"\n\"255,229,127\"\n\"255,215,64\"\n\"255,196,0\"\n\"255,171,0\";\n\n$palette-amber-50: nth($palette-amber, 1);\n$palette-amber-100: nth($palette-amber, 2);\n$palette-amber-200: nth($palette-amber, 3);\n$palette-amber-300: nth($palette-amber, 4);\n$palette-amber-400: nth($palette-amber, 5);\n$palette-amber-500: nth($palette-amber, 6);\n$palette-amber-600: nth($palette-amber, 7);\n$palette-amber-700: nth($palette-amber, 8);\n$palette-amber-800: nth($palette-amber, 9);\n$palette-amber-900: nth($palette-amber, 10);\n$palette-amber-A100: nth($palette-amber, 11);\n$palette-amber-A200: nth($palette-amber, 12);\n$palette-amber-A400: nth($palette-amber, 13);\n$palette-amber-A700: nth($palette-amber, 14);\n\n$palette-orange:\n\"255,243,224\"\n\"255,224,178\"\n\"255,204,128\"\n\"255,183,77\"\n\"255,167,38\"\n\"255,152,0\"\n\"251,140,0\"\n\"245,124,0\"\n\"239,108,0\"\n\"230,81,0\"\n\"255,209,128\"\n\"255,171,64\"\n\"255,145,0\"\n\"255,109,0\";\n\n$palette-orange-50: nth($palette-orange, 1);\n$palette-orange-100: nth($palette-orange, 2);\n$palette-orange-200: nth($palette-orange, 3);\n$palette-orange-300: nth($palette-orange, 4);\n$palette-orange-400: nth($palette-orange, 5);\n$palette-orange-500: nth($palette-orange, 6);\n$palette-orange-600: nth($palette-orange, 7);\n$palette-orange-700: nth($palette-orange, 8);\n$palette-orange-800: nth($palette-orange, 9);\n$palette-orange-900: nth($palette-orange, 10);\n$palette-orange-A100: nth($palette-orange, 11);\n$palette-orange-A200: nth($palette-orange, 12);\n$palette-orange-A400: nth($palette-orange, 13);\n$palette-orange-A700: nth($palette-orange, 14);\n\n$palette-deep-orange:\n\"251,233,231\"\n\"255,204,188\"\n\"255,171,145\"\n\"255,138,101\"\n\"255,112,67\"\n\"255,87,34\"\n\"244,81,30\"\n\"230,74,25\"\n\"216,67,21\"\n\"191,54,12\"\n\"255,158,128\"\n\"255,110,64\"\n\"255,61,0\"\n\"221,44,0\";\n\n$palette-deep-orange-50: nth($palette-deep-orange, 1);\n$palette-deep-orange-100: nth($palette-deep-orange, 2);\n$palette-deep-orange-200: nth($palette-deep-orange, 3);\n$palette-deep-orange-300: nth($palette-deep-orange, 4);\n$palette-deep-orange-400: nth($palette-deep-orange, 5);\n$palette-deep-orange-500: nth($palette-deep-orange, 6);\n$palette-deep-orange-600: nth($palette-deep-orange, 7);\n$palette-deep-orange-700: nth($palette-deep-orange, 8);\n$palette-deep-orange-800: nth($palette-deep-orange, 9);\n$palette-deep-orange-900: nth($palette-deep-orange, 10);\n$palette-deep-orange-A100: nth($palette-deep-orange, 11);\n$palette-deep-orange-A200: nth($palette-deep-orange, 12);\n$palette-deep-orange-A400: nth($palette-deep-orange, 13);\n$palette-deep-orange-A700: nth($palette-deep-orange, 14);\n\n\n// Color order: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900.\n\n$palette-brown:\n\"239,235,233\"\n\"215,204,200\"\n\"188,170,164\"\n\"161,136,127\"\n\"141,110,99\"\n\"121,85,72\"\n\"109,76,65\"\n\"93,64,55\"\n\"78,52,46\"\n\"62,39,35\";\n\n$palette-brown-50: nth($palette-brown, 1);\n$palette-brown-100: nth($palette-brown, 2);\n$palette-brown-200: nth($palette-brown, 3);\n$palette-brown-300: nth($palette-brown, 4);\n$palette-brown-400: nth($palette-brown, 5);\n$palette-brown-500: nth($palette-brown, 6);\n$palette-brown-600: nth($palette-brown, 7);\n$palette-brown-700: nth($palette-brown, 8);\n$palette-brown-800: nth($palette-brown, 9);\n$palette-brown-900: nth($palette-brown, 10);\n\n$palette-grey:\n\"250,250,250\"\n\"245,245,245\"\n\"238,238,238\"\n\"224,224,224\"\n\"189,189,189\"\n\"158,158,158\"\n\"117,117,117\"\n\"97,97,97\"\n\"66,66,66\"\n\"33,33,33\";\n\n$palette-grey-50: nth($palette-grey, 1);\n$palette-grey-100: nth($palette-grey, 2);\n$palette-grey-200: nth($palette-grey, 3);\n$palette-grey-300: nth($palette-grey, 4);\n$palette-grey-400: nth($palette-grey, 5);\n$palette-grey-500: nth($palette-grey, 6);\n$palette-grey-600: nth($palette-grey, 7);\n$palette-grey-700: nth($palette-grey, 8);\n$palette-grey-800: nth($palette-grey, 9);\n$palette-grey-900: nth($palette-grey, 10);\n\n$palette-blue-grey:\n\"236,239,241\"\n\"207,216,220\"\n\"176,190,197\"\n\"144,164,174\"\n\"120,144,156\"\n\"96,125,139\"\n\"84,110,122\"\n\"69,90,100\"\n\"55,71,79\"\n\"38,50,56\";\n\n$palette-blue-grey-50: nth($palette-blue-grey, 1);\n$palette-blue-grey-100: nth($palette-blue-grey, 2);\n$palette-blue-grey-200: nth($palette-blue-grey, 3);\n$palette-blue-grey-300: nth($palette-blue-grey, 4);\n$palette-blue-grey-400: nth($palette-blue-grey, 5);\n$palette-blue-grey-500: nth($palette-blue-grey, 6);\n$palette-blue-grey-600: nth($palette-blue-grey, 7);\n$palette-blue-grey-700: nth($palette-blue-grey, 8);\n$palette-blue-grey-800: nth($palette-blue-grey, 9);\n$palette-blue-grey-900: nth($palette-blue-grey, 10);\n\n$color-black: \"0,0,0\";\n$color-white: \"255,255,255\";\n\n\n/* colors.scss */\n$styleguide-generate-template: false !default;\n\n// The two possible colors for overlayed text.\n$color-dark-contrast: $color-white !default;\n$color-light-contrast: $color-black !default;\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@function strip-units($number) {\n  @return $number / ($number * 0 + 1);\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* Typography */\n\n@mixin typo-preferred-font($usePreferred: true) {\n  @if $usePreferred {\n    font-family: $preferred_font;\n  }\n}\n\n@mixin typo-display-4($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 112px;\n  font-weight: 300;\n  line-height: 1;\n  letter-spacing: -0.04em;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-3($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 56px;\n  font-weight: 400;\n  line-height: 1.35;\n  letter-spacing: -0.02em;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-2($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 45px;\n  font-weight: 400;\n  line-height: 48px;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-display-1($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 34px;\n  font-weight: 400;\n  line-height: 40px;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-headline($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 24px;\n  font-weight: 400;\n  line-height: 32px;\n  -moz-osx-font-smoothing: grayscale;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-title($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 20px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0.02em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-subhead($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0.04em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-subhead-2($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 16px;\n  font-weight: 400;\n  line-height: 28px;\n  letter-spacing: 0.04em;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-body-2($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  @if $usePreferred {\n    font-weight: 500;\n  } @else {\n    font-weight: bold;\n  }\n  line-height: 24px;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-body-1($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 24px;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-caption($colorContrast: false, $usePreferred: false) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 12px;\n  font-weight: 400;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-blockquote($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  position: relative;\n  font-size: 24px;\n  font-weight: 300;\n  font-style: italic;\n  line-height: 1.35;\n  letter-spacing: 0.08em;\n\n  &:before {\n    position: absolute;\n    left: -0.5em;\n    content: '“';\n  }\n\n  &:after {\n    content: '”';\n    margin-left: -0.05em;\n  }\n\n  @if $colorContrast {\n    opacity: 0.54;\n  }\n}\n\n@mixin typo-menu($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 500;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-button($colorContrast: false, $usePreferred: true) {\n  @include typo-preferred-font($usePreferred);\n  font-size: 14px;\n  font-weight: 500;\n  text-transform: uppercase;\n  line-height: 1;\n  letter-spacing: 0;\n\n  @if $colorContrast {\n    opacity: 0.87;\n  }\n}\n\n@mixin typo-icon() {\n  font-family: 'Material Icons';\n  font-weight: normal;\n  font-style: normal;\n  font-size: 24px;\n  line-height: 1;\n  letter-spacing: normal;\n  text-transform: none;\n  display: inline-block;\n  word-wrap: normal;\n  font-feature-settings: 'liga';\n  -webkit-font-feature-settings: 'liga';\n  -webkit-font-smoothing: antialiased;\n}\n\n/* Shadows */\n\n// Focus shadow mixin.\n@mixin focus-shadow() {\n  box-shadow: 0 0 8px rgba(0,0,0,.18),0 8px 16px rgba(0,0,0,.36);\n}\n\n@mixin shadow-2dp() {\n  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 1px -2px rgba(0, 0, 0, $shadow-key-umbra-opacity),\n              0 1px 5px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity);\n}\n@mixin shadow-3dp() {\n  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 3px -2px rgba(0, 0, 0, $shadow-key-umbra-opacity),\n              0 1px 8px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity);\n}\n@mixin shadow-4dp() {\n  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 1px 10px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 2px 4px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n@mixin shadow-6dp() {\n  box-shadow: 0 6px 10px 0 rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 1px 18px 0 rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 3px 5px -1px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n@mixin shadow-8dp() {\n  box-shadow: 0 8px 10px 1px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 3px 14px 2px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 5px 5px -3px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n@mixin shadow-16dp() {\n  box-shadow: 0 16px 24px 2px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0  6px 30px 5px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0  8px 10px -5px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n@mixin shadow-24dp() {\n  box-shadow: 0  9px 46px  8px rgba(0, 0, 0, $shadow-key-penumbra-opacity),\n              0 11px 15px -7px rgba(0, 0, 0, $shadow-ambient-shadow-opacity),\n              0 24px 38px  3px rgba(0, 0, 0, $shadow-key-umbra-opacity);\n}\n\n/* Animations */\n\n@mixin material-animation-fast-out-slow-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-fast-out-slow-in;\n}\n\n@mixin material-animation-linear-out-slow-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-linear-out-slow-in;\n}\n\n@mixin material-animation-fast-out-linear-in($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-fast-out-linear-in;\n}\n\n@mixin material-animation-default($duration:0.2s) {\n  transition-duration: $duration;\n  transition-timing-function: $animation-curve-default;\n}\n\n/* Dialog */\n\n@mixin dialog-width($units:5) {\n  @if(type_of($units) != 'number') {\n    @error \"The unit given to dialog-width should be a number.\";\n  }\n  // 56dp is the base unit width for Dialogs.\n  // With 5 units being the number of units for a mobile device.\n  // https://goo.gl/sK2O5o\n  width: $units * 56px;\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"h5bp\";\n@import \"mobile\";\n\n/*\n * Make html take up the entire screen\n * Then set touch-action to avoid touch delay on mobile IE\n */\nhtml {\n  width: 100%;\n  height: 100%;\n  -ms-touch-action: manipulation;\n  touch-action: manipulation;\n}\n\n/*\n* Make body take up the entire screen\n* Remove body margin so layout containers don't cause extra overflow.\n*/\nbody {\n  width: 100%;\n  min-height: 100%;\n  margin: 0;\n}\n\n/*\n * Main display reset for IE support.\n * Source: http://weblog.west-wind.com/posts/2015/Jan/12/main-HTML5-Tag-not-working-in-Internet-Explorer-91011\n */\nmain {\n  display: block;\n}\n\n/*\n* Apply no display to elements with the hidden attribute.\n* IE 9 and 10 support.\n*/\n*[hidden] {\n  display: none !important;\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n\n/*\n * What follows is the result of much research on cross-browser styling.\n * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,\n * Kroc Camen, and the H5BP dev community and team.\n */\n\n/* ==========================================================================\n   Base styles: opinionated defaults\n   ========================================================================== */\n\nhtml {\n    color: $text-color-primary;\n    font-size: 1em;\n    line-height: 1.4;\n}\n\n/*\n * Remove text-shadow in selection highlight:\n * https://twitter.com/miketaylr/status/12228805301\n *\n * These selection rule sets have to be separate.\n * Customize the background color to match your design.\n */\n\n::selection {\n    background: #b3d4fc;\n    text-shadow: none;\n}\n\n/*\n * A better looking default horizontal rule\n */\n\nhr {\n    display: block;\n    height: 1px;\n    border: 0;\n    border-top: 1px solid #ccc;\n    margin: 1em 0;\n    padding: 0;\n}\n\n/*\n * Remove the gap between audio, canvas, iframes,\n * images, videos and the bottom of their containers:\n * https://github.com/h5bp/html5-boilerplate/issues/440\n */\n\naudio,\ncanvas,\niframe,\nimg,\nsvg,\nvideo {\n    vertical-align: middle;\n}\n\n/*\n * Remove default fieldset styles.\n */\n\nfieldset {\n    border: 0;\n    margin: 0;\n    padding: 0;\n}\n\n/*\n * Allow only vertical resizing of textareas.\n */\n\ntextarea {\n    resize: vertical;\n}\n\n/* ==========================================================================\n   Browser Upgrade Prompt\n   ========================================================================== */\n\n.browserupgrade {\n    margin: 0.2em 0;\n    background: #ccc;\n    color: #000;\n    padding: 0.2em 0;\n}\n\n/* ==========================================================================\n   Author's custom styles\n   ========================================================================== */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* ==========================================================================\n   Helper classes\n   ========================================================================== */\n\n/*\n * Hide visually and from screen readers:\n */\n\n.hidden {\n    display: none !important;\n}\n\n/*\n * Hide only visually, but have it available for screen readers:\n * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility\n */\n\n.visuallyhidden {\n    border: 0;\n    clip: rect(0 0 0 0);\n    height: 1px;\n    margin: -1px;\n    overflow: hidden;\n    padding: 0;\n    position: absolute;\n    width: 1px;\n}\n\n/*\n * Extends the .visuallyhidden class to allow the element\n * to be focusable when navigated to via the keyboard:\n * https://www.drupal.org/node/897638\n */\n\n.visuallyhidden.focusable:active,\n.visuallyhidden.focusable:focus {\n    clip: auto;\n    height: auto;\n    margin: 0;\n    overflow: visible;\n    position: static;\n    width: auto;\n}\n\n/*\n * Hide visually and from screen readers, but maintain layout\n */\n\n.invisible {\n    visibility: hidden;\n}\n\n/*\n * Clearfix: contain floats\n *\n * For modern browsers\n * 1. The space content is one way to avoid an Opera bug when the\n *    `contenteditable` attribute is included anywhere else in the document.\n *    Otherwise it causes space to appear at the top and bottom of elements\n *    that receive the `clearfix` class.\n * 2. The use of `table` rather than `block` is only necessary if using\n *    `:before` to contain the top-margins of child elements.\n */\n\n.clearfix:before,\n.clearfix:after {\n    content: \" \"; /* 1 */\n    display: table; /* 2 */\n}\n\n.clearfix:after {\n    clear: both;\n}\n\n/* ==========================================================================\n   EXAMPLE Media Queries for Responsive Design.\n   These examples override the primary ('mobile first') styles.\n   Modify as content requires.\n   ========================================================================== */\n\n@media only screen and (min-width: 35em) {\n    /* Style adjustments for viewports that meet the condition */\n}\n\n@media print,\n       (min-resolution: 1.25dppx),\n       (min-resolution: 120dpi) {\n    /* Style adjustments for high resolution devices */\n}\n\n/* ==========================================================================\n   Print styles.\n   Inlined to avoid the additional HTTP request:\n   http://www.phpied.com/delay-loading-your-print-css/\n   ========================================================================== */\n\n@media print {\n    *,\n    *:before,\n    *:after,\n    *:first-letter {\n        background: transparent !important;\n        color: #000 !important; /* Black prints faster: http://www.sanbeiji.com/archives/953 */\n        box-shadow: none !important;\n    }\n\n    a,\n    a:visited {\n        text-decoration: underline;\n    }\n\n    a[href]:after {\n        content: \" (\" attr(href) \")\";\n    }\n\n    abbr[title]:after {\n        content: \" (\" attr(title) \")\";\n    }\n\n    /*\n     * Don't show links that are fragment identifiers,\n     * or use the `javascript:` pseudo protocol\n     */\n\n    a[href^=\"#\"]:after,\n    a[href^=\"javascript:\"]:after {\n        content: \"\";\n    }\n\n    pre,\n    blockquote {\n        border: 1px solid #999;\n        page-break-inside: avoid;\n    }\n\n    /*\n     * Printing Tables:\n     * http://css-discuss.incutio.com/wiki/Printing_Tables\n     */\n\n    thead {\n        display: table-header-group;\n    }\n\n    tr,\n    img {\n        page-break-inside: avoid;\n    }\n\n    img {\n        max-width: 100% !important;\n    }\n\n    p,\n    h2,\n    h3 {\n        orphans: 3;\n        widows: 3;\n    }\n\n    h2,\n    h3 {\n        page-break-after: avoid;\n    }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/* Remove the unwanted box around FAB buttons */\n/* More info: http://goo.gl/IPwKi */\na, .mdl-accordion, .mdl-button, .mdl-card, .mdl-checkbox, .mdl-dropdown-menu,\n.mdl-icon-toggle, .mdl-item, .mdl-radio, .mdl-slider, .mdl-switch, .mdl-tabs__tab {\n\n    -webkit-tap-highlight-color: transparent;\n    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n@import \"../mixins\";\n\n@if $target-elements-directly == true {\n  html, body {\n    font-family: $performance_font;\n    font-size: 14px;\n    font-weight: 400;\n    line-height: 20px;\n  }\n\n  h1, h2, h3, h4, h5, h6, p {\n    margin: 0;\n    padding: 0;\n  }\n\n  /**\n  * Styles for HTML elements\n  */\n\n  h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {\n    @include typo-display-3($colorContrast: true);\n\n    font-size: 0.6em;\n  }\n\n  h1 {\n    @include typo-display-3;\n\n    margin-top: 24px;\n    margin-bottom: 24px;\n  }\n\n  h2 {\n    @include typo-display-2;\n\n    margin-top: 24px;\n    margin-bottom: 24px;\n  }\n\n  h3 {\n    @include typo-display-1;\n\n    margin-top: 24px;\n    margin-bottom: 24px;\n  }\n\n  h4 {\n    @include typo-headline;\n\n    margin-top: 24px;\n    margin-bottom: 16px;\n  }\n\n  h5 {\n    @include typo-title;\n\n    margin-top: 24px;\n    margin-bottom: 16px;\n  }\n\n  h6 {\n    @include typo-subhead;\n\n    margin-top: 24px;\n    margin-bottom: 16px;\n  }\n\n  p {\n    @include typo-body-1;\n\n    margin-bottom: 16px;\n  }\n\n  a {\n    color: $text-link-color;\n    font-weight: 500;\n  }\n\n  blockquote {\n    @include typo-blockquote;\n  }\n\n  mark {\n    background-color: #f4ff81;\n  }\n\n  dt {\n    font-weight: 700;\n  }\n\n  address {\n    @include typo-caption;\n\n    font-style: normal;\n  }\n\n  ul, ol {\n    @include typo-body-1;\n  }\n}\n\n/**\n * Class Name Styles\n */\n\n.mdl-typography--display-4 {\n  @include typo-display-4;\n}\n\n.mdl-typography--display-4-color-contrast {\n  @include typo-display-4($colorContrast: true);\n}\n\n.mdl-typography--display-3 {\n  @include typo-display-3;\n}\n\n.mdl-typography--display-3-color-contrast {\n  @include typo-display-3($colorContrast: true);\n}\n\n.mdl-typography--display-2 {\n  @include typo-display-2;\n}\n\n.mdl-typography--display-2-color-contrast {\n  @include typo-display-2($colorContrast: true);\n}\n\n.mdl-typography--display-1 {\n  @include typo-display-1;\n}\n\n.mdl-typography--display-1-color-contrast {\n  @include typo-display-1($colorContrast: true);\n}\n\n.mdl-typography--headline {\n  @include typo-headline;\n}\n\n.mdl-typography--headline-color-contrast {\n  @include typo-headline($colorContrast: true);\n}\n\n.mdl-typography--title {\n  @include typo-title;\n}\n\n.mdl-typography--title-color-contrast {\n  @include typo-title($colorContrast: true);\n}\n\n.mdl-typography--subhead {\n  @include typo-subhead;\n}\n\n.mdl-typography--subhead-color-contrast {\n  @include typo-subhead($colorContrast: true);\n}\n\n.mdl-typography--body-2 {\n  @include typo-body-2;\n}\n\n.mdl-typography--body-2-color-contrast {\n  @include typo-body-2($colorContrast: true);\n}\n\n.mdl-typography--body-1 {\n  @include typo-body-1;\n}\n\n.mdl-typography--body-1-color-contrast {\n  @include typo-body-1($colorContrast: true);\n}\n\n.mdl-typography--body-2-force-preferred-font {\n  @include typo-body-2($usePreferred: true);\n}\n\n.mdl-typography--body-2-force-preferred-font-color-contrast {\n  @include typo-body-2($colorContrast: true, $usePreferred: true);\n}\n\n.mdl-typography--body-1-force-preferred-font {\n  @include typo-body-1($usePreferred: true);\n}\n\n.mdl-typography--body-1-force-preferred-font-color-contrast {\n  @include typo-body-1($colorContrast: true, $usePreferred: true);\n}\n\n.mdl-typography--caption {\n  @include typo-caption;\n}\n\n.mdl-typography--caption-force-preferred-font {\n  @include typo-caption($usePreferred: true);\n}\n\n.mdl-typography--caption-color-contrast {\n  @include typo-caption($colorContrast: true);\n}\n\n.mdl-typography--caption-force-preferred-font-color-contrast {\n  @include typo-caption($colorContrast: true, $usePreferred: true);\n}\n\n.mdl-typography--menu {\n  @include typo-menu;\n}\n\n.mdl-typography--menu-color-contrast {\n  @include typo-menu($colorContrast: true);\n}\n\n.mdl-typography--button {\n  @include typo-button;\n}\n\n.mdl-typography--button-color-contrast {\n  @include typo-button($colorContrast: true);\n}\n\n.mdl-typography--text-left {\n  text-align: left;\n}\n\n.mdl-typography--text-right {\n  text-align: right;\n}\n\n.mdl-typography--text-center {\n  text-align: center;\n}\n\n.mdl-typography--text-justify {\n  text-align: justify;\n}\n\n.mdl-typography--text-nowrap {\n  white-space: nowrap;\n}\n\n.mdl-typography--text-lowercase {\n  text-transform: lowercase;\n}\n\n.mdl-typography--text-uppercase {\n  text-transform: uppercase;\n}\n\n.mdl-typography--text-capitalize {\n  text-transform: capitalize;\n}\n\n.mdl-typography--font-thin {\n  font-weight: 200 !important;\n}\n\n.mdl-typography--font-light {\n  font-weight: 300 !important;\n}\n\n.mdl-typography--font-regular {\n  font-weight: 400 !important;\n}\n\n.mdl-typography--font-medium {\n  font-weight: 500 !important;\n}\n\n.mdl-typography--font-bold {\n  font-weight: 700 !important;\n}\n\n.mdl-typography--font-black {\n  font-weight: 900 !important;\n}\n\n.material-icons {\n  @include typo-icon;\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n\n@if $trim-color-classes == false {\n  // Red\n\n  .mdl-color-text--red {\n    color: unquote(\"rgb(#{$palette-red-500})\") !important;\n  }\n\n  .mdl-color--red {\n    background-color: unquote(\"rgb(#{$palette-red-500})\") !important;\n  }\n\n  .mdl-color-text--red-50 {\n    color: unquote(\"rgb(#{$palette-red-50})\") !important;\n  }\n\n  .mdl-color--red-50 {\n    background-color: unquote(\"rgb(#{$palette-red-50})\") !important;\n  }\n\n  .mdl-color-text--red-100 {\n    color: unquote(\"rgb(#{$palette-red-100})\") !important;\n  }\n\n  .mdl-color--red-100 {\n    background-color: unquote(\"rgb(#{$palette-red-100})\") !important;\n  }\n\n  .mdl-color-text--red-200 {\n    color: unquote(\"rgb(#{$palette-red-200})\") !important;\n  }\n\n  .mdl-color--red-200 {\n    background-color: unquote(\"rgb(#{$palette-red-200})\") !important;\n  }\n\n  .mdl-color-text--red-300 {\n    color: unquote(\"rgb(#{$palette-red-300})\") !important;\n  }\n\n  .mdl-color--red-300 {\n    background-color: unquote(\"rgb(#{$palette-red-300})\") !important;\n  }\n\n  .mdl-color-text--red-400 {\n    color: unquote(\"rgb(#{$palette-red-400})\") !important;\n  }\n\n  .mdl-color--red-400 {\n    background-color: unquote(\"rgb(#{$palette-red-400})\") !important;\n  }\n\n  .mdl-color-text--red-500 {\n    color: unquote(\"rgb(#{$palette-red-500})\") !important;\n  }\n\n  .mdl-color--red-500 {\n    background-color: unquote(\"rgb(#{$palette-red-500})\") !important;\n  }\n\n  .mdl-color-text--red-600 {\n    color: unquote(\"rgb(#{$palette-red-600})\") !important;\n  }\n\n  .mdl-color--red-600 {\n    background-color: unquote(\"rgb(#{$palette-red-600})\") !important;\n  }\n\n  .mdl-color-text--red-700 {\n    color: unquote(\"rgb(#{$palette-red-700})\") !important;\n  }\n\n  .mdl-color--red-700 {\n    background-color: unquote(\"rgb(#{$palette-red-700})\") !important;\n  }\n\n  .mdl-color-text--red-800 {\n    color: unquote(\"rgb(#{$palette-red-800})\") !important;\n  }\n\n  .mdl-color--red-800 {\n    background-color: unquote(\"rgb(#{$palette-red-800})\") !important;\n  }\n\n  .mdl-color-text--red-900 {\n    color: unquote(\"rgb(#{$palette-red-900})\") !important;\n  }\n\n  .mdl-color--red-900 {\n    background-color: unquote(\"rgb(#{$palette-red-900})\") !important;\n  }\n\n  .mdl-color-text--red-A100 {\n    color: unquote(\"rgb(#{$palette-red-A100})\") !important;\n  }\n\n  .mdl-color--red-A100 {\n    background-color: unquote(\"rgb(#{$palette-red-A100})\") !important;\n  }\n\n  .mdl-color-text--red-A200 {\n    color: unquote(\"rgb(#{$palette-red-A200})\") !important;\n  }\n\n  .mdl-color--red-A200 {\n    background-color: unquote(\"rgb(#{$palette-red-A200})\") !important;\n  }\n\n  .mdl-color-text--red-A400 {\n    color: unquote(\"rgb(#{$palette-red-A400})\") !important;\n  }\n\n  .mdl-color--red-A400 {\n    background-color: unquote(\"rgb(#{$palette-red-A400})\") !important;\n  }\n\n  .mdl-color-text--red-A700 {\n    color: unquote(\"rgb(#{$palette-red-A700})\") !important;\n  }\n\n  .mdl-color--red-A700 {\n    background-color: unquote(\"rgb(#{$palette-red-A700})\") !important;\n  }\n\n  // Pink\n\n  .mdl-color-text--pink {\n    color: unquote(\"rgb(#{$palette-pink-500})\") !important;\n  }\n\n  .mdl-color--pink {\n    background-color: unquote(\"rgb(#{$palette-pink-500})\") !important;\n  }\n\n  .mdl-color-text--pink-50 {\n    color: unquote(\"rgb(#{$palette-pink-50})\") !important;\n  }\n\n  .mdl-color--pink-50 {\n    background-color: unquote(\"rgb(#{$palette-pink-50})\") !important;\n  }\n\n  .mdl-color-text--pink-100 {\n    color: unquote(\"rgb(#{$palette-pink-100})\") !important;\n  }\n\n  .mdl-color--pink-100 {\n    background-color: unquote(\"rgb(#{$palette-pink-100})\") !important;\n  }\n\n  .mdl-color-text--pink-200 {\n    color: unquote(\"rgb(#{$palette-pink-200})\") !important;\n  }\n\n  .mdl-color--pink-200 {\n    background-color: unquote(\"rgb(#{$palette-pink-200})\") !important;\n  }\n\n  .mdl-color-text--pink-300 {\n    color: unquote(\"rgb(#{$palette-pink-300})\") !important;\n  }\n\n  .mdl-color--pink-300 {\n    background-color: unquote(\"rgb(#{$palette-pink-300})\") !important;\n  }\n\n  .mdl-color-text--pink-400 {\n    color: unquote(\"rgb(#{$palette-pink-400})\") !important;\n  }\n\n  .mdl-color--pink-400 {\n    background-color: unquote(\"rgb(#{$palette-pink-400})\") !important;\n  }\n\n  .mdl-color-text--pink-500 {\n    color: unquote(\"rgb(#{$palette-pink-500})\") !important;\n  }\n\n  .mdl-color--pink-500 {\n    background-color: unquote(\"rgb(#{$palette-pink-500})\") !important;\n  }\n\n  .mdl-color-text--pink-600 {\n    color: unquote(\"rgb(#{$palette-pink-600})\") !important;\n  }\n\n  .mdl-color--pink-600 {\n    background-color: unquote(\"rgb(#{$palette-pink-600})\") !important;\n  }\n\n  .mdl-color-text--pink-700 {\n    color: unquote(\"rgb(#{$palette-pink-700})\") !important;\n  }\n\n  .mdl-color--pink-700 {\n    background-color: unquote(\"rgb(#{$palette-pink-700})\") !important;\n  }\n\n  .mdl-color-text--pink-800 {\n    color: unquote(\"rgb(#{$palette-pink-800})\") !important;\n  }\n\n  .mdl-color--pink-800 {\n    background-color: unquote(\"rgb(#{$palette-pink-800})\") !important;\n  }\n\n  .mdl-color-text--pink-900 {\n    color: unquote(\"rgb(#{$palette-pink-900})\") !important;\n  }\n\n  .mdl-color--pink-900 {\n    background-color: unquote(\"rgb(#{$palette-pink-900})\") !important;\n  }\n\n  .mdl-color-text--pink-A100 {\n    color: unquote(\"rgb(#{$palette-pink-A100})\") !important;\n  }\n\n  .mdl-color--pink-A100 {\n    background-color: unquote(\"rgb(#{$palette-pink-A100})\") !important;\n  }\n\n  .mdl-color-text--pink-A200 {\n    color: unquote(\"rgb(#{$palette-pink-A200})\") !important;\n  }\n\n  .mdl-color--pink-A200 {\n    background-color: unquote(\"rgb(#{$palette-pink-A200})\") !important;\n  }\n\n  .mdl-color-text--pink-A400 {\n    color: unquote(\"rgb(#{$palette-pink-A400})\") !important;\n  }\n\n  .mdl-color--pink-A400 {\n    background-color: unquote(\"rgb(#{$palette-pink-A400})\") !important;\n  }\n\n  .mdl-color-text--pink-A700 {\n    color: unquote(\"rgb(#{$palette-pink-A700})\") !important;\n  }\n\n  .mdl-color--pink-A700 {\n    background-color: unquote(\"rgb(#{$palette-pink-A700})\") !important;\n  }\n\n  // Purple\n\n  .mdl-color-text--purple {\n    color: unquote(\"rgb(#{$palette-purple-500})\") !important;\n  }\n\n  .mdl-color--purple {\n    background-color: unquote(\"rgb(#{$palette-purple-500})\") !important;\n  }\n\n  .mdl-color-text--purple-50 {\n    color: unquote(\"rgb(#{$palette-purple-50})\") !important;\n  }\n\n  .mdl-color--purple-50 {\n    background-color: unquote(\"rgb(#{$palette-purple-50})\") !important;\n  }\n\n  .mdl-color-text--purple-100 {\n    color: unquote(\"rgb(#{$palette-purple-100})\") !important;\n  }\n\n  .mdl-color--purple-100 {\n    background-color: unquote(\"rgb(#{$palette-purple-100})\") !important;\n  }\n\n  .mdl-color-text--purple-200 {\n    color: unquote(\"rgb(#{$palette-purple-200})\") !important;\n  }\n\n  .mdl-color--purple-200 {\n    background-color: unquote(\"rgb(#{$palette-purple-200})\") !important;\n  }\n\n  .mdl-color-text--purple-300 {\n    color: unquote(\"rgb(#{$palette-purple-300})\") !important;\n  }\n\n  .mdl-color--purple-300 {\n    background-color: unquote(\"rgb(#{$palette-purple-300})\") !important;\n  }\n\n  .mdl-color-text--purple-400 {\n    color: unquote(\"rgb(#{$palette-purple-400})\") !important;\n  }\n\n  .mdl-color--purple-400 {\n    background-color: unquote(\"rgb(#{$palette-purple-400})\") !important;\n  }\n\n  .mdl-color-text--purple-500 {\n    color: unquote(\"rgb(#{$palette-purple-500})\") !important;\n  }\n\n  .mdl-color--purple-500 {\n    background-color: unquote(\"rgb(#{$palette-purple-500})\") !important;\n  }\n\n  .mdl-color-text--purple-600 {\n    color: unquote(\"rgb(#{$palette-purple-600})\") !important;\n  }\n\n  .mdl-color--purple-600 {\n    background-color: unquote(\"rgb(#{$palette-purple-600})\") !important;\n  }\n\n  .mdl-color-text--purple-700 {\n    color: unquote(\"rgb(#{$palette-purple-700})\") !important;\n  }\n\n  .mdl-color--purple-700 {\n    background-color: unquote(\"rgb(#{$palette-purple-700})\") !important;\n  }\n\n  .mdl-color-text--purple-800 {\n    color: unquote(\"rgb(#{$palette-purple-800})\") !important;\n  }\n\n  .mdl-color--purple-800 {\n    background-color: unquote(\"rgb(#{$palette-purple-800})\") !important;\n  }\n\n  .mdl-color-text--purple-900 {\n    color: unquote(\"rgb(#{$palette-purple-900})\") !important;\n  }\n\n  .mdl-color--purple-900 {\n    background-color: unquote(\"rgb(#{$palette-purple-900})\") !important;\n  }\n\n  .mdl-color-text--purple-A100 {\n    color: unquote(\"rgb(#{$palette-purple-A100})\") !important;\n  }\n\n  .mdl-color--purple-A100 {\n    background-color: unquote(\"rgb(#{$palette-purple-A100})\") !important;\n  }\n\n  .mdl-color-text--purple-A200 {\n    color: unquote(\"rgb(#{$palette-purple-A200})\") !important;\n  }\n\n  .mdl-color--purple-A200 {\n    background-color: unquote(\"rgb(#{$palette-purple-A200})\") !important;\n  }\n\n  .mdl-color-text--purple-A400 {\n    color: unquote(\"rgb(#{$palette-purple-A400})\") !important;\n  }\n\n  .mdl-color--purple-A400 {\n    background-color: unquote(\"rgb(#{$palette-purple-A400})\") !important;\n  }\n\n  .mdl-color-text--purple-A700 {\n    color: unquote(\"rgb(#{$palette-purple-A700})\") !important;\n  }\n\n  .mdl-color--purple-A700 {\n    background-color: unquote(\"rgb(#{$palette-purple-A700})\") !important;\n  }\n\n  // Deep Purple.\n\n  .mdl-color-text--deep-purple {\n    color: unquote(\"rgb(#{$palette-deep-purple-500})\") !important;\n  }\n\n  .mdl-color--deep-purple {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-500})\") !important;\n  }\n\n  .mdl-color-text--deep-purple-50 {\n    color: unquote(\"rgb(#{$palette-deep-purple-50})\") !important;\n  }\n\n  .mdl-color--deep-purple-50 {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-50})\") !important;\n  }\n\n  .mdl-color-text--deep-purple-100 {\n    color: unquote(\"rgb(#{$palette-deep-purple-100})\") !important;\n  }\n\n  .mdl-color--deep-purple-100 {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-100})\") !important;\n  }\n\n  .mdl-color-text--deep-purple-200 {\n    color: unquote(\"rgb(#{$palette-deep-purple-200})\") !important;\n  }\n\n  .mdl-color--deep-purple-200 {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-200})\") !important;\n  }\n\n  .mdl-color-text--deep-purple-300 {\n    color: unquote(\"rgb(#{$palette-deep-purple-300})\") !important;\n  }\n\n  .mdl-color--deep-purple-300 {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-300})\") !important;\n  }\n\n  .mdl-color-text--deep-purple-400 {\n    color: unquote(\"rgb(#{$palette-deep-purple-400})\") !important;\n  }\n\n  .mdl-color--deep-purple-400 {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-400})\") !important;\n  }\n\n  .mdl-color-text--deep-purple-500 {\n    color: unquote(\"rgb(#{$palette-deep-purple-500})\") !important;\n  }\n\n  .mdl-color--deep-purple-500 {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-500})\") !important;\n  }\n\n  .mdl-color-text--deep-purple-600 {\n    color: unquote(\"rgb(#{$palette-deep-purple-600})\") !important;\n  }\n\n  .mdl-color--deep-purple-600 {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-600})\") !important;\n  }\n\n  .mdl-color-text--deep-purple-700 {\n    color: unquote(\"rgb(#{$palette-deep-purple-700})\") !important;\n  }\n\n  .mdl-color--deep-purple-700 {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-700})\") !important;\n  }\n\n  .mdl-color-text--deep-purple-800 {\n    color: unquote(\"rgb(#{$palette-deep-purple-800})\") !important;\n  }\n\n  .mdl-color--deep-purple-800 {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-800})\") !important;\n  }\n\n  .mdl-color-text--deep-purple-900 {\n    color: unquote(\"rgb(#{$palette-deep-purple-900})\") !important;\n  }\n\n  .mdl-color--deep-purple-900 {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-900})\") !important;\n  }\n\n  .mdl-color-text--deep-purple-A100 {\n    color: unquote(\"rgb(#{$palette-deep-purple-A100})\") !important;\n  }\n\n  .mdl-color--deep-purple-A100 {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-A100})\") !important;\n  }\n\n  .mdl-color-text--deep-purple-A200 {\n    color: unquote(\"rgb(#{$palette-deep-purple-A200})\") !important;\n  }\n\n  .mdl-color--deep-purple-A200 {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-A200})\") !important;\n  }\n\n  .mdl-color-text--deep-purple-A400 {\n    color: unquote(\"rgb(#{$palette-deep-purple-A400})\") !important;\n  }\n\n  .mdl-color--deep-purple-A400 {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-A400})\") !important;\n  }\n\n  .mdl-color-text--deep-purple-A700 {\n    color: unquote(\"rgb(#{$palette-deep-purple-A700})\") !important;\n  }\n\n  .mdl-color--deep-purple-A700 {\n    background-color: unquote(\"rgb(#{$palette-deep-purple-A700})\") !important;\n  }\n\n  // Indigo\n\n  .mdl-color-text--indigo {\n    color: unquote(\"rgb(#{$palette-indigo-500})\") !important;\n  }\n\n  .mdl-color--indigo {\n    background-color: unquote(\"rgb(#{$palette-indigo-500})\") !important;\n  }\n\n  .mdl-color-text--indigo-50 {\n    color: unquote(\"rgb(#{$palette-indigo-50})\") !important;\n  }\n\n  .mdl-color--indigo-50 {\n    background-color: unquote(\"rgb(#{$palette-indigo-50})\") !important;\n  }\n\n  .mdl-color-text--indigo-100 {\n    color: unquote(\"rgb(#{$palette-indigo-100})\") !important;\n  }\n\n  .mdl-color--indigo-100 {\n    background-color: unquote(\"rgb(#{$palette-indigo-100})\") !important;\n  }\n\n  .mdl-color-text--indigo-200 {\n    color: unquote(\"rgb(#{$palette-indigo-200})\") !important;\n  }\n\n  .mdl-color--indigo-200 {\n    background-color: unquote(\"rgb(#{$palette-indigo-200})\") !important;\n  }\n\n  .mdl-color-text--indigo-300 {\n    color: unquote(\"rgb(#{$palette-indigo-300})\") !important;\n  }\n\n  .mdl-color--indigo-300 {\n    background-color: unquote(\"rgb(#{$palette-indigo-300})\") !important;\n  }\n\n  .mdl-color-text--indigo-400 {\n    color: unquote(\"rgb(#{$palette-indigo-400})\") !important;\n  }\n\n  .mdl-color--indigo-400 {\n    background-color: unquote(\"rgb(#{$palette-indigo-400})\") !important;\n  }\n\n  .mdl-color-text--indigo-500 {\n    color: unquote(\"rgb(#{$palette-indigo-500})\") !important;\n  }\n\n  .mdl-color--indigo-500 {\n    background-color: unquote(\"rgb(#{$palette-indigo-500})\") !important;\n  }\n\n  .mdl-color-text--indigo-600 {\n    color: unquote(\"rgb(#{$palette-indigo-600})\") !important;\n  }\n\n  .mdl-color--indigo-600 {\n    background-color: unquote(\"rgb(#{$palette-indigo-600})\") !important;\n  }\n\n  .mdl-color-text--indigo-700 {\n    color: unquote(\"rgb(#{$palette-indigo-700})\") !important;\n  }\n\n  .mdl-color--indigo-700 {\n    background-color: unquote(\"rgb(#{$palette-indigo-700})\") !important;\n  }\n\n  .mdl-color-text--indigo-800 {\n    color: unquote(\"rgb(#{$palette-indigo-800})\") !important;\n  }\n\n  .mdl-color--indigo-800 {\n    background-color: unquote(\"rgb(#{$palette-indigo-800})\") !important;\n  }\n\n  .mdl-color-text--indigo-900 {\n    color: unquote(\"rgb(#{$palette-indigo-900})\") !important;\n  }\n\n  .mdl-color--indigo-900 {\n    background-color: unquote(\"rgb(#{$palette-indigo-900})\") !important;\n  }\n\n  .mdl-color-text--indigo-A100 {\n    color: unquote(\"rgb(#{$palette-indigo-A100})\") !important;\n  }\n\n  .mdl-color--indigo-A100 {\n    background-color: unquote(\"rgb(#{$palette-indigo-A100})\") !important;\n  }\n\n  .mdl-color-text--indigo-A200 {\n    color: unquote(\"rgb(#{$palette-indigo-A200})\") !important;\n  }\n\n  .mdl-color--indigo-A200 {\n    background-color: unquote(\"rgb(#{$palette-indigo-A200})\") !important;\n  }\n\n  .mdl-color-text--indigo-A400 {\n    color: unquote(\"rgb(#{$palette-indigo-A400})\") !important;\n  }\n\n  .mdl-color--indigo-A400 {\n    background-color: unquote(\"rgb(#{$palette-indigo-A400})\") !important;\n  }\n\n  .mdl-color-text--indigo-A700 {\n    color: unquote(\"rgb(#{$palette-indigo-A700})\") !important;\n  }\n\n  .mdl-color--indigo-A700 {\n    background-color: unquote(\"rgb(#{$palette-indigo-A700})\") !important;\n  }\n\n  // Blue\n\n  .mdl-color-text--blue {\n    color: unquote(\"rgb(#{$palette-blue-500})\") !important;\n  }\n\n  .mdl-color--blue {\n    background-color: unquote(\"rgb(#{$palette-blue-500})\") !important;\n  }\n\n  .mdl-color-text--blue-50 {\n    color: unquote(\"rgb(#{$palette-blue-50})\") !important;\n  }\n\n  .mdl-color--blue-50 {\n    background-color: unquote(\"rgb(#{$palette-blue-50})\") !important;\n  }\n\n  .mdl-color-text--blue-100 {\n    color: unquote(\"rgb(#{$palette-blue-100})\") !important;\n  }\n\n  .mdl-color--blue-100 {\n    background-color: unquote(\"rgb(#{$palette-blue-100})\") !important;\n  }\n\n  .mdl-color-text--blue-200 {\n    color: unquote(\"rgb(#{$palette-blue-200})\") !important;\n  }\n\n  .mdl-color--blue-200 {\n    background-color: unquote(\"rgb(#{$palette-blue-200})\") !important;\n  }\n\n  .mdl-color-text--blue-300 {\n    color: unquote(\"rgb(#{$palette-blue-300})\") !important;\n  }\n\n  .mdl-color--blue-300 {\n    background-color: unquote(\"rgb(#{$palette-blue-300})\") !important;\n  }\n\n  .mdl-color-text--blue-400 {\n    color: unquote(\"rgb(#{$palette-blue-400})\") !important;\n  }\n\n  .mdl-color--blue-400 {\n    background-color: unquote(\"rgb(#{$palette-blue-400})\") !important;\n  }\n\n  .mdl-color-text--blue-500 {\n    color: unquote(\"rgb(#{$palette-blue-500})\") !important;\n  }\n\n  .mdl-color--blue-500 {\n    background-color: unquote(\"rgb(#{$palette-blue-500})\") !important;\n  }\n\n  .mdl-color-text--blue-600 {\n    color: unquote(\"rgb(#{$palette-blue-600})\") !important;\n  }\n\n  .mdl-color--blue-600 {\n    background-color: unquote(\"rgb(#{$palette-blue-600})\") !important;\n  }\n\n  .mdl-color-text--blue-700 {\n    color: unquote(\"rgb(#{$palette-blue-700})\") !important;\n  }\n\n  .mdl-color--blue-700 {\n    background-color: unquote(\"rgb(#{$palette-blue-700})\") !important;\n  }\n\n  .mdl-color-text--blue-800 {\n    color: unquote(\"rgb(#{$palette-blue-800})\") !important;\n  }\n\n  .mdl-color--blue-800 {\n    background-color: unquote(\"rgb(#{$palette-blue-800})\") !important;\n  }\n\n  .mdl-color-text--blue-900 {\n    color: unquote(\"rgb(#{$palette-blue-900})\") !important;\n  }\n\n  .mdl-color--blue-900 {\n    background-color: unquote(\"rgb(#{$palette-blue-900})\") !important;\n  }\n\n  .mdl-color-text--blue-A100 {\n    color: unquote(\"rgb(#{$palette-blue-A100})\") !important;\n  }\n\n  .mdl-color--blue-A100 {\n    background-color: unquote(\"rgb(#{$palette-blue-A100})\") !important;\n  }\n\n  .mdl-color-text--blue-A200 {\n    color: unquote(\"rgb(#{$palette-blue-A200})\") !important;\n  }\n\n  .mdl-color--blue-A200 {\n    background-color: unquote(\"rgb(#{$palette-blue-A200})\") !important;\n  }\n\n  .mdl-color-text--blue-A400 {\n    color: unquote(\"rgb(#{$palette-blue-A400})\") !important;\n  }\n\n  .mdl-color--blue-A400 {\n    background-color: unquote(\"rgb(#{$palette-blue-A400})\") !important;\n  }\n\n  .mdl-color-text--blue-A700 {\n    color: unquote(\"rgb(#{$palette-blue-A700})\") !important;\n  }\n\n  .mdl-color--blue-A700 {\n    background-color: unquote(\"rgb(#{$palette-blue-A700})\") !important;\n  }\n\n  // Light Blue\n\n  .mdl-color-text--light-blue {\n    color: unquote(\"rgb(#{$palette-light-blue-500})\") !important;\n  }\n\n  .mdl-color--light-blue {\n    background-color: unquote(\"rgb(#{$palette-light-blue-500})\") !important;\n  }\n\n  .mdl-color-text--light-blue-50 {\n    color: unquote(\"rgb(#{$palette-light-blue-50})\") !important;\n  }\n\n  .mdl-color--light-blue-50 {\n    background-color: unquote(\"rgb(#{$palette-light-blue-50})\") !important;\n  }\n\n  .mdl-color-text--light-blue-100 {\n    color: unquote(\"rgb(#{$palette-light-blue-100})\") !important;\n  }\n\n  .mdl-color--light-blue-100 {\n    background-color: unquote(\"rgb(#{$palette-light-blue-100})\") !important;\n  }\n\n  .mdl-color-text--light-blue-200 {\n    color: unquote(\"rgb(#{$palette-light-blue-200})\") !important;\n  }\n\n  .mdl-color--light-blue-200 {\n    background-color: unquote(\"rgb(#{$palette-light-blue-200})\") !important;\n  }\n\n  .mdl-color-text--light-blue-300 {\n    color: unquote(\"rgb(#{$palette-light-blue-300})\") !important;\n  }\n\n  .mdl-color--light-blue-300 {\n    background-color: unquote(\"rgb(#{$palette-light-blue-300})\") !important;\n  }\n\n  .mdl-color-text--light-blue-400 {\n    color: unquote(\"rgb(#{$palette-light-blue-400})\") !important;\n  }\n\n  .mdl-color--light-blue-400 {\n    background-color: unquote(\"rgb(#{$palette-light-blue-400})\") !important;\n  }\n\n  .mdl-color-text--light-blue-500 {\n    color: unquote(\"rgb(#{$palette-light-blue-500})\") !important;\n  }\n\n  .mdl-color--light-blue-500 {\n    background-color: unquote(\"rgb(#{$palette-light-blue-500})\") !important;\n  }\n\n  .mdl-color-text--light-blue-600 {\n    color: unquote(\"rgb(#{$palette-light-blue-600})\") !important;\n  }\n\n  .mdl-color--light-blue-600 {\n    background-color: unquote(\"rgb(#{$palette-light-blue-600})\") !important;\n  }\n\n  .mdl-color-text--light-blue-700 {\n    color: unquote(\"rgb(#{$palette-light-blue-700})\") !important;\n  }\n\n  .mdl-color--light-blue-700 {\n    background-color: unquote(\"rgb(#{$palette-light-blue-700})\") !important;\n  }\n\n  .mdl-color-text--light-blue-800 {\n    color: unquote(\"rgb(#{$palette-light-blue-800})\") !important;\n  }\n\n  .mdl-color--light-blue-800 {\n    background-color: unquote(\"rgb(#{$palette-light-blue-800})\") !important;\n  }\n\n  .mdl-color-text--light-blue-900 {\n    color: unquote(\"rgb(#{$palette-light-blue-900})\") !important;\n  }\n\n  .mdl-color--light-blue-900 {\n    background-color: unquote(\"rgb(#{$palette-light-blue-900})\") !important;\n  }\n\n  .mdl-color-text--light-blue-A100 {\n    color: unquote(\"rgb(#{$palette-light-blue-A100})\") !important;\n  }\n\n  .mdl-color--light-blue-A100 {\n    background-color: unquote(\"rgb(#{$palette-light-blue-A100})\") !important;\n  }\n\n  .mdl-color-text--light-blue-A200 {\n    color: unquote(\"rgb(#{$palette-light-blue-A200})\") !important;\n  }\n\n  .mdl-color--light-blue-A200 {\n    background-color: unquote(\"rgb(#{$palette-light-blue-A200})\") !important;\n  }\n\n  .mdl-color-text--light-blue-A400 {\n    color: unquote(\"rgb(#{$palette-light-blue-A400})\") !important;\n  }\n\n  .mdl-color--light-blue-A400 {\n    background-color: unquote(\"rgb(#{$palette-light-blue-A400})\") !important;\n  }\n\n  .mdl-color-text--light-blue-A700 {\n    color: unquote(\"rgb(#{$palette-light-blue-A700})\") !important;\n  }\n\n  .mdl-color--light-blue-A700 {\n    background-color: unquote(\"rgb(#{$palette-light-blue-A700})\") !important;\n  }\n\n  // Cyan\n\n  .mdl-color-text--cyan {\n    color: unquote(\"rgb(#{$palette-cyan-500})\") !important;\n  }\n\n  .mdl-color--cyan {\n    background-color: unquote(\"rgb(#{$palette-cyan-500})\") !important;\n  }\n\n  .mdl-color-text--cyan-50 {\n    color: unquote(\"rgb(#{$palette-cyan-50})\") !important;\n  }\n\n  .mdl-color--cyan-50 {\n    background-color: unquote(\"rgb(#{$palette-cyan-50})\") !important;\n  }\n\n  .mdl-color-text--cyan-100 {\n    color: unquote(\"rgb(#{$palette-cyan-100})\") !important;\n  }\n\n  .mdl-color--cyan-100 {\n    background-color: unquote(\"rgb(#{$palette-cyan-100})\") !important;\n  }\n\n  .mdl-color-text--cyan-200 {\n    color: unquote(\"rgb(#{$palette-cyan-200})\") !important;\n  }\n\n  .mdl-color--cyan-200 {\n    background-color: unquote(\"rgb(#{$palette-cyan-200})\") !important;\n  }\n\n  .mdl-color-text--cyan-300 {\n    color: unquote(\"rgb(#{$palette-cyan-300})\") !important;\n  }\n\n  .mdl-color--cyan-300 {\n    background-color: unquote(\"rgb(#{$palette-cyan-300})\") !important;\n  }\n\n  .mdl-color-text--cyan-400 {\n    color: unquote(\"rgb(#{$palette-cyan-400})\") !important;\n  }\n\n  .mdl-color--cyan-400 {\n    background-color: unquote(\"rgb(#{$palette-cyan-400})\") !important;\n  }\n\n  .mdl-color-text--cyan-500 {\n    color: unquote(\"rgb(#{$palette-cyan-500})\") !important;\n  }\n\n  .mdl-color--cyan-500 {\n    background-color: unquote(\"rgb(#{$palette-cyan-500})\") !important;\n  }\n\n  .mdl-color-text--cyan-600 {\n    color: unquote(\"rgb(#{$palette-cyan-600})\") !important;\n  }\n\n  .mdl-color--cyan-600 {\n    background-color: unquote(\"rgb(#{$palette-cyan-600})\") !important;\n  }\n\n  .mdl-color-text--cyan-700 {\n    color: unquote(\"rgb(#{$palette-cyan-700})\") !important;\n  }\n\n  .mdl-color--cyan-700 {\n    background-color: unquote(\"rgb(#{$palette-cyan-700})\") !important;\n  }\n\n  .mdl-color-text--cyan-800 {\n    color: unquote(\"rgb(#{$palette-cyan-800})\") !important;\n  }\n\n  .mdl-color--cyan-800 {\n    background-color: unquote(\"rgb(#{$palette-cyan-800})\") !important;\n  }\n\n  .mdl-color-text--cyan-900 {\n    color: unquote(\"rgb(#{$palette-cyan-900})\") !important;\n  }\n\n  .mdl-color--cyan-900 {\n    background-color: unquote(\"rgb(#{$palette-cyan-900})\") !important;\n  }\n\n  .mdl-color-text--cyan-A100 {\n    color: unquote(\"rgb(#{$palette-cyan-A100})\") !important;\n  }\n\n  .mdl-color--cyan-A100 {\n    background-color: unquote(\"rgb(#{$palette-cyan-A100})\") !important;\n  }\n\n  .mdl-color-text--cyan-A200 {\n    color: unquote(\"rgb(#{$palette-cyan-A200})\") !important;\n  }\n\n  .mdl-color--cyan-A200 {\n    background-color: unquote(\"rgb(#{$palette-cyan-A200})\") !important;\n  }\n\n  .mdl-color-text--cyan-A400 {\n    color: unquote(\"rgb(#{$palette-cyan-A400})\") !important;\n  }\n\n  .mdl-color--cyan-A400 {\n    background-color: unquote(\"rgb(#{$palette-cyan-A400})\") !important;\n  }\n\n  .mdl-color-text--cyan-A700 {\n    color: unquote(\"rgb(#{$palette-cyan-A700})\") !important;\n  }\n\n  .mdl-color--cyan-A700 {\n    background-color: unquote(\"rgb(#{$palette-cyan-A700})\") !important;\n  }\n\n  // Teal\n\n  .mdl-color-text--teal {\n    color: unquote(\"rgb(#{$palette-teal-500})\") !important;\n  }\n\n  .mdl-color--teal {\n    background-color: unquote(\"rgb(#{$palette-teal-500})\") !important;\n  }\n\n  .mdl-color-text--teal-50 {\n    color: unquote(\"rgb(#{$palette-teal-50})\") !important;\n  }\n\n  .mdl-color--teal-50 {\n    background-color: unquote(\"rgb(#{$palette-teal-50})\") !important;\n  }\n\n  .mdl-color-text--teal-100 {\n    color: unquote(\"rgb(#{$palette-teal-100})\") !important;\n  }\n\n  .mdl-color--teal-100 {\n    background-color: unquote(\"rgb(#{$palette-teal-100})\") !important;\n  }\n\n  .mdl-color-text--teal-200 {\n    color: unquote(\"rgb(#{$palette-teal-200})\") !important;\n  }\n\n  .mdl-color--teal-200 {\n    background-color: unquote(\"rgb(#{$palette-teal-200})\") !important;\n  }\n\n  .mdl-color-text--teal-300 {\n    color: unquote(\"rgb(#{$palette-teal-300})\") !important;\n  }\n\n  .mdl-color--teal-300 {\n    background-color: unquote(\"rgb(#{$palette-teal-300})\") !important;\n  }\n\n  .mdl-color-text--teal-400 {\n    color: unquote(\"rgb(#{$palette-teal-400})\") !important;\n  }\n\n  .mdl-color--teal-400 {\n    background-color: unquote(\"rgb(#{$palette-teal-400})\") !important;\n  }\n\n  .mdl-color-text--teal-500 {\n    color: unquote(\"rgb(#{$palette-teal-500})\") !important;\n  }\n\n  .mdl-color--teal-500 {\n    background-color: unquote(\"rgb(#{$palette-teal-500})\") !important;\n  }\n\n  .mdl-color-text--teal-600 {\n    color: unquote(\"rgb(#{$palette-teal-600})\") !important;\n  }\n\n  .mdl-color--teal-600 {\n    background-color: unquote(\"rgb(#{$palette-teal-600})\") !important;\n  }\n\n  .mdl-color-text--teal-700 {\n    color: unquote(\"rgb(#{$palette-teal-700})\") !important;\n  }\n\n  .mdl-color--teal-700 {\n    background-color: unquote(\"rgb(#{$palette-teal-700})\") !important;\n  }\n\n  .mdl-color-text--teal-800 {\n    color: unquote(\"rgb(#{$palette-teal-800})\") !important;\n  }\n\n  .mdl-color--teal-800 {\n    background-color: unquote(\"rgb(#{$palette-teal-800})\") !important;\n  }\n\n  .mdl-color-text--teal-900 {\n    color: unquote(\"rgb(#{$palette-teal-900})\") !important;\n  }\n\n  .mdl-color--teal-900 {\n    background-color: unquote(\"rgb(#{$palette-teal-900})\") !important;\n  }\n\n  .mdl-color-text--teal-A100 {\n    color: unquote(\"rgb(#{$palette-teal-A100})\") !important;\n  }\n\n  .mdl-color--teal-A100 {\n    background-color: unquote(\"rgb(#{$palette-teal-A100})\") !important;\n  }\n\n  .mdl-color-text--teal-A200 {\n    color: unquote(\"rgb(#{$palette-teal-A200})\") !important;\n  }\n\n  .mdl-color--teal-A200 {\n    background-color: unquote(\"rgb(#{$palette-teal-A200})\") !important;\n  }\n\n  .mdl-color-text--teal-A400 {\n    color: unquote(\"rgb(#{$palette-teal-A400})\") !important;\n  }\n\n  .mdl-color--teal-A400 {\n    background-color: unquote(\"rgb(#{$palette-teal-A400})\") !important;\n  }\n\n  .mdl-color-text--teal-A700 {\n    color: unquote(\"rgb(#{$palette-teal-A700})\") !important;\n  }\n\n  .mdl-color--teal-A700 {\n    background-color: unquote(\"rgb(#{$palette-teal-A700})\") !important;\n  }\n\n  // Green\n\n  .mdl-color-text--green {\n    color: unquote(\"rgb(#{$palette-green-500})\") !important;\n  }\n\n  .mdl-color--green {\n    background-color: unquote(\"rgb(#{$palette-green-500})\") !important;\n  }\n\n  .mdl-color-text--green-50 {\n    color: unquote(\"rgb(#{$palette-green-50})\") !important;\n  }\n\n  .mdl-color--green-50 {\n    background-color: unquote(\"rgb(#{$palette-green-50})\") !important;\n  }\n\n  .mdl-color-text--green-100 {\n    color: unquote(\"rgb(#{$palette-green-100})\") !important;\n  }\n\n  .mdl-color--green-100 {\n    background-color: unquote(\"rgb(#{$palette-green-100})\") !important;\n  }\n\n  .mdl-color-text--green-200 {\n    color: unquote(\"rgb(#{$palette-green-200})\") !important;\n  }\n\n  .mdl-color--green-200 {\n    background-color: unquote(\"rgb(#{$palette-green-200})\") !important;\n  }\n\n  .mdl-color-text--green-300 {\n    color: unquote(\"rgb(#{$palette-green-300})\") !important;\n  }\n\n  .mdl-color--green-300 {\n    background-color: unquote(\"rgb(#{$palette-green-300})\") !important;\n  }\n\n  .mdl-color-text--green-400 {\n    color: unquote(\"rgb(#{$palette-green-400})\") !important;\n  }\n\n  .mdl-color--green-400 {\n    background-color: unquote(\"rgb(#{$palette-green-400})\") !important;\n  }\n\n  .mdl-color-text--green-500 {\n    color: unquote(\"rgb(#{$palette-green-500})\") !important;\n  }\n\n  .mdl-color--green-500 {\n    background-color: unquote(\"rgb(#{$palette-green-500})\") !important;\n  }\n\n  .mdl-color-text--green-600 {\n    color: unquote(\"rgb(#{$palette-green-600})\") !important;\n  }\n\n  .mdl-color--green-600 {\n    background-color: unquote(\"rgb(#{$palette-green-600})\") !important;\n  }\n\n  .mdl-color-text--green-700 {\n    color: unquote(\"rgb(#{$palette-green-700})\") !important;\n  }\n\n  .mdl-color--green-700 {\n    background-color: unquote(\"rgb(#{$palette-green-700})\") !important;\n  }\n\n  .mdl-color-text--green-800 {\n    color: unquote(\"rgb(#{$palette-green-800})\") !important;\n  }\n\n  .mdl-color--green-800 {\n    background-color: unquote(\"rgb(#{$palette-green-800})\") !important;\n  }\n\n  .mdl-color-text--green-900 {\n    color: unquote(\"rgb(#{$palette-green-900})\") !important;\n  }\n\n  .mdl-color--green-900 {\n    background-color: unquote(\"rgb(#{$palette-green-900})\") !important;\n  }\n\n  .mdl-color-text--green-A100 {\n    color: unquote(\"rgb(#{$palette-green-A100})\") !important;\n  }\n\n  .mdl-color--green-A100 {\n    background-color: unquote(\"rgb(#{$palette-green-A100})\") !important;\n  }\n\n  .mdl-color-text--green-A200 {\n    color: unquote(\"rgb(#{$palette-green-A200})\") !important;\n  }\n\n  .mdl-color--green-A200 {\n    background-color: unquote(\"rgb(#{$palette-green-A200})\") !important;\n  }\n\n  .mdl-color-text--green-A400 {\n    color: unquote(\"rgb(#{$palette-green-A400})\") !important;\n  }\n\n  .mdl-color--green-A400 {\n    background-color: unquote(\"rgb(#{$palette-green-A400})\") !important;\n  }\n\n  .mdl-color-text--green-A700 {\n    color: unquote(\"rgb(#{$palette-green-A700})\") !important;\n  }\n\n  .mdl-color--green-A700 {\n    background-color: unquote(\"rgb(#{$palette-green-A700})\") !important;\n  }\n\n  // Light Green\n\n  .mdl-color-text--light-green {\n    color: unquote(\"rgb(#{$palette-light-green-500})\") !important;\n  }\n\n  .mdl-color--light-green {\n    background-color: unquote(\"rgb(#{$palette-light-green-500})\") !important;\n  }\n\n  .mdl-color-text--light-green-50 {\n    color: unquote(\"rgb(#{$palette-light-green-50})\") !important;\n  }\n\n  .mdl-color--light-green-50 {\n    background-color: unquote(\"rgb(#{$palette-light-green-50})\") !important;\n  }\n\n  .mdl-color-text--light-green-100 {\n    color: unquote(\"rgb(#{$palette-light-green-100})\") !important;\n  }\n\n  .mdl-color--light-green-100 {\n    background-color: unquote(\"rgb(#{$palette-light-green-100})\") !important;\n  }\n\n  .mdl-color-text--light-green-200 {\n    color: unquote(\"rgb(#{$palette-light-green-200})\") !important;\n  }\n\n  .mdl-color--light-green-200 {\n    background-color: unquote(\"rgb(#{$palette-light-green-200})\") !important;\n  }\n\n  .mdl-color-text--light-green-300 {\n    color: unquote(\"rgb(#{$palette-light-green-300})\") !important;\n  }\n\n  .mdl-color--light-green-300 {\n    background-color: unquote(\"rgb(#{$palette-light-green-300})\") !important;\n  }\n\n  .mdl-color-text--light-green-400 {\n    color: unquote(\"rgb(#{$palette-light-green-400})\") !important;\n  }\n\n  .mdl-color--light-green-400 {\n    background-color: unquote(\"rgb(#{$palette-light-green-400})\") !important;\n  }\n\n  .mdl-color-text--light-green-500 {\n    color: unquote(\"rgb(#{$palette-light-green-500})\") !important;\n  }\n\n  .mdl-color--light-green-500 {\n    background-color: unquote(\"rgb(#{$palette-light-green-500})\") !important;\n  }\n\n  .mdl-color-text--light-green-600 {\n    color: unquote(\"rgb(#{$palette-light-green-600})\") !important;\n  }\n\n  .mdl-color--light-green-600 {\n    background-color: unquote(\"rgb(#{$palette-light-green-600})\") !important;\n  }\n\n  .mdl-color-text--light-green-700 {\n    color: unquote(\"rgb(#{$palette-light-green-700})\") !important;\n  }\n\n  .mdl-color--light-green-700 {\n    background-color: unquote(\"rgb(#{$palette-light-green-700})\") !important;\n  }\n\n  .mdl-color-text--light-green-800 {\n    color: unquote(\"rgb(#{$palette-light-green-800})\") !important;\n  }\n\n  .mdl-color--light-green-800 {\n    background-color: unquote(\"rgb(#{$palette-light-green-800})\") !important;\n  }\n\n  .mdl-color-text--light-green-900 {\n    color: unquote(\"rgb(#{$palette-light-green-900})\") !important;\n  }\n\n  .mdl-color--light-green-900 {\n    background-color: unquote(\"rgb(#{$palette-light-green-900})\") !important;\n  }\n\n  .mdl-color-text--light-green-A100 {\n    color: unquote(\"rgb(#{$palette-light-green-A100})\") !important;\n  }\n\n  .mdl-color--light-green-A100 {\n    background-color: unquote(\"rgb(#{$palette-light-green-A100})\") !important;\n  }\n\n  .mdl-color-text--light-green-A200 {\n    color: unquote(\"rgb(#{$palette-light-green-A200})\") !important;\n  }\n\n  .mdl-color--light-green-A200 {\n    background-color: unquote(\"rgb(#{$palette-light-green-A200})\") !important;\n  }\n\n  .mdl-color-text--light-green-A400 {\n    color: unquote(\"rgb(#{$palette-light-green-A400})\") !important;\n  }\n\n  .mdl-color--light-green-A400 {\n    background-color: unquote(\"rgb(#{$palette-light-green-A400})\") !important;\n  }\n\n  .mdl-color-text--light-green-A700 {\n    color: unquote(\"rgb(#{$palette-light-green-A700})\") !important;\n  }\n\n  .mdl-color--light-green-A700 {\n    background-color: unquote(\"rgb(#{$palette-light-green-A700})\") !important;\n  }\n\n  // Lime\n\n  .mdl-color-text--lime {\n    color: unquote(\"rgb(#{$palette-lime-500})\") !important;\n  }\n\n  .mdl-color--lime {\n    background-color: unquote(\"rgb(#{$palette-lime-500})\") !important;\n  }\n\n  .mdl-color-text--lime-50 {\n    color: unquote(\"rgb(#{$palette-lime-50})\") !important;\n  }\n\n  .mdl-color--lime-50 {\n    background-color: unquote(\"rgb(#{$palette-lime-50})\") !important;\n  }\n\n  .mdl-color-text--lime-100 {\n    color: unquote(\"rgb(#{$palette-lime-100})\") !important;\n  }\n\n  .mdl-color--lime-100 {\n    background-color: unquote(\"rgb(#{$palette-lime-100})\") !important;\n  }\n\n  .mdl-color-text--lime-200 {\n    color: unquote(\"rgb(#{$palette-lime-200})\") !important;\n  }\n\n  .mdl-color--lime-200 {\n    background-color: unquote(\"rgb(#{$palette-lime-200})\") !important;\n  }\n\n  .mdl-color-text--lime-300 {\n    color: unquote(\"rgb(#{$palette-lime-300})\") !important;\n  }\n\n  .mdl-color--lime-300 {\n    background-color: unquote(\"rgb(#{$palette-lime-300})\") !important;\n  }\n\n  .mdl-color-text--lime-400 {\n    color: unquote(\"rgb(#{$palette-lime-400})\") !important;\n  }\n\n  .mdl-color--lime-400 {\n    background-color: unquote(\"rgb(#{$palette-lime-400})\") !important;\n  }\n\n  .mdl-color-text--lime-500 {\n    color: unquote(\"rgb(#{$palette-lime-500})\") !important;\n  }\n\n  .mdl-color--lime-500 {\n    background-color: unquote(\"rgb(#{$palette-lime-500})\") !important;\n  }\n\n  .mdl-color-text--lime-600 {\n    color: unquote(\"rgb(#{$palette-lime-600})\") !important;\n  }\n\n  .mdl-color--lime-600 {\n    background-color: unquote(\"rgb(#{$palette-lime-600})\") !important;\n  }\n\n  .mdl-color-text--lime-700 {\n    color: unquote(\"rgb(#{$palette-lime-700})\") !important;\n  }\n\n  .mdl-color--lime-700 {\n    background-color: unquote(\"rgb(#{$palette-lime-700})\") !important;\n  }\n\n  .mdl-color-text--lime-800 {\n    color: unquote(\"rgb(#{$palette-lime-800})\") !important;\n  }\n\n  .mdl-color--lime-800 {\n    background-color: unquote(\"rgb(#{$palette-lime-800})\") !important;\n  }\n\n  .mdl-color-text--lime-900 {\n    color: unquote(\"rgb(#{$palette-lime-900})\") !important;\n  }\n\n  .mdl-color--lime-900 {\n    background-color: unquote(\"rgb(#{$palette-lime-900})\") !important;\n  }\n\n  .mdl-color-text--lime-A100 {\n    color: unquote(\"rgb(#{$palette-lime-A100})\") !important;\n  }\n\n  .mdl-color--lime-A100 {\n    background-color: unquote(\"rgb(#{$palette-lime-A100})\") !important;\n  }\n\n  .mdl-color-text--lime-A200 {\n    color: unquote(\"rgb(#{$palette-lime-A200})\") !important;\n  }\n\n  .mdl-color--lime-A200 {\n    background-color: unquote(\"rgb(#{$palette-lime-A200})\") !important;\n  }\n\n  .mdl-color-text--lime-A400 {\n    color: unquote(\"rgb(#{$palette-lime-A400})\") !important;\n  }\n\n  .mdl-color--lime-A400 {\n    background-color: unquote(\"rgb(#{$palette-lime-A400})\") !important;\n  }\n\n  .mdl-color-text--lime-A700 {\n    color: unquote(\"rgb(#{$palette-lime-A700})\") !important;\n  }\n\n  .mdl-color--lime-A700 {\n    background-color: unquote(\"rgb(#{$palette-lime-A700})\") !important;\n  }\n\n  // Yellow\n\n  .mdl-color-text--yellow {\n    color: unquote(\"rgb(#{$palette-yellow-500})\") !important;\n  }\n\n  .mdl-color--yellow {\n    background-color: unquote(\"rgb(#{$palette-yellow-500})\") !important;\n  }\n\n  .mdl-color-text--yellow-50 {\n    color: unquote(\"rgb(#{$palette-yellow-50})\") !important;\n  }\n\n  .mdl-color--yellow-50 {\n    background-color: unquote(\"rgb(#{$palette-yellow-50})\") !important;\n  }\n\n  .mdl-color-text--yellow-100 {\n    color: unquote(\"rgb(#{$palette-yellow-100})\") !important;\n  }\n\n  .mdl-color--yellow-100 {\n    background-color: unquote(\"rgb(#{$palette-yellow-100})\") !important;\n  }\n\n  .mdl-color-text--yellow-200 {\n    color: unquote(\"rgb(#{$palette-yellow-200})\") !important;\n  }\n\n  .mdl-color--yellow-200 {\n    background-color: unquote(\"rgb(#{$palette-yellow-200})\") !important;\n  }\n\n  .mdl-color-text--yellow-300 {\n    color: unquote(\"rgb(#{$palette-yellow-300})\") !important;\n  }\n\n  .mdl-color--yellow-300 {\n    background-color: unquote(\"rgb(#{$palette-yellow-300})\") !important;\n  }\n\n  .mdl-color-text--yellow-400 {\n    color: unquote(\"rgb(#{$palette-yellow-400})\") !important;\n  }\n\n  .mdl-color--yellow-400 {\n    background-color: unquote(\"rgb(#{$palette-yellow-400})\") !important;\n  }\n\n  .mdl-color-text--yellow-500 {\n    color: unquote(\"rgb(#{$palette-yellow-500})\") !important;\n  }\n\n  .mdl-color--yellow-500 {\n    background-color: unquote(\"rgb(#{$palette-yellow-500})\") !important;\n  }\n\n  .mdl-color-text--yellow-600 {\n    color: unquote(\"rgb(#{$palette-yellow-600})\") !important;\n  }\n\n  .mdl-color--yellow-600 {\n    background-color: unquote(\"rgb(#{$palette-yellow-600})\") !important;\n  }\n\n  .mdl-color-text--yellow-700 {\n    color: unquote(\"rgb(#{$palette-yellow-700})\") !important;\n  }\n\n  .mdl-color--yellow-700 {\n    background-color: unquote(\"rgb(#{$palette-yellow-700})\") !important;\n  }\n\n  .mdl-color-text--yellow-800 {\n    color: unquote(\"rgb(#{$palette-yellow-800})\") !important;\n  }\n\n  .mdl-color--yellow-800 {\n    background-color: unquote(\"rgb(#{$palette-yellow-800})\") !important;\n  }\n\n  .mdl-color-text--yellow-900 {\n    color: unquote(\"rgb(#{$palette-yellow-900})\") !important;\n  }\n\n  .mdl-color--yellow-900 {\n    background-color: unquote(\"rgb(#{$palette-yellow-900})\") !important;\n  }\n\n  .mdl-color-text--yellow-A100 {\n    color: unquote(\"rgb(#{$palette-yellow-A100})\") !important;\n  }\n\n  .mdl-color--yellow-A100 {\n    background-color: unquote(\"rgb(#{$palette-yellow-A100})\") !important;\n  }\n\n  .mdl-color-text--yellow-A200 {\n    color: unquote(\"rgb(#{$palette-yellow-A200})\") !important;\n  }\n\n  .mdl-color--yellow-A200 {\n    background-color: unquote(\"rgb(#{$palette-yellow-A200})\") !important;\n  }\n\n  .mdl-color-text--yellow-A400 {\n    color: unquote(\"rgb(#{$palette-yellow-A400})\") !important;\n  }\n\n  .mdl-color--yellow-A400 {\n    background-color: unquote(\"rgb(#{$palette-yellow-A400})\") !important;\n  }\n\n  .mdl-color-text--yellow-A700 {\n    color: unquote(\"rgb(#{$palette-yellow-A700})\") !important;\n  }\n\n  .mdl-color--yellow-A700 {\n    background-color: unquote(\"rgb(#{$palette-yellow-A700})\") !important;\n  }\n\n  // Amber\n\n  .mdl-color-text--amber {\n    color: unquote(\"rgb(#{$palette-amber-500})\") !important;\n  }\n\n  .mdl-color--amber {\n    background-color: unquote(\"rgb(#{$palette-amber-500})\") !important;\n  }\n\n  .mdl-color-text--amber-50 {\n    color: unquote(\"rgb(#{$palette-amber-50})\") !important;\n  }\n\n  .mdl-color--amber-50 {\n    background-color: unquote(\"rgb(#{$palette-amber-50})\") !important;\n  }\n\n  .mdl-color-text--amber-100 {\n    color: unquote(\"rgb(#{$palette-amber-100})\") !important;\n  }\n\n  .mdl-color--amber-100 {\n    background-color: unquote(\"rgb(#{$palette-amber-100})\") !important;\n  }\n\n  .mdl-color-text--amber-200 {\n    color: unquote(\"rgb(#{$palette-amber-200})\") !important;\n  }\n\n  .mdl-color--amber-200 {\n    background-color: unquote(\"rgb(#{$palette-amber-200})\") !important;\n  }\n\n  .mdl-color-text--amber-300 {\n    color: unquote(\"rgb(#{$palette-amber-300})\") !important;\n  }\n\n  .mdl-color--amber-300 {\n    background-color: unquote(\"rgb(#{$palette-amber-300})\") !important;\n  }\n\n  .mdl-color-text--amber-400 {\n    color: unquote(\"rgb(#{$palette-amber-400})\") !important;\n  }\n\n  .mdl-color--amber-400 {\n    background-color: unquote(\"rgb(#{$palette-amber-400})\") !important;\n  }\n\n  .mdl-color-text--amber-500 {\n    color: unquote(\"rgb(#{$palette-amber-500})\") !important;\n  }\n\n  .mdl-color--amber-500 {\n    background-color: unquote(\"rgb(#{$palette-amber-500})\") !important;\n  }\n\n  .mdl-color-text--amber-600 {\n    color: unquote(\"rgb(#{$palette-amber-600})\") !important;\n  }\n\n  .mdl-color--amber-600 {\n    background-color: unquote(\"rgb(#{$palette-amber-600})\") !important;\n  }\n\n  .mdl-color-text--amber-700 {\n    color: unquote(\"rgb(#{$palette-amber-700})\") !important;\n  }\n\n  .mdl-color--amber-700 {\n    background-color: unquote(\"rgb(#{$palette-amber-700})\") !important;\n  }\n\n  .mdl-color-text--amber-800 {\n    color: unquote(\"rgb(#{$palette-amber-800})\") !important;\n  }\n\n  .mdl-color--amber-800 {\n    background-color: unquote(\"rgb(#{$palette-amber-800})\") !important;\n  }\n\n  .mdl-color-text--amber-900 {\n    color: unquote(\"rgb(#{$palette-amber-900})\") !important;\n  }\n\n  .mdl-color--amber-900 {\n    background-color: unquote(\"rgb(#{$palette-amber-900})\") !important;\n  }\n\n  .mdl-color-text--amber-A100 {\n    color: unquote(\"rgb(#{$palette-amber-A100})\") !important;\n  }\n\n  .mdl-color--amber-A100 {\n    background-color: unquote(\"rgb(#{$palette-amber-A100})\") !important;\n  }\n\n  .mdl-color-text--amber-A200 {\n    color: unquote(\"rgb(#{$palette-amber-A200})\") !important;\n  }\n\n  .mdl-color--amber-A200 {\n    background-color: unquote(\"rgb(#{$palette-amber-A200})\") !important;\n  }\n\n  .mdl-color-text--amber-A400 {\n    color: unquote(\"rgb(#{$palette-amber-A400})\") !important;\n  }\n\n  .mdl-color--amber-A400 {\n    background-color: unquote(\"rgb(#{$palette-amber-A400})\") !important;\n  }\n\n  .mdl-color-text--amber-A700 {\n    color: unquote(\"rgb(#{$palette-amber-A700})\") !important;\n  }\n\n  .mdl-color--amber-A700 {\n    background-color: unquote(\"rgb(#{$palette-amber-A700})\") !important;\n  }\n\n  // Orange\n\n  .mdl-color-text--orange {\n    color: unquote(\"rgb(#{$palette-orange-500})\") !important;\n  }\n\n  .mdl-color--orange {\n    background-color: unquote(\"rgb(#{$palette-orange-500})\") !important;\n  }\n\n  .mdl-color-text--orange-50 {\n    color: unquote(\"rgb(#{$palette-orange-50})\") !important;\n  }\n\n  .mdl-color--orange-50 {\n    background-color: unquote(\"rgb(#{$palette-orange-50})\") !important;\n  }\n\n  .mdl-color-text--orange-100 {\n    color: unquote(\"rgb(#{$palette-orange-100})\") !important;\n  }\n\n  .mdl-color--orange-100 {\n    background-color: unquote(\"rgb(#{$palette-orange-100})\") !important;\n  }\n\n  .mdl-color-text--orange-200 {\n    color: unquote(\"rgb(#{$palette-orange-200})\") !important;\n  }\n\n  .mdl-color--orange-200 {\n    background-color: unquote(\"rgb(#{$palette-orange-200})\") !important;\n  }\n\n  .mdl-color-text--orange-300 {\n    color: unquote(\"rgb(#{$palette-orange-300})\") !important;\n  }\n\n  .mdl-color--orange-300 {\n    background-color: unquote(\"rgb(#{$palette-orange-300})\") !important;\n  }\n\n  .mdl-color-text--orange-400 {\n    color: unquote(\"rgb(#{$palette-orange-400})\") !important;\n  }\n\n  .mdl-color--orange-400 {\n    background-color: unquote(\"rgb(#{$palette-orange-400})\") !important;\n  }\n\n  .mdl-color-text--orange-500 {\n    color: unquote(\"rgb(#{$palette-orange-500})\") !important;\n  }\n\n  .mdl-color--orange-500 {\n    background-color: unquote(\"rgb(#{$palette-orange-500})\") !important;\n  }\n\n  .mdl-color-text--orange-600 {\n    color: unquote(\"rgb(#{$palette-orange-600})\") !important;\n  }\n\n  .mdl-color--orange-600 {\n    background-color: unquote(\"rgb(#{$palette-orange-600})\") !important;\n  }\n\n  .mdl-color-text--orange-700 {\n    color: unquote(\"rgb(#{$palette-orange-700})\") !important;\n  }\n\n  .mdl-color--orange-700 {\n    background-color: unquote(\"rgb(#{$palette-orange-700})\") !important;\n  }\n\n  .mdl-color-text--orange-800 {\n    color: unquote(\"rgb(#{$palette-orange-800})\") !important;\n  }\n\n  .mdl-color--orange-800 {\n    background-color: unquote(\"rgb(#{$palette-orange-800})\") !important;\n  }\n\n  .mdl-color-text--orange-900 {\n    color: unquote(\"rgb(#{$palette-orange-900})\") !important;\n  }\n\n  .mdl-color--orange-900 {\n    background-color: unquote(\"rgb(#{$palette-orange-900})\") !important;\n  }\n\n  .mdl-color-text--orange-A100 {\n    color: unquote(\"rgb(#{$palette-orange-A100})\") !important;\n  }\n\n  .mdl-color--orange-A100 {\n    background-color: unquote(\"rgb(#{$palette-orange-A100})\") !important;\n  }\n\n  .mdl-color-text--orange-A200 {\n    color: unquote(\"rgb(#{$palette-orange-A200})\") !important;\n  }\n\n  .mdl-color--orange-A200 {\n    background-color: unquote(\"rgb(#{$palette-orange-A200})\") !important;\n  }\n\n  .mdl-color-text--orange-A400 {\n    color: unquote(\"rgb(#{$palette-orange-A400})\") !important;\n  }\n\n  .mdl-color--orange-A400 {\n    background-color: unquote(\"rgb(#{$palette-orange-A400})\") !important;\n  }\n\n  .mdl-color-text--orange-A700 {\n    color: unquote(\"rgb(#{$palette-orange-A700})\") !important;\n  }\n\n  .mdl-color--orange-A700 {\n    background-color: unquote(\"rgb(#{$palette-orange-A700})\") !important;\n  }\n\n  // Deep Orange\n\n  .mdl-color-text--deep-orange {\n    color: unquote(\"rgb(#{$palette-deep-orange-500})\") !important;\n  }\n\n  .mdl-color--deep-orange {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-500})\") !important;\n  }\n\n  .mdl-color-text--deep-orange-50 {\n    color: unquote(\"rgb(#{$palette-deep-orange-50})\") !important;\n  }\n\n  .mdl-color--deep-orange-50 {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-50})\") !important;\n  }\n\n  .mdl-color-text--deep-orange-100 {\n    color: unquote(\"rgb(#{$palette-deep-orange-100})\") !important;\n  }\n\n  .mdl-color--deep-orange-100 {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-100})\") !important;\n  }\n\n  .mdl-color-text--deep-orange-200 {\n    color: unquote(\"rgb(#{$palette-deep-orange-200})\") !important;\n  }\n\n  .mdl-color--deep-orange-200 {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-200})\") !important;\n  }\n\n  .mdl-color-text--deep-orange-300 {\n    color: unquote(\"rgb(#{$palette-deep-orange-300})\") !important;\n  }\n\n  .mdl-color--deep-orange-300 {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-300})\") !important;\n  }\n\n  .mdl-color-text--deep-orange-400 {\n    color: unquote(\"rgb(#{$palette-deep-orange-400})\") !important;\n  }\n\n  .mdl-color--deep-orange-400 {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-400})\") !important;\n  }\n\n  .mdl-color-text--deep-orange-500 {\n    color: unquote(\"rgb(#{$palette-deep-orange-500})\") !important;\n  }\n\n  .mdl-color--deep-orange-500 {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-500})\") !important;\n  }\n\n  .mdl-color-text--deep-orange-600 {\n    color: unquote(\"rgb(#{$palette-deep-orange-600})\") !important;\n  }\n\n  .mdl-color--deep-orange-600 {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-600})\") !important;\n  }\n\n  .mdl-color-text--deep-orange-700 {\n    color: unquote(\"rgb(#{$palette-deep-orange-700})\") !important;\n  }\n\n  .mdl-color--deep-orange-700 {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-700})\") !important;\n  }\n\n  .mdl-color-text--deep-orange-800 {\n    color: unquote(\"rgb(#{$palette-deep-orange-800})\") !important;\n  }\n\n  .mdl-color--deep-orange-800 {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-800})\") !important;\n  }\n\n  .mdl-color-text--deep-orange-900 {\n    color: unquote(\"rgb(#{$palette-deep-orange-900})\") !important;\n  }\n\n  .mdl-color--deep-orange-900 {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-900})\") !important;\n  }\n\n  .mdl-color-text--deep-orange-A100 {\n    color: unquote(\"rgb(#{$palette-deep-orange-A100})\") !important;\n  }\n\n  .mdl-color--deep-orange-A100 {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-A100})\") !important;\n  }\n\n  .mdl-color-text--deep-orange-A200 {\n    color: unquote(\"rgb(#{$palette-deep-orange-A200})\") !important;\n  }\n\n  .mdl-color--deep-orange-A200 {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-A200})\") !important;\n  }\n\n  .mdl-color-text--deep-orange-A400 {\n    color: unquote(\"rgb(#{$palette-deep-orange-A400})\") !important;\n  }\n\n  .mdl-color--deep-orange-A400 {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-A400})\") !important;\n  }\n\n  .mdl-color-text--deep-orange-A700 {\n    color: unquote(\"rgb(#{$palette-deep-orange-A700})\") !important;\n  }\n\n  .mdl-color--deep-orange-A700 {\n    background-color: unquote(\"rgb(#{$palette-deep-orange-A700})\") !important;\n  }\n\n  // Brown\n\n  .mdl-color-text--brown {\n    color: unquote(\"rgb(#{$palette-brown-500})\") !important;\n  }\n\n  .mdl-color--brown {\n    background-color: unquote(\"rgb(#{$palette-brown-500})\") !important;\n  }\n\n  .mdl-color-text--brown-50 {\n    color: unquote(\"rgb(#{$palette-brown-50})\") !important;\n  }\n\n  .mdl-color--brown-50 {\n    background-color: unquote(\"rgb(#{$palette-brown-50})\") !important;\n  }\n\n  .mdl-color-text--brown-100 {\n    color: unquote(\"rgb(#{$palette-brown-100})\") !important;\n  }\n\n  .mdl-color--brown-100 {\n    background-color: unquote(\"rgb(#{$palette-brown-100})\") !important;\n  }\n\n  .mdl-color-text--brown-200 {\n    color: unquote(\"rgb(#{$palette-brown-200})\") !important;\n  }\n\n  .mdl-color--brown-200 {\n    background-color: unquote(\"rgb(#{$palette-brown-200})\") !important;\n  }\n\n  .mdl-color-text--brown-300 {\n    color: unquote(\"rgb(#{$palette-brown-300})\") !important;\n  }\n\n  .mdl-color--brown-300 {\n    background-color: unquote(\"rgb(#{$palette-brown-300})\") !important;\n  }\n\n  .mdl-color-text--brown-400 {\n    color: unquote(\"rgb(#{$palette-brown-400})\") !important;\n  }\n\n  .mdl-color--brown-400 {\n    background-color: unquote(\"rgb(#{$palette-brown-400})\") !important;\n  }\n\n  .mdl-color-text--brown-500 {\n    color: unquote(\"rgb(#{$palette-brown-500})\") !important;\n  }\n\n  .mdl-color--brown-500 {\n    background-color: unquote(\"rgb(#{$palette-brown-500})\") !important;\n  }\n\n  .mdl-color-text--brown-600 {\n    color: unquote(\"rgb(#{$palette-brown-600})\") !important;\n  }\n\n  .mdl-color--brown-600 {\n    background-color: unquote(\"rgb(#{$palette-brown-600})\") !important;\n  }\n\n  .mdl-color-text--brown-700 {\n    color: unquote(\"rgb(#{$palette-brown-700})\") !important;\n  }\n\n  .mdl-color--brown-700 {\n    background-color: unquote(\"rgb(#{$palette-brown-700})\") !important;\n  }\n\n  .mdl-color-text--brown-800 {\n    color: unquote(\"rgb(#{$palette-brown-800})\") !important;\n  }\n\n  .mdl-color--brown-800 {\n    background-color: unquote(\"rgb(#{$palette-brown-800})\") !important;\n  }\n\n  .mdl-color-text--brown-900 {\n    color: unquote(\"rgb(#{$palette-brown-900})\") !important;\n  }\n\n  .mdl-color--brown-900 {\n    background-color: unquote(\"rgb(#{$palette-brown-900})\") !important;\n  }\n\n  // Grey\n\n  .mdl-color-text--grey {\n    color: unquote(\"rgb(#{$palette-grey-500})\") !important;\n  }\n\n  .mdl-color--grey {\n    background-color: unquote(\"rgb(#{$palette-grey-500})\") !important;\n  }\n\n  .mdl-color-text--grey-50 {\n    color: unquote(\"rgb(#{$palette-grey-50})\") !important;\n  }\n\n  .mdl-color--grey-50 {\n    background-color: unquote(\"rgb(#{$palette-grey-50})\") !important;\n  }\n\n  .mdl-color-text--grey-100 {\n    color: unquote(\"rgb(#{$palette-grey-100})\") !important;\n  }\n\n  .mdl-color--grey-100 {\n    background-color: unquote(\"rgb(#{$palette-grey-100})\") !important;\n  }\n\n  .mdl-color-text--grey-200 {\n    color: unquote(\"rgb(#{$palette-grey-200})\") !important;\n  }\n\n  .mdl-color--grey-200 {\n    background-color: unquote(\"rgb(#{$palette-grey-200})\") !important;\n  }\n\n  .mdl-color-text--grey-300 {\n    color: unquote(\"rgb(#{$palette-grey-300})\") !important;\n  }\n\n  .mdl-color--grey-300 {\n    background-color: unquote(\"rgb(#{$palette-grey-300})\") !important;\n  }\n\n  .mdl-color-text--grey-400 {\n    color: unquote(\"rgb(#{$palette-grey-400})\") !important;\n  }\n\n  .mdl-color--grey-400 {\n    background-color: unquote(\"rgb(#{$palette-grey-400})\") !important;\n  }\n\n  .mdl-color-text--grey-500 {\n    color: unquote(\"rgb(#{$palette-grey-500})\") !important;\n  }\n\n  .mdl-color--grey-500 {\n    background-color: unquote(\"rgb(#{$palette-grey-500})\") !important;\n  }\n\n  .mdl-color-text--grey-600 {\n    color: unquote(\"rgb(#{$palette-grey-600})\") !important;\n  }\n\n  .mdl-color--grey-600 {\n    background-color: unquote(\"rgb(#{$palette-grey-600})\") !important;\n  }\n\n  .mdl-color-text--grey-700 {\n    color: unquote(\"rgb(#{$palette-grey-700})\") !important;\n  }\n\n  .mdl-color--grey-700 {\n    background-color: unquote(\"rgb(#{$palette-grey-700})\") !important;\n  }\n\n  .mdl-color-text--grey-800 {\n    color: unquote(\"rgb(#{$palette-grey-800})\") !important;\n  }\n\n  .mdl-color--grey-800 {\n    background-color: unquote(\"rgb(#{$palette-grey-800})\") !important;\n  }\n\n  .mdl-color-text--grey-900 {\n    color: unquote(\"rgb(#{$palette-grey-900})\") !important;\n  }\n\n  .mdl-color--grey-900 {\n    background-color: unquote(\"rgb(#{$palette-grey-900})\") !important;\n  }\n\n  // Blue Grey\n\n  .mdl-color-text--blue-grey {\n    color: unquote(\"rgb(#{$palette-blue-grey-500})\") !important;\n  }\n\n  .mdl-color--blue-grey {\n    background-color: unquote(\"rgb(#{$palette-blue-grey-500})\") !important;\n  }\n\n  .mdl-color-text--blue-grey-50 {\n    color: unquote(\"rgb(#{$palette-blue-grey-50})\") !important;\n  }\n\n  .mdl-color--blue-grey-50 {\n    background-color: unquote(\"rgb(#{$palette-blue-grey-50})\") !important;\n  }\n\n  .mdl-color-text--blue-grey-100 {\n    color: unquote(\"rgb(#{$palette-blue-grey-100})\") !important;\n  }\n\n  .mdl-color--blue-grey-100 {\n    background-color: unquote(\"rgb(#{$palette-blue-grey-100})\") !important;\n  }\n\n  .mdl-color-text--blue-grey-200 {\n    color: unquote(\"rgb(#{$palette-blue-grey-200})\") !important;\n  }\n\n  .mdl-color--blue-grey-200 {\n    background-color: unquote(\"rgb(#{$palette-blue-grey-200})\") !important;\n  }\n\n  .mdl-color-text--blue-grey-300 {\n    color: unquote(\"rgb(#{$palette-blue-grey-300})\") !important;\n  }\n\n  .mdl-color--blue-grey-300 {\n    background-color: unquote(\"rgb(#{$palette-blue-grey-300})\") !important;\n  }\n\n  .mdl-color-text--blue-grey-400 {\n    color: unquote(\"rgb(#{$palette-blue-grey-400})\") !important;\n  }\n\n  .mdl-color--blue-grey-400 {\n    background-color: unquote(\"rgb(#{$palette-blue-grey-400})\") !important;\n  }\n\n  .mdl-color-text--blue-grey-500 {\n    color: unquote(\"rgb(#{$palette-blue-grey-500})\") !important;\n  }\n\n  .mdl-color--blue-grey-500 {\n    background-color: unquote(\"rgb(#{$palette-blue-grey-500})\") !important;\n  }\n\n  .mdl-color-text--blue-grey-600 {\n    color: unquote(\"rgb(#{$palette-blue-grey-600})\") !important;\n  }\n\n  .mdl-color--blue-grey-600 {\n    background-color: unquote(\"rgb(#{$palette-blue-grey-600})\") !important;\n  }\n\n  .mdl-color-text--blue-grey-700 {\n    color: unquote(\"rgb(#{$palette-blue-grey-700})\") !important;\n  }\n\n  .mdl-color--blue-grey-700 {\n    background-color: unquote(\"rgb(#{$palette-blue-grey-700})\") !important;\n  }\n\n  .mdl-color-text--blue-grey-800 {\n    color: unquote(\"rgb(#{$palette-blue-grey-800})\") !important;\n  }\n\n  .mdl-color--blue-grey-800 {\n    background-color: unquote(\"rgb(#{$palette-blue-grey-800})\") !important;\n  }\n\n  .mdl-color-text--blue-grey-900 {\n    color: unquote(\"rgb(#{$palette-blue-grey-900})\") !important;\n  }\n\n  .mdl-color--blue-grey-900 {\n    background-color: unquote(\"rgb(#{$palette-blue-grey-900})\") !important;\n  }\n\n  // Black\n\n  .mdl-color--black {\n    background-color: unquote(\"rgb(#{$color-black})\") !important;\n  }\n\n  .mdl-color-text--black {\n    color: unquote(\"rgb(#{$color-black})\") !important;\n  }\n\n  // White\n\n  .mdl-color--white {\n    background-color: unquote(\"rgb(#{$color-white})\") !important;\n  }\n\n  .mdl-color-text--white {\n    color: unquote(\"rgb(#{$color-white})\") !important;\n  }\n}\n\n// Primary and accent\n\n.mdl-color--primary {\n  background-color: unquote(\"rgb(#{$color-primary})\") !important;\n}\n\n.mdl-color--primary-contrast {\n  background-color: unquote(\"rgb(#{$color-primary-contrast})\") !important;\n}\n\n.mdl-color--primary-dark {\n  background-color: unquote(\"rgb(#{$color-primary-dark})\") !important;\n}\n\n.mdl-color--accent {\n  background-color: unquote(\"rgb(#{$color-accent})\") !important;\n}\n\n.mdl-color--accent-contrast {\n  background-color: unquote(\"rgb(#{$color-accent-contrast})\") !important;\n}\n\n.mdl-color-text--primary {\n  color: unquote(\"rgb(#{$color-primary})\") !important;\n}\n\n.mdl-color-text--primary-contrast {\n  color: unquote(\"rgb(#{$color-primary-contrast})\") !important;\n}\n\n.mdl-color-text--primary-dark {\n  color: unquote(\"rgb(#{$color-primary-dark})\") !important;\n}\n\n.mdl-color-text--accent {\n  color: unquote(\"rgb(#{$color-accent})\") !important;\n}\n\n.mdl-color-text--accent-contrast {\n  color: unquote(\"rgb(#{$color-accent-contrast})\") !important;\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n\n.mdl-ripple {\n  background       : $ripple-bg-color;\n  border-radius    : 50%;\n  height           : 50px;\n  left             : 0;\n  opacity          : 0;\n  pointer-events   : none;\n  position         : absolute;\n  top              : 0;\n  transform        : translate(-50%, -50%);\n  width            : 50px;\n  overflow         : hidden;\n\n  &.is-animating {\n    transition: transform 0.3s $animation-curve-linear-out-slow-in,\n    width 0.3s $animation-curve-linear-out-slow-in,\n    height 0.3s $animation-curve-linear-out-slow-in,\n    opacity 0.6s $animation-curve-linear-out-slow-in;\n  }\n\n  &.is-visible {\n    opacity: 0.3;\n  }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n\n\n.mdl-animation--default {\n  transition-timing-function: $animation-curve-default;\n}\n\n.mdl-animation--fast-out-slow-in {\n  transition-timing-function: $animation-curve-fast-out-slow-in;\n}\n\n.mdl-animation--linear-out-slow-in {\n  transition-timing-function: $animation-curve-linear-out-slow-in;\n}\n\n.mdl-animation--fast-out-linear-in {\n  transition-timing-function: $animation-curve-fast-out-linear-in;\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n\n.mdl-badge {\n  position : relative;\n  white-space: nowrap;\n  margin-right: ($badge-size + $badge-padding);\n\n  &:not([data-badge]) {\n    margin-right: auto;\n  }\n\n  &[data-badge]:after {\n    content: attr(data-badge);\n\n    display: flex;\n    flex-direction: row;\n    flex-wrap: wrap;\n    justify-content: center;\n    align-content: center;\n    align-items: center;\n\n    position: absolute;\n    top: -($badge-size / 2);\n    right: -($badge-size + $badge-padding);\n\n    .mdl-button & {\n      top: -10px;\n      right: -5px;\n    }\n\n    font-family: $preferred_font;\n    font-weight: 600;\n    font-size: $badge-font-size;\n    width: $badge-size;\n    height: $badge-size;\n    border-radius : 50%;\n\n    background: $badge-background;\n    color: $badge-color;\n  }\n\n  &.mdl-badge--no-background {\n    &[data-badge]:after {\n      color: $badge-color-inverse;\n      background: $badge-background-inverse;\n\n      box-shadow: 0 0 1px gray;\n    }\n  }\n  &.mdl-badge--overlap {\n    margin-right: ($badge-size - $badge-overlap);\n    &:after {\n      right: -($badge-size - $badge-overlap);\n    }\n  }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n@import \"../mixins\";\n\n// The button component. Defaults to a flat button.\n.mdl-button {\n  background: transparent;\n  border: none;\n  border-radius: $button-border-radius;\n  color: $button-secondary-color;\n  position: relative;\n  height: $button-height;\n  margin: 0;\n  min-width: $button-min-width;\n  padding: 0 $button-padding;\n  display: inline-block;\n  @include typo-button();\n  overflow: hidden;\n  will-change: box-shadow;\n  transition: box-shadow 0.2s $animation-curve-fast-out-linear-in,\n              background-color 0.2s $animation-curve-default,\n              color 0.2s $animation-curve-default;\n  outline: none;\n  cursor: pointer;\n  text-decoration: none;\n  text-align: center;\n  line-height: $button-height;\n  vertical-align: middle;\n\n  &::-moz-focus-inner {\n    border: 0;\n  }\n\n  &:hover {\n    background-color: $button-hover-color;\n  }\n\n  &:focus:not(:active) {\n    background-color: $button-focus-color;\n  }\n\n  &:active {\n    background-color: $button-active-color;\n  }\n\n  &.mdl-button--colored {\n    color: $button-primary-color-alt;\n\n    &:focus:not(:active) {\n      background-color: $button-focus-color-alt;\n    }\n  }\n}\n\ninput.mdl-button[type=\"submit\"] {\n  -webkit-appearance:none;\n}\n\n  // Raised buttons\n  .mdl-button--raised {\n    background: $button-primary-color;\n    @include shadow-2dp();\n\n    &:active {\n      @include shadow-4dp();\n      background-color: $button-active-color;\n    }\n\n    &:focus:not(:active) {\n      @include focus-shadow();\n      background-color: $button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $button-primary-color-alt;\n      color: $button-secondary-color-alt;\n\n      &:hover {\n        background-color: $button-hover-color-alt;\n      }\n\n      &:active {\n        background-color: $button-active-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $button-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $button-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // FABs\n  .mdl-button--fab {\n    border-radius: 50%;\n    font-size: $button-fab-font-size;\n    height: $button-fab-size;\n    margin: auto;\n    min-width: $button-fab-size;\n    width: $button-fab-size;\n    padding: 0;\n    overflow: hidden;\n    background: $button-primary-color;\n    box-shadow: 0 1px 1.5px 0 rgba(0,0,0,0.12), 0 1px 1px 0 rgba(0,0,0,0.24);\n    position: relative;\n    line-height: normal;\n\n    & .material-icons {\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      transform: translate(- $button-fab-font-size / 2, - $button-fab-font-size / 2);\n      line-height: $button-fab-font-size;\n      width: $button-fab-font-size;\n    }\n\n    &.mdl-button--mini-fab {\n      height: $button-fab-size-mini;\n      min-width: $button-fab-size-mini;\n      width: $button-fab-size-mini;\n    }\n\n    & .mdl-button__ripple-container {\n      border-radius: 50%;\n      // Fixes clipping bug in Safari.\n      -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\n    }\n\n    &:active {\n      @include shadow-4dp();\n      background-color: $button-active-color;\n    }\n\n    &:focus:not(:active) {\n      @include focus-shadow();\n      background-color: $button-active-color;\n    }\n\n    &.mdl-button--colored {\n      background: $button-fab-color-alt;\n      color: $button-fab-text-color-alt;\n\n      &:hover {\n        background-color: $button-fab-hover-color-alt;\n      }\n\n      &:focus:not(:active) {\n        background-color: $button-fab-active-color-alt;\n      }\n\n      &:active {\n        background-color: $button-fab-active-color-alt;\n      }\n\n      & .mdl-ripple {\n        background: $button-fab-ripple-color-alt;\n      }\n    }\n  }\n\n\n  // Icon buttons\n  .mdl-button--icon {\n    border-radius: 50%;\n    font-size: $button-fab-font-size;\n    height: $button-icon-size;\n    margin-left: 0;\n    margin-right: 0;\n    min-width: $button-icon-size;\n    width: $button-icon-size;\n    padding: 0;\n    overflow: hidden;\n    color: inherit;\n    line-height: normal;\n\n    & .material-icons {\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      transform: translate(- $button-fab-font-size / 2, - $button-fab-font-size / 2);\n      line-height: $button-fab-font-size;\n      width: $button-fab-font-size;\n    }\n\n    &.mdl-button--mini-icon {\n      height: $button-icon-size-mini;\n      min-width: $button-icon-size-mini;\n      width: $button-icon-size-mini;\n\n      & .material-icons {\n        top: ($button-icon-size-mini - $button-fab-font-size) / 2;\n        left: ($button-icon-size-mini - $button-fab-font-size) / 2;\n      }\n    }\n\n    & .mdl-button__ripple-container {\n      border-radius: 50%;\n      // Fixes clipping bug in Safari.\n      -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\n    }\n  }\n\n\n  // Ripples\n  .mdl-button__ripple-container {\n    display: block;\n    height: 100%;\n    left: 0px;\n    position: absolute;\n    top: 0px;\n    width: 100%;\n    z-index: 0;\n    overflow: hidden;\n\n    .mdl-button[disabled] & .mdl-ripple,\n    .mdl-button.mdl-button--disabled & .mdl-ripple {\n      background-color: transparent;\n    }\n  }\n\n// Colorized buttons\n\n.mdl-button--primary.mdl-button--primary {\n  color: $button-primary-color-alt;\n  & .mdl-ripple {\n    background: $button-secondary-color-alt;\n  }\n  &.mdl-button--raised, &.mdl-button--fab {\n    color: $button-secondary-color-alt;\n    background-color: $button-primary-color-alt;\n  }\n}\n\n.mdl-button--accent.mdl-button--accent {\n  color: $button-fab-color-alt;\n  & .mdl-ripple {\n    background: $button-fab-text-color-alt;\n  }\n  &.mdl-button--raised, &.mdl-button--fab {\n    color: $button-fab-text-color-alt;\n    background-color: $button-fab-color-alt;\n  }\n}\n\n// Disabled buttons\n\n.mdl-button {\n  // Bump up specificity by using [disabled] twice.\n  &[disabled][disabled],\n  &.mdl-button--disabled.mdl-button--disabled {\n    color: $button-secondary-color-disabled;\n    cursor: default;\n    background-color: transparent;\n  }\n\n  &--fab {\n    // Bump up specificity by using [disabled] twice.\n    &[disabled][disabled],\n    &.mdl-button--disabled.mdl-button--disabled {\n      background-color: $button-primary-color-disabled;\n      color: $button-secondary-color-disabled;\n    }\n  }\n\n  &--raised {\n    // Bump up specificity by using [disabled] twice.\n    &[disabled][disabled],\n    &.mdl-button--disabled.mdl-button--disabled {\n      background-color: $button-primary-color-disabled;\n      color: $button-secondary-color-disabled;\n      box-shadow: none;\n    }\n  }\n  &--colored {\n    // Bump up specificity by using [disabled] twice.\n    &[disabled][disabled],\n    &.mdl-button--disabled.mdl-button--disabled {\n      color: $button-secondary-color-disabled;\n    }\n  }\n}\n\n// Align icons inside buttons with text\n.mdl-button .material-icons {\n  vertical-align: middle;\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n\n.mdl-card {\n  display: flex;\n  flex-direction: column;\n  font-size: $card-font-size;\n  font-weight: 400;\n  min-height: $card-height;\n  overflow: hidden;\n  width: $card-width;\n  z-index: $card-z-index;\n  position: relative;\n  background: $card-background-color;\n  border-radius: 2px;\n  box-sizing: border-box;\n}\n\n.mdl-card__media {\n  background-color: $card-image-placeholder-color;\n  background-repeat: repeat;\n  background-position: 50% 50%;\n  background-size: cover;\n  background-origin: padding-box;\n  background-attachment: scroll;\n  box-sizing: border-box;\n}\n\n.mdl-card__title {\n  align-items: center;\n  color: $card-text-color;\n  display: block;\n  display: flex;\n  justify-content: stretch;\n  line-height: normal;\n  padding: $card-vertical-padding $card-horizontal-padding;\n  perspective-origin: $card-title-perspective-origin-x $card-title-perspective-origin-y;\n  transform-origin: $card-title-transform-origin-x $card-title-transform-origin-y;\n  box-sizing: border-box;\n\n  &.mdl-card--border {\n    border-bottom: 1px solid $card-border-color;\n  }\n}\n\n.mdl-card__title-text {\n  align-self: flex-end;\n  color: inherit;\n  display: block;\n  display: flex;\n  font-size: $card-title-font-size;\n  font-weight: $card-title-text-font-weight;\n  line-height: normal;\n  overflow: hidden;\n  transform-origin: $card-title-text-transform-origin-x $card-title-text-transform-origin-y;\n  margin: 0;\n}\n\n.mdl-card__subtitle-text {\n  font-size: $card-subtitle-font-size;\n  color: $card-subtitle-color;\n  margin: 0;\n}\n\n.mdl-card__supporting-text {\n  color: $card-supporting-text-text-color;\n  font-size: $card-supporting-text-font-size;\n  line-height: $card-supporting-text-line-height;\n  overflow: hidden;\n  padding: $card-vertical-padding $card-horizontal-padding;\n  width: 90%;\n\n  &.mdl-card--border {\n    border-bottom: 1px solid $card-border-color;\n  }\n}\n\n.mdl-card__actions {\n  font-size: $card-actions-font-size;\n  line-height: normal;\n  width: 100%;\n  background-color: rgba(0,0,0,0);\n  padding: 8px;\n  box-sizing: border-box;\n\n  &.mdl-card--border {\n    border-top: 1px solid $card-border-color;\n  }\n}\n\n.mdl-card--expand {\n  flex-grow: 1;\n}\n\n\n.mdl-card__menu {\n  position: absolute;\n  right: 16px;\n  top: 16px;\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n@import \"../mixins\";\n\n.mdl-checkbox {\n  position: relative;\n\n  z-index: 1;\n\n  vertical-align: middle;\n\n  display: inline-block;\n\n  box-sizing: border-box;\n  width: 100%;\n  height: $checkbox-label-height;\n  margin: 0;\n  padding: 0;\n\n  &.is-upgraded {\n    padding-left: $checkbox-button-size + $checkbox-padding;\n  }\n}\n\n.mdl-checkbox__input {\n  line-height: $checkbox-label-height;\n\n  .mdl-checkbox.is-upgraded & {\n    // Hide input element, while still making it respond to focus.\n    position: absolute;\n    width: 0;\n    height: 0;\n    margin: 0;\n    padding: 0;\n    opacity: 0;\n    -ms-appearance: none;\n    -moz-appearance: none;\n    -webkit-appearance: none;\n    appearance: none;\n    border: none;\n  }\n}\n\n.mdl-checkbox__box-outline {\n  position: absolute;\n  top: $checkbox-top-offset;\n  left: 0;\n\n  display: inline-block;\n\n  box-sizing: border-box;\n  width: $checkbox-button-size;\n  height: $checkbox-button-size;\n  margin: 0;\n\n  cursor: pointer;\n  overflow: hidden;\n\n  border: 2px solid $checkbox-off-color;\n  border-radius: 2px;\n\n  z-index: 2;\n\n  .mdl-checkbox.is-checked & {\n    border: 2px solid $checkbox-color;\n  }\n\n  fieldset[disabled] .mdl-checkbox &,\n  .mdl-checkbox.is-disabled & {\n    border: 2px solid $checkbox-disabled-color;\n    cursor: auto;\n  }\n}\n\n.mdl-checkbox__focus-helper {\n  position: absolute;\n  top: $checkbox-top-offset;\n  left: 0;\n\n  display: inline-block;\n\n  box-sizing: border-box;\n  width: $checkbox-button-size;\n  height: $checkbox-button-size;\n  border-radius: 50%;\n\n  background-color: transparent;\n\n  .mdl-checkbox.is-focused & {\n    box-shadow: 0 0 0px ($checkbox-button-size / 2) rgba(0, 0, 0, 0.1);\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n\n  .mdl-checkbox.is-focused.is-checked & {\n    box-shadow: 0 0 0px ($checkbox-button-size / 2) $checkbox-focus-color;\n    background-color: $checkbox-focus-color;\n  }\n}\n\n.mdl-checkbox__tick-outline {\n  position: absolute;\n  top: 0;\n  left: 0;\n  height: 100%;\n  width: 100%;\n  mask: url(\"#{$checkbox-image-path}/tick-mask.svg?embed\");\n\n  background: transparent;\n  @include material-animation-default(0.28s);\n  transition-property: background;\n\n  .mdl-checkbox.is-checked & {\n    background: $checkbox-color url(\"#{$checkbox-image-path}/tick.svg?embed\");\n  }\n\n  fieldset[disabled] .mdl-checkbox.is-checked &,\n  .mdl-checkbox.is-checked.is-disabled & {\n    background: $checkbox-disabled-color url(\"#{$checkbox-image-path}/tick.svg?embed\");\n  }\n}\n\n.mdl-checkbox__label {\n  position: relative;\n  cursor: pointer;\n  font-size: $checkbox-label-font-size;\n  line-height: $checkbox-label-height;\n  margin: 0;\n\n  fieldset[disabled] .mdl-checkbox &,\n  .mdl-checkbox.is-disabled & {\n    color: $checkbox-disabled-color;\n    cursor: auto;\n  }\n}\n\n.mdl-checkbox__ripple-container {\n  position: absolute;\n  z-index: 2;\n  top: -(($checkbox-ripple-size - $checkbox-label-height) / 2);\n  left: -(($checkbox-ripple-size - $checkbox-button-size) / 2);\n\n  box-sizing: border-box;\n  width: $checkbox-ripple-size;\n  height: $checkbox-ripple-size;\n  border-radius: 50%;\n\n  cursor: pointer;\n\n  overflow: hidden;\n  -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\n\n  & .mdl-ripple {\n    background: $checkbox-color;\n  }\n\n  fieldset[disabled] .mdl-checkbox &,\n  .mdl-checkbox.is-disabled & {\n    cursor: auto;\n  }\n\n  fieldset[disabled] .mdl-checkbox & .mdl-ripple,\n  .mdl-checkbox.is-disabled & .mdl-ripple {\n    background: transparent;\n  }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n@import \"../mixins\";\n\n.mdl-chip {\n    height: $chip-height;\n    font-family: $preferred_font;\n    line-height: $chip-height;\n    padding: 0 12px;\n    border: 0;\n    border-radius: $chip-height / 2;\n    background-color: $chip-bg-color;\n    display: inline-block;\n    color: $text-color-primary;\n    margin: 2px 0;\n    font-size: 0;\n    white-space: nowrap;\n\n    &__text {\n        font-size: $chip-font-size;\n        vertical-align: middle;\n        display: inline-block;\n    }\n\n    &__action {\n        height: 24px;\n        width: 24px;\n        background: transparent;\n        opacity: 0.54;\n        display: inline-block;\n        cursor: pointer;\n        text-align: center;\n        vertical-align: middle;\n        padding: 0;\n        margin: 0 0 0 4px;\n        font-size: $chip-font-size;\n        text-decoration: none;\n        color: $text-color-primary;\n        border: none;\n        outline: none;\n        overflow: hidden;\n    }\n    \n    &__contact {\n        height: $chip-height;\n        width: $chip-height;\n        border-radius: $chip-height / 2;\n        display: inline-block;\n        vertical-align: middle;\n        margin-right: 8px;\n        overflow: hidden;\n        text-align: center;\n        font-size: 18px;\n        line-height: 32px;\n    }\n    \n    &:focus {\n        outline: 0;\n        @include shadow-2dp();\n    }\n    \n    &:active {\n        background-color: $chip-bg-active-color;\n    }\n    \n    &--deletable {\n        padding-right: 4px;\n    }\n    \n    &--contact {\n        padding-left: 0;\n    }\n}","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n@import \"../mixins\";\n\n.mdl-data-table {\n  position: relative;\n  border: $data-table-dividers;\n  border-collapse: collapse;\n  white-space: nowrap;\n  font-size: $data-table-font-size;\n  background-color: unquote(\"rgb(#{$color-white})\");\n\n  thead {\n    padding-bottom: 3px;\n\n    .mdl-data-table__select {\n      margin-top: 0;\n    }\n  }\n\n  tbody {\n    tr {\n      position: relative;\n      height: $data-table-row-height;\n      @include material-animation-default(0.28s);\n      transition-property: background-color;\n\n      &.is-selected {\n        background-color: $data-table-selection-color;\n      }\n\n      &:hover {\n        background-color: $data-table-hover-color;\n      }\n    }\n  }\n\n  td, th {\n    padding: 0 $data-table-column-padding 12px $data-table-column-padding;\n    text-align: right;\n\n    &:first-of-type {\n      padding-left: 24px;\n    }\n\n    &:last-of-type {\n      padding-right: 24px;\n    }\n  }\n\n  td {\n    position: relative;\n    vertical-align: middle;\n    height: $data-table-row-height;\n    border-top: $data-table-dividers;\n    border-bottom: $data-table-dividers;\n    padding-top: $data-table-cell-top;\n    box-sizing: border-box;\n\n    .mdl-data-table__select {\n      vertical-align: middle;\n    }\n  }\n\n  th {\n    position: relative;\n    vertical-align: bottom;\n    text-overflow: ellipsis;\n    @include typo-body-2();\n    height: $data-table-row-height;\n    font-size: $data-table-header-font-size;\n    color: $data-table-header-color;\n    padding-bottom: 8px;\n    box-sizing: border-box;\n\n    &.mdl-data-table__header--sorted-ascending,\n    &.mdl-data-table__header--sorted-descending {\n      color: $data-table-header-sorted-color;\n      &:before {\n        @include typo-icon;\n        font-size: $data-table-header-sort-icon-size;\n        content: \"\\e5d8\";\n        margin-right: 5px;\n        vertical-align: sub;\n      }\n      &:hover {\n        cursor: pointer;\n        &:before {\n          color: $data-table-header-sorted-icon-hover-color;\n        }\n      }\n    }\n    &.mdl-data-table__header--sorted-descending:before {\n      content: \"\\e5db\";\n    }\n  }\n}\n\n.mdl-data-table__select {\n  width: 16px;\n}\n\n.mdl-data-table__cell--non-numeric.mdl-data-table__cell--non-numeric {\n  text-align: left;\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n@import \"../mixins\";\n\n.mdl-dialog {\n    border: none;\n    @include shadow-24dp;\n    @include dialog-width;\n\n    &__title {\n        padding: 24px 24px 0;\n        margin: 0;\n        font-size: 2.5rem;\n    }\n    &__actions {\n        padding: 8px 8px 8px 24px;\n        display: flex;\n        flex-direction: row-reverse;\n        flex-wrap: wrap;\n        > * {\n            margin-right: 8px;\n            height: 36px;\n            &:first-child {\n                margin-right: 0;\n            }\n        }\n        &--full-width {\n          padding: 0 0 8px 0;\n          > * {\n            height: 48px;\n            flex: 0 0 100%;\n            padding-right: 16px;\n            margin-right: 0;\n            text-align: right;\n          }\n        }\n    }\n    &__content {\n        padding: 20px 24px 24px 24px;\n        color: $dialog-content-color;\n    }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n@import \"../mixins\";\n\n.mdl-mega-footer {\n  padding: $footer-min-padding $footer-padding-sides;\n\n  color: $footer-color;\n  background-color: $footer-bg-color;\n}\n\n\n.mdl-mega-footer--top-section:after,\n.mdl-mega-footer--middle-section:after,\n.mdl-mega-footer--bottom-section:after,\n.mdl-mega-footer__top-section:after,\n.mdl-mega-footer__middle-section:after,\n.mdl-mega-footer__bottom-section:after {\n  content: '';\n  display: block;\n  clear: both;\n}\n\n.mdl-mega-footer--left-section,\n.mdl-mega-footer__left-section {\n  margin-bottom: $footer-min-padding;\n}\n\n.mdl-mega-footer--right-section,\n.mdl-mega-footer__right-section {\n  margin-bottom: $footer-min-padding;\n}\n\n.mdl-mega-footer--right-section a,\n.mdl-mega-footer__right-section a {\n  display: block;\n\n  margin-bottom: $footer-min-padding;\n\n  color: inherit;\n  text-decoration: none;\n}\n\n@media screen and (min-width: 760px) {\n  .mdl-mega-footer--left-section,\n  .mdl-mega-footer__left-section {\n    float: left;\n  }\n\n  .mdl-mega-footer--right-section,\n  .mdl-mega-footer__right-section {\n    float: right;\n  }\n\n  .mdl-mega-footer--right-section a,\n  .mdl-mega-footer__right-section a {\n    display: inline-block;\n\n    margin-left: $footer-min-padding;\n\n    line-height: $footer-btn-size;\n    vertical-align: middle;\n  }\n}\n\n.mdl-mega-footer--social-btn,\n.mdl-mega-footer__social-btn {\n  width: $footer-btn-size;\n  height: $footer-btn-size;\n\n  padding: 0;\n  margin: 0;\n\n  background-color: $footer-button-fill-color;\n\n  border: none;\n}\n\n.mdl-mega-footer--drop-down-section,\n.mdl-mega-footer__drop-down-section {\n  display: block;\n\n  position: relative;\n}\n\n@media screen and (min-width: 760px) {\n  .mdl-mega-footer--drop-down-section,\n  .mdl-mega-footer__drop-down-section {\n    width: 33%;\n  }\n\n  .mdl-mega-footer--drop-down-section:nth-child(1),\n  .mdl-mega-footer--drop-down-section:nth-child(2),\n  .mdl-mega-footer__drop-down-section:nth-child(1),\n  .mdl-mega-footer__drop-down-section:nth-child(2) {\n    float: left;\n  }\n\n  .mdl-mega-footer--drop-down-section:nth-child(3),\n  .mdl-mega-footer__drop-down-section:nth-child(3) {\n    float: right;\n\n    &:after {\n      clear: right;\n    }\n  }\n\n  .mdl-mega-footer--drop-down-section:nth-child(4),\n  .mdl-mega-footer__drop-down-section:nth-child(4) {\n    clear: right;\n    float: right;\n  }\n\n  .mdl-mega-footer--middle-section:after,\n  .mdl-mega-footer__middle-section:after {\n    content: '';\n\n    display: block;\n\n    clear: both;\n  }\n\n  .mdl-mega-footer--bottom-section,\n  .mdl-mega-footer__bottom-section {\n    padding-top: 0;\n  }\n}\n\n@media screen and (min-width: 1024px) {\n  .mdl-mega-footer--drop-down-section,\n  .mdl-mega-footer--drop-down-section:nth-child(3),\n  .mdl-mega-footer--drop-down-section:nth-child(4),\n  .mdl-mega-footer__drop-down-section,\n  .mdl-mega-footer__drop-down-section:nth-child(3),\n  .mdl-mega-footer__drop-down-section:nth-child(4) {\n    width: 24%;\n\n    float: left;\n  }\n}\n\n.mdl-mega-footer--heading-checkbox,\n.mdl-mega-footer__heading-checkbox {\n  position: absolute;\n  width: 100%;\n  height: $footer-heading-line-height + ($footer-min-padding * 2);\n\n  padding: ($footer-min-padding * 2);\n  margin: 0;\n  margin-top: -$footer-min-padding;\n\n  cursor: pointer;\n\n  z-index: 1;\n  opacity: 0;\n\n  & + .mdl-mega-footer--heading:after,\n  & + .mdl-mega-footer__heading:after {\n    font-family: 'Material Icons';\n    content: '\\E5CE'\n  }\n}\n\n.mdl-mega-footer--heading-checkbox:checked,\n.mdl-mega-footer__heading-checkbox:checked {\n  // WebViews in iOS 9 break the \"~\" operator, and WebViews in OS X 10.10\n  // break consecutive \"+\" operators in some cases. Therefore, we need to use\n  // both here to cover all the bases.\n  & ~ .mdl-mega-footer--link-list,\n  & ~ .mdl-mega-footer__link-list,\n  & + .mdl-mega-footer--heading + .mdl-mega-footer--link-list,\n  & + .mdl-mega-footer__heading + .mdl-mega-footer__link-list {\n    display: none;\n  }\n\n  & + .mdl-mega-footer--heading:after,\n  & + .mdl-mega-footer__heading:after {\n    font-family: 'Material Icons';\n    content: '\\E5CF'\n  }\n}\n\n.mdl-mega-footer--heading,\n.mdl-mega-footer__heading {\n  position: relative;\n  width: 100%;\n\n  padding-right: $footer-heading-line-height + $footer-min-padding;\n  margin-bottom: $footer-min-padding;\n\n  box-sizing:border-box;\n\n  font-size: $footer-heading-font-size;\n  line-height: $footer-heading-line-height;\n\n  font-weight: 500;\n\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  overflow: hidden;\n\n  color: $footer-heading-color;\n}\n\n.mdl-mega-footer--heading:after,\n.mdl-mega-footer__heading:after {\n  content: '';\n\n  position: absolute;\n  top: 0;\n  right: 0;\n\n  display: block;\n\n  width: $footer-heading-line-height;\n  height: $footer-heading-line-height;\n\n  background-size: cover;\n}\n\n.mdl-mega-footer--link-list,\n.mdl-mega-footer__link-list {\n  list-style: none;\n\n  margin: 0;\n  padding: 0;\n\n  margin-bottom: $footer-min-padding * 2;\n  &:after {\n    clear: both;\n    display: block;\n    content: '';\n  }\n}\n\n.mdl-mega-footer--link-list li,\n.mdl-mega-footer__link-list li {\n  @include typo-body-1();\n  line-height: 20px;\n}\n\n.mdl-mega-footer--link-list a,\n.mdl-mega-footer__link-list a {\n  color: inherit;\n  text-decoration: none;\n  white-space: nowrap;\n}\n\n@media screen and (min-width: 760px) {\n  .mdl-mega-footer--heading-checkbox,\n  .mdl-mega-footer__heading-checkbox {\n    display: none;\n\n    & + .mdl-mega-footer--heading:after,\n    & + .mdl-mega-footer__heading:after {\n      content: '';\n    }\n  }\n  .mdl-mega-footer--heading-checkbox:checked,\n  .mdl-mega-footer__heading-checkbox:checked {\n    // WebViews in iOS 9 break the \"~\" operator, and WebViews in OS X 10.10\n    // break consecutive \"+\" operators in some cases. Therefore, we need to use\n    // both here to cover all the bases.\n    & ~ .mdl-mega-footer--link-list,\n    & ~ .mdl-mega-footer__link-list,\n    & + .mdl-mega-footer__heading + .mdl-mega-footer__link-list,\n    & + .mdl-mega-footer--heading + .mdl-mega-footer--link-list {\n      display: block;\n    }\n\n    & + .mdl-mega-footer--heading:after,\n    & + .mdl-mega-footer__heading:after {\n      content: '';\n    }\n  }\n}\n\n.mdl-mega-footer--bottom-section,\n.mdl-mega-footer__bottom-section {\n  padding-top: $footer-min-padding;\n  margin-bottom: $footer-min-padding;\n}\n\n.mdl-logo {\n  margin-bottom: $footer-min-padding;\n  color: white;\n}\n\n.mdl-mega-footer--bottom-section .mdl-mega-footer--link-list li,\n.mdl-mega-footer__bottom-section .mdl-mega-footer__link-list li {\n  float: left;\n\n  margin-bottom: 0;\n  margin-right: $footer-min-padding;\n}\n\n\n\n@media screen and (min-width: 760px) {\n  .mdl-logo {\n    float: left;\n\n    margin-bottom: 0;\n    margin-right: $footer-min-padding;\n  }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n\n.mdl-mini-footer {\n  display: flex;\n  flex-flow: row wrap;\n  justify-content: space-between;\n\n  padding: ($padding * 2) $padding;\n\n  color: $footer-color;\n  background-color: $footer-bg-color;\n\n  &:after {\n    content: '';\n    display: block;\n  }\n\n  & .mdl-logo {\n    line-height: $footer-btn-size;\n  }\n}\n\n.mdl-mini-footer--link-list,\n.mdl-mini-footer__link-list {\n  display: flex;\n  flex-flow: row nowrap;\n\n  list-style: none;\n\n  margin: 0;\n  padding: 0;\n\n  & li {\n    margin-bottom: 0;\n    margin-right: $padding;\n\n    @media screen and (min-width: 760px) {\n      line-height: $footer-btn-size;\n    }\n  }\n\n  & a {\n    color: inherit;\n    text-decoration: none;\n    white-space: nowrap;\n  }\n}\n\n.mdl-mini-footer--left-section,\n.mdl-mini-footer__left-section {\n  display: inline-block;\n  order: 0;\n}\n\n.mdl-mini-footer--right-section,\n.mdl-mini-footer__right-section {\n  display: inline-block;\n  order: 1;\n}\n\n.mdl-mini-footer--social-btn,\n.mdl-mini-footer__social-btn {\n  width: $footer-btn-size;\n  height: $footer-btn-size;\n\n  padding: 0;\n  margin: 0;\n\n  background-color: $footer-button-fill-color;\n\n  border: none;\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n\n.mdl-icon-toggle {\n  position: relative;\n\n  z-index: 1;\n\n  vertical-align: middle;\n\n  display: inline-block;\n  height: $icon-toggle-size;\n  margin: 0;\n  padding: 0;\n}\n\n.mdl-icon-toggle__input {\n  line-height: $icon-toggle-size;\n\n  .mdl-icon-toggle.is-upgraded & {\n    // Hide input element, while still making it respond to focus.\n    position: absolute;\n    width: 0;\n    height: 0;\n    margin: 0;\n    padding: 0;\n    opacity: 0;\n    -ms-appearance: none;\n    -moz-appearance: none;\n    -webkit-appearance: none;\n    appearance: none;\n    border: none;\n  }\n}\n\n.mdl-icon-toggle__label {\n  display: inline-block;\n  position: relative;\n  cursor: pointer;\n  height: $icon-toggle-size;\n  width: $icon-toggle-size;\n  min-width: $icon-toggle-size;\n  color: $icon-toggle-color;\n  border-radius: 50%;\n  padding: 0;\n  margin-left: 0;\n  margin-right: 0;\n  text-align: center;\n  background-color: transparent;\n  will-change: background-color;\n  transition: background-color 0.2s $animation-curve-default,\n  color 0.2s $animation-curve-default;\n\n  &.material-icons {\n    line-height: $icon-toggle-size;\n    font-size: $icon-toggle-font-size;\n  }\n\n  .mdl-icon-toggle.is-checked & {\n    color: $icon-toggle-checked-color;\n  }\n\n  .mdl-icon-toggle.is-disabled & {\n    color: $icon-toggle-disabled-color;\n    cursor: auto;\n    transition: none;\n  }\n\n  .mdl-icon-toggle.is-focused & {\n    background-color: $icon-toggle-focus-color;\n  }\n\n  .mdl-icon-toggle.is-focused.is-checked & {\n    background-color: $icon-toggle-checked-focus-color;\n  }\n}\n\n\n.mdl-icon-toggle__ripple-container {\n  position: absolute;\n  z-index: 2;\n  top: -(($icon-toggle-ripple-size - $icon-toggle-size) / 2);\n  left: -(($icon-toggle-ripple-size - $icon-toggle-size) / 2);\n\n  box-sizing: border-box;\n  width: $icon-toggle-ripple-size;\n  height: $icon-toggle-ripple-size;\n  border-radius: 50%;\n\n  cursor: pointer;\n\n  overflow: hidden;\n  -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\n\n  & .mdl-ripple {\n    background: $icon-toggle-color;\n  }\n\n  .mdl-icon-toggle.is-disabled & {\n    cursor: auto;\n  }\n\n  .mdl-icon-toggle.is-disabled & .mdl-ripple {\n    background: transparent;\n  }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n@import \"../mixins\";\n\n\n.mdl-list {\n  display: block;\n  padding: $list-border 0;\n  list-style: none;\n}\n\n.mdl-list__item {\n  @include typo-subhead();\n  line-height: 1;\n  display: flex;\n  min-height: $list-min-height;\n  box-sizing: border-box;\n  flex-direction: row;\n  flex-wrap: nowrap;\n  align-items: center;\n  padding: $list-min-padding;\n  cursor: default;\n  color: $list-main-text-text-color;\n  overflow: hidden;\n\n  & .mdl-list__item-primary-content {\n    order: 0;\n    flex-grow: 2;\n    text-decoration: none;\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n\n    & .mdl-list__item-icon {\n      margin-right: $list-icon-text-left-distance - $list-icon-size - $list-min-padding;\n    }\n\n    & .mdl-list__item-avatar {\n      margin-right: $list-avatar-text-left-distance - $list-avatar-size - $list-min-padding;\n    }\n  }\n\n  & .mdl-list__item-secondary-content {\n    display: flex;\n    flex-flow: column;\n    align-items: flex-end;\n    margin-left: $list-min-padding;\n\n    & .mdl-list__item-secondary-action label { display: inline; }\n    & .mdl-list__item-secondary-info {\n      @include typo-caption();\n      color: $list-supporting-text-text-color;\n    }\n    & .mdl-list__item-sub-header {\n      padding: 0 0 0 $list-min-padding;\n    }\n  }\n}\n\n.mdl-list__item-icon,\n.mdl-list__item-icon.material-icons {\n  height: $list-icon-size;\n  width: $list-icon-size;\n  font-size: $list-icon-size;\n  box-sizing: border-box;\n  color: $list-icon-color;\n}\n\n.mdl-list__item-avatar,\n.mdl-list__item-avatar.material-icons {\n  height: $list-avatar-size;\n  width: $list-avatar-size;\n  box-sizing: border-box;\n  border-radius: 50%;\n  // Set a background colour in case the user doesn't provide an image.\n  background-color: $list-icon-color;\n  // Set a font size and color in case the user provides a Material Icon.\n  font-size: $list-avatar-size;\n  color: $list-avatar-color;\n}\n\n.mdl-list__item--two-line {\n  height: $list-two-line-height;\n\n  & .mdl-list__item-primary-content {\n    height: $list-two-line-height - $list-min-padding - $list-bottom-padding;\n    line-height: 20px;\n    display: block;\n\n    & .mdl-list__item-avatar{\n      float: left;\n    }\n\n    & .mdl-list__item-icon {\n      float: left;\n      // Icons are aligned to center of text in a two line list.\n      margin-top:\n        ($list-two-line-height - $list-min-padding - $list-bottom-padding -\n         $list-icon-size) / 2;\n    }\n\n    & .mdl-list__item-secondary-content {\n      height: $list-two-line-height - $list-min-padding - $list-bottom-padding;\n    }\n\n    & .mdl-list__item-sub-title {\n      @include typo-body-1();\n      line-height: 18px;\n      color: $list-supporting-text-text-color;\n      display: block;\n      padding: 0;\n    }\n  }\n}\n\n.mdl-list__item--three-line {\n  height: $list-three-line-height;\n\n  & .mdl-list__item-primary-content {\n    height: $list-three-line-height - $list-min-padding - $list-bottom-padding;\n    line-height: 20px;\n    display: block;\n\n    & .mdl-list__item-avatar,\n    & .mdl-list__item-icon {\n      float: left;\n    }\n  }\n\n  & .mdl-list__item-secondary-content {\n    height: $list-three-line-height - $list-min-padding - $list-bottom-padding;\n  }\n\n  & .mdl-list__item-text-body {\n    @include typo-body-1();\n    line-height: 18px;\n    height: $list-three-line-height - $list-min-padding - $list-bottom-padding;\n    color: $list-supporting-text-text-color;\n    display: block;\n    padding: 0;\n  }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n@import \"../mixins\";\n\n.mdl-menu__container {\n  display: block;\n  margin: 0;\n  padding: 0;\n  border: none;\n  position: absolute;\n  overflow: visible;\n  height: 0;\n  width: 0;\n  visibility: hidden;\n  z-index: -1;\n\n  &.is-visible,\n  &.is-animating {\n    z-index: 999;\n    visibility: visible;\n  }\n}\n\n.mdl-menu__outline {\n  display: block;\n  background: $default-dropdown-bg-color;\n  margin: 0;\n  padding: 0;\n  border: none;\n  border-radius: 2px;\n  position: absolute;\n  top: 0;\n  left: 0;\n  overflow: hidden;\n  opacity: 0;\n  transform: scale(0);\n  transform-origin: 0 0;\n  @include shadow-2dp();\n  will-change: transform;\n  transition: transform $menu-expand-duration $animation-curve-default,\n      opacity $menu-fade-duration $animation-curve-default;\n  z-index: -1;\n\n  .mdl-menu__container.is-visible & {\n    opacity: 1;\n    transform: scale(1);\n    z-index: 999;\n  }\n\n  &.mdl-menu--bottom-right {\n    transform-origin: 100% 0;\n  }\n\n  &.mdl-menu--top-left {\n    transform-origin: 0 100%;\n  }\n\n  &.mdl-menu--top-right {\n    transform-origin: 100% 100%;\n  }\n}\n\n.mdl-menu {\n  position: absolute;\n  list-style: none;\n  top: 0;\n  left: 0;\n  height: auto;\n  width: auto;\n  min-width: 124px;\n  padding: 8px 0;\n  margin: 0;\n  opacity: 0;\n  clip: rect(0 0 0 0);\n  z-index: -1;\n\n  .mdl-menu__container.is-visible & {\n    opacity: 1;\n    z-index: 999;\n  }\n\n  &.is-animating {\n    transition: opacity $menu-fade-duration $animation-curve-default,\n        clip $menu-expand-duration $animation-curve-default;\n  }\n\n  &.mdl-menu--bottom-right {\n    left: auto;\n    right: 0;\n  }\n\n  &.mdl-menu--top-left {\n    top: auto;\n    bottom: 0;\n  }\n\n  &.mdl-menu--top-right {\n    top: auto;\n    left: auto;\n    bottom: 0;\n    right: 0;\n  }\n\n  &.mdl-menu--unaligned {\n    top: auto;\n    left: auto;\n  }\n}\n\n.mdl-menu__item {\n  display: block;\n  border: none;\n  color: $default-item-text-color;\n  background-color: transparent;\n  text-align: left;\n  margin: 0;\n  padding: 0 16px;\n  outline-color: $default-item-outline-color;\n  position: relative;\n  overflow: hidden;\n  @include typo-body-1();\n  text-decoration: none;\n  cursor: pointer;\n  height: 48px;\n  line-height: 48px;\n  white-space: nowrap;\n  opacity: 0;\n  transition: opacity $menu-fade-duration $animation-curve-default;\n  user-select: none;\n\n  .mdl-menu__container.is-visible & {\n    opacity: 1;\n  }\n\n  &::-moz-focus-inner {\n    border: 0;\n  }\n\n  &--full-bleed-divider {\n    border-bottom: 1px solid $default-item-divider-color;\n  }\n\n  &[disabled], &[data-mdl-disabled] {\n    color: $disabled-item-text-color;\n    background-color: transparent;\n    cursor: auto;\n\n    &:hover {\n      background-color: transparent;\n    }\n\n    &:focus {\n      background-color: transparent;\n    }\n\n    & .mdl-ripple {\n      background: transparent;\n    }\n  }\n\n  &:hover {\n    background-color: $default-item-hover-bg-color;\n  }\n\n  &:focus {\n    outline: none;\n    background-color: $default-item-focus-bg-color;\n  }\n\n  &:active {\n    background-color: $default-item-active-bg-color;\n  }\n}\n\n\n.mdl-menu__item--ripple-container {\n  display: block;\n  height: 100%;\n  left: 0px;\n  position: absolute;\n  top: 0px;\n  width: 100%;\n  z-index: 0;\n  overflow: hidden;\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n\n.mdl-progress {\n  display: block;\n  position: relative;\n  height: $bar-height;\n  width: 500px;\n  max-width: 100%;\n}\n\n.mdl-progress > .bar {\n  display: block;\n  position: absolute;\n  top: 0;\n  bottom: 0;\n  width: 0%;\n  transition: width 0.2s $animation-curve-default;\n}\n\n.mdl-progress > .progressbar {\n  background-color: $progress-main-color;\n  z-index: 1;\n  left: 0;\n}\n\n.mdl-progress > .bufferbar {\n  background-image: linear-gradient(to right, $progress-secondary-color, $progress-secondary-color),\n    linear-gradient(to right, $progress-main-color, $progress-main-color);\n  z-index: 0;\n  left: 0;\n}\n\n.mdl-progress > .auxbar {\n  right: 0;\n}\n\n// Webkit only\n@supports (-webkit-appearance:none) {\n  .mdl-progress:not(.mdl-progress--indeterminate):not(.mdl-progress--indeterminate) > .auxbar,\n  .mdl-progress:not(.mdl-progress__indeterminate):not(.mdl-progress__indeterminate) > .auxbar {\n    background-image: linear-gradient(to right, $progress-secondary-color, $progress-secondary-color),\n      linear-gradient(to right, $progress-main-color, $progress-main-color);\n    mask: url('#{$progress-image-path}/buffer.svg?embed');\n  }\n}\n\n.mdl-progress:not(.mdl-progress--indeterminate) > .auxbar,\n.mdl-progress:not(.mdl-progress__indeterminate) > .auxbar {\n  background-image: linear-gradient(to right, $progress-fallback-buffer-color, $progress-fallback-buffer-color),\n    linear-gradient(to right, $progress-main-color, $progress-main-color);\n}\n\n.mdl-progress.mdl-progress--indeterminate > .bar1,\n.mdl-progress.mdl-progress__indeterminate > .bar1 {\n  background-color: $progress-main-color;\n  animation-name: indeterminate1;\n  animation-duration: 2s;\n  animation-iteration-count: infinite;\n  animation-timing-function: linear;\n}\n\n.mdl-progress.mdl-progress--indeterminate > .bar3,\n.mdl-progress.mdl-progress__indeterminate > .bar3 {\n  background-image: none;\n  background-color: $progress-main-color;\n  animation-name: indeterminate2;\n  animation-duration: 2s;\n  animation-iteration-count: infinite;\n  animation-timing-function: linear;\n}\n\n@keyframes indeterminate1 {\n  0% {\n    left: 0%;\n    width: 0%;\n  }\n  50% {\n    left: 25%;\n    width: 75%;\n  }\n  75% {\n    left: 100%;\n    width: 0%;\n  }\n}\n\n@keyframes indeterminate2 {\n  0% {\n    left: 0%;\n    width: 0%;\n  }\n  50% {\n    left: 0%;\n    width: 0%;\n  }\n  75% {\n    left: 0%;\n    width: 25%;\n  }\n  100% {\n    left: 100%;\n    width: 0%;\n  }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n@import \"../mixins\";\n\n// Navigation classes. Only used here for now, but we may at some point move\n// this to its own component.\n.mdl-navigation {\n  display: flex;\n  flex-wrap: nowrap;\n  box-sizing: border-box;\n}\n\n.mdl-navigation__link {\n  color: $layout-text-color;\n  text-decoration: none;\n  margin: 0;\n  @include typo-body-1(true);\n\n  // Align icons inside link with text\n  & .material-icons {\n    vertical-align: middle;\n  }\n}\n\n// Main layout class.\n.mdl-layout {\n  width: 100%;\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n  overflow-y: auto;\n  overflow-x: hidden;\n  position: relative;\n  -webkit-overflow-scrolling: touch;\n}\n\n// Utility classes for screen sizes.\n.mdl-layout.is-small-screen .mdl-layout--large-screen-only {\n  display: none;\n}\n\n.mdl-layout:not(.is-small-screen) .mdl-layout--small-screen-only {\n  display: none;\n}\n\n.mdl-layout__container {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n}\n\n\n  // Optional utility classes for formatting special blocks in this component.\n  .mdl-layout__title,\n  .mdl-layout-title {\n    display: block;\n    position: relative;\n\n    @include typo-title();\n    font-weight: 400;\n    box-sizing: border-box;\n  }\n\n  .mdl-layout-spacer {\n    flex-grow: 1;\n  }\n\n\n  // Drawer.\n  .mdl-layout__drawer {\n    display: flex;\n    flex-direction: column;\n    flex-wrap: nowrap;\n\n    width: $layout-drawer-width;\n    height: 100%;\n    max-height: 100%;\n\n    position: absolute;\n    top: 0;\n    left: 0;\n\n    @include shadow-2dp();\n\n    box-sizing: border-box;\n    border-right: 1px solid $layout-drawer-border-color;\n    background: $layout-drawer-bg-color;\n\n    // Transform offscreen.\n    transform: translateX(-$layout-drawer-width - 10px);\n    transform-style: preserve-3d;\n    will-change: transform;\n\n    @include material-animation-default();\n    transition-property: transform;\n\n    color: $layout-text-color;\n\n    overflow: visible;\n    overflow-y: auto;\n\n    z-index: 5;\n\n    &.is-visible {\n      transform: translateX(0);\n      & ~ .mdl-layout__content.mdl-layout__content {\n        overflow: hidden;\n      }\n    }\n\n    & > * {\n      flex-shrink: 0;\n    }\n\n    & > .mdl-layout__title,\n    & > .mdl-layout-title {\n      line-height: $layout-desktop-header-height;\n      padding-left: $layout-header-desktop-indent;\n\n      @media screen and (max-width: $layout-screen-size-threshold) {\n        line-height: $layout-mobile-header-height;\n        padding-left: $layout-header-mobile-indent;\n      }\n    }\n\n    & .mdl-navigation {\n      flex-direction: column;\n      align-items: stretch;\n      padding-top: 16px;\n\n      & .mdl-navigation__link {\n      display: block;\n      flex-shrink: 0;\n      padding: 16px $layout-header-desktop-indent;\n      margin: 0;\n      color: $layout-drawer-navigation-color;\n\n        @media screen and (max-width: $layout-screen-size-threshold) {\n          padding: 16px $layout-header-mobile-indent;\n        }\n\n        &:hover {\n          background-color: $layout-nav-color;\n        }\n\n        &--current {\n            background-color: $layout-drawer-navigation-link-active-background;\n            color: $layout-drawer-navigation-link-active-color;\n        }\n      }\n    }\n\n    @media screen and (min-width: $layout-screen-size-threshold + 1px) {\n      .mdl-layout--fixed-drawer > & {\n        transform: translateX(0);\n      }\n    }\n  }\n\n\n  // Drawer button.\n  // TODO(sgomes): Replace with an icon button when we have that component.\n  .mdl-layout__drawer-button {\n    display: block;\n\n    position: absolute;\n    height: $layout-drawer-button-desktop-size;\n    width: $layout-drawer-button-desktop-size;\n    border: 0;\n\n    flex-shrink: 0;\n\n    overflow: hidden;\n    text-align: center;\n    cursor: pointer;\n    font-size: 26px;\n    line-height: $layout-mobile-header-height;\n    font-family: Helvetica, Arial, sans-serif;\n    margin: ($layout-mobile-header-height - $layout-drawer-button-desktop-size) 12px;\n    top: 0;\n    left: 0;\n    color: $layout-header-text-color;\n\n    z-index: 4;\n\n    .mdl-layout__header & {\n      position: absolute;\n      color: $layout-header-text-color;\n      background-color: inherit;\n\n      @media screen and (max-width: $layout-screen-size-threshold) {\n        margin: 4px;\n      }\n    }\n\n    @media screen and (max-width: $layout-screen-size-threshold) {\n      margin: 4px;\n      color: rgba(0, 0, 0, 0.5);\n    }\n\n    @media screen and (min-width: $layout-screen-size-threshold + 1px) {\n      line-height: 54px;\n\n      .mdl-layout--no-desktop-drawer-button &,\n      .mdl-layout--fixed-drawer > &,\n      .mdl-layout--no-drawer-button & {\n        display: none;\n      }\n    }\n  }\n\n  .mdl-layout__header {\n    display: flex;\n    flex-direction: column;\n    flex-wrap: nowrap;\n    justify-content: flex-start;\n    box-sizing: border-box;\n    flex-shrink: 0;\n\n    width: 100%;\n    margin: 0;\n    padding: 0;\n    border: none;\n    min-height: $layout-desktop-header-height;\n    max-height: 1000px;\n    z-index: 3;\n\n    background-color: $layout-header-bg-color;\n    color: $layout-header-text-color;\n\n    @include shadow-2dp();\n    @include material-animation-default();\n    transition-property: max-height, box-shadow;\n\n    @media screen and (max-width: $layout-screen-size-threshold) {\n      min-height: $layout-mobile-header-height;\n    }\n\n    .mdl-layout--fixed-drawer.is-upgraded:not(.is-small-screen) > & {\n      margin-left: $layout-drawer-width;\n      width: calc(100% - #{$layout-drawer-width});\n    }\n\n    @media screen and (min-width: $layout-screen-size-threshold + 1px) {\n      .mdl-layout--fixed-drawer > & {\n        .mdl-layout__header-row {\n          padding-left: 40px;\n        }\n      }\n    }\n\n    & > .mdl-layout-icon {\n      position: absolute;\n      left: $layout-header-desktop-indent;\n      top: ($layout-desktop-header-height - $layout-header-icon-size) / 2;\n      height: $layout-header-icon-size;\n      width: $layout-header-icon-size;\n      overflow: hidden;\n      z-index: 3;\n      display: block;\n\n      @media screen and (max-width: $layout-screen-size-threshold) {\n        left: $layout-header-mobile-indent;\n        top: ($layout-mobile-header-height - $layout-header-icon-size) / 2;\n      }\n    }\n\n    .mdl-layout.has-drawer & > .mdl-layout-icon {\n      display: none;\n    }\n\n    &.is-compact {\n      max-height: $layout-desktop-header-height;\n\n      @media screen and (max-width: $layout-screen-size-threshold) {\n        max-height: $layout-mobile-header-height;\n      }\n    }\n\n    &.is-compact.has-tabs {\n      height: $layout-desktop-header-height + $layout-tab-bar-height;\n\n      @media screen and (max-width: $layout-screen-size-threshold) {\n        min-height: $layout-mobile-header-height + $layout-tab-bar-height;\n      }\n    }\n\n    @media screen and (max-width: $layout-screen-size-threshold) {\n      & {\n        display: none;\n      }\n\n      .mdl-layout--fixed-header > & {\n        display: flex;\n      }\n    }\n  }\n\n    .mdl-layout__header--transparent.mdl-layout__header--transparent {\n      background-color: transparent;\n      box-shadow: none;\n    }\n\n    .mdl-layout__header--seamed {\n      box-shadow: none;\n    }\n\n    .mdl-layout__header--scroll {\n      box-shadow: none;\n    }\n\n    .mdl-layout__header--waterfall {\n      box-shadow: none;\n      overflow: hidden;\n\n      &.is-casting-shadow {\n        @include shadow-2dp();\n      }\n\n      &.mdl-layout__header--waterfall-hide-top {\n        justify-content: flex-end;\n      }\n    }\n\n    .mdl-layout__header-row {\n      display: flex;\n      flex-direction: row;\n      flex-wrap: nowrap;\n      flex-shrink: 0;\n      box-sizing: border-box;\n      align-self: stretch;\n      align-items: center;\n      height: $layout-header-desktop-row-height;\n      margin: 0;\n      padding: 0 $layout-header-desktop-indent 0 $layout-header-desktop-baseline;\n\n      .mdl-layout--no-drawer-button & {\n        padding-left: $layout-header-desktop-indent;\n      }\n\n      @media screen and (min-width: $layout-screen-size-threshold + 1px) {\n        .mdl-layout--no-desktop-drawer-button & {\n          padding-left: $layout-header-desktop-indent;\n        }\n      }\n\n      @media screen and (max-width: $layout-screen-size-threshold) {\n        height: $layout-header-mobile-row-height;\n        padding: 0 $layout-header-mobile-indent 0 $layout-header-mobile-baseline;\n\n        .mdl-layout--no-drawer-button & {\n          padding-left: $layout-header-mobile-indent;\n        }\n      }\n\n      & > * {\n        flex-shrink: 0;\n      }\n\n      .mdl-layout__header--scroll & {\n        width: 100%;\n      }\n\n      & .mdl-navigation {\n        margin: 0;\n        padding: 0;\n        height: $layout-header-desktop-row-height;\n        flex-direction: row;\n        align-items: center;\n\n        @media screen and (max-width: $layout-screen-size-threshold) {\n          height: $layout-header-mobile-row-height;\n        }\n      }\n\n      & .mdl-navigation__link {\n        display: block;\n        color: $layout-header-text-color;\n        line-height: $layout-header-desktop-row-height;\n        padding: 0 24px;\n\n        @media screen and (max-width: $layout-screen-size-threshold) {\n          line-height: $layout-header-mobile-row-height;\n          padding: 0 $layout-header-mobile-indent;\n        }\n      }\n    }\n\n  // Obfuscator.\n  .mdl-layout__obfuscator {\n    background-color: transparent;\n    position: absolute;\n    top: 0;\n    left: 0;\n    height: 100%;\n    width: 100%;\n    z-index: 4;\n    visibility: hidden;\n    transition-property: background-color;\n    @include material-animation-default();\n\n    &.is-visible {\n      background-color: rgba(0, 0, 0, 0.5);\n      visibility: visible;\n    }\n\n    @supports (pointer-events: auto) {\n      background-color: rgba(0, 0, 0, 0.5);\n      opacity: 0;\n      transition-property: opacity;\n      visibility: visible;\n      pointer-events: none;\n      &.is-visible {\n        pointer-events: auto;\n        opacity: 1;\n      }\n    }\n  }\n\n\n  // Content.\n  .mdl-layout__content {\n    // Fix IE10 bug.\n    -ms-flex: 0 1 auto;\n\n    position: relative;\n    display: inline-block;\n    overflow-y: auto;\n    overflow-x: hidden;\n    flex-grow: 1;\n    z-index: 1;\n    -webkit-overflow-scrolling: touch;\n\n    .mdl-layout--fixed-drawer > & {\n      margin-left: $layout-drawer-width;\n    }\n\n    .mdl-layout__container.has-scrolling-header & {\n      overflow: visible;\n    }\n\n    @media screen and (max-width: $layout-screen-size-threshold) {\n      .mdl-layout--fixed-drawer > & {\n        margin-left: 0;\n      }\n\n      .mdl-layout__container.has-scrolling-header & {\n        overflow-y: auto;\n        overflow-x: hidden;\n      }\n    }\n  }\n\n  // Tabs.\n  .mdl-layout__tab-bar {\n    height: $layout-tab-bar-height * 2;\n    margin: 0;\n    width: calc(100% -\n        #{(($layout-header-desktop-baseline - $layout-tab-desktop-padding) * 2)});\n    padding: 0 0 0\n        ($layout-header-desktop-baseline - $layout-tab-desktop-padding);\n    display: flex;\n    background-color: $layout-header-bg-color;\n    overflow-y: hidden;\n    overflow-x: scroll;\n\n    &::-webkit-scrollbar {\n      display: none;\n    }\n\n    .mdl-layout--no-drawer-button & {\n      padding-left: $layout-header-desktop-indent - $layout-tab-desktop-padding;\n      width: calc(100% -\n          #{(($layout-header-desktop-indent - $layout-tab-desktop-padding) * 2)});\n    }\n\n    @media screen and (min-width: $layout-screen-size-threshold + 1px) {\n      .mdl-layout--no-desktop-drawer-button & {\n        padding-left: $layout-header-desktop-indent - $layout-tab-desktop-padding;\n        width: calc(100% -\n            #{(($layout-header-desktop-indent - $layout-tab-desktop-padding) * 2)});\n      }\n    }\n\n    @media screen and (max-width: $layout-screen-size-threshold) {\n      width: calc(100% -\n          #{($layout-header-mobile-baseline - $layout-tab-mobile-padding)});\n      padding: 0 0 0\n          ($layout-header-mobile-baseline - $layout-tab-mobile-padding);\n\n      .mdl-layout--no-drawer-button & {\n        width: calc(100% -\n            #{(($layout-header-mobile-indent - $layout-tab-mobile-padding) * 2)});\n        padding-left: $layout-header-mobile-indent - $layout-tab-mobile-padding;\n      }\n    }\n\n    .mdl-layout--fixed-tabs & {\n      padding: 0;\n      overflow: hidden;\n      width: 100%;\n    }\n  }\n\n  .mdl-layout__tab-bar-container {\n    position: relative;\n    height: $layout-tab-bar-height;\n    width: 100%;\n    border: none;\n    margin: 0;\n    z-index: 2;\n    flex-grow: 0;\n    flex-shrink: 0;\n    overflow: hidden;\n\n    .mdl-layout__container > & {\n      position: absolute;\n      top: 0;\n      left: 0;\n    }\n  }\n\n  .mdl-layout__tab-bar-button {\n    display: inline-block;\n    position: absolute;\n    top: 0;\n    height: $layout-tab-bar-height;\n    width: $layout-header-desktop-baseline - $layout-tab-desktop-padding;\n    z-index: 4;\n    text-align: center;\n    background-color: $layout-header-bg-color;\n    color: transparent;\n    cursor: pointer;\n    user-select: none;\n\n    .mdl-layout--no-desktop-drawer-button &,\n    .mdl-layout--no-drawer-button & {\n      width: $layout-header-desktop-indent - $layout-tab-desktop-padding;\n\n      & .material-icons {\n        position: relative;\n        left: ($layout-header-desktop-indent - $layout-tab-desktop-padding - 24px) / 2;\n      }\n    }\n\n    @media screen and (max-width: $layout-screen-size-threshold) {\n      width: $layout-header-mobile-baseline - $layout-tab-mobile-padding;\n    }\n\n    .mdl-layout--fixed-tabs & {\n      display: none;\n    }\n\n    & .material-icons {\n      line-height: $layout-tab-bar-height;\n    }\n\n    &.is-active {\n      color: $layout-header-text-color;\n    }\n  }\n\n  .mdl-layout__tab-bar-left-button {\n    left: 0;\n  }\n\n  .mdl-layout__tab-bar-right-button {\n    right: 0;\n  }\n\n  .mdl-layout__tab {\n    margin: 0;\n    border: none;\n    padding: 0 $layout-tab-desktop-padding 0 $layout-tab-desktop-padding;\n\n    float: left;\n    position: relative;\n    display: block;\n    flex-grow: 0;\n    flex-shrink: 0;\n\n    text-decoration: none;\n    height: $layout-tab-bar-height;\n    line-height: $layout-tab-bar-height;\n\n    text-align: center;\n    font-weight: 500;\n    font-size: $layout-tab-font-size;\n    text-transform: uppercase;\n\n    color: $layout-header-tab-text-color;\n    overflow: hidden;\n\n    @media screen and (max-width: $layout-screen-size-threshold) {\n      padding: 0 $layout-tab-mobile-padding 0 $layout-tab-mobile-padding;\n    }\n\n    .mdl-layout--fixed-tabs & {\n      float: none;\n      flex-grow: 1;\n      padding: 0;\n    }\n\n    .mdl-layout.is-upgraded &.is-active {\n      color: $layout-header-text-color;\n    }\n\n    .mdl-layout.is-upgraded &.is-active::after {\n      height: $layout-tab-highlight-thickness;\n      width: 100%;\n      display: block;\n      content: \" \";\n      bottom: 0;\n      left: 0;\n      position: absolute;\n      background: $layout-header-tab-highlight;\n      animation: border-expand 0.2s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards;\n      transition: all 1s cubic-bezier(0.4, 0.0, 1, 1);\n    }\n\n    & .mdl-layout__tab-ripple-container {\n      display: block;\n      position: absolute;\n      height: 100%;\n      width: 100%;\n      left: 0;\n      top: 0;\n      z-index: 1;\n      overflow: hidden;\n\n      & .mdl-ripple {\n        background-color: $layout-header-text-color;\n      }\n    }\n  }\n\n  .mdl-layout__tab-panel {\n    display: block;\n\n    .mdl-layout.is-upgraded & {\n      display: none;\n    }\n\n    .mdl-layout.is-upgraded &.is-active {\n      display: block;\n    }\n  }\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n@import \"../mixins\";\n\n.mdl-radio {\n  position: relative;\n\n  font-size: $radio-label-font-size;\n  line-height: $radio-label-height;\n\n  display: inline-block;\n\n  vertical-align: middle;\n\n  box-sizing: border-box;\n  height: $radio-label-height;\n  margin: 0;\n  padding-left: 0;\n\n  &.is-upgraded {\n    padding-left: $radio-button-size + $radio-padding;\n  }\n}\n\n.mdl-radio__button {\n  line-height: $radio-label-height;\n\n  .mdl-radio.is-upgraded & {\n    // Hide input element, while still making it respond to focus.\n    position: absolute;\n    width: 0;\n    height: 0;\n    margin: 0;\n    padding: 0;\n    opacity: 0;\n    -ms-appearance: none;\n    -moz-appearance: none;\n    -webkit-appearance: none;\n    appearance: none;\n    border: none;\n  }\n}\n\n.mdl-radio__outer-circle {\n  position: absolute;\n  top: $radio-top-offset;\n  left: 0;\n\n  display: inline-block;\n\n  box-sizing: border-box;\n  width: $radio-button-size;\n  height: $radio-button-size;\n  margin: 0;\n\n  cursor: pointer;\n\n  border: 2px solid $radio-off-color;\n  border-radius: 50%;\n\n  z-index: 2;\n\n  .mdl-radio.is-checked & {\n    border: 2px solid $radio-color;\n  }\n\n  fieldset[disabled] .mdl-radio,\n  .mdl-radio.is-disabled & {\n    border: 2px solid $radio-disabled-color;\n    cursor: auto;\n  }\n}\n\n.mdl-radio__inner-circle {\n  position: absolute;\n  z-index: 1;\n  margin: 0;\n  top: $radio-top-offset + $radio-inner-margin;\n  left: $radio-inner-margin;\n\n  box-sizing: border-box;\n  width: $radio-button-size - ($radio-inner-margin * 2);\n  height: $radio-button-size - ($radio-inner-margin * 2);\n\n  cursor: pointer;\n\n  @include material-animation-default(0.28s);\n  transition-property: transform;\n  transform: scale(0, 0);\n\n  border-radius: 50%;\n  background: $radio-color;\n\n  .mdl-radio.is-checked & {\n    transform: scale(1, 1);\n  }\n\n  fieldset[disabled] .mdl-radio &,\n  .mdl-radio.is-disabled & {\n    background: $radio-disabled-color;\n    cursor: auto;\n  }\n\n  .mdl-radio.is-focused & {\n    box-shadow: 0 0 0px 10px rgba(0, 0, 0, 0.1);\n  }\n}\n\n.mdl-radio__label {\n  cursor: pointer;\n\n  fieldset[disabled] .mdl-radio &,\n  .mdl-radio.is-disabled & {\n    color: $radio-disabled-color;\n    cursor: auto;\n  }\n}\n\n.mdl-radio__ripple-container {\n  position: absolute;\n  z-index: 2;\n  top: -(($radio-ripple-size - $radio-label-height) / 2);\n  left: -(($radio-ripple-size - $radio-button-size) / 2);\n\n  box-sizing: border-box;\n  width: $radio-ripple-size;\n  height: $radio-ripple-size;\n  border-radius: 50%;\n\n  cursor: pointer;\n\n  overflow: hidden;\n  -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\n\n  & .mdl-ripple {\n    background: $radio-color;\n  }\n\n  fieldset[disabled] .mdl-radio &,\n  .mdl-radio.is-disabled & {\n    cursor: auto;\n  }\n\n  fieldset[disabled] .mdl-radio & .mdl-ripple,\n  .mdl-radio.is-disabled & .mdl-ripple {\n    background: transparent;\n  }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n\n// Some CSS magic to target only IE.\n_:-ms-input-placeholder, :root .mdl-slider.mdl-slider.is-upgraded {\n  -ms-appearance: none;\n  // The thumb can't overflow the track or the rest of the control in IE, so we\n  // need to make it tall enough to contain the largest version of the thumb.\n  height: 32px;\n  margin: 0;\n}\n\n// Slider component (styled input[type=range]).\n.mdl-slider {\n  width: calc(100% - 40px);\n  margin: 0 20px;\n\n  &.is-upgraded {\n    -webkit-appearance: none;\n    -moz-appearance: none;\n    appearance: none;\n    height: 2px;\n    background: transparent;\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    user-select: none;\n    outline: 0;\n    padding: 0;\n    color: $range-color;\n    align-self: center;\n    z-index: 1;\n    cursor: pointer;\n\n\n    // Disable default focus on Firefox.\n    &::-moz-focus-outer {\n      border: 0;\n    }\n\n    // Disable tooltip on IE.\n    &::-ms-tooltip {\n      display: none;\n    }\n\n\n    /**************************** Tracks ****************************/\n    &::-webkit-slider-runnable-track {\n      background: transparent;\n    }\n\n    &::-moz-range-track {\n      background: transparent;\n      border: none;\n    }\n\n    &::-ms-track {\n      background: none;\n      color: transparent;\n      height: 2px;\n      width: 100%;\n      border: none;\n    }\n\n    &::-ms-fill-lower {\n      padding: 0;\n      // Margin on -ms-track doesn't work right, so we use gradients on the\n      // fills.\n      background: linear-gradient(to right,\n      transparent,\n      transparent 16px,\n      $range-color 16px,\n      $range-color 0);\n    }\n\n    &::-ms-fill-upper {\n      padding: 0;\n      // Margin on -ms-track doesn't work right, so we use gradients on the\n      // fills.\n      background: linear-gradient(to left,\n      transparent,\n      transparent 16px,\n      $range-bg-color 16px,\n      $range-bg-color 0);\n    }\n\n\n    /**************************** Thumbs ****************************/\n    &::-webkit-slider-thumb {\n      -webkit-appearance: none;\n      width: 12px;\n      height: 12px;\n      box-sizing: border-box;\n      border-radius: 50%;\n      background: $range-color;\n      border: none;\n      transition: transform 0.18s $animation-curve-default,\n      border 0.18s $animation-curve-default,\n      box-shadow 0.18s $animation-curve-default,\n      background 0.28s $animation-curve-default;\n    }\n\n    &::-moz-range-thumb {\n      -moz-appearance: none;\n      width: 12px;\n      height: 12px;\n      box-sizing: border-box;\n      border-radius: 50%;\n      background-image: none;\n      background: $range-color;\n      border: none;\n      // -moz-range-thumb doesn't currently support transitions.\n    }\n\n    &:focus:not(:active)::-webkit-slider-thumb {\n      box-shadow: 0 0 0 10px $range-faded-color;\n    }\n\n    &:focus:not(:active)::-moz-range-thumb {\n      box-shadow: 0 0 0 10px $range-faded-color;\n    }\n\n    &:active::-webkit-slider-thumb {\n      background-image: none;\n      background: $range-color;\n      transform: scale(1.5);\n    }\n\n    &:active::-moz-range-thumb {\n      background-image: none;\n      background: $range-color;\n      transform: scale(1.5);\n    }\n\n    &::-ms-thumb {\n      width: 32px;\n      height: 32px;\n      border: none;\n      border-radius: 50%;\n      background: $range-color;\n      transform: scale(0.375);\n      // -ms-thumb doesn't currently support transitions, but leaving this here\n      // in case support ever gets added.\n      transition: transform 0.18s $animation-curve-default,\n      background 0.28s $animation-curve-default;\n    }\n\n    &:focus:not(:active)::-ms-thumb {\n      background: radial-gradient(circle closest-side,\n      $range-color 0%,\n      $range-color 37.5%,\n      $range-faded-color 37.5%,\n      $range-faded-color 100%);\n      transform: scale(1);\n    }\n\n    &:active::-ms-thumb {\n      background: $range-color;\n      transform: scale(0.5625);\n    }\n\n\n    /**************************** 0-value ****************************/\n    &.is-lowest-value::-webkit-slider-thumb {\n      border: 2px solid $range-bg-color;\n      background: transparent;\n    }\n\n    &.is-lowest-value::-moz-range-thumb {\n      border: 2px solid $range-bg-color;\n      background: transparent;\n    }\n\n    &.is-lowest-value +\n        .mdl-slider__background-flex > .mdl-slider__background-upper {\n      left: 6px;\n    }\n\n    &.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {\n      box-shadow: 0 0 0 10px $range-bg-focus-color;\n      background: $range-bg-focus-color;\n    }\n\n    &.is-lowest-value:focus:not(:active)::-moz-range-thumb {\n      box-shadow: 0 0 0 10px $range-bg-focus-color;\n      background: $range-bg-focus-color;\n    }\n\n    &.is-lowest-value:active::-webkit-slider-thumb {\n      border: 1.6px solid $range-bg-color;\n      transform: scale(1.5);\n    }\n\n    &.is-lowest-value:active +\n        .mdl-slider__background-flex > .mdl-slider__background-upper {\n      left: 9px;\n    }\n\n    &.is-lowest-value:active::-moz-range-thumb {\n      border: 1.5px solid $range-bg-color;\n      transform: scale(1.5);\n    }\n\n    &.is-lowest-value::-ms-thumb {\n      background: radial-gradient(circle closest-side,\n      transparent 0%,\n      transparent 66.67%,\n      $range-bg-color 66.67%,\n      $range-bg-color 100%);\n    }\n\n    &.is-lowest-value:focus:not(:active)::-ms-thumb {\n      background: radial-gradient(circle closest-side,\n      $range-bg-focus-color 0%,\n      $range-bg-focus-color 25%,\n      $range-bg-color 25%,\n      $range-bg-color 37.5%,\n      $range-bg-focus-color 37.5%,\n      $range-bg-focus-color 100%);\n      transform: scale(1);\n    }\n\n    &.is-lowest-value:active::-ms-thumb {\n      transform: scale(0.5625);\n      background: radial-gradient(circle closest-side,\n      transparent 0%,\n      transparent 77.78%,\n      $range-bg-color 77.78%,\n      $range-bg-color 100%);\n    }\n\n    &.is-lowest-value::-ms-fill-lower {\n      background: transparent;\n    }\n\n    &.is-lowest-value::-ms-fill-upper {\n      margin-left: 6px;\n    }\n\n    &.is-lowest-value:active::-ms-fill-upper {\n      margin-left: 9px;\n    }\n\n    /**************************** Disabled ****************************/\n\n    &:disabled:focus::-webkit-slider-thumb,\n    &:disabled:active::-webkit-slider-thumb,\n    &:disabled::-webkit-slider-thumb {\n      transform: scale(0.667);\n      background: $range-bg-color;\n    }\n\n    &:disabled:focus::-moz-range-thumb,\n    &:disabled:active::-moz-range-thumb,\n    &:disabled::-moz-range-thumb {\n      transform: scale(0.667);\n      background: $range-bg-color;\n    }\n\n    &:disabled +\n        .mdl-slider__background-flex > .mdl-slider__background-lower {\n      background-color: $range-bg-color;\n      left: -6px;\n    }\n\n    &:disabled +\n        .mdl-slider__background-flex > .mdl-slider__background-upper {\n      left: 6px;\n    }\n\n    &.is-lowest-value:disabled:focus::-webkit-slider-thumb,\n    &.is-lowest-value:disabled:active::-webkit-slider-thumb,\n    &.is-lowest-value:disabled::-webkit-slider-thumb {\n      border: 3px solid $range-bg-color;\n      background: transparent;\n      transform: scale(0.667);\n    }\n\n    &.is-lowest-value:disabled:focus::-moz-range-thumb,\n    &.is-lowest-value:disabled:active::-moz-range-thumb,\n    &.is-lowest-value:disabled::-moz-range-thumb {\n      border: 3px solid $range-bg-color;\n      background: transparent;\n      transform: scale(0.667);\n    }\n\n    &.is-lowest-value:disabled:active +\n        .mdl-slider__background-flex > .mdl-slider__background-upper {\n      left: 6px;\n    }\n\n    &:disabled:focus::-ms-thumb,\n    &:disabled:active::-ms-thumb,\n    &:disabled::-ms-thumb {\n      transform: scale(0.25);\n      background: $range-bg-color;\n    }\n\n    &.is-lowest-value:disabled:focus::-ms-thumb,\n    &.is-lowest-value:disabled:active::-ms-thumb,\n    &.is-lowest-value:disabled::-ms-thumb {\n      transform: scale(0.25);\n      background: radial-gradient(circle closest-side,\n      transparent 0%,\n      transparent 50%,\n      $range-bg-color 50%,\n      $range-bg-color 100%);\n    }\n\n    &:disabled::-ms-fill-lower {\n      margin-right: 6px;\n      background: linear-gradient(to right,\n      transparent,\n      transparent 25px,\n      $range-bg-color 25px,\n      $range-bg-color 0);\n    }\n\n    &:disabled::-ms-fill-upper {\n      margin-left: 6px;\n    }\n\n    &.is-lowest-value:disabled:active::-ms-fill-upper {\n      margin-left: 6px;\n    }\n  }\n}\n\n  // Since we need to specify a height of 32px in IE, we add a class here for a\n  // container that brings it back to a reasonable height.\n  .mdl-slider__ie-container {\n    height: 18px;\n    overflow: visible;\n    border: none;\n    margin: none;\n    padding: none;\n  }\n\n  // We use a set of divs behind the track to style it in all non-IE browsers.\n  // This one contains both the background and the slider.\n  .mdl-slider__container {\n    height: 18px;\n    position: relative;\n    background: none;\n    display: flex;\n    flex-direction: row;\n  }\n\n  // This one sets up a flex box for the styled upper and lower portions of the\n  // the slider track.\n  .mdl-slider__background-flex {\n    background: transparent;\n    position: absolute;\n    height: 2px;\n    width: calc(100% - 52px);\n    top: 50%;\n    left: 0;\n    margin: 0 26px;\n    display: flex;\n    overflow: hidden;\n    border: 0;\n    padding: 0;\n    transform: translate(0, -1px);\n  }\n\n  // This one styles the lower part of the slider track.\n  .mdl-slider__background-lower {\n    background: $range-color;\n    flex: 0;\n    position: relative;\n    border: 0;\n    padding: 0;\n  }\n\n  // This one styles the upper part of the slider track.\n  .mdl-slider__background-upper {\n    background: $range-bg-color;\n    flex: 0;\n    position: relative;\n    border: 0;\n    padding: 0;\n    transition: left 0.18s $animation-curve-default\n  }\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n@import \"../mixins\";\n\n.mdl-snackbar {\n  position: fixed;\n  bottom: 0;\n  left: 50%;\n  cursor: default;\n  background-color: $snackbar-background-color;\n  z-index: 3;\n  display: block;\n  display: flex;\n  justify-content: space-between;\n  font-family: $preferred_font;\n  will-change: transform;\n  transform: translate(0, 80px);\n  transition: transform 0.25s $animation-curve-fast-out-linear-in;\n  pointer-events: none;\n  @media(max-width: $snackbar-tablet-breakpoint - 1) {\n    width: 100%;\n    left: 0;\n    min-height: 48px;\n    max-height: 80px;\n  }\n  @media(min-width: $snackbar-tablet-breakpoint) {\n    min-width: 288px;\n    max-width: 568px;\n    border-radius: 2px;\n    transform: translate(-50%, 80px);\n  }\n  &--active {\n    transform: translate(0, 0);\n    pointer-events: auto;\n    transition: transform 0.25s $animation-curve-linear-out-slow-in;\n\n    @media(min-width: $snackbar-tablet-breakpoint) {\n      transform: translate(-50%, 0);\n    }\n  }\n\n  &__text {\n    padding: 14px 12px 14px 24px;\n    vertical-align: middle;\n    color: white;\n    float: left;\n  }\n\n  &__action {\n    background: transparent;\n    border: none;\n    color: $snackbar-action-color;\n    float: right;\n    text-transform: uppercase;\n    padding: 14px 24px 14px 12px;\n    @include typo-button();\n    overflow: hidden;\n    outline: none;\n    opacity: 0;\n    pointer-events: none;\n    cursor: pointer;\n    text-decoration: none;\n    text-align: center;\n    align-self: center;\n\n    &::-moz-focus-inner {\n      border: 0;\n    }\n    &:not([aria-hidden]) {\n      opacity: 1;\n      pointer-events: auto;\n    }\n  }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n\n\n.mdl-spinner {\n  display: inline-block;\n  position: relative;\n  width: $spinner-size;\n  height: $spinner-size;\n\n  &:not(.is-upgraded).is-active:after {\n    content: \"Loading...\";\n  }\n\n  &.is-upgraded.is-active {\n    animation: mdl-spinner__container-rotate $spinner-duration linear infinite;\n  }\n}\n\n@keyframes mdl-spinner__container-rotate {\n  to { transform: rotate(360deg) }\n}\n\n.mdl-spinner__layer {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n  opacity: 0;\n}\n\n.mdl-spinner__layer-1 {\n  border-color: $spinner-color-1;\n\n  .mdl-spinner--single-color & {\n    border-color: $spinner-single-color;\n  }\n\n  .mdl-spinner.is-active & {\n    animation:\n        mdl-spinner__fill-unfill-rotate (4 * $spinner-arc-time)\n            $animation-curve-fast-out-slow-in infinite both,\n        mdl-spinner__layer-1-fade-in-out (4 * $spinner-arc-time)\n            $animation-curve-fast-out-slow-in infinite both;\n  }\n}\n\n.mdl-spinner__layer-2 {\n  border-color: $spinner-color-2;\n\n  .mdl-spinner--single-color & {\n    border-color: $spinner-single-color;\n  }\n\n  .mdl-spinner.is-active & {\n    animation:\n        mdl-spinner__fill-unfill-rotate (4 * $spinner-arc-time)\n            $animation-curve-fast-out-slow-in infinite both,\n        mdl-spinner__layer-2-fade-in-out (4 * $spinner-arc-time)\n            $animation-curve-fast-out-slow-in infinite both;\n  }\n}\n\n.mdl-spinner__layer-3 {\n  border-color: $spinner-color-3;\n\n  .mdl-spinner--single-color & {\n    border-color: $spinner-single-color;\n  }\n\n  .mdl-spinner.is-active & {\n    animation:\n        mdl-spinner__fill-unfill-rotate (4 * $spinner-arc-time)\n            $animation-curve-fast-out-slow-in infinite both,\n        mdl-spinner__layer-3-fade-in-out (4 * $spinner-arc-time)\n            $animation-curve-fast-out-slow-in infinite both;\n  }\n}\n\n.mdl-spinner__layer-4 {\n  border-color: $spinner-color-4;\n\n  .mdl-spinner--single-color & {\n    border-color: $spinner-single-color;\n  }\n\n  .mdl-spinner.is-active & {\n    animation:\n        mdl-spinner__fill-unfill-rotate (4 * $spinner-arc-time)\n            $animation-curve-fast-out-slow-in infinite both,\n        mdl-spinner__layer-4-fade-in-out (4 * $spinner-arc-time)\n            $animation-curve-fast-out-slow-in infinite both;\n  }\n}\n\n@keyframes mdl-spinner__fill-unfill-rotate {\n  12.5% { transform: rotate(0.5 * $spinner-arc-size);  }\n  25%   { transform: rotate($spinner-arc-size);  }\n  37.5% { transform: rotate(1.5 * $spinner-arc-size);  }\n  50%   { transform: rotate(2 * $spinner-arc-size);  }\n  62.5% { transform: rotate(2.5 * $spinner-arc-size);  }\n  75%   { transform: rotate(3 * $spinner-arc-size);  }\n  87.5% { transform: rotate(3.5 * $spinner-arc-size); }\n  to    { transform: rotate(4 * $spinner-arc-size); }\n}\n\n/**\n* HACK: Even though the intention is to have the current .mdl-spinner__layer-N\n* at `opacity: 1`, we set it to `opacity: 0.99` instead since this forces Chrome\n* to do proper subpixel rendering for the elements being animated. This is\n* especially visible in Chrome 39 on Ubuntu 14.04. See:\n*\n* - https://github.com/Polymer/paper-spinner/issues/9\n* - https://code.google.com/p/chromium/issues/detail?id=436255\n*/\n@keyframes mdl-spinner__layer-1-fade-in-out {\n  from { opacity: 0.99; }\n  25% { opacity: 0.99; }\n  26% { opacity: 0; }\n  89% { opacity: 0; }\n  90% { opacity: 0.99; }\n  100% { opacity: 0.99; }\n}\n\n@keyframes mdl-spinner__layer-2-fade-in-out {\n  from { opacity: 0; }\n  15% { opacity: 0; }\n  25% { opacity: 0.99; }\n  50% { opacity: 0.99; }\n  51% { opacity: 0; }\n}\n\n@keyframes mdl-spinner__layer-3-fade-in-out {\n  from { opacity: 0; }\n  40% { opacity: 0; }\n  50% { opacity: 0.99; }\n  75% { opacity: 0.99; }\n  76% { opacity: 0; }\n}\n\n@keyframes mdl-spinner__layer-4-fade-in-out {\n  from { opacity: 0; }\n  65% { opacity: 0; }\n  75% { opacity: 0.99; }\n  90% { opacity: 0.99; }\n  100% { opacity: 0; }\n}\n\n/**\n* Patch the gap that appear between the two adjacent\n* div.mdl-spinner__circle-clipper while the spinner is rotating\n* (appears on Chrome 38, Safari 7.1, and IE 11).\n*\n* Update: the gap no longer appears on Chrome when .mdl-spinner__layer-N's\n* opacity is 0.99, but still does on Safari and IE.\n*/\n.mdl-spinner__gap-patch {\n  position: absolute;\n  box-sizing: border-box;\n  top: 0;\n  left: 45%;\n  width: 10%;\n  height: 100%;\n  overflow: hidden;\n  border-color: inherit;\n\n  & .mdl-spinner__circle {\n    width: 1000%;\n    left: -450%;\n  }\n}\n\n.mdl-spinner__circle-clipper {\n  display: inline-block;\n  position: relative;\n  width: 50%;\n  height: 100%;\n  overflow: hidden;\n  border-color: inherit;\n\n  &.mdl-spinner__left {\n    float: left;\n  }\n\n  &.mdl-spinner__right {\n    float: right;\n  }\n\n  & .mdl-spinner__circle {\n    width: 200%;\n  }\n}\n\n.mdl-spinner__circle {\n  box-sizing: border-box;\n  height: 100%;\n  border-width: $spinner-stroke-width;\n  border-style: solid;\n  border-color: inherit;\n  border-bottom-color: transparent !important;\n  border-radius: 50%;\n  animation: none;\n\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n\n  .mdl-spinner__left & {\n    border-right-color: transparent !important;\n    transform: rotate(129deg);\n\n    .mdl-spinner.is-active & {\n      animation: mdl-spinner__left-spin $spinner-arc-time\n          $animation-curve-fast-out-slow-in infinite both;\n    }\n  }\n\n  .mdl-spinner__right & {\n    left: -100%;\n    border-left-color: transparent !important;\n    transform: rotate(-129deg);\n\n    .mdl-spinner.is-active & {\n      animation: mdl-spinner__right-spin $spinner-arc-time\n          $animation-curve-fast-out-slow-in infinite both;\n    }\n  }\n}\n\n@keyframes mdl-spinner__left-spin {\n  from { transform: rotate(130deg); }\n  50% { transform: rotate(-5deg); }\n  to { transform: rotate(130deg); }\n}\n\n@keyframes mdl-spinner__right-spin {\n  from { transform: rotate(-130deg); }\n  50% { transform: rotate(5deg); }\n  to { transform: rotate(-130deg); }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n@import \"../variables\";\n@import \"../mixins\";\n\n.mdl-switch {\n  position: relative;\n\n  z-index: 1;\n\n  vertical-align: middle;\n\n  display: inline-block;\n\n  box-sizing: border-box;\n  width: 100%;\n  height: $switch-label-height;\n  margin: 0;\n  padding: 0;\n\n  overflow: visible;\n\n  &.is-upgraded {\n    padding-left: $switch-track-length - 8px;\n  }\n\n  // avoids blue box around switch\n  -webkit-touch-callout: none;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n\n.mdl-switch__input {\n  line-height: $switch-label-height;\n\n  .mdl-switch.is-upgraded & {\n    // Hide input element, while still making it respond to focus.\n    position: absolute;\n    width: 0;\n    height: 0;\n    margin: 0;\n    padding: 0;\n    opacity: 0;\n    -ms-appearance: none;\n    -moz-appearance: none;\n    -webkit-appearance: none;\n    appearance: none;\n    border: none;\n  }\n}\n\n.mdl-switch__track {\n  background: $switch-off-track-color;\n  position: absolute;\n  left: 0;\n  top: $switch-track-top;\n  height: $switch-track-height;\n  width: $switch-track-length;\n  border-radius: $switch-track-height;\n\n  cursor: pointer;\n\n  .mdl-switch.is-checked & {\n    background: $switch-track-color;\n  }\n\n  fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled & {\n    background: $switch-disabled-track-color;\n    cursor: auto;\n  }\n}\n\n.mdl-switch__thumb {\n  background: $switch-off-thumb-color;\n  position: absolute;\n  left: 0;\n  top: $switch-thumb-top;\n  height: $switch-thumb-size;\n  width: $switch-thumb-size;\n  border-radius: 50%;\n\n  cursor: pointer;\n\n  @include shadow-2dp();\n\n  @include material-animation-default(0.28s);\n  transition-property: left;\n\n  .mdl-switch.is-checked & {\n    background: $switch-thumb-color;\n    left: $switch-track-length - $switch-thumb-size;\n\n    @include shadow-3dp();\n  }\n\n  fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled & {\n    background: $switch-disabled-thumb-color;\n    cursor: auto;\n  }\n}\n\n.mdl-switch__focus-helper {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n\n  transform: translate(-$switch-helper-size / 2, -$switch-helper-size / 2);\n\n  display: inline-block;\n\n  box-sizing: border-box;\n  width: $switch-helper-size;\n  height: $switch-helper-size;\n  border-radius: 50%;\n\n  background-color: transparent;\n\n  .mdl-switch.is-focused & {\n    box-shadow: 0 0 0px (($switch-ripple-size - $switch-helper-size) / 2)\n        rgba(0, 0, 0, 0.1);\n    background-color: rgba(0, 0, 0, 0.1);\n  }\n\n  .mdl-switch.is-focused.is-checked & {\n    box-shadow: 0 0 0px (($switch-ripple-size - $switch-helper-size) / 2)\n        $switch-faded-color;\n    background-color: $switch-faded-color;\n  }\n}\n\n.mdl-switch__label {\n  position: relative;\n  cursor: pointer;\n  font-size: $switch-label-font-size;\n  line-height: $switch-label-height;\n  margin: 0;\n  left: 24px;\n\n  fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled & {\n    color: $switch-disabled-thumb-color;\n    cursor: auto;\n  }\n}\n\n.mdl-switch__ripple-container {\n  position: absolute;\n  z-index: 2;\n  top: -($switch-ripple-size - $switch-label-height) / 2;\n  left: $switch-thumb-size / 2 - $switch-ripple-size / 2;\n\n  box-sizing: border-box;\n  width: $switch-ripple-size;\n  height: $switch-ripple-size;\n  border-radius: 50%;\n\n  cursor: pointer;\n\n  overflow: hidden;\n  -webkit-mask-image: -webkit-radial-gradient(circle, white, black);\n\n  transition-duration: 0.40s;\n  transition-timing-function: step-end;\n  transition-property: left;\n\n  & .mdl-ripple {\n    background: $switch-color;\n  }\n\n  fieldset[disabled] .mdl-switch,\n  .mdl-switch.is-disabled & {\n    cursor: auto;\n  }\n\n  fieldset[disabled] .mdl-switch & .mdl-ripple,\n  .mdl-switch.is-disabled & .mdl-ripple {\n    background: transparent;\n  }\n\n  .mdl-switch.is-checked & {\n    left: $switch-track-length - $switch-ripple-size / 2 -\n        $switch-thumb-size / 2;\n  }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n\n\n.mdl-tabs {\n  display: block;\n  width: 100%;\n}\n\n.mdl-tabs__tab-bar {\n    display         : flex;\n    flex-direction  : row;\n    justify-content : center; // ⇾\n    align-content   : space-between; // ||\n    align-items     : flex-start; // ↓\n\n    height          : 48px;\n    padding         : 0 0 0 0;\n    margin          : 0;\n    border-bottom   : 1px solid $tab-border-color;\n}\n\n.mdl-tabs__tab {\n  margin: 0;\n  border: none;\n  padding: 0 24px 0 24px;\n\n  float: left;\n  position: relative;\n  display: block;\n\n  text-decoration: none;\n  height: 48px;\n  line-height: 48px;\n\n  text-align: center;\n  font-weight: 500;\n  font-size: $layout-tab-font-size;\n  text-transform: uppercase;\n\n  color: $tab-text-color;\n  overflow: hidden;\n\n  .mdl-tabs.is-upgraded &.is-active {\n    color: $tab-active-text-color;\n  }\n\n  .mdl-tabs.is-upgraded &.is-active:after {\n    height: 2px;\n    width: 100%;\n    display: block;\n    content: \" \";\n    bottom: 0px;\n    left: 0px;\n    position: absolute;\n    background: $tab-highlight-color;\n    animation: border-expand 0.2s cubic-bezier(0.4, 0.0, 0.4, 1) 0.01s alternate forwards;\n    transition: all 1s cubic-bezier(0.4, 0.0, 1, 1);\n  }\n\n  & .mdl-tabs__ripple-container {\n    display: block;\n    position: absolute;\n    height: 100%;\n    width: 100%;\n    left: 0px;\n    top: 0px;\n    z-index: 1;\n    overflow: hidden;\n\n    & .mdl-ripple {\n      background: $tab-highlight-color;\n    }\n  }\n}\n\n.mdl-tabs__panel {\n  display: block;\n\n  .mdl-tabs.is-upgraded & {\n    display: none;\n  }\n\n  .mdl-tabs.is-upgraded &.is-active {\n    display: block;\n  }\n}\n\n@keyframes border-expand {\n  0% {\n    opacity: 0;\n    width: 0;\n  }\n\n  100% {\n    opacity: 1;\n    width: 100%;\n  }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n@import \"../mixins\";\n\n// The container for the whole component.\n.mdl-textfield {\n  position: relative;\n  font-size: $input-text-font-size;\n  display: inline-block;\n  box-sizing: border-box;\n  width: 300px;\n  max-width: 100%;\n  margin: 0;\n  padding: $input-text-vertical-spacing 0;\n\n  // Align buttons, if used.\n  & .mdl-button {\n    position: absolute;\n    bottom: $input-text-vertical-spacing;\n  }\n}\n\n// Optional class to align right.\n.mdl-textfield--align-right {\n  text-align: right;\n}\n\n// Optional class to display at full width.\n.mdl-textfield--full-width {\n  width: 100%;\n}\n\n// Optional class to make the text field expandable.\n.mdl-textfield--expandable {\n  min-width: $input-text-button-size;\n  width: auto;\n  min-height: $input-text-button-size;\n  \n  // Align icon button\n  .mdl-button--icon {\n    top: $input-text-expandable-icon-top;\n  }\n}\n\n// Styling for the input element.\n.mdl-textfield__input {\n  border: none;\n  border-bottom: 1px solid $input-text-bottom-border-color;\n  display: block;\n  font-size: $input-text-font-size;\n  font-family: $performance_font;\n  margin: 0;\n  padding: $input-text-padding 0;\n  width: $input-text-width;\n  background: none;\n  text-align: left;\n  color: inherit;\n\n  &[type=\"number\"] {\n    -moz-appearance: textfield;\n  }\n\n  &[type=\"number\"]::-webkit-inner-spin-button,\n  &[type=\"number\"]::-webkit-outer-spin-button {\n    -webkit-appearance: none;\n    margin: 0;\n  }\n\n  .mdl-textfield.is-focused & {\n    outline: none;\n  }\n\n  .mdl-textfield.is-invalid & {\n    border-color: $input-text-error-color;\n    box-shadow: none;\n  }\n\n  fieldset[disabled] .mdl-textfield &,\n  .mdl-textfield.is-disabled & {\n    background-color: transparent;\n    border-bottom: 1px dotted $input-text-disabled-color;\n    color: $input-text-disabled-text-color;\n  }\n}\n\n.mdl-textfield textarea.mdl-textfield__input {\n  display: block;\n}\n\n// Styling for the label / floating label.\n.mdl-textfield__label {\n  bottom: 0;\n  color: $input-text-label-color;\n  font-size: $input-text-font-size;\n  left: 0;\n  right: 0;\n  pointer-events: none;\n  position: absolute;\n  display: block;\n  top: ($input-text-padding + $input-text-vertical-spacing);\n  width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-align: left;\n\n  .mdl-textfield.is-dirty &,\n  .mdl-textfield.has-placeholder & {\n    visibility: hidden;\n  }\n\n  // Floating Label\n  .mdl-textfield--floating-label & {\n    @include material-animation-default();\n  }\n\n  .mdl-textfield--floating-label.has-placeholder & {\n    transition: none;\n  }\n\n  fieldset[disabled] .mdl-textfield &,\n  .mdl-textfield.is-disabled.is-disabled & {\n    color: $input-text-disabled-text-color;\n  }\n\n  .mdl-textfield--floating-label.is-focused &,\n  .mdl-textfield--floating-label.is-dirty &,\n  .mdl-textfield--floating-label.has-placeholder & {\n    color: $input-text-highlight-color;\n    font-size : $input-text-floating-label-fontsize;\n    top: $input-text-vertical-spacing - ($input-text-floating-label-fontsize + $input-text-padding);\n    visibility: visible;\n  }\n\n  .mdl-textfield--floating-label.is-focused .mdl-textfield__expandable-holder &,\n  .mdl-textfield--floating-label.is-dirty .mdl-textfield__expandable-holder &,\n  .mdl-textfield--floating-label.has-placeholder .mdl-textfield__expandable-holder & {\n    top: -($input-text-floating-label-fontsize + $input-text-padding);\n  }\n\n  .mdl-textfield--floating-label.is-invalid & {\n    color: $input-text-error-color;\n    font-size: $input-text-floating-label-fontsize;\n  }\n\n  // The after label is the colored underline for the TextField.\n  &:after {\n    background-color: $input-text-highlight-color;\n    bottom: $input-text-vertical-spacing;\n    content: '';\n    height: 2px;\n    left: 45%;\n    position: absolute;\n    @include material-animation-default();\n    visibility: hidden;\n    width: 10px;\n  }\n\n  .mdl-textfield.is-focused &:after {\n    left: 0;\n    visibility: visible;\n    width: 100%;\n  }\n\n  .mdl-textfield.is-invalid &:after {\n    background-color: $input-text-error-color;\n  }\n}\n\n// TextField Error.\n.mdl-textfield__error {\n  color: $input-text-error-color;\n  position: absolute;\n  font-size: $input-text-floating-label-fontsize;\n  margin-top: 3px;\n  visibility: hidden;\n  display: block;\n\n  .mdl-textfield.is-invalid & {\n    visibility: visible;\n  }\n}\n\n// Expandable Holder.\n.mdl-textfield__expandable-holder {\n  display: inline-block;\n  position: relative;\n  margin-left: $input-text-button-size;\n\n  @include material-animation-default();\n  display: inline-block;\n\n  // Safari (possibly others) need to be convinced that this field is actually\n  // visible, otherwise it cannot be tabbed to nor focused via a <label>.\n  // TODO: In some cases (Retina displays), this is big enough to render the\n  // inner element :(\n  max-width: 0.1px;\n\n  .mdl-textfield.is-focused &, .mdl-textfield.is-dirty & {\n    // This is an unfortunate hack. Animating between widths in percent (%)\n    // in many browsers (Chrome, Firefox) only animates the inner visual style\n    // of the input - the outer bounding box still 'jumps'.\n    // Thus assume a sensible maximum, and animate to/from that value.\n    max-width: 600px;\n  }\n  .mdl-textfield__label:after {\n    bottom: 0;\n  }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n\n.mdl-tooltip {\n  transform: scale(0);\n  transform-origin: top center;\n  z-index: 999;\n  background: $tooltip-background-color;\n  border-radius: 2px;\n  color: $tooltip-text-color;\n  display: inline-block;\n  font-size: $tooltip-font-size;\n  font-weight: 500;\n  line-height: 14px;\n  max-width: 170px;\n  position: fixed;\n  top: -500px;\n  left: -500px;\n  padding: 8px;\n  text-align: center;\n}\n.mdl-tooltip.is-active {\n  animation: pulse 200ms $animation-curve-linear-out-slow-in forwards;\n}\n\n.mdl-tooltip--large {\n  line-height: 14px;\n  font-size: $tooltip-font-size-large;\n  padding: 16px;\n}\n\n@keyframes pulse {\n  0% {\n    transform: scale(0);\n    opacity: 0;\n  }\n  50% {\n    // Fixes a weird bug with the interaction between Safari and the result of\n    // the SASS compilation for the animation.\n    // Essentially, we need to make sure that \"50%\" and \"100%\" don't get merged\n    // into a single \"50%, 100%\" entry, so we need to avoid them having any\n    // matching properties.\n    transform: scale(0.99);\n  }\n  100% {\n    transform: scale(1);\n    opacity: 1;\n    visibility: visible;\n  }\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@import \"../variables\";\n@import \"../mixins\";\n\n.mdl-shadow--2dp {\n  @include shadow-2dp();\n}\n\n.mdl-shadow--3dp {\n  @include shadow-3dp();\n}\n\n.mdl-shadow--4dp {\n  @include shadow-4dp();\n}\n\n.mdl-shadow--6dp {\n  @include shadow-6dp();\n}\n\n.mdl-shadow--8dp {\n  @include shadow-8dp();\n}\n\n.mdl-shadow--16dp {\n  @include shadow-16dp();\n}\n\n.mdl-shadow--24dp {\n  @include shadow-24dp();\n}\n","/**\n * Copyright 2015 Google Inc. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n* NOTE: Some rules here are applied using duplicate selectors.\n* This is on purpose to increase their specificity when applied.\n* For example: `.mdl-cell--1-col-phone.mdl-cell--1-col-phone`\n*/\n\n@import \"../variables\";\n\n.mdl-grid {\n  display: flex;\n  flex-flow: row wrap;\n  margin: 0 auto 0 auto;\n  align-items: stretch;\n\n  &.mdl-grid--no-spacing {\n    padding: 0;\n  }\n}\n\n.mdl-cell {\n  box-sizing: border-box;\n}\n\n\n.mdl-cell--top {\n  align-self: flex-start;\n}\n\n.mdl-cell--middle {\n  align-self: center;\n}\n\n.mdl-cell--bottom {\n  align-self: flex-end;\n}\n\n.mdl-cell--stretch {\n  align-self: stretch;\n}\n\n.mdl-grid.mdl-grid--no-spacing > .mdl-cell {\n  margin: 0;\n}\n\n// Define order override classes.\n@for $i from 1 through $grid-max-columns {\n  .mdl-cell--order-#{$i} {\n    order: $i;\n  }\n}\n\n\n// Mixins for width calculation.\n@mixin partial-size($size, $columns, $gutter) {\n  width: calc(#{(($size / $columns) * 100)+\"%\"} - #{$gutter});\n\n  .mdl-grid--no-spacing > & {\n    width: #{(($size / $columns) * 100)+\"%\"};\n  }\n}\n\n@mixin full-size($gutter) {\n  @include partial-size(1, 1, $gutter);\n}\n\n@mixin offset-size($size, $columns, $gutter) {\n  margin-left: calc(#{(($size / $columns) * 100)+\"%\"} + #{$gutter / 2});\n\n  .mdl-grid.mdl-grid--no-spacing > & {\n    margin-left: #{(($size / $columns) * 100)+\"%\"};\n  }\n}\n\n\n\n////////// Phone //////////\n\n@media (max-width: $grid-tablet-breakpoint - 1) {\n  .mdl-grid {\n    padding: $grid-phone-margin - ($grid-phone-gutter / 2);\n  }\n\n  .mdl-cell {\n    margin: $grid-phone-gutter / 2;\n    @include partial-size($grid-cell-default-columns, $grid-phone-columns,\n        $grid-phone-gutter);\n  }\n\n  .mdl-cell--hide-phone {\n    display: none !important;\n  }\n\n  // Define order override classes.\n  @for $i from 1 through $grid-max-columns {\n    .mdl-cell--order-#{$i}-phone.mdl-cell--order-#{$i}-phone {\n      order: $i;\n    }\n  }\n\n  // Define partial sizes for columnNumber < totalColumns.\n  @for $i from 1 through ($grid-phone-columns - 1) {\n    .mdl-cell--#{$i}-col,\n    .mdl-cell--#{$i}-col-phone.mdl-cell--#{$i}-col-phone {\n      @include partial-size($i, $grid-phone-columns, $grid-phone-gutter);\n    }\n  }\n\n  // Define 100% for everything else.\n  @for $i from $grid-phone-columns through $grid-desktop-columns {\n    .mdl-cell--#{$i}-col,\n    .mdl-cell--#{$i}-col-phone.mdl-cell--#{$i}-col-phone {\n      @include full-size($grid-phone-gutter);\n    }\n  }\n\n  // Define valid phone offsets.\n  @for $i from 1 through ($grid-phone-columns - 1) {\n    .mdl-cell--#{$i}-offset,\n    .mdl-cell--#{$i}-offset-phone.mdl-cell--#{$i}-offset-phone {\n      @include offset-size($i, $grid-phone-columns, $grid-phone-gutter);\n    }\n  }\n}\n\n\n////////// Tablet //////////\n\n@media (min-width: $grid-tablet-breakpoint) and (max-width: $grid-desktop-breakpoint - 1) {\n  .mdl-grid {\n    padding: $grid-tablet-margin - ($grid-tablet-gutter / 2);\n  }\n\n  .mdl-cell {\n    margin: $grid-tablet-gutter / 2;\n    @include partial-size($grid-cell-default-columns, $grid-tablet-columns,\n        $grid-tablet-gutter);\n  }\n\n  .mdl-cell--hide-tablet {\n    display: none !important;\n  }\n\n  // Define order override classes.\n  @for $i from 1 through $grid-max-columns {\n    .mdl-cell--order-#{$i}-tablet.mdl-cell--order-#{$i}-tablet {\n      order: $i;\n    }\n  }\n\n  // Define partial sizes for columnNumber < totalColumns.\n  @for $i from 1 through ($grid-tablet-columns - 1) {\n    .mdl-cell--#{$i}-col,\n    .mdl-cell--#{$i}-col-tablet.mdl-cell--#{$i}-col-tablet {\n      @include partial-size($i, $grid-tablet-columns, $grid-tablet-gutter);\n    }\n  }\n\n  // Define 100% for everything else.\n  @for $i from $grid-tablet-columns through $grid-desktop-columns {\n    .mdl-cell--#{$i}-col,\n    .mdl-cell--#{$i}-col-tablet.mdl-cell--#{$i}-col-tablet {\n      @include full-size($grid-tablet-gutter);\n    }\n  }\n\n  // Define valid tablet offsets.\n  @for $i from 1 through ($grid-tablet-columns - 1) {\n    .mdl-cell--#{$i}-offset,\n    .mdl-cell--#{$i}-offset-tablet.mdl-cell--#{$i}-offset-tablet {\n      @include offset-size($i, $grid-tablet-columns, $grid-tablet-gutter);\n    }\n  }\n}\n\n\n////////// Desktop //////////\n\n@media (min-width: $grid-desktop-breakpoint) {\n  .mdl-grid {\n    padding: $grid-desktop-margin - ($grid-desktop-gutter / 2);\n  }\n\n  .mdl-cell {\n    margin: $grid-desktop-gutter / 2;\n    @include partial-size($grid-cell-default-columns, $grid-desktop-columns,\n        $grid-desktop-gutter);\n  }\n\n  .mdl-cell--hide-desktop {\n    display: none !important;\n  }\n\n  // Define order override classes.\n  @for $i from 1 through $grid-max-columns {\n    .mdl-cell--order-#{$i}-desktop.mdl-cell--order-#{$i}-desktop {\n      order: $i;\n    }\n  }\n\n  // Define partial sizes for all numbers of columns.\n  @for $i from 1 through $grid-desktop-columns {\n    .mdl-cell--#{$i}-col,\n    .mdl-cell--#{$i}-col-desktop.mdl-cell--#{$i}-col-desktop {\n      @include partial-size($i, $grid-desktop-columns, $grid-desktop-gutter);\n    }\n  }\n\n  // Define valid desktop offsets.\n  @for $i from 1 through ($grid-desktop-columns - 1) {\n    .mdl-cell--#{$i}-offset,\n    .mdl-cell--#{$i}-offset-desktop.mdl-cell--#{$i}-offset-desktop {\n      @include offset-size($i, $grid-desktop-columns, $grid-desktop-gutter);\n    }\n  }\n}\n"]}
\ No newline at end of file
